Значение атрибута "001" типа ID должно быть NCName, когда пространства имен включены

Так что я создаю XML-файл с моим собственным DTD.

Упрощенный XML выглядит следующим образом:

<!DOCTYPE catalog [
<!ELEMENT catalog (product+)>
<!ELEMENT product (title?, price, creation_date?, weight?, color, description?)>
<!ELEMENT creation_date (day, month, year)>

<!ATTLIST product category (art|dinner_set|ovenware) "art">
<!ATTLIST product id ID #REQUIRED>

<!ELEMENT id (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT day (#PCDATA)>
<!ELEMENT month (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT weight (#PCDATA)>
<!ELEMENT color (#PCDATA)>
<!ELEMENT description (#PCDATA)>
]>

<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<catalog>
    <product category="art" id="001">
        <title>1Blue Sculpture</title>
        <price>$2000</price>
        <creation_date>
            <day>11</day>
            <month>08</month>
            <year>2014</year>
        </creation_date>
        <weight>257g</weight>
        <color>Green</color>
        <description>A beutiful Green Sculpture</description>
    </product>

Когда я пытаюсь запустить его через XML Validater, я получаю сообщение об ошибке "Значение атрибута"001"с идентификатором типа должно быть NCName, когда пространства имен включены". для каждого из атрибутов id.

Я немного поработал с ним, и он, кажется, не допускает цифр, букв в порядке, и он проходит без проблем, но как только вы установите id = "(любые числа)", он выдаст мне ошибку.

Я полный XML NOOB, так что я предполагаю, что это что-то простое, я искал вокруг, но не смог найти ничего определенного, что было бы легко сделать / понять.

2 ответа

Решение

Да, проблема в значении атрибута 001, Значения атрибута типа ID должен соответствовать Name создание грамматики XML, что означает, что цифры (и некоторые другие символы) запрещены как начальные символы.

Значения атрибута, такие как x001 или же id_001 ОК.

Рекомендации:

ДобавлятьNCNameна вашAttlistтакой элемент:

      !ATTLIST complexe code ID NCName #REQUIRED 
Другие вопросы по тегам