Xml атрибути

Як і в HTML, XML елементи можуть мати атрибути. При цьому значення атрибутів в XML і правило їх створення багато в чому схожі на атрибути в HTML.

Атрибути надають додаткову інформацію про елемент.

XML атрибути

В HTML атрибути надають деяку додаткову інформацію про елемент:

Атрибути часто надають інформацію, яка не є частиною даних. У прикладі нижче тип файлу не залежить від даних, але ця інформація може бути важлива для додатків, які будуть маніпулювати цим елементом:

XML атрибути повинні полягати в лапки

Значення атрибута завжди має полягати в лапки. Це можуть бути або подвійні, або одинарні лапки. Наприклад, підлогу персонажа можна записати так:

Якщо значення атрибута саме містить подвійні лапки, то можна використовувати одинарні лапки. наприклад:

або використовувати символи сутностей:

XML елементи або атрибути

Подивіться на наступні приклади:

У першому прикладі підлогу вказано в атрибуті. У другому, підлогу записаний, як елемент. Обидва приклади надають одну і ту ж інформацію.

Немає правил, що регулюють те, коли використовувати атрибути, а коли елементи. Атрибути широко використовуються в HTML. У XML, на мій погляд, краще їх уникати, і замість них використовувати елементи.

Що краще?

Наступні три XML документа містять абсолютно однакову інформацію:

Дата записана, як атрибут:

Дата записана, як елемент:

Дата записана, як розширений елемент (На мій погляд найкращий варіант):

Уникати XML атрибути?

При використанні атрибутів виникають деякі проблеми:

  • атрибути не можуть містити множинні значення (елементи можуть)
  • атрибути не можуть містити деревовидні структури (елементи можуть)
  • атрибути складно розширювати (для майбутніх змін)

Ніколи не використовуйте такі конструкції:

XML атрибути для метаданих

Іноді елементам надають ідентифікатори. Ці ідентифікатори використовуються для ідентифікації XML елементів в точності так само, як ідентифікаційні атрибути в HTML. Наступний приклад демонструє це:

У наведеному прикладі атрибут id використовується для ідентифікації різних заміток. Ця інформація не є частиною самої замітки.

Головна думка всього сказаного це те, що метадані (дані про дані) слід записувати, як атрибути, а самі дані, як елементи.