=> Главная База Знаний Xslt Метод вывода: html


Метод вывода: html

Метод вывода: HTML

В нашей таблице стилей

planets.xsl
элемент
<xsl:output>
не используется; это значит, что для этой таблицы я полагался на правила вывода по умолчанию. Типом вывода по умолчанию является XML, если только процессор XSLT не встретит тег
<HTML>
или
<html>
. (Заметьте, что это не формальное требование, а только соглашение, которому не обязаны следовать все процессоры XSLT.) В
planets.xsl
я использовал тег <HTML> следующим образом:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:template match="/PLANETS">

  <HTML>

   <HEAD>

    <TITLE>

     The Planets Table

    </TITLE>

   </HEAD>

   .

   .

   .

Однако, если удалить этот тег:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:template match="/PLANETS">

  <HEAD>

   <TITLE>

    The Planets Table

   </TITLE>

  </HEAD>

  .

  .

  .

то такой вид вывода вы получите от процессора XT Джеймса Кларка. Обратите внимание на инструкции обработки XML в начале:

<?xml version="1.0" encoding="utf-8"?>

 <HEAD>

  <TITLE>

   The Planets Table

  </TITLE>

 </HEAD>

 .

 .

 .

С другой стороны, можно явно указать тип вывода HTML при помощи элемента

<xsl:output>
, даже не прибегая к элементу
<HTML>
:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:output method="html"/>

 <xsl:template match="/PLANETS">

  <HEAD>

   <TITLE>

    The Planets Table

   </TITLE>

  </HEAD>

  .

  .

  .

Вот вывод XT в данном случае — только фрагмент HTML, никаких инструкций обработки XML:

<HEAD>

 <TITLE>

  The Planets Table

 </TITLE>

</HEAD>

.

.

.

ЭЛЕМЕНТЫ <META>, АВТОМАТИЧЕСКИ ДОБАВЛЯЕМЫЕ В HTML

Если вы явно используете элемент <xml:output method="html"/>, некоторые процессоры XSLT, такие как Saxon, добавляют в элемент <head> выходного документа элемент <meta> подобным образом: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">.

В общем случае процессоры XSLT должны учитывать, что в HTML определенные элементы, такие как

<br>
,
<img>
,
<frame>
и т.д., пусты. Также пробелы и другие символы в значениях атрибута URI преобразуются в соответствии со спецификацией HTML (пробел становится «%20» и т.п.), инструкции обработки завершаются символом
>
, а не
?>
, и учитывается тот факт, что отдельным атрибутам значение не присваивается.