Я узнаю Атрибуты XML из W3Schools.
Автор упоминает следующее (основное внимание):
Элементы XML и атрибуты
<person sex="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
<person> <sex>female</sex> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
В первом примере секс является атрибутом. В последнем случае секс является элементом. Оба примера предоставляют ту же информацию.
Нет правил о том, когда использовать атрибуты и когда использовать элементы. Атрибуты удобны в HTML. В XML я советую избегать их. Вместо этого используйте элементы.
Избегать атрибутов XML?
Некоторые проблемы с использованием атрибутов:
- атрибуты не могут содержать несколько значений (элементы могут)
- атрибуты не могут содержать древовидные структуры (элементы могут)
- атрибуты не просто расширяемы (для будущих изменений)
Атрибуты трудно читать и поддерживать. Используйте элементы для данных. Используйте атрибуты для информации, не относящейся к данным.
Итак, мнение автора является известным, или это лучшая практика в XML?
Следует ли избегать атрибутов в XML?
W3Schools также упомянули следующее (выделение мое):
Атрибуты XML для метаданных
Иногда идентификационные ссылки присваиваются элементам. Эти идентификаторы могут использоваться для идентификации элементов XML во многом аналогично атрибуту ID в HTML. Этот пример демонстрирует это:
<messages> <note id="501"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> <note id="502"> <to>Jani</to> <from>Tove</from> <heading>Re: Reminder</heading> <body>I will not</body> </note> </messages>
Идентификатор выше - это просто идентификатор для идентификации различных заметок. Это не часть самой заметки.
Я хочу сказать, что метаданные (данные о данных) должны храниться как атрибуты, а сами данные должны храниться как элементы.