Последние учебники веб-разработки
×

XML Руководство

XML ГЛАВНАЯ XML Введение XML Как использовать XML дерево XML Синтаксис XML элементы XML Атрибуты XML Пространства имен XML дисплей XML XSLT XML XPath XML XLink XML Оценщик XML DTD XML схема XML сервер XML Приложения XML Примеры XML викторина XML сертификат

XML DOM

DOM вступление DOM Вершины DOM XMLHttpRequest DOM Доступ к DOM Узел информация DOM Список узлов DOM Пересекая DOM навигационный DOM Получить значения DOM Change Вершины DOM Remove Вершины DOM Replace Вершины DOM Create Вершины DOM Add Вершины DOM Clone Вершины DOM Примеры

DOM Справка

DOM Типы узлов DOM Узел DOM NodeList DOM NamedNodeMap DOM Документ DOM Элемент DOM Атрибут DOM Текст DOM CDATA DOM Комментарий DOM XMLHttpRequest DOM синтаксический анализатор

XML DTD

DTD вступление DTD Строительные блоки DTD элементы DTD Атрибуты DTD Элементы против Attr DTD юридические лица DTD Примеры

XSD Schema

XSD вступление XSD Как XSD <schema> XSD элементы XSD Атрибуты XSD ограничения

XSD Сложный

XSD элементы XSD пустой XSD Элементы только XSD Только текст XSD смешанный XSD индикаторы XSD <any> XSD <anyAttribute> XSD подмена XSD пример

XSD Data

XSD строка XSD Дата XSD числовой XSD Разное XSD Справка

Web Сервисы

XML Сервисы XML WSDL XML SOAP XML RDF XML RSS

 

XML Элементы против атрибутов


В XML нет никаких правил о том, когда использовать атрибуты, и когда использовать дочерние элементы.


Использование элементов против атрибутов

Данные могут быть сохранены в дочерних элементах или в атрибутах.

Посмотрите на эти примеры:

<person sex="female">
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>

<person>
  <sex>female</sex>
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>

В первом примере пола является атрибутом. В последнем, секс является дочерним элементом. Оба примера дают ту же информацию.

Там нет никаких правил о том, когда использовать атрибуты, и когда использовать дочерние элементы. Мой опыт показывает, что атрибуты удобны в HTML, но и в XML, вы должны стараться избегать их. Используйте дочерние элементы, если информация чувствует, как данные.


Мой любимый способ

I like to store data in child elements.

Следующие три XML-документы содержат точно такую ​​же информацию:

Атрибут дата используется в первом примере:

<note date="12/11/2002">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

Свидание элемент используется во втором примере:

<note>
  <date>12/11/2002</date>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

Развернутое элемента даты используется в третьем: (THIS IS MY FAVORITE) :

<note>
  <date>
    <day>12</day>
    <month>11</month>
    <year>2002</year>
  </date>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

Избегайте использования атрибутов?

Если вы избегать использования атрибутов?

Некоторые из проблем, с атрибутами являются:

  • атрибуты не могут содержать несколько значений (child elements can)
  • атрибуты не легко расширяемой (for future changes)
  • атрибуты не могут описывать структуры (child elements can)
  • Атрибуты более трудно манипулировать с помощью программного кода
  • Значения атрибутов не так легко проверить против DTD

Если вы используете атрибуты как контейнеры для данных, вы в конечном итоге с документами, которые трудно читать и поддерживать. Попробуйте использовать elements для описания данных. Использование атрибутов только для предоставления информации, которая не имеет отношения к данным.

Не в конечном итоге , как это (this is not how XML should be used) так, (this is not how XML should be used) :

<note day="12" month="11" year="2002"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>

Исключение моего атрибутов Правило

Правила всегда есть исключения.

Мое правило об атрибутах имеет одно исключение:

Иногда я задаю ссылки ID на элементы. Эти ссылки ID можно использовать для доступа к XML-элементы во многом таким же образом, как имя или ID атрибутов в HTML. Этот пример демонстрирует это:

<messages>
<note id="p501">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

<note id="p502">
  <to>Jani</to>
  <from>Tove</from>
  <heading>Re: Reminder</heading>
  <body>I will not!</body>
</note>
</messages>

Идентификатор в этих примерах, это просто счетчик, или уникальный идентификатор, чтобы идентифицировать различные заметки в файле XML, а не часть данных заметок.

То , что я пытаюсь сказать здесь , что метаданные (data about data) должны быть сохранены в качестве атрибутов, а сами данные должны быть сохранены в качестве элементов.