Для доступа к
XML-документам разработаны объектная модель документа
DOM и языки запросов XPath и XQuery.
Спецификация DOM, предложенная консорциумом
W3C, вводит модель XML-документа DOM в виде иерархии его элементов и язык запросов
XPath (XML Path Language), позволяющий ссылаться на части XML-документов (на те или иные элементы).
Прикладной интерфейс на основе DOM позволяет прикладным программам обращаться к структурам документов, извлекать, добавлять, изменять или удалять отдельные элементы или атрибуты. Спецификация DOM создана для использования практически с любым языком программирования.
XPath обеспечивает синтаксис и семантику для запросов и ссылок на содержимое XML-документов. Если язык
SQL служит для обращений к содержимому реляционных баз данных, то язык XPath предназначен для обращений к содержимому баз XML-документов. Выражение XPath представляют собой указание пути к узлу XML-документа в иерархической DOM-модели этого документа. Так, запрос "найти элементы 'termin' " при обращении к словарю приведенного в "
Язык XML" примера с помощью XPath-выражения
dictionary/item/termin позволит получить список всех терминов словаря, а запрос
dictionary/item/termin[@group='networks'] список только тех терминов, у которых атрибут group равен 'networks'.
Список некоторых операций и операторов языка XPath приведен в табл. 1.
Таблица 1
Оператор | Описание |
/ | Выбирает дочерние элементы коллекции, находящейся слева от него. При использовании в начале шаблона означает поиск от корневого элемента. |
// | Рекурсивный спуск; ищет указанный элемент на любой глубине. При использовании в начале шаблона означает рекурсивный поиск от корневого элемента. |
. | Текущий контекст. |
* | Wildcard, выбирает все элементы, независимо от имени. |
@ | Атрибут; префикс имени атрибута. При использовании без имени атрибута выбирает все атрибуты, независимо от их имени. |
: | Сепаратор пространств имен. Отделяет префикс пространства имен от имени элемента или атрибута. |
( ) | Группирует операции для явного задания очередности. |
[ ] | 1. Накладывает фильтр. 2. Используется для индексации коллекции. |
+ | Сложение. |
- | Вычитание. |
div | Деление с плавающей точкой (согласно IEEE 754). |
* | Умножение. |
mod | Возвращает остаток при делении с остатком. |
Предложены и другие языки обращений к XML-документам, например гибкий язык запросов
XQuery или язык XSLT (XSL Transformations). В языке XQuery запросы представляют собой последовательность выражений, задающих возвращаемые узлы, которыми могут быть элементы и атрибуты XML-документов. Язык
XSLT — подмножество
XSL, предназначенное для преобразования одних XML-документов в другие документы
XML,
HTML или документы некоторых других форматов. Как XQuery, так и XSLT используют правила языка XPath. Результатом распространения DOM на мультимедийные данные является язык SMIL — Synchronized Multimedia Integration Language.
При использовании современных
Web-браузеров возможна привязка XML-документа к HTML-странице. Например, в Internet Explorer, начиная с пятой версии, для этой цели предусмотрен тег
<XML>. Например:
<XML ID="имя_для_доступа_к_XML-документу"
SRC="имя_файла_XML-документа"> </XML>
Сцепление осуществляется с помощью некоторых HTML-тегов, например тега <SPAN>:
<SPAN DATASRC="#имя_для_доступа_к_XML-документу"
DATAFLD="элемент_XML-документа"> </SPAN>
Теперь "элемент_XML-документа" сцеплен с тегом <SPAN> и может быть отображен браузером с помощью записи строки
<SPAN параметры_стиля> элемент_XML-документа </SPAN>