Web サービスは入力データを検証し、データベースに書き込む必要があります。後で、他のサービスがデータを読み取り、そこから xml ファイルを作成する必要があります。
したがって、サービスはデータの転送と変換を行うだけです (WS-* パラメータ => データベース)。
「動的」Web サービスには、パラメータの可変セット (「コンテナ」) も含まれている必要があります。これにより、クライアントが大幅に迅速に変更され、インターフェイスと基礎となる実装が変更されてはなりません。
検証を行う方法と場所は?
最初のアイデア:
ファイルを添付ファイルとして送信し、「固定」部分の .xsd スキーマと「コンテナー」部分の .xsd スキーマを使用して Web サービスで検証するだけです。変数部分が変更された場合、検証用の「コンテナー」.xsd のみを変更する必要があります。コンテナーは、base64 でエンコードされた xml にすることができます。検証エラーが発生した場合、Web サービスはエラーで応答します。
すべての標準項目を WSD パラメーターとして使用し、base64 でエンコードされたコンテナーを渡します。WS-* は標準パラメーターの検証を行い、コンテナーのみが別の .xsd に対して検証されます。
後で行う必要がある、値の論理的/意味的評価はありません。フィールド タイプの検証のみが必要です。
コンテナーは次のような xml である必要があります。
... standard elements xml ...
<embeddedContainer>
<customItemsFromWSClientOne>
<reallyCustomItemA>
<substructure>
<itemABC></itemABC>
</substructure>
<anotherStructure></anotherStructure>
</reallyCustomItemA>
</customItemsFromWSClientOne>
</embeddedContainer>
... standard elements xml ...
別のクライアントは、完全に異なる構造を持つ「customItemsFromWSClientTwo」などの他のパラメーターを送信する場合があります。そのため、サービスは非常に一般的になります。