XML 内部 DTD 未验证
XML Internal DTD don't validate
我对以下带有内部 dtd 的 xml 感到头疼,我不太明白问题出在哪里...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE appcoches [
<!ELEMENT appcoches (usuaris,conductors,trajectes,blacklist)>
<!ELEMENT usuaris (usuari+)>
<!ELEMENT usuari (username,tlfcontacte+,tipususuari)>
<!ELEMENT username (#PCDATA)>
<!ELEMENT tlfcontacte (#PCDATA)>
<!ELEMENT tipususuari (#PCDATA)>
<!ATTLIST usuari id ID #REQUIRED>
<!ELEMENT conductors (conductor+)>
<!ELEMENT conductor (edat,vehicle)>
<!ELEMENT edat (#PCDATA)>
<!ELEMENT vehicle (marca,model,color)>
<!ELEMENT marca (#PCDATA)>
<!ELEMENT model (#PCDATA)>
<!ELEMENT color (#PCDATA)>
<!ATTLIST conductor id IDREF #REQUIRED>
<!ELEMENT trajectes (trajecte+)>
<!ELEMENT trajecte (origen,desti,trasbord+,horatrajecte,preu)>
<!ELEMENT origen (#PCDATA)>
<!ELEMENT desti (#PCDATA)>
<!ELEMENT trasbord (#PCDATA)>
<!ELEMENT horatrajecte (sortida,arribada+)>
<!ELEMENT sortida (#PCDATA)>
<!ELEMENT arribada (#PCDATA)>
<!ELEMENT preu (#PCDATA)>
<!ATTLIST trajecte id ID #REQUIRED>
<!ATTLIST trasbord passatger IDREF #REQUIRED>
<!ATTLIST trasbord id ID #REQUIRED>
<!ATTLIST arribada trasbord IDREF #REQUIRED>
<!ATTLIST arribada id IDREF #REQUIRED>
<!ATTLIST preu moneda CDATA #FIXED "Euro''>
<!ELEMENT blacklist (client+)>
<!ELEMENT client (incident,dia)>
<!ELEMENT dia (num,mes,hora)>
<!ELEMENT num (#PCDATA)>
<!ELEMENT mes (#PCDATA)>
<!ELEMENT hora (#PCDATA)>
<!ATTLIST client id IDREF #REQUIRED>
]>
<appcoches>
<usuaris>
<usuari id="a1">
<username>adasdasd</username>
<tlfcontacte>452547898</tlfcontacte>
<tipususuari>Proveidor</tipususuari>
</usuari>
<usuari id="a2">
<username>adasdasd</username>
<tlfcontacte>452547898</tlfcontacte>
<tipususuari>Proveidor</tipususuari>
</usuari>
<usuari id="a3">
<username>adasdasd</username>
<tlfcontacte>452547898</tlfcontacte>
<tipususuari>Consumidor</tipususuari>
</usuari>
<usuari id="a4">
<username>adasdasd</username>
<tlfcontacte>452547898</tlfcontacte>
<tipususuari>Consumidor</tipususuari>
</usuari>
<usuari id="a5">
<username>adasdasd</username>
<tlfcontacte>452547898</tlfcontacte>
<tipususuari>Consumidor</tipususuari>
</usuari>
<usuari id="a6">
<username>adasdasd</username>
<tlfcontacte>452547898</tlfcontacte>
<tipususuari>Proveidor</tipususuari>
</usuari>
</usuaris>
<conductors>
<conductor id="a1">
<edat>52</edat>
<vehicle>
<marca>asdasdads</marca>
<model>asdasdasda</model>
<color>jhoasdljka</color>
</vehicle>
</conductor>
<conductor id="a6">
<edat>23</edat>
<vehicle>
<marca>asdasdads</marca>
<model>asdasdasda</model>
<color>jhoasdljka</color>
</vehicle>
</conductor>
<conductor id="a2">
<edat>18</edat>
<vehicle>
<marca>asdasdads</marca>
<model>asdasdasda</model>
<color>jhoasdljka</color>
</vehicle>
</conductor>
</conductors>
<trajectes>
<trajecte id="b1">
<origen>asdfasdfas</origen>
<desti>asdfasfasdf</desti>
<trasbord pasatger="a3" id="b11">fasdfasdf</trasbord>
<trasbord pasatger="a4" id="b12">asfasfsfd</trasbord>
<horatrajecte>
<sortida>17</sortida>
<arribada trasbord="b11" pasatger="a4">18</arribada>
<arribada trasbord="b12" pasatger="a5">18:30</arribada>
</horatrajecte>
<preu moneda="Euro">10</preu>
</trajecte>
<trajecte id="b2">
<origen>asdfasdfas</origen>
<desti>asdfasfasdf</desti>
<trasbord id="b21" pasatger="a3">fasdfasdf</trasbord>
<horatrajecte>
<sortida>12</sortida>
<arribada trasbord="b11" pasatger="a4">14</arribada>
</horatrajecte>
<preu moneda="Euro">12</preu>
</trajecte>
</trajectes>
<blacklist>
<client id="a1">
<incident>Inpuntualitat</incident>
<dia>
<num>25</num>
<mes>5</mes>
<hora>12</hora>
</dia>
</client>
<client id="a5">
<incident>Morositat</incident>
<dia>
<num>27</num>
<mes>2</mes>
<hora>15</hora>
</dia>
</client>
</blacklist>
</appcoches>
我收到此错误:第 45 行第 13 列错误:格式不正确(令牌无效)
您在 ATTLIST 声明中有一个小错字。 "Euro"
两边的引号闭合不正确。
这个:
<!ATTLIST preu moneda CDATA #FIXED "Euro''>
应该是:
<!ATTLIST preu moneda CDATA #FIXED "Euro">
修复后您的文档仍然会存在一些验证错误,但它们应该是不言自明的。
我对以下带有内部 dtd 的 xml 感到头疼,我不太明白问题出在哪里...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE appcoches [
<!ELEMENT appcoches (usuaris,conductors,trajectes,blacklist)>
<!ELEMENT usuaris (usuari+)>
<!ELEMENT usuari (username,tlfcontacte+,tipususuari)>
<!ELEMENT username (#PCDATA)>
<!ELEMENT tlfcontacte (#PCDATA)>
<!ELEMENT tipususuari (#PCDATA)>
<!ATTLIST usuari id ID #REQUIRED>
<!ELEMENT conductors (conductor+)>
<!ELEMENT conductor (edat,vehicle)>
<!ELEMENT edat (#PCDATA)>
<!ELEMENT vehicle (marca,model,color)>
<!ELEMENT marca (#PCDATA)>
<!ELEMENT model (#PCDATA)>
<!ELEMENT color (#PCDATA)>
<!ATTLIST conductor id IDREF #REQUIRED>
<!ELEMENT trajectes (trajecte+)>
<!ELEMENT trajecte (origen,desti,trasbord+,horatrajecte,preu)>
<!ELEMENT origen (#PCDATA)>
<!ELEMENT desti (#PCDATA)>
<!ELEMENT trasbord (#PCDATA)>
<!ELEMENT horatrajecte (sortida,arribada+)>
<!ELEMENT sortida (#PCDATA)>
<!ELEMENT arribada (#PCDATA)>
<!ELEMENT preu (#PCDATA)>
<!ATTLIST trajecte id ID #REQUIRED>
<!ATTLIST trasbord passatger IDREF #REQUIRED>
<!ATTLIST trasbord id ID #REQUIRED>
<!ATTLIST arribada trasbord IDREF #REQUIRED>
<!ATTLIST arribada id IDREF #REQUIRED>
<!ATTLIST preu moneda CDATA #FIXED "Euro''>
<!ELEMENT blacklist (client+)>
<!ELEMENT client (incident,dia)>
<!ELEMENT dia (num,mes,hora)>
<!ELEMENT num (#PCDATA)>
<!ELEMENT mes (#PCDATA)>
<!ELEMENT hora (#PCDATA)>
<!ATTLIST client id IDREF #REQUIRED>
]>
<appcoches>
<usuaris>
<usuari id="a1">
<username>adasdasd</username>
<tlfcontacte>452547898</tlfcontacte>
<tipususuari>Proveidor</tipususuari>
</usuari>
<usuari id="a2">
<username>adasdasd</username>
<tlfcontacte>452547898</tlfcontacte>
<tipususuari>Proveidor</tipususuari>
</usuari>
<usuari id="a3">
<username>adasdasd</username>
<tlfcontacte>452547898</tlfcontacte>
<tipususuari>Consumidor</tipususuari>
</usuari>
<usuari id="a4">
<username>adasdasd</username>
<tlfcontacte>452547898</tlfcontacte>
<tipususuari>Consumidor</tipususuari>
</usuari>
<usuari id="a5">
<username>adasdasd</username>
<tlfcontacte>452547898</tlfcontacte>
<tipususuari>Consumidor</tipususuari>
</usuari>
<usuari id="a6">
<username>adasdasd</username>
<tlfcontacte>452547898</tlfcontacte>
<tipususuari>Proveidor</tipususuari>
</usuari>
</usuaris>
<conductors>
<conductor id="a1">
<edat>52</edat>
<vehicle>
<marca>asdasdads</marca>
<model>asdasdasda</model>
<color>jhoasdljka</color>
</vehicle>
</conductor>
<conductor id="a6">
<edat>23</edat>
<vehicle>
<marca>asdasdads</marca>
<model>asdasdasda</model>
<color>jhoasdljka</color>
</vehicle>
</conductor>
<conductor id="a2">
<edat>18</edat>
<vehicle>
<marca>asdasdads</marca>
<model>asdasdasda</model>
<color>jhoasdljka</color>
</vehicle>
</conductor>
</conductors>
<trajectes>
<trajecte id="b1">
<origen>asdfasdfas</origen>
<desti>asdfasfasdf</desti>
<trasbord pasatger="a3" id="b11">fasdfasdf</trasbord>
<trasbord pasatger="a4" id="b12">asfasfsfd</trasbord>
<horatrajecte>
<sortida>17</sortida>
<arribada trasbord="b11" pasatger="a4">18</arribada>
<arribada trasbord="b12" pasatger="a5">18:30</arribada>
</horatrajecte>
<preu moneda="Euro">10</preu>
</trajecte>
<trajecte id="b2">
<origen>asdfasdfas</origen>
<desti>asdfasfasdf</desti>
<trasbord id="b21" pasatger="a3">fasdfasdf</trasbord>
<horatrajecte>
<sortida>12</sortida>
<arribada trasbord="b11" pasatger="a4">14</arribada>
</horatrajecte>
<preu moneda="Euro">12</preu>
</trajecte>
</trajectes>
<blacklist>
<client id="a1">
<incident>Inpuntualitat</incident>
<dia>
<num>25</num>
<mes>5</mes>
<hora>12</hora>
</dia>
</client>
<client id="a5">
<incident>Morositat</incident>
<dia>
<num>27</num>
<mes>2</mes>
<hora>15</hora>
</dia>
</client>
</blacklist>
</appcoches>
我收到此错误:第 45 行第 13 列错误:格式不正确(令牌无效)
您在 ATTLIST 声明中有一个小错字。 "Euro"
两边的引号闭合不正确。
这个:
<!ATTLIST preu moneda CDATA #FIXED "Euro''>
应该是:
<!ATTLIST preu moneda CDATA #FIXED "Euro">
修复后您的文档仍然会存在一些验证错误,但它们应该是不言自明的。