You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by am...@apache.org on 2009/10/07 15:49:44 UTC

svn commit: r822738 - in /webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema: SchemaCompiler.java template/ADBBeanTemplate-bean.xsl

Author: amilas
Date: Wed Oct  7 13:49:43 2009
New Revision: 822738

URL: http://svn.apache.org/viewvc?rev=822738&view=rev
Log:
handle nillable for base64binary i.e. for datahandler objects

Modified:
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl

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?rev=822738&r1=822737&r2=822738&view=diff
==============================================================================
--- 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 Wed Oct  7 13:49:43 2009
@@ -577,6 +577,7 @@
                     SchemaCompilerMessages.getMessage("schema.elementNull"));
         }
 
+
         //The processing element logic seems to be quite simple. Look at the relevant schema type
         //for each and every element and process that accordingly.
         //this means that any unused type definitions would not be generated!

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl?rev=822738&r1=822737&r2=822738&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate-bean.xsl Wed Oct  7 13:49:43 2009
@@ -1218,13 +1218,16 @@
                                  <!-- handle the binary case -->
                                  <xsl:when test="@binary">
                                         <!-- Handling the null byte array -->
-                                    if (<xsl:value-of select="$varName"/>!=null)
-                                    {
+                                    if (<xsl:value-of select="$varName"/>!=null)  {
                                        try {
                                            org.apache.axiom.util.stax.XMLStreamWriterUtils.writeDataHandler(xmlWriter, <xsl:value-of select="$varName"/>, null, true);
                                        } catch (java.io.IOException ex) {
                                            throw new javax.xml.stream.XMLStreamException("Unable to read data handler for <xsl:value-of select="$propertyName"/>", ex);
                                        }
+                                    } else {
+                                         <xsl:if test="@nillable">
+                                             writeAttribute("xsi","http://www.w3.org/2001/XMLSchema-instance","nil","1",xmlWriter);
+                                         </xsl:if>
                                     }
                                  </xsl:when>
                                  <xsl:otherwise>
@@ -2990,7 +2993,18 @@
                                 <!-- end of OMelement handling -->
                                 <!-- start of the simple types handling for binary content-->
                                 <xsl:when test="@binary">
-                                    object.set<xsl:value-of select="$javaName"/>(org.apache.axiom.util.stax.XMLStreamReaderUtils.getDataHandlerFromElement(reader));
+
+                                    <xsl:if test="@nillable">
+                                        nillableValue = reader.getAttributeValue("http://www.w3.org/2001/XMLSchema-instance","nil");
+                                        if ("true".equals(nillableValue) || "1".equals(nillableValue)){
+                                             object.set<xsl:value-of select="$javaName"/>(null);
+                                             reader.next();
+                                        } else {
+                                    </xsl:if>
+                                            object.set<xsl:value-of select="$javaName"/>(org.apache.axiom.util.stax.XMLStreamReaderUtils.getDataHandlerFromElement(reader));
+                                    <xsl:if test="@nillable">
+                                        }
+                                    </xsl:if>
 
                                     <xsl:if test="($isType or $anon) and not($simple)">  <!-- This is a subelement property to be consumed -->
                                         reader.next();