宋利兴

it2022-05-06  0

DTD是一套关于标记的语法规则,它定义了文档的逻辑结构,规定了文档中所使用的元素、实体、元素的属性、元素与实体之间的关系。

DTD是XML文件的验证机制,定义好DTD,就可以使用XML解析器对编写好的XML文档进行DTD检查,判断XML文档内容是否为有效的XML文档内容

为什么使用 DTD:1、验证接收到的数据是否有效 2、 用于验证自己的数据 3、定义 XML 文档的合法构建块 4、使用一系列合法元素来定义文档结构

使用DTD的好处:1、用DTD提供统一格式2、用DTD验证数据有效性3、根据DTD编写文档样式单

DTD文档有如下结构:

第1行是DTD声明部分,该声明与XML声明的语法相同0到多个注释部分,DTD注释与XML注释的语法完全相同

0到多个<!ELEMENT….>定义,每个<!ELEMENT….>定义一个XML元素

0到多个<!ATTLIST….>定义,每个<!ATTLIST….>定义一个XML元素定义了一个属性

0到多个<!ENTITY….>定义,每个<!ENTITY….>定义一个实体

0到多个<!NOTATION….>定义,每个<!NOTATION….>定义一个符号

元素声明以“<!”开始,以“>”结束

元素声明指令“ELEMENT”为关键字,必须大写

元素名:为当前元素指定的元素名称

元素内容: 元素名后面的内容用来指定元素的内容类型,它可以分为EMPTY(空)、子元素类型,混合型、ANY(任意)和#PCDATA 5种类型。

ANY是DTD中使用很频繁的一个关键字,特别是对于文档根元素的声明。

注意:

#PCDATA必须放在最前面

#PCDATA和各子元素之间只能用竖线(|)分割

子元素1,子元素2和子元素3之间的竖线(|)并不是表示互斥,而只是表  示这些元素能无序的重复出现,而且次数不受限制

不要试图在各个子元素之后添加?,*。+等表示频率的修饰符

互斥的子元素表明一系列子元素之间只能出现其中一次。互斥子元素使用竖线(|)分隔,以竖线(|)分隔的多个元素只能出现其中之一。

+: 表明子元素可以出现1次或多次

*:  表明子元素可以出现0次或多次

?:  表明子元素可以出现0次或1次

CDATA  只为字符串数据

(en|en2|…)此值是枚举列表中的一个值

ID该属性值必须是有效地标识符,在XML文档时唯一的

IDREF值为另外一个元素的 id属性值

IDREFS值必须引用自多个已经有的ID属性值,多个ID属性值用空格隔开

NMTOKEN值为合法的 XML 名称

NMTOKENS值为多个合法的 XML 名称的列表ENTITY值是一个外部实体,如图片支持

ENTITIES值是一个实体列表,多个实体之间以空格隔开

NOTATION该属性值是在DTD中声明过的符号,这个是过期的,不要使用

转载于:https://www.cnblogs.com/springside4/archive/2011/09/27/2481123.html

相关资源:各显卡算力对照表!

最新回复(0)