You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by da...@apache.org on 2007/03/25 06:47:05 UTC

svn commit: r522161 - in /incubator/cxf/trunk/rt: core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java

Author: dandiep
Date: Sat Mar 24 21:47:03 2007
New Revision: 522161

URL: http://svn.apache.org/viewvc?view=rev&rev=522161
Log:
Give each schema a new systemId so that if we have multiple schemas in the same namespace, they don't get clobbered.

Modified:
    incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
    incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java

Modified: incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java?view=diff&rev=522161&r1=522160&r2=522161
==============================================================================
--- incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java (original)
+++ incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLServiceBuilder.java Sat Mar 24 21:47:03 2007
@@ -280,6 +280,7 @@
     private void extractSchema(Definition def, XmlSchemaCollection schemaCol, ServiceInfo serviceInfo) {
         Types typesElement = def.getTypes();
         if (typesElement != null) {
+            int schemaCount = 1;
             for (Object obj : typesElement.getExtensibilityElements()) {
                 org.w3c.dom.Element schemaElem = null;
                 if (obj instanceof Schema) {
@@ -299,16 +300,20 @@
                                                       "xmlns:" + prefix, ns);
                         }
                     }
+                    String systemId = def.getDocumentBaseURI() + "#types" + schemaCount;
+                    
                     schemaCol.setBaseUri(def.getDocumentBaseURI());
                     CatalogXmlSchemaURIResolver schemaResolver = 
                         new CatalogXmlSchemaURIResolver(OASISCatalogManager.getCatalog(bus));
                     schemaCol.setSchemaResolver(schemaResolver);
-                    XmlSchema xmlSchema = schemaCol.read(schemaElem);
+                    XmlSchema xmlSchema = schemaCol.read(schemaElem, systemId);
 
                     SchemaInfo schemaInfo = new SchemaInfo(serviceInfo, xmlSchema.getTargetNamespace());
                     schemaInfo.setElement(schemaElem);
                     schemaInfo.setSchema(xmlSchema);
+                    schemaInfo.setSystemId(systemId);
                     serviceInfo.addSchema(schemaInfo);
+                    schemaCount++;
                 }
             }
         }

Modified: incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java?view=diff&rev=522161&r1=522160&r2=522161
==============================================================================
--- incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java (original)
+++ incubator/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java Sat Mar 24 21:47:03 2007
@@ -151,9 +151,11 @@
         ErrorListener elForRun = new InnerErrorListener(wsdlUrl);
         compiler.setErrorListener(elForRun);
 
+        int num = 1;
         for (SchemaInfo schema : schemas) {
             Element el = schema.getElement();
-            compiler.parseSchema(wsdlUrl, el);
+            compiler.parseSchema(wsdlUrl + "#types" + num, el);
+            num++;
         }
 
         S2JJAXBModel intermediateModel = compiler.bind();