他のノードまたは種類への参照の作成
グローバル ノードを使用すると、再利用可能なデータ型 (構造体のフラグメント) を作成できます。このデータ型は、その構造が適切な場所でスキーマ全体で使用できます。 グローバル型を作成するには、 Schema ノードの直接の子であるノードのみを使用できます。
スキーマ ノードの 直接の子孫ではないノードのデータ型を使用して、循環参照を作成することもできます。 これは、スキーマの再帰構造を表す場合に役立ちます。
このトピックでは、さまざまな種類のグローバル ノードの操作手順とノードの参照方法について説明します。
グローバル宣言の作成
レコード、フィールド、または属性を使用して、グローバル型を作成できます。 レコードから作成されたグローバル型は、レコード内でのみ使用できます。フィールドから作成された型はフィールド内でのみ、属性から作成された型は属性内でのみ使用できます。 次の手順は、グローバル宣言を定義して使用する方法を示しています。
ノードからグローバル宣言を作成する
グローバルに使用できるようにする種類の [レコード]、[フィールド属性]、または [フィールド要素] ノードを選択します。
[ プロパティ ] ウィンドウの [ データ構造の種類] ボックスの一覧に、複合型のグローバル名として使用する名前を入力し、Enter キーを押します。
グローバルに定義されたシーケンス グループ ノード、Choice Group ノード、または All Group ノードを作成する
グローバルに定義されたグループ ノードを挿入する [ レコード ] ノードを選択します。
BizTalk メニューの [スキーマ ノードの挿入] をポイントし、必要に応じて [シーケンス グループ]、[選択グループ]、または [すべてのグループ] をクリックします。
新しく挿入したグループの構造を作成します。 たとえば、 Record ノードまたは Field Element ノードを挿入して、グループ ノード内のデータの構造を表します。
Note
シーケンス グループ、 選択グループ、および すべてのグループ ノードには、XML 要素に対応するノードのみを含めることができるため、 Field Attribute ノードを含めることはできません。
手順 2. で挿入されたグループ ノードを選択します。
プロパティ ウィンドウで[グループ参照]をクリックし、値フィールドに名前を入力して Enter キーを押します。
グループ参照プロパティに名前を指定すると、グループ ノードがグローバルに定義され、その後、他のグループ ノードをこのグローバルに定義された型 (構造体) に関連付けることができます。
グローバルに定義された属性グループ ノードを作成する
グローバルに定義された [属性グループ] ノードを挿入する [レコード] ノードを選択します。
BizTalk メニューの [スキーマ ノードの挿入] をポイントし、[属性グループ] をクリックします。
これにより、選択した Record ノードの子ノードの末尾に属性グループ ノードが追加されます。
適切な フィールド属性 ノードまたは 属性グループ ノードを 属性グループに追加します。
必要に応じて、[ 属性グループ ] ノードの名前を変更する場合は、[ 属性グループ ] ノードを選択し、その グループ参照 プロパティを選択した新しい名前に変更します。
属性グループは、常にグローバルで、使用時に参照されます。
グローバルに定義されている型またはグループを使用する
グローバルに定義された型を使用するノードを選択します。
プロパティ ウィンドウで、Data Structure Type プロパティ (Record ノード)、Data Type プロパティ (Field Element および Field Attribute ノード)、またはグループ参照 (シーケンス グループ、選択肢グループ、すべてのグループ、属性グループ ノード) のドロップダウン リストからグローバルに定義された型を選択します。 これらのプロパティの詳細については、「 UI ガイダンスと開発者 API 名前空間リファレンス」を参照してください。
Note
グローバルに定義された型またはグループに対して後で変更を行う場合、グローバルに定義された型またはグループが表示される任意のスキーマの場所で変更できます。 1 つの任意の場所で変更を行うと、その変更内容は、グローバルに定義された型またはグループが表示される、すべての場所に適用されます。
作成されたグローバル宣言は、1 回の手順では削除できません。 ただし、次の手順を使用して、スキーマの保存時に [ グローバル データ型のクリーンアップ ] ダイアログ ボックスを使用して削除できます。
グローバル宣言を削除する
グローバル型またはグループが使用されるすべてのノードを削除するか、これらすべてのノードで別の型またはグループ (あるいはその組み合わせ) を使用するように指定します。 ノードを削除する手順については、「ノードの 削除」を参照してください。
仕様を保存すると、[ グローバル データ型のクリーンアップ ] ダイアログ ボックスが表示されます。 仕様から完全に削除するグローバル宣言を選択し、[OK] をクリック します。
Note
[ グローバル データ型のクリーンアップ ] ダイアログ ボックスは、未使用のデータ型でスキーマを保存するたびに表示されます。 このダイアログ ボックスは、すべてのデータ型がスキーマで使用されている場合、またはスキーマを開いた以降にスキーマに変更を加えていない場合には、表示されません。後者の場合は、以前に保存した未使用のデータ型が含まれている可能性があります。
別のノードへの循環参照を作成する
ノードに対する循環参照を作成して、再帰的なスキーマ要素を表すことができます。 これを行うには、囲みレコードによって型が定義されるノードを作成します。 たとえば、同じ構造を持つ任意の数のエンベロープでラップされるインスタンス メッセージが必要な場合、 循環参照を使用することにより、このようなインスタンス メッセージを定義するスキーマを作成できます。
循環参照を作成する
再帰参照を作成する [レコード ] ノードを選択します。 このノードは、再帰構造の最上位を表します。
プロパティ ウィンドウで、データ構造の型に値があることを確認します。
レコード ノードに名前付き型が関連付けられていることを確認する必要があります。これは、再帰構造体が型自体を含む場合に定義されるためです。 名前付きのグローバル型を入れ子構造で使用する場合のみ、型に型自体を含めることができます。
子レコード ノードを選択するか、子レコード ノードを挿入します。
[子レコード] ノードの場合、プロパティ ウィンドウの [データ構造の種類] ボックスの一覧で、手順 2 で識別されたデータ構造を選択します。
重要
繰り返しノード の Min Occurs プロパティを 0 (0) に設定する必要があります。 これを 1 に設定すると、無限ループが発生します。
再帰要素を含むスキーマをインポートする場合、BizTalk エディターは、再帰要素が有効かどうかを自動的に確認しません。