xml文档中每个XML元素的属性名称应该是唯一的,不是吗?
<tag is_such_attr_is_valid="value1" is_such_attr_is_valid="value2"> </tag>
P.S。我很感兴趣,不知道如何在验证模式(DTD,XSD)中添加此约束。但我感兴趣的是,如果严格说话,这种情况会导致形成良好的xml文档。
答案 0 :(得分:3)
是。您不能在一个元素中具有两个具有相同expanded name的XML属性(请参阅参考: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>