帮助构建xml文档

时间:2010-03-01 16:10:55

标签: xml

我有一个包含国家和城市的数据库。我想将此信息导出到xml文档,但想知道如何构建它。

我应该这样做:

<country>
 <name>Canada</name>
 <city>
  <name>Toronto</name>
  <population>1423200</population>
 </city>
 <city>
  <name>Ottawa</name>
  <population>1423200</population>
 </city>
</country>

或者像这样:

<country>
  <name>Canada</name>
  <cities>
     <city>
      <name>Toronto</name>
      <population>1423200</population>
    </city>
    <city>
      <name>Ottawa</name>
      <population>1423200</population>
    </city>
  </cities>
</country>

或者像这样:

<entity>
 <country>Canada</country>
 <city>Ottawa</city>
 <city_population>1423200</city_population>
</entity>
<entity>
 <country>Canada</country>
 <city>Toronto</city>
 <city_population>1423200</city_population>
</entity>

他们每个人的利弊是什么?是否有另一种结构化方式?

其中哪一个最适合未来的更改(添加数据)。

我第一次在xml中构建,所以反馈/提示会很棒!

1 个答案:

答案 0 :(得分:3)

您应该以与在代码中构造类相同的方式构建XML文档。因此,城市人口是城市本身的财产 - 它应该是城市节点的孩子。我会去第二个结构。

此外,它对您的对象更为谨慎。例如,在第二个解决方案中,不清楚“实体”的用途。

此外,它的数据重复次数较少,因为您必须在每个实体中声明country = canada。不过,我会改变你的第一个解决方案。将Country元素放在集合中:

<countries>
<country>
 <name>Canada</name>
 <cities>
 <city>
  <name>Toronto</name>
  <population>1423200</population>
 </city>
 <city>
  <name>Ottawa</name>
  <population>1423200</population>
 </city>
 </cities>
</country>
</countries>

它可以帮助您延长数据的使用时间。

编辑:一般情况下,当您重复对象时,最好将它们包装在“集合”元素中。这是一个很好的做法,因为你可以在集合中添加属性和其他一些好处 - 你不会迭代到父元素并选择属于同一类型的元素。