Стивен Холзнер - XSLT
- Название:XSLT
- Автор:
- Жанр:
- Издательство:Питер
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-271-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Холзнер - XSLT краткое содержание
Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.
Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.
Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике
XSLT - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:

Рис. 6.1.Преобразование XML в HTML при помощи JavaScript
Метод вывода: XML
Формально при использовании метода вывода XML процессор XSLT создает хорошо сформированный внешний объект XML, который можно разобрать на общих условиях. Если корневой узел результирующего дерева имеет единственный дочерний узел-элемент и не имеет текстовых дочерних узлов. Тогда объект будет также хорошо сформированным документом XML.
При использовании метода вывода XML атрибут version
устанавливает версию XML результата. Заметьте, что если процессор XSLT не поддерживает эту версию XML, он будет использовать ту версию XML, которую поддерживает. По умолчанию установлено значение 1.0.
Атрибут encoding
устанавливает кодировку для результирующего документа. Процессоры XSLT должны поддерживать, по крайней мере, значения «UTF-8» и «UTF-16». Если процессор XSLT работает с другими значениями и не поддерживает указанную кодировку, он может сгенерировать ошибку. Если он этого не сделает, процессор должен использовать вместо нее UTF-8 иди UTF-16. Процессор XSLT не должен использовать кодировку, которая не была принята консорциумом W3C (см. www.ww3.org/TR/REC-xml). Если никакой атрибут кодировки не указан, по умолчанию процессор XSLT должен выбрать «UTF-8» или «UTF-16».
ОБРАБОТКА НЕИЗВЕСТНЫХ СИМВОЛОВ
Если результирующий документ содержит символ, который не может быть представлен в кодировке, используемой процессором XSLT для вывода, символ допустимо вывести как ссылку на символ. Если это невозможно, процессор XSLT должен сгенерировать ошибку.
Как и в случае с методом вывода HTML, если атрибут indent
установлен в «yes», метод вывода XML может добавить или удалить символы-разделители в результирующее дерево для того, чтобы выровнять результат. Значение по умолчанию — no. Заметьте, что если символы-разделители отбрасываются, информационное множество результирующего XML-документа должно быть таким же, как если бы символы-разделители вообще не добавлялись и не удалялись для выравнивания документа.
ВЫРАВНИВАНИЕ ДОКУМЕНТОВ СО СМЕШАННЫМ СОДЕРЖИМЫМ
Для документов со смешанным содержимым лучше не устанавливать атрибут indent в «yes», поскольку это вносит путаницу в работу процессора XSLT.
При помощи атрибута cdata-section-elements
можно задать разделенный символами-разделителями список имен элементов, чье содержимое должно трактоваться как разделы CDATA
. Например, если установить атрибут cdata-section-elements
в « DATA
»:
то следующий элемент буквального результата:
<:DOCUMENT>
будет преобразован в:
]]>
Кроме того, метод вывода XML будет выводить в результирующий документ объявление XML, если только атрибут omit-xml-declaration
не будет установлен в yes
. Как правило, объявление XML, помещаемое в результирующий документ, обычно включает версию XML (что обязательно) и информацию о кодировке (хотя формально информация о кодировке в документах XML не обязательна). Если задан атрибут standalone
, результирующий документ должен включать объявление отдельного документа с тем же значением, что и значение у атрибута standalone
.
При использовании атрибута doctype-system
процессор создает объявление типа документа непосредственно перед первым элементом. В этом случае имя, следующее за , будет именем корневого элемента. Заметьте, что если вы также используете атрибут doctype-public
, процессор XSLT выведет « PUBLIC
», вслед за ним открытый идентификатор и затем системный идентификатор. Если вы не используете атрибут doctype-public
, процессор выведет « SYSTEM
» и вслед за ним системный идентификатор. Теоретически атрибут doctype-public
должен игнорироваться, если не задан также атрибут doctype-system
, хотя большинство процессоров, кажется, не следуют этому правилу. Мы увидим, как работать с атрибутами doctype-public
и doctype-system
в этой главе при преобразовании XML в XHTML.
Наконец, для метода вывода XML значением по умолчанию для атрибута media-type
является « text/xml
».
Вы уже встречали в этой книге многие XML-XML преобразования. Например, преобразование из главы 4 просто копировало один документ XML в другой. Обратите внимание на метод вывода, который установлен в XML:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Этот пример был приведен в начале главы, в нем planets.xml
реорганизован на основе плотности планет:
.983
Mercury
.0553
58.65
1516
.943
Venus
.815
116.75
3716
1
Earth
1
1
2107
Вот таблица стилей (листинг 6.3), создающая это преобразование.
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Следующий пример впервые был приведен в главе 5. В этом случае я только перечислил планеты из planets.xml
, но в выходном документе я хотел видеть не просто фразу «The first three planets are: Mercury Venus Earth» (первые три планеты: Меркурий Венера Земля), a «The first three planets are: Mercury, Venus, and Earth.». Для этого я применил элементы :
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
The Planets
The first three planets are:
.
and
.
И вот результат:
The Planets
The first three planets are: Mercury, Venus, and Earth.
Хотя многие книги рассматривают главным образом преобразования из XML в HTML, важно понять, что преобразования XML-XML завоевывают все большую популярность, поэтому на них я также останавливаю ваше внимание.
Метод вывода: текст
Этот метод вывода представляет простой текст. В данном случае выходной документ являет собой только простой текст дерева документа. То есть процессор XSLT создает результирующее дерево, выводя строковое значение каждого текстового узла, без каких-либо сокращений.
Значением по умолчанию для атрибута media-type
является « text/plain
». Атрибут encoding
устанавливает кодировку, используемую процессором XSLT для преобразования последовательностей символов в последовательности байтов. Заметьте, что если результирующий документ содержит символ, который не может быть представлен в выходной кодировке, процессор XSLT должен сгенерировать ошибку.
В листинге 6.4 planets.xml
преобразуется в простой текст при помощи метода текстового вывода.
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
's mass is
Earth masses. Its radius is
miles. Its day is
Earth days long.
И вот результат — просто чистый текст, никакой разметки, никаких пропущенных символов, никаких инструкций обработки:
Читать дальшеИнтервал:
Закладка: