回答:
すべてのユーザーエージェント(ブラウザ)はバージョン属性を無視するため、いつでも削除できます。
SVGインラインをHTMLページに埋め込み、そのページを提供するtext/html
場合、xmlns属性は不要です。SVGをHTMLドキュメントにインラインで埋め込むことは、HTML5の一部として生まれたかなり最近の革新です。
ただし、ページをimage / svg + xml、application / xhtml + xml、またはユーザーエージェントでXMLパーサーを使用させるその他のMIMEタイプとして提供する場合は、xmlns属性が必要です。これが最近まで唯一の方法だったので、このように提供されるコンテンツはたくさんあります。
<!DOCTYPE svg xmlns="www.w3.org/2000/svg">
ても機能しますが、xmlnsを削除したり変更したりする<!DOCTYPE svg xmlns="www.example.com">
と機能しません。何故ですか?
xmlns="http://www.w3.org/2000/svg"
属性は次のとおりです。
<svg>
。2xmlns:xlink="http://www.w3.org/1999/xlink"
属性は次のとおりです。
<svg>
する場合はオプション。2version="1.1"
属性は次のとおりです。
1 国際化リソース識別子(RFC3987)
2 HTML5以降
3 Extensible Markup Language(XML)1.0
4おそらく、今後のメジャーバージョンのリリースまで。
5 SVG 2、W3C候補の推奨、2018年8月7日
version
xml宣言<?xml version...
のversion
属性()を<svg>
要素の属性と混同しないでください。前者はXMLマークアップ言語のバージョンに関するもので、後者はSVGのバージョンを指定します。この回答の作成者は、³のSVG仕様ではなく、XMLを参照することでその誤りを犯しました。私はそれを修正しようとしましたが、一部の馬鹿は編集を拒否しました。
両方の回答に追加したいのですが、ポイントがありません。新しい回答を追加します。Chromeの最近のテスト(バージョン63.0.3239.132(公式ビルド)(64ビットWindows))で、次のことがわかりました。
xhr.responseText
しelm.innerHTML
ます。これにはxmlnsは必要ありません。xhr.responseXML.documentElement
およびelm.appendChild()
またはを使用しelm.insertBefore()
ます。インラインSVGを作成するこの方法では、基本的なSVG名前空間を宣言せずに、中途半端な結果が生成されxmlns="http://www.w3.org/2000/svg"
ます。<svg>はHTMLにロードされますがgetElementById()
、<svg>要素では認識されないなど、ドキュメントレベルの関数です。これは、HTMLの外部でXMLHttpRequest XMLパーサーを使用しているためだと思います。MDN WebDocが言うSVGバージョン属性について
SVG 2以降非推奨
この機能は推奨されなくなりました。一部のブラウザーはまだそれをサポートしている可能性がありますが、関連するWeb標準から既に削除されているか、削除中か、互換性を保つ目的でのみ保持されている可能性があります。使用を避け、可能であれば既存のコードを更新してください。このページの下部にある互換性の表を参照して、判断を下してください。この機能はいつでも機能しなくなる可能性があることに注意してください。version属性は、SVGドキュメントが準拠する仕様を示すために使用されます。ルート要素でのみ許可されます。これは単なる通知であり、レンダリングや処理には影響しません。
PS:SVG 2はまだ標準になるにはほど遠いです。