これら2つの違いは何ですか?私は本当の、本質的な違いを意味します。通常のcreateElement
の将来の保持は何ですか?
Svgはxmlではなくhtmlです。わかった。したがって、createElementNS(ns_string, 'svg')
を使用してから、setAttributeNS(null,,)
を使用します。どうして?なぜsetAttributeNS('my_ns',,)
ではありませんか?
なぜns_string
be http://www.w3.org/2000/svg
とランダムな文字列ではない?名前空間が1つしかない場合、名前空間の目的は何ですか?
通常のhtmlのns
の目的は何ですか?既存のコードでcreateElement
のすべてのインスタンスをcreateElementNS
に変更する必要がありますか?
DOM-Level-2 仕様を読んでいます。しかし、私はまだ困惑しています。
名前空間が解決しようとしている問題を理解するには、ファイル拡張子を検討してください。 3文字のファイル拡張子は、ファイルの内容を説明するという非常に悪い仕事をしました。それらは曖昧であり、バージョン情報を伝えません。 XML名前空間は、同じ問題を解決するために文字列、URIのより大きなスペースを使用し、短いプレフィックスを使用して、同じドキュメントに複数の種類のXMLを簡潔に混在させることができます。
名前空間が1つしかない場合の名前空間の目的は何ですか?
さまざまな種類のXML、およびそれらの種類のさまざまなバージョンを識別するために使用される多くの名前空間があります。
SVGとMathMLは、HTML5に埋め込むことができる独自の名前空間を持つ2種類のXMLであり、多くの場合、別のXML名前空間であるXLinkを使用します。対応する名前空間を備えた他の多くのXMLスキーマは、クライアントとサーバー間のメッセージの受け渡し、およびデータストレージに使用されます。
XHTMLは、HTMLを有効なXMLとして表現する試みです。独自の名前空間があります。
したがって、createElementNS(ns_string、 'svg')を使用してから、setAttributeNS(null ,)を使用します。どうして?なぜsetAttributeNS( 'my_ns' ,)しないのですか????
名前空間URIでsetAttributeNS
を使用するときは、おそらく名前空間URIでcreateElementNS
を一貫して使用するようにしてください。
XMLは複数のステップで定義されました。仕様の最初のバージョンでは、名前空間について何も言及していませんでしたが、プレフィックスと特別なxmlns
属性を使用して、名前空間のないXMLを名前空間のないXMLの上に指定できるように十分な構文を残しました。 XML仕様 の意味:
「XML Namespaces in XML Recommendation [XML Names]は、コロン文字を含む名前に意味を割り当てます。したがって、著者は名前空間の目的を除いてXML名にコロンを使用するべきではありませんが、XMLプロセッサはコロンを名前文字として受け入れる必要があります」
XML名前空間を使用すると、XML処理アプリケーションは処理対象を認識し、複数の種類のXMLを同じドキュメントに混在させることができます。
Ns_stringが " http://www.w3.org/2000/svg "でなければならない理由
これには、SVGのバージョンが標準化された年である2000が含まれているため、有用な情報が含まれています。
xmlns:svg
とともに使用すると、svg:
プレフィックスがSVGを意味し、XMLの他の方言ではないことをブラウザに通知します。