使用XJC生成Java源时使用JAXWS enableWrapperStyle

我正在尝试从XSD生成Java源代码,并且必须使用JAXWS禁用包装器样式。 我编写了自定义绑定,但似乎JAXWS不能与XJC一起使用。 我使用的绑定非常简单。

   false   

如果我正在尝试运行ant脚本,我将收到以下错误消息。

  [xjc] [ERROR] Unsupported binding namespace "http://java.sun.com/xml/ns/jaxws". Perhaps you meant "http://java.sun.com/xml/ns/jaxb/xjc"? [xjc] line 2 of file:/D:/xxxxxxxxxx/xxxxx/xxxx.xsd [xjc] [ERROR] cvc-complex-type.2.4.a: Invalid content was found starting with element 'jaxws:enableWrapperStyle'. One of '{"http://java.sun.com/xml/ns/jaxb":javaType, "http://java.sun.com/xml/ns/jaxb":serializable, "http://java.sun.com/xml/ns/jaxb/xjc":serializable, "http://java.sun.com/xml/ns/jaxb/xjc":superClass, "http://java.sun.com/xml/ns/jaxb/xjc":superInterface, "http://java.sun.com/xml/ns/jaxb/xjc":typeSubstitution, "http://java.sun.com/xml/ns/jaxb/xjc":smartWildcardDefaultBinding, "http://java.sun.com/xml/ns/jaxb/xjc":simple, "http://java.sun.com/xml/ns/jaxb/xjc":treatRestrictionLikeNewType, "http://java.sun.com/xml/ns/jaxb/xjc":javaType, "http://java.sun.com/xml/ns/jaxb/xjc":generateElementProperty, "http://java.sun.com/xml/ns/jaxb/xjc":noMarshaller, "http://java.sun.com/xml/ns/jaxb/xjc":noUnmarshaller, "http://java.sun.com/xml/ns/jaxb/xjc":noValidator, "http://java.sun.com/xml/ns/jaxb/xjc":noValidatingUnmarshaller}' is expected. [xjc] line 8 of file:/D:/xxxxxxxxxx/xxxxx/xxxx/xsd/xsd-binding.xml 

我已经尝试过只使用jaxws,但XJC将JAXB视为主绑定。 有了这个绑定:

  false     

我收到了错误:

 [xjc] [ERROR] not an external binding file. The root element must be {http://java.sun.com/xml/ns/jaxb}bindings but it is {http://java.sun.com/xml/ns/jaxws}bindings [xjc] line ? of file:/D:/xxxxxx/xsd-binding.xml [xjc] [ERROR] Unexpected  appears at line 4 column 61 [xjc] line 4 of file:/D:/xxxxxx/xsd-binding.xml 

是否可以在jaxws:enableWrapperStyle使用jaxws:enableWrapperStyle enableWrapperStyle? 如果是的话,我忽略了什么? 先感谢您!

我找到了解决方案。 JAXWS-element必须在JAXB-element中,并且必须声明如下:

    false      

您在上面的示例中添加了两次jaxws命名空间

  xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" xmlns="http://java.sun.com/xml/ns/jaxws" 

删除第二个:

  xmlns="http://java.sun.com/xml/ns/jaxws" <--REMOVE THIS