2

既知のWSDLベースのWebサービス(ソースコードは利用できません)のクライアントを開発していると仮定します。

実行時に、そのWSDLのインラインスキーマに基づいてさまざまなフィールド(たとえば、制限を超えない文字列の長さ)を検証する方法はありますか?

その場合、そのWebサービスと対話してインラインXSD情報を取得するにはどうすればよいですか?

4

1 に答える 1

2

これを本当に動的にしたい場合は、WSDL への URI が、WSDL が使用する可能性のある他のすべての外部参照とともに、他の WSDL ファイルや XSD ファイルにアクセスできると想定する必要があります。

最初のステップとして、スキーマ (javax.xml.validation.Schema) をロードするために、ファイルを一時フォルダーにダウンロードするか、これらの URI への I/O ストリームを作成してメモリー内にロードする必要があります。私は、このタスクを簡単にする Java API を知りません (.NET プラットフォームの開発者が利用できるスキーマなど、WSDL 参照からスキーマを取得します)。書くのはそれほど難しくないはずです。

多くの人がこれ (外部 URI の読み込み、特にインターネットを指すもの) を本番環境でのセキュリティ上の問題と見なす可能性があることを警告する必要があるため、ここでは設計に注意してください。「既知の WSDL ベースの Web サービス」と言っているので、おそらく設計時に XSD を取得し、それらをクライアント コードと一緒に使用する Jar ファイルにリソースとしてバンドルします。

次は、XML をどのように作成するかです... JAXB などを使用しているとしましょう。このような投稿は、問題に取り組む方法と、正確に何を検証する必要があるかについてのアイデアを提供します。JAXB を使用していない場合は、API が何を行っているか、実際にどのように検証を介入できるかを調べてください...

より具体的な回答を得るために、この種の質問で必要な詳細の種類について、少なくともこれでアイデアが得られることを願っています.

于 2013-02-14T20:20:29.783 に答える