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 na...@apache.org on 2008/07/12 01:30:23 UTC
svn commit: r676101 - in
/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl:
symbolTable/CSchemaUtils.java wsdl2ws/WSDL2Ws.java
Author: nadiramra
Date: Fri Jul 11 16:30:23 2008
New Revision: 676101
URL: http://svn.apache.org/viewvc?rev=676101&view=rev
Log:
AXISCPP-894 - Elements in the generated request message is not namespace qualified
Modified:
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/symbolTable/CSchemaUtils.java
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/symbolTable/CSchemaUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/symbolTable/CSchemaUtils.java?rev=676101&r1=676100&r2=676101&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/symbolTable/CSchemaUtils.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/symbolTable/CSchemaUtils.java Fri Jul 11 16:30:23 2008
@@ -2069,4 +2069,46 @@
}
return null;
}
+
+ /*
+ * check whether node should be namespace qualified or not.
+ */
+ public static boolean shouldWeNamespaceQualifyNode(Node elementNode, boolean defaultAnswer)
+ {
+ String form = Utils.getAttribute(elementNode, "form");
+ if (form != null)
+ {
+ if (form.equals("qualified"))
+ return true;
+ else
+ return false;
+ }
+ else
+ return defaultAnswer;
+ }
+
+ public static boolean isElementFormDefaultQualified(Node elementNode)
+ {
+ if (elementNode != null)
+ {
+ String def = Utils.getScopedAttribute(elementNode, "elementFormDefault");
+ if ((def != null) && def.equals("qualified"))
+ return true;
+ }
+
+ return false;
+ }
+
+ public static boolean isAttributeFormDefaultQualified(Node attributeNode)
+ {
+ if (attributeNode != null)
+ {
+ String def = Utils.getScopedAttribute(attributeNode, "attributeFormDefault");
+ if ((def != null) && def.equals("qualified"))
+ return true;
+ }
+
+ return false;
+ }
+
}
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java?rev=676101&r1=676100&r2=676101&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/WSDL2Ws.java Fri Jul 11 16:30:23 2008
@@ -965,6 +965,7 @@
if (c_verbose)
System.out.println("Processing attributes for type: " + type.getQName());
+ // TODO Need to handle whether attributes are qualified?
Vector attributes = CSchemaUtils.getContainedAttributeTypes(te.getNode(), c_symbolTable);
if (attributes != null)
{
@@ -984,10 +985,24 @@
Vector elements = CSchemaUtils.getContainedElementDeclarations(te.getNode(), c_symbolTable);
if (elements != null)
+ {
+ // The following will get elementFormDefault for the schema the element is in.
+ boolean nsQualifyElementDefault = CSchemaUtils.isElementFormDefaultQualified(te.getNode());
+
+ // Now process the elements.
for (int j = 0; j < elements.size(); j++)
{
CElementDecl elem = (CElementDecl) elements.get(j);
+ // Set whether to namespace qualify or not. We only process if not set.
+ if (!elem.getNsQualified())
+ {
+ boolean nsQualifyElement =
+ CSchemaUtils.shouldWeNamespaceQualifyNode(elem.getTypeEntry().getNode(),
+ nsQualifyElementDefault);
+ elem.setNsQualified(nsQualifyElement);
+ }
+
if (elem.getAnyElement())
{
newSecondaryType = new Type(CUtils.anyTypeQname,
@@ -1017,7 +1032,8 @@
typedata.setTypeNameForElementName(elem);
}
- }
+ }
+ } // for-loop
}
}
return typedata;