0

1 つの要素に XHTML フラグメント、具体的にはemspanなどの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 のどちらが適切であるかに興味がありますが、この問題に対する実用的な解決策があれば、もっと興味があります。

4

1 に答える 1

0

IE8 は「実際の」XHTML をサポートしていないため、コロンを含む要素は名前空間にまったく含まれていません。実際、IE8 で DOM を調べると、要素がテキストを適切にラップしていないことがわかります。

同じことが WebBrowser コントロールにも当てはまると思います。

于 2012-05-11T15:50:18.620 に答える