2012-02-12 8 views
3

Я пытаюсь проверить этот XML-документ:xmllint для атрибута ID

<?xml version="1.0"?> 
<CONTACTS> 
    <CONTACT CONTACT_NUM = "1"> 
    <NAME>Alice</NAME> 
    </CONTACT> 

    <CONTACT CONTACT_NUM = "2"> 
    <NAME>Bob</NAME> 
    </CONTACT> 
</CONTACTS> 

против следующего DTD:

<!ELEMENT CONTACTS ANY> 
<!ELEMENT CONTACT (NAME)> 
<!ELEMENT NAME (#PCDATA)> 
<!ATTLIST CONTACT CONTACT_NUM ID #REQUIRED> 

работает xmllint --dtdvalid test.dtd test.xml производит:

test.xml:3: element CONTACT: validity error : Syntax of value for attribute CONTACT_NUM of CONTACT is not valid 
test.xml:7: element CONTACT: validity error : Syntax of value for attribute CONTACT_NUM of CONTACT is not valid 
Document test.xml does not validate against test.dtd 

Никто не заметил, что случилось с синтаксисом атрибута CON TACT_NUM?

ответ

2

Значение атрибута идентификатора типа не может начинаться с цифры. Он должен соответствовать производству Name в спецификации XML, которая исключает исходные цифры.

<CONTACT CONTACT_NUM = "_1"> или <CONTACT CONTACT_NUM = "ID1"> будет в порядке, например.

Ссылки:

 Смежные вопросы

  • Нет связанных вопросов^_^