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 "Alexander Veit (JIRA)" <ji...@apache.org> on 2008/09/01 21:46: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=12627524#action_12627524 ] 

Alexander Veit commented on WSCOMMONS-377:
------------------------------------------

The attached test case shows the problem.

As is turns out, the two schema elements that both have no targetNamespace attribute cause the error. It seems that the current implementation/API cannot handle this situation without major changes.

As a workaround I'll try to use the XmlSchemaCollection#read(Element, String) with a synthetic URI as second parameter instead of  XmlSchemaCollection#read(Element). However, since the API severely lacks documentation, it is not clear if this will work correctly in all circumstances.

> 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.