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の属性の値を数字で始めることはできません。Nameこれは、最初の数字を除外するXML仕様のプロダクションと一致する必要があります。

<CONTACT CONTACT_NUM = "_1">または<CONTACT CONTACT_NUM = "ID1">、たとえば、OKになります。

参照:

于 2012-02-12T17:45:26.810 に答える