我听过几次XML规范表明XML没有被排序(例如,如果你期望订单,那么它不是真正的XML)。据我所知,XML规范没有说明元素的顺序;它既没有明确的无序,也没有暗示没有秩序。
我已经知道了
但我想知道的是:XML规范(任何版本)是否都说明了元素的顺序?
答案 0 :(得分:4)
是的,XML规范关注元素顺序。 XML文档类型声明(DTD)是XML规范的一部分。它们可用于强制执行特定的元素顺序。该规范明确地讨论了元素顺序,例如在这里:
...管理允许的子元素类型以及允许它们出现的顺序。
符合其DTD的XML文档被视为有效。
但是,如果您只是谈论格式良好,而不是有效性,那么元素的顺序并不重要。
答案 1 :(得分:0)
通常假设父元素中子元素的顺序可能很重要,并且解析器将按原始顺序向应用程序报告元素。但是,当我上次查看时,规范并没有明确说明。这种疏忽大概是因为它对规范作者来说是完全显而易见的,他们主要对使用XML来表示文档感兴趣,其中一节中段落的顺序显然需要保留。
规范明确指出元素中属性的顺序并不重要。也许这就是你的想法。
答案 2 :(得分:0)
在XML架构定义中,您可以使用all
或sequence
来控制此问题。 Discussed here