2017-02-01 27 views
1

im, наблюдающий за моим кодом с 2 часов назад, и до сих пор не понял, где я делаю ошибка, поясню у меня есть ОТД и XML в том же файле, и когда я иду в xmlvalidator я всегда получаю ошибку на названии.Содержимое элемента типа «человек» является неполным, оно должно соответствовать (фамилия, имя, город?, Телефон +) »

здесь код

<?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 требуется один или несколько телефонных номеров:

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

Вам нужно либо добавить телефонный номер этого <person> элемента или изменить модель содержимого, чтобы ноль или больше телефонных номеров:

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