Не удалось установить переходный тип документа для файла xhtml - PullRequest
0 голосов
/ 23 июня 2011

Я пытаюсь сгенерировать эту строку в HTML-файле:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Поскольку я генерирую html-файл, используя xsl-файл и xml-файл, я думаю, что код, используемый для генерации строки, должен быть включен в xsl-файл.

Я нашел это решение в интернете ----

<xsl:output method="html" doctype-system="http://www.w3.org/TR/html4/strict.dtd" doctype-public="-//W3C//DTD HTML 4.01//EN" indent="yes" />

но когда я перехожу со строгого на переходный, все идет не так.

У кого-нибудь есть хорошее решение?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Эта инструкция абсолютно верна с точки зрения компиляции:

<xsl:output method="html" 
   doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 
   doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" indent="yes"/>

Она не верна с точки зрения доктрины.Поскольку вы собираетесь генерировать правильно сформированный XML-документ на основе определенного DTD, вам лучше изменить метод вывода на xml:

<xsl:output method="xml" 
 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 
 doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" indent="yes"/>

Однако нет причины, по которой первая инструкция выше не должнаРабота.Возможно, ваш XSLT-процессор позаботится о методе вывода.

0 голосов
/ 09 июля 2011

Ваша первая и вторая строки не совпадают.Ваш желаемый результат - XHTML, но найденное решение, вторая строка, описывает HTML.Поскольку вы хотите, чтобы XHTML (который в основном представляет собой HTML с синтаксисом XML), используйте эту строку, например, @empo (+1), уже описанную:

<xsl:output method="xml" 
 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 
 doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" indent="yes"/>

Некоторые процессоры XSLT также поддерживают xhtml в качестве метода вывода (например, Saxon),Но это не стандарт (в XSLT 1.0), вместо этого используйте XML.

XML-> XHTML-преобразование не представляет большой разницы по сравнению с XML-> XML.

...