スキーマチェックを回避する方法
前回、スキーマチェックの仕組みについて述べましたが、
要件によってはスキーマチェックを行いたくない場合もあると思います。
今回は、スキーマチェックを回避するテクニックについて述べたいと思います。
【パススルーパイプラインの使用】
デフォルトで送受信用のパススルーパイプラインが提供されています。
これを使用するとメッセージングのレベルではスキーマチェックを行わなくなります。
しかし、オーケストレーションを使用した場合スキーマチェックは必ず行われます。
その場合、どのようにすれば良いのでしょうか?
【Any要素の使用】
オーケストレーションを使用した場合、完全にスキーマチェックを行わなくすることは無理です。
そこでスキーマ作成の際に「すべての要素」(Any要素)を作成し、
その「Process Contents」プロパティに「Skip」を設定します。
これで、このスキーマのAny要素以下はスキーマチェックしない設定になります。
これはEAIでXMLメッセージのコンテナを作成するときに利用するテクニックでもあります。
2000, 2002のバージョンではAny要素が使えないので、2004限定のテクニックです
また、デフォルトでは、「Process Contents」プロパティは「Strict」に設定されているため、
Any要素を作っただけではスキーマチェックされてしまいます。ご注意を。
Any要素については、XMLスキーマ(XSD)の仕様を参照してください。
http://www.w3.org/TR/xmlschema-0/#any