名前空間
“名前空間(Namespaces)”は文書の中に記述されたタグがどのマークアップ言語のものなのかを判別するための仕組みで、複数のマークアップ言語が混在する文書で名前が重複するタグを区別するために使用されます。
XML文書は複数のマークアップ言語を組み合わせて組み立てることができるので、“xmlns”属性によって名前空間を宣言して要素や属性がどのマークアップ言語で定義されているものなのかを区別します。
HTML文書では一般の要素は“xmlns”属性がなくてもHTML名前空間に属しているものとして扱われるので意識される場面はあまりありませんが、SVGやMathMLなどの要素を含むと複数の名前空間の要素が混在することになります。
CSSでは“@namespace”ルールを使用して定義し、名前空間に関連付けた接頭辞をタイプ・セレクタや属性セレクタに付加することによってこれらのセレクタが選択する対象を特定の名前空間に属する要素や属性に限定することができます。