Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лекции / Lect4-02.doc
Скачиваний:
5
Добавлен:
12.05.2015
Размер:
137.22 Кб
Скачать

4.1.8. Определение сущности

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

&имя;

Используемые в документе XMLсущности могут быть двух типов:

  • анализируемые внутренние и внешние сущности (parsedentities) –воспринимаются и обрабатываются как данные XML;

  • неанализируемые внешние сущности (unparsedentities)–данные не обрабатываемыеXML(например, изображения или бинарные файлы, которые используются в данном документе).

4.1.8.1. Анализируемые сущности

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

<!ENTITYимя"значение">

где параметр имя задает имя сущности, которое будет использоваться в ссылке на сущность в документе XML, а литерал значение – это значение сущности, на которое будет заменяться ссылка на сущность в докумен­теXML.

Пример определения и использования внутренней сущности:

<?xml version="1.0" encoding="Windows-1251"?>

<!DOCTYPE guide [

<!ENTITY kpi 'НТУУ "КПИ"'>

<!ELEMENT guide (#PCDATA)>

]>

<guide>

В 1998 году Национальному техническому университету

Украины "Киевский политехнический институт"

(&kpi;) исполнилось 100 лет.

В настоящее время в &kpi; обучается свыше

30 Тыс. Студентов.

</guide>

При обработке документа все ссылки на сущность будут заменены значением сущности:

В 1998 году Национальному техническому университету Украины "Киевский политехнический институт" (НТУУ "КПИ") исполнилось 100 лет. В настоящее время в НТУУ "КПИ" обучается свыше 30 тыс. студентов.

Определение внешней анализируемой сущности имеет один из следующих форматов:

<!ENTITY имя SYSTEM "URI">

<!ENTITY имя PUBLIC "владелец" "URI">

В этом определении параметр имя задает имя сущности, а параметры "URI" и"владелец", также как и для определенияDOCTYPEопределяют местонахождение файла со значением сущности и ее владельца. Файл, содержащий значение сущности (без окаймляющих апострофов) обычно имеет расширение.ent.

В предыдущем примере, можно заменить внутреннее определение сущности внешним определением:

<!ENTITY kpi SYSTEM "kpi.ent">

Файл kpi.entсодержит значение сущности. Если в значении сущности используются буквы не латинского алфавита, их необходимо представлять, как сущности символовUnicode, поэтому содержимое файлаkpi.entдля сущности'НТУУ "КПИ"' будет иметь следующий вид:

НТУУ "КПИ"

4.1.8.2. Неанализируемые сущности

Для неанализируемой сущности (которая может быть только внешней сущностью) определение имеет один из следующих форматов:

<!ENTITY имя SYSTEM "URI" NDATA имя-нотации>

<!ENTITY имя PUBLIC "владелец" "URI" NDATA имя-нотации>

Здесь параметры имя,"URI" и"владелец" имеют тот же смысл, что и для анализируемой сущности, а параметримя-нотациизадает имя нотации. Нотации определяют формат неанализируемых экземпляров, формат элементов, которые породили атрибут нотации, или приложение, которому адресуется инструкция процесса. Нотации рассматриваются в следующем разделе.

Соседние файлы в папке Лекции