置換グループ

置換グループは、 XML メッセージ内であるエレメントを別のエレメントで置換するための手段を提供する XML スキーマの機能です。 置換グループは、ヘッド・エレメントと呼ばれる、 他のグローバル・エレメントの代わりに配置できるグローバル・エレメントのリストです。

置換グループは、1 つのグローバル・エレメント (「メンバー」エレメント) が他のグローバル・エレメント (「ヘッド」エレメント) を指示するように、 「置換グループ (Substitution Group)」プロパティーを設定して定義します。 これにより、メンバー・エレメントがヘッド・エレメントの置換グループに追加されます。

注: メッセージ・セットから辞書を生成して WebSphere Business Integration Message Broker にデプロイする場合、 スキーマの制約のトピックを参照して、 置換グループに関連するセクションをお読みください。
ヒント: メッセージが XML で表現されることがない場合、 または単純メッセージ・モデルを使用している場合は、 置換グループを使用する代わりに、 「構成」「選択 (Choice)」に設定した複合タイプまたはグループを使用することを検討してください。

エレメント

ヘッド・エレメント
ヘッド・エレメントは、単に置換可能なエレメントのことです。 メッセージが解析されるとき、妥当性検査エラーの原因となることなく、 メンバー・エレメントの 1 つがヘッド・エレメントの代わりに現れることができます。
抽象エレメント
抽象エレメントは、置換が必要なヘッド・エレメントです。 エレメントの「抽象」属性は、以下を示しています。 通常は、抽象エレメントには置換グループ内に他のエレメントがあります。 そうでない場合はほとんど役に立ちません。 抽象エレメントがメッセージ定義内のどこに現れても、 その置換グループのメンバーが代わりに現れなければなりません。

属性

エレメントの「ブロック (block)」属性
エレメントの「ブロック (block)」属性は、 エレメントを置換できるグローバル・エレメントのセットを制限します。 「ブロック (block)」属性は、値のサブセットとして「制約事項 (restriction)」「拡張 (extension)」「置換 (substitution)」、または「すべて (all)」のいずれかとなります。
  • 「ブロック (block)」属性に「制約事項 (restriction)」が含まれる場合、 エレメントのタイプの制約事項に基づくエレメントはそのエレメントを置換できません。
  • 「ブロック (block)」属性に「拡張 (extension)」が含まれる場合、 エレメントのタイプの拡張に基づくエレメントはそのエレメントを置換できません。
  • 「ブロック (block)」属性に「置換 (substitution)」が含まれる場合、 エレメントの置換グループのメンバーであるエレメントはそのエレメントを置換できません。
  • 変更の始まり「ブロック (block)」属性に「すべて (all)」が含まれる場合、前述の制限がすべて適用されます。変更の終わり
エレメントの「最終 (Final)」属性
エレメントの「最終 (final)」属性は、 エレメントの置換グループのメンバーとなれるグローバル・エレメントのセットを制限します。 「最終 (final)」属性は、値のサブセットとして「制約事項 (restriction)」「拡張 (extension)」、または変更の始まり「すべて (all)」変更の終わりのいずれかとなります。
  • 「最終 (final)」属性に「制約事項 (restriction)」が含まれる場合、 エレメントのタイプの制約事項に基づくエレメントは、そのエレメントの置換グループに含めることができません。
  • 「最終 (final)」属性に「拡張 (extension)」が含まれる場合、 エレメントのタイプの拡張に基づくエレメントは、そのエレメントの置換グループに含めることができません。
  • 変更の始まり「最終 (final)」属性に「すべて (all)」が含まれる場合、前述の制限の両方が適用されます。変更の終わり
複合タイプの「ブロック (block)」属性
複合タイプの「ブロック (block)」属性は、 そのタイプを置換できる他のタイプのセットを制限します。 「ブロック (block)」属性の値は、「制約事項 (restriction)」「拡張 (extension)」「すべて (all)」のいずれかとなります。 変更の始まりこれらの値の意味は、前述のエレメントの「ブロック (block)」属性で示されているものと同じです。変更の終わり 置換グループのメンバーであるエレメントは、 そのタイプがヘッド・エレメントのタイプ上のブロック属性と互換性がある場合、 ヘッド・エレメントのみを置換します。
デフォルトの「ブロック (block)」および「最終 (final)」属性
「ブロック (block)」および「最終 (final)」属性のデフォルトは、メッセージ定義ファイル・レベルで設定できます。それらの属性のいずれかまたは両方にデフォルトが設定されており、関係のある「ブロック (block)」または「最終 (final)」属性がオブジェクト・レベルで設定されていない場合、そのオブジェクトにはデフォルト設定が使用されます。デフォルト設定はオブジェクト・レベルでオーバーライドできます。

関連概念
XML スキーマ
スキーマの制約
タイプ継承