4

我正在尝试验证此 XML 文档:

<?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

有人发现属性 CONTACT_NUM 的语法有什么问题吗?

4

1 回答 1

3

ID 类型的属性值不能以数字开头。它必须与NameXML 规范中的产生式相匹配,排除了初始数字。

<CONTACT CONTACT_NUM = "_1">或者<CONTACT CONTACT_NUM = "ID1">会好的,例如。

参考:

于 2012-02-12T17:45:26.810 回答