XML элементы могут иметь атрибуты, так же, как HTML.
Атрибуты предназначены для содержат данные, относящиеся к конкретному элементу.
XML-атрибуты должны быть заключены в кавычки
Значения атрибутов всегда должны быть заключены в кавычки. Либо одинарные или двойные кавычки могут быть использованы.
Для пола человека, то <person> элемент может быть записан следующим образом :
<person gender="female">
или как это:
<person gender='female'>
Если значение атрибута сама содержит двойные кавычки, вы можете использовать одиночные кавычки, как в этом примере:
<gangster name='George "Shotgun" Ziegler'>
или вы можете использовать символьные сущности:
<gangster name="George "Shotgun" Ziegler">
XML Элементы против атрибутов
Посмотрите на эти примеры:
<person gender="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<gender>female</gender>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
В первом примере пола является атрибутом. В последнем, пол является элементом. Оба примера дают ту же информацию.
Там нет никаких правил о том, когда использовать атрибуты или когда использовать элементы в XML.
Мой любимый способ
Следующие три XML-документы содержат точно такую же информацию:
Атрибут дата используется в первом примере:
<note date="2008-01-10">
<to>Tove</to>
<from>Jani</from>
</note>
<date> элемент используется во втором примере:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
</note>
Развернутое <date> элемент используется в третьем примере: (THIS IS MY FAVORITE) :
<note>
<date>
<year>2008</year>
<month>01</month>
<day>10</day>
</date>
<to>Tove</to>
<from>Jani</from>
</note>
Избегайте XML-атрибутов?
Некоторые вещи, чтобы учитывать при использовании атрибуты:
- атрибуты не могут содержать несколько значений (elements can)
- атрибуты не могут содержать древовидные структуры (elements can)
- атрибуты не легко расширяемой (for future changes)
Не в конечном итоге, как это:
<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
XML-атрибуты для метаданных
Иногда ссылки ID присваиваются элементам. Эти идентификаторы могут быть использованы для идентификации 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>
id атрибутов выше для идентификации различных нот. Это не является частью самой ноты.
То , что я пытаюсь сказать здесь , что метаданные (data about data) должны быть сохранены в качестве атрибутов, а сами данные должны быть сохранены в качестве элементов.