RE: The WSDL 2.0 XSD for Root Element is Too Loose

Asir,

I agree that the given schema is non-deterministic, but it is easy to 
define a deterministic content model by using a <choice> and having the 
following 3 deterministic cases:

1. (include | import)+, types, (interface | binding | service)?
2. types, (interface | binding | service)?, 
3. (interface | binding | service)?

The above grammar is deterministic and enforces the ordering constraint 
expressed in the spec using XSD constructs.

As a general principle, I am in favour of expressing as many as possible 
constraints in XSD, provided that it does not overly complicate the 
schema.

I request that this suggestion be given further consideration. Thx.

Arthur Ryman,
Rational Desktop Tools Development

phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: 4169395063@fido.ca
intranet: http://labweb.torolab.ibm.com/DRY6/



Asir Vedamuthu <asirv@webmethods.com> 
01/10/2005 09:06 AM

To
Arthur Ryman/Toronto/IBM@IBMCA, public-ws-desc-comments@w3.org
cc
Vlad Klicnik/Toronto/IBM@IBMCA
Subject
RE: The WSDL 2.0 XSD for Root Element  is Too Loose






Arthur,
 
Your suggested XML schema complex type 'DefinitionsType' is invalid. 
Because, its content model is non-deterministic. Lots of info on 
non-deterministic content model related questions can be found at 
http://lists.w3.org/Archives/Public/xmlschema-dev/
 
My recollection is .., it is just for this reason why the content model of 
definitions or descriptions is loose, see pre-last call issue 139 
http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/issues/wsd-issues.html#x139
 
This is a non-issue, right?
 
Regards,
 
Asir
 
-----Original Message-----
From: public-ws-desc-comments-request@w3.org 
[mailto:public-ws-desc-comments-request@w3.org] On Behalf Of Arthur Ryman
Sent: Sunday, January 09, 2005 4:12 PM
To: public-ws-desc-comments@w3.org
Cc: Vlad Klicnik
Subject: The WSDL 2.0 XSD for Root Element is Too Loose


The wsdl20.xsd definition [1] for the root element doesn't constrain the 
order of the top level elements as described in the spec.[2] 

The current xsd is like: 

  <xs:complexType name="DefinitionsType" mixed="false"> 
    <xs:annotation> 
      <xs:documentation> 
        Please refer to the WSDL 2.0 specification for 
        additional constraints on the contents of this type. 
      </xs:documentation> 
    </xs:annotation> 
    <xs:complexContent> 
      <xs:extension base="wsdl:ExtensibleDocumentedType"> 
        <xs:choice minOccurs="0" maxOccurs="unbounded"> 
          <xs:element ref="wsdl:import"/> 
          <xs:element ref="wsdl:include"/> 
          <xs:element ref="wsdl:types"/> 
          <xs:element ref="wsdl:interface"/> 
          <xs:element ref="wsdl:binding"/> 
            <xs:element ref="wsdl:service"/> 
          <xs:any namespace="##other" processContents="lax" minOccurs="1" 
maxOccurs="1"/> 
        </xs:choice> 
        <xs:attribute name="targetNamespace" type="xs:anyURI" use=
"required"/> 
      </xs:extension> 
    </xs:complexContent> 
  </xs:complexType> 

It should be like: 

  <xs:complexType name="DefinitionsType" mixed="false"> 
    <xs:annotation> 
      <xs:documentation> 
        blah, blah, blah ... 
      </xs:documentation> 
    </xs:annotation> 
    <xs:complexContent> 
      <xs:extension base="wsdl:ExtensibleDocumentedType"> 
                <xs:sequence> 
                        <xs:choice minOccurs="0" maxOccurs="unbounded"> 
                                <xs:element ref="wsdl:import"/> 
                                <xs:element ref="wsdl:include"/> 
                                <xs:any namespace="##other" 
processContents="lax" minOccurs="1" maxOccurs="1"/> 
                        </xs:choice> 
                        <xs:element ref="wsdl:types" minOccurs="0" 
maxOccurs="1"/> 
                        <xs:choice minOccurs="0" maxOccurs="unbounded"> 
                                <xs:element ref="wsdl:interface"/> 
                                <xs:element ref="wsdl:binding"/> 
                                <xs:element ref="wsdl:service"/> 
                                <xs:any namespace="##other" 
processContents="lax" minOccurs="1" maxOccurs="1"/> 
                        </xs:choice> 
                </xs:sequence> 
                <xs:attribute name="targetNamespace" type="xs:anyURI" use=
"required"/> 
      </xs:extension> 
    </xs:complexContent> 
  </xs:complexType> 


[1] http://www.w3.org/2004/08/wsdl 
[2] http://www.w3.org/TR/2004/WD-wsdl20-20040803/#Definitions_XMLRep 

Arthur Ryman,
Rational Desktop Tools Development

phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: 4169395063@fido.ca
intranet: http://labweb.torolab.ibm.com/DRY6/

Received on Monday, 10 January 2005 14:33:43 UTC