2016-11-23 2 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)> 

, 그것은 보인다

요소 유형 "리브르"의 내용은 일치해야합니다 (아샤, 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)는 exaclty titre 한 다음 정확히 하나 auteurs 다음 achat 정확히 하나를 의미한다.

<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에서 :

당신은 어느 XML 인스턴스에 ... titreauteurs의 순서를 변경해야

<!ELEMENT livre (achat, titre, auteurs) > 
관련 문제