2017-02-01 6 views
1

2時間前から私のコードを見ています。間違い、basicly私は、同じファイル内のDTDとXMLを持っていると私はxmlvalidatorに行くとき、私はいつもタイトルにエラーが発生します。要素タイプ "person"の内容が不完全で、一致する必要があります(familyname、firstname、city?、telephone +) "

ここでは、コード

<?xml version = "1.0"?> 

<!DOCTYPE addressbook [ 

<!ELEMENT addressbook (person*)> 
<!ELEMENT person (familyname,firstname,city?,telephone+)> 
<!ELEMENT familyname (#PCDATA)> 
<!ELEMENT firstname (#PCDATA)> 
<!ELEMENT city (#PCDATA)> 
<!ELEMENT telephone (#PCDATA)> 
<!ATTLIST person id CDATA #REQUIRED> 
<!ATTLIST telephone type CDATA #IMPLIED> 
]> 

<addressbook> 
    <person id="p01"> 
     <familyname>De Niro</familyname> 
     <firstname>Roberto</firstname> 
     <city>Los Angeles</city> 
     <telephone type="mobile">123456</telephone> 
    </person> 
    <person id="p02"> 
     <familyname>Bale</familyname> 
     <firstname>Gareth</firstname> 
     <city>Madrid</city> 
     <telephone>987654</telephone> 
    </person> 
    <person id="p03"> 
     <familyname>Jobs</familyname> 
     <firstname>Steve</firstname> 
     <city>Palo Alto</city> 
    </person> 
    <person id="p04"> 
     <familyname>Fry</familyname> 
     <firstname>Stephen</firstname> 
     <telephone type="landline">132867</telephone> 
     <telephone type="mobile">725282</telephone> 
    </person> 
</addressbook> 

答えて

1

あなたの第三<person>です要素には電話番号がありません:

<person id="p03"> 
    <familyname>Jobs</familyname> 
    <firstname>Steve</firstname> 
    <city>Palo Alto</city> 
</person> 

しかし、あなたのDTDは、一の以上の電話番号が必要です。あなたはその<person>要素に電話番号を追加したりできるように、コンテンツモデルを変更するか必要

<!ELEMENT person (familyname,firstname,city?,telephone+)> 

をゼロ以上の電話番号:

<!ELEMENT person (familyname,firstname,city?,telephone*)> 
関連する問題