XML Internal DTD不验证

时间:2016-06-08 00:50:37

标签: xml dtd

我对下面的xml内部dtd感到头痛,我不太喜欢问题出在哪里......

<?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列出错:格式不正确(令牌无效)

1 个答案:

答案 0 :(得分:2)

你在ATTLIST宣言中有一个小错字。 "Euro"周围的引号未正确关闭。

此:

<!ATTLIST  preu moneda CDATA #FIXED "Euro''>

应该是:

<!ATTLIST  preu moneda CDATA #FIXED "Euro">

在修复之后,您的文档仍然会有一些验证错误,但它们应该是自我解释的。