This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
Given a resource with multiple properties, it is possible that some properties may be "read/write" while other properties are "read only". For example, a resource may have some form of persistent ID that cannot be changed. An attempt to change this ID via a WS-Transfer Put would not be honored by the service that provides access to that resource, but an attempt to change other properties of the resource would be honored. The wsa:ActionNotSupported fault is not an accurate description of the problem, because, in general, Put *is* supported (i.e. other Put operations may succeed). The wst:InvalidRepresentation fault is also not an accurate description of the problem because there is nothing wrong with the format or structure of the supplied representation (i.e. the representation is schema-valid for the type of resource being accessed). As a strawman proposal I suggest the definition of a new fault that means "I can't honor your request to change one or more attributes of this resource" that optionally includes, in the [Detail] property of the fault, a list of XPath expressions that identify the offending element(s).
proposal at http://lists.w3.org/Archives/Public/public-ws-resource-access/2009Jun/0035.html
Change the exposition of Put as follows: A Put request MUST be targeted at the resource whose representation is desired to be replaced, as described in 2 Terminology and Notation <http://www.w3.org/2002/ws/ra/edcopies/wst.html#Notations_and_Terminology> of this specification. Implementations MAY use the fault code wst:InvalidRepresentation if the presented representation is invalid for the target resource. The replacement representation may be considered to be invalid if it does not conform to the schema(s) for the target resource or otherwise violates some cardinality or type constraint. If an implementation detects that the presented representation is invalid it MUST generate a wst:InvalidRepresentation fault. The replacement representation may contain within it element or attribute values that are different than their corresponding values in the current representation. Such changes may affect elements or attributes that, for whatever reason, the implementation does wish to allow the client to change. An implementation MAY choose to ignore such elements or attributes, or it MAY generate a wst:PutDenied fault. See 5 Faults <http://www.w3.org/2002/ws/ra/edcopies/wst.html#Faults>. Other components of the outline above are not further constrained by this specification. A successful Put operation updates the current representation associated with the targeted resource. An unsuccessful Put operation does not affect the resource. Add the following fault definition to Section 5: 5.2 wst:PutDenied *[Code]* s:Sender *[**Subcode]* wst:UpdateDenied *[**Reason]* One or more elements or attributes cannot be updated. *[Detail]* An optional list of the QNames of the elements or attributes that are not allowed to be updated.