![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Синтаксис 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). Естественно, надо следить за тем, чтобы в области, ограниченной этими тегами, не было последовательности символов]].
|