XML:属性还是孩子?

时间:2009-05-05 14:34:53

标签: xml xsd xml-attribute

在XSD,SOAP和其他XML约定中,您经常会看到以下内容:

<book>
 <title>Harry Potter</title>
 <author>J.K. Rowling</author>
</book>

现在我想知道,属性发生了什么?对我而言,将其写成:

更有意义
<book title="Harry Potter" author="J.K. Rowling" />

但显然,出于某种原因,比我聪明的人选择了其他方式。 有人可以解释为什么,那么属性是什么?

2 个答案:

答案 0 :(得分:5)

有些人认为差异是个人偏好的问题。你可以遵循一些指导原则。

W3Schools - XML Elements Vs. Attributes

IBM - Principles of XML Design

答案 1 :(得分:2)

没有硬性规定。我倾向于使用元数据的属性来了解元素中包含的数据。 e.g

<book author="JK Rowling" published="September 2001">Harry Potter</book>

虽然使用/特殊要求将决定这一点,而不是其他的。

另一个问题是后续处理。如果您使用的是SAX处理器,则此格式将导致一个方法回调,并填充了atteribute结构。将数据放在多个元素中将导致相应数量的方法调用(这可能是一个优化太多,但根据数据量可能值得考虑)