jaxb と spring を使用して Java コードを生成しようとしていますが、名前が同じで名前空間が異なる 2 つの simpleTypes を持つ wsdl ファイルがあると、コードを動作させることができません。これを解決する方法を知っている人はいますか?
タグを試してみましたがjaxb:factoryMethod
、構文が正しくありません。しかし、おそらくもっと簡単な方法がありますか?
バインディング.xjb
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:annox="http://annox.dev.java.net"
xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
jaxb:extensionBindingPrefixes="xjc annox"
version="2.1"
targetNamespace="http://com.company/generated"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<jaxb:globalBindings>
</jaxb:globalBindings>
<jaxb:bindings
node="/wsdl:definitions/wsdl:types/xs:schema[namespace::*[.='http://com.company/storetaxinformation']]/xs:simpleType[@name='TypeOfTax']"
schemaLocation="../../../target/classes/disb.wsdl">
<annox:annotateClass>@javax.xml.bind.annotation.XmlRootElement(name="TypeOfTaxStoreTax")</annox:annotateClass>
</jaxb:bindings>
<jaxb:bindings
node="/wsdl:definitions/wsdl:types/xs:schema[namespace::*[.='http://com.company/gettaxinformation']]/xs:simpleType[@name='TypeOfTax']"
schemaLocation="../../../target/classes/disb.wsdl">
<annox:annotateClass>@javax.xml.bind.annotation.XmlRootElement(name="TypeOfTaxInfo")</annox:annotateClass>
</jaxb:bindings>
</jaxb:bindings>
エラーログ
[ERROR] Error while generating code.Location [ file:/C:/wsdl/disb.wsdl{49,52}].
com.sun.istack.SAXParseException2; systemId: file:/C:/wsdl/disb.wsdl;
lineNumber: 49; columnNumber: 52; Two declarations cause a collision in the ObjectFactory class.