当前位置:  开发笔记 > Android > 正文

XML最佳实践:属性与其他元素

如何解决《XML最佳实践:属性与其他元素》经验,为你挑选了2个好方法。

这两者之间有什么区别,我应该在何时使用它们:


     Joe
     Plumber


谢谢



1> Ray Lu..:

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

大多数情况下,这两种模式是等效的,但也有一些例外.

以属性为中心

尺寸小于以元素为中心.

不是很可互操作,因为大多数XML解析器会认为用户数据是由元素呈现的,Attributes用于描述元素.

无法为某些数据类型提供可为空的值.例如nullable int

无法表达复杂的类型.

以元素为中心

复杂类型只能表示为元素节点.

非常可互操作

比属性中心更大的尺寸.(压缩可以用来显着消除尺寸)

可以用属性xsi表示可以为空的数据:nil ="true"

解析器更快,因为解析器只查找用户数据的元素.

实际的

如果您真的关心XML的大小,请尽可能使用属性,如果合适,请保留可以保存大文本值的可空,复杂类型和节点作为元素,如果您不关心XML的大小或者您有在运输过程中启用压缩,坚持使用元素.它更具可扩展性.

背景

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

这里有一篇文章解释了它与 Element vs属性



2> Greg Hewgill..:

将来添加

属性时,您不希望将其设置为XML属性.这是因为
可能是一个更复杂的元素,由街道地址,城市,国家等组成.

因此,您可能希望选择第一个子元素表单,除非您确定该属性不需要更深入.第一种形式允许将来具有更大的可扩展性.

如果您对空间感兴趣,请压缩XML.


你是对的,但为了表示单个实体的属性(原始例子中的"人")的一致性,你可能想要选择一个或另一个.这样你就不必记住以哪种方式存储哪个.
推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有