1. ホーム
  2. Web制作
  3. XML/XSLT

XMLチュートリアル。XML 名前空間 - XML/XSLT

2022-01-01 16:33:36

XMLの名前空間は、XMLの名前の使用範囲を表します。XMLは要素タグでカスタマイズできるため、異なるXMLアプリケーション間でXML名が改名される可能性が高い。適用されない名前を区別する方法がなければ、混乱を招く恐れがある。XML名前空間は、この問題を解決するために設計されています。XML名前空間を利用することで、異なるXMLアプリケーション間で、類似した
XML名前空間は、使用されているXMLの名前の範囲を表します。XMLは要素タグでカスタマイズできるため、異なるXMLアプリケーション間で名称が変更される可能性が高くなります。適用されない名前を区別する方法がなければ、混乱を招く恐れがあります。XML名前空間は、この問題を解決するために設計されています。XML名前空間を用いることで、異なるXMLアプリケーションから同じ名前の要素や属性を区別することができます。一つのXMLアプリケーションから関連する要素や属性をグループ化することで、ソフトウェアによる認識や処理を容易にすることができます。
名前空間はプレフィックスとローカルパートからなり、コロンで区切られる。プレフィックスは要素や属性が存在する名前空間を特定し、ローカルパートはその名前空間内の要素や属性を特定する。名前全体を修飾名と呼ぶこともある。プレフィクスには、XML 以外の任意の XML ネームキャラクタ(大文字と小文字の組み合わせ)を使用することができます。修飾名の各プレフィックスは、一意の URI と関連付けられていなければなりません。同じURIに関連付けられた接頭辞を持つ名前は、同じ名前空間に属します。
<作者 linuxsir< ...
上記の例の rdf:RDF 要素の xmlns:rdf 属性は、接頭辞 rdf を名前空間 http://www.w3.org/TR/REC-rdf-syntax# に束縛しています。xmlns:rdf属性は、rdf:RDF要素とその子要素の接頭辞rdfを宣言しています。RDFプロセッサは、rdf:RDFとrdf:DescriptionをRDF要素として扱います。なぜなら、両要素はRDF仕様で定義されたURIの一つに結合する接頭辞を持っているからです。title、authorなどの要素は、同じURIに結合するrdf接頭辞を持っていないため、プロセッサはRDF要素とは見なしません。この記事はScripting House (https://www.codedevlib.com)が編集・公開したものです! 出典を明記してください、ありがとうございます
プレフィックスは一般に、そのプレフィックスを使用する最上位の要素で定義されます。異なるプレフィックスを下位の要素で定義することもできる。

aboutのような接頭辞のないプロパティは、どの名前空間にも属さない。xlink:type や xlink:href などの属性は xlink 名前空間に属します。もちろん、最初に xlink を URI にバインドすることが条件です。URI は必ずしも既存の http リンクでなくてもよく、異なる名前空間を区別するための表現方法にすぎません。
ルート要素に接頭辞なしxmlns属性を付加することで、接頭辞なし要素とすべての接頭辞なし子要素がある名前空間に属することを指定できます。
<エリプス <直方体
ここでは、すべての要素に接頭辞がないものの、すべて同じ名前空間に属している。しかし、デフォルトの名前空間は要素にしか適用されないため、属性は異なる名前空間に属しています。デフォルトの名前空間は、子要素でも同じようにリセットされます。
名前空間が何らかのXMLアプリケーションから要素や属性を識別するためにのみ使用され、同じ名前を持つ異なる要素を区別しない場合、文書なしでDTDの要素に固定のxmlns属性を定義することができます。定義は次のように行う。
<未定義
DTD を定義する際、名前空間接頭辞を使用する必要があるものは、DTD 定義時に接頭辞も次のように記述します。
<未定義
パラメータ実体参照を使用して名前空間接頭辞を定義することで、以下のようなDTDドキュメントのメンテナンスを容易にすることができます。この記事は BinaryDevelop (https://www.codedevlib.com) によって編集・公開されました! 転載元を明記してください!ありがとうございました。
<未定義 <未定義
次に、そのパラメータ・エンティティ名を使って、さらに次のようなパラメータ・エンティティの参照を定義します。
<未定義 <未定義
こうすることで、プレフィックスを変更する必要がある場合、文書全体を修正することなく、その上の一箇所を修正するだけで済みます。
<未定義 <未定義 これは、これらのパラメータエンティティを他のエンティティの外部で使用する場合、XMLパーサがエンティティ置換テキストの両側に余分なスペースを追加するためです。