XSD 要素グループ
スキーマに特定の構造を使用すると、BizTalk マッパーで生成される XSLT (Extensible Stylesheet Language Transformations) にバリエーションが生じる場合があります。
その一例として、シーケンス、選択肢、または全要素グループを定義するスキーマをマップに含めるような場合が考えられます。 たとえば、 Choice Group ノードを含むスキーマを使用する場合、出力インスタンス メッセージに表示する Choice Group ノードの子を 2 つ以上必要とするマップを作成できます。 この場合、マップをコンパイルするときに、BizTalk マッパーから警告が表示されます。 この警告は、実行時の親ループにおける同一の繰り返し処理では、マッピングされた必須フィールドのいずれか 1 つしか、値が挿入されない可能性があることを伝えるものです。 BizTalk マッパーでは、マッピングのロジックに誤りがあることを示すエラー メッセージは生成されません。
他にも、次の条件が満たされた場合、XSLT にバリエーションが生じる可能性があります。
レコード A には、子 Field 要素 B があります。
レコード A と子 Field 要素 B が 1 回発生します。
レコード A は、繰り返される 選択肢グループ の一部です。
このような場合、BizTalk マッパーは、送信元レコードの複数のバリエーションを処理するための繰り返しロジックを含んだ XSLT を生成します。
Note
グループを含んだマッピングは、明示的に指定する必要があります。 たとえば、コピー先スキーマに子ノード A と B を含む Choice Group ノードが含まれている場合、親グループの同じイテレーションで同時に A と B を持つことは無効です。 BizTalk マッパーには、無効なマッピングの作成を回避するような機能はありません。 そのため、A と B が同時に現れることのできないような論理 Functoid を使用して、マッピングを設定する必要があります。