Основы XML
9123a142

Объявление параметрического внутреннего разбираемого примитива


Объявление для параметрического внутреннего разбираемого примитива имеет следующую общую форму записи:

<!ENTITY % ИмяПримитива ЗначениеПримитива>

Здесь ИмяПримитива есть имя примитива. Вы можете выбрать любое имя, соблюдая следующие правила:

  • имя должно начинаться с буквы или символа подчеркивания (_), вслед за которым могут идти или не идти буквы, цифры, точки (,), тире (–) или символы подчеркивания;
  • примитив может иметь такое же имя, что и общий примитив в документе. (Параметрические и общие примитивы занимают различные пространства имен.) Имя примитива также может совпадать с именем элемента или атрибута;
  • помните, что для всего текста разметки, в том числе и для имен примитивов, имеет значение регистр, в котором набраны символы. Так, примитив под именем Spot будет отличаться от примитива под именем spot.

ЗначениеПримитива есть значение примитива. Значение, присваиваемое параметрическому примитиву, представляет собой группу символов, заключенных в кавычки (литерал). Вы можете присвоить параметрическому примитиву любое значение типа литерал, при условии соблюдения следующих правил:

  • строка должна быть ограничена одинарными (') или двойными (") кавычками;
  • строка не может содержать символов кавычек, которые используются в качестве ограничителей;
  • строка не может содержать символа процентов (%) и символа амперсанда (&), если это не начальный символ в ссылке на символ или общий примитив;
  • вы можете поместить параметрический примитив в DTD только как объявление разметки, но не внутри объявления разметки. Следовательно, строка ЗначениеПримитива должна содержать один или несколько типов объявлений разметки, которые разрешено использовать в DTD. Эти типы объявлений разметки описаны в разделе "Создание DTD" в лекции 5. В частности, параметрический примитив может содержать объявления типа элемента, объявления списка атрибутов, объявления общих примитивов, объявления нотаций, инструкции по обработке, или комментарии. (Объявления параметрических примитивов и ссылки не допускаются.)
Примечание. Приведенные здесь правила использования значений примитивов, которые вы можете без опасения применять в любых ситуациях, являются несколько упрощенными в отличие от правил, содержащихся в спецификации XML. Спецификация, в определенных обстоятельствах, разрешает вам включать в значение примитива дополнительные составляющие, а также помещать ссылку на примитив внутри разметки и между объявлениями разметки. Подробности приведены в разделе 4 спецификации XML, которую вы можете найти по адресу http://www.w3.org/TR/REC-xml.


Например, следующее DTD объявляет параметрический внутренний не разбираемый примитив с именем author, который содержит три объявления разметки: комментарий, объявление типа элемента и объявление списка атрибутов. Содержимое примитива (т.е. замещающий его текст) помещается в конец DTD посредством ссылки на параметрический примитив (%author;);

<!DOCTYPE BOOK [ <!ENTITY % author "<!-- информация об авторе --> <!ELEMENT AUTHOR (#PCDATA)> <!ATTLIST AUTHOR Nationality CDATA 'American'>" > <!ELEMENT BOOK (TITLE, AUTHOR)> <!ELEMENT TITLE (#PCDATA)> %author; ] >

Обратите внимание, что значение атрибута по умолчанию, которое содержится в объявлении примитива ('American'), ограничено одинарными кавычками, чтобы избежать использования такого же символа, который применяется для ограничения всего значения примитива. Приведенное выше DTD эквивалентено следующему:

<!DOCTYPE BOOK [ <!ELEMENT BOOK (TITLE, AUTHOR)> <!ELEMENT TITLE (#PCDATA)> <! -- информация об авторе --> <!ELEMENT AUTHOR (#PCDATA)> <!ATTLIST AUTHOR Nationality CDATA 'American'> ] >


Содержание раздела