<!ELEMENT book (bookname,authors,price,publishdate,comment*) >
<!ELEMENT bookname EMPTY >
<!ATTLIST bookname name CDATA #REQUIRED >
<!ATTLIST bookname font CDATA "GB2312" >
<!ATTLIST bookname size CDATA "3" >
<!ATTLIST bookname color CDATA "black" >
<!ELEMENT authors (author+) >
<!ELEMENT author EMPTY >
<!ATTLIST author name CDATA #REQUIRED >
<!ATTLIST author sex (男|女) "男" >
<!ATTLIST author age CDATA #IMPLIED >
<!ATTLIST author tel CDATA #IMPLIED >
<!ELEMENT price (value*) >
<!ATTLIST price value CDATA #IMPLIED >
<!ELEMENT value (#PCDATA) >
<!ELEMENT publishdate (value*) >
<!ATTLIST publishdate value CDATA #IMPLIED >
<!ELEMENT comment (value*,list*,map*) >
<!ATTLIST comment value CDATA #IMPLIED >
<!ELEMENT list (value+) >
<!ELEMENT map (key+) >
<!ELEMENT key EMPTY >
<!ATTLIST key name CDATA #REQUIRED>
<!ATTLIST key value CDATA #REQUIRED>
以上 DTD 解释如下:
<?xml version (第一行)是对文件的声明
!ELEMENT note (第二行)定义 book 元素有四个元素:"bookname,authors,price,publishdate,comment",其中comment后面的“*”表示这个元素可以有0或多个,如果是“?”表示0或1个,如果是“+”表示1或多个,而如果元素后面什么标记也没有,则该元素在XML文件中有且仅有一个,最后声明一下这些元素的顺序是固定的,颠倒顺序会导致错误。