XML文件中多个项目的约定

时间:2015-04-05 12:58:16

标签: xml

在提供项目列表时,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>

在已经详细的形式中,是否有充分的理由需要额外的废弃物?

2 个答案:

答案 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>