JAXB生成JAXBElement 而不是String

我正在使用Apache CXF cxf-codegen-plugin Maven插件从WSDL文件生成源代码。 问题是我生成了JAXBElement而不是String 。 我添加了jaxb-bindings.xml文件,如下所示:

    

这应该可以防止JAXB生成JAXBElement 。 但它不起作用我仍然生成JAXBElement而不是String

我的Maven插件看起来像这样:

  org.apache.cxf cxf-codegen-plugin ${cxf.runtime.version}   org.apache.cxf cxf-rt-bindings-soap ${cxf.runtime.version}     generate-jaxb generate-sources  -Dfile.encoding=UTF8   src/main/resources/wsdl/Cubiks.wsdl  -b ${basedir}/jaxb-bindings.xml -b ${basedir}/jaxws-bindings.xml -exsh true -wsdlLocation     src/main/resources/wsdl/CubiksCallBackService.wsdl  -b ${basedir}/jaxws-bindings.xml -b ${basedir}/jaxb-bindings.xml -exsh true -p com.cubiks.ws.callback -wsdlLocation       wsdl2java     

CXF版本是2.6.0 。 有人知道问题出在哪里吗?

编辑

XSD非常庞大。 这是生成JAXBElement的元素

         

生成的源是:

 @XmlElementRef(name = "RequestStatusDescription", namespace = "http://www.cubiksonline.com/2009/08/AssessmentProvider", type = JAXBElement.class) protected JAXBElement requestStatusDescription; 

我必须做的是用另一个jaxb:bindings包装jaxb:globalBindings

      

现在一切正常,没有生成JAXBElement

你不能一起拥有nillable和minoccurs。 删除minoccurs,因为它无论如何都对字符串没有意义。

我想你想添加你的jaxb-binding.xml: