Author: nadiramra
Date: Sun Mar 20 18:00:41 2011
New Revision: 1083528
URL: http://svn.apache.org/viewvc?rev=1083528&view=rev
Log:
AXISCPP-843 Serialiser is using namespaces without first assigning them in the
XML
Modified:
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
Modified:
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
URL:
http://svn.apache.org/viewvc/axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java?rev=1083528&r1=1083527&r2=1083528&view=diff
==============================================================================
---
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
(original)
+++
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
Sun Mar 20 18:00:41 2011
@@ -24,6 +24,8 @@ package org.apache.axis.wsdl.wsdl2ws.c;
import java.io.IOException;
+import javax.xml.namespace.QName;
+
import org.apache.axis.wsdl.wsdl2ws.WSDL2Ws;
import org.apache.axis.wsdl.wsdl2ws.CUtils;
import org.apache.axis.wsdl.wsdl2ws.WrapperFault;
@@ -128,8 +130,10 @@ public class BeanParamWriter extends Par
// it is used as a nillable parameter so this may not be the
appropriate place
// to put this, or we need to find a way to determine if nillable.
//=============================================================================
-
- c_writer.write("\tAxiscBool blnIsNewPrefix = xsdc_boolean_false;\n\n");
+
+ c_writer.write("\tAxiscBool blnIsNewPrefix = xsdc_boolean_false;\n");
+ c_writer.write("\tAxiscBool blnIsNewSubElemPrefix =
xsdc_boolean_false;\n");
+ c_writer.write("\tconst AxiscChar* sPrefix;\n\n");
CUtils.printBlockComment(c_writer, "If null input, serialize as nil
element.");
@@ -326,7 +330,13 @@ public class BeanParamWriter extends Par
else
{
//if complex type
- String elm = attribs[i].getParamNameAsSOAPString();
+ namespace = type.getName().getNamespaceURI();
+
+ String elm = attribs[i].getParamNameAsSOAPString();
+ QName elementName = attribs[i].getElementName();
+ if (elementName != null)
+ namespace = elementName.getNamespaceURI();
+
if (attribs[i].isReference())
elm = attribs[i].getTypeName();
@@ -341,20 +351,19 @@ public class BeanParamWriter extends Par
if (attribs[i].getNsQualified())
{
- c_writer.write("\taxiscSoapSerializerSerialize(pSZ, \"<\",
axiscSoapSerializerGetNamespacePrefix(pSZ, \""
- + type.getName().getNamespaceURI()
- + "\", NULL), \":\", \"" + elm + "\",
0);\n");
- c_writer.write(tab + "\tAxis_Serialize_" +
attribs[i].getTypeName()
- + "(param->" + attribs[i].getParamNameAsMember() +
", pSZ, 0);\n");
- c_writer.write(tab + "\taxiscSoapSerializerSerialize(pSZ,
\"</\", axiscSoapSerializerGetNamespacePrefix(pSZ, \""
- + type.getName().getNamespaceURI()
- + "\", NULL), \":\", \"" + elm + "\",
\">\", 0);\n");
+ c_writer.write("\tsPrefix =
axiscSoapSerializerGetNamespacePrefix(pSZ, \"" + namespace + "\",
&blnIsNewSubElemPrefix);\n");
+ c_writer.write(tab + "\taxiscSoapSerializerSerialize(pSZ,
\"<\", sPrefix, \":\", \"" + elm + "\", 0);\n");
+ c_writer.write(tab + "\tif (blnIsNewSubElemPrefix)\n");
+ c_writer.write(tab +
"\t\taxiscSoapSerializerSerialize(pSZ,\" xmlns:\", sPrefix, \"=\\\"\", \"" +
namespace + "\", \"\\\"\", 0);\n");
+ c_writer.write(tab + "\tAxis_Serialize_" +
attribs[i].getTypeName() + "(param->" + attribs[i].getParamNameAsMember() + ",
pSZ, 0);\n");
+ c_writer.write(tab + "\taxiscSoapSerializerSerialize(pSZ,
\"</\", sPrefix, \":\", \"" + elm + "\", \">\", 0);\n");
+ c_writer.write(tab + "\tif (blnIsNewSubElemPrefix)\n");
+ c_writer.write(tab +
"\t\taxiscSoapSerializerRemoveNamespacePrefix(pSZ, \"" + namespace + "\");\n");
}
else
{
c_writer.write("\taxiscSoapSerializerSerialize(pSZ, \"<" +
elm + "\", 0);\n");
- c_writer.write(tab + "\tAxis_Serialize_" +
attribs[i].getTypeName()
- + "(param->" + attribs[i].getParamNameAsMember() +
", pSZ, 0);\n");
+ c_writer.write(tab + "\tAxis_Serialize_" +
attribs[i].getTypeName() + "(param->" + attribs[i].getParamNameAsMember() + ",
pSZ, 0);\n");
c_writer.write(tab + "\taxiscSoapSerializerSerialize(pSZ,
\"</" + elm + "\", \">\", 0);\n");
}
@@ -397,7 +406,7 @@ public class BeanParamWriter extends Par
// For doc/literal objects
c_writer.write("\tif (!bArray)\n\t{\n");
- c_writer.write("\t\tconst AxiscChar* sPrefix =
axiscSoapSerializerGetNamespacePrefix(pSZ,Axis_URI_" + c_classname + ",
&blnIsNewPrefix);\n");
+ c_writer.write("\t\tsPrefix =
axiscSoapSerializerGetNamespacePrefix(pSZ,Axis_URI_" + c_classname + ",
&blnIsNewPrefix);\n");
c_writer.write("\t\tif (blnIsNewPrefix)\n");
c_writer.write("\t\t\taxiscSoapSerializerSerialize(pSZ,\" xmlns:\",
sPrefix, \"=\\\"\", "
+ "Axis_URI_" + c_classname + ", \"\\\"\", NULL);\n");
@@ -414,7 +423,7 @@ public class BeanParamWriter extends Par
c_writer.write( "\t\taxiscSoapSerializerSerialize(pSZ, \"<\",
Axis_TypeName_" + c_classname + ", \">\", NULL);\n");
c_writer.write( "\telse\n");
c_writer.write( "\t{\n");
- c_writer.write( "\t\tconst AxiscChar * sPrefix =
axiscSoapSerializerGetNamespacePrefix(pSZ, Axis_URI_"
+ c_writer.write( "\t\tsPrefix =
axiscSoapSerializerGetNamespacePrefix(pSZ, Axis_URI_"
+ c_classname + ", &blnIsNewPrefix);\n\n");
c_writer.write( "\t\t// If there are objects that require a local
namespace, then define it here.\n");
c_writer.write( "\t\t// NB: This namespace will go out of scope when
the closing tag is reached.\n");
Modified:
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java
URL:
http://svn.apache.org/viewvc/axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java?rev=1083528&r1=1083527&r2=1083528&view=diff
==============================================================================
---
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java
(original)
+++
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java
Sun Mar 20 18:00:41 2011
@@ -688,10 +688,10 @@ public class ClientStubWriter
containedTypeArrayName =
CUtils.getArrayNameForComplexType(qname);
c_writer.write("\n\t\t\tif (OutValue" + i + " !=
NULL)\n" );
- c_writer.write("\t\t{\n");
+ c_writer.write("\t\t\t{\n");
c_writer.write("\t\t\t\tif (" + currentParamName + "
!= NULL)\n");
- c_writer.write("\t\t\t\t\t" + currentParamName + " =
Axis_Delete_" + containedTypeArrayName + "(" + currentParamName + ",0);\n");
+ c_writer.write("\t\t\t\t\t" + "Axis_Delete_" +
containedTypeArrayName + "(" + currentParamName + ",0);\n");
c_writer.write("\t\t\t\t" + currentParamName + " =
Axis_Create_" + containedTypeArrayName + "(0);\n");
c_writer.write("\t\t\t\taxiscCallGetCmplxArray(call,
(Axisc_Array *)" + currentParamName
Modified:
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
URL:
http://svn.apache.org/viewvc/axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java?rev=1083528&r1=1083527&r2=1083528&view=diff
==============================================================================
---
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
(original)
+++
axis/axis1/c/trunk/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
Sun Mar 20 18:00:41 2011
@@ -542,7 +542,13 @@ public class BeanParamWriter extends Par
else
{
//if complex type
+ namespace = type.getName().getNamespaceURI();
+
String elm = attribs[i].getParamNameAsSOAPString();
+ QName elementName = attribs[i].getElementName();
+ if (elementName != null)
+ namespace = elementName.getNamespaceURI();
+
if (attribs[i].isReference())
elm = attribs[i].getTypeName();
@@ -557,14 +563,14 @@ public class BeanParamWriter extends Par
if (attribs[i].getNsQualified())
{
- c_writer.write("\tpSZ->serialize(\"<\",
pSZ->getNamespacePrefix(\""
- + type.getName().getNamespaceURI()
- + "\"), \":\", \"" + elm + "\", 0);\n");
- c_writer.write(tab + "\tAxis_Serialize_" +
attribs[i].getTypeName()
- + "(param->" + attribs[i].getParamNameAsMember() +
", pSZ);\n");
- c_writer.write(tab + "\tpSZ->serialize(\"</\",
pSZ->getNamespacePrefix(\""
- + type.getName().getNamespaceURI()
- + "\"), \":\", \"" + elm + "\", \">\",
0);\n");
+ c_writer.write("\tsPrefix = pSZ->getNamespacePrefix(\"" +
namespace + "\", blnIsNewSubElemPrefix);\n");
+ c_writer.write(tab + "\tpSZ->serialize(\"<\", sPrefix,
\":\", \"" + elm + "\", 0);\n");
+ c_writer.write(tab + "\tif (blnIsNewSubElemPrefix)\n");
+ c_writer.write(tab + "\t\tpSZ->serialize(\" xmlns:\",
sPrefix, \"=\\\"\", \"" + namespace + "\", \"\\\"\", 0);\n");
+ c_writer.write(tab + "\tAxis_Serialize_" +
attribs[i].getTypeName() + "(param->" + attribs[i].getParamNameAsMember() + ",
pSZ);\n");
+ c_writer.write(tab + "\tpSZ->serialize(\"</\", sPrefix,
\":\", \"" + elm + "\", \">\", 0);\n");
+ c_writer.write(tab + "\tif (blnIsNewSubElemPrefix)\n");
+ c_writer.write(tab + "\t\tpSZ->removeNamespacePrefix(\""
+ namespace + "\");\n");
}
else
{
@@ -612,9 +618,11 @@ public class BeanParamWriter extends Par
CUtils.printBlockComment(c_writer, "Serialize top-most element,
possibly defining new namespace.");
// For doc/literal objects
+ c_writer.write("\tbool blnIsNewSubElemPrefix = false;\n");
c_writer.write("\tbool blnIsNewPrefix = false;\n");
+ c_writer.write("\tconst AxisChar* sPrefix;\n");
c_writer.write("\tif (!bArray)\n\t{\n");
- c_writer.write("\t\tconst AxisChar* sPrefix =
pSZ->getNamespacePrefix(Axis_URI_" + c_classname + ", blnIsNewPrefix);\n");
+ c_writer.write("\t\tsPrefix = pSZ->getNamespacePrefix(Axis_URI_" +
c_classname + ", blnIsNewPrefix);\n");
c_writer.write("\t\tif (blnIsNewPrefix)\n");
c_writer.write("\t\t\tpSZ->serialize(\" xmlns:\", sPrefix, \"=\\\"\", "
+ "Axis_URI_" + c_classname + ", \"\\\"\", NULL);\n");
@@ -627,12 +635,14 @@ public class BeanParamWriter extends Par
private void writeRPCArrayPortionOfSerializeGlobalMethod() throws
IOException
{
// For rpc/encoded objects
+ c_writer.write("\tbool blnIsNewSubElemPrefix = false;\n");
c_writer.write("\tbool blnIsNewPrefix = false;\n");
+ c_writer.write("\tconst AxisChar* sPrefix;\n");
c_writer.write( "\tif( bArray)\n");
c_writer.write( "\t\tpSZ->serialize( \"<\", Axis_TypeName_" +
c_classname + ", \">\", NULL);\n");
c_writer.write( "\telse\n");
c_writer.write( "\t{\n");
- c_writer.write( "\t\tconst AxisChar * sPrefix =
pSZ->getNamespacePrefix( Axis_URI_"
+ c_writer.write( "\t\tsPrefix = pSZ->getNamespacePrefix( Axis_URI_"
+ c_classname + ", blnIsNewPrefix);\n\n");
c_writer.write( "\t\t// If there are objects that require a local
namespace, then define it here.\n");
c_writer.write( "\t\t// NB: This namespace will go out of scope when
the closing tag is reached.\n");