You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by am...@apache.org on 2007/02/28 05:02:55 UTC
svn commit: r512599 - in /webservices/axis2/trunk/java/modules:
adb-codegen/src/org/apache/axis2/schema/
codegen/src/org/apache/axis2/wsdl/codegen/emitter/ integration/
integration/test-resources/wsdl/ kernel/src/org/apache/axis2/description/
Author: amilas
Date: Tue Feb 27 20:02:55 2007
New Revision: 512599
URL: http://svn.apache.org/viewvc?view=rev&rev=512599
Log:
Change the namespace handling when processing the rpc wsdls
Fixed the partName problem in codegen
Modified:
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
webservices/axis2/trunk/java/modules/integration/maven.xml
webservices/axis2/trunk/java/modules/integration/test-resources/wsdl/DocumentUnwrappingTest.wsdl
webservices/axis2/trunk/java/modules/integration/test-resources/wsdl/RPCUnwrappingTest.wsdl
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java?view=diff&rev=512599&r1=512598&r2=512599
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java Tue Feb 27 20:02:55 2007
@@ -1624,7 +1624,7 @@
int sequenceCounter = 0;
for (int i = 0; i < count; i++) {
- XmlSchemaObject item = items.getItem(sequenceCounter);
+ XmlSchemaObject item = items.getItem(i);
if (item instanceof XmlSchemaElement) {
//recursively process the element
@@ -1845,37 +1845,41 @@
private XmlSchemaElement getReferencedElement(XmlSchema parentSchema, QName referencedQName)
throws SchemaCompilationException {
- XmlSchema schema = resolveParentSchema(referencedQName, parentSchema);
- XmlSchemaElement refElement = schema.getElementByName(referencedQName);
- if (refElement == null) {
- // The referenced element seems to come from an imported
- // schema.
- XmlSchemaObjectCollection includes = schema.getIncludes();
- if (includes != null) {
- Iterator tempIterator = includes.getIterator();
- while (tempIterator.hasNext()) {
- Object o = tempIterator.next();
- XmlSchema inclSchema = null;
- if (o instanceof XmlSchemaImport) {
- inclSchema = ((XmlSchemaImport) o).getSchema();
- if (inclSchema == null) {
- inclSchema = (XmlSchema) loadedSchemaMap.get(((XmlSchemaImport) o).getNamespace());
+ XmlSchemaElement refElement = parentSchema.getElementByName(referencedQName);
+ if (refElement == null){
+ XmlSchema schema = resolveParentSchema(referencedQName, parentSchema);
+ refElement = schema.getElementByName(referencedQName);
+ if (refElement == null) {
+ // The referenced element seems to come from an imported
+ // schema.
+ XmlSchemaObjectCollection includes = schema.getIncludes();
+ if (includes != null) {
+ Iterator tempIterator = includes.getIterator();
+ while (tempIterator.hasNext()) {
+ Object o = tempIterator.next();
+ XmlSchema inclSchema = null;
+ if (o instanceof XmlSchemaImport) {
+ inclSchema = ((XmlSchemaImport) o).getSchema();
+ if (inclSchema == null) {
+ inclSchema = (XmlSchema) loadedSchemaMap.get(((XmlSchemaImport) o).getNamespace());
+ }
+ }
+ if (o instanceof XmlSchemaInclude) {
+ inclSchema = ((XmlSchemaInclude) o).getSchema();
+ }
+ // get the element from the included schema
+ if (inclSchema != null) {
+ refElement = inclSchema.getElementByName(referencedQName);
+ }
+ if (refElement != null) {
+ // we found the referenced element an can break the loop
+ break;
}
- }
- if (o instanceof XmlSchemaInclude) {
- inclSchema = ((XmlSchemaInclude) o).getSchema();
- }
- // get the element from the included schema
- if (inclSchema != null) {
- refElement = inclSchema.getElementByName(referencedQName);
- }
- if (refElement != null) {
- // we found the referenced element an can break the loop
- break;
}
}
}
}
+
return refElement;
}
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java?view=diff&rev=512599&r1=512598&r2=512599
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/AxisServiceBasedMultiLanguageEmitter.java Tue Feb 27 20:02:55 2007
@@ -2675,9 +2675,13 @@
paramElement.appendChild(qNameElement);
}
if (partName!= null){
- addAttribute(doc,"partname",
- JavaUtils.capitalizeFirstChar(partName),
- paramElement);
+ String javaName = null;
+ if (JavaUtils.isJavaKeyword(partName)){
+ javaName = JavaUtils.makeNonJavaKeyword(partName);
+ } else {
+ javaName = JavaUtils.capitalizeFirstChar(JavaUtils.xmlNameToJava(partName));
+ }
+ addAttribute(doc,"partname",javaName,paramElement);
}
if (isPrimitive) {
Modified: webservices/axis2/trunk/java/modules/integration/maven.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/maven.xml?view=diff&rev=512599&r1=512598&r2=512599
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/maven.xml (original)
+++ webservices/axis2/trunk/java/modules/integration/maven.xml Tue Feb 27 20:02:55 2007
@@ -39,7 +39,7 @@
<jvmarg line="${maven.junit.jvmargs}"/>
<classpath refid="maven.dependency.classpath"/>
<classpath location="${compiled.classes.dir}"/>
- <arg line="-o target/wsdl/documentunwrapping -ss -sd -ssi -u -t -g -uw -uri test-resources/wsdl/DocumentUnwrappingTest.wsdl"/>
+ <arg line="-o target/wsdl/documentunwrapping -ss -sd -ssi -u -g -uw -uri test-resources/wsdl/DocumentUnwrappingTest.wsdl"/>
</java>
<ant:ant antfile="build.xml" inheritall="true" inheritrefs="true" dir="target/wsdl/documentunwrapping"/>
@@ -49,7 +49,7 @@
<jvmarg line="${maven.junit.jvmargs}"/>
<classpath refid="maven.dependency.classpath"/>
<classpath location="${compiled.classes.dir}"/>
- <arg line="-o target/wsdl/rpcunwrapping -ss -sd -ssi -u -t -g -uw -uri test-resources/wsdl/RPCUnwrappingTest.wsdl"/>
+ <arg line="-o target/wsdl/rpcunwrapping -ss -sd -ssi -u -g -uw -uri test-resources/wsdl/RPCUnwrappingTest.wsdl"/>
</java>
<ant:ant antfile="build.xml" inheritall="true" inheritrefs="true" dir="target/wsdl/rpcunwrapping"/>
Modified: webservices/axis2/trunk/java/modules/integration/test-resources/wsdl/DocumentUnwrappingTest.wsdl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test-resources/wsdl/DocumentUnwrappingTest.wsdl?view=diff&rev=512599&r1=512598&r2=512599
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test-resources/wsdl/DocumentUnwrappingTest.wsdl (original)
+++ webservices/axis2/trunk/java/modules/integration/test-resources/wsdl/DocumentUnwrappingTest.wsdl Tue Feb 27 20:02:55 2007
@@ -19,7 +19,7 @@
<xsd:element name="Response1">
<xsd:complexType>
<xsd:sequence>
- <xsd:element name="param1" type="xsd:string"/>
+ <xsd:element name="return" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Modified: webservices/axis2/trunk/java/modules/integration/test-resources/wsdl/RPCUnwrappingTest.wsdl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/integration/test-resources/wsdl/RPCUnwrappingTest.wsdl?view=diff&rev=512599&r1=512598&r2=512599
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test-resources/wsdl/RPCUnwrappingTest.wsdl (original)
+++ webservices/axis2/trunk/java/modules/integration/test-resources/wsdl/RPCUnwrappingTest.wsdl Tue Feb 27 20:02:55 2007
@@ -98,19 +98,19 @@
<wsdl:operation name="Operation1">
<soap:operation soapAction="http://www.example.org/wsdltest/Operation1"/>
<wsdl:input>
- <soap:body use="literal"/>
+ <soap:body use="literal" namespace="http://axis2.org/test1"/>
</wsdl:input>
<wsdl:output>
- <soap:body use="literal"/>
+ <soap:body use="literal" namespace="http://axis2.org/test2"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Operation2">
<soap:operation soapAction="http://www.example.org/wsdltest/Operation2"/>
<wsdl:input>
- <soap:body use="literal"/>
+ <soap:body use="literal" namespace="http://axis2.org/test1"/>
</wsdl:input>
<wsdl:output>
- <soap:body use="literal"/>
+ <soap:body use="literal" namespace="http://axis2.org/test2"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Operation3">
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java?view=diff&rev=512599&r1=512598&r2=512599
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java Tue Feb 27 20:02:55 2007
@@ -928,7 +928,7 @@
*
* @param wsdl4jOperation
* @param dif
- * @throws Exception
+ * @throws AxisFault
*/
private AxisOperation populateOperations(Operation wsdl4jOperation,
PortType wsdl4jPortType, Definition dif) throws AxisFault {
@@ -1128,12 +1128,12 @@
// i.e if the binding is any thing else than the soap it returns an empty list
List wrappableBindingOperationsList = findWrappableBindingOperations(wsdl4jBinding);
- Element schemaElement = createSchemaForPorttype(porttypeNamespaceURI,
+
+ // this method returns all the new schemas created when processing the rpc messages
+ Map newSchemaMap = createSchemaForPorttype(porttypeNamespaceURI,
wrappableBindingOperationsList, schemaMap);
- if (schemaElement != null) {
- schemaElementList.add(schemaElement);
- }
+ schemaElementList.addAll(newSchemaMap.values());
return (Element[]) schemaElementList
.toArray(new Element[schemaElementList.size()]);
}
@@ -1141,16 +1141,20 @@
/**
* Create a schema by looking at the port type
*
- * @param namespaceURI
+ * @param namespaceURI - namespace of the porttype uri we use this only if a user has not specified
+ * a namespace in soap:body
* @return null if there is no element
*/
- private Element createSchemaForPorttype(String namespaceURI,
+ private Map createSchemaForPorttype(String namespaceURI,
List operationListToProcess, Map existingSchemaMap) {
+
+ // this map is used to keep the newly added schemas
+ Map newSchemaMap = new HashMap();
// first of all look at the operations list
// we can return immediately if we get the operations list
// as empty
if (operationListToProcess.isEmpty()) {
- return null;
+ return newSchemaMap;
}
// loop through the messages. We'll populate thins map with the relevant
@@ -1162,14 +1166,9 @@
// this contains the required namespace imports. the key in this
// map would be the namaspace URI
- Map namespaceImportsMap = new HashMap();
- // generated complextypes. Keep in the list for writing later
- // the key for the complexType map is the message QName
- Map complexTypeElementsMap = new HashMap();
- // generated Elements. Kep in the list for later writing
- List elementElementsList = new ArrayList();
+ Map namespaceImportsMap = null;
// list namespace prefix map. This map will include uri -> prefix
- Map namespacePrefixMap = new HashMap();
+ Map namespacePrefixMap = null;
// //////////////////////////////////////////////////////////////////////////////////////////////////
// First thing is to populate the message map with the messages to
@@ -1199,31 +1198,8 @@
// see basic profile 4.4.2
}
- // /////////////////////////////////////////////////////////////////////////////////////////
- // check whether there are messages that are wrappable. If there are no
- // messages that are wrappable we'll
- // just return null and endup this process. However we need to take the
- // force flag into account here
- // /////////////////////////////////////////////////////////////////////////////////////////
-
- QName[] keys;
-
- // just take all the messages and wrap them, we've already selected
- // the relevant messages by looking at the SOAP binding
-
- keys = (QName[]) messageQnameToMessageMap.keySet().toArray(
- new QName[messageQnameToMessageMap.size()]);
-
- // /////////////////////////////////////////////////////////////////////////////////////////
- // Now we have the message list to process - Process the whole list of
- // messages at once
- // since we need to generate one single schema
- // /////////////////////////////////////////////////////////////////////////////////////////
-
- List resolvedMessageQnames = new ArrayList();
// find the xsd prefix
String xsdPrefix = findSchemaPrefix();
- Message wsdl4jMessage;
// DOM document that will be the ultimate creator
Document document = getDOMDocumentBuilder().newDocument();
@@ -1231,8 +1207,8 @@
//loop through the input op map and generate the elements
BindingOperation operation;
- for (Iterator operationsIter = operationToInputMessageMap.keySet().iterator();
- operationsIter.hasNext();) {
+ for (Iterator operationsIter = operationToInputMessageMap.keySet().iterator(); operationsIter.hasNext();) {
+
operation = (BindingOperation) operationsIter.next();
elementDeclaration = document.createElementNS(
XMLSCHEMA_NAMESPACE_URI, xsdPrefix + ":"
@@ -1262,6 +1238,9 @@
}
+ namespaceImportsMap = new HashMap();
+ namespacePrefixMap = new HashMap();
+
Node newComplexType = getNewComplextType(document,
xsdPrefix,
partsIterator,
@@ -1269,9 +1248,36 @@
namespacePrefixMap);
elementDeclaration.appendChild(newComplexType);
- elementElementsList.add(elementDeclaration);
+ String bodyNamespace = getNamespaceFromSoapBody(bindingInput.getExtensibilityElements());
+ String namespaceToUse = bodyNamespace != null? bodyNamespace: namespaceURI;
+
+ if (existingSchemaMap.containsKey(namespaceToUse)){
+ // i.e this namespace is already exists with the original wsdl schemas
+ addElementToAnExistingSchema((Element)existingSchemaMap.get(namespaceToUse),
+ elementDeclaration,
+ namespacePrefixMap,
+ namespaceImportsMap,
+ namespaceToUse);
+ } else if (newSchemaMap.containsKey(namespaceToUse)){
+ // i.e this namespace is with a newly created scheam
+ addElementToAnExistingSchema((Element)newSchemaMap.get(namespaceToUse),
+ elementDeclaration,
+ namespacePrefixMap,
+ namespaceImportsMap,
+ namespaceToUse);
+ } else {
+ // i.e this element namespace has not found yet so
+ // we have to create new schema for it
+ Element newSchema = createNewSchemaWithElemet(elementDeclaration,
+ namespacePrefixMap,
+ namespaceImportsMap,
+ namespaceToUse,
+ document,
+ xsdPrefix);
+ newSchemaMap.put(namespaceToUse,newSchema);
+ }
resolvedRpcWrappedElementMap.put(operation.getName(), new QName(
- namespaceURI, operation.getName(), AXIS2WRAPPED));
+ namespaceToUse, operation.getName(), AXIS2WRAPPED));
} else {
throw new WSDLProcessingException("No binding input is defiend for binding operation ==> "
@@ -1315,71 +1321,98 @@
}
+ // we have to initialize the hash maps always since we add the elements onece we
+ // generate it
+ namespacePrefixMap = new HashMap();
+ namespaceImportsMap = new HashMap();
+
Node newComplexType = getNewComplextType(document,
xsdPrefix,
partsIterator,
namespaceImportsMap,
namespacePrefixMap);
elementDeclaration.appendChild(newComplexType);
- elementElementsList.add(elementDeclaration);
- resolvedRpcWrappedElementMap.put(outputOpName, new QName(namespaceURI, outputOpName, AXIS2WRAPPED));
+
+ String bodyNamespace = getNamespaceFromSoapBody(bindingOutput.getExtensibilityElements());
+ String namespaceToUse = bodyNamespace != null? bodyNamespace: namespaceURI;
+
+ if (existingSchemaMap.containsKey(namespaceToUse)){
+ // i.e this namespace is already exists with the original wsdl schemas
+ addElementToAnExistingSchema((Element)existingSchemaMap.get(namespaceToUse),
+ elementDeclaration,
+ namespacePrefixMap,
+ namespaceImportsMap,
+ namespaceToUse);
+ } else if (newSchemaMap.containsKey(namespaceToUse)){
+ // i.e this namespace is with a newly created scheam
+ addElementToAnExistingSchema((Element)newSchemaMap.get(namespaceToUse),
+ elementDeclaration,
+ namespacePrefixMap,
+ namespaceImportsMap,
+ namespaceToUse);
+ } else {
+ // i.e this element namespace has not found yet so
+ // we have to create new schema for it
+ Element newSchema = createNewSchemaWithElemet(elementDeclaration,
+ namespacePrefixMap,
+ namespaceImportsMap,
+ namespaceToUse,
+ document,
+ xsdPrefix);
+ newSchemaMap.put(namespaceToUse,newSchema);
+ }
+ resolvedRpcWrappedElementMap.put(outputOpName, new QName(
+ namespaceToUse, outputOpName, AXIS2WRAPPED));
} else {
throw new WSDLProcessingException("No binding out put is defined for binding operation ==>" +
operation.getName());
}
-
}
- // /////////////////////////////////////////////////////////////////////
- //
- // Now we are done with processing the messages and generating the right
- // schema object model
- // time to write out the schema
- //
- // There is a catch here - when the target namespace of the generated
- // schema is equivalent to one of the existing schemas we'll have to
- // insert the elements there rather than creating a new Schema element
- // //////////////////////////////////////////////////////////////////////
- //
- if (existingSchemaMap.containsKey(namespaceURI)) {
- // get the relevant schema element
- Element schemaElement = (Element) existingSchemaMap
- .get(namespaceURI);
- Document ownerDocument = schemaElement.getOwnerDocument();
-
- // loop through the namespace declarations first and add them
- String[] nameSpaceDeclarationArray = (String[]) namespacePrefixMap
- .keySet().toArray(new String[namespacePrefixMap.size()]);
- for (int i = 0; i < nameSpaceDeclarationArray.length; i++) {
- String s = nameSpaceDeclarationArray[i];
- checkAndAddNamespaceDeclarations(s, namespacePrefixMap,
- schemaElement);
- }
+ return newSchemaMap;
+ }
- // add imports - check whether it is the targetnamespace before
- // adding
- Element[] namespaceImports = (Element[]) namespaceImportsMap
- .values().toArray(new Element[namespaceImportsMap.size()]);
- for (int i = 0; i < namespaceImports.length; i++) {
- if (!namespaceURI.equals(namespaceImports[i]
- .getAttribute(NAMESPACE_URI))) {
- schemaElement.appendChild(ownerDocument.importNode(
- namespaceImports[i], true));
- }
- }
+ private void addElementToAnExistingSchema(Element schemaElement,
+ Element newElement,
+ Map namespacePrefixMap,
+ Map namespaceImportsMap,
+ String targetNamespace){
+
+ Document ownerDocument = schemaElement.getOwnerDocument();
+
+ // loop through the namespace declarations first and add them
+ String[] nameSpaceDeclarationArray = (String[]) namespacePrefixMap
+ .keySet().toArray(new String[namespacePrefixMap.size()]);
+ for (int i = 0; i < nameSpaceDeclarationArray.length; i++) {
+ String s = nameSpaceDeclarationArray[i];
+ checkAndAddNamespaceDeclarations(s, namespacePrefixMap,
+ schemaElement);
+ }
- Element[] elementDeclarations = (Element[]) elementElementsList
- .toArray(new Element[elementElementsList.size()]);
- for (int i = 0; i < elementDeclarations.length; i++) {
+ // add imports - check whether it is the targetnamespace before
+ // adding
+ Element[] namespaceImports = (Element[]) namespaceImportsMap
+ .values().toArray(new Element[namespaceImportsMap.size()]);
+ for (int i = 0; i < namespaceImports.length; i++) {
+ if (!targetNamespace.equals(namespaceImports[i]
+ .getAttribute(NAMESPACE_URI))) {
schemaElement.appendChild(ownerDocument.importNode(
- elementDeclarations[i], true));
+ namespaceImports[i], true));
}
+ }
+
+ schemaElement.appendChild(ownerDocument.importNode(newElement, true));
+
+ }
+
+ private Element createNewSchemaWithElemet(Element newElement,
+ Map namespacePrefixMap,
+ Map namespaceImportsMap,
+ String targetNamespace,
+ Document document,
+ String xsdPrefix){
- // don't return anything!!
- return null;
- } else {
- // there is no element in the
Element schemaElement = document.createElementNS(
XMLSCHEMA_NAMESPACE_URI, xsdPrefix + ":"
+ XML_SCHEMA_LOCAL_NAME);
@@ -1394,19 +1427,16 @@
+ namespacePrefixMap.get(s).toString(), s);
}
- if (schemaElement.getAttributeNS(XML_NAMESPACE_URI, xsdPrefix)
- .length() == 0) {
+ if (schemaElement.getAttributeNS(XML_NAMESPACE_URI, xsdPrefix).length() == 0) {
schemaElement.setAttributeNS(XML_NAMESPACE_URI,
NAMESPACE_DECLARATION_PREFIX + xsdPrefix,
XMLSCHEMA_NAMESPACE_URI);
}
// add the targetNamespace
- schemaElement.setAttributeNS(XML_NAMESPACE_URI, XMLNS_AXIS2WRAPPED,
- namespaceURI);
- schemaElement.setAttribute(XSD_TARGETNAMESPACE, namespaceURI);
- schemaElement.setAttribute(XSD_ELEMENT_FORM_DEFAULT,
- XSD_UNQUALIFIED);
+ schemaElement.setAttributeNS(XML_NAMESPACE_URI, XMLNS_AXIS2WRAPPED,targetNamespace);
+ schemaElement.setAttribute(XSD_TARGETNAMESPACE, targetNamespace);
+ schemaElement.setAttribute(XSD_ELEMENT_FORM_DEFAULT, XSD_UNQUALIFIED);
// add imports
Element[] namespaceImports = (Element[]) namespaceImportsMap
@@ -1416,16 +1446,8 @@
}
- // add element declarations
- Element[] elementDeclarations = (Element[]) elementElementsList
- .toArray(new Element[elementElementsList.size()]);
- for (int i = 0; i < elementDeclarations.length; i++) {
- schemaElement.appendChild(elementDeclarations[i]);
-
- }
-
+ schemaElement.appendChild(newElement);
return schemaElement;
- }
}
private List getPartsListFromSoapBody(List extensibilityElements) {
@@ -1451,6 +1473,24 @@
return partsList;
}
+ private String getNamespaceFromSoapBody(List extensibilityElements){
+
+ ExtensibilityElement extElement;
+ String namespace = null;
+ for (Iterator iter = extensibilityElements.iterator();iter.hasNext();){
+ extElement = (ExtensibilityElement) iter.next();
+ // SOAP 1.1 body element found!
+ if (extElement instanceof SOAPBody) {
+ SOAPBody soapBody = (SOAPBody) extElement;
+ namespace = soapBody.getNamespaceURI();
+ } else if (extElement instanceof SOAP12Body) {
+ SOAP12Body soapBody = (SOAP12Body) extElement;
+ namespace = soapBody.getNamespaceURI();
+ }
+ }
+ return namespace;
+ }
+
/**
* creates a new shema complex element according to the elements sequence difined
* this parts list is always for a message refering from the
@@ -1492,6 +1532,8 @@
child = document.createElementNS(XMLSCHEMA_NAMESPACE_URI,
xsdPrefix + ":" + XML_SCHEMA_ELEMENT_LOCAL_NAME);
+ // always child attribute should be in no namespace
+ child.setAttribute("form","unqualified");
String prefix;
if (XMLSCHEMA_NAMESPACE_URI.equals(schemaTypeName.getNamespaceURI())) {
@@ -2014,7 +2056,7 @@
* Guess the MEP based on the order of messages
*
* @param operation
- * @throws Exception
+ * @throws AxisFault
*/
private String getMEP(Operation operation) throws AxisFault {
OperationType operationType = operation.getStyle();
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org