Определение компонентов(макроопределений)

Компонент (entity) представляет собой определения, содержимое которых может быть повтор.но использовано в документе . В других языках программирования подобные элементы называются макроопределениями. Создаются DTD- компоненты при помощи инструкции !ENTITY:

<!ENTITY hello ' Мы рады приветствовать Вас!' >

Программа-анализатор, просматривая в первую очередь содержимое области DTD- определений, обработает эту инструкцию и при дальнейшем разборе документа будет использовать содержимое DTD- компонента в том месте, где будет встречаться его название. Т.е. теперь в документе мы можем использовать выражение &hello; , которое будет заменено на строчку "Мы рады приветствовать Вас"

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

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

В XML существует пять предустановленных внутренних символьных констант:

· &amplt; - символ "<"

· &ampgt; - символ ">"

· &ampamp; - символ "&"

· &ampapos; - символ апострофа "&apos;"

· &ampquot; - символ двойной кавычки """

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

<!ENTITY logotype SYSTEM "/image.gif" NDATA GIF87A>

Макроопределения правил- макроопределения параметров могут использоваться только внутри области DTD и обозначаются специальным символом %, вставляемым перед названием макроса. При этом содержимое компонента будет помещено непосредственно в текст DTD- правила

Например, для следующего фрагмента документа:

<!ELEMENT name (PCDATA)><!ELEMENT title (PCDATA | name)*><!ELEMENT author (PCDATA | name)*><!ELEMENT article (title, author)*><!ELEMENT book (title, author)*><!ELEMENT bookstore (book | article)*><!ELEMENT bookshelf (book | article)*>

можно использовать более короткую форму записи:

<!ELEMENT name (PCDATA)><! ENTITY %names 'PCDATA | name'><!ELEMENT article (%names;)*><!ELEMENT book (%names;)*><!ENTITY %content 'book | article'><!ELEMENT bookstore (%content;)*><!ELEMENT bookshelf (%content;)*>

Макроопределения часто используются для описания параметров в правилах атрибутов. В этом случае появляется возможность использовать одинаковые определения атрибутов для различных элементов:

<!ENTITY %itemattr 'id ID #IMPLIED src CDATA'><!ENTITY %bookattr "ISDN ID #IMPLIED type CDATA'><!ENTITY %artattr " size CDATA'><!ELEMENT book (title, author,content)*><!ATTLIST book %itemattr %bookattr;><!ELEMENT article (title, author, content)*><!ATTLIST article %itemattr %artattr;>







Дата добавления: 2015-09-14; просмотров: 525;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.