WS-I BP1.1 advises against the guidance of WSDL 1.1 spec, on the point of arrays.
Go to http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html And search for soapenc:Array (section 4.3.3) : *** Begin Excerpt *** The recommendations in WSDL 1.1 Section 2.2 for declaration of array types have been interpreted in various ways, leading to interoperability problems. Further, there are other clearer ways to declare arrays. R2110 In a DESCRIPTION, declarations MUST NOT extend or restrict the soapenc:Array type. R2111 In a DESCRIPTION, declarations MUST NOT use wsdl:arrayType attribute in the type declaration. R2112 In a DESCRIPTION, elements SHOULD NOT be named using the convention ArrayOfXXX. R2113 An ENVELOPE MUST NOT include the soapenc:arrayType attribute. *** End Excerpt *** AXIS seems to comply with the WS-I BP1.1 recommendation. -Dino -----Original Message----- From: jayachandra [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 15, 2005 3:28 AM To: [email protected]; [email protected] Subject: WSDL generation Trying to analyse some problem, I had to refer to wsdl 1.1 spec. There under the 'Types' section [http://www.w3.org/TR/wsdl#_types , 3rd bullet point], there is this mention. ** Begin of Excerpt ** Array types should extend the Array type defined in the SOAP v1.1 encoding schema (http://schemas.xmlsoap.org/soap/encoding/) (regardless of whether the resulting form actually uses the encoding specified in Section 5 of the SOAP v1.1 document). Use the name ArrayOfXXX for array types (where XXX is the type of the items in the array). The type of the items in the array and the array dimensions are specified by using a default value for the soapenc:arrayType attribute. At the time of this writing, the XSD specification does not have a mechanism for specifying the default value of an attribute which contains a QName value. To overcome this limitation, WSDL introduces the arrayType attribute (from namespace http://schemas.xmlsoap.org/wsdl/) which has the semantic of providing the default value. If XSD is revised to support this functionality, the revised mechanism SHOULD be used in favor of the arrayType attribute defined by WSDL. ** End of Excerpt ** So does this mean even in DOCUMENT/LITERAL and WRAPPED/LITERAL kind of wsdl we should have for an array type (e.g: public Point[] myPoints;) a wsdl that reads as <complexType name="ArrayOfPoint"> <complexContent> <restriction base="soapenc:Array"> <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:Point[]"/> </restriction> </complexContent> </complexType> Currently in axis we get a wsdl fragment that looks like <complexType name="ArrayOfPoint"> <sequence> <element maxOccurs="unbounded" minOccurs="0" name="item" type="impl:Point"/> </sequence> </complexType> Which one is correct? Any insight into this issue will be very much appreciated. Thanks in advance Jaya
