WSDL2Ws.java 中に以下のコメントが残されていたからだ…。
//TODO the code require the attributes name at extension base types //different, the WSDL2Ws do not support it having same name at up and below. // The names of the inherited parms are mangled // in case they interfere with local parms. // String mangle = ""; //if (i > 0) { // mangle = "_" + // Utils.xmlNameToJava(te.getQName().getLocalPart()) + // "_"; //}
ひっかかっているのは、xsd ファイル中の以下のような定義だ
<xsd:element name="Add" type="ogc:BinaryOperatorType" substitutionGroup="ogc:expression"/> <xsd:element name="Sub" type="ogc:BinaryOperatorType" substitutionGroup="ogc:expression"/> <xsd:element name="Mul" type="ogc:BinaryOperatorType" substitutionGroup="ogc:expression"/> <xsd:element name="Div" type="ogc:BinaryOperatorType" substitutionGroup="ogc:expression"/> <xsd:element name="PropertyName" type="ogc:PropertyNameType" substitutionGroup="ogc:expression"/> <xsd:element name="Function" type="ogc:FunctionType" substitutionGroup="ogc:expression"/> <xsd:element name="Literal" type="ogc:LiteralType" substitutionGroup="ogc:expression"/>
まさに、type 属性が同じだけど、name 属性が異なるってやつだ。
はて、どうしたものか…。こいつら、大抵 enum で置き換えれそうだが、ソース吐き出すところまで全般に渡って手を入れないとダメそうだ…。とりあえず、スキーマを simpleType に置き換えて、後から enum にセコセコ修正する感じで逃げちゃうか?
0 件のコメント:
コメントを投稿