2

提供されたカタログと組み合わせて XSD ファイルをインポートしようとすると、jax-ws ツールチェーンの一部のツール (xjcおよびおそらくwsimport同様) の動作に問題があります。

たとえばxjc、カタログ ファイル (例についてはこちら<xs:import>を参照) が提供されると、要素に有効な要素が含まれていても、カタログに示されている場所からインポートされたスキーマが取得されることを理解していxs:schemaLocationます。スキーマはネットワーク経由で取得できます。

これまでのところ、カタログ エントリが属性をオーバーライドするのは理にかなっていschemaLocationます。

ただし、カタログ ファイルがローカル ファイルシステムの場所を示しており、ディレクトリ パスの入力ミスなどの何らかの理由でカタログが提供する場所にアクセスできない場合、xjcツールは警告なしに値に戻りxs:schemaLocation、そこからファイルを取得します。さらに悪いことに、この動作は、エントリがカタログで「PUBLIC」とマークされている場合にのみ発生します (私が行ったいくつかのテストからわかる限り)。「SYSTEM」とマークされている場合、xjcツールは実際に文句を言います。

だから、私の質問は:

常に一貫した動作をするために、の属性からのフェッチを無効 にして、カタログでインポートされたスキーマを常にルックアップし、見つからない場合は見事に失敗するようにする方法はありますか? これは、のネットワーク フェッチ機能を無効にする方法を尋ねるのと同じではないことに注意してください。xjcschemaLocationxjc

xjc上記に失敗した場合、またはwsimport実行中にすべてのネットワークアクセスを無効にする方法はありますか?

4

0 に答える 0