Comments on wsdl20.xsd

Gurus,

I have a few questions on the WSDL 2.0 xsd.
I observe that at several places within the XSD, I see explicit mention of
attributes with their default values. Is there a special reason for doing it
this way ?

For instance,

a) Elements that carry explicit minOccurs="1" and/or maxOccurs="1"
attributes.

For instance, observe the "any" element within the definition of
MessageRefFaultType.

<xs:complexType name="MessageRefFaultType" mixed="false">
  <xs:complexContent>
   <xs:extension base="wsdl:ExtensibleDocumentedType">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
     <xs:any namespace="##other" processContents="lax" minOccurs="1"
maxOccurs="1" />
    </xs:choice>
    <xs:attribute name="ref" type="xs:QName" use="required" />
    <xs:attribute name="messageLabel" type="xs:NCName" use="optional" />
   </xs:extension>
  </xs:complexContent>
 </xs:complexType>

   Similarly, the minOccurs="1" on the <choice> within the "ServiceType"
definition. [inlined below]

     <xs:complexType name="ServiceType" mixed="false">
 <xs:complexContent>
  <xs:extension base="wsdl:ExtensibleDocumentedType">
  <xs:choice minOccurs="1" maxOccurs="unbounded">  <!---- you can see the
minOccurs attribute here -->
    <xs:element ref="wsdl:endpoint" />
    <xs:any namespace="##other" processContents="lax" minOccurs="1"
maxOccurs="1" />
  </xs:choice>
  <xs:attribute name="name" type="xs:NCName" use="required" />
  <xs:attribute name="interface" type="xs:QName" use="required" />
 </xs:extension>
</xs:complexContent>
</xs:complexType>

b) Explicit usage of the attribute mixed="false" on the complex types
defined in the XSD.

For e.g.,

<xs:complexType name="ImportType" mixed="false">
<xs:complexContent>
<xs:extension base="wsdl:ExtensibleDocumentedType">
<xs:sequence>
 <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
processContents="strict" />
</xs:sequence>
<xs:attribute name="namespace" type="xs:anyURI" use="required" />
<xs:attribute name="location" type="xs:anyURI" use="optional" />
</xs:extension>
</xs:complexContent>
</xs:complexType>

c) Explicit usage of processContents="strict" .


 For e.g.

<xs:complexContent>
<xs:extension base="wsdl:ExtensibleDocumentedType">
<xs:sequence>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
processContents="strict" />
</xs:sequence>
<xs:attribute name="namespace" type="xs:anyURI" use="required" />
<xs:attribute name="location" type="xs:anyURI" use="optional" />
</xs:extension>
</xs:complexContent>
</xs:complexType>

rgds,

Ram
-- 
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

-Ramkumar Menon
A typical Macroprocessor

Received on Saturday, 17 February 2007 00:56:55 UTC