XML 最佳实践:属性与附加元素 [重复]

2024-02-19

两者之间有什么区别以及何时应该使用它们:

<person>
     <firstname>Joe</firstname>
     <lastname>Plumber</lastname>
</person>

versus

<person firstname="Joe" lastname="Plumber" />

Thanks


有以元素为中心和以属性为中心的 XML,在您的示例中,第一个是以元素为中心,第二个是 以属性为中心。

大多数时候,这两种模式是等效的,但也有一些例外。

以属性为中心

  • 尺寸小于以元素为中心的尺寸。
  • 互操作性不太好,因为大多数 XML 解析器会认为用户数据是由元素呈现的,因此使用属性来描述元素。
  • 无法为某些数据类型提供可为空的值。例如可为空的整数
  • 无法表达复杂类型。

以元素为中心

  • 复杂类型只能以元素节点的形式呈现。
  • 非常具有互操作性
  • 比以属性为中心的尺寸更大。 (可以使用压缩来显着减小大小。)
  • 可空数据可以用属性 xsi:nil="true" 表示
  • 解析速度更快,因为解析器仅查找用户数据的元素。

实际的

如果您确实关心 XML 的大小,请尽可能使用属性(如果合适)。在需要可为空、复杂类型或保存较大文本值的地方使用元素。如果您不关心 XML 的大小或者在传输过程中启用了压缩,请坚持使用元素,因为它们更具可扩展性。

背景

在 DOT NET 中,XmlSerializer 可以将对象的属性序列化为属性或元素。 在最近的WCF框架中,DataContract序列化器只能将属性序列化为元素,并且比XmlSerializer更快;原因很明显,它只需要在反序列化时从元素中查找用户数据即可。

这里有一篇文章也解释了它元素与属性 http://www.ibm.com/developerworks/xml/library/x-eleatt.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XML 最佳实践:属性与附加元素 [重复] 的相关文章

随机推荐