I have an XMLBeans service exposed using
spring.remoting.XFireExporter.  I started with the schemas, generate
the XMLBeans, then expose the service.  My schemas are nested (one
level deep), and the generated WSDL can be seen below.  Notice that
the Common.xsd file is referenced in the schemaLocation attribute of
xs:include.  Not only is this not necessary since the elements in
Common.xsd are pulled into the WSDL already, it breaks any .NET client
bindings since the file URL does not resolve.

Is there any way to exclude this xs:include statement?  I've tried
toying around with the Service Properties explained in
http://docs.codehaus.org/display/XFIRE/services.xml+Reference, but no
luck.  Specifically, I set the wsdlBuilder.removeAllImports to true.

My workaround for now is to flatten the schemas before XMLBeans
generation, but this is far from optimal.

Here is my generated WSDL:

<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://domain.com/domain";>
<xs:include schemaLocation="Common.xsd"/>
        <xs:element name="ShipmentConfirmationRequest">
        <xs:annotation>
        <xs:documentation></xs:documentation>
</xs:annotation>
        <xs:complexType>
        <xs:all>
<xs:element ref="common:Header"/>
<xs:element name="ManifestId" type="xs:int"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
        <xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://domain.com/domain";>
        <xs:element name="Header">
        <xs:complexType>
        <xs:sequence>
<xs:element name="ThisDocumentDateTime" type="xs:date"/>
<xs:element name="ThisDocumentId" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

If I left out anything, let me know...

Thanks,
--
Alan Baldwin

---------------------------------------------------------------------
To unsubscribe from this list please visit:

   http://xircles.codehaus.org/manage_email

Reply via email to