2010-11-17 3 views
2

Я начинаю изучать немного xml и xslt, и я читаю на w3c W3Schools, что они рекомендуют использовать элементы вместо атрибутов. Какая у вас практика и почему вы не хотите атрибутов -Элементы против атрибутов

есть ли какой-нибудь момент, когда вы хотите их на самом деле?

+1

Не могли бы вы связаться с точным местом w3c, если вы видели эту рекомендацию? Я хотел бы получить правильный контекст для этой рекомендации, прежде чем пытаться ответить. – Oded

+0

http://www.w3schools.com/xml/xml_attributes.asp раздел element vs attributes –

+2

w3schools - это не то же самое, что w3c. –

ответ

2

Основные технические ограничения на атрибуты:

  • Имена атрибутов уникальны в пределах элемента они украшают.

  • Атрибут атрибута не имеет значения; Процессоры XML не обязаны обрабатывать атрибуты элемента в физическом порядке, в котором они отображаются в документе.

  • Значения атрибутов должны быть текстовыми. Они не могут содержать элементы, комментарии или инструкции по обработке. Они не могут содержать CDATA. Они не могут содержать неэкранированные символы разметки.

Эти ограничения довольно строго регулируют то, что они есть и не подходят для использования атрибутов. Использование атрибутов для моделирования карты или словаря, ключи которого являются именами XML, и значения которых можно разумно представить в виде строк: хорошо. Использование атрибутов для сериализации данных, порядок обработки которых важен: плохо. (Я смотрю на вас, XAML.) Сохранение сериализованного XML в значении атрибута: возможно, но обычно указывает, что вы делаете что-то неправильно.

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

4

Атрибуты являются спецификациями данных, содержащихся в элементе. Например: заголовок элемент, язык заголовка a атрибут.

<title lang="en">A simple title</title> 

Атрибуты не должны быть визуализированы. Они должны содержать дополнительную информацию о данных, а не о самих данных.

+0

разве они не отображались? Какая цель тогда? Как я вижу, это вопрос структуры в вашем xml, но Im unsure, что использовать. Lang = "en" может быть также ребенком в названии. –

+0

-1: нужно не соглашаться с атрибутами, только являющимися спецификациями данных. Это слишком ограничивает их роль. –

+0

Я сказал: Спецификация ** на ** данные; Больше как ** метаинформация **. Атрибут «Слово или фраза, синтаксически подчиненная другому слову или фразе, которые она модифицирует». Он носит описательный характер. – Goldfrapper

Смежные вопросы