2002/ws/desc/wsdl20 wsdl20-primer.xml,1.23,1.24 wsdl20-primer.html,1.11,1.12

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

Modified Files:
	wsdl20-primer.xml wsdl20-primer.html 
Log Message:
Numerous small editorial fixes.



Index: wsdl20-primer.xml
===================================================================
RCS file: /sources/public/2002/ws/desc/wsdl20/wsdl20-primer.xml,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** wsdl20-primer.xml	16 Dec 2004 17:43:05 -0000	1.23
--- wsdl20-primer.xml	20 Dec 2004 07:32:09 -0000	1.24
***************
*** 39,44 ****
  		</authlist>
  		<abstract id="Abstract">
! 			<p>This document introduces the Web Services Description Language, version 2.0 (WSDL 2.0). It is intended as a companion to the official WSDL 2.0 specification,  for readers who wish to have an easier, less technical introduction to the main features of the language. </p><p>This primer is only intended to be a starting point toward use of WSDL 2.0, and hence does not describe every feature of the language.   Users are expected to consult the WSDL 2.0 specification if they wish to make use of more sophisticated features or techniques.</p>
! 			<p>Finally, this primer is <emph>non-normative</emph>.  Any specific questions of what WSDL 2.0 requires or forbids should be referred to the WSDL 2.0 specification (@@reference@@). </p>
  		</abstract>
      &status;
--- 39,44 ----
  		</authlist>
  		<abstract id="Abstract">
! 			<p>This document is a companion to the WSDL 2.0 specification (<emph>Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language</emph> <bibref ref="WSDL-PART1"/>, <emph>Web Services Description Language (WSDL) Version 2.0 Part 2: Predefined Extensions</emph> <bibref ref="WSDL-PART2"/>, <emph>Web Services Description Language (WSDL) Version 2.0 Part 3: Bindings</emph> <bibref ref="WSDL-PART3"/>).  It is intended for readers who wish to have an easier, less technical introduction to the main features of the language.   </p><p>This primer is only intended to be a starting point toward use of WSDL 2.0, and hence does not describe every feature of the language.   Users are expected to consult the WSDL 2.0 specification if they wish to make use of more sophisticated features or techniques.</p>
! 			<p>Finally, this primer is <emph>non-normative</emph>.  Any specific questions of what WSDL 2.0 requires or forbids should be referred to the WSDL 2.0 specification. </p>
  		</abstract>
      &status;
***************
*** 55,62 ****
  		<div1 id="Introduction">
  			<head>Introduction</head>
! 			<p>@@ Make spec references point to editor's versions @@</p><p>@@ Validate examples @@</p><p>@@ Mention lack of sync in the Status section @@</p><div2 id="Prerequisites"><head>Prerequisites</head>
  			<p>This primer assumes that the reader has the following prerequisite knowledge:
! 			<ulist><item><p> familiarity with XML (@@reference@@) and  XML Namespaces (@@reference@@);</p></item><item><p>some familiarity with XML Schema (@@reference@@);</p></item>
! 			<item><p> familiarity with basic Web services concepts such as Web service, client, and the purpose and function of a  Web service description.  (For an explanation of basic Web services concepts, see  <xspecref href="http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/#whatis">Section 1.4</xspecref> of <xspecref href="http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/">Web services architecture</xspecref> and its <xspecref href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/">glossary</xspecref>.   However, note that that document uses the slightly more precise terms "<xspecref href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#requesteragent">requester agent</xspecref>" and "<xspecref href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#provideragent">provider agent</xspecref>" instead of the terms "client" and "Web service" used in this primer.)</p>
  			</item>
  			</ulist>
--- 55,62 ----
  		<div1 id="Introduction">
  			<head>Introduction</head>
! 			<p>@@ Validate examples @@</p><div2 id="Prerequisites"><head>Prerequisites</head>
  			<p>This primer assumes that the reader has the following prerequisite knowledge:
! 			<ulist><item><p> familiarity with XML (<emph>Extensible Markup Language (XML) 1.0 (Second Edition)</emph> <bibref ref="XML"/>, <emph>XML Information Set</emph> <bibref ref="XMLInfoSet"/>) and  XML Namespaces (<emph>Namespaces in XML</emph> <bibref ref="XMLNS"/>);</p></item><item><p>some familiarity with XML Schema (<emph>XML Schema Part 1: Structures</emph>  <bibref ref="XMLSchemaP1"/>  <emph>XML Schema Part 2: Datatypes</emph> <bibref ref="XMLSchemaP2"/>);</p></item>
! 			<item><p> familiarity with basic Web services concepts such as Web service, client, and the purpose and function of a  Web service description.  (For an explanation of basic Web services concepts, see   <emph>Web Services Architecture</emph> <bibref ref="wsarch"/>  <xspecref href="http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/#whatis">Section 1.4</xspecref> and <emph>Web Services Glossary</emph> <bibref ref="WSAGLOSS"/> <xspecref href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/">glossary</xspecref>.   However, note the <emph>Web Services Architecture</emph>  document uses the slightly more precise terms "<xspecref href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#requesteragent">requester agent</xspecref>" and "<xspecref href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#provideragent">provider agent</xspecref>" instead of the terms "client" and "Web service" used in this primer.)</p>
  			</item>
  			</ulist>
***************
*** 67,71 ****
  				
  				
! 				<p>Section 2 presents a hypothetical use case involving a hotel reservation service.  It then proceeds step-by-step through the development of a simple example WSDL 2.0 document that describes this service:<ulist><item><p>The   <code>&lt;types&gt;</code>  element describes the kinds of messages that the service will send and receive.  </p></item><item><p>The <code>&lt;interface&gt;</code> element describes <emph>what</emph>  abstract functionality the Web service provides.   </p></item><item><p>The <code>&lt;binding&gt;</code> element describes <emph>how</emph> to access the service. </p></item><item><p>The <code>&lt;service&gt;</code> element describes <emph>where</emph> to access the service.</p></item></ulist></p>
  				<p>Section 3 gives more information on defining message types.</p><p>Section 4 gives more information on interfaces.</p><p>Section 5 gives more information on bindings.</p><p>Section 6 gives more information on defining services.</p>
  				
--- 67,71 ----
  				
  				
! 				<p>Section 2 presents a hypothetical use case involving a hotel reservation service.  It then proceeds step-by-step through the development of a simple example WSDL 2.0 document that describes this service:<ulist><item><p>The   <el>types</el>  element describes the kinds of messages that the service will send and receive.  </p></item><item><p>The <el>interface</el> element describes <emph>what</emph>  abstract functionality the Web service provides.   </p></item><item><p>The <el>binding</el> element describes <emph>how</emph> to access the service. </p></item><item><p>The <el>service</el> element describes <emph>where</emph> to access the service.</p></item></ulist></p>
  				<p>Section 3 gives more information on defining message types.</p><p>Section 4 gives more information on interfaces.</p><p>Section 5 gives more information on bindings.</p><p>Section 6 gives more information on defining services.</p>
  				
***************
*** 173,182 ****
  </description>
  ]]></eg>
! 				</example></div2><div2 id="basics-getting-started"><head>Getting Started: Defining a targetNamespace</head><p>Before writing our WSDL 2.0 document, we need to decide on a <emph>targetNamespace</emph> URI for it.  The targetNamespace in WSDL 2.0 is analogous to a targetNamespace in XML Schema: interface, binding and service names that we define in our WSDL document will be associated with this targetNamespace, and thus will be distinguishable from similar names in a different targetNamespace.  (This will become important if you use WSDL 2.0's import or interface inheritance mechanisms.)  </p><p>The value of the targetNamespace MUST be an absolute URI.  Furthermore, it SHOULD be dereferenceable to a WSDL document that describes the Web service that the targetNamespace is used to describe, i.e., the GreatH owners SHOULD make the WSDL document available from this URI.  (And if a WSDL description is split into multiple documents, then the targetNamespace should resolve to a master document that includes al the WSDL documents needed for that service description.)  However, there is no absolute requirement for this URI to be dereferenceable; thus a WSDL processor must not depend on it being dereferenceable.  </p><p>This recommendation may sound circular, but bear in mind that the client might have obtained the WSDL document from anywhere -- not necessarily an authoritative source.  But by dereferencing the targetNamespace URI, a user  SHOULD be able to obtain an authoritative version.  Since GreatH will be the owner of the service, the targetNamespace URI should refer to a location on  the GreatH Web site or otherwise within its control.</p><p>Once we have decided on a targetNamespace URI, we can begin our WSDL 2.0 document as the following empty shell.</p><example id="example-empty-shell">
  					<head>An Initial Empty WSDL Document</head>
  					<eg><![CDATA[<?xml version="1.0" encoding="utf-8" ?> 
  <description 
      xmlns="http://www.w3.org/2004/08/wsdl"
!     targetNamespace= "http://greath.example.com/2004/wsdl/resSvc.wsdl" 
      xmlns:tns= "http://greath.example.com/2004/wsdl/resSvc.wsdl"
      . . . >
--- 173,182 ----
  </description>
  ]]></eg>
! 				</example></div2><div2 id="basics-getting-started"><head>Getting Started: Defining a WSDL Target Namespace</head><p>Before writing our WSDL 2.0 document, we need to decide on a <emph>WSDL target namespace</emph> URI for it.  The WSDL target namespace is analogous to an XML Schema target namespace: interface, binding and service names that we define in our WSDL document will be associated with the WSDL target namespace, and thus will be distinguishable from similar names in a different WSDL target namespace.  (This will become important if using WSDL 2.0's import or interface inheritance mechanisms.)  </p><p>The value of the  WSDL  target namespace MUST be an absolute URI.  Furthermore, it SHOULD be dereferenceable to a WSDL document that describes the Web service that the WSDL target namespace is used to describe.  For example, the GreatH owners SHOULD make the WSDL document available from this URI.  (And if a WSDL description is split into multiple documents, then the WSDL target namespace should reslve to a master document that includes all the WSDL documents needed for that service description.)  However, there is no absolute requirement for this URI to be dereferenceable; thus a WSDL processor must not depend on it being dereferenceable.  </p><p>This recommendation may sound circular, but bear in mind that the client might have obtained the WSDL document from anywhere -- not necessarily an authoritative source.  But by dereferencing the WSDL target namespace URI, a user  SHOULD be able to obtain an authoritative version.  Since GreatH will be the owner of the service, the WSDL target namespace URI should refer to a location on  the GreatH Web site or otherwise within its control.</p><p>Once we have decided on a WSDL target namespace URI, we can begin our WSDL 2.0 document as the following empty shell.</p><example id="example-empty-shell">
  					<head>An Initial Empty WSDL Document</head>
  					<eg><![CDATA[<?xml version="1.0" encoding="utf-8" ?> 
  <description 
      xmlns="http://www.w3.org/2004/08/wsdl"
!     target namespace= "http://greath.example.com/2004/wsdl/resSvc.wsdl" 
      xmlns:tns= "http://greath.example.com/2004/wsdl/resSvc.wsdl"
      . . . >
***************
*** 184,188 ****
  
  </description>]]></eg>
! 				</example><div3 id="example-empty-shell-explanation"><head>Explanation of Example</head><p><glist><gitem><label><code>&lt;description</code></label><def><p>Every WSDL 2.0 document has a <code>&lt;description&gt;</code> element as its top-most element.  This merely acts as a container for the rest of the WSDL 2.0 document, and is used to declare namespaces that will be used throughout the document.</p></def></gitem><gitem><label><code>xmlns="http://www.w3.org/2004/08/wsdl"</code></label><def><p>This is the  XML namespace for WSDL 2.0 itself.  Because we have not defined a prefix for it, any unprefixed elements or attributes are expected to be WSDL 2.0 elements or attributes (such as the <code>&lt;description&gt;</code> element).</p></def></gitem><gitem><label><code>targetNamespace= "http://greath.example.com/2004/wsdl/resSvc.wsdl"</code></label><def><p>This defines the <code>targetNamespace</code> that we have chosen for the GreatH reservation service, as described above.  Note that this is not an actul XML namespace declaration.  Rather, it is a WSDL 2.0 attribute whose purpose is <emph>analogous</emph> to a targetNamespace in XML Schema.</p></def></gitem><gitem><label><code>xmlns:tns= "http://greath.example.com/2004/wsdl/resSvc.wsdl"</code></label><def><p>This is an actual XML namespace declaration for use in our GreatH service description.  Note that this is the same URI that was specified above for the <code>targetNamespace</code>.   This will allow us later to use the  <code>tns:</code>   prefix in <xspecref href="@@xml-schema#qname@@">qnames</xspecref>, to refer to the targetNamespace of the GreatH service.  </p></def></gitem></glist></p><p>  Now  we can start describing the GreatH service. </p></div3></div2><div2 id="basics-types"><head>Defining Message Types</head><p>We know that the GreatH service will be sending and receiving messages, so a good starting point in describing the service is to define the message types that the service will use.  We'll use XML Schema to do so, because WSDL 2.0 reqires all conformant WSDL processors to support XML Schema at a minimum.  However, WSDL 2.0 does not prohibit the use of some other schema definition language.</p><p>WSDL 2.0 allows message types to be defined directly within the WSDL document, inside the <code>&lt;types&gt;</code> element, which is a child of the <code>&lt;description&gt;</code> element.   (Later we'll see how we can provide the type definitions in a separate document, using XML Schema's <code>&lt;import&gt;</code> mechanism.)    The following schema defines checkAvailability, checkAvailabilityResponse and invalidDataError message types that we'll need.  </p><p>In WSDL 2.0, all normal and fault message types must be defined as single <emph>elements</emph> at the topmost level (though of course each element may have any amount of substructure inside it).  Thus, a message type must not directly consist of a sequence of elements or other complex type.  </p><example id="example-initial-types">
  					<head>GreatH Message Types</head>
  					<ednote><name>dbooth</name><edtext>Not sure  the namespace declarations and prefixes in  this schema declaration are correct.      In particular, need to check:         xmlns:xs="http://www.w3.org/2001/XMLSchema"
--- 184,188 ----
  
  </description>]]></eg>
! 				</example><div3 id="example-empty-shell-explanation"><head>Explanation of Example</head><p><glist><gitem><label><code>&lt;description</code></label><def><p>Every WSDL 2.0 document has a <el>description</el> element as its top-most element.  This merely acts as a container for the rest of the WSDL 2.0 document, and is used to declare namespaces that will be used throughout the document.</p></def></gitem><gitem><label><code>xmlns="http://www.w3.org/2004/08/wsdl"</code></label><def><p>This is the  XML namespace for WSDL 2.0 itself.  Because we have not defined a prefix for it, any unprefixed elements or attributes are expected to be WSDL 2.0 elements or attributes (such as the <el>description</el> element).</p></def></gitem><gitem><label><code>targetNamespace= "http://greath.example.com/2004/wsdl/resSvc.wsdl"</code></label><def><p>This defines the WSDL target namespace that we have chosen for the GreatH reservation service, as described above.  Note that this is not an actual XML namespace declaration.  ather, it is a WSDL 2.0 attribute whose purpose is <emph>analogous</emph> to an XML Schema target namespace.</p></def></gitem><gitem><label><code>xmlns:tns= "http://greath.example.com/2004/wsdl/resSvc.wsdl"</code></label><def><p>This is an actual XML namespace declaration for use in our GreatH service description.  Note that this is the same URI that was specified above as the value of  the <att>targetNamespace</att> attribute.   This will allow us later to use the  <code>tns:</code>   prefix in <xspecref href="@@xml-schema#qname@@">qnames</xspecref>, to refer to the WSDL target namespace of the GreatH service.  </p></def></gitem></glist></p><p>  Now  we can start describing the GreatH service. </p></div3></div2><div2 id="basics-types"><head>Defining Message Types</head><p>We know that the GreatH service will be sending and receiving messages, so a good starting point in describing the service is to define the message types that the service will use.  We'll use XML Schema to do so, because WSDL 2.0 requiresall conformant WSDL processors to support XML Schema at a minimum.  However, WSDL 2.0 does not prohibit the use of some other schema definition language.</p><p>WSDL 2.0 allows message types to be defined directly within the WSDL document, inside the <el>types</el> element, which is a child of the <el>description</el> element.   (Later we'll see how we can provide the type definitions in a separate document, using XML Schema's <el>import</el> mechanism.)    The following schema defines checkAvailability, checkAvailabilityResponse and invalidDataError message types that we'll need.  </p><p>In WSDL 2.0, all normal and fault message types must be defined as single <emph>elements</emph> at the topmost level (though of course each element may have any amount of substructure inside it).  Thus, a message type must not directly consist of a sequence of elements or other complex type.  </p><example id="example-initial-types">
  					<head>GreatH Message Types</head>
  					<ednote><name>dbooth</name><edtext>Not sure  the namespace declarations and prefixes in  this schema declaration are correct.      In particular, need to check:         xmlns:xs="http://www.w3.org/2001/XMLSchema"
***************
*** 219,223 ****
    . . .
  </description>]]></eg>
! 				</example><div3 id="example-initial-types-explanation"><head>Explanation of Example</head><glist><gitem><label><code>xmlns:ghns = "http://greath.example.com/2004/schemas/resSvc.xsd"</code></label><def><p>We've added another namespace declaration.  The <code>ghns</code> namespace prefix will allow us (later, when defining an interface) to reference the targetNamespace that we define for our message types.  Thus, the URI we specify must be the same as the URI  that we define as the targetNamespace of our XML Schema types (below) -- <emph>not</emph> the targetNamespace of the WSDL document itself.</p></def></gitem><gitem><label><code>targetNamespace="http://greath.example.com/2004/schemas/resSvc.xsd"</code></label><def><p>This is the XML Schema targetNamespace that we've created for  use by the GreatH reservation service.  The <code>checkAvailability</code>, <code>checkAvailability</code> and <code>invalidDataError</code> element names will be associated with this targetNamespace.</p></def></gitem><gitem<label><code>checkAvailability</code>, <code>checkAvailabilityResponse</code> and <code>invalidDataError</code></label><def><p>These are the message types that we'll use.  Note that these are defined to be XML <emph>elements</emph>, as explained above.</p></def></gitem></glist><p>Although we have defined several types, we have not yet indicated which ones are to be used as message types for a Web service.  We'll do that in the next section.  </p></div3></div2><div2 id="basics-interface"><head>Defining an Interface</head><p>WSDL 2.0 enables you to separate the description of a Web service's abstract functionality from the concrete details of how and where that functionality is offered.    This separation facilitates different levels of reusability and distribution of work in the lifecycle of a Web service and the WSDL document that describes it. </p><p>A WSDL 2.0 <code>&lt;interface&gt;</code> defines the abstract interface of a Web service as a set of abstract <emph>operations</emph>, each operation represeting a simple interaction between the client and the service.  Each operation specifies the types of messages that the service can send or receive as part of that operation.  Each operation also specifies a message exchange <emph>pattern</emph> that indicates the sequence in which the associated messages are to be transmitted between the parties.   For example, the <xspecref href="@@part2#in-out@@">in-out</xspecref> pattern indicates that if the client sends a message <emph>in</emph> to the service, the service will either send a reply message back <emph>out</emph> to the client (in the normal case) or it will send a fault message back to the client (in the case of an error).</p><p>For the GreatH service, we will (initially) define an interface containing a single operation, <code>opCheckAvailability</code>, using  the <code>checkAvailability</code> and <code>checkAvailabilityResponse</code> message types that we defined in the <code>&lt;types&gt;</code> section.   We'll use the <xspecref href="@@part2#in-ot@@">in-out</xspecref> pattern for this operation, because this is the most natural way to represent a simple request-response interaction.  We could have instead defined two separate operations using the <xspecref href="@@part2#in-only@@">in-only</xspecref> and <xspecref href="@@part2#out-only@@">out-only</xspecref> patterns (for example), but that would just complicate matters for the client, because we would then have to separately indicate to the client developer that the two operations should be used together as a request-response pair.</p><p>In addition to the normal input and output messages, we also need to specify the fault message that we wish to use in the event of an error.  WSDL 2.0 permits fault messages to be declared within the <code>&lt;interface&gt;</code> element in order to facilitate reuse of faults across operations.   If a fault occurs, it terminates whatever message sequence was indicated by the message exchange pattern of the operation.  </p><p>Let's add these to our WSDL document.<p><example id="example-initial-interface">
  					<head>GreatH Interface Definition</head>
  					
--- 219,223 ----
    . . .
  </description>]]></eg>
! 				</example><div3 id="example-initial-types-explanation"><head>Explanation of Example</head><glist><gitem><label><code>xmlns:ghns = "http://greath.example.com/2004/schemas/resSvc.xsd"</code></label><def><p>We've added another namespace declaration.  The <code>ghns</code> namespace prefix will allow us (later, when defining an interface) to reference the XML Schema target namespace that we define for our message types.  Thus, the URI we specify must be the same as the URI  that we define as the target namespace of our XML Schema types (below) -- <emph>not</emph> the target namespace of the WSDL document itself.</p></def></gitem><gitem><label><code>targetNamespace="http://greath.example.com/2004/schemas/resSvc.xsd"</code></label><def><p>This is the XML Schema target namespace that we've created for  use by the GreatH reservation service.  The <code>checkAvailability</code>, <code>checkAvailability</code> and <code>invalidDataError</code> element names will be associated with this XML Schema target namespae.</p></def></gitem><gitem><label><code>checkAvailability</code>, <code>checkAvailabilityResponse</code> and <code>invalidDataError</code></label><def><p>These are the message types that we'll use.  Note that these are defined to be XML <emph>elements</emph>, as explained above.</p></def></gitem></glist><p>Although we have defined several types, we have not yet indicated which ones are to be used as message types for a Web service.  We'll do that in the next section.  </p></div3></div2><div2 id="basics-interface"><head>Defining an Interface</head><p>WSDL 2.0 enables one to separate the description of a Web service's abstract functionality from the concrete details of how and where that functionality is offered.    This separation facilitates different levels of reusability and distribution of work in the lifecycle of a Web service and the WSDL document that describes it. </p><p>A WSDL 2.0 <el>interface</el> defines the abstract interface of a Web service as a set of abstract <emph>operations</emph>, each opration representing a simple interaction between the client and the service.  Each operation specifies the types of messages that the service can send or receive as part of that operation.  Each operation also specifies a message exchange <emph>pattern</emph> that indicates the sequence in which the associated messages are to be transmitted between the parties.   For example, the <xspecref href="@@part2#in-out@@">in-out</xspecref> pattern indicates that if the client sends a message <emph>in</emph> to the service, the service will either send a reply message back <emph>out</emph> to the client (in the normal case) or it will send a fault message back to the client (in the case of an error).</p><p>For the GreatH service, we will (initially) define an interface containing a single operation, <code>opCheckAvailability</code>, using  the <code>checkAvailability</code> and <code>checkAvailabilityResponse</code> message types that we defined in the <el>types</el> section.   We'll use the <xspecref href="@@part2#i-out@@">in-out</xspecref> pattern for this operation, because this is the most natural way to represent a simple request-response interaction.  We could have instead defined two separate operations using the <xspecref href="@@part2#in-only@@">in-only</xspecref> and <xspecref href="@@part2#out-only@@">out-only</xspecref> patterns (for example), but that would just complicate matters for the client, because we would then have to separately indicate to the client developer that the two operations should be used together as a request-response pair.</p><p>In addition to the normal input and output messages, we also need to specify the fault message that we wish to use in the event of an error.  WSDL 2.0 permits fault messages to be declared within the <el>interface</el> element in order to facilitate reuse of faults across operations.   If a fault occurs, it terminates whatever message sequence was indicated by the message exchange pattern of the operation.  </p><p>Let's add these to our WSDL document.</p><exampe id="example-initial-interface">
  					<head>GreatH Interface Definition</head>
  					
***************
*** 262,270 ****
    </interface>
    . . .
! </description>]]></eg></example><div3 id="example-initial-interface-explanation"><head>Explanation of Example</head><glist><gitem><label><code>&lt;interface  name = "reservationInterface" &gt;</code></label><def><p>Interfaces are declared directly inside the <el>&lt;description&gt;</el> element.  In this example, we are declaring only one interface, but in general a WSDL document may declare more than one interface (each one for use with a different service).  Thus, each interface must be given a name that is unique within the set of interfaces defined in this targetNamespace.   Interface names are tokens that must not contain a space or colon (":").</p></def></gitem><gitem><label><code>&lt;fault name = "invalidDataFault"
!             </code></label><def><p>The <code>name</code> attribute defines a name for this fault.  The name is required so that when an operation is defined, it can reference the desired fault by name.  Fault names must unique within an interface.</p></def></gitem><gitem><label><code>element = "ghns:invalidDataError"/&gt;</code></label><def><p>The <code>element</code> attribute specifies the schema type of the fault message, as previously defined in the <code>&lt;types&gt;</code> section.   </p></def></gitem><gitem><label><code>&lt;operation name="opCheckAvailability"</code></label><def><p>The <code>name</code> attribute defines a name for this operation, so that it can be referenced later when bindings are defined.  Operation names must also be unique within an interface.  (WSDL 2.0 uses separate symbol spaces for operation and fault names, so operation name "foo" is distinct from fault name "foo".)</p></def></gitem><gitem><label><code>pattern="http://www.w3.org/2004/03/wsdl/in-out" &gt;</code></label><df><p>This line specifies that this operation will use the <xspecref href="@@part2#in-out@@">in-out</xspecref> pattern defined in <xspecref href="@@part2@@">WSDL 2.0 Part 2</xspecref>.  WSDL 2.0 uses URIs to identify message exchange patterns in order to ensure that they are uambiguously identified, while also permitting future new patterns to be defined by anyone.  (However, just because someone defines a new pattern and creates a URI to identify it, that does <emph>not</emph> mean that other WSDL processors will automatically recognize or understand that pattern.  As with any other extension, it can be used among processors that do recognize and understand it.)</p></def></gitem><gitem><label><code>&lt;input messageLabel="In"</code></label><def><p>The <code>&lt;input&gt;</code> element specifies an input message.  Even though we have already specified which message exchange pattern the operation will use, a message exchange pattern represents a template for a message sequence, and in general it may consist f multiple input and/or output messages.  Thus we must also indicate which potential input message in the pattern this particular input message represents.  This is the purpose of the <code>messageLabel</code> attribute.  Since the WSDL 2.0 <xspecref href="@@part2#in-out@@">in-out</xspecref> pattern that we've chosen to use only has one input message, it is a no-brainer in this case: we simply fill in the message label "In" that was defined in <xspecref href="@@Part2@@">WSDL 2.0 Part 2</xspecref> for the <xspecref href="@@part2#in-out@@">in-out</xspecref> pattern.  However, in theory, new patterns could be defined that involve multiple input messages, and the different input messages in the pattern  would be distinguished by having different labels.</p></def></gitem><gitem><label><code>element="ghns:checkAvailability" /&gt;</code></label><def><p>This specifies the message type for this input message, as defined previously in the <code>&lt;types&gt;</code> section.</p></def></gitem><gitem><label><code>&lt;ouput messageLabel="Out" . . .</code></label><def><p>This is similar to defining an input message.</p></def></gitem><gitem><label><code>&lt;outfault ref="tns:invalidDataFault" messageLabel="Out"/&gt;</code></label><def><p>This associates an output fault with this operation.  Faults are declared a little differently than normal messages.  The <code>ref</code> attribute refers to the name of a previously defined fault in this interface -- not a message schema type directly.  Since message exchange patterns could in general involve a sequence of several messages, a fault could potentially occur at various points within the message sequence.  Because one may wish to associate a different fault with each permitted point in the sequence, the messageLabel is used to indicate the desired point for this particular fault. It does so indirectly by specifying the message that will either trigger this fault or that this fault will replace, depending on the pattern.   (Some patterns use a <xspecref href="@@part2#message-trggers-fault@@">message-triggers-fault rule</xspecref>; others use a <xspecref href="@@part2#fault-replaces-message@@">fault-replaces-message</xspecref> rule.) </p></def></gitem></glist><p>Now that we've defined the abstract interface for the GreatH service, we're ready to define a binding for it.</p><ednote><name>dbooth</name><edtext>[This note is only relevant to the editors.]  Hmm, I just realized that in the source XML for this primer, in some cases we've been using &lt;el&gt; to indicate an element name, and in other cases we've been using &lt;code&gt;.  At present, the xmlspec XSLT script seems to translate them both into &lt;code&gt; elements in the generated HTML, but we should probably make them consistent, in case that changes. </edtext></ednote></div3></div2>
  
  			
! 		<div2 id="basics-binding"><head>Defining a Binding</head><p>Although we have specified <emph>what</emph> abstract messages can be exchanged with the GreatH Web service, we have not yet specified <emph>how</emph> those messages can be exchanged.  This is the purpose of a <emph>binding</emph>.   A binding specifies concrete message format and transmission protocol details for an interface, and must supply such details  for every operation and fault in the interface.  </p><p>In the general case, binding details for each operation and fault are specified using <el>&lt;operation&gt;</el> and <el>&lt;fault&gt;</el> elements inside a <el>&lt;binding&gt;</el> element, as shown in the example below.  However, in some cases it is possible to use defaulting rules to supply the information.  The WSDL 2.0 SOAP binding, for example, defines some defaulting rules for operations.  (See @@@@.)  </p><p>In order to accommodate new kinds of message formats and transmission protocols, bindings are defined using extensions t the WSDL 2.0 language, via WSDL 2.0's open content model.   WSDL 2.0 Part 3 defines binding constructs for SOAP 1.2 <bibref ref="SOAP12-PART1"/> and HTTP 1.1 <bibref ref="RFC2616"/> as predefined extensions, so that SOAP 1.2 or HTTP 1.1 bindings can be easily defined in WSDL documents.    However, other specifications could define new binding constructs that could also be used to define bindings.  (As with any extension, other WSDL processors would have to know about the new constructs in order to make use of them.)  </p><p>For the GreatH service, we will use SOAP 1.2 as our concrete message format and HTTP as our  underlying transmission protocol, as shown below. </p><example id="example-initial-binding">
  					<head>GreatH Binding Definition</head>
  					<eg><![CDATA[<?xml version="1.0" encoding="utf-8" ?> 
--- 262,270 ----
    </interface>
    . . .
! </description>]]></eg></example><div3 id="example-initial-interface-explanation"><head>Explanation of Example</head><glist><gitem><label><code>&lt;interface  name = "reservationInterface" &gt;</code></label><def><p>Interfaces are declared directly inside the <el>description</el> element.  In this example, we are declaring only one interface, but in general a WSDL document may declare more than one interface (each one for use with a different service).  Thus, each interface must be given a name that is unique within the set of interfaces defined in this WSDL target namespace.   Interface names are tokens that must not contain a space or colon (":").</p></def></gitem><gitem><label><code>&lt;fault name = "invalidDataFault"
!             </code></label><def><p>The <code>name</code> attribute defines a name for this fault.  The name is required so that when an operation is defined, it can reference the desired fault by name.  Fault names must unique within an interface.</p></def></gitem><gitem><label><code>element = "ghns:invalidDataError"/&gt;</code></label><def><p>The <code>element</code> attribute specifies the schema type of the fault message, as previously defined in the <el>types</el> section.   </p></def></gitem><gitem><label><code>&lt;operation name="opCheckAvailability"</code></label><def><p>The <code>name</code> attribute defines a name for this operation, so that it can be referenced later when bindings are defined.  Operation names must also be unique within an interface.  (WSDL 2.0 uses separate symbol spaces for operation and fault names, so operation name "foo" is distinct from fault name "foo".)</p></def></gitem><gitem><label><code>pattern="http://www.w3.org/2004/03/wsdl/in-out" &gt;</code></label><def><p>This lne specifies that this operation will use the <xspecref href="@@part2#in-out@@">in-out</xspecref> pattern defined in <xspecref href="@@part2@@">WSDL 2.0 Part 2</xspecref>.  WSDL 2.0 uses URIs to identify message exchange patterns in order to ensure that they are uambiguously identified, while also permitting future new patterns to be defined by anyone.  (However, just because someone defines a new pattern and creates a URI to identify it, that does <emph>not</emph> mean that other WSDL processors will automatically recognize or understand that pattern.  As with any other extension, it can be used among processors that do recognize and understand it.)</p></def></gitem><gitem><label><code>&lt;input messageLabel="In"</code></label><def><p>The <el>input</el> element specifies an input message.  Even though we have already specified which message exchange pattern the operation will use, a message exchange pattern represents a template for a message sequence, and in general it may consist of multiple input and/oroutput messages.  Thus we must also indicate which potential input message in the pattern this particular input message represents.  This is the purpose of the <code>messageLabel</code> attribute.  Since the WSDL 2.0 <xspecref href="@@part2#in-out@@">in-out</xspecref> pattern that we've chosen to use only has one input message, it is a no-brainer in this case: we simply fill in the message label "In" that was defined in <xspecref href="@@Part2@@">WSDL 2.0 Part 2</xspecref> for the <xspecref href="@@part2#in-out@@">in-out</xspecref> pattern.  However, in theory, new patterns could be defined that involve multiple input messages, and the different input messages in the pattern  would be distinguished by having different labels.</p></def></gitem><gitem><label><code>element="ghns:checkAvailability" /&gt;</code></label><def><p>This specifies the message type for this input message, as defined previously in the <el>types</el> section.</p></def></gitem><gitem><label><code>&lt;output messageLabel="Out" . . .</code>/label><def><p>This is similar to defining an input message.</p></def></gitem><gitem><label><code>&lt;outfault ref="tns:invalidDataFault" messageLabel="Out"/&gt;</code></label><def><p>This associates an output fault with this operation.  Faults are declared a little differently than normal messages.  The <code>ref</code> attribute refers to the name of a previously defined fault in this interface -- not a message schema type directly.  Since message exchange patterns could in general involve a sequence of several messages, a fault could potentially occur at various points within the message sequence.  Because one may wish to associate a different fault with each permitted point in the sequence, the messageLabel is used to indicate the desired point for this particular fault. It does so indirectly by specifying the message that will either trigger this fault or that this fault will replace, depending on the pattern.   (Some patterns use a <xspecref href="@@part2#message-triggers-fault@@">message-triggers-faut rule</xspecref>; others use a <xspecref href="@@part2#fault-replaces-message@@">fault-replaces-message</xspecref> rule.) </p></def></gitem></glist><p>Now that we've defined the abstract interface for the GreatH service, we're ready to define a binding for it.</p><ednote><name>dbooth</name><edtext>[This note is only relevant to the editors.]  Hmm, I just realized that in the source XML for this primer, in some cases we've been using &lt;el&gt; to indicate an element name, and in other cases we've been using &lt;code&gt;.  At present, the xmlspec XSLT script seems to translate them both into &lt;code&gt; elements in the generated HTML, but we should probably make them consistent, in case that changes. </edtext></ednote></div3></div2>
  
  			
! 		<div2 id="basics-binding"><head>Defining a Binding</head><p>Although we have specified <emph>what</emph> abstract messages can be exchanged with the GreatH Web service, we have not yet specified <emph>how</emph> those messages can be exchanged.  This is the purpose of a <emph>binding</emph>.   A binding specifies concrete message format and transmission protocol details for an interface, and must supply such details  for every operation and fault in the interface.  </p><p>In the general case, binding details for each operation and fault are specified using <el>operation</el> and <el>fault</el> elements inside a <el>binding</el> element, as shown in the example below.  However, in some cases it is possible to use defaulting rules to supply the information.  The WSDL 2.0 SOAP binding, for example, defines some defaulting rules for operations.  (See <emph>Web Services Description Language (WSDL) Version 2.0 Part 3: Bindings</emph> <bibref ref="WSDL-PART3"/>, section 2.3 <xspecref href="http://www.w3.org/TR2004/WD-wsdl20-bindings-20040803/#soap-defaults">Default Binding Rules</xspecref>.)  </p><p>In order to accommodate new kinds of message formats and transmission protocols, bindings are defined using extensions to the WSDL 2.0 language, via WSDL 2.0's open content model.   WSDL 2.0 Part 3 defines binding constructs for SOAP 1.2 <bibref ref="SOAP12-PART1"/> and HTTP 1.1 <bibref ref="RFC2616"/> as predefined extensions, so that SOAP 1.2 or HTTP 1.1 bindings can be easily defined in WSDL documents.    However, other specifications could define new binding constructs that could also be used to define bindings.  (As with any extension, other WSDL processors would have to know about the new constructs in order to make use of them.)  </p><p>For the GreatH service, we will use SOAP 1.2 as our concrete message format and HTTP as our  underlying transmission protocol, as shown below. </p><example id="example-initial-binding">
  					<head>GreatH Binding Definition</head>
  					<eg><![CDATA[<?xml version="1.0" encoding="utf-8" ?> 
***************
*** 307,311 ****
    . . .
  </description>]]></eg>
! 				</example><div3 id="example-initial-binding-explanation"><head>Explanation of Example</head><glist><gitem><label><code>xmlns:wsoap= "http://www.w3.org/2004/08/wsdl/soap12"</code></label><def><p>We've added two more namespace declarations.  This one is the namespace for the SOAP 1.2 binding construct that is defined in WSDL 2.0 Part 3 <bibref ref="SOAP12-PART1"/>.   Elements and attributes prefixed with  <code>wsoap:</code>  are constructs defined there.  </p></def></gitem><gitem><label><code>xmlns:soap="http://www.w3.org/2003/05/soap-envelope"</code></label><def><p>This namespace is defined by the SOAP 1.2 specification itself.  The SOAP 1.2 specification defines certain terms within this namespace to unambiguously identify particular concepts.  Thus, we will use the <code>soap:</code> prefix when we need to refer to one of those terms.</p></def></gitem><gitem><label><code>&lt;binding name="reservationSOAPBinding"</code></label><def><p>Bindings are declared directly inside the <el>&lt;description&gt;<el> element.  The <att>name</att> attribute defines a name for this binding.  Each name must be unique among all  bindings in this targetNamespace, and will be used later when we define a service endpoint that references this binding.  WSDL 2.0 uses separate symbol spaces for interfaces, bindings and services, so interface "foo", binding "foo" and service "foo" are all distinct. </p></def></gitem><gitem><label><code>interface="tns:reservationInterface"</code></label><def><p>This is the name of the interface whose message format and transmission protocols we are specifying.  As discussed @later@, a reusable binding can be defined by omitting the <att>interface</att> attribute.  Note also the use of the <code>tns:</code> prefix, which refers to the previously defined targetNamespace for this WSDL document.  In this case it may seem silly to have to specify the tns: prefix, but @we will see later@ how WSDL 2.0's import mechanism can be used to combine components that are defined in different targetNamespaces.<p></def></gitem><gitem><label><code>type="http://www.w3.org/2004/08/wsdl/soap12"</code></label><def><p>This specifies the type of concrete message format to use, in this case SOAP 1.2.</p></def></gitem><gitem><label><code>wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP"</code></label><def><p>This attribute is specific to WSDL 2.0's SOAP binding (thus it uses the <code>wsoap:</code> prefix). It specifies the underlying transmission protocol that should be used, in this case HTTP.  </p></def></gitem><gitem><label><code>&lt;operation ref="tns:opCheckAvailability"</code></label><def><p>This not defining a new operation.  Rather, it is referencing the previously defined <code>opCheckAvailability</code> operation in order to specify binding details for it.    This element can be omitted if defaulting rules are instead used to supply the necessary information.  (See @@@@.)</p></def></gitem><gitem><label><code>wsoap:mep="http://www.w3.org/2003/05/soap/mep/request-response"&gt;</code></label><def><p>Thi attribute is also specific to WSDL 2.0's SOAP binding.    It specifies the SOAP message exchange pattern that will be used to implement the abstract WSDL 2.0  message exchange pattern (<xspecref href="@@part2#in-out@@">in-out</xspecref>) that was specified when the <code>opCheckAvailability</code> operation was defined. </p></def></gitem><gitem><label><code>&lt;fault ref="tns:invalidDataFault"</code></label><def><p>As with a binding operation, this is not declaring a new fault.  Rather, it is referencing a fault (<code>invalidDataFault</code>) that was previously defined in the <code>opCheckAvailability</code> interface, in order to specify binding details for it.</p></def></gitem><gitem><label><code>wsoap:code="soap:Sender"/&gt;</code></label><def><p>This attribute is also specific to WSDL 2.0's SOAP binding.       This specifies the SOAP 1.2 fault code that will cause this fault message to be sent.  @@ Need to verify that this is correct.  @@ If desired, an list of subcodes can also be specified using th optional  <att>wsoap:subcodes</att> attribute.</p></def></gitem></glist></div3></div2><div2 id="basics-service"><head>Defining a Service</head><p>Now that our binding has specified <emph>how</emph> messages will be transmitted, we are ready to specify <emph>where</emph> the service can be accessed, by use of the <el>&lt;service&gt;</el> element.  </p><p>A WSDL 2.0 <emph>service</emph> specifies a single interface that the service will support, and  a list of <emph>endpoint</emph> locations where that service can be accessed.  Each endpoint must also reference a previously defined binding in order to indicate the binding details that are to be used at that endpoint.  A service is only permitted to have one interface.   (However, WSDL 2.0 does not prohibit you from declaring multiple services that use different interfaces but happen to use the same endpoint address.) </p><p>Here is a definition for our GreatH service.</p><example id="example-initial-service">
  					<head>GreatH Service Definition</head>
  					<eg><![CDATA[<?xml version="1.0" encoding="utf-8" ?> 
--- 307,311 ----
    . . .
  </description>]]></eg>
! 				</example><div3 id="example-initial-binding-explanation"><head>Explanation of Example</head><glist><gitem><label><code>xmlns:wsoap= "http://www.w3.org/2004/08/wsdl/soap12"</code></label><def><p>We've added two more namespace declarations.  This one is the namespace for the SOAP 1.2 binding construct that is defined in WSDL 2.0 Part 3 <bibref ref="SOAP12-PART1"/>.   Elements and attributes prefixed with  <code>wsoap:</code>  are constructs defined there.  </p></def></gitem><gitem><label><code>xmlns:soap="http://www.w3.org/2003/05/soap-envelope"</code></label><def><p>This namespace is defined by the SOAP 1.2 specification itself.  The SOAP 1.2 specification defines certain terms within this namespace to unambiguously identify particular concepts.  Thus, we will use the <code>soap:</code> prefix when we need to refer to one of those terms.</p></def></gitem><gitem><label><code>&lt;binding name="reservationSOAPBinding"</code></label><def><p>Bindings are declared directly inside the <el>description</el> eleent.  The <att>name</att> attribute defines a name for this binding.  Each name must be unique among all  bindings in this WSDL target namespace, and will be used later when we define a service endpoint that references this binding.  WSDL 2.0 uses separate symbol spaces for interfaces, bindings and services, so interface "foo", binding "foo" and service "foo" are all distinct. </p></def></gitem><gitem><label><code>interface="tns:reservationInterface"</code></label><def><p>This is the name of the interface whose message format and transmission protocols we are specifying.  As discussed in <specref ref="more-bindings"/>, a reusable binding can be defined by omitting the <att>interface</att> attribute.  Note also the use of the <code>tns:</code> prefix, which refers to the previously defined WSDL target namespace for this WSDL document.  In this case it may seem silly to have to specify the <code>tns:</code> prefix, but in <specref ref="adv-import-and-authoring"/>we will see how WSDL 2.0's import mechanism canbe used to combine components that are defined in different WSDL target namespaces.</p></def></gitem><gitem><label><code>type="http://www.w3.org/2004/08/wsdl/soap12"</code></label><def><p>This specifies the type of concrete message format to use, in this case SOAP 1.2.</p></def></gitem><gitem><label><code>wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP"</code></label><def><p>This attribute is specific to WSDL 2.0's SOAP binding (thus it uses the <code>wsoap:</code> prefix). It specifies the underlying transmission protocol that should be used, in this case HTTP.  </p></def></gitem><gitem><label><code>&lt;operation ref="tns:opCheckAvailability"</code></label><def><p>This not defining a new operation.  Rather, it is referencing the previously defined <code>opCheckAvailability</code> operation in order to specify binding details for it.    This element can be omitted if defaulting rules are instead used to supply the necessary information.  (See the SOAP binding in  <emph>WSDL 2.0 Bindings</emph> bibref ref="WSDL-PART3"/> section 2.3 <xspecref href="http://www.w3.org/TR/2004/WD-wsdl20-bindings-20040803/#soap-defaults">Default Binding Rules</xspecref>.)</p></def></gitem><gitem><label><code>wsoap:mep="http://www.w3.org/2003/05/soap/mep/request-response"&gt;</code></label><def><p>This attribute is also specific to WSDL 2.0's SOAP binding.    It specifies the SOAP message exchange pattern that will be used to implement the abstract WSDL 2.0  message exchange pattern (<xspecref href="@@part2#in-out@@">in-out</xspecref>) that was specified when the <code>opCheckAvailability</code> operation was defined. </p></def></gitem><gitem><label><code>&lt;fault ref="tns:invalidDataFault"</code></label><def><p>As with a binding operation, this is not declaring a new fault.  Rather, it is referencing a fault (<code>invalidDataFault</code>) that was previously defined in the <code>opCheckAvailability</code> interface, in order to specify binding details for it.</p></def></gitem><gitem><label><code>wsoap:code="soap:Sendr"/&gt;</code></label><def><p>This attribute is also specific to WSDL 2.0's SOAP binding.       This specifies the SOAP 1.2 fault code that will cause this fault message to be sent.  <ednote><edtext> Need to verify that this explanation is correct.  See http://lists.w3.org/Archives/Public/public-ws-desc-comments/2004Dec/0003.html </edtext></ednote> If desired, an list of subcodes can also be specified using the optional  <att>wsoap:subcodes</att> attribute.</p></def></gitem></glist></div3></div2><div2 id="basics-service"><head>Defining a Service</head><p>Now that our binding has specified <emph>how</emph> messages will be transmitted, we are ready to specify <emph>where</emph> the service can be accessed, by use of the <el>service</el> element.  </p><p>A WSDL 2.0 <emph>service</emph> specifies a single interface that the service will support, and  a list of <emph>endpoint</emph> locations where that service can be accessed.  Each endpoint must also reference a previously defined binding in order to indicatethe binding details that are to be used at that endpoint.  A service is only permitted to have one interface.   (However, WSDL 2.0 does not prohibit one from declaring multiple services that use different interfaces but happen to use the same endpoint address. See <specref ref="adv-multiple-docs-describing-same-service"/>.) </p><p>Here is a definition for our GreatH service.</p><example id="example-initial-service">
  					<head>GreatH Service Definition</head>
  					<eg><![CDATA[<?xml version="1.0" encoding="utf-8" ?> 
***************
*** 338,342 ****
  
  </description>]]></eg>
! 				</example><div3 id="example-initial-service-explanation"><head>Explanation of Example</head><glist><gitem><label><code>&lt;service name="reservationService"</code></label><def><p>This defines a name for this service, which must be unique among service names in the current targetNamespace.   @@Explain why it's required.@@<ednote><name>dbooth</name><edtext>Anyone remember why we made the name attribute required?  Does WSDL 2.0 use it anywhere?</edtext></ednote></p></def></gitem><gitem><label><code>interface="tns:reservationInterface"&gt;</code></label><def><p>This specifies the name of the previously defined interface that these service endpoints will support.  </p></def></gitem><gitem><label><code>&lt;endpoint name="reservationEndpoint"</code></label><def><p>This defines an endpoint for the service, and a name for this endpoint, which must be unique within this service.  @@Explain why the name is required.@@  <ednote><name>dbooth</name><edtext>Anyone remember why we made the name attribute required?  Des WSDL 2.0 use it anywhere?</edtext></ednote></p></def></gitem><gitem><label><code>binding="tns:reservationSOAPBinding"</code></label><def><p>This specifies the name of the previously defined binding to be used by this endpoint.  </p></def></gitem><gitem><label><code>address ="http://greath.example.com/2004/reservation"/&gt;</code></label><def><p>This specifies the physical address at which this service can be accessed using the binding specified by the <att>binding</att> attribute.</p></def></gitem></glist><p>That's it!  Well, almost.  </p></div3></div2><div2 id="basics-documentation"><head>Documenting the Service</head><p>As we have seen, a WSDL 2.0 document is inherently only a <emph>partial</emph> description of a service.  Although it captures the basic mechanics of interacting with the service -- the message types, transmission protocols, service location, etc. -- in general, additional documention will need to explain other application-level requirements for its use.  For example, such documentationshould explain the purpose and use of the service, the meanings of all messages, constraints on their use, and the sequence in which operations should be invoked.</p><p>The <el>&lt;documentation&gt;</el> element allows you to include some human-readable documentation inside your WSDL document.   It is a convenient place to reference any additional documentation that a client developer may need in order to use your service.   It can appear in a number of places in a WSDL 2.0 document (as you can see in the syntax summary presented later), though in this example we have only demonstrated its use at the beginning.</p><example id="example-initial-documentation">
  					<head>Documenting the GreatH Service</head>
  					<eg><![CDATA[<?xml version="1.0" encoding="utf-8" ?> 
--- 338,342 ----
  
  </description>]]></eg>
! 				</example><div3 id="example-initial-service-explanation"><head>Explanation of Example</head><glist><gitem><label><code>&lt;service name="reservationService"</code></label><def><p>This defines a name for this service, which must be unique among service names in the WSDL target namespace.   The name attribute is required in order to facilitate the use of URIs to indentify components in WSDL 2.0 documents.  (See <emph>WSDL 2.0 Core Language</emph> <bibref ref="WSDL-PART1"/> appendix C <xspecref href="http://www.w3.org/TR/2004/WD-wsdl20-20040803/#wsdl-uri-references">URI References for WSDL constructs</xspecref>.)</p></def></gitem><gitem><label><code>interface="tns:reservationInterface"&gt;</code></label><def><p>This specifies the name of the previously defined interface that these service endpoints will support.  </p></def></gitem><gitem><label><code>&lt;endpoint name="reservationEndpoint"</code></label><def><p>This defines an endpoint for the service, and a name for this endpoint, which must be unique wthin this service.  </p></def></gitem><gitem><label><code>binding="tns:reservationSOAPBinding"</code></label><def><p>This specifies the name of the previously defined binding to be used by this endpoint.  </p></def></gitem><gitem><label><code>address ="http://greath.example.com/2004/reservation"/&gt;</code></label><def><p>This specifies the physical address at which this service can be accessed using the binding specified by the <att>binding</att> attribute.</p></def></gitem></glist><p>That's it!  Well, almost.  </p></div3></div2><div2 id="basics-documentation"><head>Documenting the Service</head><p>As we have seen, a WSDL 2.0 document is inherently only a <emph>partial</emph> description of a service.  Although it captures the basic mechanics of interacting with the service -- the message types, transmission protocols, service location, etc. -- in general, additional documention will need to explain other application-level requirements for its use.  For example, such documentation should explain the purpos and use of the service, the meanings of all messages, constraints on their use, and the sequence in which operations should be invoked.</p><p>The <el>documentation</el> element allows the WSDL author to include some human-readable documentation inside a WSDL document.   It is a convenient place to reference any additional documentation that a client developer may need in order to use the service.   It can appear in a number of places in a WSDL 2.0 document (as can be seen in the syntax summary presented later), though in this example we have only demonstrated its use at the beginning.</p><example id="example-initial-documentation">
  					<head>Documenting the GreatH Service</head>
  					<eg><![CDATA[<?xml version="1.0" encoding="utf-8" ?> 
***************
*** 358,362 ****
  
  </description>]]></eg>
! 				</example><div3 id="example-initial-documentation-explanation"><head>Explanation of Example</head><glist><gitem><label><code>&lt;documentation&gt;</code></label><def><p>  This element is optional, but a good idea to include.    It can contain arbitrary mixed content.  </p></def></gitem><gitem><label><code>at http://greath.example.com/2004/reservation-documentation.html</code></label><def><p>The most important thing to  include is  a pointer to any additional documentation that a client developer would need in order to use your service. </p></def></gitem></glist><p>This completes our presentation of the GreatH example.  Let's summarize the syntax we've seen. </p></div3></div2><div2 id="basics-syntax"><head>XML Syntax Summary</head><p>In the core language specification, WSDL 2.0 constructs are defined as a set of abstract components, along with a mapping to an XML infoset representation for these components. For easier consumption, the primer uses the XML representation of WSDL components. The followingconventions are followed for the syntax: </p>
  					<ulist>
  						<item>
--- 358,362 ----
  
  </description>]]></eg>
! 				</example><div3 id="example-initial-documentation-explanation"><head>Explanation of Example</head><glist><gitem><label><code>&lt;documentation&gt;</code></label><def><p>  This element is optional, but a good idea to include.    It can contain arbitrary mixed content.  </p></def></gitem><gitem><label><code>at http://greath.example.com/2004/reservation-documentation.html</code></label><def><p>The most important thing to  include is  a pointer to any additional documentation that a client developer would need in order to use the service. </p></def></gitem></glist><p>This completes our presentation of the GreatH example.  Let's summarize the syntax we've seen. </p></div3></div2><div2 id="basics-syntax"><head>XML Syntax Summary</head><p>In the core language specification, WSDL 2.0 constructs are defined as a set of abstract components, along with a mapping to an XML infoset representation for these components. For easier consumption, the primer uses the XML representation of WSDL components. The following onventions are followed for the syntax: </p>
  					<ulist>
  						<item>
***************
*** 371,378 ****
  					</ulist>
  
! <ednote><name>dbooth</name><edtext>To do: check the above elipses (...), as they weren't rendering properly at one point.</edtext></ednote><div3 id="basics-syntax-brief"><head>Brief Syntax Summary</head><eg xml:space="preserve">
! @@To do: Insert short summary here@@
! </eg></div3><div3 id="basics-syntax-longer"><head>Longer Syntax Summary</head><ednote><name>dbooth</name><edtext>To do: Update this, and delete the &lt;documentation&gt;, &lt;feature&gt; and &lt;property&gt; elements, because they're mentioned below.</edtext></ednote><eg xml:space="preserve">
! &lt;definitions targetNamespace=&quot;<emph>xs:anyURI</emph>&quot; &gt;
    &lt;documentation /&gt;?
  
--- 371,376 ----
  					</ulist>
  
! <ednote><name>dbooth</name><edtext>To do: check the above elipses (...), as they weren't rendering properly at one point.</edtext></ednote><div3 id="basics-syntax-brief"><head>Brief Syntax Summary</head><ednote><edtext>To do: Insert short summary here</edtext></ednote></div3><div3 id="basics-syntax-longer"><head>Longer Syntax Summary</head><ednote><name>dbooth</name><edtext>To do: Update this, and delete the &lt;documentation&gt;, &lt;feature&gt; and &lt;property&gt; elements, because they're mentioned below.</edtext></ednote><eg xml:space="preserve">
! &lt;description targetNamespace=&quot;<emph>xs:anyURI</emph>&quot; &gt;
    &lt;documentation /&gt;?
  
***************
*** 508,516 ****
      &lt;property ... /&gt;*
    &lt;/service&gt;*
! &lt;/definitions&gt;
  </eg>
  
  					
! 					<p>In addition, <el>&lt;feature&gt;</el> and <el>&lt;property&gt;</el> elements are allowed inside most WSDL elements.  Also,  an optional <el>&lt;documentation&gt;</el> element is allowed inside any WSDL element as a container for human readable and/or machine processable documentation. The content of <el>documentation</el> is arbitrary characters  and elements 
  ("mixed" content in XML Schema). </p></div3></div2></div1>
  		<!-- ******************MessageTypes********************************** -->
--- 506,514 ----
      &lt;property ... /&gt;*
    &lt;/service&gt;*
! &lt;/description&gt;
  </eg>
  
  					
! 					<p>In addition, <el>feature</el> and <el>property</el> elements are allowed inside most WSDL elements.  Also,  an optional <el>documentation</el> element is allowed inside any WSDL element as a container for human readable and/or machine processable documentation. The content of <el>documentation</el> is arbitrary characters  and elements 
  ("mixed" content in XML Schema). </p></div3></div2></div1>
  		<!-- ******************MessageTypes********************************** -->
***************
*** 521,525 ****
  				
  				<p>As we saw previously, WSDL 2.0 provides a <el>types</el> element for enclosing messages definitions in a WSDL document. There are two ways to enclose messages definitions within the <el>types</el> element: use <el>xs:import</el> mechanism provided by XML Schema, or embed the schemas within <el>xs:schema</el> elements. It's perfectly reasonable to use both ways in one WSDL. The following is a summary of the XML syntax for the <el>types</el> element:</p>
! 				<eg xml:space="preserve">&lt;definitions&gt;
    &lt;<b>types</b>&gt;
      &lt;documentation /&gt;?
--- 519,523 ----
  				
  				<p>As we saw previously, WSDL 2.0 provides a <el>types</el> element for enclosing messages definitions in a WSDL document. There are two ways to enclose messages definitions within the <el>types</el> element: use <el>xs:import</el> mechanism provided by XML Schema, or embed the schemas within <el>xs:schema</el> elements. It's perfectly reasonable to use both ways in one WSDL. The following is a summary of the XML syntax for the <el>types</el> element:</p>
! 				<eg xml:space="preserve">&lt;description&gt;
    &lt;<b>types</b>&gt;
      &lt;documentation /&gt;?
***************
*** 529,533 ****
      [<emph>extension elements</emph>]*
    &lt;/<b>types</b>&gt;
! &lt;/definitions&gt;
  </eg>
  				<p>A WSDL description MUST NOT refer to XML Schema components in a given namespace unless an <el>xs:import</el> and/or <el>xs:schema</el> statement
--- 527,531 ----
      [<emph>extension elements</emph>]*
    &lt;/<b>types</b>&gt;
! &lt;/description&gt;
  </eg>
  				<p>A WSDL description MUST NOT refer to XML Schema components in a given namespace unless an <el>xs:import</el> and/or <el>xs:schema</el> statement
***************
*** 535,548 ****
  <el>xs:schema</el> constructs is a necessary condition for making XML Schema
  components available to a WSDL description. </p>
! 				<p>Please note use of type system other than XML Schema is indicated by the extension elements in the above syntax. See section @@@@@ for more information.
  </p>
  				<div3 id="more-types-schema-import">
  					<head>Importing XML Schema</head>
! 					<p>Let's examine the XML Schema <el>import</el> first. Note the schema import mechanism described here is defined in XML Schema Language with some additional restrictions. It is different from the WSDL import/include as explained in section @@@@.  The schema components defined in the imported schema are available for reference by QName (see section @@@@ ). Note that only components defined in the schema itself and components included by it via <el>xs:include</el> are available to WSDL. Specifically, components that the schema imports via <el>xs:import</el> are NOT available to WSDL.</p>
  					<p>A <el>types</el> element can contain zero or more <el>import</el>s which may have one or two attributes as follows:</p>
  					<ulist>
  						<item>
  							<p>A REQUIRED <att>namespace</att> attribute of type <emph>xs:anyURI</emph>.</p>
! 							<p>The <att>namespace</att> attribute defines the namespace of the element declarations imported from the referenced schema.  As mandated in Section 3 of the Part 1 specification, the referenced schema MUST contain a <att>targetNamespace</att> attribute on its <el>xs:schema</el> element and the values of these two attributes MUST be identical.  It is an error to import a schema that does not have a <att>targetNamespace</att>. Such schemas must first be included (using <el>xs:include</el>) in a schema that contains a <att>targetNamespace</att> attribute; on its <el>xs:schema</el> element, which can then be either imported or inlined in the WSDL document.</p>
  						</item>
  						<item>
--- 533,546 ----
  <el>xs:schema</el> constructs is a necessary condition for making XML Schema
  components available to a WSDL description. </p>
! 				<p>Please note the use of type system other than XML Schema is indicated by the extension elements in the above syntax. (See <emph>WSDL 2.0 Core Language</emph> <bibref ref="WSDL-PART1"/> appendix E <xspecref href="http://www.w3.org/TR/2004/WD-wsdl20-20040803/#other-schemalang">Examples of Specifications of Extension Elements for Alternative Schema Language Support</xspecref>.)
  </p>
  				<div3 id="more-types-schema-import">
  					<head>Importing XML Schema</head>
! 					<p>Let's examine the XML Schema <el>import</el> first. Note the schema import mechanism described here is defined in XML Schema Language with some additional restrictions. It is different from the WSDL import/include as explained in <specref ref="adv-import-and-authoring"/>.  The schema components defined in the imported schema are available for reference by QName (see section @@@@ ). Note that only components defined in the schema itself and components included by it via <el>xs:include</el> are available to WSDL. Specifically, components that the schema imports via <el>xs:import</el> are NOT available to WSDL.  <ednote><name>dbooth</name><edtext>Check this.  An issue was recently raised about import not being transitive.</edtext></ednote></p>
  					<p>A <el>types</el> element can contain zero or more <el>import</el>s which may have one or two attributes as follows:</p>
  					<ulist>
  						<item>
  							<p>A REQUIRED <att>namespace</att> attribute of type <emph>xs:anyURI</emph>.</p>
! 							<p>The <att>namespace</att> attribute defines the namespace of the element declarations imported from the referenced schema.  As mandated in Section 3 of the Part 1 specification, the referenced schema MUST contain an XML Schema  <att>targetNamespace</att> attribute on its <el>xs:schema</el> element and the values of these two attributes MUST be identical.  It is an error to import a schema that does not have an XML Schema target namespace. Such schemas must first be included (using <el>xs:include</el>) in a schema that contains a <att>targetNamespace</att> attribute; on its <el>xs:schema</el> element, which can then be either imported or inlined in the WSDL document.</p>
  						</item>
  						<item>
***************
*** 585,589 ****
  						<item>
  							<p>A REQUIRED <att>targetNamespace</att> attribute of type <emph>xs:anyURI</emph>.</p>
! 							<p>It defines the namespace of the element declarations embedded in its owner <el>xs:schema</el>.  Note that WSDL modifies the
  XML Schema definition of XML Schema <el>xs:schema</el> to make the <att>targetNamespace</att> attribute required. </p>
  						</item>
--- 583,587 ----
  						<item>
  							<p>A REQUIRED <att>targetNamespace</att> attribute of type <emph>xs:anyURI</emph>.</p>
! 							<p>It defines the XML Schema target namespace of the element declarations embedded in its owner <el>xs:schema</el>.  Note that WSDL modifies the
  XML Schema definition of XML Schema <el>xs:schema</el> to make the <att>targetNamespace</att> attribute required. </p>
  						</item>
***************
*** 600,604 ****
  						<ednote><edtext>Need to update this example.</edtext></ednote><eg xml:space="preserve">
  
! &lt;definitions 
  	targetNamespace= &quot;http://www.greath.com/2004/05/wsdl/resSvc.wsdl&quot; 
  	xmlns:ghns = &quot;http://www.greath.com/2004/05/schemas/resSvc.xsd&quot;
--- 598,602 ----
  						<ednote><edtext>Need to update this example.</edtext></ednote><eg xml:space="preserve">
  
! &lt;description 
  	targetNamespace= &quot;http://www.greath.com/2004/05/wsdl/resSvc.wsdl&quot; 
  	xmlns:ghns = &quot;http://www.greath.com/2004/05/schemas/resSvc.xsd&quot;
***************
*** 622,626 ****
    &lt;/<b>types</b>&gt;
  
! &lt;/definitions&gt;
  </eg>
  					</example>
--- 620,624 ----
    &lt;/<b>types</b>&gt;
  
! &lt;/description&gt;
  </eg>
  					</example>
***************
*** 635,639 ****
  				<ednote><name>dbooth</name><edtext>To do: Simplify this syntax summary.</edtext></ednote><p>Below is the XML syntax summary of the <el>interface</el> element:</p>
  				<eg xml:space="preserve">
! &lt;definitions targetNamespace=&quot;<emph>xs:anyURI</emph>&quot; &gt;
  
    &lt;interface name=&quot;<emph>xs:NCName</emph>&quot; extends=&quot;<emph>list of xs:QName</emph>&quot;? styleDefault=&quot;<emph>list of xs:anyURI</emph>&quot;? &gt;
--- 633,637 ----
  				<ednote><name>dbooth</name><edtext>To do: Simplify this syntax summary.</edtext></ednote><p>Below is the XML syntax summary of the <el>interface</el> element:</p>
  				<eg xml:space="preserve">
! &lt;description targetNamespace=&quot;<emph>xs:anyURI</emph>&quot; &gt;
  
    &lt;interface name=&quot;<emph>xs:NCName</emph>&quot; extends=&quot;<emph>list of xs:QName</emph>&quot;? styleDefault=&quot;<emph>list of xs:anyURI</emph>&quot;? &gt;
***************
*** 702,713 ****
  
  
! &lt;/definitions &gt;
    
  </eg>
! 				<p>One WSDL <el>definitions</el> may contain zero or more <el>interface</el> elements as its direct children.  Zero <el>interface</el> is permitted since a <el>definitions</el> element may only contain binding and/or endpoint definitions to be aggegrated into a master WSDL definition via import/include mechanisms. </p>
! 				<p>Let's have a look at the attributes of <el>interface</el> first.  It has one required <att>name</att> attribute. Within the same target namespace (might be in different wsdl documents, see section @@@@), each interface must have a unique name. The <el>interface</el> element has two optional attributes:<att>extends</att> and <att>styleDefault</att>. <att>extends</att> will be explained in the next section. We will explain what a <att>style</att> is when we move to the section for <el>operation</el>. For now, you just need to know that the optional <att>styleDefault</att> attribute of <el>interface</el> can be used to define a default value for the <att>style</att> attribute of all <el>operation</el>s under this <el>interface</el>, if any of the operations do not specify a value for its <att>style</att>.  </p>
  				<div3 id="more-interfaces-inheritance">
  					<head>Interface Inheritance</head>
! 					<p>The optional <att>extends</att> attribute allows an interface to extend one or more other interfaces. In such cases the interface contains the operations of the interfaces it extends, along with any operations it defines. Two things about extending interfaces deserve some attention. </p><p>First,  recursive extension of interfaces is prohibited.  The interfaces that a given interface extends MUST NOT themselves extend that interface either directly or indirectly.  </p><p>Second, there may be cases where, due to an interface extending one or more other interfaces, operations from different interface may have a name collision. More precisely, within the same namespace, two or more interface operations end up  having the same name.  In such cases, WSDL 2.0 requires that the component models of those Interface Operation components MUST be equivalent (Component Equivalence is defined in Part 1 section 2.15 Equivalence of Components. For operations, basically equivalence means the two operations in quesion have same set of attributes and descendents). If the collisional operations are equivalent then they are considered to collapse into a single operation. It is an error if they have the same name in the same targetNamespace but are not equivalent. In other words,  if two interfaces have name collisional operations, then those two interfaces cannot both form part of the derivation chain of a derived interface unless those operations are exactly the same. For the above reason, it is considered good practic to ensure that all operations within the same namespace are named uniquely whenever possible. Furthermore, since faults, features and properties can also be defined as children of  the <el>interface</el> element (as descrbed later), the same name-collision resolution rules apply to those constructs.</p>
  					
  										<ednote>
--- 700,711 ----
  
  
! &lt;/description &gt;
    
  </eg>
! 				<p>One WSDL <el>description</el> element may contain zero or more <el>interface</el> elements as its direct children.  Zero <el>interface</el> elements are permitted since a <el>description</el> element may only contain binding and/or endpoint definitions to be aggegrated into a master WSDL description via import/include mechanisms. </p>
! 				<p>Let's have a look at the attributes of <el>interface</el> first.  It has one required <att>name</att> attribute. Within the same WSDL target namespace (might be in different wsdl documents, see section @@@@), each interface must have a unique name. The <el>interface</el> element has two optional attributes:<att>extends</att> and <att>styleDefault</att>. <att>extends</att> will be explained in the next section. We will explain what a <att>style</att> later. For now, keep in mind that the optional <att>styleDefault</att> attribute of <el>interface</el> can be used to define a default value for the <att>style</att> attribute of all <el>operation</el>s under this <el>interface</el>, if any of the operations do not specify a value for its <att>style</att>.  </p>
  				<div3 id="more-interfaces-inheritance">
  					<head>Interface Inheritance</head>
! 					<p>The optional <att>extends</att> attribute allows an interface to extend one or more other interfaces. In such cases the interface contains the operations of the interfaces it extends, along with any operations it defines. Two things about extending interfaces deserve some attention. </p><p>First,  recursive extension of interfaces is prohibited.  The interfaces that a given interface extends MUST NOT themselves extend that interface either directly or indirectly.  </p><p>Second, there may be cases where, due to an interface extending one or more other interfaces, operations from different interface may have a name collision. More precisely, within the same namespace, two or more interface operations end up  having the same name.  In such cases, WSDL 2.0 requires that the component models of those Interface Operation components MUST be equivalent (Component Equivalence is defined in Part 1 section 2.15 Equivalence of Components. For operations, basically equivalence means the two operations in quesion have same set of attributes and descendents). If the collisional operations are equivalent then they are considered to collapse into a single operation. It is an error if they have the same name in the same WSDL target namespace but are not equivalent. In other words,  if two interfaces have name collisional operations, then those two interfaces cannot both form part of the derivation chain of a derived interface unless those operations are exactly the same. For the above reason, it is considered good practic to ensure that all operations within the same namespace are named uniquely whenever possible. Furthermore, since faults, features and properties can also be defined as children of  the <el>interface</el> element (as descrbed later), the same name-collision resolution rules apply to those constructs.</p>
  					
  										<ednote>
***************
*** 730,734 ****
  						<eg xml:space="preserve">
  
! &lt;definitions 
  	targetNamespace= &quot;http://www.greath.com/2004/05/wsdl/resSvc.wsdl&quot; 
  	xmlns:ghns = &quot;http://www.greath.com/2004/05/schemas/resSvc.xsd&quot;
--- 728,732 ----
  						<eg xml:space="preserve">
  
! &lt;description 
  	targetNamespace= &quot;http://www.greath.com/2004/05/wsdl/resSvc.wsdl&quot; 
  	xmlns:ghns = &quot;http://www.greath.com/2004/05/schemas/resSvc.xsd&quot;
***************
*** 770,774 ****
  
  
! &lt;/definitions&gt;
  </eg>
  					</example>
--- 768,772 ----
  
  
! &lt;/description&gt;
  </eg>
  					</example>
***************
*** 788,792 ****
  						<item>
  							<p>A required <att>name</att> attribute</p>
! 							<p>Operation names must be unique within an interface. Beware that <el>operations</el>are local to an <el>interface</el>,so two <el>interface</el> elements sharing the same target namespace but with different name MAY contain <el>operations</el> which share the same name. Thus, <el>operations</el> cannot be referenced by QName since the <att>name</att> and targetNamespace are not sufficient to uniquely identify an <el>operation</el>. In order to uniquely identify an <el>operation</el>, one must first identify the <el>interface</el> by QName and then identify the <el>operation</el> within that <el>interface</el> by a further QName. As explained in section @@@, this fact has compound impact when an interface extends other interfaces.  It is considered good practice to name operations uniquely within same namespace whenever possible.</p>
  						</item>
  						<item>
--- 786,790 ----
  						<item>
  							<p>A required <att>name</att> attribute</p>
! 							<p>Operation names must be unique within an interface. Beware that <el>operations</el>are local to an <el>interface</el>,so two <el>interface</el> elements sharing the same WSDL target namespace but with different name MAY contain <el>operations</el> which share the same name. Thus, <el>operations</el> cannot be referenced by QName since the <att>name</att> and WSDL target namespace are not sufficient to uniquely identify an <el>operation</el>. In order to uniquely identify an <el>operation</el>, one must first identify the <el>interface</el> by QName and then identify the <el>operation</el> within that <el>interface</el> by a further QName. As explained in section @@@, this fact has compound impact when an interface extends other interfaces.  It is considered good practice to name operations uniquely within same namespace whenever possible.</p>
  						</item>
  						<item>
***************
*** 819,823 ****
  						<head>Defining Interface Operations</head>
  						<eg xml:space="preserve">
! &lt;definitions 
  	targetNamespace= &quot;http://www.greath.com/2004/05/wsdl/resSvc.wsdl&quot; 
  	xmlns:ghns = &quot;http://www.greath.com/2004/05/schemas/resSvc.xsd&quot;
--- 817,821 ----
  						<head>Defining Interface Operations</head>
  						<eg xml:space="preserve">
! &lt;description 
  	targetNamespace= &quot;http://www.greath.com/2004/05/wsdl/resSvc.wsdl&quot; 
  	xmlns:ghns = &quot;http://www.greath.com/2004/05/schemas/resSvc.xsd&quot;
***************
*** 870,874 ****
    &lt;/interface&gt;
  
! &lt;/definitions&gt;
  </eg>
  					</example>
--- 868,872 ----
    &lt;/interface&gt;
  
! &lt;/description&gt;
  </eg>
  					</example>
***************
*** 970,976 ****
        interface. The bindings may occur via defaulting rules
        which allow one to specify default bindings for all operations
!       (see, for example <bibref ref="WSDL-PART3"/>) or by directly
        listing each operation of the interface and
!       defining bindings for them. Thus, it is an error for a <el>binding</el> to not define bindings for all the operations of the corresponding interface.</p>
  			<p>The binding constructs can be grouped into two categories: those in the WSDL namespace of "http://www.w3.org/@@@@/@@/wsdl" and those not in WSDL namespace. WSDL 2.0 part 1 defines a set of binding constructs within the WSDL namespace that can be used to host binding detail definitions. Constructs for defining binding details are defined within their own namespaces which must be different from the WSDL namespace. ll these binding detail constructs are defined outside WSDL namespace, and are typically used as extensions of the hosting WSDL binding constructs.  In the following sections, we will introduce the hosting WSDL binding constructs first, and then move on the the binding extensions.
        </p><div2 id="more-bindings-wsdl">
--- 968,974 ----
        interface. The bindings may occur via defaulting rules
        which allow one to specify default bindings for all operations
!       (for example, see the SOAP binding in  <emph>WSDL 2.0 Bindings</emph> <bibref ref="WSDL-PART3"/> section 2.3 <xspecref href="http://www.w3.org/TR/2004/WD-wsdl20-bindings-20040803/#soap-defaults">Default Binding Rules</xspecref>) or by directly
        listing each operation of the interface and
!       defining bindings for them. Thus, it is an error for a binding to not define bindings for all the operations of the corresponding interface.</p>
  			<p>The binding constructs can be grouped into two categories: those in the WSDL namespace of "http://www.w3.org/@@@@/@@/wsdl" and those not in WSDL namespace. WSDL 2.0 part 1 defines a set of binding constructs within the WSDL namespace that can be used to host binding detail definitions. Constructs for defining binding details are defined within their own namespaces which must be different from the WSDL namespace. ll these binding detail constructs are defined outside WSDL namespace, and are typically used as extensions of the hosting WSDL binding constructs.  In the following sections, we will introduce the hosting WSDL binding constructs first, and then move on the the binding extensions.
        </p><div2 id="more-bindings-wsdl">
***************
*** 978,982 ****
  				<p>Let's have a look at the constructs defined within the WSDL namespace first. The XML syntax of these constructs is summarized below:</p>
  				<eg xml:space="preserve">
! &lt;definitions targetNamespace=&quot;<emph>xs:anyURI</emph>&quot; &gt;
    
    &lt;<b>binding</b> name=&quot;<emph>xs:NCName</emph>&quot; interface=&quot;<emph>xs:QName</emph>&quot;? &gt;
--- 976,980 ----
  				<p>Let's have a look at the constructs defined within the WSDL namespace first. The XML syntax of these constructs is summarized below:</p>
  				<eg xml:space="preserve">
! &lt;description targetNamespace=&quot;<emph>xs:anyURI</emph>&quot; &gt;
    
    &lt;<b>binding</b> name=&quot;<emph>xs:NCName</emph>&quot; interface=&quot;<emph>xs:QName</emph>&quot;? &gt;
***************
*** 1008,1012 ****
    &lt;/<b>binding</b>&gt;*
  
! &lt;/definitions&gt;
  </eg>
  				<ednote>
--- 1006,1010 ----
    &lt;/<b>binding</b>&gt;*
  
! &lt;/description&gt;
  </eg>
  				<ednote>
***************
*** 1018,1022 ****
  				</ednote>
  				<ednote><name>dbooth</name><edtext>Trim some of this?  Redundant?</edtext></ednote><p>One WSDL <el>description</el> element may contain zero or more <el>binding</el> elements as its direct children.</p>
! 				<p>The <el>binding</el> element has a required <att>name</att> attribute. Within the same target namespace , each binding must have a unique name. The optional <att>interface</att> attribute refers, by QName, to an <el>interface</el>. See the previous section for how the <att>interface</att>attribute can be used to achieve different levels of reusability of the <el>binding</el>. </p>
  				<p>Careful readers may have already noticed that the <el>binding</el> syntax is to some extent symmetric with the syntax of <el>interface</el>, in other words, each interface construct has a binding counterpart. Simliar to <el>interface</el>,a <el>binding</el> element can contain zero or more <el>fault</el>, zero or more <el>operation</el>, zero or more <el>feature</el>, and zero or more <el>property</el>. Be aware that despite of the syntax similarity, they are indeed different constructs since they are in different symbol spaces and are designed for different purpose. The <el>feature</el> and <el>property</el> element will be examined in section @@@@. We will explain the binding <el>fault</el> and <el>operation</el> constructs in the following sections. </p>
  				<div3 id="more-bindings-faults">
--- 1016,1020 ----
  				</ednote>
  				<ednote><name>dbooth</name><edtext>Trim some of this?  Redundant?</edtext></ednote><p>One WSDL <el>description</el> element may contain zero or more <el>binding</el> elements as its direct children.</p>
! 				<p>The <el>binding</el> element has a required <att>name</att> attribute. Within the same WSDL target namespace , each binding must have a unique name. The optional <att>interface</att> attribute refers, by QName, to an <el>interface</el>. See the previous section for how the <att>interface</att>attribute can be used to achieve different levels of reusability of the <el>binding</el>. </p>
  				<p>Careful readers may have already noticed that the <el>binding</el> syntax is to some extent symmetric with the syntax of <el>interface</el>, in other words, each interface construct has a binding counterpart. Simliar to <el>interface</el>,a <el>binding</el> element can contain zero or more <el>fault</el>, zero or more <el>operation</el>, zero or more <el>feature</el>, and zero or more <el>property</el>. Be aware that despite of the syntax similarity, they are indeed different constructs since they are in different symbol spaces and are designed for different purpose. The <el>feature</el> and <el>property</el> element will be examined in section @@@@. We will explain the binding <el>fault</el> and <el>operation</el> constructs in the following sections. </p>
  				<div3 id="more-bindings-faults">
***************
*** 1034,1038 ****
  					<p>A binding <el>operation</el> describes a concrete binding of a particular 
  operation of an interface to a particular concrete message format.A particular 
! operation of an interface is uniquely identified by the target namespace of the 
  interface and the name of the operation within that interface, via the required <att>ref</att> attribute of binding <el>operation</el>. For each <el>operation</el> within a <el>binding</el>, the value of <att>ref</att> attribute MUST be unique. That is, 
  one cannot define multiple bindings for the same interface operation within a given 
--- 1032,1036 ----
  					<p>A binding <el>operation</el> describes a concrete binding of a particular 
  operation of an interface to a particular concrete message format.A particular 
! operation of an interface is uniquely identified by the WSDL target namespace of the 
  interface and the name of the operation within that interface, via the required <att>ref</att> attribute of binding <el>operation</el>. For each <el>operation</el> within a <el>binding</el>, the value of <att>ref</att> attribute MUST be unique. That is, 
  one cannot define multiple bindings for the same interface operation within a given 
***************
*** 1043,1047 ****
  						<edtext>
  							Need clarification - wording about qname uniqueness in part 1 section 2.10.1 and 2.11.1 need to change. it's not correct to say "A particular 
! operation of an interface is uniquely identified by the target namespace of the interface and the name of the operation within that interface"
  						</edtext>
  					</ednote>
--- 1041,1045 ----
  						<edtext>
  							Need clarification - wording about qname uniqueness in part 1 section 2.10.1 and 2.11.1 need to change. it's not correct to say "A particular 
! operation of an interface is uniquely identified by the WSDL target namespace of the interface and the name of the operation within that interface"
  						</edtext>
  					</ednote>
***************
*** 1055,1059 ****
  					<eg xml:space="preserve">
  
! &lt;definitions 
  	targetNamespace= &quot;http://www.greath.com/2004/05/wsdl/resSvc.wsdl&quot; 
  	xmlns:ghns = &quot;http://www.greath.com/2004/05/schemas/resSvc.xsd&quot;
--- 1053,1057 ----
  					<eg xml:space="preserve">
  
! &lt;description 
  	targetNamespace= &quot;http://www.greath.com/2004/05/wsdl/resSvc.wsdl&quot; 
  	xmlns:ghns = &quot;http://www.greath.com/2004/05/schemas/resSvc.xsd&quot;
***************
*** 1061,1065 ****
      xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
  
! &lt;/definitions&gt;
  </eg>
  				</example>
--- 1059,1063 ----
      xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
  
! &lt;/description&gt;
  </eg>
  				</example>
***************
*** 1070,1074 ****
  					<head>HTTP Binding example placeholder - to be completed</head>
  					<eg xml:space="preserve">
! &lt;definitions 
  	targetNamespace= &quot;http://www.greath.com/2004/05/wsdl/resSvc.wsdl&quot; 
  	xmlns:ghns = &quot;http://www.greath.com/2004/05/schemas/resSvc.xsd&quot;
--- 1068,1072 ----
  					<head>HTTP Binding example placeholder - to be completed</head>
  					<eg xml:space="preserve">
! &lt;description 
  	targetNamespace= &quot;http://www.greath.com/2004/05/wsdl/resSvc.wsdl&quot; 
  	xmlns:ghns = &quot;http://www.greath.com/2004/05/schemas/resSvc.xsd&quot;
***************
*** 1076,1080 ****
      xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
  
! &lt;/definitions&gt;
  </eg>
  				</example>
--- 1074,1078 ----
      xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
  
! &lt;/description&gt;
  </eg>
  				</example>
***************
*** 1085,1091 ****
  		<div1 id="more-service">
  			<head>More on  Service Endpoints </head>
! 			<ednote><name>dbooth</name><edtext>This section now seems largely redundant.  Perhaps we should reduce or eliminate it.</edtext></ednote><p>As described previously, the <el>service</el> construct specifies a set of alternate endpoints at which a service is available. Zero or more <el>services</el> can be defined within a <el>definitions</el> element. However, each service is limited to a single interface.  The XML syntax of <el>service</el> is summarized below:</p>
  			<eg xml:space="preserve">
! &lt;definitions targetNamespace=&quot;<emph>xs:anyURI</emph>&quot; &gt;
  
    &lt;service name=&quot;<emph>xs:NCName</emph>&quot; interface=&quot;<emph>xs:QName</emph>&quot; 
--- 1083,1089 ----
  		<div1 id="more-service">
  			<head>More on  Service Endpoints </head>
! 			<ednote><name>dbooth</name><edtext>This section now seems largely redundant.  Perhaps we should reduce or eliminate it.</edtext></ednote><p>As described previously, the <el>service</el> construct specifies a set of alternate endpoints at which a service is available. Zero or more <el>services</el> can be defined within a <el>description</el> element. However, each service is limited to a single interface.  The XML syntax of <el>service</el> is summarized below:</p>
  			<eg xml:space="preserve">
! &lt;description targetNamespace=&quot;<emph>xs:anyURI</emph>&quot; &gt;
  
    &lt;service name=&quot;<emph>xs:NCName</emph>&quot; interface=&quot;<emph>xs:QName</emph>&quot; 
***************
*** 1097,1101 ****
    &lt;/service&gt;*
  
! &lt;/definitions&gt;
  </eg>
  			<p>A <el>service</el> has a required <att>name</att> attribute (also see section @@@@ for service reference). Each <el>service</el> within a same namespace must be named uniquely. A <el>service</el> can only implement one single interface, and it must specify the single interface it implements via the <att>interface</att> attribute. </p>
--- 1095,1099 ----
    &lt;/service&gt;*
  
! &lt;/description&gt;
  </eg>
  			<p>A <el>service</el> has a required <att>name</att> attribute (also see section @@@@ for service reference). Each <el>service</el> within a same namespace must be named uniquely. A <el>service</el> can only implement one single interface, and it must specify the single interface it implements via the <att>interface</att> attribute. </p>
***************
*** 1114,1140 ****
  				<date>20040526</date>
  				<edtext>
! 					Topics for this section is still TBD.
  				</edtext>
  			</ednote>
! 			<p>Import mechanism and authoring style
! 	-  Extensibility 
! 	-  Security Considerations
! 	-  Versioning and services equivalency
! 	-  Mapping to RDF and semantic web
! 	-  Differences b/t WSDL2.0 and WSDL1.1?
! </p>
  			<div2 id="adv-extensibility">
  				<head>Extensibility</head>
! 			<p>WSDL 2.0 provides two extensibility mechanisms: an open content model, which allows XML elements and attributes from other (non-wsdl)  XML namespaces to be interspersed into a WSDL document; and <xspecref href="&w3c-designation-part1;#Features">Features</xspecref> and <xspecref href="&w3c-designation-part1;#Properties">Properties</xspecref>.   Both mechanisms use URIs to identify the semantics of the extensions.  For extension XML elements and attributes, the namespace URI of the extension element or attribute acts as an unambiguous name for the semantics of that extension.  For Features and Properties, the Feature or Property is named by a URI.</p><p>In either case, the URI that identifies the semantics of an extension SHOULD be dereferenceable to a document that describes the semantics of that extension.  As of this writing, there is no generally accepted standard for what kind of document that should be.  However, the <loc href="http://www.w3.org/2001/tag/">W3C TAG</loc> has been discussing the isue (see TAG issue <loc href="http://www.w3.org/2001/tag/issues.html?type=1#namespaceDocument-8">namespaceDocument-8</loc>) and is likely to provide guidance at some point.</p><div3 id="adv-optional-versus-required"><head>Optional Versus Required Extensions</head><p>Extensions can either be required or optional: An <emph>optional</emph> extension is one that the requester agent may either engage or ignore, entirely at its discretion, and is signaled by attribute <code>wsdl:required="false"</code>; whereas a <emph>required</emph> extension is one that MUST be supported and engaged by the requester agent in order for the interaction to succeed properly, and is signaled by attribute <code>wsdl:required="true"</code>.   </p><p>The optionality signaled by <code>wsdl:required="false"</code>  pertains only to the <emph>requester</emph> agent -- not the provider agent.  The provider agent MUST support both optional and required extensions that it advertises in its WSDL document.  </p><p>A WSDL processor (acting to ealize a requester agent) need not support every conceivable required extension, but if it sees a required extension that it does not recognize or does not support, then it MUST fault.  </p></div3><div3 id="adv-scope-of-wsdl-required"><head>Scoping of the wsdl:required Attribute</head><p>@@ Need to check the scoping rules to see if this is correct. @@</p><p>As a convenience mechanism, the <code>wsdl:required</code> attribute need not be specified on every extension element.  If it is omitted from an extension element, its effective value is inherited from the smallest enclosing scope that explicitly sets its value.  If there is no enclosing scope that explicitly sets its value, then its value defaults to <code>false</code>.  </p><p>Because portions of a Web service description  can be written in different physical documents by different people, you  should be cautious about setting <code>wsdl:required="false"</code> when an outer scope, written by someone else, had set <code>wsdl:required="true"</code>.</p>p>@@ Add example? @@</p></div3></div2><div2 id="adv-FP">
  				<head>Features and Properties</head>
  
  				<p>[Add material from http://lists.w3.org/Archives/Public/www-ws-desc/2003Oct/0144.html ]</p>
  
- 			</div2><div2 id="adv-multiple-docs-describing-same-service">
- 				<head>Multiple Logical WSDL Documents Describing the Same Service</head>
- 				<p>[Acknowledge that multiple logical WSDL documents might try to describe the same service.  Explain why some might do this intentionally, why it might cause problems for some systems, and explain that this is outside scope of the WSDL language.  See thread starting at http://lists.w3.org/Archives/Public/www-ws-desc/2003Dec/0045.html ]</p>
  			</div2><div2 id="adv-import-and-authoring">
  				<head>Import mechanism and authoring style</head>
  				<p>[Discuss how WSDL documents should be factored to allow significant components to be reused.]</p>
  			</div2>
  			
--- 1112,1136 ----
  				<date>20040526</date>
  				<edtext>
! 					This section is very incomplete, and topics are still TBD.
  				</edtext>
  			</ednote>
! 			
  			<div2 id="adv-extensibility">
  				<head>Extensibility</head>
! 			<p>WSDL 2.0 provides two extensibility mechanisms: an open content model, which allows XML elements and attributes from other (non-wsdl)  XML namespaces to be interspersed into a WSDL document; and <xspecref href="&w3c-designation-part1;#Features">Features</xspecref> and <xspecref href="&w3c-designation-part1;#Properties">Properties</xspecref>.   Both mechanisms use URIs to identify the semantics of the extensions.  For extension XML elements and attributes, the namespace URI of the extension element or attribute acts as an unambiguous name for the semantics of that extension.  For Features and Properties, the Feature or Property is named by a URI.</p><p>In either case, the URI that identifies the semantics of an extension SHOULD be dereferenceable to a document that describes the semantics of that extension.  As of this writing, there is no generally accepted standard for what kind of document that should be.  However, the <loc href="http://www.w3.org/2001/tag/">W3C TAG</loc> has been discussing the isue (see TAG issue <loc href="http://www.w3.org/2001/tag/issues.html?type=1#namespaceDocument-8">namespaceDocument-8</loc>) and is likely to provide guidance at some point.</p><div3 id="adv-optional-versus-required"><head>Optional Versus Required Extensions</head><p>Extensions can either be required or optional: An <emph>optional</emph> extension is one that the requester agent may either engage or ignore, entirely at its discretion, and is signaled by attribute <code>wsdl:required="false"</code>; whereas a <emph>required</emph> extension is one that MUST be supported and engaged by the requester agent in order for the interaction to succeed properly, and is signaled by attribute <code>wsdl:required="true"</code>.   </p><p>The optionality signaled by <code>wsdl:required="false"</code>  pertains only to the <emph>requester</emph> agent -- not the provider agent.  The provider agent MUST support both optional and required extensions that it advertises in its WSDL document.  </p><p>A WSDL processor (acting to ealize a requester agent) need not support every conceivable required extension, but if it sees a required extension that it does not recognize or does not support, then it MUST fault.  </p></div3><div3 id="adv-scope-of-wsdl-required"><head>Scoping of the wsdl:required Attribute</head><ednote><edtext>To do: Need to check the scoping rules to see if this is correct.</edtext></ednote><p>As a convenience mechanism, the <code>wsdl:required</code> attribute need not be specified on every extension element.  If it is omitted from an extension element, its effective value is inherited from the smallest enclosing scope that explicitly sets its value.  If there is no enclosing scope that explicitly sets its value, then its value defaults to <code>false</code>.  </p><p>Because portions of a Web service description  can be written in different physical documents by different people, one  should be cautious about setting <code>wsdl:required="false"</code> when an outer scope, written by someone else, had set <code>wsdlrequired="true"</code>.</p></div3></div2><div2 id="adv-FP">
  				<head>Features and Properties</head>
  
  				<p>[Add material from http://lists.w3.org/Archives/Public/www-ws-desc/2003Oct/0144.html ]</p>
  
  			</div2><div2 id="adv-import-and-authoring">
  				<head>Import mechanism and authoring style</head>
  				<p>[Discuss how WSDL documents should be factored to allow significant components to be reused.]</p>
+ 			</div2><div2 id="adv-multiple-docs-describing-same-service">
+ 				<head>Multiple Logical WSDL Documents Describing the Same Service</head>
+ 				<p>[Acknowledge that multiple logical WSDL documents might try to describe the same service.  Explain why some might do this intentionally, why it might cause problems for some systems, and explain that this is outside scope of the WSDL language.  See thread starting at http://lists.w3.org/Archives/Public/www-ws-desc/2003Dec/0045.html ]</p>
+ 			</div2><div2 id="adv-versioning">
+ 				<head>Versioning and Service Equivalency</head>
+ 				<p>[ See also <loc href="http://lists.w3.org/Archives/Public/www-ws-desc/2003Dec/0047.html">http://lists.w3.org/Archives/Public/www-ws-desc/2003Dec/0047.html</loc> ]</p>
+ 				<p>Per decision 2004-03-04 to add the results of the Versioning Task Force also.</p>
  			</div2>
  			
***************
*** 1146,1154 ****
  				<head>Security Considerations</head>
  			</div2>
! 			<div2 id="adv-versioning">
! 				<head>Versioning and Service Equivalency</head>
! 				<p>[ See also <loc href="http://lists.w3.org/Archives/Public/www-ws-desc/2003Dec/0047.html">http://lists.w3.org/Archives/Public/www-ws-desc/2003Dec/0047.html</loc> ]</p>
! 				<p>Per decision 2004-03-04 to add the results of the Versioning Task Force also.</p>
! 			</div2>
  			<div2 id="adv-RPCstyle">
  				<head>Operation Style and RPC</head>
--- 1142,1146 ----
  				<head>Security Considerations</head>
  			</div2>
! 			
  			<div2 id="adv-RPCstyle">
  				<head>Operation Style and RPC</head>
***************
*** 1157,1162 ****
  			<div2 id="adv-message-dispatch">
  				<head>Enabling Easy Message Dispatch</head>
! 				<p>Suppose a WSDL document has two input-output operation and uses the same input message schema for both.  When the service receives the input message, how will the service know which operation is supposed to be invoked?  Although the data contained in a runtime message may be sufficient to distinguish between the operations, this can be a problem for WSDL toolkits that are looking only at the message schema, rather than the actual messages.   (For example, the toolkit may be operating at designtime, without access to the runtime messages.) This is the problem of <emph>dispatch</emph>.  How can you write your WSDL document to ensure easy message dispatch?  </p>
! 				<p>One technique is to ensure that the top-level elements declared in your message schema are different for different operations.  This is probably the most general solution, since it is guaranteed to provide a way to perform dispatch, without preventing toolkits from potentially using other dispatch techniques.</p>
  				<p>Another technique is to define a required feature that enables a  particular dispatching convention.  This approach makes the dispatching convention explicit, although it may not be supported by every WSDL toolkit.</p>
  			</div2><div2 id="adv-get-vs-post"><head>GET Versus POST: Which to Use?</head>
--- 1149,1154 ----
  			<div2 id="adv-message-dispatch">
  				<head>Enabling Easy Message Dispatch</head>
! 				<p>Suppose a WSDL document has two input-output operation and uses the same input message schema for both.  When the service receives the input message, how will the service know which operation is supposed to be invoked?  Although the data contained in a runtime message may be sufficient to distinguish between the operations, this can be a problem for WSDL toolkits that are looking only at the message schema, rather than the actual messages.   (For example, the toolkit may be operating at designtime, without access to the runtime messages.) This is the problem of <emph>dispatch</emph>.  How can a WSDL document be written to ensure easy message dispatch?  </p>
! 				<p>One technique is to ensure that the top-level elements declared in the message schema are different for different operations.  This is probably the most general solution, since it is guaranteed to provide a way to perform dispatch, without preventing toolkits from potentially using other dispatch techniques.</p>
  				<p>Another technique is to define a required feature that enables a  particular dispatching convention.  This approach makes the dispatching convention explicit, although it may not be supported by every WSDL toolkit.</p>
  			</div2><div2 id="adv-get-vs-post"><head>GET Versus POST: Which to Use?</head>
***************
*** 1177,1181 ****
  			</div2>
  			<div2 id="adv-schema-location">
! 				<head>schemaLocation</head>
  				<p>[ACTION: 2003-11-13: David to add discussion / example(s) re:
                        @schemaLocation for embedded schemas to the
--- 1169,1173 ----
  			</div2>
  			<div2 id="adv-schema-location">
! 				<head>The schemaLocation Attribute</head>
  				<p>[ACTION: 2003-11-13: David to add discussion / example(s) re:
                        @schemaLocation for embedded schemas to the
***************
*** 1185,1210 ****
  			
  			<div2 id="adv-rdf-mapping">
! 				<head>Mapping to RDF and semantic web</head>
  			</div2>
  			<!-- **********************************NotesOnURIs***************** --><div2 id="adv-notes-on-uris"><head>Notes on URIs</head><p>This section does not directly contribute to the
! specification, but provide background that may be useful when
! implementing the specification.</p><div3 id="adv-namespaces-and-schema-locations"><head>XML namespaces and schema locations</head><p>It is a common misperception to equate the <att>
! targetNamespace</att> of an XML schema or the value of the
  <att>xmlns</att> attribute in XML instances with the location
! of the corresponding schema. Since namespaces are in fact
! URIs, and URIs may be locations, and you may be able to
! retrieve a schema from that location, it does not mean that
! is the only schema that is associated with that namespace.
  There can be multiple schemas associated with a particular
  namespace, and it is up to a processor of XML to determine
  which one to use in a particular processing context. The WSDL
  specification provides the processing context here via the
! <att>import</att> mechanism, which is based on the XML
! schemas grammar for the similar concept.</p></div3><div3 id="adv-relative-uris"><head>Relative URIs</head><p>Throughout this document you see fully qualified URIs used
! in WSDL and XSD documents. The use of a fully qualified URI
  is simply to illustrate the referencing concepts. The use of
! relative URIs is completely allowed and is warranted in many
  cases. For information on processing relative URIs, see
! <loc href="http://www.ietf.org/rfc/rfc2396.txt">RFC2396</loc>.</p></div3><div3 id="adv-generating-uris"><head>Generating URIs</head><p>When working with WSDL, it is sometimes desirable to make
  up a URI for an entity, but not make the URI globally unique
  for all time and have it &quot;mean&quot; that version of the
--- 1177,1200 ----
  			
  			<div2 id="adv-rdf-mapping">
! 				<head>Mapping to RDF and Semantic Web</head>
  			</div2>
  			<!-- **********************************NotesOnURIs***************** --><div2 id="adv-notes-on-uris"><head>Notes on URIs</head><p>This section does not directly contribute to the
! specification, but provides background that may be useful when
! implementing the specification.</p><div3 id="adv-namespaces-and-schema-locations"><head>XML Namespaces and Schema Locations</head><p>It is a common misperception to equate either the  target namespace of an XML Schema or the value of the
  <att>xmlns</att> attribute in XML instances with the location
! of the corresponding schema. Even though namespaces are URIs, and URIs may be locations, and it may be possible to
! retrieve a schema from such a location, this does not mean that the retrieved schema
! is the <emph>only</emph> schema that is associated with that namespace.
  There can be multiple schemas associated with a particular
  namespace, and it is up to a processor of XML to determine
  which one to use in a particular processing context. The WSDL
  specification provides the processing context here via the
! <att>import</att> mechanism, which is based on XML
! Schema's term for the similar concept.</p></div3><div3 id="adv-relative-uris"><head>Relative URIs</head><p>Throughout this document there are fully qualified URIs used
! in WSDL and XSD examples. The use of a fully qualified URI
  is simply to illustrate the referencing concepts. The use of
! relative URIs is allowed and warranted in many
  cases. For information on processing relative URIs, see
! <loc href="http://www.ietf.org/rfc/rfc2396.txt">RFC2396</loc>.</p></div3><div3 id="adv-generating-uris"><head>Generating URIs</head><ednote><name>dbooth</name><edtext>Is this convention vendor-specific?  http://tempuri.org only seems to mention MS tools.  If so, this section needs to be further edited or removed.</edtext></ednote><p>When working with WSDL, it is sometimes desirable to make
  up a URI for an entity, but not make the URI globally unique
  for all time and have it &quot;mean&quot; that version of the
***************
*** 1215,1223 ****
  For example, two people or programs could choose to
  simultaneously use the URI <attval>
! http://tempuri.org/myschema</attval> for two completely
  different schemas, and as long as the scope of the use of the
  URIs does not intersect, then they are considered unique
! enough. This has the further benefit that the entity referred
! to by the URI can be versioned without having to generate a
  new URI, as long as it makes sense within the processing
  context. It is not recommended that <attval>
--- 1205,1212 ----
  For example, two people or programs could choose to
  simultaneously use the URI <attval>
! http://tempuri.org/userSchema</attval> for two completely
  different schemas, and as long as the scope of the use of the
  URIs does not intersect, then they are considered unique
! enough. This has the further benefit that the entity referenced by the URI can be versioned without having to generate a
  new URI, as long as it makes sense within the processing
  context. It is not recommended that <attval>
***************
*** 1311,1319 ****
  	  Dave Raggett, Arnaud Le Hors, Ian Jacobs, 24 December 1999.</bibl>
  -->
! 					<bibl key="WSDL 2.0 Bindings" href="&w3c-designation-part3;" id="WSDL-PART3">
  						<titleref>Web Services Description Language (WSDL) Version
! 	    2.0 Part 3: Bindings</titleref>, J-J. Moreau, J.
! 	    Schlimmer, Editors. World Wide Web Consortium, &draft.day;
! 	    &draft.month; &draft.year;. This version of the "Web
  	    Services Description Version 2.0: Bindings" Specification
  	    is available at &w3c-designation-part3;. The <loc href="&part3.latest;">latest version of "Web Services
--- 1300,1351 ----
  	  Dave Raggett, Arnaud Le Hors, Ian Jacobs, 24 December 1999.</bibl>
  -->
! 					
! 					<bibl key="WSDL 2.0 Core Language" href="&w3c-designation-part1;" id="WSDL-PART1">
! 						<titleref>Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language</titleref>,
! 	        R. Chinnici, M. Gudgin, J-J. Moreau, A. Ryman, J. Schlimmer, S. Weerawarana, Editors. World
! 	    Wide Web Consortium,
! 		 <!--
! 		  &draft.day; &draft.month;
! 	    &draft.year;. 
! 		 -->
!        3 August 2004.		 
! 		 This version of the "Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language"
! 	    Specification is available at &w3c-designation-part1;. The
! 	    <loc href="&part1.latest;">latest version of "Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language"</loc> is available at &part1.latest;.
! 	  </bibl>
! 	  
! 	  <bibl key="WSDL 2.0 Predefined Extensions" href="&w3c-designation-part2;" id="WSDL-PART2">
! 						<titleref>Web Services Description Language (WSDL) 
! 						Version 2.0 Part 2: Predefined Extensions</titleref>,
! 	    M. Gudgin, A. Lewis, and J.  Schlimmer, Editors. World
! 	    Wide Web Consortium, 
! 		 <!--
! 		  &draft.day; &draft.month;
! 	    &draft.year;. 
! 		 -->
!        3 August 2004.		 
! 		 This version of the "Web Services Description Language (WSDL) 
! 						Version 2.0 Part 2: Predefined Extensions"
! 	    Specification is available at &w3c-designation-part2;. The
! 	    <loc href="&part2.latest;">latest version of "Web Services Description Language (WSDL) 
! 						Version 2.0 Part 2: Predefined Extensions"</loc> is available at &part2.latest;.
! 	  </bibl>
! 					
! 	
! 					
! 		<bibl key="WSDL 2.0 Bindings" href="&w3c-designation-part3;" id="WSDL-PART3">
  						<titleref>Web Services Description Language (WSDL) Version
! 	    2.0 Part 3: Bindings</titleref>, H. Haas,
!     P. Le Hégaret,
!     J-J. Moreau,
!     D. Orchard, 
!     J. Schlimmer, 
!     S. Weerawarana, Editors. World Wide Web Consortium, 
! 		 <!--
! 		  &draft.day; &draft.month;
! 	    &draft.year;. 
! 		 -->
!        3 August 2004.		 
! 		 This version of the "Web
  	    Services Description Version 2.0: Bindings" Specification
  	    is available at &w3c-designation-part3;. The <loc href="&part3.latest;">latest version of "Web Services
***************
*** 1321,1337 ****
  	    Bindings"</loc> is available at &part3.latest;.
  	  </bibl>
! 					<bibl key="WSDL 2.0 Message Exchange Patterns" href="&w3c-designation-part2;" id="WSDL-PART2">
! 						<titleref>Web Services Description Language (WSDL) Version
! 	    2.0 Part 2: Message Exchange Patterns</titleref>,
! 	    M. Gudgin, A. Lewis, and J.  Schlimmer, Editors. World
! 	    Wide Web Consortium, &draft.day; &draft.month;
! 	    &draft.year;. This version of the "Web Services
! 	    Description Version 2.0: Message Exchange Patterns"
! 	    Specification is available at &w3c-designation-part2;. The
! 	    <loc href="&part2.latest;">latest version of "Web Services
! 	    Description Language (WSDL) Version 2.0 Part 2: Message
! 	    Exchange Patterns"</loc> is available at &part2.latest;.
! 	  </bibl>
! 					<bibl key="WSDL 2.0 RDF Mapping" href="&w3c-designation-part2;" id="WSDL-PART4">
  						<titleref>Web Services Description (WSDL) Version 2.0:
  	    RDF Mapping</titleref>, XYZ,
--- 1353,1359 ----
  	    Bindings"</loc> is available at &part3.latest;.
  	  </bibl>
! 	  
! 	  <!--
! 	  <bibl key="WSDL 2.0 RDF Mapping" href="&w3c-designation-part4;" id="WSDL-PART4">
  						<titleref>Web Services Description (WSDL) Version 2.0:
  	    RDF Mapping</titleref>, XYZ,
***************
*** 1339,1359 ****
  	    &draft.month; &draft.year;. This version of the "Web Services
  	    Description Version 2.0: RDF Mapping" Specification is available
! 	    at &w3c-designation-part2;. The <loc href="&part2.latest;">latest version of "Web Services
  	    Description Version 2.0: RDF Mapping"</loc> is available at
! 	    &part2.latest;.
  	  </bibl>
  					<bibl id="tag-uri-comp" key="TAG URI FINDING" href="http://www.w3.org/2001/tag/findings">
! 						<titleref>TAG Finding on URI Comparisn</titleref>, X. Foo, Y. Bar,
  	    Authors. W3C Technical Architecture Group, Month, Year.
              Available at http://www.w3.org/2001/tag/findings/ZZZZ.
  	  </bibl>
! 					<bibl id="webarch" key="Web Architecture" href="http://www.w3.org/TR/2003/WD-webarch-20031209/">
! 						<titleref>Architecture of the World Wide Web, First
! 	    Edition</titleref>, Ian Jacobs, Editor. W3C Technical
! 	    Architecture Group, December, 2003.  Available at
! 	    http://www.w3.org/TR/2003/WD-webarch-20031209/.
  	  </bibl>
! 				</blist>
  			</div2>
  			<div2 id="Informative-References">
  				<head>Informative References</head>
--- 1361,1404 ----
  	    &draft.month; &draft.year;. This version of the "Web Services
  	    Description Version 2.0: RDF Mapping" Specification is available
! 	    at &w3c-designation-part4;. The <loc href="&part4.latest;">latest version of "Web Services
  	    Description Version 2.0: RDF Mapping"</loc> is available at
! 	    &part4.latest;.
  	  </bibl>
+ 	  -->
+ 	  <!--
  					<bibl id="tag-uri-comp" key="TAG URI FINDING" href="http://www.w3.org/2001/tag/findings">
! 						<titleref>TAG Finding on URI Comparison</titleref>, X. Foo, Y. Bar,
  	    Authors. W3C Technical Architecture Group, Month, Year.
              Available at http://www.w3.org/2001/tag/findings/ZZZZ.
  	  </bibl>
! 	  -->
! 	  <bibl id="webarch" key="Web Architecture" href="http://www.w3.org/TR/2004/REC-webarch-20041215/">
! 	  <titleref>Architecture of the World Wide Web, 
! 						Volume One</titleref>, Ian Jacobs,  Norman Walsh, Editors. W3C Technical
! 	    Architecture Group, 15 December, 2004.  Available at
! 	    http://www.w3.org/TR/2004/REC-webarch-20041215/ .
  	  </bibl>
! 				<bibl id="wsarch" key="Web Architecture" href="http://www.w3.org/TR/2004/REC-webarch-20041215/">
! 	  <titleref>Web Services Architecture</titleref>,     David Booth, 
!     Hugo Haas,
!     Francis McCabe, 
!     Eric Newcomer, 
!     Michael Champion,
!     Chris Ferris,
!     David Orchard, Editors. W3C Web Services Architecture Working Group, 11 February 2004.  
! 	 Available at
! 	    http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/ .
! 	  </bibl>
!      
! 	  <bibl key="WS Glossary" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/" id="WSAGLOSS">
!           <titleref>Web Services Glossary</titleref>,
!     Hugo Haas,
!     Allen Brown, Editors. W3C Web Services Architecture Working Group, 11 February 2004.  
! 	 Available at
! 	    http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/ .     
! 		</bibl>
!     </blist>
  			</div2>
+ 			
  			<div2 id="Informative-References">
  				<head>Informative References</head>
***************
*** 1432,1443 ****
  	  http://www.w3.org/TR/wsdl.
  	</bibl>
! 					<bibl key="WSDL 2.0 Primer" href="http://www.w3.org/2002/ws/desc/" id="WSDL-PART0">
! 						<titleref>Web Services Description (WSDL) Version 2.0:
! 	    Primer</titleref>, D. Booth,
! 	    K. Liu, Editors. World Wide Web Consortium, &draft.day;
! 	    &draft.month; &draft.year;. The editors' version of the Web
! 	    Services Description Version 2.0: Primer document is
! 	    available from http://www.w3.org/2002/ws/desc/.
! 	  </bibl>
  					<bibl key="WSD Requirements" href="http://www.w3.org/TR/2002/WD-ws-desc-reqs-20021028" id="WSDReqs">
  						<titleref>Web Services Description
--- 1477,1481 ----
  	  http://www.w3.org/TR/wsdl.
  	</bibl>
! 					
  					<bibl key="WSD Requirements" href="http://www.w3.org/TR/2002/WD-ws-desc-reqs-20021028" id="WSDReqs">
  						<titleref>Web Services Description

Index: wsdl20-primer.html
===================================================================
RCS file: /sources/public/2002/ws/desc/wsdl20/wsdl20-primer.html,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** wsdl20-primer.html	15 Dec 2004 19:24:29 -0000	1.11
--- wsdl20-primer.html	20 Dec 2004 07:32:09 -0000	1.12
***************
*** 58,61 ****
--- 58,62 ----
  </style>
  
+ <link type="text/css" rel="stylesheet" href="zml.css" />
  <link rel="stylesheet" type="text/css"
  href="http://www.w3.org/StyleSheets/TR/base.css" />
***************
*** 99,107 ****
  liability</a>, <a
  href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">
[...1937 lines suppressed...]
! Available at http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/
! .</dd>
  </dl>
  </div>
***************
*** 3536,3548 ****
  http://www.w3.org/TR/wsdl.</dd>
  
- <dt class="label"><a id="WSDL-PART0" name="WSDL-PART0"></a>[WSDL
- 2.0 Primer]</dt>
- 
- <dd><cite><a href="http://www.w3.org/2002/ws/desc/">Web Services
- Description (WSDL) Version 2.0: Primer</a></cite>, D. Booth, K.
- Liu, Editors. World Wide Web Consortium, @@ @@@@ @@@@. The editors'
- version of the Web Services Description Version 2.0: Primer
- document is available from http://www.w3.org/2002/ws/desc/.</dd>
- 
  <dt class="label"><a id="WSDReqs" name="WSDReqs"></a>[WSD
  Requirements]</dt>
--- 3617,3620 ----

Received on Monday, 20 December 2004 07:32:12 UTC