2016-02-20 3 views
0

Имена атрибутов должны быть уникальными для XML-элемента в XML-документе, не так ли?Xml атрибуты уникальности

<tag is_such_attr_is_valid="value1" is_such_attr_is_valid="value2"> </tag> 

p.s. Мне интересно не добавлять это ограничение в схему проверки (DTD, XSD). Но я заинтересован в том, что такой случай приводит к хорошо сформированному самому XML-документу, если говорить строго.

+0

Внутри тега вы можете иметь только один атрибут каждого имени. – jdweng

+2

Возможный дубликат [Как добавить один и тот же атрибут несколько раз в тег элемента в XML] (http://stackoverflow.com/questions/12664154/how-to-add-the-same-attribute-multiple-times-to -an-element-tag-in-xml) – Quentin

+0

Почему «внутри тега вы можете иметь только один атрибут для имени». ? Можете ли вы дать мне корректуру, пожалуйста? – bruziuz

ответ

3

Да. Вы не можете иметь два атрибута XML с одним и тем же expanded name в одном элементе (см. Ссылки: 1, 2). Таким образом, образец XML, который вы опубликовали, явно не разрешен.

Даже если двум атрибутам были присвоены разные префиксы, если префиксы привязаны к одному и тому же uri, он по-прежнему не разрешен. Противопоставляет <bad> элементов против <good> один в примере, приведенном ниже (адаптированы из связанной ссылки выше и расширены до show good alternatives):

<!-- http://www.w3.org is bound to foo and bar --> 
<x xmlns:foo="http://www.w3.org" 
    xmlns:bar="http://www.w3.org" > 
    <bad a="1"  a="2" /> 
    <bad foo:a="1" bar:a="2" /> 
    <good a="1 2"/> 
    <good> 
    <a>1</a> 
    <a>2</a> 
    </good> 
    <good a="1" b="2" /> 
</x> 
+2

Правильный, полный и лаконичный. Может быть канонический ответ на вопросы уникальности имени атрибута? – kjhughes

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