XML 属性唯一性

标签 xml

xml 文档中每个 XML 元素的属性名称应该是唯一的,不是吗?

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

附言我感兴趣的不是如何在验证模式(DTD、XSD)中添加这个约束。但我感兴趣的是,如果严格地说,这种情况会导致格式良好的 xml 文档本身。

最佳答案

是的。不能有两个相同的 XML 属性 expanded name在一个元素中(参见引用资料: 12 )。因此,您发布的 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/

相关文章:

java - 添加一些代码行后,应用崩溃

java - Recyclerview 项目中的阴影效果

iphone - 来自数组的 UIGridView

python - 如何通过 Python 向 eBay API 发送有效的 XML POST 请求?

java - 使用 JAXB 从 XML 字符串创建对象

android - 工具栏重叠在状态栏下方

java - 如何在 XML 文件中构建多维数组?

windows - WiX XmlFile ElementPath 多个结果

xml - Golang XML 解析/解码

android - 使用 'bind' 和 'app' 命名空间设置自定义属性与 Android DB 之间的区别?