Uploaded image for project: 'Axis2'
  1. Axis2
  2. AXIS2-4190

WSDL2JAVA Not generating code for <xsd:totalDigits> when databinding is ADB.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.3, 1.4, 1.4.1
    • 1.6.2, 1.7.0
    • adb, codegen
    • None
    • Any

    Description

      I have the following definition in an XSD:

      <xsd:simpleType name="tariffID">
      <xsd:annotation>
      <xsd:documentation>Standard tariff ID</xsd:documentation>
      </xsd:annotation>
      <xsd:restriction base="xsd:int">
      <xsd:totalDigits value="7"/>
      </xsd:restriction>
      </xsd:simpleType>

      When I generate the Java code I get the TariffID type as expected, but in the generated setTariffID(int) method, there is no code generated that captures the <xsd:totalDigits> restriction:

      /**

      • Auto generated setter method
      • @param param TariffID
        */
        public void setTariffID(int param) { this.localTariffID=param; }

        If I then add either <xsd:pattern> or <xsd:minInclusive> and <xsd:maxInclusive> to the XSD then these restrictions are captured in the generated code. For example, this:

        <xsd:simpleType name="tariffID">
        <xsd:annotation>
        <xsd:documentation>Standard tariff ID</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:int">
        <xsd:totalDigits value="7"/>
        <xsd:minInclusive value="0"/>
        <xsd:maxInclusive value="9999999"/>
        </xsd:restriction>
        </xsd:simpleType>

        results in the following Java code being generated:

        /**
        * Auto generated setter method
        * @param param TariffID
        */
        public void setTariffID(int param){
        if (org.apache.axis2.databinding.utils.ConverterUtil.compare(param, "9999999") <= 0){ this.localTariffID=param; }
        else { throw new java.lang.RuntimeException(); }
        if (org.apache.axis2.databinding.utils.ConverterUtil.compare(param, "0") >= 0){ this.localTariffID=param; }

        else

        { throw new java.lang.RuntimeException(); }

        }

      I and others on the user mailing list believe this is a bug in the ADB databinding code generation.

      Attachments

        1. AXIS2-4190.patch
          8 kB
          Kishanthan Thangarajah
        2. AXIS2-4190_02.patch
          1 kB
          Kishanthan Thangarajah

        Issue Links

          Activity

            People

              kishanthan Kishanthan Thangarajah
              canderson Colin Anderson
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: