<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE acconts [ <!ELEMENT acconts (acconter)> <!ELEMENT acconter (accont,description*,ciphertext,attribute+,comment*)> <!ELEMENT accont (#PCDATA)> <!ELEMENT description (#PCDATA)> <!ELEMENT ciphertext (#PCDATA)> <!ELEMENT attribute (#PCDATA)> <!ELEMENT comment (#PCDATA)> ]>
查了很多资料,也从教程里复制原版的DTD资料,还是出错,无赖之下删掉了DOCTYPE申明,问题得到解决:
<!ELEMENT acconts (acconter)> <!ELEMENT acconter (accont,comment*)> <!ELEMENT accont (#PCDATA)> <!ELEMENT description (#PCDATA)> <!ELEMENT ciphertext (#PCDATA)> <!ELEMENT attribute (#PCDATA)> <!ELEMENT comment (#PCDATA)>出错的原因在于在编写DTD文件的时候是不需要加DOCTYPE的,我们在XML引用DTD文件是才需要加(引入外部DTD文件)
我们在编写XML的时候,DOCTYPE的内容如果在XML内,则我们可以这样写:
<?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>