2016-11-23 55 views
0

我現在正在學習XML,而我正在努力處理第一個DTD擴展。XML和DTD:元素類型的內容必須匹配

我DTD:

<!ELEMENT biblio (livre*) > 

<!ELEMENT livre (achat , auteurs, titre) > 
<!ATTLIST livre langue CDATA #IMPLIED 
     ref CDATA #IMPLIED> 



<!ELEMENT achat EMPTY > 
<!ATTLIST achat date CDATA #IMPLIED 
     lieu CDATA #IMPLIED> 


<!ELEMENT titre (#PCDATA)> 
<!ATTLIST titre genre CDATA #IMPLIED 
     type NMTOKEN #IMPLIED> 



<!ELEMENT auteurs (auteur+) > 


<!ELEMENT auteur (nom?, prenom? ,sexe?) > 
<!ELEMENT nom (#PCDATA)> 
<!ELEMENT prenom (#PCDATA)> 
<!ELEMENT sexe (#PCDATA)> 

如果我發起瞭解析器,似乎:

元素類型 「裏弗」 的內容必須匹配(ACHAT,auteus,滴度)

我的XML:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE biblio SYSTEM "Dtdbiblio.dtd"> 



<biblio> 
    <livre langue="francais" ref="1684561564"> 
     <achat date="11/11/1993" lieu="london"/> 
     <titre genre="G" type="politique">  Tiiiiiiiiiiiiiiiiiiiiiiiiitre </titre> 
     <auteurs> 
      <auteur> 
       <nom>x</nom> 
       <prenom>x</prenom> 
       <sexe>H</sexe> 
      </auteur> 
     </auteurs> 
    </livre> 

</biblio> 

如何解決此問題?

+0

ADDD我請:( – MohaMed

回答

2

(achat , auteurs, titre)中的逗號(,)指定了元素必須出現的順序。 (See here for more detail.

所以(achat , auteurs, titre)指恰好一個achat接着正好一個auteurs隨後exaclty一個titre

你只需要改變的titreauteurs順序......無論是在XML實例:

<biblio> 
    <livre langue="francais" ref="1684561564"> 
     <achat date="11/11/1993" lieu="london"/> 
     <auteurs> 
      <auteur> 
       <nom>x</nom> 
       <prenom>x</prenom> 
       <sexe>H</sexe> 
      </auteur> 
     </auteurs> 
     <titre genre="G" type="politique">  Tiiiiiiiiiiiiiiiiiiiiiiiiitre </titre> 
    </livre> 

</biblio> 

或DTD:

<!ELEMENT livre (achat, titre, auteurs) > 
相關問題