2002/ws/desc/wsdl20 altschemalangs.html,1.1,1.2 altschemalangs.xml,1.3,1.4

Update of /sources/public/2002/ws/desc/wsdl20
In directory hutz:/tmp/cvs-serv22787

Modified Files:
	altschemalangs.html altschemalangs.xml 
Log Message:


Index: altschemalangs.xml
===================================================================
RCS file: /sources/public/2002/ws/desc/wsdl20/altschemalangs.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** altschemalangs.xml	21 May 2005 00:36:15 -0000	1.3
--- altschemalangs.xml	20 Jul 2005 15:22:22 -0000	1.4
***************
*** 1,4 ****
  <?xml version="1.0" encoding="UTF-8"?>
! <!DOCTYPE spec PUBLIC "-//W3C//DTD Specification V2.2//EN" "http://www.w3.org/2002/xmlspec/dtd/2.2/xmlspec.dtd">
  <!--
  /*
--- 1,4 ----
  <?xml version="1.0" encoding="UTF-8"?>
! <!DOCTYPE spec PUBLIC "-//W3C//DTD Specification V2.2//EN" "xmlspec.dtd">
  <!--
  /*
***************
*** 14,35 ****
   */
   -->
!  <!-- $Id$ -->
!  <?xml-stylesheet type='text/xsl' href='xmlspec-wsdl.xsl' ?>
! <spec xmlns:xlink="http://www.w3.org/1999/xlink" w3c-doctype="wgnote" role="public">
!     <header>
!         <title>Discussion of Alternative Schema Languages and Type System Support in WSDL</title>
!         <w3c-designation>http://www.w3.org/TR/2005/@@</w3c-designation>
!         <w3c-doctype/>
!         <pubdate>
!             <day/>
!             <month/>
!             <year/>
!         </pubdate>
!         <publoc>
!             <loc href="http://www.w3.org/TR/2004/WD-wsdl20-20040803" xlink:type="simple"
!                 xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/2005/@@</loc>
!         </publoc>
!         <altlocs>
!             <!--<loc role="postscript" href="wsdl20.ps" xlink:type="simple" xlink:show="replace"
                  xlink:actuate="onRequest">postscript</loc>
              <loc role="pdf" href="wsdl20.pdf" xlink:type="simple" xlink:show="replace"
--- 14,34 ----
   */
   -->
! <!-- $Id$ -->
! <?xml-stylesheet type='text/xsl' href='xmlspec-wsdl.xsl' ?>
! <spec xmlns:xlink="http://www.w3.org/1999/xlink" w3c-doctype="note" role="public">
! 	<header>
! 		<title>Discussion of Alternative Schema Languages and Type System Support in WSDL</title>
! 		<w3c-designation>http://www.w3.org/TR/2005/@@</w3c-designation>
! 		<w3c-doctype/>
! 		<pubdate>
! 			<day/>
! 			<month/>
! 			<year/>
! 		</pubdate>
! 		<publoc>
! 			<loc href="http://www.w3.org/TR/2004/WD-wsdl20-20040803" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://www.w3.org/TR/2005/@@</loc>
! 		</publoc>
! 		<!--<altlocs>
!             <loc role="postscript" href="wsdl20.ps" xlink:type="simple" xlink:show="replace"
                  xlink:actuate="onRequest">postscript</loc>
              <loc role="pdf" href="wsdl20.pdf" xlink:type="simple" xlink:show="replace"
***************
*** 38,85 ****
                  xlink:actuate="onRequest">XML</loc>
              <loc role="plain" href="wsdl20.txt" xlink:type="simple" xlink:show="replace"
!                 xlink:actuate="onRequest">plain text</loc>-->
!         </altlocs>
!         <prevlocs>
!             <!--<loc href="http://www.w3.org/TR/2004/WD-wsdl20-20040326" xlink:type="simple"
                  xlink:show="replace" xlink:actuate="onRequest"
                  >http://www.w3.org/TR/2004/WD-wsdl20-20040326</loc>-->
!         </prevlocs>
!         <latestloc>
!             <!--<loc href="http://www.w3.org/TR/wsdl20" xlink:type="simple" xlink:show="replace"
                  xlink:actuate="onRequest">http://www.w3.org/TR/wsdl20</loc>-->
!         </latestloc>
!         <authlist>
!             <author>
!                 <name>Amy Lewis</name>
!                 <affiliation>TIBCO</affiliation>
!             </author>
!             <author>
!                 <name>Bijan Parsia</name>
!                 <affiliation>Maryland Information and Network Dynamics Laboratory at the University
                      of Maryland at College Park</affiliation>
!             </author>
!         </authlist>
!         <abstract id="Abstract">
!             <p/>
!         </abstract>
!         <status id="Status">
!             <p>
!                 <emph>This section describes the status of this document at the time of its
                      publication. Other documents may supersede this document. A list of current W3C
                      publications and the latest revision of this technical report can be found in
!                     the <loc href="http://www.w3.org/TR/" xlink:type="simple" xlink:show="replace"
!                         xlink:actuate="onRequest">W3C technical reports index</loc> at
                      http://www.w3.org/TR/.</emph>
!             </p>
!         </status>
!     </header>
!     <body>
!         <div1 id="intro">
!             <head>Introduction</head>
!             <p>WSDL describes Web Service interaction in terms of exchanges of typed messages. WSDL
                  2.0: Part 1 only provides general support for type systems based on the XML infoset
!                     [<a
!                     hef="http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20.html?content-type=text/html;%20charset=utf-8#XMLInfoSet"
!                     >XML Information Set</a>.]. and specific support for the W3C XML Schema
                  Description Language. Describing messages with WSDL using schema languages other
                  than XML Schema or non-XML infoset type systems requires extending the WSDL
--- 37,87 ----
                  xlink:actuate="onRequest">XML</loc>
              <loc role="plain" href="wsdl20.txt" xlink:type="simple" xlink:show="replace"
!                 xlink:actuate="onRequest">plain text</loc>
!         </altlocs>-->
! 		<prevlocs>
! 			<!--<loc href="http://www.w3.org/TR/2004/WD-wsdl20-20040326" xlink:type="simple"
                  xlink:show="replace" xlink:actuate="onRequest"
                  >http://www.w3.org/TR/2004/WD-wsdl20-20040326</loc>-->
! 		</prevlocs>
! 		<latestloc>
! 			<!--<loc href="http://www.w3.org/TR/wsdl20" xlink:type="simple" xlink:show="replace"
                  xlink:actuate="onRequest">http://www.w3.org/TR/wsdl20</loc>-->
! 		</latestloc>
! 		<authlist>
! 			<author>
! 				<name>Amy Lewis</name>
! 				<affiliation>TIBCO</affiliation>
! 			</author>
! 			<author>
! 				<name>Bijan Parsia</name>
! 				<affiliation>Maryland Information and Network Dynamics Laboratory at the University
                      of Maryland at College Park</affiliation>
! 			</author>
! 		</authlist>
! 		<abstract id="Abstract">
! 			<p/>
! 		</abstract>
! 		<status id="Status">
! 			<p>
! 				<emph>This section describes the status of this document at the time of its
                      publication. Other documents may supersede this document. A list of current W3C
                      publications and the latest revision of this technical report can be found in
!                     the <loc href="http://www.w3.org/TR/" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">W3C technical reports index</loc> at
                      http://www.w3.org/TR/.</emph>
! 			</p>
! 		</status>
! 		<langusage>
! 			<language id="en">English</language>
! 		</langusage>
! 		<revisiondesc>
! 			<p>Last Modified copy $Date$</p>
! 		</revisiondesc>
! 	</header>
! 	<body>
! 		<div1 id="intro">
! 			<head>Introduction</head>
! 			<p>WSDL describes Web Service interaction in terms of exchanges of typed messages. WSDL
                  2.0: Part 1 only provides general support for type systems based on the XML infoset
!                     [<loc href="http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20.html?content-type=text/html;%20charset=utf-8#XMLInfoSet">XML Information Set</loc>.]. and specific support for the W3C XML Schema
                  Description Language. Describing messages with WSDL using schema languages other
                  than XML Schema or non-XML infoset type systems requires extending the WSDL
***************
*** 89,373 ****
                  part of the working group's thinking about schema language and type system
                  extensibilty at the time of its publication.</p>
!            
!         </div1>
!         
!         <div1 id="schemalangs">
!             <head>Alternate Schema Languages</head>
!         </div1>
!   
!         <div1 id="examples">
!             <head>Examples of Specifications of Extension Elements for Alternative Schema Language
                  Support.</head>
!             <div2 id="dtd">
!                 <head>DTD</head>
!                 <p>A DTD may be used as the schema language for WSDL. It may not be embedded; it
                      must be imported. A namespace must be assigned. DTD types appear in the {element
!                     declarations} property of <specref ref="Definitions_details"/> and may be
                      referenced from the <el>wsdl:input</el>, <el>wsdl:output</el> and
                      <el>wsdl:fault</el> elements using the <att>element</att>
!                     <emph>attribute information item</emph>.</p>
!                 <p> The prefix, dtd, used throughout the following is mapped to the namespace URI
                          <attval>http://www.example.org/dtd/</attval>.</p>
!                 <p> The <el>dtd:import</el>
!                     <emph>element information item</emph> references an external Document Type
                      Definition, and has the following infoset properties:</p>
!                 <ulist>
!                     <item>
!                         <p>A [local name] of import.</p>
!                     </item>
!                     <item>
!                         <p>A [namespace name] of "http://www.example.org/dtd".</p>
!                     </item>
!                     <item>
!                         <p>One or two <emph>attribute information item</emph>s, as follows:</p>
!                         <ulist>
!                             <item>
!                                 <p>A REQUIRED <att>namespace</att>
!                                     <emph>attribute information item</emph> as described below.</p>
!                             </item>
!                             <item>
!                                 <p>An OPTIONAL <att>location</att>
!                                     <emph>attribute information item</emph> as described below.</p>
!                             </item>
!                         </ulist>
!                     </item>
!                 </ulist>
!                 <div3 id="dtd-namespaceaii">
!                     <head>
!                         <att>namespace</att>
!                         <emph>attribute information item</emph>
!                     </head>
!                     <p>The <att>namespace</att>
!                         <emph>attribute information item</emph> sets the namespace to be used with
                          all imported element definitions described in the DTD. It has the following
                          infoset properties:</p>
!                     <ulist>
!                         <item>
!                             <p>A [local name] of namespace.</p>
!                         </item>
!                         <item>
!                             <p>A [namespace name] which has no value.</p>
!                         </item>
!                     </ulist>
!                     <p>The type of the <att>namespace</att>
!                         <emph>attribute information item</emph> is <emph>xs:anyURI</emph>.</p>
!                     <p>The WSDL author should ensure that a prefix is associated with the namespace
                          at the proper scope (probably document scope).</p>
!                 </div3>
!                 <div3 id="dtd-locationaii">
!                     <head>
!                         <att>location</att>
!                         <emph>attribute information item</emph>
!                     </head>
!                     <p>The <att>location</att>
!                         <emph>attribute information item</emph>, if present, provides a hint to the
                          processor as to where the DTD may be located. Caching and cataloging
                          technologies may provide better information than this hint. The
                              <att>location</att>
!                         <emph>attribute information item</emph> has the following infoset
                          properties:</p>
!                     <ulist>
!                         <item>
!                             <p>A [local name] of location.</p>
!                         </item>
!                         <item>
!                             <p>A [namespace name] which has no value.</p>
!                         </item>
!                     </ulist>
!                     <p>The type of the <att>location</att>
!                         <emph>attribute information item</emph> is <emph>xs:anyURI</emph>.</p>
!                 </div3>
!                 <div3 id="dtd-ref">
!                     <head>References to Element Definitions</head>
!                     <p> The <att>element</att>
!                         <emph>attribute information item</emph> MUST be used when referring to an
                          element definition (&lt;!ELEMENT&gt;) from a Message Reference
                          component; referring to an element definition from a Interface Fault
                          component is similar. The value of the element definition MUST correspond to
                          the content of the <att>namespace</att>
!                         <emph>attribute information item</emph> of the <el>dtd:import</el>
!                         <emph>element information item</emph>. The local name part must correspond
                          to an element defined in the DTD. </p>
!                     <p> Note that this pattern does not attempt to make DTDs namespace-aware. It
                          applies namespaces externally, in the import phase.</p>
!                 </div3>
!             </div2>
!             <div2 id="relax">
!                 <head>RELAX NG</head>
!                 <p>A RELAX NG schema may be used as the schema language for WSDL. It may be embedded
                      or imported; import is preferred. A namespace must be specified; if an imported
                      schema specifies one, then the [actual value] of the <att>namespace</att>
!                     <emph>attribute information item</emph> in the <el>import</el>
!                     <emph>element information item</emph> must match the specified namespace. RELAX
                      NG provides both type definitions and element declarations, the latter appears
!                     in the {element declarations} property of <specref ref="Definitions_details"/>
                      respectively. The following discussion supplies the prefix rng which is mapped
                      to the URI "http://www.relaxng.org/ns/structure/1.0".</p>
!                 <div3 id="import-relax">
!                     <head>Importing RELAX NG</head>
!                     <p> Importing a RELAX NG schema uses the rng:include mechanism defined by RNG,
                          with restrictions on its syntax and semantics. A child <emph>element
                              information item</emph> of the <el>types</el>
!                         <emph>element information item</emph> is defined with the Infoset properties
                          as follows:</p>
!                     <ulist>
!                         <item>
!                             <p>A [local name] of include.</p>
!                         </item>
!                         <item>
!                             <p>A [namespace name] of "http://www.relaxng.org/ns/structure/1.0".</p>
!                         </item>
!                         <item>
!                             <p>Two <emph>attribute information item</emph>s as follows:</p>
!                             <ulist>
!                                 <item>
!                                     <p>A REQUIRED <att>ns</att>
!                                         <emph>attribute information item</emph> as described
                                      below.</p>
!                                 </item>
!                                 <item>
!                                     <p>An OPTIONAL <att>href</att>
!                                         <emph>attribute information item</emph> as described
                                      below.</p>
!                                 </item>
!                                 <item>
!                                     <p>Additional <emph>attribute information item</emph>s as
                                          defined by the RNG specification.</p>
!                                 </item>
!                             </ulist>
!                         </item>
!                     </ulist>
!                     <p> Note that WSDL restricts the <el>rng:include</el>
!                         <emph>element information item</emph> to be empty. That is, it cannot
                          redefine <el>rng:start</el> and <el>rng:define</el>
!                         <emph>element information item</emph>s; it may be used solely to import a
                          schema.</p>
!                     <div4 id="relax-import-nsaii">
!                         <head>
!                             <att>ns</att>
!                             <emph>attribute information item</emph>
!                         </head>
!                         <p>The <att>ns</att>
!                             <emph>attribute information item</emph> defines the namespace of the
                              type and element definitions imported from the referenced schema. If the
                              referenced schema contains an <att>ns</att>
!                             <emph>attribute information item</emph> on its <el>grammar</el>
!                             <emph>element information item</emph>, then the values of these two
                                  <emph>attribute information item</emph>s must be identical. If the
                              imported grammar does not have an <att>ns</att>
!                             <emph>attribute information item</emph> then the namespace specified
                              here is applied to all components of the schema as if it did contain
                              such an <emph>attribute information item</emph>. The <att>ns</att>
!                             <emph>attribute information item</emph> contains the following Infoset
                              properties:</p>
!                         <ulist>
!                             <item>
!                                 <p>A [local name] of ns.</p>
!                             </item>
!                             <item>
!                                 <p>A [namespace name] which has no value.</p>
!                             </item>
!                         </ulist>
!                         <p>The type of the <att>ns</att>
!                             <emph>attribute information item</emph> is <emph>xs:anyURI</emph>.</p>
!                     </div4>
!                     <div4 id="relax-import-hrefaii">
!                         <head>
!                             <att>href</att>
!                             <emph>attribute information item</emph>
!                         </head>
!                         <p> The <att>href</att>
!                             <emph>attribute information item</emph> must be present, according to
                              the rules of the RNG specification. However, WSDL allows it to be empty,
                              and considers it only a hint. Caching and cataloging technologies may
                              provide better information that this hint. The <att>href</att>
!                             <emph>attribute information item</emph> has the following Infoset
                              properties:</p>
!                         <ulist>
!                             <item>
!                                 <p>A [local name] of href.</p>
!                             </item>
!                             <item>
!                                 <p>A [namespace name] which has no value.</p>
!                             </item>
!                         </ulist>
!                         <p>The type of the <att>href</att>
!                             <emph>attribute information item</emph> is <emph>xs:anyURI</emph>.</p>
!                     </div4>
!                 </div3>
!                 <div3 id="relax-embed">
!                     <head>Embedding RELAX NG</head>
!                     <p> Embedding an RNG schema uses the existing top-level <el>rng:grammar</el>
!                         <emph>element information item</emph>. It may be viewed as simply cutting
                          and pasting an existing, stand-alone schema to a location inside the
                              <el>wsdl:types</el>
!                         <emph>element information item</emph>. The <el>rng:grammar</el>
!                         <emph>element information item</emph> has the following Infoset properties:</p>
!                     <ulist>
!                         <item>
!                             <p>A [local name] of grammar.</p>
!                         </item>
!                         <item>
!                             <p>A [namespace name] of "http://www.relaxng.org/ns/structure/1.0".</p>
!                         </item>
!                         <item>
!                             <p>A REQUIRED <att>ns</att>
!                                 <emph>attribute information item</emph>s as described below.</p>
!                         </item>
!                         <item>
!                             <p>Additional <emph>attribute information item</emph>s as specified for
                                  the <el>rng:grammar</el>
!                                 <emph>element information item</emph> in the RNG specification.</p>
!                         </item>
!                         <item>
!                             <p>Child <emph>element information item</emph>s as specified for the
                                      <el>rng:grammar</el>
!                                 <emph>element information item</emph> in the RNG specification.</p>
!                         </item>
!                     </ulist>
!                     <div4 id="relax-embed-nsaii">
!                         <head>
!                             <att>ns</att>
!                             <emph>attribute information item</emph>
!                         </head>
!                         <p> The <att>ns</att>
!                             <emph>attribute information item</emph> defines the namespace of the
                              type and element definitions embedded in this schema. WSDL modifies the
                              RNG definition of the <el>rng:grammar</el>
!                             <emph>element information item</emph> to make this <emph>attribute
                                  information item</emph> required. The <att>ns</att>
!                             <emph>attribute information item</emph> has the following infoset
                              properties:</p>
!                         <ulist>
!                             <item>
!                                 <p>A [local name] of ns.</p>
!                             </item>
!                             <item>
!                                 <p>A [namespace name] which has no value.</p>
!                             </item>
!                         </ulist>
!                         <p>The type of the <att>ns</att>
!                             <emph>attribute information item</emph> is <emph>xs:anyURI</emph>.</p>
!                     </div4>
!                 </div3>
!                 <div3 id="relax-ref">
!                     <head>References to Element Declarations</head>
!                     <p>Whether embedded or imported, the element definitions present in a schema may
                          be referenced from a Message Reference or Interface Fault component.</p>
!                     <p> A named rng:define definition MUST NOT be referenced from the Message
                          Reference or Interface Fault components. </p>
!                     <p> A named Relax NG element declaration MAY be referenced from a Message
                          Reference or Interface Fault component. The QName is constructed from the
                          namespace (<att>ns</att>
!                         <emph>attribute information item</emph>) of the schema and the content of
                          the <att>name</att>
!                         <emph>attribute information item</emph> of the <el>element</el>
!                         <emph>element information item</emph> An <att>element</att>
!                         <emph>attribute information item</emph> MUST NOT be used to refer to an
                              <el>rng:define</el>
!                         <emph>element information item</emph>. </p>
!                 </div3>
!             </div2>
!         </div1>
!     </body>
  </spec>
--- 91,414 ----
                  part of the working group's thinking about schema language and type system
                  extensibilty at the time of its publication.</p>
! 		</div1>
! 		<div1 id="multipleschemalangs">
! 			<head>Issues facing multiple schema languages/type systems</head>
! 			<p>Without the use of an extension, a WSDL document can only use a single 
!         type system, XML Schema. If extensions are defined to support 
!         alternative schema languages or non-XML type systems, then issues 
!         regarding the <emph>mixing</emph> of type systems in a single document arise. Part 
!         1 does <emph>not</emph> define the behavior of mixed type system documents, so it 
!         is incumbent on extension authors to do so.</p>
! 			<p>For example, suppose a WSDL author used a extension supporting Relax NG 
!         along side the native support for XML Schema. Further suppose that 
!         there is an element component which has a definition in both the 
!         referenced XML Schema and Relax NG schema. There are several 
!         possibilities for interpreting such a document:</p>
! 			<ulist>
! 				<item>
! 					<p>Multiple definitions in distinct type systems is always an error</p>
! 				</item>
! 				<item>
! 					<p>Multiple definitions must be in some sense equivalent, for example, 
!         if XML Schema type and an Relax NG production validate exactly the same 
!         set of Infoset fragments, otherwise, an error</p>
! 				</item>
! 				<item>
! 					<p>Multiple definitions are legal, and are interpreted as a union type 
!             constraint</p>
! 				</item>
! 			</ulist>
! 			<p>The last interpretation suggests a further general possibility: being 
!                 able to define a union type (or other compound type) that spans 
!                 distinct type systems (and, to further generalize, where the unioned types had 
!             distinct QName identifiers). The <loc href="http://www.w3.org/2001/sw/DataAccess/">Data Access Working Group</loc>
!                 had a use case wherein their return message could either be in 
!             <loc href="http://www.w3.org/TR/rdf-syntax-grammar/">RDF/XML</loc>, which 
!                 cannot have an interesting XML Schema but does have an interesting 
!             Relax NG schema, and their <loc href="http://www.w3.org/TR/rdf-sparql-XMLres/">other results format</loc>, which they 
!             would prefer to 
!                 specify with an XML Schema. This example is little artificial, as the 
!                 Data Access Working Group could easily describe the entire results 
!                 format in Relax NG.</p>
! 			<p>The first interpretation is most in the spirit of WSDL and was strongly
!         preferred by the working group.  Since WSDL extensibility points are generally
!         quite unrestricted, the group did not try to enforce the first option, but
!         the general belief of the group was that the other options were confusing
!         and unwise.</p>
! 		</div1>
! 		<div1 id="examples">
! 			<head>Examples of Specifications of Extension Elements for Alternative Schema Language
                  Support.</head>
! 			<div2 id="dtd">
! 				<head>DTD</head>
! 				<p>A DTD may be used as the schema language for WSDL. It may not be embedded; it
                      must be imported. A namespace must be assigned. DTD types appear in the {element
!                     declarations} property of &lt;specref ref="Definitions_details"/> and may be
                      referenced from the <el>wsdl:input</el>, <el>wsdl:output</el> and
                      <el>wsdl:fault</el> elements using the <att>element</att>
! 					<emph>attribute information item</emph>.</p>
! 				<p> The prefix, dtd, used throughout the following is mapped to the namespace URI
                          <attval>http://www.example.org/dtd/</attval>.</p>
! 				<p> The <el>dtd:import</el>
! 					<emph>element information item</emph> references an external Document Type
                      Definition, and has the following infoset properties:</p>
! 				<ulist>
! 					<item>
! 						<p>A [local name] of import.</p>
! 					</item>
! 					<item>
! 						<p>A [namespace name] of "http://www.example.org/dtd".</p>
! 					</item>
! 					<item>
! 						<p>One or two <emph>attribute information item</emph>s, as follows:</p>
! 						<ulist>
! 							<item>
! 								<p>A REQUIRED <att>namespace</att>
! 									<emph>attribute information item</emph> as described below.</p>
! 							</item>
! 							<item>
! 								<p>An OPTIONAL <att>location</att>
! 									<emph>attribute information item</emph> as described below.</p>
! 							</item>
! 						</ulist>
! 					</item>
! 				</ulist>
! 				<div3 id="dtd-namespaceaii">
! 					<head>
! 						<att>namespace</att>
! 						<emph>attribute information item</emph>
! 					</head>
! 					<p>The <att>namespace</att>
! 						<emph>attribute information item</emph> sets the namespace to be used with
                          all imported element definitions described in the DTD. It has the following
                          infoset properties:</p>
! 					<ulist>
! 						<item>
! 							<p>A [local name] of namespace.</p>
! 						</item>
! 						<item>
! 							<p>A [namespace name] which has no value.</p>
! 						</item>
! 					</ulist>
! 					<p>The type of the <att>namespace</att>
! 						<emph>attribute information item</emph> is <emph>xs:anyURI</emph>.</p>
! 					<p>The WSDL author should ensure that a prefix is associated with the namespace
                          at the proper scope (probably document scope).</p>
! 				</div3>
! 				<div3 id="dtd-locationaii">
! 					<head>
! 						<att>location</att>
! 						<emph>attribute information item</emph>
! 					</head>
! 					<p>The <att>location</att>
! 						<emph>attribute information item</emph>, if present, provides a hint to the
                          processor as to where the DTD may be located. Caching and cataloging
                          technologies may provide better information than this hint. The
                              <att>location</att>
! 						<emph>attribute information item</emph> has the following infoset
                          properties:</p>
! 					<ulist>
! 						<item>
! 							<p>A [local name] of location.</p>
! 						</item>
! 						<item>
! 							<p>A [namespace name] which has no value.</p>
! 						</item>
! 					</ulist>
! 					<p>The type of the <att>location</att>
! 						<emph>attribute information item</emph> is <emph>xs:anyURI</emph>.</p>
! 				</div3>
! 				<div3 id="dtd-ref">
! 					<head>References to Element Definitions</head>
! 					<p> The <att>element</att>
! 						<emph>attribute information item</emph> MUST be used when referring to an
                          element definition (&lt;!ELEMENT&gt;) from a Message Reference
                          component; referring to an element definition from a Interface Fault
                          component is similar. The value of the element definition MUST correspond to
                          the content of the <att>namespace</att>
! 						<emph>attribute information item</emph> of the <el>dtd:import</el>
! 						<emph>element information item</emph>. The local name part must correspond
                          to an element defined in the DTD. </p>
! 					<p> Note that this pattern does not attempt to make DTDs namespace-aware. It
                          applies namespaces externally, in the import phase.</p>
! 				</div3>
! 			</div2>
! 			<div2 id="relax">
! 				<head>RELAX NG</head>
! 				<p>A RELAX NG schema may be used as the schema language for WSDL. It may be embedded
                      or imported; import is preferred. A namespace must be specified; if an imported
                      schema specifies one, then the [actual value] of the <att>namespace</att>
! 					<emph>attribute information item</emph> in the <el>import</el>
! 					<emph>element information item</emph> must match the specified namespace. RELAX
                      NG provides both type definitions and element declarations, the latter appears
!                     in the {element declarations} property of &lt;specref ref="Definitions_details"/>
                      respectively. The following discussion supplies the prefix rng which is mapped
                      to the URI "http://www.relaxng.org/ns/structure/1.0".</p>
! 				<div3 id="import-relax">
! 					<head>Importing RELAX NG</head>
! 					<p> Importing a RELAX NG schema uses the rng:include mechanism defined by RNG,
                          with restrictions on its syntax and semantics. A child <emph>element
                              information item</emph> of the <el>types</el>
! 						<emph>element information item</emph> is defined with the Infoset properties
                          as follows:</p>
! 					<ulist>
! 						<item>
! 							<p>A [local name] of include.</p>
! 						</item>
! 						<item>
! 							<p>A [namespace name] of "http://www.relaxng.org/ns/structure/1.0".</p>
! 						</item>
! 						<item>
! 							<p>Two <emph>attribute information item</emph>s as follows:</p>
! 							<ulist>
! 								<item>
! 									<p>A REQUIRED <att>ns</att>
! 										<emph>attribute information item</emph> as described
                                      below.</p>
! 								</item>
! 								<item>
! 									<p>An OPTIONAL <att>href</att>
! 										<emph>attribute information item</emph> as described
                                      below.</p>
! 								</item>
! 								<item>
! 									<p>Additional <emph>attribute information item</emph>s as
                                          defined by the RNG specification.</p>
! 								</item>
! 							</ulist>
! 						</item>
! 					</ulist>
! 					<p> Note that WSDL restricts the <el>rng:include</el>
! 						<emph>element information item</emph> to be empty. That is, it cannot
                          redefine <el>rng:start</el> and <el>rng:define</el>
! 						<emph>element information item</emph>s; it may be used solely to import a
                          schema.</p>
! 					<div4 id="relax-import-nsaii">
! 						<head>
! 							<att>ns</att>
! 							<emph>attribute information item</emph>
! 						</head>
! 						<p>The <att>ns</att>
! 							<emph>attribute information item</emph> defines the namespace of the
                              type and element definitions imported from the referenced schema. If the
                              referenced schema contains an <att>ns</att>
! 							<emph>attribute information item</emph> on its <el>grammar</el>
! 							<emph>element information item</emph>, then the values of these two
                                  <emph>attribute information item</emph>s must be identical. If the
                              imported grammar does not have an <att>ns</att>
! 							<emph>attribute information item</emph> then the namespace specified
                              here is applied to all components of the schema as if it did contain
                              such an <emph>attribute information item</emph>. The <att>ns</att>
! 							<emph>attribute information item</emph> contains the following Infoset
                              properties:</p>
! 						<ulist>
! 							<item>
! 								<p>A [local name] of ns.</p>
! 							</item>
! 							<item>
! 								<p>A [namespace name] which has no value.</p>
! 							</item>
! 						</ulist>
! 						<p>The type of the <att>ns</att>
! 							<emph>attribute information item</emph> is <emph>xs:anyURI</emph>.</p>
! 					</div4>
! 					<div4 id="relax-import-hrefaii">
! 						<head>
! 							<att>href</att>
! 							<emph>attribute information item</emph>
! 						</head>
! 						<p> The <att>href</att>
! 							<emph>attribute information item</emph> must be present, according to
                              the rules of the RNG specification. However, WSDL allows it to be empty,
                              and considers it only a hint. Caching and cataloging technologies may
                              provide better information that this hint. The <att>href</att>
! 							<emph>attribute information item</emph> has the following Infoset
                              properties:</p>
! 						<ulist>
! 							<item>
! 								<p>A [local name] of href.</p>
! 							</item>
! 							<item>
! 								<p>A [namespace name] which has no value.</p>
! 							</item>
! 						</ulist>
! 						<p>The type of the <att>href</att>
! 							<emph>attribute information item</emph> is <emph>xs:anyURI</emph>.</p>
! 					</div4>
! 				</div3>
! 				<div3 id="relax-embed">
! 					<head>Embedding RELAX NG</head>
! 					<p> Embedding an RNG schema uses the existing top-level <el>rng:grammar</el>
! 						<emph>element information item</emph>. It may be viewed as simply cutting
                          and pasting an existing, stand-alone schema to a location inside the
                              <el>wsdl:types</el>
! 						<emph>element information item</emph>. The <el>rng:grammar</el>
! 						<emph>element information item</emph> has the following Infoset properties:</p>
! 					<ulist>
! 						<item>
! 							<p>A [local name] of grammar.</p>
! 						</item>
! 						<item>
! 							<p>A [namespace name] of "http://www.relaxng.org/ns/structure/1.0".</p>
! 						</item>
! 						<item>
! 							<p>A REQUIRED <att>ns</att>
! 								<emph>attribute information item</emph>s as described below.</p>
! 						</item>
! 						<item>
! 							<p>Additional <emph>attribute information item</emph>s as specified for
                                  the <el>rng:grammar</el>
! 								<emph>element information item</emph> in the RNG specification.</p>
! 						</item>
! 						<item>
! 							<p>Child <emph>element information item</emph>s as specified for the
                                      <el>rng:grammar</el>
! 								<emph>element information item</emph> in the RNG specification.</p>
! 						</item>
! 					</ulist>
! 					<div4 id="relax-embed-nsaii">
! 						<head>
! 							<att>ns</att>
! 							<emph>attribute information item</emph>
! 						</head>
! 						<p> The <att>ns</att>
! 							<emph>attribute information item</emph> defines the namespace of the
                              type and element definitions embedded in this schema. WSDL modifies the
                              RNG definition of the <el>rng:grammar</el>
! 							<emph>element information item</emph> to make this <emph>attribute
                                  information item</emph> required. The <att>ns</att>
! 							<emph>attribute information item</emph> has the following infoset
                              properties:</p>
! 						<ulist>
! 							<item>
! 								<p>A [local name] of ns.</p>
! 							</item>
! 							<item>
! 								<p>A [namespace name] which has no value.</p>
! 							</item>
! 						</ulist>
! 						<p>The type of the <att>ns</att>
! 							<emph>attribute information item</emph> is <emph>xs:anyURI</emph>.</p>
! 					</div4>
! 				</div3>
! 				<div3 id="relax-ref">
! 					<head>References to Element Declarations</head>
! 					<p>Whether embedded or imported, the element definitions present in a schema may
                          be referenced from a Message Reference or Interface Fault component.</p>
! 					<p> A named rng:define definition MUST NOT be referenced from the Message
                          Reference or Interface Fault components. </p>
! 					<p> A named Relax NG element declaration MAY be referenced from a Message
                          Reference or Interface Fault component. The QName is constructed from the
                          namespace (<att>ns</att>
! 						<emph>attribute information item</emph>) of the schema and the content of
                          the <att>name</att>
! 						<emph>attribute information item</emph> of the <el>element</el>
! 						<emph>element information item</emph> An <att>element</att>
! 						<emph>attribute information item</emph> MUST NOT be used to refer to an
                              <el>rng:define</el>
! 						<emph>element information item</emph>. </p>
! 				</div3>
! 			</div2>
! 		</div1>
! 	</body>
  </spec>

Index: altschemalangs.html
===================================================================
RCS file: /sources/public/2002/ws/desc/wsdl20/altschemalangs.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** altschemalangs.html	16 Mar 2005 17:42:46 -0000	1.1
--- altschemalangs.html	20 Jul 2005 15:22:22 -0000	1.2
***************
*** 1,432 ****
! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
!     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
! <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
! <head>
! <meta name="generator" content=
! "HTML Tidy for Linux/x86 (vers 1st August 2004), see www.w3.org" />
! <meta http-equiv="Content-Type" content=
! "text/html; charset=utf-8" />
! <title>Web Services Description Language (WSDL): Alternative Schema
! Languages Support</title>
! 
! <style type="text/css">
! /*<![CDATA[*/
! code           { font-family: monospace; }
! 
! div.constraint,
! div.issue,
! div.note,
! div.notice     { margin-left: 2em; }
! 
! dt.label       { display: run-in; }
! 
! li, p           { margin-top: 0.3em;
!                  margin-bottom: 0.3em; }
! 
! .diff-chg       { background-color: yellow; }
! .diff-del       { background-color: red; text-decoration: line-through;}
! .diff-add       { background-color: lime; }
! 
! table          { empty-cells: show; }
! 
! table caption {
!         font-weight: normal;
!         font-style: italic;
!         text-align: left;
!         margin-bottom: .5em;
! }
! 
! div.issue {
!   color: red;
! }
! 
! div.exampleInner pre { margin-left: 1em;
!                        margin-top: 0em; margin-bottom: 0em}
! div.exampleOuter {border: 4px double gray;
!                   margin: 0em; padding: 0em}
! div.exampleInner { background-color: #d5dee3;
!                    border-top-width: 4px;
!                    border-top-style: double;
!                    border-top-color: #d3d3d3;
!                    border-bottom-width: 4px;
!                    border-bottom-style: double;
!                    border-bottom-color: #d3d3d3;
!                    padding: 4px; margin: 0em }
! div.exampleWrapper { margin: 4px }
! div.exampleHeader { font-weight: bold;
!                     margin: 4px}
! /*]]>*/
! </style>
! <link type="text/css" rel="stylesheet" href="zml.css" />
! <link rel="stylesheet" type="text/css" href=
! "http://www.w3.org/StyleSheets/TR/W3C-NOTE.css" />
! <script language="JavaScript" src="twisty.js" type=
! "text/javascript">
! </script>
! <link rel="contents" href="#contents" />
! </head>
! <body>
! <div class="head">
! <p><a href="http://www.w3.org/"><img src=
! "http://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width=
! "72" /></a></p>
! <h1>Web Services Description Language (WSDL): Alternative Schema
! Languages Support</h1>
! <dl>
! <dt>This version:</dt>
! <dd><a href=
! "http://www.w3.org/TR/2004/WD-wsdl20-20040803">http://www.w3.org/TR/2005/@@</a></dd>
! <dt>Latest version:</dt>
! <dt>Previous versions:</dt>
! <dt>Editors:</dt>
! <dd>..., ...</dd>
! <dd>Bijan Parsia, Maryland Information and Network Dynamics
! Laboratory at the University of Maryland at College Park</dd>
! <dd>..., ...</dd>
! </dl>
! <p class="copyright"><a href=
! "http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>&nbsp;©&nbsp;&nbsp;<a href="http://www.w3.org/">
! <acronym title=
! "World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href=
! "http://www.csail.mit.edu/"><acronym title=
! "Massachusetts Institute of Technology">MIT</acronym></a>, <a href=
! "http://www.ercim.org/"><acronym title=
! "European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
! <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved.
! W3C <a href=
! "http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
! <a href=
! "http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
! and <a href=
! "http://www.w3.org/Consortium/Legal/copyright-documents">document
! use</a> rules apply.</p>
! </div>
! <hr />
! <div>
! <h2><a name="abstract" id="abstract">Abstract</a></h2>
! </div>
! <div>
! <h2><a name="status" id="status">Status of this Document</a></h2>
! <p><em>This section describes the status of this document at the
! time of its publication. Other documents may supersede this
! document. A list of current W3C publications and the latest
! revision of this technical report can be found in the <a href=
! "http://www.w3.org/TR/">W3C technical reports index</a> at
! http://www.w3.org/TR/.</em></p>
! </div>
! <hr />
! <div class="toc">
! <h2><a name="shortcontents" id="shortcontents">Short Table of
! Contents</a></h2>
! <p class="toc">1. <a href="#intro">Introduction</a><br />
! 2. <a href="#examples">Examples of Specifications of Extension
! Elements for Alternative Schema Language Support.</a><br /></p>
! </div>
! <hr />
! <div class="toc">
! <h2><a name="contents" id="contents">Table of Contents</a></h2>
! <p class="toc">1. <a href="#intro">Introduction</a><br />
! 2. <a href="#examples">Examples of Specifications of Extension
! Elements for Alternative Schema Language Support.</a><br />
! &nbsp;&nbsp;&nbsp;&nbsp;2.1 <a href="#dtd">DTD</a><br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.1.1 <a href=
! "#dtd-namespaceaii">namespace attribute information item</a><br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.1.2 <a href=
! "#dtd-locationaii">location attribute information item</a><br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.1.3 <a href=
! "#dtd-ref">References to Element Definitions</a><br />
! &nbsp;&nbsp;&nbsp;&nbsp;2.2 <a href="#relax">RELAX NG</a><br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.2.1 <a href=
! "#import-relax">Importing RELAX NG</a><br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.2.1.1
! <a href="#relax-import-nsaii">ns attribute information
! item</a><br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.2.1.2
! <a href="#relax-import-hrefaii">href attribute information
! item</a><br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.2.2 <a href=
! "#relax-embed">Embedding RELAX NG</a><br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.2.2.1
! <a href="#relax-embed-nsaii">ns attribute information
! item</a><br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.2.3 <a href=
! "#relax-ref">References to Element Declarations</a><br /></p>
! </div>
! <hr />
! <div class="body">
! <div class="div1">
! <h2><a name="intro" id="intro"></a>1. Introduction</h2>
! </div>
! <div class="div1">
! <h2><a name="examples" id="examples"></a>2. Examples of
! Specifications of Extension Elements for Alternative Schema
! Language Support.</h2>
! <div class="div2">
! <h3><a name="dtd" id="dtd"></a>2.1 DTD</h3>
! <p>A DTD may be used as the schema language for WSDL. It may not be
! embedded; it must be imported. A namespace must be assigned. DTD
! types appear in the {element declarations} property of <a href=
! "wsdl20.html#Definitions_details">@@@</a> and may be referenced
! from the <code>wsdl:input</code> , <code>wsdl:output</code> and
! <code>wsdl:fault</code> elements using the <code>element</code>
! <em>attribute information item</em>.</p>
! <p>The prefix, dtd, used throughout the following is mapped to the
! namespace URI "http://www.example.org/dtd/".</p>
! <p>The <code>dtd:import</code> <em>element information item</em>
! references an external Document Type Definition, and has the
! following infoset properties:</p>
! <ul>
! <li>
! <p>A [local name] of import.</p>
! </li>
! <li>
! <p>A [namespace name] of "http://www.example.org/dtd".</p>
! </li>
! <li>
! <p>One or two <em>attribute information item</em>s, as follows:</p>
! <ul>
! <li>
! <p>A REQUIRED <code>namespace</code> <em>attribute information
! item</em> as described below.</p>
! </li>
! <li>
! <p>An OPTIONAL <code>location</code> <em>attribute information
! item</em> as described below.</p>
! </li>
! </ul>
! </li>
! </ul>
! <div class="div3">
! <h4><a name="dtd-namespaceaii" id="dtd-namespaceaii"></a>2.1.1
! <code>namespace</code> <em>attribute information item</em></h4>
! <p>The <code>namespace</code> <em>attribute information item</em>
! sets the namespace to be used with all imported element definitions
! described in the DTD. It has the following infoset properties:</p>
! <ul>
! <li>
! <p>A [local name] of namespace.</p>
! </li>
! <li>
! <p>A [namespace name] which has no value.</p>
! </li>
! </ul>
! <p>The type of the <code>namespace</code> <em>attribute information
! item</em> is <em>xs:anyURI</em>.</p>
! <p>The WSDL author should ensure that a prefix is associated with
! the namespace at the proper scope (probably document scope).</p>
! </div>
! <div class="div3">
! <h4><a name="dtd-locationaii" id="dtd-locationaii"></a>2.1.2
! <code>location</code> <em>attribute information item</em></h4>
! <p>The <code>location</code> <em>attribute information item</em>,
! if present, provides a hint to the processor as to where the DTD
! may be located. Caching and cataloging technologies may provide
! better information than this hint. The <code>location</code>
! <em>attribute information item</em> has the following infoset
! properties:</p>
! <ul>
! <li>
! <p>A [local name] of location.</p>
! </li>
! <li>
! <p>A [namespace name] which has no value.</p>
! </li>
! </ul>
! <p>The type of the <code>location</code> <em>attribute information
! item</em> is <em>xs:anyURI</em>.</p>
! </div>
! <div class="div3">
! <h4><a name="dtd-ref" id="dtd-ref"></a>2.1.3 References to Element
! Definitions</h4>
! <p>The <code>element</code> <em>attribute information item</em>
! MUST be used when referring to an element definition
! (&lt;!ELEMENT&gt;) from a Message Reference component; referring to
! an element definition from a Interface Fault component is similar.
! The value of the element definition MUST correspond to the content
! of the <code>namespace</code> <em>attribute information item</em>
! of the <code>dtd:import</code> <em>element information item</em>.
! The local name part must correspond to an element defined in the
! DTD.</p>
! <p>Note that this pattern does not attempt to make DTDs
! namespace-aware. It applies namespaces externally, in the import
! phase.</p>
! </div>
! </div>
! <div class="div2">
! <h3><a name="relax" id="relax"></a>2.2 RELAX NG</h3>
! <p>A RELAX NG schema may be used as the schema language for WSDL.
! It may be embedded or imported; import is preferred. A namespace
! must be specified; if an imported schema specifies one, then the
! [actual value] of the <code>namespace</code> <em>attribute
! information item</em> in the <code>import</code> <em>element
! information item</em> must match the specified namespace. RELAX NG
! provides both type definitions and element declarations, the latter
! appears in the {element declarations} property of <a href=
! "wsdl20.html#Definitions_details">@@@</a> respectively. The
! following discussion supplies the prefix rng which is mapped to the
! URI "http://www.relaxng.org/ns/structure/1.0".</p>
! <div class="div3">
! <h4><a name="import-relax" id="import-relax"></a>2.2.1 Importing
! RELAX NG</h4>
! <p>Importing a RELAX NG schema uses the rng:include mechanism
! defined by RNG, with restrictions on its syntax and semantics. A
! child <em>element information item</em> of the <code>types</code>
! <em>element information item</em> is defined with the Infoset
! properties as follows:</p>
! <ul>
! <li>
! <p>A [local name] of include.</p>
! </li>
! <li>
! <p>A [namespace name] of
! "http://www.relaxng.org/ns/structure/1.0".</p>
! </li>
! <li>
! <p>Two <em>attribute information item</em>s as follows:</p>
! <ul>
! <li>
! <p>A REQUIRED <code>ns</code> <em>attribute information item</em>
! as described below.</p>
! </li>
! <li>
! <p>An OPTIONAL <code>href</code> <em>attribute information
! item</em> as described below.</p>
! </li>
! <li>
! <p>Additional <em>attribute information item</em>s as defined by
! the RNG specification.</p>
! </li>
! </ul>
! </li>
! </ul>
! <p>Note that WSDL restricts the <code>rng:include</code>
! <em>element information item</em> to be empty. That is, it cannot
! redefine <code>rng:start</code> and <code>rng:define</code>
! <em>element information item</em>s; it may be used solely to import
! a schema.</p>
! <div class="div4">
! <h5><a name="relax-import-nsaii" id=
! "relax-import-nsaii"></a>2.2.1.1 <code>ns</code> <em>attribute
! information item</em></h5>
! <p>The <code>ns</code> <em>attribute information item</em> defines
! the namespace of the type and element definitions imported from the
! referenced schema. If the referenced schema contains an
! <code>ns</code> <em>attribute information item</em> on its
! <code>grammar</code> <em>element information item</em>, then the
! values of these two <em>attribute information item</em>s must be
! identical. If the imported grammar does not have an <code>ns</code>
! <em>attribute information item</em> then the namespace specified
! here is applied to all components of the schema as if it did
! contain such an <em>attribute information item</em>. The
! <code>ns</code> <em>attribute information item</em> contains the
! following Infoset properties:</p>
! <ul>
! <li>
! <p>A [local name] of ns.</p>
! </li>
! <li>
! <p>A [namespace name] which has no value.</p>
! </li>
! </ul>
! <p>The type of the <code>ns</code> <em>attribute information
! item</em> is <em>xs:anyURI</em>.</p>
! </div>
! <div class="div4">
! <h5><a name="relax-import-hrefaii" id=
! "relax-import-hrefaii"></a>2.2.1.2 <code>href</code> <em>attribute
! information item</em></h5>
! <p>The <code>href</code> <em>attribute information item</em> must
! be present, according to the rules of the RNG specification.
! However, WSDL allows it to be empty, and considers it only a hint.
! Caching and cataloging technologies may provide better information
! that this hint. The <code>href</code> <em>attribute information
! item</em> has the following Infoset properties:</p>
! <ul>
! <li>
! <p>A [local name] of href.</p>
! </li>
! <li>
! <p>A [namespace name] which has no value.</p>
! </li>
! </ul>
! <p>The type of the <code>href</code> <em>attribute information
! item</em> is <em>xs:anyURI</em>.</p>
! </div>
! </div>
! <div class="div3">
! <h4><a name="relax-embed" id="relax-embed"></a>2.2.2 Embedding
! RELAX NG</h4>
! <p>Embedding an RNG schema uses the existing top-level
! <code>rng:grammar</code> <em>element information item</em>. It may
! be viewed as simply cutting and pasting an existing, stand-alone
! schema to a location inside the <code>wsdl:types</code> <em>element
! information item</em>. The <code>rng:grammar</code> <em>element
! information item</em> has the following Infoset properties:</p>
! <ul>
! <li>
! <p>A [local name] of grammar.</p>
! </li>
! <li>
! <p>A [namespace name] of
! "http://www.relaxng.org/ns/structure/1.0".</p>
! </li>
! <li>
! <p>A REQUIRED <code>ns</code> <em>attribute information item</em>s
! as described below.</p>
! </li>
! <li>
! <p>Additional <em>attribute information item</em>s as specified for
! the <code>rng:grammar</code> <em>element information item</em> in
! the RNG specification.</p>
! </li>
! <li>
! <p>Child <em>element information item</em>s as specified for the
! <code>rng:grammar</code> <em>element information item</em> in the
! RNG specification.</p>
! </li>
! </ul>
! <div class="div4">
! <h5><a name="relax-embed-nsaii" id="relax-embed-nsaii"></a>2.2.2.1
! <code>ns</code> <em>attribute information item</em></h5>
! <p>The <code>ns</code> <em>attribute information item</em> defines
! the namespace of the type and element definitions embedded in this
! schema. WSDL modifies the RNG definition of the
! <code>rng:grammar</code> <em>element information item</em> to make
! this <em>attribute information item</em> required. The
! <code>ns</code> <em>attribute information item</em> has the
! following infoset properties:</p>
! <ul>
! <li>
! <p>A [local name] of ns.</p>
! </li>
! <li>
! <p>A [namespace name] which has no value.</p>
! </li>
! </ul>
! <p>The type of the <code>ns</code> <em>attribute information
! item</em> is <em>xs:anyURI</em>.</p>
! </div>
! </div>
! <div class="div3">
! <h4><a name="relax-ref" id="relax-ref"></a>2.2.3 References to
! Element Declarations</h4>
! <p>Whether embedded or imported, the element definitions present in
! a schema may be referenced from a Message Reference or Interface
! Fault component.</p>
! <p>A named rng:define definition MUST NOT be referenced from the
! Message Reference or Interface Fault components.</p>
! <p>A named Relax NG element declaration MAY be referenced from a
! Message Reference or Interface Fault component. The QName is
! constructed from the namespace (<code>ns</code> <em>attribute
! information item</em>) of the schema and the content of the
! <code>name</code> <em>attribute information item</em> of the
! <code>element</code> <em>element information item</em> An
! <code>element</code> <em>attribute information item</em> MUST NOT
! be used to refer to an <code>rng:define</code> <em>element
! information item</em>.</p>
! </div>
! </div>
! </div>
! </div>
! </body>
! </html>
--- 1 ----
! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html lang="en"><head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Discussion of Alternative Schema Languages and Type System Support in WSDL</title><style type="text/css">
code           { font-family: monospace; }

div.constraint,
div.issue,
div.note,
div.notice     { margin-left: 2em; }

dt.label       { display: run-in; }

li, p           { margin-top: 0.3em;
                 margin-bottom: 0.3em; }

.diff-chg	{ background-color: yellow; }
.diff-del	{ background-color: red; text-decoration: line-through;}
.diff-add	{ background-color: lime; }

table          { empty-cells: show; }

table caption {
	font-weight: normal;
	font-style: italic;
	text-align: left;
	margin-bottom: .5em;
}

div.issue {
  color: red;
}

div.exampleInner pre { margin-left: 1em;
                       margin-top: 0em; margin-bottom: 0em}
div.exampleOuter {border: 4px double gray;
                  margin: 0em; padding: 0em}
div.exampleInner { background-color: #d5dee3;
                   border-top-width: 4px;
                   border-top-style: double;
                   border-top-color: #d3d3d3;
                   border-bottom-width: 4px;
                   border-bottom-style: double;
                   border-bottom-color: #d3d3d3;
                   padding: 4px; margin: 0em }
div.exampleWrapper { margin: 4px }
div.exampleHeader { font-weight: bold;
                    margin: 4px}
</style><link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-NOTE.css"><link rel="contents" href="#contents"></head><body><div class="head"><p><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width="72"></a></p>
<h1>Discussion of Alternative Schema Languages and Type System Support in WSDL</h1>
<h2 id="h2-title">   </h2><dl><dt id="dt-this-version">This version:</dt><dd><a href="http://www.w3.org/TR/2004/WD-wsdl20-20040803">http://www.w3.org/TR/2005/@@</a></dd><dt>Latest version:</dt><dd></dd><dt>Previous versions:</dt><dd></dd><dt>Editors:</dt><dd>Amy Lewis, TIBCO</dd><dd>Bijan Parsia, Maryland Information and Network Dynamics Laboratory at the University
                    of Maryland at College Park</dd></dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> ©  <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p></div><hr><div>
<h2><a name="abstract">Abstract</a></h2><p></p></div><div>
<h2><a name="status">Status of this Document</a></h2><p><em>This section describes the status of this document at the time of its
                    publication. Other documents may supersede this document. A list of current W3C
                    publications and the latest revision of this technical report can be found in
                    the <a href="http://www.w3.org/TR/">W3C technical reports index</a> at
                    http://www.w3.org/TR/.</em></p></div><hr><div class="toc">
<h2><a name="shortcontents">Short Table of Contents</a></h2><p class="toc">1. <a href="#intro">Introduction</a><br>2. <a href="#multipleschemalangs">Issues facing multiple schema languages/type systems</a><br>3. <a href="#examples">Examples of Specifications of Extension Elements for Alternative Schema Language
                Support.</a><br></p></div><hr><div class="toc">
<h2><a name="contents">Table of Contents</a></h2><p class="toc">1. <a href="#intro">Introduction</a><br>2. <a href="#multipleschemalangs">Issues facing multiple schema languages/type systems</a><br>3. <a href="#examples">Examples of Specifications of Extension Elements for Alternative Schema Language
                Support.</a><br>    3.1 <a href="#dtd">DTD</a><br>        3.1.1 <a href="#dtd-namespaceaii">namespaceattribute information item</a><br>        3.1.2 <a href="#dtd-locationaii">locationattribute information item</a><br>        3.1.3 <a href="#dtd-ref">References to Element Definitions</a><br>    3.2 <a href="#relax">RELAX NG</a><br>        3.2.1 <a href="#import-relax">Importing RELAX NG</a><br>            3.2.1.1 <a href="#relax-import-nsaii">nsattribute information item</a><br>            3.2.1.2 <a href="#relax-import-hrefaii">hrefattribute information item</a><br>        3.2.2 <a href="#relax-embed">Embedding RELAX NG</a><br>            3.2.2.1 <a href="#relax-embed-nsaii">nsattribute information item</a><br>        3.2.3 <a href="#relax-ref">References to Element Declarations</a><br></p></div><hr><div class="body"><div class="div1">
<h2><a name="intro"></a>1. Introduction</h2><p>WSDL describes Web Service interaction in terms of exchanges of typed messages. WSDL
                2.0: Part 1 only provides general support for type systems based on the XML infoset
                    [<a href="http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20.html?content-type=text/html;%20charset=utf-8#XMLInfoSet">XML Information Set</a>.]. and specific support for the W3C XML Schema
                Description Language. Describing messages with WSDL using schema languages other
                than XML Schema or non-XML infoset type systems requires extending the WSDL
                component model. While the WSDL working group has not defined any such extensions,
                there were discussions in the working group about how those extensions might be
                defined and used. This document is the result of those disucussions and captures
                part of the working group's thinking about schema language and type system
                extensibilty at the time of its publication.</p></div><div class="div1">
<h2><a name="multipleschemalangs"></a>2. Issues facing multiple schema languages/type systems</h2><p>Without the use of an extension, a WSDL document can only use a single 
        type system, XML Schema. If extensions are defined to support 
        alternative schema languages or non-XML type systems, then issues 
        regarding the <em>mixing</em> of type systems in a single document arise. Part 
        1 does <em>not</em> define the behavior of mixed type system documents, so it 
        is incumbent on extension authors to do so.</p><p>For example, suppose a WSDL author used a extension supporting Relax NG 
        along side the native support for XML Schema. Further suppose that 
        there is an element component which has a definition in both the 
        referenced XML Schema and Relax NG schema. There are several 
        possibilities for interpreting such a document:</p><ul><li><p>Multiple definitions in distinct type systems is always an error</p></li><li><p>Multiple definitions must be in some sense equivalent, for example, 
        if XML Schema type and an Relax NG production validate exactly the same 
        set of Infoset fragments, otherwise, an error</p></li><li><p>Multiple definitions are legal, and are interpreted as a union type 
            constraint</p></li></ul><p>The last interpretation suggests a further general possibility: being 
                able to define a union type (or other compound type) that spans 
                distinct type systems (and, to further generalize, where the unioned types had 
            distinct QName identifiers). The <a href="http://www.w3.org/2001/sw/DataAccess/">Data Access Working Group</a>
                had a use case wherein their return message could either be in 
            <a href="http://www.w3.org/TR/rdf-syntax-grammar/">RDF/XML</a>, which 
                cannot have an interesting XML Schema but does have an interesting 
            Relax NG schema, and their <a href="http://www.w3.org/TR/rdf-sparql-XMLres/">other results format</a>, which they 
            would prefer to 
                specify with an XML Schema. This example is little artificial, as the 
                Data Access Working Group could easily describe the entire results 
                format in Relax NG.</p><p>The first interpretation is most in the spirit of WSDL and was strongly
        preferred by the working group.  Since WSDL extensibility points are generally
        quite unrestricted, the group did not try to enforce the first option, but
        the general belief of the group was that the other options were confusing
        and unwise.</p></div><div class="div1">
<h2><a name="examples"></a>3. Examples of Specifications of Extension Elements for Alternative Schema Language
                Support.</h2><div class="div2">
<h3><a name="dtd"></a>3.1 DTD</h3><p>A DTD may be used as the schema language for WSDL. It may not be embedded; it
                    must be imported. A namespace must be assigned. DTD types appear in the {element
                    declarations} property of &lt;specref ref="Definitions_details"/&gt; and may be
                    referenced from the <code>wsdl:input</code> , <code>wsdl:output</code>  and
                    <code>wsdl:fault</code>  elements using the <code>element</code> <em>attribute information item</em>.</p><p> The prefix, dtd, used throughout the following is mapped to the namespace URI
                        "http://www.example.org/dtd/".</p><p> The <code>dtd:import</code> <em>element information item</em> references an external Document Type
                    Definition, and has the following infoset properties:</p><ul><li><p>A [local name] of import.</p></li><li><p>A [namespace name] of "http://www.example.org/dtd".</p></li><li><p>One or two <em>attribute information item</em>s, as follows:</p><ul><li><p>A REQUIRED <code>namespace</code> <em>attribute information item</em> as described below.</p></li><li><p>An OPTIONAL <code>location</code> <em>attribute information item</em> as described below.</p></li></ul></li></ul><div class="div3">
<h4><a name="dtd-namespaceaii"></a>3.1.1 <code>namespace</code> <em>attribute information item</em></h4><p>The <code>namespace</code> <em>attribute information item</em> sets the namespace to be used with
                        all imported element definitions described in the DTD. It has the following
                        infoset properties:</p><ul><li><p>A [local name] of namespace.</p></li><li><p>A [namespace name] which has no value.</p></li></ul><p>The type of the <code>namespace</code> <em>attribute information item</em> is <em>xs:anyURI</em>.</p><p>The WSDL author should ensure that a prefix is associated with the namespace
                        at the proper scope (probably document scope).</p></div><div class="div3">
<h4><a name="dtd-locationaii"></a>3.1.2 <code>location</code> <em>attribute information item</em></h4><p>The <code>location</code> <em>attribute information item</em>, if present, provides a hint to the
                        processor as to where the DTD may be located. Caching and cataloging
                        technologies may provide better information than this hint. The
                            <code>location</code> <em>attribute information item</em> has the following infoset
                        properties:</p><ul><li><p>A [local name] of location.</p></li><li><p>A [namespace name] which has no value.</p></li></ul><p>The type of the <code>location</code> <em>attribute information item</em> is <em>xs:anyURI</em>.</p></div><div class="div3">
<h4><a name="dtd-ref"></a>3.1.3 References to Element Definitions</h4><p> The <code>element</code> <em>attribute information item</em> MUST be used when referring to an
                        element definition (&lt;!ELEMENT&gt;) from a Message Reference
                        component; referring to an element definition from a Interface Fault
                        component is similar. The value of the element definition MUST correspond to
                        the content of the <code>namespace</code> <em>attribute information item</em> of the <code>dtd:import</code> <em>element information item</em>. The local name part must correspond
                        to an element defined in the DTD. </p><p> Note that this pattern does not attempt to make DTDs namespace-aware. It
                        applies namespaces externally, in the import phase.</p></div></div><div class="div2">
<h3><a name="relax"></a>3.2 RELAX NG</h3><p>A RELAX NG schema may be used as the schema language for WSDL. It may be embedded
                    or imported; import is preferred. A namespace must be specified; if an imported
                    schema specifies one, then the [actual value] of the <code>namespace</code> <em>attribute information item</em> in the <code>import</code> <em>element information item</em> must match the specified namespace. RELAX
                    NG provides both type definitions and element declarations, the latter appears
                    in the {element declarations} property of &lt;specref ref="Definitions_details"/&gt;
                    respectively. The following discussion supplies the prefix rng which is mapped
                    to the URI "http://www.relaxng.org/ns/structure/1.0".</p><div class="div3">
<h4><a name="import-relax"></a>3.2.1 Importing RELAX NG</h4><p> Importing a RELAX NG schema uses the rng:include mechanism defined by RNG,
                        with restrictions on its syntax and semantics. A child <em>element
                            information item</em> of the <code>types</code> <em>element information item</em> is defined with the Infoset properties
                        as follows:</p><ul><li><p>A [local name] of include.</p></li><li><p>A [namespace name] of "http://www.relaxng.org/ns/structure/1.0".</p></li><li><p>Two <em>attribute information item</em>s as follows:</p><ul><li><p>A REQUIRED <code>ns</code> <em>attribute information item</em> as described
                                    below.</p></li><li><p>An OPTIONAL <code>href</code> <em>attribute information item</em> as described
                                    below.</p></li><li><p>Additional <em>attribute information item</em>s as
                                        defined by the RNG specification.</p></li></ul></li></ul><p> Note that WSDL restricts the <code>rng:include</code> <em>element information item</em> to be empty. That is, it cannot
                        redefine <code>rng:start</code>  and <code>rng:define</code> <em>element information item</em>s; it may be used solely to import a
                        schema.</p><div class="div4">
<h5><a name="relax-import-nsaii"></a>3.2.1.1 <code>ns</code> <em>attribute information item</em></h5><p>The <code>ns</code> <em>attribute information item</em> defines the namespace of the
                            type and element definitions imported from the referenced schema. If the
                            referenced schema contains an <code>ns</code> <em>attribute information item</em> on its <code>grammar</code> <em>element information item</em>, then the values of these two
                                <em>attribute information item</em>s must be identical. If the
                            imported grammar does not have an <code>ns</code> <em>attribute information item</em> then the namespace specified
                            here is applied to all components of the schema as if it did contain
                            such an <em>attribute information item</em>. The <code>ns</code> <em>attribute information item</em> contains the following Infoset
                            properties:</p><ul><li><p>A [local name] of ns.</p></li><li><p>A [namespace name] which has no value.</p></li></ul><p>The type of the <code>ns</code> <em>attribute information item</em> is <em>xs:anyURI</em>.</p></div><div class="div4">
<h5><a name="relax-import-hrefaii"></a>3.2.1.2 <code>href</code> <em>attribute information item</em></h5><p> The <code>href</code> <em>attribute information item</em> must be present, according to
                            the rules of the RNG specification. However, WSDL allows it to be empty,
                            and considers it only a hint. Caching and cataloging technologies may
                            provide better information that this hint. The <code>href</code> <em>attribute information item</em> has the following Infoset
                            properties:</p><ul><li><p>A [local name] of href.</p></li><li><p>A [namespace name] which has no value.</p></li></ul><p>The type of the <code>href</code> <em>attribute information item</em> is <em>xs:anyURI</em>.</p></div></div><div class="div3">
<h4><a name="relax-embed"></a>3.2.2 Embedding RELAX NG</h4><p> Embedding an RNG schema uses the existing top-level <code>rng:grammar</code> <em>element information item</em>. It may be viewed as simply cutting
                        and pasting an existing, stand-alone schema to a location inside the
                            <code>wsdl:types</code> <em>element information item</em>. The <code>rng:grammar</code> <em>element information item</em> has the following Infoset properties:</p><ul><li><p>A [local name] of grammar.</p></li><li><p>A [namespace name] of "http://www.relaxng.org/ns/structure/1.0".</p></li><li><p>A REQUIRED <code>ns</code> <em>attribute information item</em>s as described below.</p></li><li><p>Additional <em>attribute information item</em>s as specified for
                                the <code>rng:grammar</code> <em>element information item</em> in the RNG specification.</p></li><li><p>Child <em>element information item</em>s as specified for the
                                    <code>rng:grammar</code> <em>element information item</em> in the RNG specification.</p></li></ul><div class="div4">
<h5><a name="relax-embed-nsaii"></a>3.2.2.1 <code>ns</code> <em>attribute information item</em></h5><p> The <code>ns</code> <em>attribute information item</em> defines the namespace of the
                            type and element definitions embedded in this schema. WSDL modifies the
                            RNG definition of the <code>rng:grammar</code> <em>element information item</em> to make this <em>attribute
                                information item</em> required. The <code>ns</code> <em>attribute information item</em> has the following infoset
                            properties:</p><ul><li><p>A [local name] of ns.</p></li><li><p>A [namespace name] which has no value.</p></li></ul><p>The type of the <code>ns</code> <em>attribute information item</em> is <em>xs:anyURI</em>.</p></div></div><div class="div3">
<h4><a name="relax-ref"></a>3.2.3 References to Element Declarations</h4><p>Whether embedded or imported, the element definitions present in a schema may
                        be referenced from a Message Reference or Interface Fault component.</p><p> A named rng:define definition MUST NOT be referenced from the Message
                        Reference or Interface Fault components. </p><p> A named Relax NG element declaration MAY be referenced from a Message
                        Reference or Interface Fault component. The QName is constructed from the
                        namespace (<code>ns</code> <em>attribute information item</em>) of the schema and the content of
                        the <code>name</code> <em>attribute information item</em> of the <code>element</code> <em>element information item</em> An <code>element</code> <em>attribute information item</em> MUST NOT be used to refer to an
                            <code>rng:define</code> <em>element information item</em>. </p></div></div></div></div></body></html>
\ No newline at end of file

Received on Wednesday, 20 July 2005 15:22:37 UTC