[ 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]
