Author: bimargulies Date: Sun Dec 14 13:25:18 2008 New Revision: 726532 URL: http://svn.apache.org/viewvc?rev=726532&view=rev Log: WSCOMMONS-377.
Add functionality so that the base URI of an XmlSchemaCollection is used to resolve imports inside of a schema when that schemas's system ID is not usable as a base URI. I'm calling this a fix to 377. Added: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/resolver/CollectionURIResolver.java (with props) webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCOMMONS377Test.java (with props) webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/ webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedElements.xsd (with props) webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedTypes.xsd (with props) webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importing.wsdl (with props) Modified: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/XmlSchemaCollection.java webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/resolver/DefaultURIResolver.java Modified: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java URL: http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java?rev=726532&r1=726531&r2=726532&view=diff ============================================================================== --- webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java (original) +++ webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java Sun Dec 14 13:25:18 2008 @@ -126,15 +126,15 @@ /** * handles the schema element * @param schemaEl - * @param uri + * @param systemId */ - XmlSchema handleXmlSchemaElement(Element schemaEl, String uri) { + XmlSchema handleXmlSchemaElement(Element schemaEl, String systemId) { // get all the attributes along with the namespace declns schema.setNamespaceContext(NodeNamespaceContext.getNamespaceContext(schemaEl)); setNamespaceAttributes(schema, schemaEl); XmlSchemaCollection.SchemaKey schemaKey = new XmlSchemaCollection.SchemaKey( - schema.logicalTargetNamespace, uri); + schema.logicalTargetNamespace, systemId); if (!collection.containsSchema(schemaKey)) { collection.addSchema(schemaKey, schema); schema.parent = collection; // establish parentage now. @@ -153,7 +153,7 @@ schema.id = schemaEl.getAttribute("id"); } - schema.setSourceURI(uri); + schema.setSourceURI(systemId); /*********** * for ( each childElement) Modified: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/XmlSchemaCollection.java URL: http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/XmlSchemaCollection.java?rev=726532&r1=726531&r2=726532&view=diff ============================================================================== --- webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/XmlSchemaCollection.java (original) +++ webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/XmlSchemaCollection.java Sun Dec 14 13:25:18 2008 @@ -42,6 +42,7 @@ import org.apache.ws.commons.schema.constants.Constants; import org.apache.ws.commons.schema.extensions.ExtensionRegistry; +import org.apache.ws.commons.schema.resolver.CollectionURIResolver; import org.apache.ws.commons.schema.resolver.DefaultURIResolver; import org.apache.ws.commons.schema.resolver.URIResolver; import org.apache.ws.commons.schema.utils.DOMUtil; @@ -94,20 +95,27 @@ } - - static class SchemaKey { + /** + * Key that identifies a schema in a collection, composed of a targetNamespace + * and a system ID. + */ + public static class SchemaKey { private final String namespace; private final String systemId; SchemaKey(String pNamespace, String pSystemId) { namespace = pNamespace == null ? Constants.NULL_NS_URI : pNamespace; systemId = pSystemId == null ? "" : pSystemId; } + String getNamespace() { return namespace; } + String getSystemId() { return systemId; } + public int hashCode() { final int PRIME = 31; return (PRIME + namespace.hashCode()) * PRIME + systemId.hashCode(); } + public boolean equals(Object obj) { if (this == obj) return true; @@ -118,6 +126,7 @@ final SchemaKey other = (SchemaKey) obj; return namespace.equals(other.namespace) && systemId.equals(other.systemId); } + public String toString() { return Constants.NULL_NS_URI.equals(namespace) ? systemId : ("{" + namespace + "}" + systemId); @@ -156,10 +165,15 @@ /** * Set the base URI. This is used when schemas need to be * loaded from relative locations - * @param baseUri baseUri for this + * @param baseUri baseUri for this collection. */ - public void setBaseUri(String baseUri){ + public void setBaseUri(String baseUri) { this.baseUri = baseUri; + if(schemaResolver instanceof CollectionURIResolver) { + CollectionURIResolver resolverWithBase = + (CollectionURIResolver) schemaResolver; + resolverWithBase.setCollectionBaseURI(baseUri); + } } /** @@ -396,10 +410,26 @@ return doc; } + /** + * Read an XML schema into the collection from a SAX InputSource. + * Schemas in a collection must be unique in the concatenation of system ID and + * targetNamespace. In this API, the systemID is taken from the source. + * @param inputSource the XSD document. + * @param veh handler that is called back for validation. + * @return the XML schema object. + */ public XmlSchema read(InputSource inputSource, ValidationEventHandler veh) { return read(inputSource, veh, null); } - + + /** + * Read an XML schema into the collection from a TRaX source. + * Schemas in a collection must be unique in the concatenation of system ID and + * targetNamespace. In this API, the systemID is taken from the Source. + * @param source the XSD document. + * @param veh handler that is called back for validation. + * @return the XML schema object. + */ public XmlSchema read(Source source, ValidationEventHandler veh) { if (source instanceof SAXSource) { return read(((SAXSource) source).getInputSource(), veh); @@ -422,12 +452,27 @@ } } + /** + * Read an XML schema into the collection from a DOM document. + * Schemas in a collection must be unique in the concatenation of system ID and + * targetNamespace. In this API, the systemID is taken from the document. + * @param doc the XSD document. + * @param veh handler that is called back for validation. + * @return the XML schema object. + */ public XmlSchema read(Document doc, ValidationEventHandler veh) { SchemaBuilder builder = new SchemaBuilder(this, null); return builder.build(doc, null, veh); } + /** + * Read an XML Schema into the collection from a DOM element. Schemas in a collection + * must be unique in the concatentation of System ID and targetNamespace. The system ID will + * be empty for this API. + * @param elem the DOM element for the schema. + * @return the XmlSchema + */ public XmlSchema read(Element elem) { SchemaBuilder builder = new SchemaBuilder(this, null); XmlSchema xmlSchema = builder.handleXmlSchemaElement(elem, null); @@ -435,25 +480,51 @@ return xmlSchema; } - public XmlSchema read(Document doc, String uri, ValidationEventHandler veh) { - return read(doc, uri, veh, null); + /** + * Read an XML Schema from a complete XSD XML DOM Document into this collection. + * Schemas in a collection must be unique in + * the concatenation of SystemId and targetNamespace. + * @param doc The schema document. + * @param systemId System ID for this schema. + * @param veh handler to be called to check validity of the schema. + * @return the schema object. + */ + public XmlSchema read(Document doc, String systemId, ValidationEventHandler veh) { + return read(doc, systemId, veh, null); } - public XmlSchema read(Document doc, String uri, ValidationEventHandler veh, + /** + * Read an XML Schema from a complete XSD XML DOM Document into this collection. + * Schemas in a collection must be unique in + * the concatenation of SystemId and targetNamespace. + * @param doc Source document. + * @param systemId System id. + * @param veh Stub for future capability to handle validation errors. + * @param validator object that is called back to check validity of the target namespace. + * @return the schema object. + */ + public XmlSchema read(Document doc, String systemId, ValidationEventHandler veh, TargetNamespaceValidator validator) { SchemaBuilder builder = new SchemaBuilder(this, validator); - XmlSchema schema = builder.build(doc, uri, veh); + XmlSchema schema = builder.build(doc, systemId, veh); schema.setInputEncoding(DOMUtil.getInputEncoding(doc)); return schema; } - public XmlSchema read(Element elem, String uri) { + /** + * Read a schema from a DOM tree into the collection. The schemas in a collection must be unique + * in the concatenation of the target namespace and the system ID. + * @param elem xs:schema DOM element. + * @param systemId System id. + * @return the schema object. + */ + public XmlSchema read(Element elem, String systemId) { SchemaBuilder builder = new SchemaBuilder(this, null); - XmlSchema xmlSchema = builder.handleXmlSchemaElement(elem, uri); + XmlSchema xmlSchema = builder.handleXmlSchemaElement(elem, systemId); xmlSchema.setInputEncoding(DOMUtil.getInputEncoding(elem.getOwnerDocument())); return xmlSchema; } - + /** * Creates new XmlSchemaCollection */ @@ -462,7 +533,7 @@ } /** - * Retrieve a set of XmlSchema instances with the given its system ID. + * Retrieve a set containing the XmlSchema instances with the given system ID. * In general, this will return a single instance, or none. However, * if the schema has no targetNamespace attribute and was included * from schemata with different target namespaces, then it may @@ -494,33 +565,46 @@ return (XmlSchema[]) c.toArray(new XmlSchema[c.size()]); } + + /** + * Retrieve a global element from the schema collection. + * @param qname the element QName. + * @return the element object, or null. + */ public XmlSchemaElement getElementByQName(QName qname) { - String uri = qname.getNamespaceURI(); - for (Iterator iter = schemas.entrySet().iterator(); iter.hasNext(); ) { - Map.Entry entry = (Map.Entry) iter.next(); - if (((SchemaKey) entry.getKey()).getNamespace().equals(uri)) { - XmlSchemaElement element = ((XmlSchema) entry.getValue()).getElementByName(qname); - if (element != null) { - return element; - } - } - } - return null; - } + String uri = qname.getNamespaceURI(); + for (Iterator iter = schemas.entrySet().iterator(); iter.hasNext();) { + Map.Entry entry = (Map.Entry) iter.next(); + if (((SchemaKey) entry.getKey()).getNamespace().equals(uri)) { + XmlSchemaElement element = ((XmlSchema) entry.getValue()) + .getElementByName(qname); + if (element != null) { + return element; + } + } + } + return null; + } + /** + * Retrieve a global type from the schema collection. + * @param schemaTypeName the QName of the type. + * @return the type object, or null. + */ public XmlSchemaType getTypeByQName(QName schemaTypeName) { - String uri = schemaTypeName.getNamespaceURI(); - for (Iterator iter = schemas.entrySet().iterator(); iter.hasNext(); ) { - Map.Entry entry = (Map.Entry) iter.next(); - if (((SchemaKey) entry.getKey()).getNamespace().equals(uri)) { - XmlSchemaType type = ((XmlSchema) entry.getValue()).getTypeByName(schemaTypeName); - if (type != null) { - return type; - } - } - } - return null; - } + String uri = schemaTypeName.getNamespaceURI(); + for (Iterator iter = schemas.entrySet().iterator(); iter.hasNext();) { + Map.Entry entry = (Map.Entry) iter.next(); + if (((SchemaKey) entry.getKey()).getNamespace().equals(uri)) { + XmlSchemaType type = ((XmlSchema) entry.getValue()) + .getTypeByName(schemaTypeName); + if (type != null) { + return type; + } + } + } + return null; + } /** * Find a global attribute by QName in this collection of schemas. @@ -578,23 +662,49 @@ unresolvedTypes.remove(typeName); } + /** + * Retrieve the namespace context. + * @return the namespace context. + */ public NamespacePrefixList getNamespaceContext() { return namespaceContext; } + /** + * Set the namespace context for this collection, which controls the assignment of + * namespace prefixes to namespaces. + * @param namespaceContext the context. + */ public void setNamespaceContext(NamespacePrefixList namespaceContext) { this.namespaceContext = namespaceContext; } - public void push(SchemaKey pKey){ + /** + * Push a schema onto the stack of schemas. + * This function, while public, is probably not useful outside of + * the implementation. + * @param pKey the schema key. + */ + public void push(SchemaKey pKey) { stack.push(pKey); } - public void pop(){ + /** + * Pop the stack of schemas. This function, while public, is probably not useful outside of + * the implementation. + */ + public void pop() { stack.pop(); } - public boolean check(SchemaKey pKey){ + /** + * Return an indication of whether a particular schema is in the working stack of + * schemas. This function, while public, is probably not useful outside of + * the implementation. + * @param pKey schema key + * @return true if the schema is in the stack. + */ + public boolean check(SchemaKey pKey) { return (stack.indexOf(pKey)==-1); } Added: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/resolver/CollectionURIResolver.java URL: http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/resolver/CollectionURIResolver.java?rev=726532&view=auto ============================================================================== --- webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/resolver/CollectionURIResolver.java (added) +++ webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/resolver/CollectionURIResolver.java Sun Dec 14 13:25:18 2008 @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.ws.commons.schema.resolver; + +/** + * + * Extended URIResolver that can be informed about + * a collective base URI. + */ +public interface CollectionURIResolver extends URIResolver { + void setCollectionBaseURI(String uri); + String getCollectionBaseURI(); +} Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/resolver/CollectionURIResolver.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/resolver/CollectionURIResolver.java ------------------------------------------------------------------------------ svn:keywords = Rev Date Modified: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/resolver/DefaultURIResolver.java URL: http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/resolver/DefaultURIResolver.java?rev=726532&r1=726531&r2=726532&view=diff ============================================================================== --- webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/resolver/DefaultURIResolver.java (original) +++ webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/main/java/org/apache/ws/commons/schema/resolver/DefaultURIResolver.java Sun Dec 14 13:25:18 2008 @@ -31,28 +31,36 @@ /** * This resolver provides the means of resolving the imports and includes of a * given schema document. The system will call this default resolver if there - * is no other resolver present in the system + * is no other resolver present in the system. */ -public class DefaultURIResolver implements URIResolver { +public class DefaultURIResolver implements CollectionURIResolver { + + private String collectionBaseURI; /** - * As for the resolver the publid ID is the target namespace of the - * schema and the schemaLocation is the value of the schema location - * @param namespace - * @param schemaLocation - * @param baseUri + * Try to resolve a schema location to some data. + * @param namespace targt namespace. + * @param schemaLocation system ID. + * @param baseUri base URI for the schema. */ public InputSource resolveEntity(String namespace, String schemaLocation, - String baseUri){ + String baseUri) { if (baseUri!=null) { try { File baseFile = new File(baseUri); - if (baseFile.exists()) baseUri = baseFile.toURI().toString(); + if (baseFile.exists()) { + baseUri = baseFile.toURI().toString(); + } else if(collectionBaseURI != null) { + baseFile = new File(collectionBaseURI); + if (baseFile.exists()) { + baseUri = baseFile.toURI().toString(); + } + } String ref = new URI(baseUri).resolve(new URI(schemaLocation)).toString(); @@ -161,4 +169,20 @@ return new URL("file", "", path); } // getFileURL + + /** + * Get the base URI derived from a schema collection. It serves as a fallback from the specified base. + * @return URI + */ + public String getCollectionBaseURI() { + return collectionBaseURI; + } + + /** + * set the collection base URI, which serves as a fallback from the base of the immediate schema. + * @param collectionBaseURI the URI. + */ + public void setCollectionBaseURI(String collectionBaseURI) { + this.collectionBaseURI = collectionBaseURI; + } } Added: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCOMMONS377Test.java URL: http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCOMMONS377Test.java?rev=726532&view=auto ============================================================================== --- webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCOMMONS377Test.java (added) +++ webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCOMMONS377Test.java Sun Dec 14 13:25:18 2008 @@ -0,0 +1,44 @@ +/* + * Created on 31.08.2008 + * (C) Copyright 2003-2008 Alexander Veit + */ + + +package tests; + +import javax.xml.parsers.DocumentBuilderFactory; + +import junit.framework.TestCase; + +import org.apache.ws.commons.schema.XmlSchema; +import org.apache.ws.commons.schema.XmlSchemaCollection; +import org.apache.ws.commons.schema.constants.Constants; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + + +/** + * @author alex + * $Revision$ + */ +public class WSCOMMONS377Test extends TestCase { + + public void testSchemaImport() throws Exception { + DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance(); + fac.setNamespaceAware(true); + + String strUri = Resources.asURI("WSCOMMONS-377/importing.wsdl"); + Document doc = fac.newDocumentBuilder().parse(strUri); + + XmlSchemaCollection xsColl = new XmlSchemaCollection(); + xsColl.setBaseUri(Resources.TEST_RESOURCES + "/WSCOMMONS-377"); + + NodeList nodesSchema = doc.getElementsByTagNameNS(Constants.URI_2001_SCHEMA_XSD, "schema"); + XmlSchema[] schemas = new XmlSchema[nodesSchema.getLength()]; + + String systemIdBase = "urn:schemas"; + for (int i = 0; i < nodesSchema.getLength(); i++) + schemas[i] = xsColl.read((Element)nodesSchema.item(i), systemIdBase + i); + } +} Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCOMMONS377Test.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCOMMONS377Test.java ------------------------------------------------------------------------------ svn:executable = * Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/java/tests/WSCOMMONS377Test.java ------------------------------------------------------------------------------ svn:keywords = Rev Date Added: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedElements.xsd URL: http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedElements.xsd?rev=726532&view=auto ============================================================================== --- webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedElements.xsd (added) +++ webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedElements.xsd Sun Dec 14 13:25:18 2008 @@ -0,0 +1,30 @@ +<!-- + ~ Licensed to the Apache Software Foundation (ASF) under one + ~ or more contributor license agreements. See the NOTICE file + ~ distributed with this work for additional information + ~ regarding copyright ownership. The ASF licenses this file + ~ to you under the Apache License, Version 2.0 (the + ~ "License"); you may not use this file except in compliance + ~ with the License. You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, + ~ software distributed under the License is distributed on an + ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ~ KIND, either express or implied. See the License for the + ~ specific language governing permissions and limitations + ~ under the License. + --> + +<xsd:schema + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:types="http://test.example.org/types/" + targetNamespace="http://test.example.org/" + elementFormDefault="qualified"> + + <xsd:import namespace="http://test.example.org/types/" schemaLocation="importedTypes.xsd" /> + + <xsd:element name="myArray" type="types:tArray"/> + +</xsd:schema> \ No newline at end of file Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedElements.xsd ------------------------------------------------------------------------------ svn:eol-style = native Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedElements.xsd ------------------------------------------------------------------------------ svn:executable = * Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedElements.xsd ------------------------------------------------------------------------------ svn:keywords = Rev Date Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedElements.xsd ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedTypes.xsd URL: http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedTypes.xsd?rev=726532&view=auto ============================================================================== --- webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedTypes.xsd (added) +++ webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedTypes.xsd Sun Dec 14 13:25:18 2008 @@ -0,0 +1,31 @@ +<!-- + ~ Licensed to the Apache Software Foundation (ASF) under one + ~ or more contributor license agreements. See the NOTICE file + ~ distributed with this work for additional information + ~ regarding copyright ownership. The ASF licenses this file + ~ to you under the Apache License, Version 2.0 (the + ~ "License"); you may not use this file except in compliance + ~ with the License. You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, + ~ software distributed under the License is distributed on an + ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + ~ KIND, either express or implied. See the License for the + ~ specific language governing permissions and limitations + ~ under the License. + --> + +<xsd:schema + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://test.example.org/types/" + elementFormDefault="qualified"> + + <xsd:complexType name="tArray"> + <xsd:sequence> + <xsd:any namespace="##any" /> + </xsd:sequence> + </xsd:complexType> + +</xsd:schema> \ No newline at end of file Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedTypes.xsd ------------------------------------------------------------------------------ svn:eol-style = native Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedTypes.xsd ------------------------------------------------------------------------------ svn:executable = * Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedTypes.xsd ------------------------------------------------------------------------------ svn:keywords = Rev Date Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importedTypes.xsd ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importing.wsdl URL: http://svn.apache.org/viewvc/webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importing.wsdl?rev=726532&view=auto ============================================================================== --- webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importing.wsdl (added) +++ webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importing.wsdl Sun Dec 14 13:25:18 2008 @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<wsdl:definitions + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:tns="http://test.example.org/" + xmlns:types="http://test.example.org/types/" + targetNamespace="http://test.example.org/"> + + <wsdl:types> + <xsd:schema> + <xsd:import namespace="http://test.example.org/" schemaLocation="importedElements.xsd" /> + </xsd:schema> + <xsd:schema> + <xsd:import namespace="http://test.example.org/types/" schemaLocation="importedTypes.xsd" /> + </xsd:schema> + </wsdl:types> + +</wsdl:definitions> \ No newline at end of file Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importing.wsdl ------------------------------------------------------------------------------ svn:eol-style = native Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importing.wsdl ------------------------------------------------------------------------------ svn:executable = * Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importing.wsdl ------------------------------------------------------------------------------ svn:keywords = Rev Date Propchange: webservices/commons/branches/modules/XmlSchema/1_4_X_BRANCH/src/test/test-resources/WSCOMMONS-377/importing.wsdl ------------------------------------------------------------------------------ svn:mime-type = text/xml