Значение атрибута "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