1、DTD定义了XML的结构
2、DTD的声明,有两种方式,一种是xml文件内部,一种是单独作为一个外部文件被引用。
位于文件内部时使用如下方式:<!DOCTYPE 根元素 [元素声明]>
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
...
位于文件外部时使用如下方式:<!DOCTYPE 根元素 SYSTEM "文件名">
3、DTD由以下要素构成:元素、属性、实体、PCDATA、CDATA。
PCDATA 的意思是被解析的字符数据(parsed character data)。PCDATA需要使用实体来替换相应的字符。
CDATA 的意思是字符数据(character data),不会被解析。
4、声明一个元素
<!ELEMENT 元素名称 (元素内容)>
<!ELEMENT 元素名称 类别>
<!ELEMENT 元素名称 EMPTY>
<!ELEMENT 元素名称 (#PCDATA)>
<!ELEMENT 元素名称 ANY>
<!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>
<!ELEMENT 元素名称 (子元素名称+)>(+,*,?)
<!ELEMENT 元素名称 (子元素名称1|子元素名称2)>
5、声明一个属性
<!ATTLIST 元素名称 属性名称 属性类型 默认值>
<!ATTLIST 元素名称 属性名称 属性类型 #IMPLIED> (#IMPLIED, #REQUIRED, #FIXED value)
6、声明一个实体(实体是用于定义用于定义引用普通文本或特殊字符的快捷方式的变量。
)
内部实体:<!ENTITY 实体名称 "实体的值">
外部实体:<!ENTITY 实体名称 SYSTEM "URI/URL">