XSLT не может добавить DOCTYPE с помощью xs:output

Я использую XSLT для создания выходной страницы HTML. Мне нужно добавить тип документа на страницу вывода. Я гуглил, и это, кажется, может заставить его работать:

<xsl:output 
  doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
  doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
/>

Поэтому я добавил его в тестовый файл преобразования, transform.xsl:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output 
  doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
  doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
/>

<xsl:template match="/">

<html>
<head>
    <title>test</title>
</head>
<body>
content!
</body>
</html> 

</xsl:template>
</xsl:stylesheet>

Но выходной HTML не содержит тип документа... . В остальном пример... выходит нормально.

Что я делаю не так, почему не добавляется тип документа?

Спасибо!

РЕДАКТИРОВАТЬ: проблема решена, я использую eXist, и кажется, что инструкция xsl:output не будет работать, решение: список рассылки


person r1234x    schedule 13.05.2011    source источник


Ответы (1)


Я могу придумать два возможных ответа

(a) ваш процессор XSLT не соответствует спецификации, или

(б) ваш процессор XSLT не выполняет сериализацию дерева результатов, это делает что-то другое. Если сериализация выполняется не процессором XSLT (например, если вы отправляете выходные данные в DOM, а затем используете сериализатор DOM), то свойства сериализации XSLT будут игнорироваться.

person Michael Kay    schedule 13.05.2011