此处的相关节点是 - XML Attributes vs Elements 但这更像是一个设计问题。
我的问题是有效性。
如果架构需要
<record name="foo" description="bar" />
我供应
<record>
<name>foo</name>
<description>bar</description>
</record>
XML会被视为无效吗?
反之亦然:如果指定了元素并且我提供了属性,它是否无效?
在XML规范中是否有一个引用,记录了XML解析器在这种情况下应该做什么,其中语义相同,但文字XML结构不同?
答案 0 :(得分:2)
如果XML模式声明需要一个元素,并且您提供的属性是无效的。反过来也是一样的。如果您没有验证XML,那么您的代码仍会出现问题,因为您将查找某个属性并且找不到该元素。
答案 1 :(得分:1)
属性和元素绝不可互换。如果架构需要一个架构,则使用另一个架构无效,并且XML架构验证逻辑应该拒绝它。它们在语义上是否相同也是非常值得怀疑的。
答案 2 :(得分:0)
在XML中,架构是一个严格的合同:如果你不遵守它,那么交易就结束了!
如果将属性指定为元素,那么XML是否有效?
答案:无效。
如果将元素指定为属性,那么XML是否有效?
答案:无效。
在这种情况下,XML解析器应该做什么?
答案:失败解析模式有效性原因。
XML阅读器将无法适应源文档中的任何错误。在这个主题上,XML世界与HTML世界相对立。这种严格性是XML的一种属性,它使得它易于解析,处理和生成。