From c4bd8a170182c859953f2f4ccabc6238a1fe81c7 Mon Sep 17 00:00:00 2001 From: slaws Date: Mon, 4 Jan 2010 14:47:16 +0000 Subject: TUSCANY-3408 Generate referenced namespace shortname if it's not already present git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@895646 13f79535-47bb-0310-9956-ffa450edef68 --- .../ws/wsdlgen/Interface2WSDLGenerator.java | 30 +++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'sca-java-1.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org') diff --git a/sca-java-1.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java b/sca-java-1.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java index bfa882ebf7..98f7215928 100644 --- a/sca-java-1.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java +++ b/sca-java-1.x/trunk/modules/binding-ws-wsdlgen/src/main/java/org/apache/tuscany/sca/binding/ws/wsdlgen/Interface2WSDLGenerator.java @@ -549,7 +549,15 @@ public class Interface2WSDLGenerator { defaultNamespaceSchema = xsDef; } } - } + } + + // useful for debugging DOM issues + //System.out.println("======================= Schema DOM Pre Merge=======================" ); + //for (XSDefinition xsDef : wsdlDefinition.getXmlSchemas()) { + // if (xsDef.getDocument() != null) { + // printDOM(xsDef.getDocument()); + // } + //} // TUSCANY-3283 merge the no namespace schema into the default namespace schema if (noNamespaceSchema != null && defaultNamespaceSchema != null){ @@ -558,11 +566,19 @@ public class Interface2WSDLGenerator { // merge the schema with no namespace into the schema with the default namspace for this WSDL mergeSchema(noNamespaceSchema, defaultNamespaceSchema, wsdlDefinition.getXmlSchemas()); + // useful for debugging DOM issues + //System.out.println("======================= Schema DOM Post Merge=======================" ); + //for (XSDefinition xsDef : wsdlDefinition.getXmlSchemas()) { + // if (xsDef.getDocument() != null) { + // printDOM(xsDef.getDocument()); + // } + //} + schemaCollection = new XmlSchemaCollection(); defaultNamespaceSchema.setSchema(null); defaultNamespaceSchema.setSchemaCollection(null); loadXSD(schemaCollection, defaultNamespaceSchema); - } + } // push the schema into the WSDL for (XSDefinition xsDef: wsdlDefinition.getXmlSchemas()){ @@ -570,7 +586,7 @@ public class Interface2WSDLGenerator { } // useful for debugging DOM issues - //System.out.println("======================= Schema DOM =======================" ); + //System.out.println("======================= Schema DOM Process End =======================" ); //for (XSDefinition xsDef : wsdlDefinition.getXmlSchemas()) { // if (xsDef.getDocument() != null) { // printDOM(xsDef.getDocument()); @@ -720,6 +736,14 @@ public class Interface2WSDLGenerator { if (type != null && type.getNodeValue().equals(typeName)){ if (xsDef.getNamespace().equals(defaultNamespace)){ + // double check that there is a "tns" namespace shortname specified + String tnsNamespace = refSchema.getDocumentElement().getAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:tns"); + + if (tnsNamespace == null || + tnsNamespace.isEmpty()){ + refSchema.getDocumentElement().setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:tns", defaultNamespace); + } + // just add "tns" in front of the type name as // we have merged the type into this schema type.setNodeValue("tns:" + type.getNodeValue()); -- cgit v1.2.3