メッセージ・モデル・オブジェクト名を修飾するためにネーム・スペースを使用します。
単一の XML インスタンス文書には、複数のアプリケーションに定義され、おそらくはそれらのアプリケーションに使用される、エレメントおよび属性を入れることができます。 同じ文書内の 2 つの異なるエレメントまたは属性で、同じ名前が必要になる場合があります。 個々のアプリケーションは、処理するように設計されているエレメントおよび属性を認識することが必要です。 このような状況では、各エレメントを別々のネーム・スペースで修飾することによって、定義を相互に認識することができます。 これにより、名前の競合および認識の間違いによる問題を避けることができます。
XML スキーマでは、ターゲット・ネーム・スペースを定義できます。 ターゲット・ネーム・スペースが定義されている場合に、それによって、XML スキーマ内で定義されている、グローバルなエレメント、属性、グループ、およびタイプが修飾されます。 さらに、ターゲット・ネーム・スペースによって、ローカルのエレメントおよび属性を修飾することもできます。 そのため、ネーム・スペースは、独自に開発できる XML スキーマのライブラリーを開発する際に役立ちます。 XML スキーマで使用されるネーム・スペース名を固有の名前にすると、他の XML スキーマ内で定義されているオブジェクトとの名前の重複について心配しなくて済みます。
ネーム・スペースの有効範囲は、それが包含する文書の有効範囲を越えて広がり、Uniform Resource Identifier (URI) により識別されます。 その目的を果たすには、URI が固有でなければなりません。 Universal Resource Locator (URL) の概念のほうがよく知られているかもしれません。 URI はほとんどの場合、URL と同じ構文を使用しますが、URI 定義の方が URL の仕様よりも広範です。 これは URI の例です。http://mycompany.com/xml_schema
ネーム・スペース接頭部は完全な URI 名の簡略形式として宣言され、そのネーム・スペースに属するすべてのエレメントを修飾するために使われます。 XML インスタンス文書または XML スキーマ内でのネーム・スペースで置換される接頭部は、xmlns 属性を使用して指定します。 また、デフォルトのネーム・スペースは、xmlns 属性を使用して定義できます。 デフォルトのネーム・スペースが定義されている場合、接頭部のないエレメントまたは属性は、デフォルトのネーム・スペースで修飾されます。 デフォルトのネーム・スペースが定義されていない場合、接頭部のないエレメントまたは属性に、ネーム・スペースでの修飾は行われません。
単一のアプリケーション、ライブラリー、またはメッセージ・セットにはさまざまなネーム・スペースを多数含めることができます。 各ネーム・スペースは、異なるメッセージ・モデル・スキーマ・ファイルまたはメッセージ定義ファイルにより表現されます。 ファイルを作成する場合、関連するネーム・スペースをそれに含めるかどうか、または notarget ネーム・スペース内にそれを入れるかどうかを選択できます。 ネーム・スペースを関連付ける場合、接頭部の選択も行わなければなりません。
ファイルに関連するネーム・スペースがある場合、以下のグローバル・オブジェクトがネーム・スペースで修飾されます。
さらに、ローカルのエレメントおよび属性を、ネーム・スペースで修飾することもできます。
ファイル内で定義したオブジェクトは、他のファイル内のオブジェクトを参照できます。 これらの参照を作成するには、1 つのファイルを別のファイル内にインポートするかまたは組み込みます。 メッセージ・モデル・スキーマ・ファイルは、同じアプリケーションまたはライブラリー内、または別のWebSphere® Message Broker・ライブラリー内の別のファイルをインポートするかまたは組み込むことができます。 メッセージ定義ファイルは、同じメッセージ・セットにある場合にのみ、別のファイルをインポートするかまたは組み込むことができます。
ネーム・スペースは、データが XML ではない場合でも、使用することができます。 DFDL スキーマ、アダプター・スキーマ、およびメッセージ定義ファイルは、関連付けられたターゲット・ネーム・スペースを使用して作成できます。 データ自体には接頭部が付いた名前は含まれませんが、ネーム・スペースはファイル内の対応するエレメントから取得されます。 ここでもまた、メッセージ・ツリーは、エレメントの名前とネーム・スペースを格納します。
ESQL または Java™ の書き込み時にネーム・スペースを指定できます。 ネーム・スペースを使用していない場合、ネーム・スペースを認識する ESQL または Java を作成する必要はありません。 ただし、ネーム・スペースを使用する場合は、ネーム・スペースを認識する ESQL または Java を作成する必要があります。 エレメントを含むネーム・スペースは、構文解析時にメッセージ・ツリーに保管されます。 これは論理プロパティーで、メッセージが解析および作成される物理ワイヤー形式に関係なく保留されます。 定義された接頭部を使って別のエレメントのネーム・スペースの参照を容易にするための構文が ESQL に追加されました。 Java では、エレメントを参照するために XPath 式が使用されます。