Технология XSLT
Шрифт:
<xsl:output indent="yes" doctype-system="/dtds/document.dtd"/>
<xsl:template match="/"><xsl:copy-of select="/"/></xsl: template>
</xsl:stylesheet>
Листинг 8.49. Выходящий документ
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE page SYSTEM "/dtds/document.dtd">
<page> content </page>
Атрибут doctype-public
Если в преобразовании атрибутом
doctype-system
xsl:output
задано внешнее определение логического типа документа, это определение может быть расширено также и публичным идентификатором. Публичный идентификатор указывается в атрибуте doctype-public
элемента xsl:output
. Его использование может быть продемонстрировано следующим примером. Листинг 8.50. Входящий документ
<?xml version="1.0" encoding="utf-8"?>
<page> content </page>
Листинг 8.51. Преобразование
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"
doctype-system="/dtds/document.dtd"
doctype-public="-//Document//Description" />
<xsl:template match="/"><xsl:copy-of select="/"/></xsl:template>
</xsl:stylesheet>
Листинг 8.52. Выходящий документ
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE page
PUBLIC "-//Document//Description" "/dtds/document.dtd">
<page> content </page>
Атрибут media-type
Атрибут
media-type
позволяет задавать медиа-тип содержимого выходящего документа. Для метода вывода "xml"
значением media-type
по умолчанию является "text/xml"
. Несмотря на то, что media-type
не оказывает никакого влияния на содержимое самого документа, XSLT-процессоры, используемые на стороне сервера, могут в зависимости от значения этого атрибута изменять MIME-тип исходящих данных при использовании, к примеру, такого протокола, как HTTP. Атрибут omit-xml-declaration
XML-документы, в принципе, могут быть корректными и без декларации XML. Поэтому XSLT позволяет опускать эту декларацию в выходящем документе, для чего значению атрибута
omit-xml-declaration
должно быть присвоено "yes"
: <xsl:output
omit-xml-declaration="yes"/>
В случае если значение атрибута
omit-xml-declaration
опущено или не равно "yes"
, процессор будет выводить в выходящем документе декларацию XML, которая включает информацию о версии (по умолчанию "1.0"
) и кодировке документа (по умолчанию "utf-8"
или "utf-16"
в зависимости от процессора). Атрибут standalone
Для того чтобы объявить документ как самостоятельный или несамостоятельный (standalone или non-standalone соответственно), следует использовать атрибут
standalone
xsl:output
. Если этот атрибут будет присутствовать в xsl:output
, то процессор включит в декларацию XML объявление standalone
с соответствующим значением. Если атрибут standalone
не указан, объявление standalone
в декларацию XML выходящего документа включено не будет. Метод вывода "html"
В нынешнем состоянии языки XML и HTML сильно похожи синтаксически, но при этом имеют некоторые довольно весомые различия. Метод вывода
"html"
используется для того, чтобы выводить документы в формате, который будет понятен большинству существующих на данный момент Web-браузеров. Одно из основных различий HTML и XML состоит в том, что в XML пустые элементы имеют формат
<имя/>
, в то время как в HTML тот же элемент был бы выведен, как <имя>
— без косой черты. Метод вывода "html"
учитывает эти различия и выводит теги пустых элементов HTML без косой черты после имени. В соответствии с технической рекомендацией языка HTML 4.0, пустыми элементами являются area
, base
, basefont
, br
, col
, frame
, hr
, img
, input
, isindex
, link
, meta
и param
. Пример
Листинг 8.53. Входящий документ
<?xml version="1.0" encoding="utf-8"?>
<page>
<title>I'm just a simple page...</title>
<content>I've got a simple content</content>
</page>
Листинг 8.54. Преобразование
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="html"/>
<xsl:template match="/page">
<html>
<head>
<title>
<xsl:value-of select="title"/>
</title>
</head>
<body>
Welcome!<br/>
Be our guest! <HR/>
<xsl:value-of select="content"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Листинг 8.55. Выходящий документ
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>I'm just a simple page...</title>
Поделиться:
Популярные книги
Авиатор: назад в СССР 12+1
13. Покоряя небо
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Третий
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
В зоне особого внимания
12. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Кровавая весна
6. Изгой
Фантастика:
фэнтези
9.36
рейтинг книги
Неудержимый. Книга XVIII
18. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Вперед в прошлое!
1. Вперед в прошлое
Фантастика:
попаданцы
5.00
рейтинг книги
Начальник милиции. Книга 3
3. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Не грози Дубровскому!
1. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Свадьба по приказу, или Моя непокорная княжна
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Муж на сдачу
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Кодекс Крови. Книга I
1. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Польская партия
3. Фрунзе
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Лорд Системы
1. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
4.00
рейтинг книги
Газлайтер. Том 2
2. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00