Возможный дубликат:
Должен ли я использовать элементы или атрибуты в XML?
Я никогда не мог понять, когда использовать атрибуты xml. я всегда использовать элементы. Я просто прочитал эту статью w3schools. В статье говорится, что использовать атрибуты неправильно, потому что:
- атрибуты не могут содержать несколько значений (дочерние элементы могут)
- атрибуты не просто расширяемы (для будущих изменений)
- атрибуты не могут описывать структуры (дочерние элементы могут)
- атрибуты сложнее манипулировать программным кодом Значения атрибутов
- нелегко протестировать против DTD
Единственное исключение, которое он указывает, - это когда вы назначаете идентификатор тегу.
Это правильно? Почему атрибуты существуют тогда? Это была ошибка дизайна с xml? Что-то мне здесь не хватает?
Единственная причина, по которой я мог бы думать об использовании атрибутов, - это отношения одного к одному. т.е.: имя. Но это должно быть отношение "один к одному" к чему-то, что является примитивным (или строкой). Потому что было бы важно, чтобы в будущем вы не хотели бы разбивать его на несколько разных разделов. то есть:
<date> May 23, 2001 </date>
в
<date>
<month> May </month>
<d> 23 </d>
<yr> 2001 </yr>
</date>
Потому что это невозможно с атрибутом.
Бонусный вопрос. В примере с датой можно было бы сделать что-то вроде этого:
<date>
<default> May 23, 200 </default>
<month> May </month>
<d> 23 </d>
<yr> 2001 </yr>
</date>
Придать будущим приложениям больше (или другую) информацию, все еще предлагая существующим приложениям тот же формат? Или вы должны это сделать:
<date> May 23, 2001 </date>
<NEWdate>
<month> May </month>
<d> 23 </d>
<yr> 2001 </yr>
</NEWdate>