XML学习之DTD(XML构建模块)

本文详细介绍了XML文档构建模块及其组成部分,如元素、属性、实体等,并深入讲解了DTD(Document Type Definition)在定义合法XML文档结构方面的作用。通过具体的语法示例,展示了如何声明元素、属性和实体,以便于创建符合规范的XML文档。
摘要由CSDN通过智能技术生成

 

文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。

XML 文档构建模块

所有的XML文档(以及HTML文档)均由以下简单的构建模块构成:元素、属性、实体、PCDATA、CDATA。

DTD-元素:

在一个 DTD 中,元素通过元素声明来进行声明。

声明一个元素:在 DTD 中,XML 元素通过元素声明来进行声明。元素声明使用下面的语法:<!ELEMENT 元素名称 类别>   或者 <!ELEMENT 元素名称 (元素内容)>

空元素:空元素是通过类别关键词EMPTY进行声明,

<!ELEMENT元素名称 EMPTY>

只有PCDATA的元素。只有PCDATA的元素通过圆括号中的#PCDATA进行声明:<!ELEMENT 元素名称 (#PCDATA)>

带有子元素(序列)的元素。带有一个或者多个子元素的元素通过圆括号的子元素名进行声明:<!ELEMENT 元素名称 (子元素名称1)> 或者 <!ELEMENT元素名称 (子元素名称1,子元素名称2……)>

声明只出现一次的元素。<!ELEMENT 元素名称 (子元素名称)>

声明最少出现一次的元素。<!ELEMENT 元素名称 (子元素名称+)>

声明出现零次或一次的元素。<!ELEMENT 元素名称 (子元素名称?)>

声明出现零次或多次的元素。<!ELEMENT 元素名称 (子元素名称*)>

声明“非…/既…”类型的内容。<!ELEMENT note(to,from,header,(message|body))>,其中,to元素、from元素、header元素是note必须包括元素。以及非 "message" 元素既 "body" 元素。

声明混合型的内容。<!ELEMENT note(#PCDATA|to|from|header|message)>”note”元素中可包含出现零次或多次的各元素

DTD-属性

在 DTD 中,属性通过 ATTLIST 声明来进行声明。

声明属性。<!ATTLIST 元素名称属性名称 属性类型 默认值>

#IMPLIED 语法:

<!ATTLIST 元素名称 元素名称 属性类型 #IMPLIED>

假如您不希望强制作者包含属性,并且您没有默认值选项的话,请使用关键词#IMPLIED

#REQUIRED 语法:

<!ATTLIST 元素名称属性名称 属性类型 #REQUIRED>

假如您没有默认值选项,但是仍然希望强制作者提交属性的话,请使用关键词#REQUIRED。

#FiXED 语法:

<!ATTLIST 元素名称属性名称 属性类型 #FIXED “value”>

如果您希望属性拥有固定的值,并不允许作者改变这个值,请使用 #FIXED 关键词。如果作者使用了不同的值,XML 解析器会返回错误。

列举属性值 语法:

<!ATTLIST 元素名称属性名称 (en1|en2…)默认值>

如果您希望属性值为一系列固定的合法值之一,请使用列举属性值。

DTD-实体

实体是用于定义引用普通文本或特殊字符的快捷方式的变量。实体引用是对实体的引用。实体可在内部或外部进行声明。

一个内部实体声明 语法:

<!ENTITY 实体名称“实体的值“>

注释: 一个实体由三部分构成: 一个和号 (&), 一个实体名称, 以及一个分号 (;)。

一个外部实体声明 语法:

<!ENTITY 实体名称 SYSTEM “URT/URL”>

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值