xml学习总结(二)——dtd

2024-03-09 17:38
文章标签 xml 学习 总结 dtd

本文主要是介绍xml学习总结(二)——dtd,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、简单的dtd文件
    • 1.代码
    • 2.内容说明
  • 二、定义标签
  • 三、定义标签属性
    • 1.语法
    • 2.属性类型
    • 3.属性约束
  • 四、实体


一、简单的dtd文件

1.代码

dtd文件:

<!ELEMENT person (name, age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>

xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE person SYSTEM "./demo1.dtd">
<person><name>zhangsan</name><age>18</age>
</person>

2.内容说明

  1. 标签(元素)
    • 复杂元素:有子标签的元素,例如person

      <!ELEMENT 标签名称 (子标签)>
    • 简单元素:无子标签的元素,例如:nameage

      <!ELEMENT 标签名称 约束>
  2. xml中引入dtd文件
    语法:<!DOCTYPE 根标签名称 SYSTEM “dtd文件的路径”>

  1. dtd文件可以写在xml文件内部:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE person [<!ELEMENT person (name,age)><!ELEMENT name (#PCDATA)><!ELEMENT age (#PCDATA)>]>
<person><name>zhangsan</name><age>18</age>
</person>
  1. xml文件中子标签顺序要严格按照dtd中规定的写。
<!ELEMENT person (name,age)> <!-- name标签在age前面 -->

3.将,改为|时,标签只能出现其中一个。

<!ELEMENT person (name|age)> <!-- person的子标签只能存在name或者age -->

二、定义标签

  1. 简单标签:<!ELEMENT name (#PCDATA)>
    • 语法:<!ELEMENT 标签名称 约束>
    • 约束,如下表格:
约束含义
(#PCDATA)<name>内容</name>,内容是字符数据
EMPTY<name></name>,不存在内容
ANY<name>内容</name>,可以存在内容
  1. 复杂标签:<!ELEMENT person (name,age)>
    如上示例,name,age标签均只能出现一次,但子表签出现次数可以设置,如下:
符号次数
?出现零次或一次(<!ELEMENT person (name?,age)>)
+出现一次或多次(<!ELEMENT person (name+,age)>)
*出现零次或多次(<!ELEMENT person (name*,age)>)

三、定义标签属性

1.语法

<!ATTLIST 标签名 属性名 属性类型 约束>

2.属性类型

属性类型含义示例
CDATA属性值为字符串<!ATTLIST name id CDATA 约束>
枚举属性值为枚举范围中的一个<!ATTLIST name id (a|b|c) 约束>
ID属性值只能是字母下划线开头<!ATTLIST name id ID 约束>

3.属性约束

属性约束含义示例
#REQUIRED必须存在属性<!ATTLIST name id 属性类型 #REQUIRED>
#IMPLIED可以存在属性<!ATTLIST name id 属性类型 #IMPLIED>
#FIXED属性值固定,无法更改<!ATTLIST name id 属性类型 #FIXED "AAA">
属性值默认属性值,如果未设置,则使用默认值<!ATTLIST name id 属性类型 "AAA">

四、实体

内部实体

  1. 语法:<!ENTITY 实体名称 "实体的值">
  2. 示例:
<!-- dtd中定义实体 -->
<!DOCTYPE person [<!ELEMENT person (name, age)><!ELEMENT name (#PCDATA)><!ELEMENT age (#PCDATA)><!ENTITY entity "abc">]>
<!-- 在xml中引用实体 -->
<person><name>&entity;</name><age >18</age>
</person>

:实体写在内部dtd中,写在外部可能浏览器获取不到。

这篇关于xml学习总结(二)——dtd的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/791434

相关文章

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

mybatis的mapper对应的xml写法及配置详解

《mybatis的mapper对应的xml写法及配置详解》这篇文章给大家介绍mybatis的mapper对应的xml写法及配置详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录前置mapper 对应 XML 基础配置mapper 对应 xml 复杂配置Mapper 中的相