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

We use cookies. Read the Privacy and Cookie Policy

Метод вывода: 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» и т.п.), инструкции обработки завершаются символом >, а не ?>, и учитывается тот факт, что отдельным атрибутам значение не присваивается.