Чтение онлайн

ЖАНРЫ

Холзнер Стивен

Шрифт:

• требования XSLT 2.0 по адресу www.w3.org/TR/xslt20req. W3C выпустил группу целей для XSLT 2.0, включая дополнительную поддержку схем XML;

• спецификация XPath 1.0 по адресу www.w3.org/TR/xpath. XPath используется для нахождения и указания на определенные разделы и элементы в документах XML так, чтобы можно было с ними работать;

• требования XPath 2.0 по адресу www.w3.org/TR/xpath20req. XPath в данный момент обновляется — добавляется дополнительная поддержка XSLT 2.0.

Версии XSLT

Спецификации XSLT разрабатывались значительно активнее, чем спецификации для всего XSL. Рекомендация XSLT 1.0

была окончательно принята 16 ноября 1999 г., и эта версия является сегодня основной версией XSLT.

Затем появился рабочий проект XSLT 1.1 и, хотя первоначально он рассматривался в качестве пролога новой рекомендации, ряд сотрудников W3C начал работать над XSLT 2.0 — и через некоторое время 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"?>

Поделиться с друзьями: