Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Синтаксис XML






Так же, как и в HTML, инструкции, заключенные в угловые скобки, называются тегами и служат для разметки основного текста документа. В XML существуют открывающие, закрывающие и пустые теги (в HTML понятие пустого тега тоже существует, но специального его обозначения не требуется).

Тело документа XML состоит из элементов разметки и непосредственно содержимого документа — данных. XML-теги предназначены определения элементов документа, их атрибутов и других конструкций языка.

Любой XML-документ должен всегда начинаться с инструкции <? xml? >, внутри которой также можно задавать номер версии языка, номер кодовой страницы и другие параметры, необходимые программе-анализатору в процессе разбора документа.

Содержимое XML-документа представляет собой набор эле­ментов, секций CDATA, директив анализатора, комментариев, спецсимволов, текстовых данных. Рассмотрим каждый из них подробней.

Элементы данных. Элемент — это структурная единица XML-документа. Например, заключая слово rose в теги, мы оп­ределяем непустой элемент, называемый < flower>, содержимым которого является rose. В общем случае в качестве содер­жимого элементов могут выступать как просто какой-то текст, так и другие, вложенные, элементы документа, секции CDATA, инструкции по обработке, комментарии, т. е. практически лю­бые части XML-документа.

Любой непустой элемент должен состоять из начального, ко­нечного тегов и данных между ними, заключенных: < flower> rose < /flower>.

Элемент в DTD определяется с помощью дескриптора! element, в котором указывается название элемента и структура его содержимого.

Например, для элемента < flower> можно определить сле­дующее правило:

<! ELEMENT flower PCDATA>

Ключевое слово element указывает, что данной инструкци­ей будет описываться элемент XML. Внутри этой инструкции за­дается название элемента (flower) и тип его содержимого.

Атрибуты. Если при определении элемента необходимо задать какие-либо параметры, уточняющие его характеристики, то имеется возможность использовать атрибуты элемента. Атрибут – это пара название = значение, которую надо задавать при определении элемента в начальном теге, например,

< cоlor RGB=" true" > #ff08ff< /color>

< cоlor RGB=" false" > white< /color>

Списки атрибутов элемента определяются с помощью ключевого слова! attlist. Внутри него задаются названия атрибутов, типы их значений и дополнительные параметры. Например для элемента < article> могут быть определены следующие ат­рибуты:

<! ATTLIST article

id ID #REQUIRED

about CDATA #IMPLIED

type (actual | review | teach) 'actual' ''

>

В данном примере для элемента article определяются три атрибута: id, about и type, которые имеют типы id (идентифи­катор), cdata и список возможных значений соответственно. Всего существует шесть возможных типов значений атрибута:

• cdata — содержимым документа могут быть любые сим­вольные данные;

• id — определяет уникальный идентификатор элемента в документе;

• idref (idrefs) — указывает, что значением атрибута должно выступать название (или несколько таких названий, разделенных пробелами во втором случае) уникального идентификатора определенного в этом документе элемента;

• entity (entities) — значение атрибута должно быть на­званием (или списком названий, если используется entities) компонента (макроопределения), определенно­го в документе;

• nmtoken (nmtokens) — содержимым элемента может быть только одно отдельное слово (т. е. этот параметр яв­ляется ограниченным вариантом cdata);

• список допустимых значений — определяется список зна­чений, которые может иметь данный атрибут.

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

• #required — определяет обязательный атрибут, который должен быть задан во всех элементах данного типа;

• #implied — атрибут не является обязательным;

• #FIXED значение — указывает, что атрибут должен иметь только указанное значение, однако само определение атрибута не является обязательным, но в процессе разбора его значение в любом случае будет передано програм­ме-анализатору. Значение задает значение атрибута по умолчанию

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

Например, & lt;, & gt; & quot; или & #036 (десятичная фор­ма записи), & #xla (шестнадцатеричная) и т. д.

Создаются DTD-сущности с помощью инструкции! entity:

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

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

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

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

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

Комментариями является любая область данных, заключенная между последовательностями символов: <! -- -->

Комментарии пропускаются анализатором и поэтому при разборе структуры документа в качестве значащей информации не рассматриваются.

Директивы анализатора. Инструкции, предназначенные для анализаторов языка, описываются в XML-документе с помощью специальных тегов <? и? >;. Программа клиента использует эти инструкции для управления процессом разбора документа. Наи­более часто инструкции используются при определении типа документа (например, <? Xml version=" l. 0"? >) или создании пространства имен.

CDATA. Чтобы задать область документа, которую при разбо­ре анализатор будет рассматривать как простой текст, игнорируя любые инструкции и специальные символы, но, в отличии от комментариев, иметь возможность использовать их в приложе­нии, необходимо использовать теги <! [cdata] и ]]>. Внутри этого блока можно помещать любую информацию, которая мо­жет понадобиться программе-клиенту для выполнения каких-ли­бо действий (в область cdata можно помещать, например, инст­рукции JavaScript). Естественно, надо следить за тем, чтобы в об­ласти, ограниченной этими тегами, не было последовательности символов]].






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.