W3C home > Mailing lists > Public > public-ws-resource-access-notifications@w3.org > September 2009

WWW/2002/ws/ra/edcopies wsfrag.html,1.11,1.12 wsfrag.xml,1.11,1.12 wst.xml,1.54,1.55 wst.html,1.58,1.59

From: Doug Davis via cvs-syncmail <cvsmail@w3.org>
Date: Tue, 15 Sep 2009 19:34:58 +0000
To: public-ws-resource-access-notifications@w3.org
Message-Id: <E1Mndnm-0002L9-Ka@lionel-hutz.w3.org>
Update of /w3ccvs/WWW/2002/ws/ra/edcopies
In directory hutz:/tmp/cvs-serv8898

Modified Files:
	wsfrag.html wsfrag.xml wst.xml wst.html 
Log Message:
fix formatting of fault bindings - per Ram


Index: wst.xml
===================================================================
RCS file: /w3ccvs/WWW/2002/ws/ra/edcopies/wst.xml,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -d -r1.54 -r1.55
--- wst.xml	2 Sep 2009 13:34:58 -0000	1.54
+++ wst.xml	15 Sep 2009 19:34:56 -0000	1.55
@@ -1304,44 +1304,44 @@
       <p>The properties above bind to a SOAP 1.2 fault as follows:</p>
       <example>
        <eg>&lt;s12:Envelope&gt;
-     &lt;s12:Header&gt;
-       &lt;wsa:Action&gt; <kw>[Action]</kw> &lt;/wsa:Action&gt;
-       &lt;!-- Headers elided for brevity. --&gt;
-     &lt;/s12:Header&gt;
-     &lt;s12:Body&gt;
-       &lt;s12:Fault&gt;
-         &lt;s12:Code&gt;
-           &lt;s12:Value&gt;<kw>[Code]</kw>&lt;/s12:Value&gt;
-           &lt;s12:Subcode&gt;
-             &lt;s12:Value&gt;<kw>[Subcode]</kw>&lt;/s12:Value&gt;
-           &lt;/s12:Subcode&gt;
-         &lt;/s12:Code&gt;
-         &lt;s12:Reason&gt;
-           &lt;s12:Text xml:lang="en"&gt;<kw>[Reason]</kw>&lt;/s12:Text&gt;
-         &lt;/s12:Reason&gt;
-         &lt;s12:Detail&gt;
-           <kw>[Detail]</kw>
-           ...
-         &lt;/s12:Detail&gt;
-       &lt;/s12:Fault&gt;
-     &lt;/s12:Body&gt;
-   &lt;/s12:Envelope&gt;</eg>
+  &lt;s12:Header&gt;
+    &lt;wsa:Action&gt; <kw>[Action]</kw> &lt;/wsa:Action&gt;
+    &lt;!-- Headers elided for brevity. --&gt;
+  &lt;/s12:Header&gt;
+  &lt;s12:Body&gt;
+    &lt;s12:Fault&gt;
+      &lt;s12:Code&gt;
+        &lt;s12:Value&gt;<kw>[Code]</kw>&lt;/s12:Value&gt;
+        &lt;s12:Subcode&gt;
+          &lt;s12:Value&gt;<kw>[Subcode]</kw>&lt;/s12:Value&gt;
+        &lt;/s12:Subcode&gt;
+      &lt;/s12:Code&gt;
+      &lt;s12:Reason&gt;
+        &lt;s12:Text xml:lang="en"&gt;<kw>[Reason]</kw>&lt;/s12:Text&gt;
+      &lt;/s12:Reason&gt;
+      &lt;s12:Detail&gt;
+        <kw>[Detail]</kw>
+        ...
+      &lt;/s12:Detail&gt;
+    &lt;/s12:Fault&gt;
+  &lt;/s12:Body&gt;
+&lt;/s12:Envelope&gt;</eg>
       </example>
       
       <p>The properties bind to a SOAP 1.1 fault as follows:</p>
       <example>
        <eg>&lt;s11:Envelope&gt;
-     &lt;s11:Body&gt;
-       &lt;s11:Fault&gt;
-         &lt;faultcode&gt;<kw>[Subcode]</kw>&lt;/faultcode&gt;
-         &lt;faultstring xml:lang="en"&gt;<kw>[Reason]</kw>&lt;/faultstring&gt;
-         &lt;detail&gt;
-           <kw>[Detail]</kw>
-           ...
-         &lt;/detail&gt;
-       &lt;/s11:Fault&gt;
-     &lt;/s11:Body&gt;
-   &lt;/s11:Envelope&gt;</eg>
+  &lt;s11:Body&gt;
+    &lt;s11:Fault&gt;
+      &lt;faultcode&gt;<kw>[Subcode]</kw>&lt;/faultcode&gt;
+      &lt;faultstring xml:lang="en"&gt;<kw>[Reason]</kw>&lt;/faultstring&gt;
+      &lt;detail&gt;
+        <kw>[Detail]</kw>
+        ...
+      &lt;/detail&gt;
+    &lt;/s11:Fault&gt;
+  &lt;/s11:Body&gt;
+&lt;/s11:Envelope&gt;</eg>
       </example>
 
       <div2 id="InvalidRepresentation">

Index: wsfrag.html
===================================================================
RCS file: /w3ccvs/WWW/2002/ws/ra/edcopies/wsfrag.html,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- wsfrag.html	2 Sep 2009 11:36:57 -0000	1.11
+++ wsfrag.html	15 Sep 2009 19:34:56 -0000	1.12
@@ -34,9 +34,9 @@
    </a></dd><dt>Previous version:</dt><dd><a href="http://www.w3.org/TR/2009/WD-ws-fragment-20090317">http://www.w3.org/TR/2009/WD-ws-fragment-20090317</a></dd><dt>Editors:</dt><dd>Doug Davis, IBM</dd><dd>Ashok Malhotra, Oracle</dd><dd>Katy Warr, IBM</dd><dd>Wu Chou, Avaya</dd></dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> &copy; 2009 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>&reg;</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p></div><hr/><div>
 <h2><a name="abstract" id="abstract"/>Abstract</h2><p>
     This specification extends the <a href="#WsTransfer">[WS-Transfer]</a>
-    specification to enable clients to retrieve and manipulate subsets
-    of a WS-Transfer enabled resource without needing to include the entire
-    XML representation in a message exchange.
+    specification to enable clients to retrieve and manipulate parts or
+    fragments of a WS-Transfer enabled resource without needing to include 
+    the entire XML representation in a message exchange.
    </p></div><div>
 <h2><a name="status" id="status"/>Status of this Document</h2><p><strong>This document is an editors' copy that has
         no official standing.</strong></p></div><div class="toc">
@@ -53,17 +53,15 @@
 &nbsp;&nbsp;&nbsp;3.2 <a href="#Put">Put</a><br/>
 &nbsp;&nbsp;&nbsp;3.3 <a href="#Delete">Delete</a><br/>
 &nbsp;&nbsp;&nbsp;3.4 <a href="#Create">Create</a><br/>
-4 <a href="#iddiv1_1_814">Examples</a><br/>
-&nbsp;&nbsp;&nbsp;4.1 <a href="#iddiv2_1_817">Examples</a><br/>
+4 <a href="#iddiv1_1_901">Examples</a><br/>
+&nbsp;&nbsp;&nbsp;4.1 <a href="#iddiv2_1_904">Examples</a><br/>
 5 <a href="#QName">QName Expression Language</a><br/>
-&nbsp;&nbsp;&nbsp;5.1 <a href="#QName_Get">Get</a><br/>
-&nbsp;&nbsp;&nbsp;5.2 <a href="#QName_Put">Put</a><br/>
-&nbsp;&nbsp;&nbsp;5.3 <a href="#QName_Delete">Delete</a><br/>
-&nbsp;&nbsp;&nbsp;5.4 <a href="#QName_Create">Create</a><br/>
 6 <a href="#XPathL1">XPath Level 1 Expression Language</a><br/>
 7 <a href="#XPath10">XPath 1.0 Expression Language</a><br/>
 8 <a href="#Faults">Faults</a><br/>
 &nbsp;&nbsp;&nbsp;8.1 <a href="#UnsupportedLanguage">UnsupportedLanguage</a><br/>
+&nbsp;&nbsp;&nbsp;8.2 <a href="#InvalidFragment">InvalidFragment</a><br/>
+&nbsp;&nbsp;&nbsp;8.3 <a href="#InvalidExpression">InvalidExpression</a><br/>
 9 <a href="#policy">WS-Fragment Policy Assertion(s)</a><br/>
 10 <a href="#acks">Acknowledgements</a><br/>
 11 <a href="#refs">References</a><br/>
@@ -76,6 +74,7 @@
 <h2><a name="intro" id="intro"/>1 Introduction</h2><p>
     This specification extends the WS-Transfer specification and defines
     a mechanism that allows clients to retrieve and manipulate subsets
+    (parts or fragments)
     of a WS-Transfer enabled resource without needing to include the entire
     XML representation in a message exchange.
    </p><p>
@@ -91,7 +90,7 @@
     This fragment transfer mechanism is designed so that it can be used 
     with any number of
     expression languages to indentify a subset of the resource the
-    operation is to operate over.
+    operation is to operate on.
    </p><p>
     While other specifications can define other expression languages,
     it is RECOMMENDED that those languages
@@ -99,15 +98,17 @@
    </p><div class="div2">
 <h3><a name="reqs" id="reqs"/>1.1 Requirements</h3><p>This specification intends to meet the following requirement:</p><ul><li><p>
        Provide an extension mechanism to WS-Transfer that allows for
-       subsets of a resource to be retrieved and modified.
+       subsets (parts or fragments) of a resource to be retrieved or modified.
+      </p></li><li><p>
+       Provide an extenson framework for defining expression languages.
       </p></li><li><p>
        Provide a set of expression languages that implementations
        can leverage.
       </p></li></ul></div></div><div class="div1">
 <h2><a name="Notations_and_Terminology" id="Notations_and_Terminology"/>2 Terminology and Notation</h2><div class="div2">
 <h3><a name="terminology" id="terminology"/>2.1 Terminology</h3><dl><dt class="label">Expression</dt><dd><p>
-        A Language specific set of tokens that are used refer to a location
-        in a resource.
+        A Language specific set of tokens that resolve to a location
+        in a resource that contains a subset of the resource.
        </p></dd><dt class="label">Fragment</dt><dd><p>
         A subset of a resource.
        </p></dd></dl></div><div class="div2">
@@ -238,8 +239,8 @@
     Each Expression language that uses this transfer fragment mechanism 
     MUST fully define how it behaves for each operation and for the
     language specific expression constructs it supports.  For example,
-    an XPath language will need to explain how a new XML element is
-    inserted into an existing resource.
+    an <a href="#">[XPath]</a> language will need to explain how a new XML 
+    element is inserted into an existing resource.
    </p><p>
     WS-Transfer defines what the expected behavior of a resource is 
     with respect to modifications of the resource that might result in
@@ -249,7 +250,7 @@
    </p><div class="div2">
 <h3><a name="Get" id="Get"/>3.1 Get</h3><p>
      To retrieve a subset of a resource
-     a client MUST specify the WS-Fragment URI in the wst:Get request.
+     a client MUST specify the WS-Fragment Dialect URI in the wst:Get request.
     </p><p>
      The Get request message MUST be of the following form:
     </p><div class="exampleOuter"><div class="exampleInner"><pre><b>[Action]</b>
@@ -295,8 +296,7 @@
         wsf:Expression in the request and MUST contain the subset of the 
         resource identified by the wsf:Expression element in the
         corresponding Get request. If the
-        Expression identifies non-existent data, or
-        it corresponds to a fragment with no value, then this
+        Expression evaluates to a fragment with no value, then this
         element MAY be empty.
        </p></dd></dl><p>
      Other components of the outline above are not further constrained 
@@ -313,12 +313,12 @@
 <b>[Body]</b>
   &lt;wst:Put Dialect="http://www.w3.org/2009/02/ws-frag" ...&gt;
     &lt;wsf:Fragment ...&gt;
-      &lt;wsf:Expression Language="<em>xs:anyURI</em>" ...&gt;
+      &lt;wsf:Expression Language="<em>xs:anyURI</em>" Mode="<em>xs:anyURI</em>"? ...&gt;
         <em>xs:any</em> *
       &lt;/wsf:Expression&gt; 
       &lt;wsf:Value ...&gt;
         <em>xs:any</em> *
-      &lt;/wsf:Value&gt; 
+      &lt;/wsf:Value&gt; ?
     &lt;/wsf:Fragment&gt;
     <em>xs:any</em> *
   &lt;/wst:Put&gt;</pre></div></div><p>
@@ -326,22 +326,66 @@
      listed above:
     </p><dl><dt class="label"><b>[Body]</b>/wst:Put@Dialect </dt><dd><p>
         This attribute MUST be set to http://www.w3.org/2009/02/ws-frag.
+       </p></dd><dt class="label"><b>[Body]</b>/wst:Put/wsf:Fragment </dt><dd><p>
+        This element contains an expression that identifies the location of
+        a fragment in the resource and a value for the fragment. If the
+        contents of this element are invalid a wsf:InvalidFragment
+        fault MUST be generated.
        </p></dd><dt class="label"><b>[Body]</b>/wst:Put/wsf:Fragment/wsf:Expression </dt><dd><p>
         This element identifies which fragment in the resource this
         operation applies to.
         The value of this element MUST conform to the syntax of the language
         specified in Language attribute, otherwise a
         wsf:InvalidExpression fault MUST be generated.
+       </p><p>
+        This element identifies the fragment in the resource as it appears
+        after successful processing the Put request.
        </p></dd><dt class="label"><b>[Body]</b>/wst:Put/wsf:Fragment/wsf:Expression@Language </dt><dd><p>
         This URI indicates which expression language will be 
         used to identify the subset of the resource this operation applies
         to. A resource MUST generate a wsf:UnsupportedLanguage Fault if it 
         does not support the specified Language.
+       </p></dd><dt class="label"><b>[Body]</b>/wst:Put/wsf:Fragment/wsf:Expression@Mode </dt><dd><p><b>OPTION 1:</b>
+        This OPTIONAL URI indicates what action should be taken in the event 
+        that there is data already present at the specified location within 
+        the resource. The implied value for this attribute is 
+        "http://www.w3.org/2009/02/ws-frag/Modes/Replace". This attribute will 
+        have no effect on the processing of the message if the Expression 
+        refers to non-existing data.
+       </p></dd><dt class="label"><b>[Body]</b>/wst:Put/wsf:Fragment/wsf:Expression@Mode="http://www.w3.org/2009/02/ws-frag/Modes/Replace" </dt><dd><p><b>OPTION 1:</b>
+        When the Mode attribute is set to a value of 
+        "http://www.w3.org/2009/02/ws-frag/Modes/Replace" the resource 
+        representation specified within the Value element MUST replace the 
+        entire resource representation referenced by the children of the 
+        Expression element, if it exists.
+       </p><p>
+        Note: to delete the portion of the resource referenced by this 
+        fragment the Value element MUST be absent from the message.
+       </p></dd><dt class="label"><b>[Body]</b>/wst:Put/wsf:Fragment/wsf:Expression@Mode="http://www.w3.org/2009/02/ws-frag/Modes/Insert" </dt><dd><p><b>OPTION 1:</b>
+        When the Mode attribute is set to a value of 
+        "http://www.w3.org/2009/02/ws-frag/Modes/Insert" the resource 
+        representation specified within the Value element MUST be added to 
+        the resource representation. If the expression targets a repeated 
+        element (maxOccurs &gt; 1), the fragment MUST be added at the end. If 
+        the expression targets a non-repeated element (maxOccurrs = 1) that 
+        already exists, the resource MUST generate a 
+        wst:InvalidRepresentation fault. If the expression targets an 
+        existing item of a repeated element, the fragment MUST be added 
+        before the existing item. 
        </p></dd><dt class="label"><b>[Body]</b>/wst:Put/wsf:Fragment/wsf:Value </dt><dd><p>
-        This element contains the fragment resource representation
+        This OPTIONAL element contains the fragment resource representation
         corresponding to the
         subset of the resource identified by the wsf:Expression element.
-       </p></dd></dl><p>
+       </p><p><b>OPTION 1:</b>
+        The absence of this element is used to indicate that the portion 
+        of the resource referenced by this Fragment is to be deleted. It 
+        is important to note that there is a difference between a missing 
+        Value element and an empty Value element (e.g. &lt;Value/&gt; ).  An 
+        empty Value element is used in cases where an empty value set is 
+        needed - for example, a missing Value element can be used to delete 
+        an attribute, while an empty Value element might be used to set 
+        the attribute to an empty string (i.e. "").
+       </p></dd></dl><p><b>OPTION 2:</b>
      This operation MUST be performed by removing any data that corresponds
      to the Expression element of the request and inserting the specified
      Fragment data in its place.
@@ -366,9 +410,14 @@
   &lt;/wst:PutResponse&gt;</pre></div></div><p>
      There are no additional constraints beyond what WS-Transfer defines.
     </p></div><div class="div2">
-<h3><a name="Delete" id="Delete"/>3.3 Delete</h3><p>
+<h3><a name="Delete" id="Delete"/>3.3 Delete</h3><p><b>OPTION 1:</b>
+     This specification makes no modification to the Delete
+     operation.
+    </p><p><b>OPTION 2:</b>
      To delete a subset of a resource a client MUST specify the WS-Fragment
      URI in the wst:Delete request.
+    </p><p><b>OPTION 2:</b>
+     The remaining part of this section is all for OPTION 2.
     </p><p>
      The Delete request message MUST be of the following form:
     </p><div class="exampleOuter"><div class="exampleInner"><pre><b>[Action]</b>
@@ -414,7 +463,11 @@
   &lt;/wst:DeleteResponse&gt;</pre></div></div><p>
      There are no additional constraints beyond what WS-Transfer defines.
     </p></div><div class="div2">
-<h3><a name="Create" id="Create"/>3.4 Create</h3><p>
+<h3><a name="Create" id="Create"/>3.4 Create</h3><p><b>OPTION 1:</b>
+     The wst:Create operation can be used to create a new resource. This 
+     specification extends the wst:Create request by allowing a client to 
+     specify just a portion of the new resource's initial representation.
+    </p><p><b>OPTION 2:</b>
      To insert data into an existing resource a client MUST specify the
      WS-Fragment URI in the wst:Delete request.
     </p><p>
@@ -438,6 +491,11 @@
      listed above:
     </p><dl><dt class="label"><b>[Body]</b>/wst:Create@Dialect </dt><dd><p>
         This attribute MUST be set to http://www.w3.org/2009/02/ws-frag.
+       </p></dd><dt class="label"><b>[Body]</b>/wst:Create@Fragment </dt><dd><p>
+        This element contains an expression that identifies the location 
+        of a fragment in  the resource and a value for the fragment. If 
+        the contents of this element are invalid a wsf:InvalidFragment 
+        fault MUST be generated.
        </p></dd><dt class="label"><b>[Body]</b>/wst:Create/wsf:Fragment/wsf:Expression </dt><dd><p>
         This element identifies which fragment in the resource this
         operation applies to.
@@ -446,16 +504,24 @@
         wsf:InvalidExpression fault MUST be generated.
        </p><p>
         This element identifies the fragment in the resource as it
-        appears after successful processing of the current fragment.
+        appears after successful processing of the Create request.
        </p></dd><dt class="label"><b>[Body]</b>/wst:Create/wsf:Fragment/wsf:Expression@Language </dt><dd><p>
         This URI indicates which expression language will be
         used to identify the subset of the resource this operation applies
         to. A resource MUST generate a wsf:UnsupportedLanguage Fault if it
         does not support the specified Language.
        </p></dd><dt class="label"><b>[Body]</b>/wst:Create/wsf:Fragment/wsf:Value </dt><dd><p>
-        This element encompasses the fragment corresponding to the
+        This element contains the fragment resource representation 
+        corresponding to the
         subset of the resource indentified by the wsf:Expression element.
-       </p></dd></dl><p>
+       </p></dd></dl><p><b>OPTION 1:</b>
+     This operation MUST be performed by creating a new resource using 
+     the specified subset of the resource. Other values within the resource 
+     will use the appropriate default values. Note: this operation has the 
+     same net effect as creating a new resource that is populated with 
+     default values, followed by a wst.Put request with this specified 
+     Fragment.
+    </p><p><b>OPTION 2:</b>
      This operation MUST be performed by inserting new data within the
      Fragment element into the resource as specified by the Expression
      element. If data is already present and would result in the resource
@@ -474,8 +540,8 @@
   &lt;/wst:CreateResponse&gt;</pre></div></div><p>
      There are no additional constraints beyond what WS-Transfer defines.
     </p></div></div><div class="div1">
-<h2><a name="iddiv1_1_814" id="iddiv1_1_814"/>4 Examples</h2><div class="div2">
-<h3><a name="iddiv2_1_817" id="iddiv2_1_817"/>4.1 Examples</h3><p>
+<h2><a name="iddiv1_1_901" id="iddiv1_1_901"/>4 Examples</h2><div class="div2">
+<h3><a name="iddiv2_1_904" id="iddiv2_1_904"/>4.1 Examples</h3><p>
      In the following examples, and Expression Language definitions,
      the following representation of a resource is used for
      informational purposes:
@@ -571,34 +637,7 @@
     This language can be implemented as a precise subset of the XPath language.
    </p><p>
     The QName language MUST be indicated by using the URI:
-   </p><div class="exampleOuter"><div class="exampleInner"><pre><a href="http://www.w3.org/2009/02/ws-fra/QName">http://www.w3.org/2009/02/ws-fra/QName</a></pre></div></div><div class="div2">
-<h3><a name="QName_Get" id="QName_Get"/>5.1 Get</h3><p>
-     When used in a Get request message, the expression identifies
-     which immediate children of the root element to return. If the
-     QName matches more than one element then all of those elements
-     are returned.  If the QName doesn't match any element then 
-     an empty Fragment element is returned.
-    </p></div><div class="div2">
-<h3><a name="QName_Put" id="QName_Put"/>5.2 Put</h3><p>
-     When used in a Put request message. the expression identifies
-     which immediate children of the root element to replace. If the
-     QName matches more than one element then all of those elements
-     are deleted and the children Fragment elements are inserted in their
-     place.
-    </p></div><div class="div2">
-<h3><a name="QName_Delete" id="QName_Delete"/>5.3 Delete</h3><p>
-     When used in a Delete request message. the expression identifies
-     which immediate children of the root element to remove. If the
-     QName matches more than one element then all of those elements
-     are deleted.  If the QName doesn't match any element then this
-     operation will have no impact on the resource.
-    </p></div><div class="div2">
-<h3><a name="QName_Create" id="QName_Create"/>5.4 Create</h3><p>
-     When used in a Create request message. the children Fragment elements
-     are inserted as children of the root element. If the expression
-     identifies an existing element then the new elements are inserted
-     after them.
-    </p></div></div><div class="div1">
+   </p><div class="exampleOuter"><div class="exampleInner"><pre><a href="http://www.w3.org/2009/02/ws-fra/QName">http://www.w3.org/2009/02/ws-fra/QName</a></pre></div></div></div><div class="div1">
 <h2><a name="XPathL1" id="XPathL1"/>6 XPath Level 1 Expression Language</h2><p>
     The XPath Level 1 expression language uses an XPath to
     reference specific fragments of the resource representation. The XPath is
@@ -611,7 +650,8 @@
     their resource representation.
    </p><p>
     XPath Level 1 is a subset of the abbreviated relative syntax
-    of XPath 1.0, and is used to identify or select a node within a resource
+    of XPath 1.0, and is used to identify or select a node (element, attribute
+    or value) within a resource
     representation or fragment. It is identified by the following URI:
    </p><div class="exampleOuter"><div class="exampleInner"><pre>http://www.w3.org/2009/02/ws-fra/XPath-Level-1</pre></div></div><p>
     An XPath Level 1 expression is an expression whose context is:
@@ -625,7 +665,7 @@
     expressions whose syntax is described by the following BNF. It MAY
     support additional expressions defined by XPath 1.0.
     The following XPath Level 1 grammar is LL(1), and the
-    nonterminal productions are in angle brackets. Terminal symbols are
+    non-terminal productions are in angle brackets. Terminal symbols are
     either literals, or in UPPERCASE:
    </p><div class="exampleOuter"><div class="exampleInner"><pre>(01) &lt;xpath&gt; ::=  &lt;context&gt; &lt;node_sequence&gt;;
 (02)
@@ -652,7 +692,7 @@
 (23) &lt;name&gt;           ::= XML_TOKEN;</pre></div></div><p>
     The terminal tokens which require further lexical
     specification are NONZERO_DECIMAL_UNSIGNED_INTEGER, whose values are in the
-    subrange (1...4294967295), and XML_TOKEN whose values are equivalent to 
+    sub-range (1...4294967295), and XML_TOKEN whose values are equivalent to 
     those for the XML Schema type <em>xs:token</em>. This grammar 
     is small enough
     that it can be easily implemented in resource-constrained implementations.
@@ -836,7 +876,7 @@
 (05) &lt;/wsf:Value&gt;</pre></div></div><p>The nodes in the node-set MAY be serialized in any order.</p><p>
     The WS-Fragment global element definition wsf:NodeSet can also be
     used as the wrapper element when serializing these node-sets outside of
-    a WS-RT result.
+    a WS-Fragmen result.
    </p><p>
     An XPath 1.0 expression MAY evaluate to multiple nodes;
     because of this the XPath 1.0 language MUST NOT be used with a "Put" or
@@ -857,45 +897,58 @@
     "Sender" or "Receiver". These properties are serialized
     into text XML as follows:
    </p><a name="soapver" id="soapver"/><table border="1"><tbody><tr><th> SOAP Version </th><th> Sender </th><th> Receiver </th></tr><tr><td> SOAP 1.2 </td><td> s12:Sender </td><td> s12:Receiver </td></tr></tbody></table><p>The properties above bind to a SOAP 1.2 fault as follows:</p><div class="exampleOuter"><div class="exampleInner"><pre>&lt;s12:Envelope&gt;
-   &lt;s12:Header&gt;
-     &lt;wsa:Action&gt; <b>[Action]</b> &lt;/wsa:Action&gt;
-     &lt;!-- Headers elided for brevity. --&gt;
-   &lt;/s12:Header&gt;
-   &lt;s12:Body&gt;
-     &lt;s12:Fault&gt;
-       &lt;s12:Code&gt;
-         &lt;s12:Value&gt;<b>[Code]</b>&lt;/s12:Value&gt;
-         &lt;s12:Subcode&gt;
-           &lt;s12:Value&gt;<b>[Subcode]</b>&lt;/s12:Value&gt;
-         &lt;/s12:Subcode&gt;
-       &lt;/s12:Code&gt;
-       &lt;s12:Reason&gt;
-         &lt;s12:Text xml:lang="en"&gt;<b>[Reason]</b>&lt;/s12:Text&gt;
-       &lt;/s12:Reason&gt;
-       &lt;s12:Detail&gt;
-         <b>[Detail]</b>
-         ...
-       &lt;/s12:Detail&gt;
-     &lt;/s12:Fault&gt;
-   &lt;/s12:Body&gt;
- &lt;/s12:Envelope&gt;</pre></div></div><p>The properties bind to a SOAP 1.1 fault as follows:</p><div class="exampleOuter"><div class="exampleInner"><pre>&lt;s11:Envelope&gt;
-   &lt;s11:Body&gt;
-     &lt;s11:Fault&gt;
-       &lt;faultcode&gt;<b>[Subcode]</b>&lt;/faultcode&gt;
-       &lt;faultstring xml:lang="en"&gt;<b>[Reason]</b>&lt;/faultstring&gt;
-       &lt;detail&gt;
-         <b>[Detail]</b>
-         ...
-       &lt;/detail&gt;
-     &lt;/s11:Fault&gt;
-   &lt;/s11:Body&gt;
- &lt;/s11:Envelope&gt;</pre></div></div><div class="div2">
+  &lt;s12:Header&gt;
+    &lt;wsa:Action&gt; <b>[Action]</b> &lt;/wsa:Action&gt;
+    &lt;!-- Headers elided for brevity. --&gt;
+  &lt;/s12:Header&gt;
+  &lt;s12:Body&gt;
+    &lt;s12:Fault&gt;
+      &lt;s12:Code&gt;
+        &lt;s12:Value&gt;<b>[Code]</b>&lt;/s12:Value&gt;
+        &lt;s12:Subcode&gt;
+          &lt;s12:Value&gt;<b>[Subcode]</b>&lt;/s12:Value&gt;
+        &lt;/s12:Subcode&gt;
+      &lt;/s12:Code&gt;
+      &lt;s12:Reason&gt;
+        &lt;s12:Text xml:lang="en"&gt;<b>[Reason]</b>&lt;/s12:Text&gt;
+      &lt;/s12:Reason&gt;
+      &lt;s12:Detail&gt;
+        <b>[Detail]</b>
+        ...
+      &lt;/s12:Detail&gt;
+    &lt;/s12:Fault&gt;
+  &lt;/s12:Body&gt;
+&lt;/s12:Envelope&gt;</pre></div></div><p>The properties bind to a SOAP 1.1 fault as follows:</p><div class="exampleOuter"><div class="exampleInner"><pre>&lt;s11:Envelope&gt;
+  &lt;s11:Body&gt;
+    &lt;s11:Fault&gt;
+      &lt;faultcode&gt;<b>[Subcode]</b>&lt;/faultcode&gt;
+      &lt;faultstring xml:lang="en"&gt;<b>[Reason]</b>&lt;/faultstring&gt;
+      &lt;detail&gt;
+        <b>[Detail]</b>
+        ...
+      &lt;/detail&gt;
+    &lt;/s11:Fault&gt;
+  &lt;/s11:Body&gt;
+&lt;/s11:Envelope&gt;</pre></div></div><div class="div2">
 <h3><a name="UnsupportedLanguage" id="UnsupportedLanguage"/>8.1 UnsupportedLanguage</h3><p>
-     This fault is generated when a service detects an unknown Language 
+     This fault is generated when a service detects an unknown or
+     unsupprted Language 
      URI in a request message. 
-    </p><a name="Table3" id="Table3"/><table border="1" cellpadding="5"><tbody><tr><th align="left"><b>[Code]</b></th><td>s:Sender</td></tr><tr><th align="left"><b>[Subcode]</b></th><td>wst:UnknownLanguage</td></tr><tr><th align="left"><b>[Reason]</b></th><td>
-        The specified Language URI is not known.
-       </td></tr><tr><th align="left"><b>[Detail]</b></th><td><em>The unknown URI if specified</em></td></tr></tbody></table></div></div><div class="div1">
+    </p><a name="Table3" id="Table3"/><table border="1" cellpadding="5"><tbody><tr><th align="left"><b>[Code]</b></th><td>s:Sender</td></tr><tr><th align="left"><b>[Subcode]</b></th><td>wst:UnsupportedLanguage</td></tr><tr><th align="left"><b>[Reason]</b></th><td>
+        The specified Language URI is not supported.
+       </td></tr><tr><th align="left"><b>[Detail]</b></th><td><em>The unsupported Language URI.</em></td></tr></tbody></table></div><div class="div2">
+<h3><a name="InvalidFragment" id="InvalidFragment"/>8.2 InvalidFragment</h3><p>
+     This fault is generated when a service determines that the fragment 
+     (contents of the wsf:Fragment element) specified in a request is invalid. 
+    </p><a name="Table3" id="Table3"/><table border="1" cellpadding="5"><tbody><tr><th align="left"><b>[Code]</b></th><td>s:Sender</td></tr><tr><th align="left"><b>[Subcode]</b></th><td>wst:InvalidFragment</td></tr><tr><th align="left"><b>[Reason]</b></th><td>
+        The specific fragment is invalid.
+       </td></tr><tr><th align="left"><b>[Detail]</b></th><td><em>The invalid fragment.</em></td></tr></tbody></table></div><div class="div2">
+<h3><a name="InvalidExpression" id="InvalidExpression"/>8.3 InvalidExpression</h3><p>
+     This fault is generated when a service determines that the language
+     expression specified in a request is invalid.
+    </p><a name="Table3" id="Table3"/><table border="1" cellpadding="5"><tbody><tr><th align="left"><b>[Code]</b></th><td>s:Sender</td></tr><tr><th align="left"><b>[Subcode]</b></th><td>wst:InvalidExpression</td></tr><tr><th align="left"><b>[Reason]</b></th><td>
+        The specified Language expression is invalid.
+       </td></tr><tr><th align="left"><b>[Detail]</b></th><td><em>The invalid language expression.</em></td></tr></tbody></table></div></div><div class="div1">
 <h2><a name="policy" id="policy"/>9 WS-Fragment Policy Assertion(s)</h2><p>
     An endpoint MAY indicate that it supports WS-Fragment, or its features,
     by including the WS-Fragment Policy assertion(s) within its WSDL. By
@@ -974,7 +1027,11 @@
       XML Schema Part 2: Datatypes
      </cite></a>
      , James Clark, et al, November 1999.
-      (See http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/.)</dd></dl></div></div><div class="back"><div class="div1">
+      (See http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/.)</dd><dt class="label"><a name="xpath" id="xpath"/>XPath 1.0</dt><dd><a href="http://www.w3.org/TR/xpath"><cite>
+      XML Path Language (XPath) Version 1.0
+     </cite></a>
+     , James Clark, et al, November 1999.
+      (See http://www.w3.org/TR/xpath.)</dd></dl></div></div><div class="back"><div class="div1">
 <h2><a name="Appendix_I__E2_80_93_XSD" id="Appendix_I__E2_80_93_XSD"/>A XML Schema</h2><p>
     A normative copy of the XML Schema <a href="#XmlSchemaPart1">[XML Schema, Part 1]</a>,
     <a href="#XmlSchemaPart2">[XML Schema, Part 2]</a> description for this specification can be
@@ -1018,7 +1075,7 @@
     Ram - should we allow for the creation with default value? This is, 
       allow 0 or 1 value elements on the Create.
    </p><p>
-    Ram - add an invalidExpression, NonExistentNode fault.
+    Ram - add a NonExistentNode fault.
    </p><p>
     Ram - add a general fault to indicate that a fragment message is invalid.
    </p><p>
@@ -1028,4 +1085,4 @@
    </p><p>
     Ram - should we make the new bits <b>bold</b> so that people
     can see what's new from base Transfer?
-   </p></div></div></body></html>
\ No newline at end of file
+   </p><p> Ram - update the wsdl/xsd </p><p> Ram - add a generic wsf:FragmentOperationFailed fault? </p></div></div></body></html>
\ No newline at end of file

Index: wst.html
===================================================================
RCS file: /w3ccvs/WWW/2002/ws/ra/edcopies/wst.html,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- wst.html	2 Sep 2009 13:34:58 -0000	1.58
+++ wst.html	15 Sep 2009 19:34:56 -0000	1.59
@@ -765,39 +765,39 @@
        "Sender" or "Receiver". These properties are serialized
        into text XML as follows:
       </p><a name="soapver" id="soapver"/><table border="1"><tbody><tr><th> SOAP Version </th><th> Sender </th><th> Receiver </th></tr><tr><td> SOAP 1.2 </td><td> s12:Sender </td><td> s12:Receiver </td></tr></tbody></table><p>The properties above bind to a SOAP 1.2 fault as follows:</p><div class="exampleOuter"><div class="exampleInner"><pre>&lt;s12:Envelope&gt;
-     &lt;s12:Header&gt;
-       &lt;wsa:Action&gt; <b>[Action]</b> &lt;/wsa:Action&gt;
-       &lt;!-- Headers elided for brevity. --&gt;
-     &lt;/s12:Header&gt;
-     &lt;s12:Body&gt;
-       &lt;s12:Fault&gt;
-         &lt;s12:Code&gt;
-           &lt;s12:Value&gt;<b>[Code]</b>&lt;/s12:Value&gt;
-           &lt;s12:Subcode&gt;
-             &lt;s12:Value&gt;<b>[Subcode]</b>&lt;/s12:Value&gt;
-           &lt;/s12:Subcode&gt;
-         &lt;/s12:Code&gt;
-         &lt;s12:Reason&gt;
-           &lt;s12:Text xml:lang="en"&gt;<b>[Reason]</b>&lt;/s12:Text&gt;
-         &lt;/s12:Reason&gt;
-         &lt;s12:Detail&gt;
-           <b>[Detail]</b>
-           ...
-         &lt;/s12:Detail&gt;
-       &lt;/s12:Fault&gt;
-     &lt;/s12:Body&gt;
-   &lt;/s12:Envelope&gt;</pre></div></div><p>The properties bind to a SOAP 1.1 fault as follows:</p><div class="exampleOuter"><div class="exampleInner"><pre>&lt;s11:Envelope&gt;
-     &lt;s11:Body&gt;
-       &lt;s11:Fault&gt;
-         &lt;faultcode&gt;<b>[Subcode]</b>&lt;/faultcode&gt;
-         &lt;faultstring xml:lang="en"&gt;<b>[Reason]</b>&lt;/faultstring&gt;
-         &lt;detail&gt;
-           <b>[Detail]</b>
-           ...
-         &lt;/detail&gt;
-       &lt;/s11:Fault&gt;
-     &lt;/s11:Body&gt;
-   &lt;/s11:Envelope&gt;</pre></div></div><div class="div2">
+  &lt;s12:Header&gt;
+    &lt;wsa:Action&gt; <b>[Action]</b> &lt;/wsa:Action&gt;
+    &lt;!-- Headers elided for brevity. --&gt;
+  &lt;/s12:Header&gt;
+  &lt;s12:Body&gt;
+    &lt;s12:Fault&gt;
+      &lt;s12:Code&gt;
+        &lt;s12:Value&gt;<b>[Code]</b>&lt;/s12:Value&gt;
+        &lt;s12:Subcode&gt;
+          &lt;s12:Value&gt;<b>[Subcode]</b>&lt;/s12:Value&gt;
+        &lt;/s12:Subcode&gt;
+      &lt;/s12:Code&gt;
+      &lt;s12:Reason&gt;
+        &lt;s12:Text xml:lang="en"&gt;<b>[Reason]</b>&lt;/s12:Text&gt;
+      &lt;/s12:Reason&gt;
+      &lt;s12:Detail&gt;
+        <b>[Detail]</b>
+        ...
+      &lt;/s12:Detail&gt;
+    &lt;/s12:Fault&gt;
+  &lt;/s12:Body&gt;
+&lt;/s12:Envelope&gt;</pre></div></div><p>The properties bind to a SOAP 1.1 fault as follows:</p><div class="exampleOuter"><div class="exampleInner"><pre>&lt;s11:Envelope&gt;
+  &lt;s11:Body&gt;
+    &lt;s11:Fault&gt;
+      &lt;faultcode&gt;<b>[Subcode]</b>&lt;/faultcode&gt;
+      &lt;faultstring xml:lang="en"&gt;<b>[Reason]</b>&lt;/faultstring&gt;
+      &lt;detail&gt;
+        <b>[Detail]</b>
+        ...
+      &lt;/detail&gt;
+    &lt;/s11:Fault&gt;
+  &lt;/s11:Body&gt;
+&lt;/s11:Envelope&gt;</pre></div></div><div class="div2">
 <h3><a name="InvalidRepresentation" id="InvalidRepresentation"/>5.1 InvalidRepresentation</h3><p>This fault is generated when an incorrect representation is sent in a
     wst:Put or wst:Create message. </p><a name="Table2" id="Table2"/><table border="1" cellpadding="5"><tbody><tr><th align="left"><b>[Code]</b></th><td>s:Sender</td></tr><tr><th align="left"><b>[Subcode]</b></th><td>wst:InvalidRepresentation</td></tr><tr><th align="left"><b>[Reason]</b></th><td>The supplied representation is invalid</td></tr><tr><th align="left"><b>[Detail]</b></th><td>none</td></tr></tbody></table></div><div class="div2">
 <h3><a name="UnknownDialect" id="UnknownDialect"/>5.2 UnknownDialect</h3><p>

Index: wsfrag.xml
===================================================================
RCS file: /w3ccvs/WWW/2002/ws/ra/edcopies/wsfrag.xml,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- wsfrag.xml	2 Sep 2009 11:36:57 -0000	1.11
+++ wsfrag.xml	15 Sep 2009 19:34:56 -0000	1.12
@@ -71,9 +71,9 @@
   <abstract>
    <p>
     This specification extends the <bibref ref="WsTransfer"/>
-    specification to enable clients to retrieve and manipulate subsets
-    of a WS-Transfer enabled resource without needing to include the entire
-    XML representation in a message exchange.
+    specification to enable clients to retrieve and manipulate parts or
+    fragments of a WS-Transfer enabled resource without needing to include 
+    the entire XML representation in a message exchange.
    </p>
   </abstract>
 
@@ -92,6 +92,7 @@
    <p>
     This specification extends the WS-Transfer specification and defines
     a mechanism that allows clients to retrieve and manipulate subsets
+    (parts or fragments)
     of a WS-Transfer enabled resource without needing to include the entire
     XML representation in a message exchange.
    </p>
@@ -111,7 +112,7 @@
     This fragment transfer mechanism is designed so that it can be used 
     with any number of
     expression languages to indentify a subset of the resource the
-    operation is to operate over.
+    operation is to operate on.
    </p>
 
    <p>
@@ -127,7 +128,13 @@
      <item>
       <p>
        Provide an extension mechanism to WS-Transfer that allows for
-       subsets of a resource to be retrieved and modified.
+       subsets (parts or fragments) of a resource to be retrieved or modified.
+      </p>
+     </item>
+
+     <item>
+      <p>
+       Provide an extenson framework for defining expression languages.
       </p>
      </item>
 
@@ -151,8 +158,8 @@
       <label>Expression</label>
       <def>
        <p>
-        A Language specific set of tokens that are used refer to a location
-        in a resource.
+        A Language specific set of tokens that resolve to a location
+        in a resource that contains a subset of the resource.
        </p>
       </def>
      </gitem>
@@ -484,8 +491,8 @@
     Each Expression language that uses this transfer fragment mechanism 
     MUST fully define how it behaves for each operation and for the
     language specific expression constructs it supports.  For example,
-    an XPath language will need to explain how a new XML element is
-    inserted into an existing resource.
+    an <bibref ref="XPath"/> language will need to explain how a new XML 
+    element is inserted into an existing resource.
    </p>
 
    <p>
@@ -500,7 +507,7 @@
     <head>Get</head>
     <p>
      To retrieve a subset of a resource
-     a client MUST specify the WS-Fragment URI in the wst:Get request.
+     a client MUST specify the WS-Fragment Dialect URI in the wst:Get request.
     </p>
     <p>
      The Get request message MUST be of the following form:
@@ -586,8 +593,7 @@
         wsf:Expression in the request and MUST contain the subset of the 
         resource identified by the wsf:Expression element in the
         corresponding Get request. If the
-        Expression identifies non-existent data, or
-        it corresponds to a fragment with no value, then this
+        Expression evaluates to a fragment with no value, then this
         element MAY be empty.
        </p>
       </def>
@@ -616,12 +622,12 @@
 <kw>[Body]</kw>
   &lt;wst:Put Dialect="http://www.w3.org/2009/02/ws-frag" ...&gt;
     &lt;wsf:Fragment ...&gt;
-      &lt;wsf:Expression Language="<emph>xs:anyURI</emph>" ...&gt;
+      &lt;wsf:Expression Language="<emph>xs:anyURI</emph>" Mode="<emph>xs:anyURI</emph>"? ...&gt;
         <emph>xs:any</emph> *
       &lt;/wsf:Expression&gt; 
       &lt;wsf:Value ...&gt;
         <emph>xs:any</emph> *
-      &lt;/wsf:Value&gt; 
+      &lt;/wsf:Value&gt; ?
     &lt;/wsf:Fragment&gt;
     <emph>xs:any</emph> *
   &lt;/wst:Put&gt;</eg>
@@ -641,6 +647,18 @@
      </gitem>
 
      <gitem>
+      <label> <kw>[Body]</kw>/wst:Put/wsf:Fragment </label>
+      <def>
+       <p>
+        This element contains an expression that identifies the location of
+        a fragment in the resource and a value for the fragment. If the
+        contents of this element are invalid a wsf:InvalidFragment
+        fault MUST be generated.
+       </p>
+      </def>
+     </gitem>
+
+     <gitem>
       <label> <kw>[Body]</kw>/wst:Put/wsf:Fragment/wsf:Expression </label>
       <def>
        <p>
@@ -650,6 +668,11 @@
         specified in Language attribute, otherwise a
         wsf:InvalidExpression fault MUST be generated.
        </p>
+
+       <p>
+        This element identifies the fragment in the resource as it appears
+        after successful processing the Put request.
+       </p>
       </def>
      </gitem>
 
@@ -666,18 +689,82 @@
      </gitem>
 
      <gitem>
+      <label> <kw>[Body]</kw>/wst:Put/wsf:Fragment/wsf:Expression@Mode </label>
+      <def>
+       <p>
+        <kw>OPTION 1:</kw>
+        This OPTIONAL URI indicates what action should be taken in the event 
+        that there is data already present at the specified location within 
+        the resource. The implied value for this attribute is 
+        "http://www.w3.org/2009/02/ws-frag/Modes/Replace". This attribute will 
+        have no effect on the processing of the message if the Expression 
+        refers to non-existing data.
+       </p>
+      </def>
+     </gitem>
+
+     <gitem>
+      <label> <kw>[Body]</kw>/wst:Put/wsf:Fragment/wsf:Expression@Mode="http://www.w3.org/2009/02/ws-frag/Modes/Replace" </label>
+      <def>
+       <p>
+        <kw>OPTION 1:</kw>
+        When the Mode attribute is set to a value of 
+        "http://www.w3.org/2009/02/ws-frag/Modes/Replace" the resource 
+        representation specified within the Value element MUST replace the 
+        entire resource representation referenced by the children of the 
+        Expression element, if it exists.
+       </p>
+       <p>
+        Note: to delete the portion of the resource referenced by this 
+        fragment the Value element MUST be absent from the message.
+       </p>
+      </def>
+     </gitem>
+
+     <gitem>
+      <label> <kw>[Body]</kw>/wst:Put/wsf:Fragment/wsf:Expression@Mode="http://www.w3.org/2009/02/ws-frag/Modes/Insert" </label>
+      <def>
+       <p>
+        <kw>OPTION 1:</kw>
+        When the Mode attribute is set to a value of 
+        "http://www.w3.org/2009/02/ws-frag/Modes/Insert" the resource 
+        representation specified within the Value element MUST be added to 
+        the resource representation. If the expression targets a repeated 
+        element (maxOccurs > 1), the fragment MUST be added at the end. If 
+        the expression targets a non-repeated element (maxOccurrs = 1) that 
+        already exists, the resource MUST generate a 
+        wst:InvalidRepresentation fault. If the expression targets an 
+        existing item of a repeated element, the fragment MUST be added 
+        before the existing item. 
+       </p>
+      </def>
+     </gitem>
+
+     <gitem>
       <label> <kw>[Body]</kw>/wst:Put/wsf:Fragment/wsf:Value </label>
       <def>
        <p>
-        This element contains the fragment resource representation
+        This OPTIONAL element contains the fragment resource representation
         corresponding to the
         subset of the resource identified by the wsf:Expression element.
        </p>
+       <p>
+        <kw>OPTION 1:</kw>
+        The absence of this element is used to indicate that the portion 
+        of the resource referenced by this Fragment is to be deleted. It 
+        is important to note that there is a difference between a missing 
+        Value element and an empty Value element (e.g. &lt;Value/> ).  An 
+        empty Value element is used in cases where an empty value set is 
+        needed - for example, a missing Value element can be used to delete 
+        an attribute, while an empty Value element might be used to set 
+        the attribute to an empty string (i.e. "").
+       </p>
       </def>
      </gitem>
     </glist>
 
     <p>
+     <kw>OPTION 2:</kw>
      This operation MUST be performed by removing any data that corresponds
      to the Expression element of the request and inserting the specified
      Fragment data in its place.
@@ -716,10 +803,21 @@
    <div2 id="Delete">
     <head>Delete</head>
     <p>
+     <kw>OPTION 1:</kw>
+     This specification makes no modification to the Delete
+     operation.
+    </p>
+
+    <p>
+     <kw>OPTION 2:</kw>
      To delete a subset of a resource a client MUST specify the WS-Fragment
      URI in the wst:Delete request.
     </p>
     <p>
+     <kw>OPTION 2:</kw>
+     The remaining part of this section is all for OPTION 2.
+    </p>
+    <p>
      The Delete request message MUST be of the following form:
     </p>
     <example>
@@ -804,6 +902,14 @@
    <div2 id="Create">
     <head>Create</head>
     <p>
+     <kw>OPTION 1:</kw>
+     The wst:Create operation can be used to create a new resource. This 
+     specification extends the wst:Create request by allowing a client to 
+     specify just a portion of the new resource's initial representation.
+    </p>
+
+    <p>
+     <kw>OPTION 2:</kw>
      To insert data into an existing resource a client MUST specify the
      WS-Fragment URI in the wst:Delete request.
     </p>
@@ -842,6 +948,18 @@
      </gitem>
 
      <gitem>
+      <label> <kw>[Body]</kw>/wst:Create@Fragment </label>
+      <def>
+       <p>
+        This element contains an expression that identifies the location 
+        of a fragment in  the resource and a value for the fragment. If 
+        the contents of this element are invalid a wsf:InvalidFragment 
+        fault MUST be generated.
+       </p>
+      </def>
+     </gitem>
+
+     <gitem>
       <label> <kw>[Body]</kw>/wst:Create/wsf:Fragment/wsf:Expression </label>
       <def>
        <p>
@@ -853,7 +971,7 @@
        </p>
        <p>
         This element identifies the fragment in the resource as it
-        appears after successful processing of the current fragment.
+        appears after successful processing of the Create request.
        </p>
       </def>
      </gitem>
@@ -874,7 +992,8 @@
       <label> <kw>[Body]</kw>/wst:Create/wsf:Fragment/wsf:Value </label>
       <def>
        <p>
-        This element encompasses the fragment corresponding to the
+        This element contains the fragment resource representation 
+        corresponding to the
         subset of the resource indentified by the wsf:Expression element.
        </p>
       </def>
@@ -882,6 +1001,17 @@
     </glist>
 
     <p>
+     <kw>OPTION 1:</kw>
+     This operation MUST be performed by creating a new resource using 
+     the specified subset of the resource. Other values within the resource 
+     will use the appropriate default values. Note: this operation has the 
+     same net effect as creating a new resource that is populated with 
+     default values, followed by a wst.Put request with this specified 
+     Fragment.
+    </p>
+
+    <p>
+     <kw>OPTION 2:</kw>
      This operation MUST be performed by inserting new data within the
      Fragment element into the resource as specified by the Expression
      element. If data is already present and would result in the resource
@@ -1040,48 +1170,6 @@
     <eg><loc href="http://www.w3.org/2009/02/ws-fra/QName">http://www.w3.org/2009/02/ws-fra/QName</loc></eg>
    </example>
 
-   <div2 id="QName_Get">
-    <head>Get</head>
-    <p>
-     When used in a Get request message, the expression identifies
-     which immediate children of the root element to return. If the
-     QName matches more than one element then all of those elements
-     are returned.  If the QName doesn't match any element then 
-     an empty Fragment element is returned.
-    </p>
-   </div2>
-
-   <div2 id="QName_Put">
-    <head>Put</head>
-    <p>
-     When used in a Put request message. the expression identifies
-     which immediate children of the root element to replace. If the
-     QName matches more than one element then all of those elements
-     are deleted and the children Fragment elements are inserted in their
-     place.
-    </p>
-   </div2>
-
-   <div2 id="QName_Delete">
-    <head>Delete</head>
-    <p>
-     When used in a Delete request message. the expression identifies
-     which immediate children of the root element to remove. If the
-     QName matches more than one element then all of those elements
-     are deleted.  If the QName doesn't match any element then this
-     operation will have no impact on the resource.
-    </p>
-   </div2>
-
-   <div2 id="QName_Create">
-    <head>Create</head>
-    <p>
-     When used in a Create request message. the children Fragment elements
-     are inserted as children of the root element. If the expression
-     identifies an existing element then the new elements are inserted
-     after them.
-    </p>
-   </div2>
   </div1>
 
   <div1 id="XPathL1">
@@ -1101,7 +1189,8 @@
 
    <p>
     XPath Level 1 is a subset of the abbreviated relative syntax
-    of XPath 1.0, and is used to identify or select a node within a resource
+    of XPath 1.0, and is used to identify or select a node (element, attribute
+    or value) within a resource
     representation or fragment. It is identified by the following URI:
    </p>
 
@@ -1136,7 +1225,7 @@
     expressions whose syntax is described by the following BNF. It MAY
     support additional expressions defined by XPath 1.0.
     The following XPath Level 1 grammar is LL(1), and the
-    nonterminal productions are in angle brackets. Terminal symbols are
+    non-terminal productions are in angle brackets. Terminal symbols are
     either literals, or in UPPERCASE:
    </p>
    
@@ -1169,7 +1258,7 @@
    <p>
     The terminal tokens which require further lexical
     specification are NONZERO_DECIMAL_UNSIGNED_INTEGER, whose values are in the
-    subrange (1...4294967295), and XML_TOKEN whose values are equivalent to 
+    sub-range (1...4294967295), and XML_TOKEN whose values are equivalent to 
     those for the XML Schema type <emph>xs:token</emph>. This grammar 
     is small enough
     that it can be easily implemented in resource-constrained implementations.
@@ -1537,7 +1626,7 @@
    <p>
     The WS-Fragment global element definition wsf:NodeSet can also be
     used as the wrapper element when serializing these node-sets outside of
-    a WS-RT result.
+    a WS-Fragmen result.
    </p>
     
    <p>
@@ -1598,50 +1687,51 @@
    <p>The properties above bind to a SOAP 1.2 fault as follows:</p>
    <example>
     <eg>&lt;s12:Envelope&gt;
-   &lt;s12:Header&gt;
-     &lt;wsa:Action&gt; <kw>[Action]</kw> &lt;/wsa:Action&gt;
-     &lt;!-- Headers elided for brevity. --&gt;
-   &lt;/s12:Header&gt;
-   &lt;s12:Body&gt;
-     &lt;s12:Fault&gt;
-       &lt;s12:Code&gt;
-         &lt;s12:Value&gt;<kw>[Code]</kw>&lt;/s12:Value&gt;
-         &lt;s12:Subcode&gt;
-           &lt;s12:Value&gt;<kw>[Subcode]</kw>&lt;/s12:Value&gt;
-         &lt;/s12:Subcode&gt;
-       &lt;/s12:Code&gt;
-       &lt;s12:Reason&gt;
-         &lt;s12:Text xml:lang="en"&gt;<kw>[Reason]</kw>&lt;/s12:Text&gt;
-       &lt;/s12:Reason&gt;
-       &lt;s12:Detail&gt;
-         <kw>[Detail]</kw>
-         ...
-       &lt;/s12:Detail&gt;
-     &lt;/s12:Fault&gt;
-   &lt;/s12:Body&gt;
- &lt;/s12:Envelope&gt;</eg>
+  &lt;s12:Header&gt;
+    &lt;wsa:Action&gt; <kw>[Action]</kw> &lt;/wsa:Action&gt;
+    &lt;!-- Headers elided for brevity. --&gt;
+  &lt;/s12:Header&gt;
+  &lt;s12:Body&gt;
+    &lt;s12:Fault&gt;
+      &lt;s12:Code&gt;
+        &lt;s12:Value&gt;<kw>[Code]</kw>&lt;/s12:Value&gt;
+        &lt;s12:Subcode&gt;
+          &lt;s12:Value&gt;<kw>[Subcode]</kw>&lt;/s12:Value&gt;
+        &lt;/s12:Subcode&gt;
+      &lt;/s12:Code&gt;
+      &lt;s12:Reason&gt;
+        &lt;s12:Text xml:lang="en"&gt;<kw>[Reason]</kw>&lt;/s12:Text&gt;
+      &lt;/s12:Reason&gt;
+      &lt;s12:Detail&gt;
+        <kw>[Detail]</kw>
+        ...
+      &lt;/s12:Detail&gt;
+    &lt;/s12:Fault&gt;
+  &lt;/s12:Body&gt;
+&lt;/s12:Envelope&gt;</eg>
    </example>
     
    <p>The properties bind to a SOAP 1.1 fault as follows:</p>
    <example>
      <eg>&lt;s11:Envelope&gt;
-   &lt;s11:Body&gt;
-     &lt;s11:Fault&gt;
-       &lt;faultcode&gt;<kw>[Subcode]</kw>&lt;/faultcode&gt;
-       &lt;faultstring xml:lang="en"&gt;<kw>[Reason]</kw>&lt;/faultstring&gt;
-       &lt;detail&gt;
-         <kw>[Detail]</kw>
-         ...
-       &lt;/detail&gt;
-     &lt;/s11:Fault&gt;
-   &lt;/s11:Body&gt;
- &lt;/s11:Envelope&gt;</eg>
+  &lt;s11:Body&gt;
+    &lt;s11:Fault&gt;
+      &lt;faultcode&gt;<kw>[Subcode]</kw>&lt;/faultcode&gt;
+      &lt;faultstring xml:lang="en"&gt;<kw>[Reason]</kw>&lt;/faultstring&gt;
+      &lt;detail&gt;
+        <kw>[Detail]</kw>
+        ...
+      &lt;/detail&gt;
+    &lt;/s11:Fault&gt;
+  &lt;/s11:Body&gt;
+&lt;/s11:Envelope&gt;</eg>
    </example>
 
    <div2 id="UnsupportedLanguage">
     <head>UnsupportedLanguage</head>
     <p>
-     This fault is generated when a service detects an unknown Language 
+     This fault is generated when a service detects an unknown or
+     unsupprted Language 
      URI in a request message. 
     </p>
     <table id="Table3" border="1" cellpadding="5">
@@ -1652,17 +1742,77 @@
       </tr>
       <tr>
        <th align="left"><kw>[Subcode]</kw></th>
-       <td>wst:UnknownLanguage</td>
+       <td>wst:UnsupportedLanguage</td>
       </tr>
       <tr>
        <th align="left"><kw>[Reason]</kw></th>
        <td>
-        The specified Language URI is not known.
+        The specified Language URI is not supported.
        </td>
       </tr>
       <tr>
        <th align="left"><kw>[Detail]</kw></th>
-       <td><emph>The unknown URI if specified</emph></td>
+       <td><emph>The unsupported Language URI.</emph></td>
+      </tr>
+     </tbody>
+    </table>
+   </div2>
+
+   <div2 id="InvalidFragment">
+    <head>InvalidFragment</head>
+    <p>
+     This fault is generated when a service determines that the fragment 
+     (contents of the wsf:Fragment element) specified in a request is invalid. 
+    </p>
+    <table id="Table3" border="1" cellpadding="5">
+     <tbody>
+      <tr>
+       <th align="left"><kw>[Code]</kw></th>
+       <td>s:Sender</td>
+      </tr>
+      <tr>
+       <th align="left"><kw>[Subcode]</kw></th>
+       <td>wst:InvalidFragment</td>
+      </tr>
+      <tr>
+       <th align="left"><kw>[Reason]</kw></th>
+       <td>
+        The specific fragment is invalid.
+       </td>
+      </tr>
+      <tr>
+       <th align="left"><kw>[Detail]</kw></th>
+       <td><emph>The invalid fragment.</emph></td>
+      </tr>
+     </tbody>
+    </table>
+   </div2>
+
+   <div2 id="InvalidExpression">
+    <head>InvalidExpression</head>
+    <p>
+     This fault is generated when a service determines that the language
+     expression specified in a request is invalid.
+    </p>
+    <table id="Table3" border="1" cellpadding="5">
+     <tbody>
+      <tr>
+       <th align="left"><kw>[Code]</kw></th>
+       <td>s:Sender</td>
+      </tr>
+      <tr>
+       <th align="left"><kw>[Subcode]</kw></th>
+       <td>wst:InvalidExpression</td>
+      </tr>
+      <tr>
+       <th align="left"><kw>[Reason]</kw></th>
+       <td>
+        The specified Language expression is invalid.
+       </td>
+      </tr>
+      <tr>
+       <th align="left"><kw>[Detail]</kw></th>
+       <td><emph>The invalid language expression.</emph></td>
       </tr>
      </tbody>
     </table>
@@ -1806,6 +1956,14 @@
      , James Clark, et al, November 1999.
     </bibl>
 
+    <bibl key="XPath 1.0" id="xpath"
+          href="http://www.w3.org/TR/xpath">
+     <titleref>
+      XML Path Language (XPath) Version 1.0
+     </titleref>
+     , James Clark, et al, November 1999.
+    </bibl>
+
    </blist>
   </div1>
  </body>
@@ -1933,7 +2091,7 @@
       allow 0 or 1 value elements on the Create.
    </p>
    <p>
-    Ram - add an invalidExpression, NonExistentNode fault.
+    Ram - add a NonExistentNode fault.
    </p>
 
    <p>
@@ -1950,6 +2108,10 @@
     Ram - should we make the new bits <kw>bold</kw> so that people
     can see what's new from base Transfer?
    </p>
+
+   <p> Ram - update the wsdl/xsd </p>
+
+   <p> Ram - add a generic wsf:FragmentOperationFailed fault? </p>
   </div1>
  </back>
 </spec>
Received on Tuesday, 15 September 2009 19:35:09 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 15 September 2009 19:35:10 GMT