![]() |
1
12
当您想将信息附加到其他信息上时,属性是很好的,可能是为了描述应该如何解释这些信息。例如:
|
![]() |
2
2
您列出的关于元素的点是正确的,我将添加以下内容:
但是有时使用一个元素来建模一个数据点是过分的——特别是当您在一个父元素中有很多小的、异构的数据点时。将属性用于简单的事情可以提高可读性。有些人可能会争辩说XML不可读,或者不打算被人类读/编辑…但我一直在做。 考虑这个例子(基本超链接):
如果你不得不用这种方式写或读,你会喜欢它吗?
对我来说,这看起来像很多噪音。 |
![]() |
3
2
不要忘记属性是作为开始标记的一部分进行分析的。这意味着在解析时,您可以立即获得这些值,而不必等待结束标记。另外,对于所有元素标记,您不会调用所有的分析事件(如果您正在进行流分析)。
我更喜欢将属性用于有关所包含元素的元数据。例如,我喜欢将日期表示为
|
![]() |
4
2
属性就是元素的属性。如果需要嵌套多个元素,则使用元素。在您的日期示例中,我通常只使用属性,因为它比较小。
如果更容易处理和更小的存储和发送线,以及可以说更容易为人类阅读。一个日期永远不会有多天、多月或多年,因此没有理由将其作为元素。 |
![]() |
5
2
想想联系方式…
…您可以将这些扩展到元素中。但是,如果您正在处理成百上千万条记录,那么来自结束标记的额外开销可能会使文件膨胀。这可能会导致内存/处理器受限的系统出现问题和/或数据链路缓慢。将XML与元素放在一起也会使可视化地阅读和理解XML变得更加困难。而数据的视觉体验对于传输和存储可能并不重要,对于配置和维护可能非常重要。 另一个问题是,当您试图使用代码库外部的数据时,使用来自任何事物的元素可能会产生问题;您要知道元素是否可以重复,或者它们是否应该只包含一条简单的信息,会有更困难的时间。是的,您可以用XSD和DTD来约束这一点,但这通常比使XML易于理解要困难得多。 至于奖金问题… XML模式的版本控制将取决于您所开发的平台以及您的代码和平台对模式的严格程度。XML(和二进制文件)可以非常灵活…这就是XML可扩展的真正原因。 |
![]() |
6
1
W3Schools文章中的所有观点都是绝对有效和正确的。我同意——我几乎从不在XML文档中使用属性。 我使用它们的唯一时间可能是我需要识别一个实体,例如
但即使在这里,这也是一个折腾。你可以很容易地把身份证
此外,在我的例子中,由于WCF DataContractSerializer不支持XML属性(出于性能方面的原因),这也是不使用它们的另一个原因(很多): |
![]() |
7
0
为了让XML代码更简洁,只需保存键入的内容。当然,任何包含属性的XML文件
可以轻松地转换为“无属性”类型:
|
![]() |
8
0
这个问题也让我抓耳挠腮。对我来说,这是一个语义学的问题。我这样做似乎更自然
比
|
![]() |
9
0
我通常将属性用于使节点唯一的最小字段集。换句话说,它们表示主键。如果需要将XML与关系数据库相关联,这会使一些事情变得更容易。 |
![]() |
JobProcessTask · 如何读取此xpath表达式? 2 年前 |
![]() |
MBF · PHP导入/解析XML文件内容保存到数据库 2 年前 |
![]() |
TenkMan · SQL Server XML嵌套值查询表单990 2 年前 |
![]() |
Mohan.Murali.Peddini · XSLT模板循环记录 2 年前 |