在XML中,是为了重要吗?

是为了使公共父的元素出现在XML由XML文档捕获的有意义的数据块,或者是为了不指定为有意义? 例如,考虑两个XML文档:

<people> <person name="sam"/> <person name="juni"/> </people>

<people> <person name="juni"/> <person name="sam"/> </people>

难道这些文件被认为代表了相同的数据 ,或者是为了区别抓获?

--------------解决方案-------------

顺序的元素是XML显著,所以在您的例子中,两个文件都不同。 属性顺序并不显著,虽然。

<people>
<person name="kathy" id="1"/>
</people>

这是完全一样:

<people>
<person id="1" name="kathy"/>
</people>

它们不相同-无论顺序重要的是最多一个处理该程序或用户。 例如,在XHTML文档的元素序列确定它们是如何显示在浏览器,以及搜索引擎使用的位置在文件中判断数据的相对重要性。

顺序可能是重要的,但要看什么东西被传送。

在XHTML中,例如,顺序是非常重要的 -如果你曾经在一个随机的顺序兄弟段落,那将是非常令人困惑!

在其他许多情况下,这是不重要的。

XML是表示节点树只是一种方式。 XML本身说的顺序很重要:原料药必须保持秩序,例如-但它是由什么产生/解释数据真正关心的顺序与否。

XML规范有效有“宁可排序的一边” - 这是容易被忽视,如果你不关心它订购,但它是一个痛苦的重建排序,如果API的决定开关使用的东西。 (你必须把订单变成属性等)

根据这篇文章中,1.0版本的标准甚至不要求解析器报告中,他们出现在文档中的顺序兄弟姐妹。 有鉴于此,他们不会被认为是不同的,因为两个孩子都在那里。 或许,这种情况已经改变,从而使其他的答案是较新版本的XML,虽然。

而XML属性顺序并不显著尽可能XML标准而言,XML的文本表示确实必然发生在一个特定的顺序的属性。 这可能是一个问题像XML签名,生成数字签名的XML文档。 不同的属性顺序会产生不同的签名,这显然是错误的。

对于此(及其他)的原因,现在对XML规范化,其定义规则重新组织的XML文档的标准,使得它们保持相同的信息内容,但有东西的空白,命名空间声明和属性重新排列以可预测的方式。

从xml.com

规范的XML需要包含的命名空间声明和升序字典顺序属性。

该XML 1.0规格并没有说明有平等的名称作为同一个父元素的子元素的顺序什么。 如此看来,这个问题是不确定的。

然而,大多数XML解析器和API将保留序列中的文字表述给出。 所以,有可能实现该关心元素顺序的应用程序。 而事实上的回答你的问题是:是的,命令的事项。 两个例子是不同的。

仔细看,你会需要您评价您的使用情况是什么。 如果你的XML需要能够兼容不同的(也许第三方)应用程序,您应该总是假设秩序问题。 如果您对生产和消费应用总量控制,那么你就可以放松一下这种规则。

与往常一样,你必须去判断。

订单被捕获。

是有区别的。 您可以使用各种XML API的处理顺序的元素或查找索引的元素。 当然顺序可能无关紧要在特定的例子,但是这依赖于数据的语义。

http://www.ibm.com/developerworks/xml/library/x-eleord.html

也许在文章的讨论将帮助回答你的问题。 因为你的问题是有点开放,我不知道这是否涉及您的关注。

我觉得这些应该被认为是相同的,但它确实到软件或人读它来决定。 XML是写出来的数据只是一种方式。 应用程序确定数据如何使用,因此大部分的含义。

如果应用程序读入所有的人的元素,然后通过名称字母顺序排列它们,然后在XML文档中的次序是没有意义的。 如果您的应用程序在读取它们,并以相同的顺序人出现在XML分配席位,则顺序是非常重要的。

它是由一个使用数据的应用程序。 如果顺序是重要的,它应在的规格为人们产生文件说明。

从纯粹的XML有效性观点来看,这取决于模式,如果有的话,用于描述规则是什么格式化的XML。

这就是说,顺序必须保存(见http://www.w3.org/TR/xml-infoset/ 2.1.1),但无论是“重要”到一个应用程序是它的作者。

在一个架构,以便可不重要的使用的xs:all合成器,虽然我不知道这影响拍摄的顺序保存,即我仍然期望在原点/序列化才能被维持XML处理器。

然而,在1.0这个合成器加上子元素的限制,使他们必须出现0或1次。 XSD中1.1,删除此限制,使它更容易合同指定顺序并不重要,有效xs:all已成为无序版本xs:sequence

因为过于限制性1.0的xs:all合成器中,有序xs:sequence合成器必须被使用。 因此,为了经常被人为的。

采用1.1通过验证程序库的供应商是缓慢的。

因此,原料药需要考虑订单时被演变为以新的元素。 我不知道有任何XML序列化框架可以与1.1工作,你必须承担你的客户将使用1.0和将验证与1.0的规则和电抗器的1.1传入的消息。

卢克

分类:XML 时间:2015-03-15 人气:3
本文关键词: XML
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.327 (s). 10 q(s)