3

xsd:sequenceの場合と同様に、XML 要素を省略して順序を変更する SOAP サービスを使用していxsd:anyます。

試してみwsdl2java -Eosvましたが、生成されたコードは SOAP 応答を拒否しますorg.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement

で無効にされるチェックの種類は何-Eosvですか? さらに厳しくすることは可能ですか?

4

2 に答える 2

4

Axis 2 v1.4.1 を扱う際にこれを理解しようとした結果、ソース コードをざっと読んでしまいました。WSDL2Java ページと使用法のテキストに記載されているように、-E オプションはデータバインディング モジュールに渡されます。-Eosv の場合、渡される「osv」サブオプションは ADB モジュールです。ADB のコード生成を掘り下げると、osv (OFF_STRICT_VALIDATION) オプションは minOccurs を決定するときにのみ使用されることがわかりました。Axis 2 v1.4.1 の org.apache.axis2.schema.SchemaCompiler から:

// if the strict validation off then we consider all elements have minOccurs zero on it
if (this.options.isOffStrictValidation()){
    metainfHolder.addMinOccurs(referencedQName, 0);
} else {
    metainfHolder.addMinOccurs(referencedQName, elt.getMinOccurs());
}

明らかに、予想される動作をソースコードに依存することは決して賢明ではありません。実装はバージョン間で変更されるためです。検証」。厳密さを緩和する他のオプションも見つかりませんでした。

于 2012-11-19T02:01:57.667 に答える