You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by "Jeff Faath (JIRA)" <ji...@apache.org> on 2008/12/01 20:55:44 UTC

[jira] Commented: (WSCOMMONS-377) XmlSchemaCollection does not handle multiple imports correctly

    [ https://issues.apache.org/jira/browse/WSCOMMONS-377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12652128#action_12652128 ] 

Jeff Faath commented on WSCOMMONS-377:
--------------------------------------

Any new word on this issue?

We're getting hit with it in the Apache jUDDI project.  We're trying to expose the UDDI api as JAX-WS services.

Schema files are generated with imports.  So when a schema with the import is "read" (via XMLSchemaCollections#read) the import is also read into the collection.  Then when the actual schema file of the previously imported schema is read, the namespace conflict occurs.  

It appears that previously read schemas are contained in a Hashmap keyed by the target namespace.  So when a target namespace is read for the second time, it is rejected.


> XmlSchemaCollection does not handle multiple imports correctly
> --------------------------------------------------------------
>
>                 Key: WSCOMMONS-377
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-377
>             Project: WS-Commons
>          Issue Type: Bug
>          Components: XmlSchema
>            Reporter: Alexander Veit
>            Priority: Blocker
>         Attachments: wscommons-377.zip
>
>
> JAX-WS frequently generates WSDL files with the following schema import pattern:
> wsdl:
> {code:xml}
>   <types>
>     <xsd:schema>
>       <xsd:import namespace="http://test.example.org/" schemaLocation="http://server/path/?xsd=1" />
>     </xsd:schema>
>     <xsd:schema>
>       <xsd:import namespace="http://jaxb.dev.java.net/array" schemaLocation="http://server/path/?xsd=2" />
>     </xsd:schema>
>   </types>
> {code}
> xsd1:
> {code:xml}
> <xsd:schema xmlns:ns1="http://jaxb.dev.java.net/array" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://test.example.org/">
>   <xsd:import namespace="http://jaxb.dev.java.net/array" schemaLocation="http://server/path/?xsd=2" />
>  <!-- element definitions -->
> </xsd:schema>
> {code}
> xsd2:
> {code:xml}
> <xsd:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://jaxb.dev.java.net/array">
>  <!-- type definitions -->
> </xsd:schema>
> {code}
> XMLSchema cannot read both schema imports in the WSDL. It quits with
> org.apache.ws.commons.schema.XmlSchemaException: Schema name conflict in collection. Namespace: 
> 	at org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:139)
> 	at org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:412)
> CXF-1624 is probably related to this bug.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.