xml 文档中每个 XML 元素的属性名称应该是唯一的,不是吗?
<tag is_such_attr_is_valid="value1" is_such_attr_is_valid="value2"> </tag>
附言我感兴趣的不是如何在验证模式(DTD、XSD)中添加这个约束。但我感兴趣的是,如果严格地说,这种情况会导致格式良好的 xml 文档本身。
最佳答案
是的。不能有两个相同的 XML 属性 expanded name在一个元素中(参见引用资料: 1 、 2 )。因此,您发布的 XML 示例显然是不允许的。
即使两个属性被赋予不同的前缀,只要前缀绑定(bind)到同一个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>
关于XML 属性唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35521115/