入力 XML ドキュメントを XSLT 経由で XHTML に変換したいと考えています。私のスタイルシートでは、次の属性で xsl:output を使用しています。
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" />
XML Copy Editor や Editix などのエディターで XSLT Processor を使用すると、XTHML 1.0 Strict への変換は正常に機能します。コマンド ライン xsltproc を使用しても、期待どおりに動作します。
しかし、スタイルシート ("myfile.xsl") を元の XML ドキュメント ("myfile.xml") にリンクすると、次のようになります。
<?xml-stylesheet type="text/xsl" href="myfile.xsl"?>
主要なブラウザー (Chrome、IE、または Mozilla) で "myfile.xml" を見ようとすると、予想される XHTML で XML ドキュメントを変換する機能はありません。ただし、Opera では完全に機能します。
私の XSLT (つまり、xsl:output) に何か問題がありますか、それとも主要なブラウザー (IE、Chrome、Mozilla) の XSLT 実装に問題がありますか?
で属性 method="xml" を使用した場合にのみ問題が発生します。method="html" を使用すると、すべてのブラウザーで動作します。しかし、HTML ではなく XHTML を生成する必要があるため、xsl:output で doctype-system および doctype-public 属性とともに method="xml" を使用します。