
- •Лекция 4-05
- •Раздел 5. Обработка документов xml
- •Тема 5.1. Вспомогательные языки xml
- •Раздел 5. Обработка документовXml Тема 5.1. Вспомогательные языки xml
- •5.1.1. Язык xPath
- •5.1.1.1. Назначение и спецификации языка xPath
- •5.1.1.2. Типы данных в языках xPath и xQuery
- •5.1.1.3. ВыраженияXPath
- •5.1.1.3.1. Переменные и литералы
- •5.1.1.3.2. Числовые выражения
- •5.1.1.3.3. Выражения отношения
- •5.1.1.3.4. Булевские выражения
- •5.1.1.3.5. Выражения для типов последовательности
- •5.1.1.3.6. Условные выражения
- •5.1.1.3.7. Последовательности
- •5.1.1.3.8. Циклы
- •5.1.1.3.9. Квантификаторы
- •5.1.1.3.10. Выражения для последовательностей узлов
- •5.1.1.3.11. Приоритет операций
- •5.1.1.4. ФункцииXPathи xQuery
- •5.1.1.4.1. Функции-конструкторы
- •5.1.1.4.2. Числовые операторы и функции
- •5.1.1.4.3. Строковые функции
- •5.1.1.4.3.1. Функции сборки-разборки строк
- •5.1.1.4.3.2. Функции сравнения строк
- •5.1.1.4.3.3. Функции строковых значений
- •5.1.1.4.3.4. Функции поиска соответствия в строках
- •5.1.1.4.3.5. Функции с использованием регулярных выражений
- •5.1.1.4.4. Булевские функции и операторы
- •5.1.1.4.5. Функции и операторы для продолжительности, дат и времени
- •5.1.1.4.5.1. Операторы сравнения
- •5.1.1.4.5.2. Функции извлечения компонент
- •5.1.1.4.5.3. Арифметические операторы для продолжительности, дат и времени
- •5.1.1.4.6. Функции для узлов
- •5.1.1.4.7. Функции и операторы для последовательностей
- •5.1.1.4.7.1. Общие функции и операторы
- •5.1.1.4.7.2. Функции проверки количества элементов в последовательности
- •5.1.1.4.7.3. Функции и операторы для операций с множествами
- •5.1.1.4.7.4. Агрегатные функции
- •5.1.1.4.7.5. Операторы и функции, генерирующие последовательности
- •5.1.1.4.8. Контекстные функции
- •5.1.1.5. Выражения пути в xPath
- •5.1.1.5.1. Синтаксис выражений пути
- •5.1.1.5.2. Шаги с использованием оси поиска
- •5.1.1.5.2.2. Проверка узла
- •5.1.1.5.2.3. Предикаты
- •5.1.1.5.2.4. Сокращенный синтаксис выражений с использованием путей поиска
- •5.1.1.5.3. Шаги с использованием фильтров
- •5.1.2. Язык xQuery
- •5.1.2.1. Структура запроса xQuery
- •5.1.2.1.1. Главный модуль
- •5.1.2.1.1.1. Объявления параметров настройки
- •5.1.2.1.1.2. Объявления переменных
- •5.1.2.1.1.3. Объявления функций
- •5.1.2.1.1.4. Объявления опций
- •5.1.2.1.1.5. Операторы импорта
- •5.1.2.1.1.6. Объявления пространства имен
- •5.1.2.1.2. Библиотечный модуль
- •5.1.2.1.3. Комментарии
- •5.1.2.2. КонструкторыXQuery
- •5.1.2.2.1. Прямой конструктор
- •5.1.2.2.2. Вычисляемый конструктор
- •5.1.2.2.2.1. Вычисляемые конструкторы элемента и атрибута
- •5.1.2.2.2.2. Вычисляемый конструктор документа
- •5.1.2.2.2.3. Вычисляемый конструктор текстового узла
- •5.1.2.2.2.4. Вычисляемый конструктор комментария
- •5.1.2.2.2.5. Вычисляемый конструктор инструкции по обработке
- •5.1.2.3. Выражения flwor
- •5.1.2.3.1. Операторыfor,letиreturn
- •5.1.2.3.2. Операторwhere
- •5.1.2.3.3. Операторorderby
- •5.1.3. ЯзыкXLink
- •5.1.3.1. Глобальные атрибуты языкаXLink
- •5.1.3.2. Простые ссылки
- •5.1.3.3. Расширенные ссылки
- •5.1.3.4. Внешние ссылки
- •5.1.3.5. Задание базовогоUrIдля документаXml
5.1.3.1. Глобальные атрибуты языкаXLink
Спецификация языка XLinkверсия 1.0 была принята в 2001 году. Согласно этой спецификации любой элементXMLможет использоваться в качестве ссылки или части ссылки, если в нем определены глобальные атрибуты языкаXLink:type,href,role,arcrole,title,show,actuate,label,fromиto.
Атрибуты языка XLinkопределены в пространстве имен этого языка (обычноxlink), поэтому в элементах, в которых используются атрибутыXLink, либо в корневом элементе документаXMLдолжен быть задан атрибут
xmlns:xlink="http://www.w3.org/1999/xlink".
Основным атрибутом языка XLinkявляется обязательный атрибутxlink:type, определяющий тип ссылки. Использование остальных атрибутов зависит от заданного типа ссылки. Атрибутxlink:typeможет иметь одно из следующих значений:"simple","extended","locator","arc","resource","title"или"none".
5.1.3.2. Простые ссылки
Простые ссылки определяются заданием для атрибута xlink:typeзначения"simple". Простая ссылка определяет два ресурса: локальный и удаленный и исходящую дугу (arc) связи – от локального ресурса к удаленному. Для простой ссылки могут быть заданы атрибутыxlink:href,xlink:role, xlink:arcrole xlink:title,xlink:showиxlink:actuate, причем все атрибуты являются необязательными.
Атрибут xlink:hrefзадаетURIудаленного ресурса в форме, принятой вHTML..
Атрибуты xlink:role и xlink:arcrole задаютURIресурсов, более подробно описывающих заданный в атрибутеxlink:hrefудаленный ресурс и дугу к этому ресурсу.
Атрибут xlink:titleсодержит строку описания удаленного ресурса.
Атрибут xlink:showопределяет режим загрузки удаленного ресурса и может иметь одно из следующих значений:"new"– удаленный ресурс должен загружаться в новое окно или фрейм,"replace"– удаленный ресурс должен загружаться в то же окно или фрейм,"embed"– удаленный ресурс должен загружаться в том месте документа, в котором находится элемент вызова (так же, как дескриптор<img>вHTMLзаменяется изображением),"other"и"none"– другие способы загрузки, определяемые пользовательским агентом (браузером).
Атрибут xlink:actuateопределяет способ актуализации ссылки и может иметь одно из следующих значений:"onLoad"– переход к ресурсу выполняется сразу же после загрузки документа,"onRequest"– переход к ресурсу выполняется сразу же после наступления некоторого события (например, щелчка мыши по ссылке), "other"и"none"– другие способы актуализации, определяемые пользовательским агентом (браузером).
Пример использования простых ссылок в документе XML:
Определение DTDдля элементаsimple-link, описывающего простую ссылку, может иметь следующий вид:
<!ELEMENT COMPOSER (#PCDATA)>
<!ATTLIST COMPOSER
xlink:type CDATA #FIXED 'simple'
xlink:role CDATA #IMPLIED
xlink:title CDATA #IMPLIED
CDATA #REQUIRED
xlink:show (new|replace|embed|other|none)
#IMPLIED 'replace'
xlink:actuate (onRequest|onLoad|other|none)
#IMPLIED 'onRequest'
>
Элемент в документе XML, соответствующий этомуDTDможет иметь следующий вид:
<simple-link xlink:type="simple"
xlink:href="http://mycompany.com/index#part2.html"
xlink:title="Моя фирма">
Ссылка на мою фирму
</simple-link>.