axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marco Benuzzi (JIRA)" <>
Subject [jira] [Created] (AXIS2-5109) optional attribute must not be serialized if not explicitly set
Date Wed, 03 Aug 2011 10:00:28 GMT
optional attribute must not be serialized if not explicitly set

                 Key: AXIS2-5109
             Project: Axis2
          Issue Type: Bug
          Components: adb
    Affects Versions: 1.6.0
         Environment: Linux
Java(TM) SE Runtime Environment (build 1.6.0_23-b05)
            Reporter: Marco Benuzzi
            Priority: Critical

All the attributes are serialized with default values even if they are not explicitly set.
This is a problem because the default value of an attribute is a contract between the client
and the web service provider and the framework should not override it.

<xs:complexType name="Sample">
  <xs:sequence />
  <xs:attribute name="BooleanAttribute" type="xs:boolean" />
  <xs:attribute name="IntAttribute" type="xs:int" use="required"/>
  <xs:attribute name="StringAttribute" type="xs:string" use="optional"/>

If I don't set any attribute the generated xml look like

<Sample BooleanAttribute="false" IntAttribute="0"/>

This is completely wrong because the default values for my optional attributes can be different.
It should be (please remember that - as per specification - all attributes are optional by


The workaround for xs:int attribute is to explicitly set it to java.lang.Integer.MIN_VALUE
because in serialization the code is
if (localAge != java.lang.Integer.MIN_VALUE) {
   org.apache.axis2.databinding.utils.ConverterUtil.convertToString(localIntAttribute), xmlWriter);

But for xs:boolean attribute there is no workaround because in serialization the code is
if (true) {


This message is automatically generated by JIRA.
For more information on JIRA, see:


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message