Использование примитивов в XML-документах
Механизм примитивов в 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 типов примитивов: · общие внутренние разбираемые; · общие внешние разбираемые; · общие внешние неразбираемые; · параметрические внутренние разбираемые; · параметрические внешние разбираемые. Объявление примитива должно предшествовать любой ссылке на этот примитив. Для каждого типа примитива в представленной ниже таблице приведена форма записи ссылки на примитив и перечень возможных мест помещения ссылки на примитив. В таблице также приведены ссылки на разделы в этой лекции, в которых вы можете найти примеры. О ссылках на символы речь пойдет далее в этой лекции, но данный вид ссылок также включен в таблицу для полноты картины.
Популярное: Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (917)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |