Правила создания атрибутов

В качестве имени атрибута можно выбрать любое, удовлетворяющее следующим правилам:

  1. имя должно начинаться с буквы или символа подчеркивания (_), после чего могут следовать другие буквы, цифры, символы точки(.), тире или подчеркивание
  2. имена типов элементов, которые начинаются с префикса "xml"(при любом сочетании строчных или прописных букв), зарезервированы для стандартных имен. Хотя Internet Explorer 5 не слишком требователен в этом отношении, лучше не использовать этот префикс, чтобы избежать неприятностей
  3. каждое имя атрибута может только один раз присутствовать в одном и том же начальном теге или в теге пустого элемента.

Например, следующие описания имен в начальных тегах являются допустимыми:

 
<TITLE FileName="Waldo.ani">  
<LIST _1stPlace="Sam">      
<ENTRY Zip.Code="94941">       

Приведенные ниже имена атрибута недопустимы:

<TITLE FileName="Waldo1.ani" FileName="Waldo2.ani"> -дублирование имени атрибута внутри одного тега

<LIST 1stPlace="Sam"> - первый символ не может быть цифрой

<ENTRY A:Section="94941"> - в IE5 допускается, только если A объявлено как пространство имен

В качестве значения атрибута можно выбрать любое, удовлетворяющее следующим правилам:

  1. литерал может быть заключен как в одинарные('), так и в двойные(") кавычки;
  2. литерал не может содержать внутри себя тот же символ кавычек, которыми он ограничен;
  3. литер может содержать ссылку на символ или ссылку на внутренние примитивы общего назначения;
  4. литер не может содержать символ < (синтаксический анализатор может воспринять этот символ как начало описания XML разметки);
  5. литер не может содержать символ &, если это не ссылка на символ или примитив.

Ниже приведенные описания неправильные:

<EMPLOYEE FileName=""Waldo.ani"">-нельзя использовать символы-ограничители внутри литера

<ALBUM Type="<CD>">-нельзя использовать символ < внутри литера

<WEATHER Forecast="Cold & Windy"> - нельзя использовать символ &, если это не ссылка.

Если вы хотите использовать двойные кавычки (") внутри значения атрибута, следует использовать в качестве ограничителей одинарные кавычки ('). И обратное, если вы хотите использовать одинарные кавычки (') внутри значения атрибута, следует использовать в качестве ограничителей двойные кавычки (").

СОВЕТ Можно избавиться от всех ограничителей и вводить в имя атрибута любой символ, если воспользоваться ссылкой на примитив общего назначения.

Замечание: Если был создан корректно сформированный документ, не объявляющий тип документа, можно присваивать атрибуту любое значение, соответствующее приведенным требованиям. Но если было создано описание типа документа и внутри него определены атрибуты(cм. раздел DTD/Объявления списков атрибутов) , то плюс ко всему нужно еще учитывать и эти ограничения.