Мегаобучалка Главная | О нас | Обратная связь


Использование примитивов в XML-документах



2015-12-04 917 Обсуждений (0)
Использование примитивов в XML-документах 0.00 из 5.00 0 оценок




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

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

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

· Внешнее подмножество DTD (см. раздел "Использование внешних подмножеств DTD" в лекции 5).

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

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

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

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

<!DOCTYPE ARTICLE [ <!ELEMENT ARTICLE (TITLEPAGE, INTRODUCTION, SECTION*)> <!ELEMENT TITLEPAGE (#PCDATA)> <!ELEMENT INTRODUCTION (#PCDATA)> <!ELEMENT SECTION (#PCDATA)> <!ENTITY topics SYSTEM "Topics.xml"> <!ENTITY title "A short History of XML"> ]>

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

<INTRODUCTION> This article will cover the following topics: &topics;</INTRODUCTION>

Вы можете вставить название статьи в любое место, включив ссылку на примитив &title; – как для следующего элемента:

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

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

<!ENTITY title "A Long History of XML"> <! -- модифицированное объявление примитива -->

Если вы знакомы с программированием, то легко уловите сходство между механизмом использования примитивов XML и определением констант в языках программирования (например, объявления с помощью инструкции #define в C).

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

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

Примитивы классифицируются по трем признакам:

· общие и параметрические. Общий примитив включает содержимое документа – т.е. XML-текст или другие текстовые или не текстовые данные, которые вы можете использовать внутри элемента Документ. Оба примера примитивов, рассмотренных в предыдущем разделе ( title и topics ) относятся к общим примитивам. Параметрический примитив содержит XML-текст, который может быть помещен в DTD. В спецификации XML термин примитив относится к общим примитивам;

· внутренние и внешние. Внутренний примитив содержится внутри строки в кавычках (примитив title в предыдущем разделе). Внешний примитив содержится в отдельном файле (примитив topics в предыдущем разделе);

· разбираемые или неразбираемые. Разбираемый примитив содержит XML-текст (символьные данные, разметка или то и другое). Когда вы вставляете ссылку на разбираемый примитив в документ, ссылка замещается содержимым примитива (замещающий текст), который становится составной частью документа. Синтаксический анализатор XML разбирает (сканирует) содержимое примитива точно так же, как он сканирует непосредственно введенный в документ текст. Оба примера примитивов, рассмотренных в предыдущем разделе ( title и topics ) являются разбираемыми примитивами.

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

Поскольку примитивы классифицируются по этим трем признакам и в каждой классификации имеются две категории, теоретически существует восемь потенциальных типов примитивов, как показано на диаграмме (см. рис. 6.1).

Однако 3 типа примитивов из этих 8 в XML не поддерживаются (на диаграмме они зачеркнуты). Следовательно, реально в XML имеется только 5 типов примитивов:

· общие внутренние разбираемые;

· общие внешние разбираемые;

· общие внешние неразбираемые;

· параметрические внутренние разбираемые;

· параметрические внешние разбираемые.

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

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

Тип примитива Форма записи ссылки на примитив, где ИмяПримитиваесть имя примитива Место, в которое вы можете поместить ссылку на примитив (пример)
Общий внутренний разбираемый &ИмяПримитива; В содержимое элемента (см. "Объявление общего внутреннего разбираемого примитива") В значение атрибута (как значение по умолчанию в объявлении атрибута, либо в начальном теге элемента) (см. "Ссылка на примитив Пример 1")
    В значение в объявлении внутреннего примитива (см. "Ссылка на примитив Пример 2")
Общий внешний разбираемый &ИмяПримитива; В содержимое элемента (см. "Объявление общего внешнего разбираемого примитива")
Общий внешний неразбираемый АтрПрим=’ИмяПримитива’ где АтрПрим есть атрибут типа ENTITY или ENTITIES В значение в объявлении внутреннего примитива (см. "Ссылка на примитив Пример 2") Вы не можете поместить ссылку на этот тип примитива, но можете присвоить имя примитива атрибуту, имеющему тип ENTITY или ENTITIES(см. "Объявление общего внешнего неразбираемого примитива")
Параметрический внутренний разбираемый %ИмяПримитива; В DTD в место помещения объявлений разметки, но не внутри объявлений разметки (исключения приведены в разделе 4 спецификации XML, доступ по адресу http://www.w3.org/TR/REC-xml) (см. "Объявление параметрического внутреннего разбираемого примитива")
Параметрический внешний разбираемый %ИмяПримитива; В DTD в место помещения объявлений разметки, но не внутри объявлений разметки (исключения приведены в разделе 4 спецификации XML, доступ по адресу http://www.w3.org/TR/REC-xml) (см. "Объявление параметрического внешнего разбираемого примитива")
Ссылка на символ &#9; или &#xh; где 9 – десятичный числовой код символа, а h – шестнадцатеричный числовой код символа В содержимое элемента (см. "Вставка ссылок на символы")
    В значение атрибута (в качестве значения по умолчанию в объявление списка атрибутов, или в начальный тег элемента) (см. "Вставка ссылок на символы")
    В значение в объявлении внутреннего примитива (см. "Вставка ссылок на символы")


2015-12-04 917 Обсуждений (0)
Использование примитивов в XML-документах 0.00 из 5.00 0 оценок









Обсуждение в статье: Использование примитивов в XML-документах

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (917)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)