<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='xmlspec.xsl'?>
<!DOCTYPE spec PUBLIC "-//W3C//DTD Specification V2.1//EN" "xmlspec.dtd" [
<!ENTITY % entities SYSTEM "entitieswd.dtd" >
%entities;
<!ENTITY status "&wssas.status;" >
<!ENTITY short-status "&wssas.short-status;" >
 ]>

<spec w3c-doctype="&wssas.w3c-doctype;" role="&wssas.role;">
 <header>
  <title>&wssas.name;</title>
  <w3c-designation>&wssas.w3c-designation;</w3c-designation>
  <w3c-doctype>&wssas.status;</w3c-doctype>
  <pubdate>
   <day>&wssas.day;</day>
   <month>&wssas.month;</month>
   <year>&wssas.year;</year>
  </pubdate>

  <publoc>
   <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
         xlink:show="replace" xlink:actuate="onRequest"
         href="&wssas.dated;">&wssas.dated;
   </loc>
  </publoc>

  <latestloc>
    <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
        xlink:show="replace" xlink:actuate="onRequest"
        href="http://www.w3.org/TR/&wssas.shortname;">http://www.w3.org/TR/&wssas.shortname;
   </loc>
  </latestloc>

  <prevlocs>
   <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
         xlink:show="replace" xlink:actuate="onRequest"
         href="&prev.wssas.dated;">&prev.wssas.dated;
   </loc>
  </prevlocs> 

  <authlist>
   <author> 
    <name>Doug Davis</name>
    <affiliation>IBM</affiliation>
   </author>
   <author> 
    <name>Ashok Malhotra</name>
    <affiliation>Oracle</affiliation>
   </author>
   <author> 
    <name>Katy Warr</name>
    <affiliation>IBM</affiliation>
   </author>
   <author> 
    <name>Wu Chou</name>
    <affiliation>Avaya</affiliation>
   </author>
  </authlist>

  <status id='Status'>
   <p>This is the First Public Working Draft.</p>
   <p>
    Publication as a Working Draft does not imply endorsement by the
    W3C Membership. This is a draft document and can be updated, replaced
    or obsoleted by other documents at any time. It is inappropriate to
    cite this document as other than work in progress.
   </p>
  </status>
 
  <abstract>
   <p>
    This specification defines two WS-Policy assertions that can be used 
    to advertise the requirement to use a certain version of SOAP in 
    message exchanges. 
   </p>
  </abstract>
  
  <langusage>
   <language id="en">English</language>
  </langusage>

  <revisiondesc>
   <p>Last Modified: $Date: 2011/03/28 14:40:42 $</p>
  </revisiondesc>

 </header>

 <body>
  <div1 id="composable">
   <head>Composable Architecture</head>

   <p>
    By using the XML, SOAP <bibref ref="SOAP11"/>,
    <bibref ref="SOAP12"/>, and WSDL <bibref ref="WSDL11"/>
    extensibility models, the Web service
    specifications (WS-*) are designed to be composed with each other
    to provide a rich set of tools for the Web
    services environment. 
   </p>
  </div1>

  <div1 id="intro">
   <head>Introduction</head>

   <p>
    Using the Web Service Policy - Framework <bibref ref="wspolicy"/>
    and Web Services Policy - Attachment <bibref ref="WS-PolicyAttachment"/>
    specifications, an endpoint can indicate support for a variety of 
    features. Two endpoints can then determine if they share compatible 
    features through the policy intersection algorithm defined by the 
    WS-Policy framework. This allows for a programmatic way to locate 
    interoperable endpoints.
   </p>

   <p>
    However, one key aspect of the message exchanges is whether either 
    endpoint requires the use of SOAP 1.1 <bibref ref="SOAP11"/>
    or SOAP 1.2 <bibref ref="SOAP12"/>.  While this information might be 
    obtainable through examination of a WSDL <bibref ref="WSDL11"/>
    document, or implied through some out of band knowledge, there is no 
    way to make this determination during the application of the policy 
    intersection algorithm.  This specification defines two new policy 
    assertions that allows for this critical piece of information to be 
    available during normal policy processing.
   </p>

   <div2 id='Requirements'>
    <head>Requirements</head>

    <p>
     This specification intends to meet the following requirement:
    </p>

    <ulist>
     <item>
      <p>
       Provide a set of policy assertions to indicate the requirement to 
       use a certain version of SOAP. 
      </p>
     </item>
    </ulist>
   </div2>
  </div1>
   
  <div1 id="notterms">
   <head>Notations</head>

   <p>
     This section specifies the notations and namespaces
     used in this specification.
   </p>

   <div2 id="Conventions">
    <head>Notational Conventions</head>

    <p>
     The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
     "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
     document are to be interpreted as described in RFC 2119 
     <bibref ref='RFC2119'/>.
    </p>

    <p>
     This specification uses the following syntax to define outlines for 
     messages:
    </p>

    <ulist>
     <item>
      <p>
       The syntax appears as an XML instance, but values in italics 
       indicate data types instead of literal values.
      </p>
     </item> 
     <item>
      <p>
       Characters are appended to elements and attributes to indicate 
       cardinality:
      </p>
      <ulist> 
       <item> <p> "?" (0 or 1) </p> </item> 
       <item> <p> "*" (0 or more) </p> </item> 
       <item> <p> "+" (1 or more) </p> </item>
      </ulist> 
     </item>
     <item>
      <p>
       The character "|" is used to indicate a choice between alternatives.
      </p>
     </item> 
     <item>
      <p>
       The characters "(" and ")" are used to indicate that contained items 
       are to be treated as a group with respect to cardinality or choice.
      </p>
     </item> 
     <item>
      <p>
       The characters "[" and "]" are used to call out references and 
       property names.
      </p>
     </item>
     <item>
      <p>
       Ellipses (i.e., "...") indicate points of extensibility.
      </p> 
     </item>
     <item>
      <p>
       XML namespace prefixes (see <specref ref="XMLNS"/>) are used to 
       indicate the namespace of the element being defined.
      </p>
     </item>
    </ulist>

    <p>
     This specification can be used in terms of XML Information Set (Infoset)
     <bibref ref="XMLInfoset"/>, even though the specification uses XML 1.0
     terminology. Valid Infoset for this specification is the one
     serializable in XML 1.0, hence the use of XML 1.0.
    </p>
   
   </div2>

   <div2 id="extensions">
    <head>Considerations on the Use of Extensibility Points</head>

    <p>
     The elements defined in this specification MAY be extended at the
     points indicated by their outlines and schema. Implementations MAY
     add child elements and/or attributes at the indicated extension
     points but MUST NOT contradict the semantics of the parent and/or
     owner, respectively. 
    </p>

    <p>
     Extension elements and attributes MUST NOT use the Web Services
     Metadata Exchange namespace URI.
    </p>
   </div2>

   <div2 id="Compliance">
    <head>Compliance</head>
    
    <p>
     An implementation is not compliant with this specification if it fails to
     satisfy one or more of the MUST or REQUIRED level requirements defined 
     herein.  A SOAP Node MUST NOT use the XML namespace identifier for this 
     specification (listed in <specref ref="namespaces"/>) within SOAP 
     Envelopes unless it is compliant with this specification. 
    </p>
    
    <p>
     Normative text within this specification takes precedence over the XML 
     Schema and WSDL descriptions, which in turn take precedence over outlines,
     which in turn take precedence over examples. 
    </p>

    <p>
     Implementations are expected to support both UTF-8 and UTF-16 as
     described in XML 1.0.
    </p>

    <p>
     Implementations of this specification MUST conform to the corrected
     version of WSDL as defined by the 'WSDL Correction' sections of WS-I
     Basic Profile 1.2 <bibref ref="BP12"/> and WS-I Basic Profile 2.0
     <bibref ref="BP20"/>.
    </p>
    
   </div2>

   <div2 id="namespaces">
    <head>XML Namespaces</head>

    <p>
     The XML namespace URI that MUST be used by implementations of this 
     specification is:
    </p>  

    <example>
     <eg><loc href="http://www.w3.org/&wssas.nsprefix;/ws-sas">http://www.w3.org/&wssas.nsprefix;/ws-sas</loc></eg>
    </example>
  
    <p> 
     <specref ref="XMLNS"/> lists XML namespaces that are used in this 
     specification. The choice of any namespace prefix is arbitrary and 
     not semantically significant.
    </p>

    <table id="XMLNS" border="1">
     <caption> Prefixes and XML namespaces used in this specification </caption>

     <tbody>
      <tr>
       <th align="left"> Prefix </th>
       <th align="left"> XML Namespaces </th>
       <th align="left"> Specification(s) </th>
      </tr>
      <tr>
       <td> s </td>
       <td> (Either SOAP 1.1 or 1.2) </td> 
       <td> (Either SOAP 1.1 or 1.2) </td> 
      </tr>
      <tr>
       <td> s11 </td>
       <td> http://schemas.xmlsoap.org/soap/envelope/ </td> 
       <td> <bibref ref="SOAP11"/> </td> 
      </tr>
      <tr>
       <td> s12 </td>
       <td> http://www.w3.org/2003/05/soap-envelope </td> 
       <td> <bibref ref="SOAP12"/> </td> 
      </tr>
      <tr>
       <td> wsa </td>
       <td> http://www.w3.org/2005/08/addressing </td> 
       <td> <bibref ref="AddrCore"/> </td> 
      </tr>
      <tr>
       <td> wsp </td>
       <td> http://www.w3.org/ns/ws-policy </td> 
       <td> <bibref ref="wspolicy"/> </td> 
      </tr>
      <tr>
       <td> wssa </td>
       <td> http://www.w3.org/&wssas.nsprefix;/ws-sas </td> 
       <td> This specification </td> 
      </tr>
      <tr>
       <td> xs </td>
       <td> http://www.w3.org/2001/XMLSchema </td> 
       <td> <bibref ref="XMLSchema1"/> </td> 
      </tr>
     </tbody>
    </table>
 
    <p>
     The working group intends to update the value of the Web Services
     Metadata Exchange namespace URI each time a new version of this document 
     is published until such time that the document reaches Candidate
     Recommendation status. Once it has reached Candidate Recommendation
     status, the working group intends to maintain the value of the
     Web Services Metadata Exchange namespace URI that was assigned in the
     Candidate Recommendation unless significant changes are made that
     impact the implementation or break post-CR implementations of the
     specification. Also see
     <loc href="http://www.w3.org/2001/tag/doc/namespaceState.html">
      http://www.w3.org/2001/tag/doc/namespaceState.html
     </loc> and
     <loc href="http://www.w3.org/2005/07/13-nsuri">
      http://www.w3.org/2005/07/13-nsuri
     </loc>.
    </p>
   </div2>

  </div1>
 
  <div1 id='SOAPAssertions'>
   <head>SOAP Assertions</head> 

   <p>
    An endpoint MAY indicate that it requires the use of a certain version 
    of SOAP by using the following policy assertions with its policy 
    alternatives. 
   </p>

   <div2 id='SAS11'>
    <head>SOAP11 Assertion</head>

    <p>
     The normative outline of this assertion is:
    </p>

    <example>
     <eg>&lt;wssa:SOAP11 ...> ... &lt;wssa:SOAP11></eg>
    </example>

    <p>
     The following describes additional, normative constraints on the 
     outline listed above: 
    </p>

    <glist>
     <gitem>
      <label>/wssa:SOAP11</label>
      <def>
       <p>
        This policy assertion has Endpoint Policy Subject. When 
        present in a policy alternative, it indicates that the SOAP 1.1
        protocol MUST be used when communicating with this endpoint.
       </p>
      </def>
     </gitem>
    </glist>
   </div2>
   
   <div2 id='SAS12'>
    <head>SOAP12 Assertion</head>

    <p>
     The normative outline of this assertion is:
    </p>

    <example>
     <eg>&lt;wssa:SOAP12 ...> ... &lt;wssa:SOAP12></eg>
    </example>

    <p>
     The following describes additional, normative constraints on the 
     outline listed above: 
    </p>

    <glist>
     <gitem>
      <label>/wssa:SOAP12</label>
      <def>
       <p>
        This policy assertion has Endpoint Policy Subject. When 
        present in a policy alternative, it indicates that the SOAP 1.2
        protocol MUST be used when communicating with this endpoint.
       </p>
      </def>
     </gitem>
    </glist>
   </div2>
   
  </div1>

  <div1 id='Examples'>
   <head>Examples</head>
 
   <p>
    The following example shows a sample policy expression that indicates 
    SOAP 1.1 is required:
   </p>

   <example>
    <eg>&lt;wsp:Policy>
  &lt;wssa:SOAP11/>
&lt;/wsp:Policy></eg>
   </example>

   <p>
    The following example shows a sample policy expression that indicates 
    either SOAP 1.1 or SOAP 1.2 can be used:
   </p>

   <example>
    <eg>&lt;wsp:Policy>
  &lt;wsp:ExactlyOne>
    &lt;wssa:SOAP11/>
    &lt;wssa:SOAP12/>
  &lt;/wsp:ExactlyOne>
&lt;/wsp:Policy></eg>
   </example>

   <p>
    The following example shows a WS-Addressing <bibref ref="AddrCore"/>
    endpoint reference that indicates SOAP 1.2 is required for all
    messages sent to the endpoint:
   </p>

   <example>
    <eg>&lt;wsa:EndpointReference>
  &lt;wsa:Address> ... &lt;/wsa:Address>
  &lt;wsp:Policy>
    &lt;wssa:SOAP12/>
  &lt;/wsp:Policy>
&lt;wsa:EndpointReference></eg>
   </example>

  </div1>
   
  <div1 id="acks">
   <head>Acknowledgements</head>

   <p>
    This specification has been developed as a result of joint
    work with many individuals and teams, including: 
     Alessio Soldano (Red Hat),
     Ashok Malhotra (Oracle Corp.),
     Asir Vedamuthu (Microsoft Corp.),
     Bob Freund (Hitachi, Ltd.),
     Bob Natale (MITRE Corp.),
     David Snelling (Fujitsu, Ltd.),
     Doug Davis (IBM),
     Fred Maciel (Hitachi, Ltd.),
     Geoff Bullen (Microsoft Corp.),
     Gilbert Pilz (Oracle Corp.),
     Greg Carpenter (Microsoft Corp.),
     Jeff Mischkinsky (Oracle Corp.),
     Katy Warr (IBM),
     Li Li (Avaya Communications),
     Mark Little (Red Hat),
     Martin Chapman (Oracle Corp.),
     Paul Fremantle (WSO2),
     Paul Nolan (IBM),
     Prasad Yendluri (Software AG),
     Ram Jeyaraman (Microsoft Corp.),
     Sreedhara Narayanaswamy (CA),
     Sumeet Vij (Software AG),
     Tom Rutt (Fujitsu, Ltd.),
     Vikas Varma (Software AG),
     Wu Chou (Avaya Communications),
     Yves Lafon (W3C/ERCIM).
   </p>
  </div1>

  <div1 id="References">
   <head>References</head>

   <div2>
    <head>Normative References</head>

    <blist>
     <bibl key="BP12" id="BP12"
      href="http://ws-i.org/profiles/BasicProfile-1.2-2010-11-09.html">
        <titleref>
         WS-I Profile, Basic Profile Version 1.2
        </titleref>
        , R. Chumbley, et al, Editors.
        Web Services Interoperability Organization (WS-I), 9 November 2010.
     </bibl>

     <bibl key="BP20" id="BP20"
      href="http://ws-i.org/profiles/BasicProfile-2.0-2010-11-09.html">
        <titleref>
         WS-I Profile, Basic Profile Version 2.0
        </titleref>
        , R. Chumbley, et al, Editors.
        Web Services Interoperability Organization (WS-I), 9 November 2010.
     </bibl>

     <bibl key="RFC 2119" id="RFC2119"
      href="http://www.ietf.org/rfc/rfc2119.txt">
       <titleref>
        Key words for use in RFCs to Indicate Requirement Levels
       </titleref>
       , S. Bradner, Author.
       Internet Engineering Task Force, March 1997.
     </bibl>

     <bibl key="SOAP11" id="SOAP11"
      href="http://www.w3.org/TR/2000/NOTE-SOAP-20000508/">
       <titleref>
        W3C Note, "Simple Object Access Protocol (SOAP) 1.1"
       </titleref>
       , D. Box, et al, Editors.
       World Wide Web Consortium (W3C), 8 May 2000.
     </bibl>

     <bibl key="SOAP12" id="SOAP12"
      href="http://www.w3.org/TR/soap12-part1/">
       <titleref>
        W3C Recommendation, "SOAP Version 1.2 Part 1: Messaging Framework"
       </titleref>
       , M. Gudgin, M. Hadley, N. Mendelsohn, J-J. Moreau, H. Frystyk Nielson,
        Editors.
       World Wide Web Consortium (W3C), 27 April 2007.
     </bibl>

     <bibl key="WS-Addressing" id="AddrCore"
      href="http://www.w3.org/TR/ws-addr-core">
       <titleref>
        W3C Recommendation, "Web Services Addressing 1.0 (WS-Addressing)"
       </titleref>
       , M. Gudgin, M. Hadley, T. Rogers, Editors.
       World Wide Web Consortium (W3C), 9 May 2006.
     </bibl>

     <bibl key="WS-Policy" id="wspolicy"
      href="http://www.w3.org/TR/ws-policy/">
       <titleref>
        W3C Recommendation, "Web Services Policy (WS-Policy) 1.5 - Framework"
       </titleref>
       , A. Vedamuthu, et al., Editors.
       World Wide Web Consortium (W3C), 4 September 2007.
     </bibl>

     <bibl id="WS-PolicyAttachment" key="WS-PolicyAttachment"
        href="http://www.w3.org/TR/ws-policy-attach/">
      <titleref>
       W3C Recommendation, "Web Services Policy (WS-Policy) 1.5 - Attachment"
      </titleref>
      , A. Vedamuthu, et al., Editors.
      World Wide Web Consortium (W3C), 4 September 2007.
     </bibl>

     <bibl key="WSDL11" id="WSDL11"
      href="http://www.w3.org/TR/2001/NOTE-wsdl-20010315">
       <titleref>
        W3C Note, "Web Services Description Language (WSDL) 1.1"
       </titleref>
       , E. Christensen, et al., Editors.
       World Wide Web Consortium (W3C), 15 March 2001
     </bibl>

     <bibl key="XML Infoset" id="XMLInfoset"
      href="http://www.w3.org/TR/xml-infoset">
       <titleref>
        W3C Recommendation, "XML Information Set (Second Edition)"
       </titleref>
       , J. Cowan, R. Tobin, Editors.
       World Wide Web Consortium (W3C), 4 February 2004.
     </bibl>

     <bibl key="XMLSchema - Part 1" id="XMLSchema1"
      href="http://www.w3.org/TR/xmlschema-1/">
       <titleref>
        W3C Recommendation, "XML Schema Part 1: Structures (Second Edition)"
       </titleref>
       , H. Thompson, et al., Editors.
       World Wide Web Consortium (W3C), 28 October 2004.
     </bibl>

     <bibl key="XMLSchema - Part 2" id="XMLSchema2"
      href="http://www.w3.org/TR/xmlschema-2/">
       <titleref>
        W3C Recommendation, "XML Schema Part 2: Datatypes (Second Edition)"
       </titleref>
       , P. Biron, A. Malhotra, Editors.
       World Wide Web Consortium (W3C), 28 October 2004.
     </bibl>

    </blist>
   </div2>
 
  </div1>
 </body>
 
 <back>
  <div1 id="Appendix-A">
   <head>XML Schema</head>
   
   <p>
    A normative copy of the XML Schema <bibref ref='XMLSchema1'/>,
    <bibref ref='XMLSchema2'/> description for this specification can be 
    retrieved from the following address:
   </p>
   
   <example>
    <eg><loc href='http://www.w3.org/&wssas.nsprefix;/ws-sas/soapassertions.xsd'>http://www.w3.org/&wssas.nsprefix;/ws-sas/soapassertions.xsd</loc></eg>
   </example>

   <p>
    A non-normative copy of the XML schema is listed below for convenience. 
   </p>

   <example>
    <eg>&lt;xs:schema 
  targetNamespace='http://www.w3.org/&wssas.nsprefix;/ws-sas'
  xmlns:tns='http://www.w3.org/&wssas.nsprefix;/ws-sas'
  xmlns:xs='http://www.w3.org/2001/XMLSchema'
  elementFormDefault='qualified'
  blockDefault='#all' >
 
  &lt;xs:complexType name='emptyElementType'>
    &lt;xs:sequence>
      &lt;xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
    &lt;/xs:sequence>
    &lt;xs:anyAttribute namespace='##other' processContents='lax'/>
  &lt;/xs:complexType>

  &lt;xs:element name='SOAP11' type='tns:emptyElementType'/>
  &lt;xs:element name='SOAP12' type='tns:emptyElementType'/>

&lt;/xs:schema></eg>
   </example>
  </div1>

  <div1 id="changelog">
   <head>Change Log</head>

   <table border="1">
    <tbody>
     <tr>
      <th> Data </th>
      <th> Author </th>
      <th> Description </th>
     </tr>
     <tr>
      <td> 2010/04/20 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9250">9250</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/04/20 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9266">9266</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/05/04 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9087">9087</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/11/19 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8284">8284</loc>
      </td>
     </tr>
    </tbody>
   </table>
  </div1>

 </back>
</spec>
