[SWS-362] WSDL generation issue when xsds import other xsds Created: 24/May/08  Updated: 04/May/12  Resolved: 28/Jul/08

Status: Closed
Project: Spring Web Services
Component/s: OXM
Affects Version/s: None
Fix Version/s: 1.5.4

Type: New Feature Priority: Minor
Reporter: olivier Assignee: Arjen Poutsma
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Spring WS 1.5.3, war deployed to Jetty



 Description   

This issue is linked to the following thread http://forum.springframework.org/showthread.php?p=176210

I store my schemas in a specific maven project together with the generated sources.

client-messages.xsd import client-types.xsd

In my war project, I configured the Spring-WS config file this way:

<bean id="schemaCollection" class="org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection">
<property name="xsds">
<list>
<value>classpath:client-messages.xsd</value>
</list>
</property>
<property name="inline" value="true" />
</bean>

When generating the wsdl, the framework complains that the client-types.xsd is not found.

Would it be possible to enhance the XsdSchemaCollection (or to write a specific org.apache.ws.commons.schema.resolver.URIResolver) which can handle the import nicely ?

Workaround is twofolds:

  • put the xsds in the war file
  • merge the xsds in one single file (no more import statement)


 Comments   
Comment by Gregory bonk [ 28/Jul/11 ]

I got tripped up on this and I'm wondering if it's me ( probably ) or a flaw in the implementation. I'm using spring-xml-2.0.2.RELEASE.jar

I have an issue with the following line....

// let's try and find it on the classpath, see SWS-362
String classpathLocation = ResourceLoader.CLASSPATH_URL_PREFIX + "/" + schemaLocation;

Now that schema locations are beiing read in like resources on the classpath, I think they should be required to be defined as classpath resources.

I have some XSDs that are in the default package and others that are in/multi/level/packages. With the defaulted "/" being added the naming in our XSDs gets messed up.

schemaLocation="/schema_1_3.xsd" />

schemaLocation="revision/common/locale/schema_1_3.xsd" />

In the first case the double "//" messes things up.

Comment by Arjen Poutsma [ 04/May/12 ]

Closing old issues

Generated at Tue Dec 12 06:34:45 UTC 2017 using JIRA 6.4.14#64029-sha1:ae256fe0fbb912241490ff1cecfb323ea0905ca5.