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.