Я пытаюсь создать исходный код Java из XSD и должен отключить стиль оболочки с помощью JAXWS. Я написал пользовательскую привязку, но похоже, что JAXWS не работает с XJC. Привязка, которую я использую, довольно проста.
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" xmlns="http://java.sun.com/xml/ns/jaxws"
version="2.1" jaxb:extensionBindingPrefixes="xjc">
<jaxb:bindings>
<jaxb:globalBindings typesafeEnumMaxMembers="2000" generateElementProperty="false" >
<jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle>
</jaxb:globalBindings>
</jaxb:bindings>
If I'm trying to run the ant script I'm getting following error messages.
[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 в качестве основной привязки. С этой привязкой:
<bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://java.sun.com/xml/ns/jaxws"
jaxb:version="2.1" extensionBindingPrefixes="xjc annox">
<enableWrapperStyle>false</enableWrapperStyle>
<jaxb:bindings>
<jaxb:globalBindings typesafeEnumMaxMembers="2000" generateElementProperty="false" />
</jaxb:bindings>
</bindings>
Я получаю сообщение об ошибке:
[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 <bindings> appears at line 4 column 61
[xjc] line 4 of file:/D:/xxxxxx/xsd-binding.xml
Можно ли использовать jaxws:enableWrapperStyle
внутри jaxb? Если да, то что я упустил из виду? Заранее спасибо!