在提供项目列表时,XML文件中常见的是将它们包含在多个标记中。例如:
<system>
<version>2</version>
<title>The system</system>
<items>
<item id="1">one</item>
<item id="2">two</item>
<item id="3">three</item>
<item id="4">four</item>
</items>
<link>stackoverflow.com</link>
</system>
虽然我写起来似乎更简单
<system>
<version>2</version>
<title>The system</system>
<item id="1">one</item>
<item id="2">two</item>
<item id="3">three</item>
<item id="4">four</item>
<link>stackoverflow.com</link>
</system>
在已经详细的形式中,是否有充分的理由需要额外的废弃物?
答案 0 :(得分:1)
好问题。我认为答案在于如何将其映射到另一种语言或以编程方式访问XML。在大多数语言中,您可以创建包含具有不同名称的多个字段的结构,或者包含具有相同值的多个实例的数组。将<system>
描述为struct
类型并将items
描述为array
类型要容易得多。
另请参阅用于从解析的XML数据结构中提取数据的API。它们通常允许您通过名称或位置访问。当您知道所有元素属于同一类型时,将位置放在最有意义的位置。
答案 1 :(得分:1)
这两种形式经常遇到,而且两者都没有任何好处。添加包装元素使得某些语言的处理更容易一些。包装元素有时也是命名关系的机会,例如, (一个不好的例子,但想到的那个)
<person name="X">
<sons>
<person ref="e"/>
<person ref="f"/>
</sons>
<daughters>
<person ref="p"/>
<person ref="q"/>
</daughters>
</person>