Основы XML
9123a142

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


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

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

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

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

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

  • строка должна быть заключена в одинарные (') или в двойные (") кавычки;
  • строка не может содержать тот же символ кавычек, который используется в качестве ограничителей;
  • строка не может содержать символ амперсанда (&), если только он не используется в качестве первого символа в указании ссылки на символ или на общий примитив. Строка также не должна содержать символ процентов (%). (Чтобы познакомиться с возможными исключениями, обратитесь к разделу 4 спецификации XML, которую вы можете найти по адресу http://www.w3.org/TR/REC-xml.);
  • содержимое строки должно быть корректным для места, в которое вы предполагаете вставить примитив. Например, если вы помещаете примитив внутрь элемента, он должен содержать один или несколько компонентов, которые могут быть корректно вставлены в другие элементы (вложенные элементы, символьные данные и т.д., как описано в разделе "Типы содержимого элемента" в лекции 3). Либо, если вы вставляете примитив внутрь значения атрибута, он должен содержать символы, которые являются допустимыми для значений атрибута (см. раздел "Правила для корректного задания значений атрибутов" в лекции 3). Далее в этой лекции вы узнаете, куда можно помещать общие внутренние разбираемые примитивы.


Например, следующее DTD определяет общий внутренний разбираемый примитив с именем title:

<!DOCTYPE ARTICLE [ <!ELEMENT ARTICLE (TITLEPAGE, INTRODUCTION, SECTION*)> <!ELEMENT TITLEPAGE (#PCDATA | SUBTITLE)*> <!ELEMENT SUBTITLE (#PCDATA)> <!ELEMENT INTRODUCTION (#PCDATA)> <!ELEMENT SECTION (#PCDATA)> <!ENTITY title "The Story of XML <SUBTITLE>The Future Language of the Internet</SUBTITLE>"> ] >

Примитив title содержит символьные данные плюс элемент (SUBTITLE). В соответствии с объявлением в DTD это содержимое может быть корректно вставлено только в элемент TITLEPAGE, как показано ниже:

<TITLEPAGE> Title: &title; Author: Michael Young </TITLEPAGE>

XML-процессор заменит ссылку на примитив (&title;) содержимым примитива и обработает содержимое, как если бы вы непосредственно набрали его в документе в позиции ссылки, подобно следующему:

<TITLEPAGE> Title: The Story of XML <SUBTITLE>The Future Language of the Internet</SUBTITLE> Author: Michael Young </TITLEPAGE>


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