Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






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



 

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

 

<! ENTITY % ИмяПримитива SYSTEM СистемЛитерал>

 

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

Систем Литерал есть системный литерал, который описывает местонахождение файла, содержащего данные примитива. Системный литерал может быть заключен в одинарные (') или двойные (") кавычки и содержать любые символы, за исключением символа кавычек, который используется в качестве ограничителя.

Системный литерал задает URI файла, содержащего данные параметрического примитива. В настоящее время URI практически аналогичен стандартному унифицированному указателю ресурса Internet (URL). Можно использовать как полностью заданный URI, например:

 

<!ENTITY % declarations

SYSTEM "http://bogus.com/documents/Dedarations.dtd">

 

Либо можно использовать частичный URI, задающий местонахождение относительно местонахождения XML-документа, содержащего URI, например:

 

<!ENTITY % declarations SYSTEM "Declarations.dtd">

 

Относительные URI в XML-документах работают подобно относительным URL для HTML-страниц. Для более подробной информации об URI обратитесь к разделу 3.13 “Использование только внешнего подмножества DTD”.

Файл параметрического внешнего примитива должен содержать полные объявления разметки всех типов, допустимых в DTD. В частности, он может содержать объявления типа элемента, объявления списка атрибутов, объявления примитивов, объявления нотаций, инструкции по обработке, или комментарии. (Эти типы объявлений разметки описаны выше.) Также можно включать ссылки на параметрические примитивы и разделы INCLUDE и IGNORE. (См. раздел 3.15. ”Условия игнорирования разделов внешнего подмножества DTD”.)

Параметрические внешние разбираемые примитивы можно использовать для хранения группы взаимосвязанных объявлений. Допустим, вы занимаетесь продажей книг, CD-ROM, плакатов и другой продукции. Вы можете поместить объявления для каждого вида продукции в отдельный файл. Это позволит объединять эти группы объявлений различными способами. Например, вы хотели бы создать XML-документ, который описывает только имеющиеся у вас в наличии книги и CD-ROM. Для этого вы можете поместить объявления для книг и CD-ROM в DTD документа с помощью параметрических внешних разбираемых примитивов, как показано в следующем примере XML-документа:



 

<?xml version="1.0"?>

<!DOCTYPE INVENTORY

[

<!ELEMENT INVENTORY (BOOK | CD)*>

<!ENTITY % book_decls SYSTEM "Book.dtd">

OENTITY % cd_decls SYSTEM "CD.dtd">

%book_decls;

%cd_decls;

]

>

<INVENTORY>

<BOOK>

<BOOKTITLE>Картинки природы</BOOKTITLE>

<AUTHOR>Фёдор Петров</AUTHOR>

<PAGES>473</PAGES>

</BOOK>

<CD>

<CDTITLE>Большой концерт. Опус 3</CDTITLE>

<COMPOSER>Гандель</COMPOSER>

<LENGTH>72 минуты</LENGTH>

</CD>

<BOOK>

<BOOKTITLE>Следопыт</BOOKTITLE>

<AUTHOR>Д. Ф. Купер</AUTHOR>

<PAGES>444</PAGES>

</BOOK>

<!-- дополнительные виды продукции... -->

</INVENTORY>

 

Вот содержимое файла примитива Book.dtd:

 

<!ELEMENT BOOK (BOOKTITLE, AUTHOR, PAGES)>

<!ELEMENT BOOKTITLE (#PCDATA)>

<!ELEMENT AUTHOR (#PCDATA)>

<!ELEMENT PAGES (#PCDATA)>

 

А вот содержимое файла примитива CD.dtd:

 

<!ELEMENTCD (CDTITLE, COMPOSER, LENGTH)>

<!ELEMENT CDTITLE (#PCDATA)>

<!ELEMENT COMPOSER (#PCDATA)>

<!ELEMENT LENGTH (#PCDATA)>

 

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



 

Вставка ссылок на примитив

 

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

 

&ИмяПримитива;

 

а на параметрический примитив:

 

%ИмяПримитива;

 

где ИмяПримитива есть имя, присваиваемое примитиву в объявлении. Исключением является общий внешний не разбираемый примитив, который вы не можете вставить с использованием ссылки. Единственный способ использования этого типа примитива заключается в присвоении его имени атрибуту, имеющему тип ENTITY или ENTITIES. (См. раздел 3.10. “Задание атрибута маркерного типа”.)

Объявление примитива должно предшествовать любой ссылке на этот примитив.

 


Эта страница нарушает авторские права

allrefrs.ru - 2019 год. Все права принадлежат их авторам!