- From: James Pasley <james.pasley@capeclear.com>
- Date: Tue, 11 Dec 2001 13:27:43 -0000
- To: <xmlschema-dev@w3.org>
Apologies in advance for taking a long time to get to the question :) The SOAP specification defines an XML representation of an Array using the following definitions: <xs:group name="Array"> <xs:sequence> <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax" /> </xs:sequence> </xs:group> <xs:complexType name="Array"> <xs:group ref="tns:Array" minOccurs="0" /> <xs:attributeGroup ref="tns:arrayAttributes" /> <xs:attributeGroup ref="tns:commonAttributes" /> </xs:complexType> The full schema is available at: http://schemas.xmlsoap.org/soap/encoding/ As you can see, an Array is essentially a complex type containing a unbounded number of xs:any's. Typically, when you define arrays you inherit from this definition and restrict the xs:any's in it to the particular of type in your array, so from my reading of the inheritance rules, an array of floats should look as follows: <xs:complexType name="ArrayOfFloat"> <xs:complexContent> <xs:restriction base="soapenc:Array"> <xs:sequence> <xs:element name="item" minOccurs="0" maxOccurs="unbounded" type="xs:float" /> </xs:sequence> <attribute ref="soapenc:arrayType" wsdl:arrayType="xs:float[]"/> </xs:restriction> </xs:complexContent> </xs:complexType> However, the WSDL specification ( http://www.w3.org/TR/wsdl ) contains the following example of an array of floats: <complexType name="ArrayOfFloat"> <complexContent> <restriction base="soapenc:Array"> <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:float[]"/> </restriction> </complexContent> </complexType> Now the Schema Primer states the following: Notice that types derived by restriction must repeat all the components of the base type definition that are to be included in the derived type So (and here's the question), is the example from the WSDL specification incorrect as it neither repeats the xs:any or replaces it with a more restrictive element. Am I right in thinking that it actually defines an complex type which can not contain child elements at all? Thanks, James. Cape Clear Software Limited. 61 Fitzwilliam Lane Dublin 2 Ireland Email : james.pasley@capeclear.com Switchboard : + 353 (1) 2419900 Direct line : + 353 (1) 2419957 Fax : + 353 (1) 2419901 www : www.capeclear.com Visit www.capescience.com
Received on Tuesday, 11 December 2001 08:24:51 UTC