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

Дисциплины:

Архитектура (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)






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



 

В спецификации 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-документ (например, графические данные для изображения).

 

Типы примитивов

 

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

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

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

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

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



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

 

 

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

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

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

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

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

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

 


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

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