XSLT | страница 59



Эта спецификация позволяет обеспечивать для документов XML и XSL базовый идентификаторы URI аналогично элементу HTML >. (Фактически, благодаря элементу HTML > существует 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:base="http://www.starpowder.com/"

> xlink:type="simple" xlink:show="new" xlink:href="reviews.xml">

> Mr. Blandings Builds His Dream House

>

Используя значение, присвоенное атрибуту >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 сущности документа или внешней сущности, содержащей инструкцию обработки;