2012-05-14 12 views

答えて

19

XHTMLコードでは、Webページに含まれる他のXMLベースの言語を区別するために名前空間を使用できます。ここでは、名前空間 "svg"がタグ "svg"の前に使用されています。

namespace:tagname 

この

は場合に有用であることができる2個のタグ(例えば、XHTMLやSVGに)同じ名前を持って、あなたは正確にあなたが参照どちらを指定します。タグは xmlns属性で指定できます。ご存知のように、XHTML文書は、あなたが

<html xmlns:prefix="http://www.w3.org/1999/xhtml"> 

などの接頭辞を指定することができ

<html xmlns="http://www.w3.org/1999/xhtml"> 

で始まり、その後、あなたは

<prefix:head> 
    <prefix:title></prefix:title> 
</prefix:head> 

と似てあなたが

<svg xmlns="http://www.w3.org/2000/svg"> 
使うことができます

の代わりに<svg>にあなたのsvgグラフィックを含めます。その後、すべてのsvgタグはsvgprefixという接頭辞で始まります。しかし、子SVGノードがある場合は、このxmlns属性も定義する必要があります。そのような場合、接頭辞の定義はおそらくより簡単になります。 D3.js's append() methodのドキュメントから

+1

Downvoted;この情報は正確で関連していますが、OPの質問はXMLマークアップではなく、D3.js内の特定のアプリケーションを持つJavaScript文字列に関連しています。 – Phrogz

+3

@Phrogz私は尊重しています。問題は提起されています: "svg:svgとは何ですか?"私はその質問に正確に答えましたが、この答えが受け入れられました。 Opは、あなたが暗示しているように、D3とHTMLコードでD3だけでなく、それを見たと言います。 opは 'append'関数がtagnameを取得することを知っていますが、' svg:svg'のようなものはSVGプラグインであるとは思っていません。質問に「JavaScript」というタグが付いていなかったので、これもJSの問題だとは言えません。 – Imp

+0

私はあなたの尊重されない意見を尊重します。 :)私には、問題のコード '.append(" svg:svg ")とD3.jsの言及が明確にコーディングの質問をしてくれます。しかし、それを "HTMLで"見ることについてのあなたの良い点を考えて、私は自分のdownvoteを削除します。 – Phrogz

16

:SVG名前空間に「テキスト」要素を作成するには:

要素のタグ名は、「テキストSVG」として、名前空間接頭辞を有することができます。デフォルトでは、D3はsvg、xhtml、xlink、xml、xmlnsの名前空間をサポートしています。追加の名前空間は、d3.ns.prefixに追加することで登録できます。

D3.jsでの名前空間接頭辞があなたの文書に基づいていないであることを特に注意が、実際の名前空間のURLに共通の接頭辞の定義済みのマップ。

名前空間は道徳的のように「罪」対数学正弦計算と同じ名前(例:「罪」との二つの属性または要素を含むことができる方法(XHTML ではなく、HTML含ん)XMLドキュメントです失敗する)。 <svg>要素をXHTML文書に入れることは、そのSVG要素がSVG namespaceにないかぎり意味を持ちません。

詳細については、Namespaces in XMLを参照してください。

+5

2011年11月23日からd3の名前空間はオプションです – Biovisualize

関連する問題