xml, HTML или xhtml в <xsl:output>: Который является лучшим выбором?

По историческим причинам у нас есть смесь

<xsl:output method="xml">

и

<xsl:output method="html">

и

<xsl:output method="xhtml">

во включать-иерархии файлов XSL. Теперь мы хотим осуществить рефакторинг так все использование файлов XSL тот же выходной метод.

В конце мы хотим произвести XHTML-вывод, таким образом, я предполагаю, что последний был бы лучшим выбором.

Но каковы различия между теми тремя выходными методами и который Вы использовали бы для какой решение?

Править: Я использую XSLT 2.0

8
задан B.E. 17 December 2009 в 07:47
поделиться

3 ответа

I found the answer by reading the XSLT 2.0 specification (XSLT 2.0 and XQuery 1.0 Serialization).

Given an empty instance of an XHTML element whose content model is not EMPTY (for example, an empty title or paragraph) the serializer MUST NOT use the minimized form. That is, it MUST output

and not

.

Given an XHTML element whose content model is EMPTY, the serializer MUST use the minimized tag syntax, for example
, as the alternative syntax

allowed by XML gives uncertain results in many existing user agents. The serializer MUST include a space before the завершающий />, например
,


и Карен .

Сериализатор НЕ ДОЛЖЕН использовать сущность ссылка ', которая, хотя допустимо в XML и, следовательно, в XHTML, не определен в HTML и не распознается всеми пользовательскими агентами HTML.

Сериализатору СЛЕДУЕТ выводить пространство имен декларации таким образом, чтобы в соответствии с требованиями XHTML DTD, если это возможно. В XHTML 1.0 DTD требует объявления xmlns = "http://www.w3.org/1999/xhtml" появиться в элементе html, и только на элементе html. В сериализатор ДОЛЖЕН выводить пространство имен декларации, которые соответствуют узлы пространства имен, присутствующие в дерево результатов, но НЕОБХОДИМО избегать вывод избыточного пространства имен объявления об элементах, где DTD сделает их недействительными.

Это означает, что ответ использует .

5
ответ дан 5 December 2019 в 10:42
поделиться

HTML will serialize as HTML, so the output may not be well-formed XML. If you are only sending to browsers and don't care about being able to parse as XML then that may work for you.

XML will serialize as XML, so the output will be well-formed, but you may run into some issues with browsers using the output. Small things, like self closing )

If you have an XSLT 2.0 engine and want well formed HTML output without the headache of worrying about how some elements are serialized, then use XHTML.

8
ответ дан 5 December 2019 в 10:42
поделиться

Насколько мне известно, в xslt 1.0 не существует метода : xhtml для директивы xsl: output .

wc3schools согласны с этим.

Поскольку XHTML - это диалект XML, я бы использовал именно его.

Однако, если вы используете xslt 2.0 , можно также использовать xhtml , поскольку это то, что вы выводите .

3
ответ дан 5 December 2019 в 10:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: