BizTalkのスキーマチェック

前回、BizTalkが扱える種類のメッセージについて述べました。
それではBizTalk内部でメッセージのスキーマチェックは、
どのように行われているのでしょうか?

デフォルトでは、送受信メッセージポート内では厳密なスキーマチェックは行われません。
”厳密な”という点がポイントで、実際に流れているデータのXMLのルート要素名が、
BizTalk に登録されているスキーマ一覧のルート要素名と同じかどうか、というチェックだけ行われます。
つまりルート要素さえ同じであれば、(細かい部分で違っていても)メッセージング上は流れてしまいます。
これは2004と過去のバージョン(2000, 2002)と大きく異なる点でもあります。

メッセージポート内で厳密にスキーマチェックを行いたい場合は、カスタムパイプラインを使用します。
もちろん処理が増えてしまう分、デフォルトより多少遅くなってしまうので注意は必要です。

メッセージポート内で全くスキーマチェックを行いたくない場合は、
メッセージポートにパススルーのパイプラインを設定すればOKです。

(ほとんどの方がそうだと思いますが)オーケストレーションを使用する場合は、
そこで厳密にスキーマチェックされるので、普段このスキーマチェックを意識することはありません。
スキーマ関連のエラーが発生し、デバッグを行う際に、この知識が生きてきます。
記憶の片隅にでも置いておいてください;-)