помощь в структурировании XML-документа - PullRequest
3 голосов
/ 01 марта 2010

У меня есть база данных, которая содержит страны и города. я хочу экспортировать эту информацию в документ 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 Ответ

3 голосов
/ 01 марта 2010

Вы должны структурировать свои XML-документы так же, как вы структурировали бы свой класс в коде. Так как население городов является собственностью самого города - оно должно быть дочерним звеном городского узла. Я бы пошел на 2-й структуры.

Плюс, это больше мнемоника о ваших объектах. Например, неясно, какие «сущности» остаются в вашем втором решении.

Плюс у него меньше повторений данных, так как вы должны указать страну = Канаду в каждом субъекте. Я хотел бы изменить вам первое решение, хотя. Поместите элемент 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>

Это поможет вам позже расширить ваши данные.

РЕДАКТИРОВАТЬ: В общем, когда у вас есть повторение объектов, лучше обернуть их в элемент «коллекции». Это хорошая практика, поскольку вы можете добавлять свойства в саму коллекцию и некоторые другие преимущества - вам не нужно будет повторять элементы родителей и выбирать, какой из них принадлежит к тому же типу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...