[ 
http://issues.apache.org/jira/browse/AXIS-2523?page=comments#action_12421108 ] 
            
Enrique Fernández commented on AXIS-2523:
-----------------------------------------

It happens in 1.3 as well

> WSDL wrong code generation using xs:union
> -----------------------------------------
>
>                 Key: AXIS-2523
>                 URL: http://issues.apache.org/jira/browse/AXIS-2523
>             Project: Apache Axis
>          Issue Type: Bug
>          Components: WSDL processing
>    Affects Versions: 1.4
>         Environment: Windows XP, Java 1.4.2_05, Axis 1.4
>            Reporter: Victor Méndez
>
> Hi, we've found something strange using wsdl2java in AXIS 1.4 which was not 
> happening on 1.3:
> Given next xsd example:
>       <xs:simpleType name="CommonErrorCodeEnumMPE">
>               <xs:restriction base="xs:string">
>                       <xs:enumeration value="E-UNKNOWN"/>
>                       <xs:enumeration value="E-COM-UNKNOWN"/>
>                       <xs:enumeration value="E-BADREQUEST"/>
>                       <xs:enumeration value="E-NOSERVICE"/>
>                       <xs:enumeration value="E-BADMATCH"/>
>                       <xs:enumeration value="E-NOMATCH"/>
>                       <xs:enumeration value="E-NOPREVTRX"/>
>                       <xs:enumeration value="E-TIMEOUT"/>
>                       <xs:enumeration value="E-NOMPI"/>
>                       <xs:enumeration value="E-MBLOCK"/>
>                       <xs:enumeration value="E-MSIMBLOCK"/>
>               </xs:restriction>
>       </xs:simpleType>
>         <xs:simpleType name="SendRefErrorCodeEnum">
>               <xs:union memberTypes="CommonErrorCodeEnumMPE">
>                       <xs:simpleType>
>                               <xs:restriction base="xs:string">
>                                       <xs:enumeration 
> value="E-SEN-MERNOAVAI"/>
>                                       <xs:enumeration 
> value="E-SEN-POSNOAVAI"/>
>                                       <xs:enumeration value="E-SEN-INVALREF"/>
>                                       <xs:enumeration 
> value="E-SEN-INVAADDATA"/>
>                               </xs:restriction>
>                       </xs:simpleType>
>               </xs:union>
>       </xs:simpleType>
> wsdl2Java generates next clases:
>  - CommonErrorCodeEnumMPE.java:...it's OK
>  - SendRefErrorCodeEnum.java:.............Compilation errors: The class 
> SendRefErrorCodeEnum has a "value" String attribute but its accessors have a 
> CommonErrorCodeEnumMPE type
>  - SendRefErrorCodeEnumNull.java: .....What's the meaning of this?
> The source of these classes is:
> /**
>  * CommonErrorCodeEnumMPE.java
>  *
>  * This file was auto-generated from WSDL
>  * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
>  */
> package es.mobipay.xsd;
> public class CommonErrorCodeEnumMPE implements java.io.Serializable {
>     private java.lang.String _value_;
>     private static java.util.HashMap _table_ = new java.util.HashMap();
>     // Constructor
>     protected CommonErrorCodeEnumMPE(java.lang.String value) {
>         _value_ = value;
>         _table_.put(_value_,this);
>     }
>     public static final java.lang.String _value1 = "E-UNKNOWN";
>     public static final java.lang.String _value2 = "E-COM-UNKNOWN";
>     public static final java.lang.String _value3 = "E-BADREQUEST";
>     public static final java.lang.String _value4 = "E-NOSERVICE";
>     public static final java.lang.String _value5 = "E-BADMATCH";
>     public static final java.lang.String _value6 = "E-NOMATCH";
>     public static final java.lang.String _value7 = "E-NOPREVTRX";
>     public static final java.lang.String _value8 = "E-TIMEOUT";
>     public static final java.lang.String _value9 = "E-NOMPI";
>     public static final java.lang.String _value10 = "E-MBLOCK";
>     public static final java.lang.String _value11 = "E-MSIMBLOCK";
>     public static final CommonErrorCodeEnumMPE value1 = new 
> CommonErrorCodeEnumMPE(_value1);
>     public static final CommonErrorCodeEnumMPE value2 = new 
> CommonErrorCodeEnumMPE(_value2);
>     public static final CommonErrorCodeEnumMPE value3 = new 
> CommonErrorCodeEnumMPE(_value3);
>     public static final CommonErrorCodeEnumMPE value4 = new 
> CommonErrorCodeEnumMPE(_value4);
>     public static final CommonErrorCodeEnumMPE value5 = new 
> CommonErrorCodeEnumMPE(_value5);
>     public static final CommonErrorCodeEnumMPE value6 = new 
> CommonErrorCodeEnumMPE(_value6);
>     public static final CommonErrorCodeEnumMPE value7 = new 
> CommonErrorCodeEnumMPE(_value7);
>     public static final CommonErrorCodeEnumMPE value8 = new 
> CommonErrorCodeEnumMPE(_value8);
>     public static final CommonErrorCodeEnumMPE value9 = new 
> CommonErrorCodeEnumMPE(_value9);
>     public static final CommonErrorCodeEnumMPE value10 = new 
> CommonErrorCodeEnumMPE(_value10);
>     public static final CommonErrorCodeEnumMPE value11 = new 
> CommonErrorCodeEnumMPE(_value11);
>     public java.lang.String getValue() { return _value_;}
>     public static CommonErrorCodeEnumMPE fromValue(java.lang.String value)
>           throws java.lang.IllegalArgumentException {
>         CommonErrorCodeEnumMPE enumeration = (CommonErrorCodeEnumMPE)
>             _table_.get(value);
>         if (enumeration==null) throw new java.lang.IllegalArgumentException();
>         return enumeration;
>     }
>     public static CommonErrorCodeEnumMPE fromString(java.lang.String value)
>           throws java.lang.IllegalArgumentException {
>         return fromValue(value);
>     }
>     public boolean equals(java.lang.Object obj) {return (obj == this);}
>     public int hashCode() { return toString().hashCode();}
>     public java.lang.String toString() { return _value_;}
>     public java.lang.Object readResolve() throws 
> java.io.ObjectStreamException { return fromValue(_value_);}
>     public static org.apache.axis.encoding.Serializer getSerializer(
>            java.lang.String mechType, 
>            java.lang.Class _javaType,  
>            javax.xml.namespace.QName _xmlType) {
>         return 
>           new org.apache.axis.encoding.ser.EnumSerializer(
>             _javaType, _xmlType);
>     }
>     public static org.apache.axis.encoding.Deserializer getDeserializer(
>            java.lang.String mechType, 
>            java.lang.Class _javaType,  
>            javax.xml.namespace.QName _xmlType) {
>         return 
>           new org.apache.axis.encoding.ser.EnumDeserializer(
>             _javaType, _xmlType);
>     }
>     // Type metadata
>     private static org.apache.axis.description.TypeDesc typeDesc =
>         new 
> org.apache.axis.description.TypeDesc(CommonErrorCodeEnumMPE.class);
>     static {
>         typeDesc.setXmlType(new 
> javax.xml.namespace.QName("urn:xsd.mobipay.es", "CommonErrorCodeEnumMPE"));
>     }
>     /**
>      * Return type metadata object
>      */
>     public static org.apache.axis.description.TypeDesc getTypeDesc() {
>         return typeDesc;
>     }
> }
> /**
>  * SendRefErrorCodeEnum.java
>  *
>  * This file was auto-generated from WSDL
>  * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
>  */
> package es.mobipay.xsd;
> public class SendRefErrorCodeEnum  extends 
> es.mobipay.xsd.CommonErrorCodeEnumMPE  implements java.io.Serializable {
>     private es.mobipay.xsd.CommonErrorCodeEnumMPE value;
>     // Simple Types must have a String constructor
>     public SendRefErrorCodeEnum(java.lang.String _value) {
>         super(_value);
>     }
>     /**
>      * Gets the value value for this SendRefErrorCodeEnum.
>      * 
>      * @return value
>      */
>     public es.mobipay.xsd.CommonErrorCodeEnumMPE getValue() {
>         return value;
>     }
>     /**
>      * Sets the value value for this SendRefErrorCodeEnum.
>      * 
>      * @param value
>      */
>     public void setValue(es.mobipay.xsd.CommonErrorCodeEnumMPE value) {
>         this.value = value;
>     }
>     private java.lang.Object __equalsCalc = null;
>     public synchronized boolean equals(java.lang.Object obj) {
>         if (!(obj instanceof SendRefErrorCodeEnum)) return false;
>         SendRefErrorCodeEnum other = (SendRefErrorCodeEnum) obj;
>         if (obj == null) return false;
>         if (this == obj) return true;
>         if (__equalsCalc != null) {
>             return (__equalsCalc == obj);
>         }
>         __equalsCalc = obj;
>         boolean _equals;
>         _equals = super.equals(obj) && 
>             ((this.value==null && other.getValue()==null) || 
>              (this.value!=null &&
>               this.value.equals(other.getValue())));
>         __equalsCalc = null;
>         return _equals;
>     }
>     private boolean __hashCodeCalc = false;
>     public synchronized int hashCode() {
>         if (__hashCodeCalc) {
>             return 0;
>         }
>         __hashCodeCalc = true;
>         int _hashCode = 1;
>         if (getValue() != null) {
>             _hashCode += getValue().hashCode();
>         }
>         __hashCodeCalc = false;
>         return _hashCode;
>     }
>     // Type metadata
>     private static org.apache.axis.description.TypeDesc typeDesc =
>         new org.apache.axis.description.TypeDesc(SendRefErrorCodeEnum.class, 
> true);
>     static {
>         typeDesc.setXmlType(new 
> javax.xml.namespace.QName("urn:xsd.mobipay.es", "SendRefErrorCodeEnum"));
>         org.apache.axis.description.ElementDesc elemField = new 
> org.apache.axis.description.ElementDesc();
>         elemField.setFieldName("value");
>         elemField.setXmlName(new javax.xml.namespace.QName("", "value"));
>         elemField.setXmlType(new 
> javax.xml.namespace.QName("urn:xsd.mobipay.es", "CommonErrorCodeEnumMPE"));
>         elemField.setNillable(false);
>         typeDesc.addFieldDesc(elemField);
>     }
>     /**
>      * Return type metadata object
>      */
>     public static org.apache.axis.description.TypeDesc getTypeDesc() {
>         return typeDesc;
>     }
>     /**
>      * Get Custom Serializer
>      */
>     public static org.apache.axis.encoding.Serializer getSerializer(
>            java.lang.String mechType, 
>            java.lang.Class _javaType,  
>            javax.xml.namespace.QName _xmlType) {
>         return 
>           new  org.apache.axis.encoding.ser.SimpleSerializer(
>             _javaType, _xmlType, typeDesc);
>     }
>     /**
>      * Get Custom Deserializer
>      */
>     public static org.apache.axis.encoding.Deserializer getDeserializer(
>            java.lang.String mechType, 
>            java.lang.Class _javaType,  
>            javax.xml.namespace.QName _xmlType) {
>         return 
>           new  org.apache.axis.encoding.ser.SimpleDeserializer(
>             _javaType, _xmlType, typeDesc);
>     }
> }
> /**
>  * SendRefErrorCodeEnumNull.java
>  *
>  * This file was auto-generated from WSDL
>  * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
>  */
> package es.mobipay.xsd;
> public class SendRefErrorCodeEnumNull implements java.io.Serializable {
>     private java.lang.String _value_;
>     private static java.util.HashMap _table_ = new java.util.HashMap();
>     // Constructor
>     protected SendRefErrorCodeEnumNull(java.lang.String value) {
>         _value_ = value;
>         _table_.put(_value_,this);
>     }
>     public static final java.lang.String _value1 = "E-SEN-MERNOAVAI";
>     public static final java.lang.String _value2 = "E-SEN-POSNOAVAI";
>     public static final java.lang.String _value3 = "E-SEN-INVALREF";
>     public static final java.lang.String _value4 = "E-SEN-INVAADDATA";
>     public static final SendRefErrorCodeEnumNull value1 = new 
> SendRefErrorCodeEnumNull(_value1);
>     public static final SendRefErrorCodeEnumNull value2 = new 
> SendRefErrorCodeEnumNull(_value2);
>     public static final SendRefErrorCodeEnumNull value3 = new 
> SendRefErrorCodeEnumNull(_value3);
>     public static final SendRefErrorCodeEnumNull value4 = new 
> SendRefErrorCodeEnumNull(_value4);
>     public java.lang.String getValue() { return _value_;}
>     public static SendRefErrorCodeEnumNull fromValue(java.lang.String value)
>           throws java.lang.IllegalArgumentException {
>         SendRefErrorCodeEnumNull enumeration = (SendRefErrorCodeEnumNull)
>             _table_.get(value);
>         if (enumeration==null) throw new java.lang.IllegalArgumentException();
>         return enumeration;
>     }
>     public static SendRefErrorCodeEnumNull fromString(java.lang.String value)
>           throws java.lang.IllegalArgumentException {
>         return fromValue(value);
>     }
>     public boolean equals(java.lang.Object obj) {return (obj == this);}
>     public int hashCode() { return toString().hashCode();}
>     public java.lang.String toString() { return _value_;}
>     public java.lang.Object readResolve() throws 
> java.io.ObjectStreamException { return fromValue(_value_);}
>     public static org.apache.axis.encoding.Serializer getSerializer(
>            java.lang.String mechType, 
>            java.lang.Class _javaType,  
>            javax.xml.namespace.QName _xmlType) {
>         return 
>           new org.apache.axis.encoding.ser.EnumSerializer(
>             _javaType, _xmlType);
>     }
>     public static org.apache.axis.encoding.Deserializer getDeserializer(
>            java.lang.String mechType, 
>            java.lang.Class _javaType,  
>            javax.xml.namespace.QName _xmlType) {
>         return 
>           new org.apache.axis.encoding.ser.EnumDeserializer(
>             _javaType, _xmlType);
>     }
>     // Type metadata
>     private static org.apache.axis.description.TypeDesc typeDesc =
>         new 
> org.apache.axis.description.TypeDesc(SendRefErrorCodeEnumNull.class);
>     static {
>         typeDesc.setXmlType(new 
> javax.xml.namespace.QName("urn:xsd.mobipay.es", "SendRefErrorCodeEnum>null"));
>     }
>     /**
>      * Return type metadata object
>      */
>     public static org.apache.axis.description.TypeDesc getTypeDesc() {
>         return typeDesc;
>     }
> }
> Apparently, this same xsd creates other (but right) classes if generated with 
> AXIS 1.3 wsdl2java tool, so it seems to be somethig specific of 1.4 version
>  

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to