XMLSpy编写DTD出错:Character 'D' is grammatically unexpected

最近在写以下DTD文件的时候出现这样的错误:

<?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,description*,ciphertext,attribute+,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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值