- From: Dennis Sosnoski <dms@sosnoski.com>
- Date: Tue, 20 Sep 2005 08:24:47 -0700
- 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 UTC