1 つの要素に XHTML フラグメント、具体的にはem、spanなどのXHTML タグをさらに含めることができる1 つ以上のpタグを含む XML ドキュメントがあります。これらはすべて「xhtml」名前空間にあり、XSD は XHTML をインポートしました厳密なスキーマなので、その点ではすべて問題ありません。私の問題はこれです:
私のアプリケーションは、これらの XHTML 段落をドキュメントとして表示する必要があります。私の考えでは、次のように、body タグで指定された名前空間を使用して、これらを XHTML ドキュメントにラップすることでした。
<!-- Stock XHTML pre-amble from application -->
<html>
<head>
<meta http-equiv="content-type"
content="application/xhtml+xml;charset=utf-16" />
</head>
<body xmlns:xhtml="http://www.w3.org/1999/xhtml">
<!-- Elements from XML document -->
<xhtml:p>Namespaced paragraph from XML</xhtml:p>
<xhtml:p>A partly <xhtml:em>italicised</xhtml:em> paragraph from XML</xhtml:p>
<!-- Post-amble -->
</body>
</html>
こうすれば、ドキュメントをまとめるときに、XHTML 要素からすべての名前空間を削除する必要がなくなります。
これは Firefox では正しく表示されますが、System.Windows.Forms.WebBrowser コントロール (.NET 3.0) でファイルとして保存すると、2 つの段落が一緒に流れ、emは無視されます (IE8 でも同じことが起こります)。つまり、WebBrowser は名前空間を解釈せず、xhtml:pを未知の要素として扱います。
純粋に学術的な観点から、Firefox と IE8 のどちらが適切であるかに興味がありますが、この問題に対する実用的な解決策があれば、もっと興味があります。