Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 13.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
392.19 Кб
Скачать

3. Расширяемый язык разметки xml

Расширяемый язык разметки XML представляет собой дальнейшее развитие языка HTML и по сравнению с ним обеспечивает ряд дополнительных возмож­ностей, таких как:

  • подготовка и настройка XML-документов со сложной структурой;

  • использование информационных объектов (entity) для работы с группами данных;

  • описание типа документа DTD (Document Type Definition);

  • контроль правильности документа;

  • использование XML-формата для хранения структурированных однотипных данных (ранее для этой цели применялись только БД).

Отметим, что XML принадлежит подмножеству стандартного обобщенного язы­ка разметки SGML (Standard Generalized Markup Language). Хотя язык SGML предоставляет более развитые возможности по сравнению с XML, однако его применение требует больших затрат времени на подготовку и обработку соот­ветствующего SGML-документа. Поэтому он не получил такого широкого рас­пространения, как XML или HTML.

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

Документы XML можно разделить на правильно построенные (well-formed) и действительные (valid).

Правильно построенные документы XML удовлетворяют спецификации XML, но не имеют определения типа документа DTD (Document Type Definition).

Действительные документы XML, в отличие от правильно по­строенных, содержат также определение типа документа DTD (определяющее типы используемых данных и возможную структуру документа) или ссылаются на него.

Спецификация XML поддерживается рядом современных программ просмотра, в частности, браузерами Internet Explorer с версии 4.0 и выше и Netscape Navigator 5.0 и выше.

При описании XML-документа накладываются следующие дополнительные (по сравнению с HTML) ограничения:

  • каждому открывающему тегу должен соответствовать закрывающий тег;

  • пары открывающих и закрывающих тегов могут вкладываться друг в друга, однако пересечение открывающего и закрывающего тегов не допускается;

  • при определении элементов н атрибутов учитывается регистр символов;

  • все значения атрибутов должны указываться в одинарных (' ') или двойных (" ") кавычках.

Рассмотрим более подробно составляющие XML-документа, их назначение, объявления и примеры использования.

3.1. Составляющие xml-документа

В XML-документе обычно присутствуют следующие составляющие: элементы, атрибуты, информационные объекты и комментарии.

Элементы представляют собой части документа. Объявление элемента выполняется так:

<!ELEMENT Имя Содержание>

Объявление элементов может размещаться внутри документа или в определении типа документа DTD. В DTD можно объявить произвольное число элементов, при этом не все из них должны использоваться в документе XML. Отдельные элементы могут содержать другие элементы. Например, для указания того, что элемент еmрlоуее(сотрудник) содержит элементы surname (фамилия) и post (должность), нужно поместить в DTD определения элементов в следующем по­рядке:

<!ELEMENT surname(#PCDATA)>

<!ELEMENT post(#PCDATA)>

<!ELEMENT employee(surname, post)>

Здесь строка #pcdata является атрибутом и указывает, что соответствующий элемент содержит символьные данные.

Другие символы служат для задания режима использования элемента, например, что элемент в содержании документа необязателен или может использоваться несколько раз. Основные символы, применяемые при описании элемента, при­ведены в табл. 13.1.

Таблица 13.1

Основные символы для описания элемента

Символ

Имя символа

Назначение

( )

Круглые скобки

Содержит альтернативные элементы или элементы списка

|

Вертикальная

линия

Разделение альтернативных элементов

?

Знак вопроса

Элемент может отсутствовать или использоваться один раз

,

Запятая

Разделение элементов в списке

*

Звездочка

Элемент может отсутствовать или использоваться любое число раз

+

Плюс

Элемент должен использоваться не менее одного раза

Например, в строке

<!ELEMENT employee(surname, post+)>

знак + указывает на то, что в составе элемента employee элемент post должен присутствовать не менее одного раза.

Атрибуты служат для уточнения характеристик элементов, вида содержащейся в них информации и порядка ее размещения. Атрибуты можно указывать в строке объявления элемента (как показано выше) или в описании DTD в задаваемом с помощью тега <!attlist> списке атрибутов. Для действительного документа XML объявление атрибута в DTD задается следующим образом:

<!ATTLIST Имя_элемента Имя_атрибута Тип Значение_по_умолчанию>

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

  • cdata — символьные данные;

  • Enumerated — набор возможных значений;

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

  • idref — указатель на элемент с заданным значением id;

  • idrefs — указатель на несколько элементов в документе с помощью списка id, разделенного пробелами;

  • entity — имя внешнего информационного объекта;

  • entities — указатель на несколько внешних информационных объектов с помощью множества имен, разделенных пробелами;

  • nmtoken — имя XML;

  • notation — имя в обозначении, объявленном в DTD;

  • nmtokens — множество имен XML, разделенных пробелами.

Например, предположим, что в документе содержится тег вида:

<greeting language="Russia">

Приведенный тег может быть объявлен в DTD следующим образом:

<!ELEMENT greeting #PCDATA

<!ATTLIST greeting language CDATA "English"

Здесь в первой строке указывается, что элемент greeting может содержать контролируемые символьные данные. Во второй строке для этого элемента задается атрибут language типа cdata, и для атрибута устанавливается значение English, используемое по умолчанию.

Комментарии в XML, как и в HTML, пишутся в обрамлении открывающего <!-- и закрывающего --> тегов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]