Книга: XSLT
Поддержка XML Base
Поддержка XML Base
Одним из пунктов, добавленных в рабочий проект XSLT 1.1, была поддержка спецификации W3C XML Base. На момент написания книги спецификация XML Base существует в форме предлагаемой рекомендации (Proposed Recommendation), датированной 20 декабря 2000 г.; текущую версию документа можно найти по адресу www.w3.org/TR/xmlbase/.
Эта спецификация позволяет обеспечивать для документов XML и XSL базовый идентификаторы URI аналогично элементу HTML <BASE>
. (Фактически, благодаря элементу HTML <BASE>
существует XBase: W3C взял на себя обязательство дать XML всю мощь ссылочной модели HTML 4.0 и затем развивать ее.) Как вы помните, одним из свойств элементов XSL является их базовый URI, и теперь его можно устанавливать при помощи XML Base. Однако пока ни один из известных мне процессоров XSLT не поддерживает XML Base.
Здесь будет приведен только обзор работы с XML Base: для установки базового URI XML-документа можно использовать атрибут xml:base
. Другие идентификаторы URI документа затем вычисляются, используя это значение в качестве базы. Заметьте, что xml:base
использует пространство имен xml
, которое предопределено в XML как "http://www.w3.org/XML/1998/namespace
". В следующем примере используются ссылки XML, XML links (или XLinks):
<?xml version="1.0"?>
<MOVIE_REVIEW xmlns:xlink="http://www.w3.org/1999/xlink"
xml:base="http://www.starpowder.com/"
xlink:type="simple" xlink:show="new" xlink:href="reviews.xml">
Mr. Blandings Builds His Dream House
</MOVIE_REVIEW>
Используя значение, присвоенное атрибуту xml:base
, URI атрибута xlink:href
, "reviews.xml
" раскрывается в полный URI "http://www.starpowder.com/reviews.xml
". Подобным образом можно при помощи xml:base задать базовый URI для документа или конкретного элемента.
В рабочем проекте XSLT 1.1 с каждым узлом связан его URI, называемый базовым URI, который используется для раскрытия значений атрибута, представляющих относительные URI, в абсолютные URI. Вот как следует определять базовый URI:
• базовый URI корневого узла — это URI документа;
• базовый URI узла элемента— это базовый URI, заданный в элементе атрибутом xml:base
(если таковой существует), или базовый URI элемента- родителя элемента в документе, или внешняя сущность (если существует), или базовый URI сущности документа или внешней сущности, содержащей элемент;
• базовый URI для узла инструкции обработки — это URI, который будет применен к ссылке URI в содержимом инструкции обработки. В соответствии со спецификацией XML Base, базовым URI для ссылки URI, появляющейся в содержимом инструкции обработки, является базовый URI родительского элемента инструкции обработки (если таковой имеется) в пределах сущности документа или внешней сущности, или базовый URI сущности документа или внешней сущности, содержащей инструкцию обработки;
• базовым URI для текстового узла, узла комментария или узла атрибута является базовый URI родителя этого узла;
• базовый URI для узла пространства имен, однако, зависит от реализации.
Установка базовых URI документов и элементов может оказаться удобной, если вам приходится работать с очень большим множеством документов. При реорганизации этого множества документов вам нужно будет переустановить только один базовый URI, а не все индивидуальные URI. Однако, как я уже говорил, из известных мне процессоров XSLT ни один пока не поддерживает XML Base.
- Деревья и узлы
- Модель информационного множества против модели дерева XSLT
- Работа с элементами XSLT
- Инструкция обработки
- Элемент
- Элементы таблиц стилей высокого уровня
- Элемент
- Тела шаблонов
- Элемент
- Доступ к значениям узлов
- Поддержка XML Base
- Выбор методов вывода
- Упрощенные таблицы стилей
- Встроенные таблицы стилей
- Элемент
- Элемент
- Элемент
- Преобразование документов XML при помощи Internet Explorer
- Запуск InterBase-сервера
- Расширенная установка InterBase-сервера
- Резервное копирование базы данных InterBase
- Резервное копирование при работе InterBase в режиме 24x7
- Миграция между различными версиями InterBase
- Перевод базы данных InterBase 6.x на 3-й диалект
- Профилактика повреждений баз данных InterBase
- Восстановление "безнадежных" баз данных. InterBase Surgeon
- Статистика базы данных InterBase
- Информация заголовочной страницы (Database header)
- Тестирование Web-сервиса XML с помощью WebDev.WebServer.exe
- Преобразование XML в реляционную базу данных