次の方法で共有


ドキュメントに埋め込まれたスタイル シート ディレクティブ

既存の XML に <?xml:stylesheet?> のスタイル シート ディレクティブが含まれている場合があります (ハイフンではなくコロンが使用されていることに注意してください)。 次のデータに示すように、XML データに <?xml:stylesheet?> ディレクティブが含まれている場合、このデータを XML ドキュメント オブジェクト モデル (DOM) に読み込もうとすると、例外がスローされます。

<?xml version="1.0" ?>
<?xml:stylesheet type="text/xsl" href="test2.xsl"?>
<root>
    <test>Node 1</test>
    <test>Node 2</test>
</root>

これは、 <?xml:stylesheet?> が DOM に対する無効な ProcessingInstruction と見なされるために発生します。 XML 仕様の名前空間に従う ProcessingInstruction には、修飾名 (QNames) ではなく、コロンなしの名前 (NCNames) のみを指定できます。

XML仕様の名前空間に関するセクション6によると、LoadメソッドとLoadXmlメソッドが仕様に準拠することの影響は、ドキュメント内で次の通りです。

  • すべての要素型と属性名には、0 または 1 つのコロンが含まれます。

  • エンティティ名、ProcessingInstruction ターゲット、または表記名にコロンが含まれていない。

<?xml:stylesheet?>にコロンが含まれているため、2つ目の箇条書きのルールに違反しています。

World Wide Web Consortium (W3C) の XML ドキュメントへのスタイル シートの関連付けバージョン 1.0 の推奨事項によると、XSLT スタイル シートを XML ドキュメントに関連付ける処理命令は <?xml-stylesheet?>され、コロンはダッシュで置き換えられます。

こちらも参照ください