Xml атрибути
Як і в HTML, XML елементи можуть мати атрибути. При цьому значення атрибутів в XML і правило їх створення багато в чому схожі на атрибути в HTML.
Атрибути надають додаткову інформацію про елемент.
XML атрибути
В HTML атрибути надають деяку додаткову інформацію про елемент:
Атрибути часто надають інформацію, яка не є частиною даних. У прикладі нижче тип файлу не залежить від даних, але ця інформація може бути важлива для додатків, які будуть маніпулювати цим елементом:
XML атрибути повинні полягати в лапки
Значення атрибута завжди має полягати в лапки. Це можуть бути або подвійні, або одинарні лапки. Наприклад, підлогу персонажа можна записати так:
Якщо значення атрибута саме містить подвійні лапки, то можна використовувати одинарні лапки. наприклад:
або використовувати символи сутностей:
XML елементи або атрибути
Подивіться на наступні приклади:
У першому прикладі підлогу вказано в атрибуті. У другому, підлогу записаний, як елемент. Обидва приклади надають одну і ту ж інформацію.
Немає правил, що регулюють те, коли використовувати атрибути, а коли елементи. Атрибути широко використовуються в HTML. У XML, на мій погляд, краще їх уникати, і замість них використовувати елементи.
Що краще?
Наступні три XML документа містять абсолютно однакову інформацію:
Дата записана, як атрибут:
Дата записана, як елемент:
Дата записана, як розширений елемент (На мій погляд найкращий варіант):
Уникати XML атрибути?
При використанні атрибутів виникають деякі проблеми:
- атрибути не можуть містити множинні значення (елементи можуть)
- атрибути не можуть містити деревовидні структури (елементи можуть)
- атрибути складно розширювати (для майбутніх змін)
Ніколи не використовуйте такі конструкції:
XML атрибути для метаданих
Іноді елементам надають ідентифікатори. Ці ідентифікатори використовуються для ідентифікації XML елементів в точності так само, як ідентифікаційні атрибути в HTML. Наступний приклад демонструє це:
У наведеному прикладі атрибут id використовується для ідентифікації різних заміток. Ця інформація не є частиною самої замітки.
Головна думка всього сказаного це те, що метадані (дані про дані) слід записувати, як атрибути, а самі дані, як елементи.