Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如果模式需要一个属性,而我将其作为元素发送,那么它是否无效?_Xml_Schema - Fatal编程技术网

Xml 如果模式需要一个属性,而我将其作为元素发送,那么它是否无效?

Xml 如果模式需要一个属性,而我将其作为元素发送,那么它是否无效?,xml,schema,Xml,Schema,这里的一个相关节点是—— 但这更多的是一个设计问题 我的问题是关于有效性 如果模式需要 <record name="foo" description="bar" /> 我提供 <record> <name>foo</name> <description>bar</description> </record> 福 酒吧 XML会被认为是无效的吗 反之亦然:如果指定了元素,并且我提供了属性,那么它

这里的一个相关节点是—— 但这更多的是一个设计问题

我的问题是关于有效性

如果模式需要

<record name="foo" description="bar" />

我提供

<record>
  <name>foo</name>
  <description>bar</description>
</record>

福
酒吧
XML会被认为是无效的吗

反之亦然:如果指定了元素,并且我提供了属性,那么它是否无效


XML规范中是否有一个引用,记录了在这种情况下XML解析器应该做什么,其中语义相同,但文字XML结构不同?

属性和元素不能互换。如果模式需要一个,那么使用另一个是无效的,XML模式验证逻辑应该拒绝它。它们在语义上是否相同也很值得怀疑。

如果XML模式说is需要一个元素,而您提供了一个属性,则该属性无效。反之亦然。如果不验证XML,您的代码仍然会有问题,因为您将查找属性,而它将找不到元素。

在XML中,模式是一个严格的契约:如果您不遵守它,那么交易就结束了

如果属性被指定为元素,那么XML是否有效

答:无效

如果元素被指定为属性,那么XML是否有效

答:无效

在这种情况下,XML解析器应该做什么

答:由于架构有效性原因,解析失败

XML读取器无法适应源文档中的任何错误。在这个主题上,XML世界与HTML世界相反。这种严格性是XML的一个特性,它使XML易于解析、处理和生成