Применение XML атрибутов
Здравствуйте, уважаемые посетители сайта okITgo.ru! Продолжим тему о языке разметки XML и рассмотрим использование атрибутов. Атрибуты в XML элементах могут присутствовать, также как в HTML. Атрибуты обеспечивают дополнительную информацию об элементе.
XML Атрибуты
В HTML атрибуты обеспечивают дополнительную информацию об элементах:
<img src="computer.gif"> <a href="demo.php"> |
XML атрибуты часто обеспечивают информацию, которая не является частью данных. В примере ниже тип файла не относится к данным, но может понадобиться для программного обеспечения, которое будет выполнять определенные действия с элементом:
<file type="gif">computer.gif</file> |
XML Атрибуты Должны Заключаться в Кавычки
Значения атрибутов в xml всегда должны быть заключены в кавычки. Могут использоваться как одинарные, так и двойные кавычки. Для указания пола элемента человек (person) можно написать так:
<person sex="female"> |
или так:
<person sex=’female’> |
Если значение атрибута само по себе содержит двойные кавычки, вы можете использовать одинарные кавычки, как в этом примере:
<gangster name=’George "Shotgun" Ziegler’> |
или вы можете использовать символьные объекты:
<gangster name="George "Shotgun" Ziegler"> |
XML Элементы против Атрибутов
Взгляните на следующие примеры:
<person sex="female"> <firstname>Виктория</firstname> <lastname>Петрова</lastname> </person> |
<person> <sex>female</sex> <firstname>Виктория</firstname> <lastname>Петрова</lastname> </person> |
В первом примере пол (sex) является атрибутом. В последнем, sex – это элемент. Оба примера предоставляют одну и ту же информацию.
Нет правил о том, когда использовать атрибуты, а когда элементы. Атрибуты удобны в HTML. В XML я советую их избегать. Используйте вместо них элементы.
Мой Любимый Способ
Следующие три XML документа содержат в точности одинаковую информацию:
XML атрибут date используется в первом примере:
<note date="10/01/2008"> <to>Петя</to> <from>Света</from> <heading>Напоминание</heading> <body>Не забудь мне позвонить завтра!</body> </note> |
Элемент date используется во втором примере:
<note> <date>10/01/2008</date> <to>Петя</to> <from>Света</from> <heading>Напоминание</heading> <body>Не забудь мне позвонить завтра!</body> </note> |
Расширенный элемент date используется в третьем: (ЭТО МОЙ ЛЮБИМЫЙ СПОСОБ):
<note> <date> <day>10</day> <month>01</month> <year>2008</year> </date> <to>Петя</to> <from>Света</from> <heading>Напоминание</heading> <body>Не забудь мне позвонить завтра!</body> </note> |
Избегать XML Атрибуты?
Некоторые из проблем с использованием xml атрибутов:
- атрибуты не могут содержать несколько значений (элементы могут)
- атрибуты не могут содержать древовидные структуры (элементы могут)
- атрибуты сложнее расширить (для будущих изменений)
Атрибуты трудно читать и обслуживать. Используйте элементы для данных, а атрибуты для хранения информации, которая не существенна по отношению к этим данным.
Не делайте подобным образом:
<note day="10" month="01" year="2008" to="Вася" from="Света" heading="Напоминание" body="Не забудь мне позвонить завтра!"> </note> |
XML Атрибуты для Метаданных
Иногда элементам назначаются ID ссылки. Эти идентификаторы могут использоваться для определения XML элементов во многом таким же образом, как атрибут id в HTML. Этот пример демонстрирует это:
<messages> <note id="501"> <to>Вася</to> <from>Света</from> <heading>Напоминание</heading> <body>Не забудь мне позвонить завтра!</body> </note> <note id="502"> <to>Света</to> <from>Вася</from> <heading>Re: Напоминание</heading> <body>ОК</body> </note> </messages> |
Атрибуты id выше используются для идентификации разных заметок. Они не являются частью заметки самой по себе.
Что я пытаюсь здесь сказать – метаданные (данные о данных) следует хранить как xml-атрибуты, а сами данные хранить как элементы.
Спасибо за внимание! До новых встреч на страницах сайта okITgo.ru.