Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_XML.doc
Скачиваний:
16
Добавлен:
03.05.2019
Размер:
3.94 Mб
Скачать

Тема 4. Определение и использование примитивов

Механизм примитивов в XML является средством повышения производительности, а также способом встраивать различные типы данных в ваш XML-документ. В XML-документе можно определить часто используемый блок XML-текста как примитив, что позволяет быстро вставлять текст в нужное место. Можно также определить как примитив внешний файл, чтобы иметь возможность включать данные файла в документ; эти данные могут содержать XML-текст, другой текст или не текстовые данные.

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

Далее будут рассмотрены основная терминология, используемая для примитивов, а также различные способы классификации примитивов. Затем будут описаны способы объявления каждого из примитивов различных типов и способы вставки примитивов в документ в необходимом месте. Далее будут рассмотрены возможности XML, которые позволяют вставлять любые типы символов в любом контексте: как ссылки на символ и как ссылки на примитивы.

4.1. Определения и классификация примитивов

В спецификации XML термин примитив (entity) в широком смысле относится к любому из следующих типов единиц хранения информации для XML-документов.

  • Собственно XML-документ как целое.

  • Внешнее подмножество DTD (см. выше).

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

  • Строка в кавычках, определенная как внутренний примитив в DTD и допускающая использование посредством ссылки.

Первые три типа единиц хранения информации являются файлами, а последний - строкой символов, заключенных в кавычки.

Здесь термин примитив используется в узком смысле, а именно, для обозначения внешнего файла или строки в кавычках, определенных как примитив в DTD документа и допускающих использование в документе посредством ссылок на примитивы. Например, следующее DTD определяет внешний файл Topics.xml (этот файл содержит список тем в статье, включенной в документ) как внешний примитив с именем topics, a также строку в кавычках ("Короткая история XML") как внутренний примитив с именем title:

<!DOC7YPE ARTICLE

[

<!ELEMENT ARTICLE (TITLEPAGE, INTRODUCTION, SECTION*)>

<!ELEMENT TITLEPAGE (#PCDATA)>

<!ELEMENT INTRODUCTION (#PCDATA)>

<!ELEMENT SECTION (#PCDATA)>

<!ENTITY topics SYSTEM "Topics.xml">

<!ENTITY title "Короткая история XML">

]

<

Впоследствии можно вставить полный список тем в любое нужное вам место статьи (например, в аннотацию, введение или заключение), просто включив ссылку на примитив &topics;

<INTRODUCTION>

Данная статья содержит следующие темы:

&topics;

</INTRODUCTION>

Можно вставить название статьи в любое место, включив ссылку на примитив &title;

<TITLEPAGE>

Title: &title;

Автор: Иван Петров

</TITLEPAGE>

Механизм примитивов наиболее полезен при наличии часто используемых фрагментов XML-текста. Например, если название статьи многократно фигурирует по ее тексту, использование примитива (как в предыдущем примере) позволит сократить время набора, добиться однородности и облегчить внесение изменений в название. Можно изменить текст названия, встречающегося в различных листах статьи, просто отредактировав объявление примитива в DTD. Например:

<!ENTITY title " Короткая история XML">

<! – модифицированное объявление примитива -->

Механизм примитивов также необходим при включении не XML-данных в XML-документ (например, графические данные для изображения).