attributes from other namespaces on schema components

Lots of Web Services using SOAP 1.1 contain XML Schema type definitions like
this:

      <xsd:complexType name="ResultElementArray">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
             <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType
="typens:ResultElement[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>

(The base type is given below).

When a SOAP/WSDL processor reads this type, it can determine via special
knowledge (out of band as far as WXS is concerned) based on presence of the
soapenc:arrayType attribute and the wsdl:arrayType attribute value that an
element of type ResultElementArray may contain an unrestricted number of
child elements (with any name allowed -- see the base type) of type
ResultElement.

When an instance document is encountered (e.g. returned from the web service), it might look like this
<return arrayType="ResultElement[3]" xsi:type="ResultElementArray">
   <item xsi:type="ResultElement">...</item>
   <item xsi:type="ResultElement">...</item>
   <item xsi:type="ResultElement">...</item>
</return>
and the SOAP processor can determine from the arrayType value that there
will be three child elements of type ResultElement.

It does not appear that the wsdl:arrayType attribute appears anywhere in the PSVI for the complex type.  Is it supposed to be accessible, and how?  Is this supposed to change in XSD 1.1?

Jeff

Note:
The base type, somewhat simplified, is from the SOAP-Encoding 1.1 spec:
  <xs:complexType name="Array" >
    <xs:sequence>
      <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
    </xs:sequence>
    <xs:attribute name="arrayType" type="xs:string" />
    <xs:attribute name="arrayOffset" type="xs:string"/>
    <xs:anyAttribute namespace="##other" processContents="lax" />
  </xs:complexType>

Received on Tuesday, 29 July 2003 18:05:29 UTC