DTD是 Document Type Definition 文档类型定义的缩写。
XML是用来描述标记语言的语言,可以由DTD定义结构,包括标记,属性和实体以及这些内容的相互关系
分为外部DTD和内部DTD
<!ELEMENT TITLE (#PCDATA)>
] !>
<DOCUMENT>
<TITLE>空元素TITLE>
DOCUMENT>
以上是内部DTD,在XML文件的顶部声明。
<DOCUMENT>
<TITLE>空元素TITLE>
DOCUMENT>
<!DOCTYPE DOCUMENT SYSTEM "url"
[
意味着属性必须是字符集合
从一组给定的值中选择一个作为属性值
<!ATTLIST play position (center|forward|defenseman) "center" >
<!ATTLIST film class ID #REQUIRED>
表示每一个属性值在XML文档中必须是唯一的,ID属性的取值不可以用数字开头
必须引用XML文档或者其他元素ID类型属性的值
<!ELEMENT PERSON (#PCDATA)>
<!ATTLIST PERSON PNUMBER ID #REQUIRED>
<!ATTLIST PERSON FATHER IDREF #IMPLIED>
<!ATTLIST PERSON MOTHER IDREF #IMPLIED>
]>
<DOCUMENT>
<PERSON PNUMBER="a1">SusanPERSON>
<PERSON PNUMBER="a2">JackPERSON>
ChelseaPERSON>
DavidPERSON>
DOCUMENT>
<!ATTLIST author authorID ID #REQUIRED>
<!ATTLIST author IDREFS #REQUIRED>
<author authorID="a001" />
<author authorID="a002" />
<book author="a001 a002">book>
将外部二进制数据文件或者不可解析实体连接到XML中
<!ENTITY qhPress SYSTEM "xxx">
<!ATTLIST press publisher ENTITY #REQUIRED>
<press publisher="&qhPress;" />
将多个连接到XML文档中
<!ENTITY qhPress SYSTEM "xxx">
<!ENTITY fzuPress SYSTEM "xxx">
<!ATTLIST press publisher ENTITYS #REQUIRED>
<press publisher="&qhPress;&fzuPress" />
属性值是一个有效的XML名称记号
<!ELEMENT paragraph (#PCDATA)>
<!ALLIST paragraph size NMTOKEN #REQUIRED>
<paragraph size=“one_line”>paragraph>
<paragraph size=“two_lines ”>paragraph>
<!ELEMENT paragraph (#PCDATA)>
<!ALLIST paragraph size NMTOKENS #REQUIRED>
<paragraph size=“one_line two_line”>paragraph>
NOTATION 类型
没看懂
<!ELEMENT img EMPTY>
<!ATTLIST img src ENTITY #REQUIRED>
<!ENTITY SOURCE SYSTEM “a.gif” NDATA gif>
<img src=“SOURCE” />
有时候有些没用的DTD除了用注释还可以用IGNORE指令封装
<!ENTITY % ignore "IGNORE">
<!ENTITY % include "INCLUDE">
<!ELEMENT 图书馆A (科技类,文艺类,社科类)>
]]>
<!ELEMENT 图书馆B (科技类,社科类,少儿类)>
]]>
<!ELEMENT 科技类 (#PCDATA) >
<!ELEMENT 文艺类 (#PCDATA) >
<!ELEMENT 社科类 (#PCDATA) >
<!ELEMENT 少儿类 (#PCDATA) >
下表是磁盘信息表,请根据该表格,写出表示该表格的XML文档,
并定义该文档的DTD。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mfB0IMct-1609259070307)(C:\Users\MSI\AppData\Roaming\Typora\typora-user-images\image-20201227140134374.png)]
<!ELEMENT 品名 (#PCDATA)>
<!ELEMENT 规格 (#PCDATA)>
<!ELEMENT 型号 (#PCDATA)>
<!ELEMENT 容量 (#PCDATA)>
<!ELEMENT 尺寸 (#PCDATA)>
<!ELEMENT 价格 (#PCDATA)>
<!ELEMENT 库存 (#PCDATA)>
<!ATTLIST 价格 货币 CDATA #REQUIRED '元'>
<!ATTLIST 库存 单位 CDATA #REQUIRED '盒'>
]>