2009-05-05 78 views
2

在XSD,SOAP和其他XML约定,你会经常看到像:XML:属性还是孩子?

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

现在我想知道,发生了什么属性?对我来说更有意义,写为:

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

但很显然,由于某些原因,聪明的人比我选择了其他方式。 有人可以解释为什么,以及什么属性呢?

+0

请参阅: http://stackoverflow.com/questions/241819/xml-best-practices-attributes-vs-additional-nodes – Cuga 2009-05-05 14:37:46

回答

2

有没有硬性规定。我倾向于使用关于元素中包含的数据的元数据的属性。例如

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

虽然用法/特殊要求将确定这比anyrhing其他更多。

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

+0

+1对于SAX解析器的想法。 – 2012-01-26 14:24:23