Стивен Холзнер - XSLT
- Название:XSLT
- Автор:
- Жанр:
- Издательство:Питер
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-271-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Холзнер - XSLT краткое содержание
Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.
Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.
Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике
XSLT - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
В следующем списке перечислены атрибуты :
• cdata-section-elements
(необязательный). Задает имена тех элементов, чье содержимое должно выводиться как разделы CDATA
. Принимает значения списка QName
, разделенного символами-разделителями;
• doctype-public
(необязательный). Задает открытый идентификатор, который будет использован в объявлении в выходных данных. Устанавливается в строковое значение;
•
в выходных данных. Устанавливается в строковое значение;doctype-system
(необязательный). Задает системный идентификатор, который будет использован в объявлении
• encoding
(необязательный). Задает кодировку символов. Устанавливается в строковое значение;
• indent
(необязательный). Определяет, будет ли выходной документ выровнен с отражением структуры вложенности. Устанавливается в yes
или no
;
• media-type
(необязательный). Задает тип MIME вывода. Устанавливается в строковое значение;
• method
(необязательный). Задает формат вывода. Принимает значения « xml
», « html
», « text
» или допустимое имя QName
;
• omit-xml-declaration
(необязательный). Определяет, будет ли включено в вывод объявление XML. Устанавливается в « yes
» или « no
»;
• standalone
(необязательный). Определяет, будет ли включено в вывод отдельное объявление XML, и если да — устанавливает его значение. Устанавливается в yes
или no
;
• version
(необязательный). Задает версию вывода. Принимает значение допустимого NMToken.
Чаще, всего используется атрибут method
, поскольку именно он определяет требуемый тип выходного дерева. Официально методом вывода до умолчанию является HTML, при условии, что выполняются все три следующих условия:
• корневой узел результирующего дерева имеет дочерний элемент;
• в названии элемента документа результирующего дерева присутствует часть « html
» (в любой комбинации верхнего и нижнего регистров) и пустой URI пространства имен;
• все текстовые узлы перед первым дочерним элементом корневого узла содержат только символы-разделители.
Если выполняются все три этих условия, то по умолчанию метод вывода устанавливается в HTML. В ином случае методов вывода по умолчанию является XML.
Тем не менее, не стоит полагаться на установки метода вывода по умолчанию, лучше явно присвоить этому атрибуту значение. Три распространенных значения атрибута method
— « html
», « xml
» и « text
», и мы познакомимся с ними в следующих разделах.
Метод вывода: HTML
Для метода вывода HTML процессор XSLT должен предпринять определенные действия. Например, для этого метода атрибут version
определяет версию HTML. Значение по умолчанию — 4.0.
Этот метод не должен добавлять завершающий тег для пустых элементов. (Для HTML 4.0 пустыми элементами являются
, , ,
, , ,
, , , , , и .) Метод вывода HTML должен распознавать названия элементов HTML независимо от регистра.
В соответствии с W3C, метод вывода HTML не должен скрывать содержимое элементов или
. Например, следующий элемент буквального результата:if (х < у) {...}
или следующий, использующий раздел CDATA:
должен быть преобразован в:
if (х < у) {...}
Метод вывода HTML не должен также подавлять символы <, встречающиеся в значениях атрибутов.
При установке метода вывода в HTML процессор может учесть атрибут выравнивания. Если этот атрибут установлен в yes
, процессор XSLT может добавить (или удалить) символы-разделители для выравнивания результирующего документа, поскольку это не влияет на отображение документа в браузере. Для метода вывода HTML значением по умолчанию является «yes».
Как вы могли предположить, метод вывода HTML завершает инструкции обработки при помощи >
, а не ?>
, а также поддерживает отдельные атрибуты, как и HTML. Например, тег
будет преобразован в:
Для этого метода можно установить атрибут media-type
, значением по умолчанию для которого является « text/html
». Метод HTML не должен убирать символ &, который появляется в значении атрибута, если сразу за ним следует фигурная скобка. Атрибут encoding
задает используемую кодировку. Если присутствует элемент
<���МЕТА>
сразу же после тега , определяя кодировку символов:
<���МЕТА http-equiv="Content-Type" content="text/html; charset=utf-8">
.
.
.
При помощи атрибутов doctype-public
или doctype-system
можно вывести объявление типа документа непосредственно перед первым элементом, как мы увидим при преобразовании XML в XHTML.
Таковы правила вывода HTML. Ниже приведен пример преобразования из XML в HTML с небольшими отклонениями. В этом случае таблица стилей будет фактически генерировать код JavaScript, демонстрируя создание JavaScript при помощи XSLT. В частности, мы прочитаем planets.xml
и создадим новый документ HTML, отображающий три кнопки — по одной для каждой из трех планет в planets.xml
. При щелчке на кнопке на странице будет выведена масса соответствующей планеты.
Все, что нам понадобится (листинг 6.1), — это два элемента : один для прохода в цикле по трем планетам и создания для каждой кнопки HTML; и один для прохода по планетам и создания для каждой функции JavaScript. В качестве имен функций JavaScript я воспользуюсь названием планет; при вызове функция выведет массу соответствующей планеты. Заметьте, что для создания нужного кода JavaScript нужно всего лишь применить элемент для получения названий и масс планет. Я также применю два новых элемента XSLT, и , которые мы рассмотрим позже в этой главе, для создания нового элемента и задания для него набора атрибутов.
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
The Mass Page
function () {
display.innerHTML = 'The mass of
equals
Earth masses.'
}
The Mass Page
BUTTON
()
Результат, включая элемент для нового кода JavaScript (листинг 6.2).
The Mass Page
function Mercury() {
display.innerHTML =
'The mass of Mercury equals .0553 Earth masses.'
}
function Venus() {
display.innerHTML = 'The mass of Venus equals .815 Earth masses.'
}
function Earth() {
display.innerHTML = 'The mass of Earth equals 1 Earth masses.'
}
The Mass Page
Как видите, при помощи XSLT я написал код JavaScript для прохода в цикле по планетам. Этот документ HTML показан на рис. 6.1. При щелчке на кнопку выводится масса соответствующей планеты.
Интервал:
Закладка: