0

私が知っているように、XML は名前空間をサポートして、異なる仕様の要素の名前間の競合を解決します。

質問 1: HMTL は名前空間をサポートしていますか?

質問 2: 名前空間は、ツリー構造に関して DOM ツリーの構築にどのように影響しますか?

簡単な例が一番です。

4

1 に答える 1

1

以下は、HTML5 の解析に適用されます。従来のスタンドアロン HTML パーサーには必ずしも適用されません。

質問 1: HTML は名前空間をサポートしていますか?

text/html 構文では、制御できません。要素は、パーサーによって DOM に追加されるときに、その名前と祖先要素に基づいて、さまざまな名前空間に配置されます。

document.createElementNS を使用して、javascript を介して追加された新しい要素の名前空間を制御できます。

名前空間は application/xhtml+xml 構文で使用できますが、text/html 構文で使用できない新しい HTML5 準拠の要素はありません。

質問 2: 名前空間は DOM ツリーの構築にどのように影響しますか? 簡単な例が一番です。

text/html 構文で

<div>
  <svg>
    <script ...></script>
  </svg>
  <script ...></script>
</div>  

このdiv要素は HTML 要素であることがわかっているため、http://www.w3.org/1999/xhtml名前空間に配置されます。

このsvg要素は SVG 要素であることがわかっているため、http://www.w3.org/2000/svg名前空間に配置されます。

最初のscript要素は要素内にあるため、名前空間svgに配置されます。http://www.w3.org/2000/svg

2 番目のscript要素は特別な要素内にないため、 http://www.w3.org/1999/xhtml名前空間に配置されます

SVG または MathML 名前空間の要素に解析されるタグは、そのようなすべての要素に対して XML の方法で自己終了構文を使用できます。自己終了構文は、HTML 名前空間要素を形成するタグには影響しません。無効/>な HTML 要素のタグを終了するためにを使用することは許可されていますが、タグを終了するために を使用する場合と異なる効果はありません。>

于 2012-09-14T18:56:39.760 に答える