Comments on wsdl20.xsd

"Ramkumar Menon" <[email protected]>
Newsgroups gmane.comp.web.services.description
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.