время W3C решил прекратить работу над рекомендацией XSLT 1.1. Это означает, что рабочий проект XSLT 1.1 не будет развиваться далее — он навсегда останется в виде рабочего проекта и никогда не станет рекомендацией. Иными словами, не будет выпущено официальной версии 1.1 для XSLT.

Однако консорциум W3C также утверждает, что он планирует включить большую часть того, что было сделано в рабочем проекте XSLT 1.1, в XSLT 2.0, и поэтому в данной книге я кратко рассмотрю рабочий проект XSLT 1.1. Я обязательно отмечу материал как «только для рабочего проекта XSLT 1.1» при обсуждении нового материала, представленного в рабочем проекте XSLT 1.1.

Ниже перечислены изменения в XSLT 1.0, сделанные в рабочем проекте XSLT 1.1; заметьте, что этот список приведен здесь только в качестве справочного материала, так как большая часть материала вряд ли пока что-нибудь для вас значит:

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

• метод вывода больше не может произвольно добавлять узлы пространства имен, поскольку процесс установки пространства имен применяется автоматически;

• была добавлена поддержка для XML Base;

• теперь поддерживаются несколько выходных документов при помощи элемента <xsl:document>;

• элемент <xsl:apply-imports> теперь может иметь параметры;

• функции расширения теперь можно определять при помощи функции <xsl:script>;

• функции расширения теперь могут возвращать внешние объекты, не соответствующие никаким типам данных XPath.

В этой книге рассматривается рекомендация XSLT 1.0. а также рабочий проект XSLT 1.1. В развитие данной темы W3C и выпустил требования для XSLT 2.0, которые также рассматриваются в книге под именем XSLT 2.0. В следующем списке приведен обзор целей XSLT 2.0:

• добавить дополнительную поддержку для работы с содержимым схемы XML при помощи XSLT;

• упростить работу со строками;

• упростить работу с XSLT; 

• улучшить поддержку различных языков;

• сохранить обратную совместимость с XSLT 1.0;

• поддерживать повышенную эффективность процессора.

Хотя XSLT 2.0 еще некоторое время не будет выпущен в окончательном варианте, я рассмотрю все, что о нем известно, при обсуждении имеющих к нему отношение тем. Например, разработанный W3C последователь HTML — это основанный на XML язык XHTML. В XSLT 1.0 и в рабочем проекте XSLT 1.1 нет прямой поддержки преобразований из XML в XHTML, поэтому нам придется создать это преобразование с нуля. Однако такая поддержка входит в состав XSLT 2.0, и я отмечу этот факт при обсуждении XHTML.

Таким образом, мы рассмотрели краткий обзор тематики; давайте перейдем к работе. XSL предназначен для работы с документами XML, поэтому сначала я хочу рассмотреть структуру документов XML. Вы будете работать с документами XML, но сами таблицы стилей XSL также являются документами XML, что следует помнить при их написании. В этой книге считается, что вы обладаете знаниями и XML, и HTML.

Документы XML

Вы должны понимать, как работают документы XML, поэтому проверьте по материалам этого раздела, готовы ли вы к работе. Давайте посмотрим на примере документа XML:

<?xml version='1.0' encoding='UTF-8'?>

<DOCUMENT>

 <GREETING>

  Hello From XML

 </GREETING>

 <MESSAGE>

  Welcome to the wild and woolly world of XML.

 </MESSAGE>

</DOCUMENT>

Вот как работает этот документ: я начал с инструкции обработки XML <?xml version='1.0' encoding='UTF-8'?> (все инструкции обработки XML начинаются с <? и заканчиваются ?>), означающей, что используется XML версии 1.0, единственная определенная сейчас версия, и кодировка символов UTF-8, то есть используется восьмибитная сжатая версия Unicode:

<?xml version='1.0' encoding='UTF-8'?>

<DOCUMENT>

 <GREETING>

  Hello From XML

 </GREETING>

 <MESSAGE>

  Welcome to the wild and woolly world of XML.

 </MESSAGE>

</DOCUMENT>

Затем я создаю новый тег (tag) с именем <DOCUMENT>. Для тега можно использовать любое имя, не обязательно DOCUMENT; необходимо только, чтобы имя начиналось с буквы или символа подчеркивания (_), а последующими символами были буквы, цифры, символы подчеркивания, точки (.) или дефисы (-), но не пробелы. В XML теги всегда начинаются с < и заканчиваются >.

Документы XML образованы из элементов XML; последние начинаются с открывающего тега, такого как <DOCUMENT> (за которым следует содержимое (content) элемента, если оно есть, — например, текст или другие элементы), и завершаются закрывающим тегом, парным тегу открытия (он начинается с символов </ — например, </DOCUMENT>). Весь документ целиком, за исключением инструкций обработки, заключается в один элемент, называемый корневым (root) элементом; в нашем случае это элемент <DOCUMENT>:

<?xml version='1.0' encoding='UTF-8'?>

<DOCUMENT>

 .

 .

 .

</DOCUMENT>

Теперь я добавлю новый элемент, <GREETING>, в который заключено текстовое содержимое (здесь «Hello From XML», привет от XML) этого XML-документа:

<?xml version='1.0' encoding='UTF-8'?>

<DOCUMENT>

 <GREETING>

  Hello From XML

 </GREETING>

 .

 .

 .

</DOCUMENT>

После этого я могу добавить еще один элемент, <MESSAGE>, также образующий

Вы читаете XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату