Как включить правильные определения XML / HTML в файл, созданный XSL? - PullRequest
2 голосов
/ 16 июня 2010

Насколько я понимаю, вам нужно включить следующий код в начало ваших файлов HTML, чтобы убедиться, что они анализируются правильно:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
...

Я создаю html-файл путем преобразования XML-файла с использованием XSL-файла. Это будет сделано с помощью инструмента MSXML, который выдает стандартный HTML-файл в качестве вывода.

Если я просто сделаю это:

<xsl:template match="/">
<html>
...

Все хорошо. Но если я сделаю это:

<xsl:template match="/">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
...

Я получаю ошибку XML Parsing Error: XML or text declaration not at start of entity в Firefox или Cannot have a DOCTYPE declaration outside of a prolog. в IE. Предположительно, это потому, что анализатор находит два <?xml определения и запутывается.

Как заставить браузер а) понять, что я использую правильный строгий HTML, и б) убедиться, что эти объявления помещены в выходной файл HTML, который генерирует MSXML?

1 Ответ

3 голосов
/ 16 июня 2010

Тип документа может управляться с помощью элемента xsl: output .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...