2017-02-01 7 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>에게 있습니다 요소에 전화 번호가 없습니다.

그러나, 당신의 DTD는 하나 개 이상의 전화 번호가 필요합니다 : 당신은 그 <person> 요소에 전화 번호를 추가하거나 할 수 있도록 컨텐츠 모델을 변경하거나 필요

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

을 0 개 이상의 전화 번호 :

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