ReST服务中需要XML元素序列的可能原因

时间:2011-05-23 15:24:32

标签: .net xml rest

我正在尝试更多地了解ReST和XML - 第三方公司询问我们是否可以接受按特定顺序请求xml元素的服务。这对我们造成了问题,因为我们正在使用具有继承层次结构的对象(因此无法使用等等.Net以递归方式序列化对象)。

我知道我可以使用IXmlSerializable Interface(为我们做更多的工作)来控制序列化,或者为每个请求创建单独的对象(不是很优雅)。但是我想避免改变我们现有的任何东西,因为它现在非常易于维护。

我想知道有哪些可能的原因要求按特定顺序排列XML元素(这似乎是一个糟糕的设计决策),以及为什么不明确订购xml元素的任何原因(除了明显降低可维护性的要点之外)当他们想要添加一个元素时。)

2 个答案:

答案 0 :(得分:1)

这是一个非常普遍的问题 - 但答案可能是,当人类体验这种格式和/或对所表示的内容进行天生排序时,以XML格式指定排序可能最重要。

因此XHTML 1.0(例如)的基本排序为< head>和< body> < html>中的元素文档元素,这对应于我们对大部分文本之前具有标题和元数据信息的文档的正常理解。在XHTML中,表(例如)具有表(度量)信息的排序(大致),后跟行,每行包含一系列单元。允许订单在这里有所不同会使已经复杂,不可预测且几乎不可能处理的事情发生。

但是,在XHTML的< head>中元素没有为< script>,< style>,< meta>,< link>的出现设置顺序或< object>元素。所以你在这一种语言中都有两种证据。

因此,对XML格式进行集合排序绝不一定是“糟糕的设计决策”,但可以证明良好的设计。

答案 1 :(得分:0)

按顺序要求XML元素的一个典型原因是,处理XML的任何事情都是在保持状态的同时保持状态。它从foo元素获取信息,然后在处理bar元素时使用,依此类推。

您可能会说,“好吧,然后先处理foo元素,然后处理bar元素,不要依赖文档顺序。”如果该流程在处理XML之前反序列化XML流,那么这一切都很好。但是如果接收进程使用XmlReader或SAX,它将解析和处理组合成一个步骤,最常见的是最大化性能并最小化内存使用。