You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Michael Ryan <Mi...@stellent.com> on 2002/11/22 21:35:49 UTC

Error in serialization of boolean fields

Hello all-
	Just started using the released version 1.0 of Axis.  I have
noticed that, for complex types, the generated classes are encoding
boolean fields as "soapenc:boolean" instead of as "xsd:boolean".  The
fields are defined in the WSDL as "xsd:boolean", but the static field
description blocks are using the wrong namespace.  

Here is a snippet of my WSDL:
<complexType name="FontFlags">
  <complexContent>
    <extension base="xsd:anyType">
      <sequence>
        <element name="suppressSize" type="xsd:boolean" minOccurs="0"
maxOccurs="1" /> 
        <element name="suppressColor" type="xsd:boolean" minOccurs="0"
maxOccurs="1" /> 
        <element name="suppressFace" type="xsd:boolean" minOccurs="0"
maxOccurs="1" /> 
      </sequence>
    </extension>
  </complexContent>
</complexType>

And here is the resulting static block from the FontFlags class:
    static {
        org.apache.axis.description.FieldDesc field = new
org.apache.axis.description.ElementDesc();
        field.setFieldName("suppressSize");
        field.setXmlName(new javax.xml.namespace.QName("",
"suppressSize"));
        field.setXmlType(new
javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/",
"boolean"));
        field.setMinOccursIs0(true);
        typeDesc.addFieldDesc(field);
        field = new org.apache.axis.description.ElementDesc();
        field.setFieldName("suppressColor");
        field.setXmlName(new javax.xml.namespace.QName("",
"suppressColor"));
        field.setXmlType(new
javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/",
"boolean"));
        field.setMinOccursIs0(true);
        typeDesc.addFieldDesc(field);
        field = new org.apache.axis.description.ElementDesc();
        field.setFieldName("suppressFace");
        field.setXmlName(new javax.xml.namespace.QName("",
"suppressFace"));
        field.setXmlType(new
javax.xml.namespace.QName("http://schemas.xmlsoap.org/soap/encoding/",
"boolean"));
        field.setMinOccursIs0(true);
        typeDesc.addFieldDesc(field);
    };

As you can see, the namespace for the boolean fields is
"http://schemas.xmlsoap.org/soap/encoding/", when is should be
"http://www.w3.org/2001/XMLSchema".

Has anyone else seen this issue, and is there currently a fix for it?

Michael J. Ryan
Principal Software Engineer
Stellent SCD (Software Components Division)
Chicago, IL
mryan@stellent.com