I have the following element defined in a schema: <xs:element name="confirmationCode" minOccurs="0"> <xs:complexType> <xs:all> <xs:element name="value" type="CodeValueType" minOccurs="3" maxOccurs="3"/> </xs:all> </xs:complexType> </xs:element>
The CodeValueType definition is as follows: <xs:simpleType name="CodeValueType"> <xs:restriction base="xs:byte"> <xs:minInclusive value="0"/> <xs:maxInclusive value="9"/> </xs:restriction> </xs:simpleType> The code generated by WSDL2JAVA (below) when I apply it to a wsdl file which uses the confirmationCode element contains an error in line 29 (method setValue()), since it tries to compare a primitive type to null. Does this happen with every primitive type? I'm using the latest version of AXIS. /** * ConfirmationCode.java * * This file was auto-generated from WSDL * by the Apache Axis Wsdl2java emitter. */ package pt.bcp.cidadebcp.webservices.system; public class ConfirmationCode implements java.io.Serializable { private byte[] value; public ConfirmationCode() { } public byte[] getValue() { return value; } public void setValue(byte[] value) { this.value = value; } public byte getValue(int i) { return value[i]; } public void setValue(int i, byte value) { if (value == null || value.length <= i) { byte[] a = new byte[i + 1]; if (value != null) { for(int j=0; j<value.length; j++) a[j] = value[j]; } value = a; } value[i] = value; } public boolean equals(Object obj) { // compare elements ConfirmationCode other = (ConfirmationCode) obj; if (this == obj) return true; if (! (obj instanceof ConfirmationCode)) return false; return ((value==null && other.getValue()==null) || (value!=null && value.equals(other.getValue()))); } } Error produced: Found 7 semantic errors compiling "D:/projects/WebServices/generated/pt/bcp/cidadebcp/webservices/system/ConfirmationCode.java": 29. if (value == null || <-----------> *** Error: The type of the left-hand side expression, "byte", is not compatible with the type of the right-hand side expression, "null" (and vice-versa). 30. value.length <= i) { <---> *** Error: The type of this expression, "byte", is not a valid reference type in this context. 32. if (value != null) { <-----------> *** Error: The type of the left-hand side expression, "byte", is not compatible with the type of the right-hand side expression, "null" (and vice-versa). 33. for(int j=0; j<value.length; j++) <---> *** Error: The type of this expression, "byte", is not a valid reference type in this context. 34. a[j] = value[j]; <---> *** Error: The type of this expression, "byte", is not an array type. 36. value = a; <-------> *** Error: The type of the left-hand side in this assignment, "byte", is not compatible with the type of the right-hand side expression, "byte[]". 38. value[i] = value; <---> *** Error: The type of this expression, "byte", is not an array type. ------------------------ Many thanks for any help, Nuno Guerreiro __________________________________________________ Do You Yahoo!? Try FREE Yahoo! Mail - the world's greatest free email! http://mail.yahoo.com/