You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by "KARR, DAVID (ATTSI)" <dk...@att.com> on 2010/11/11 17:28:30 UTC

Can't specify bindings node for schema imported from included schema

My WSDL does a xsd:include for numerous schemas.  One of those schemas
does a xsd:import of another schema.  I need to specify the package
mapping for that imported schema.

For all the schemas that were xsd:included, I have "jaxws:bindings"
elements in my bindings file with node xpaths that point to the schema
with a particular targetNamespace value.

I tried adding a "jaxws:bindings" element corresponding to that imported
schema, but it fails, saying it can't find a node with that xpath.  Not
too surprising.

I then tried changing that one "jaxws:bindings" element to a
"jaxb:bindings" element, with "schemaLocation" and "node" attributes.
This half worked.  It didn't fail, but the classes it generated for that
schema were in the "default" package defined by the namespace, not in
the package defined in the nested "jaxb:package" element (inside the
"jaxb:schemaBindings" element).

I then tried creating a separate "jaxb" bindings file and specifying
both on the WSDLToJava command line.  Curiously, not only did that
result in the classes being generated in the correct package, it didn't
generate them in the wrong package.

Is this the expected pattern?  The JAX-WS bindings can only be used for
namespaces that are directly referenced from the WSDL, and then any
other namespaces have to be handled in a separate JAXB bindings file?

Re: Can't specify bindings node for schema imported from included schema

Posted by Daniel Kulp <dk...@apache.org>.
On Thursday 11 November 2010 11:28:30 am KARR, DAVID (ATTSI) wrote:
> My WSDL does a xsd:include for numerous schemas.  One of those schemas
> does a xsd:import of another schema.  I need to specify the package
> mapping for that imported schema.
> 
> For all the schemas that were xsd:included, I have "jaxws:bindings"
> elements in my bindings file with node xpaths that point to the schema
> with a particular targetNamespace value.
> 
> I tried adding a "jaxws:bindings" element corresponding to that imported
> schema, but it fails, saying it can't find a node with that xpath.  Not
> too surprising.
> 
> I then tried changing that one "jaxws:bindings" element to a
> "jaxb:bindings" element, with "schemaLocation" and "node" attributes.
> This half worked.  It didn't fail, but the classes it generated for that
> schema were in the "default" package defined by the namespace, not in
> the package defined in the nested "jaxb:package" element (inside the
> "jaxb:schemaBindings" element).
> 
> I then tried creating a separate "jaxb" bindings file and specifying
> both on the WSDLToJava command line.  Curiously, not only did that
> result in the classes being generated in the correct package, it didn't
> generate them in the wrong package.
> 
> Is this the expected pattern?  The JAX-WS bindings can only be used for
> namespaces that are directly referenced from the WSDL, and then any
> other namespaces have to be handled in a separate JAXB bindings file?

Pretty much yes.   The jaxws:binding files are really for the parts that are 
controlled and mapped by jaxws which would be the stuff in the wsdl.   For 
extra things, the extra jaxb specific binding files are needed.

-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog