W3C home > Mailing lists > Public > www-ws-desc@w3.org > September 2005

Re: Comments on Web Services Description Language (WSDL) Version 2.0 Part 0: Primer

From: Dennis Sosnoski <dms@sosnoski.com>
Date: Tue, 20 Sep 2005 08:24:47 -0700
Message-ID: <433029BF.4080107@sosnoski.com>
To: paul.downey@bt.com
CC: www-ws-desc@w3.org

Hi Paul,

This appears to contradict the statement in the Schema spec I referenced 
- but then the contradictions are part of what everyone loves about 
Schema. Thanks,

  - Dennis

paul.downey@bt.com wrote:

>Dennis,
>
>Here is a summary of the options, as I understand them, for 
>using XML Schema to introduce a pair of in/out elements into 
>a WSDL document:
>
>
>1) inline the schema, no problems!
>
>  <xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
>     targetNamespace="http://example.com/bar" >
>     <element name="in" type="xs:string"/>
>     <element name="out" type="xs:string"/>
>  </xs:schema>
>
>2) import the external schema into a schema with the same
>   targetNamespace - doesn't work since the targetNamespace is 
>   already known to the processor
>
>   <xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
>     targetNamespace="http://example.com/bar" >
>     <xs:import namespace="http://example.com/bar" schemaLocation="bar.xsd"/>
>   </xs:schema>
>
>3) import the external schema into a wrapper namespace
>   - This doesn't work because the imported bar symbols 
>     aren't visible outside the wrapper namespace:
>   
>  <xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
>     targetNamespace="http://example.com/wrapper" >
>     <xs:import namespace="http://example.com/bar" schemaLocation="bar.xsd"/>
>  </xs:schema>
>
>4) include the external schema into the bar namespace
> - works OK, though a little contrived IMO
>
>  <xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
>      targetNamespace="http://example.com/bar" >
>      <xs:include namespace="http://example.com/bar" schemaLocation="bar.xsd"/>
>  </xs:schema>
> 
>5) use the WSDL 2.0 ability to <xs:import directly under <types>
>
>
>So, AIUI, you are contending that option 3 should in fact work. I think
>the consensus of the WG is that xs:import isn't transitive, the most 
>succinct explanation I have to hand is here:
>http://lists.w3.org/Archives/Public/xmlschema-dev/2002Apr/0211.html
>
>If there has been a misunderstanding of the schema specification, then
>it is embodied in current toolkits. You can confirm for yourself with the
>attached example WSDL 1.1 documents.
>
>As to a wrapper schema being 'cleaner', well, AIUI you will be able to 
>publish WSDL 2.0 documents using option 4, but I personally like the direct 
><xs:import under <types>, even though it is specifically excluded by 
>the WS-I Basic Profile.
>
>Paul
>
>
>
>
>  
>
>>-----Original Message-----
>>From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org]On
>>Behalf Of Dennis Sosnoski
>>Sent: 20 September 2005 07:08
>>To: www-ws-desc@w3.org
>>Subject: Comments on Web Services Description Language (WSDL) Version
>>2.0 Part 0: Primer
>>
>>
>>
>>I'm puzzled at the use of a special mechanism for importing 
>>XML schemas, 
>>as discussed in 2.3.2. AFAIKS, the same effect can be had by 
>>just using 
>>a simple xs:schema wrapper element:
>>
>>  <xs:schema>
>>    <xs:import .../>
>>  </xs:schema>
>>
>>This is a cleaner approach than just in-lining the xs:import and 
>>xs:include, since it minimizes the number of different ways 
>>of doing the 
>>same thing. From the comment at the end of 2.3.1, it seems 
>>that there's 
>>a misunderstanding of how schema operates here. As I understand it, 
>>imported schema definitions become part of the schema and 
>>have the same 
>>visibility as definitions made directly under the including 
>>schema. In 
>>support of this interpretation, section 4.2.3 of Schema Part 1 
>>(http://www.w3.org/TR/xmlschema-1/#composition-schemaImport) 
>>ends with:
>>
>>The ·schema components· 
>><http://www.w3.org/TR/xmlschema-1/#key-component> (that is {type 
>>definitions} <http://www.w3.org/TR/xmlschema-1/#type_definitions>, 
>>{attribute declarations} 
>><http://www.w3.org/TR/xmlschema-1/#attribute_declarations>, {element 
>>declarations} 
>><http://www.w3.org/TR/xmlschema-1/#element_declarations>, 
>>{attribute group definitions} 
>><http://www.w3.org/TR/xmlschema-1/#attribute_group_definitions
>>    
>>
>>>, {model 
>>>      
>>>
>>group definitions} 
>><http://www.w3.org/TR/xmlschema-1/#model_group_definitions>, 
>>{notation 
>>declarations} 
>>    
>>
><http://www.w3.org/TR/xmlschema-1/#notation_declarations>) 
>of a schema corresponding to a <schema> 
><http://www.w3.org/TR/xmlschema-1/#element-schema> element information 
>item with one or more <import> 
><http://www.w3.org/TR/xmlschema-1/#element-import> element information 
>items must include not only definitions or declarations corresponding to 
>the appropriate members of its [children] 
><http://www.w3.org/TR/xml-infoset/#infoitem.element>, but also, for each 
>of those <import> <http://www.w3.org/TR/xmlschema-1/#element-import> 
>element information items for which clause 2 
><http://www.w3.org/TR/xmlschema-1/#c-ims> above is satisfied, a set of 
>·schema components· <http://www.w3.org/TR/xmlschema-1/#key-component> 
>identical to all the ·schema components· 
><http://www.w3.org/TR/xmlschema-1/#key-component> of *I*.
>
>Given this, I don't see any possible reason why xs:imported components 
>of a schema would not be available for reference by QName in the WSDL.
>
>  - Dennis
>
>  
>
Received on Tuesday, 20 September 2005 15:22:44 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:37 GMT