Я изучаю атрибуты 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 для метаданных
Иногда элементам присваиваются ID-ссылки. Эти идентификаторы могут использоваться для идентификации элементов XML почти так же, как атрибут идентификатора в 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>
Идентификатор выше - это просто идентификатор, позволяющий идентифицировать различные заметки. Это не часть самой заметки.
Я пытаюсь сказать, что метаданные (данные о данных) должны храниться как атрибуты, а сами данные должны храниться как элементы.