tengo el siguiente tipo de datos definido en un WSDL:cambio del paquete de la clase generada jaxb
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="myService" targetNamespace="http://example.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://example.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="example.com" targetNamespace="example.com" version="1.0">
<xs:simpleType name="MyEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="one"/>
<xs:enumeration value="two"/>
</xs:restriction>
</xs:simpleType>
<!-- SNIP other data types -->
</xs:schema>
</wsdl:types>
</wsdl:definitions>
Quiero MyEnum caer en su propio paquete. Por lo tanto, he utilizado un archivo de enlace jaxws, y se utiliza XPath para atravesar los enlaces de esquema y JAXB para establecer el paquete, de la siguiente manera:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxws:bindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://java.sun.com/xml/ns/jaxws">
<jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema[@targetNamespace='example.com']">
<jxb:schemaBindings>
<jxb:package name="abra.ca.dabra" /> <!-- this works, and changes package of all classes in the namespace-->
</jxb:schemaBindings>
<jxb:bindings node="//xs:simpleType[@name='MyEnum']">
<jxb:package name="a.b.c"/> <!-- this does not work -->
</jxb:bindings>
</jaxws:bindings>
<!-- SNIP - other functional jaxws bindings -->
</jaxws:bindings>
Ahora, el camino trazado en schemabindings toma - y pone todos los tipos de datos a partir de ese schema/targetnamespace en el paquete abra.ca.dabra. Sin embargo, parece que no puedo configurar el paquete de solo MyEnum, que es lo que quiero.
Utilizo wsdl2java de cxf para proporcionar el archivo de enlaces. ¿Me estoy perdiendo de algo?
me encontré misma problema. ¿Has resuelto el tuyo? – Rudy
El archivo de enlace no es correcto: el prefijo de espacio de nombres 'jaxws' no está vinculado a ningún espacio de nombres. – whaefelinger
Similar, el prefijo 'xs' no está enlazado. – whaefelinger