Re: SOAP and HTTP binding: definition of {soap fault code} and wsoap:code

* Jonathan Marsh <jmarsh@microsoft.com> [2005-09-02 09:24-0700]
> Hugo, the WG had a hard time understanding precisely what needs to be changed.  I took an action to ask you for a more explicit proposal, which action I hereby discharge ;-).

Please see below.

> > -----Original Message-----
> > From: public-ws-desc-comments-request@w3.org [mailto:public-ws-desc-
> > comments-request@w3.org] On Behalf Of Hugo Haas
> > Sent: Wednesday, August 24, 2005 3:12 AM
> > To: public-ws-desc-comments@w3.org
> > Subject: SOAP and HTTP binding: definition of {soap fault code} and
> > wsoap:code
> > 
> > This is an issue which has already been addressed (LC130[1]) and
> > editorially implemented incorrectly.
> > 
> > It therefore is editorial. Details follow.
> > 
> > Part 2's section 5.7 Binding Faults defines:
> > 
> >      * {soap fault code} OPTIONAL. A xs:QName, to the Binding Fault
> >        component. The value of this property identifies a possible
> > SOAP
> >        fault for the operations in scope. If this property is empty,
> > no
> >        assertion is made about the value of the SOAP fault code.
> > 
> > [...]
> > 
> >      * wsoap:code OPTIONAL attribute information item
> > 
> >           * A [local name] of code
> > 
> >           * A [namespace name] of
> > "http://www.w3.org/2005/08/wsdl/soap"
> > 
> >           * A type of union of xs:QName and xs:token where the allowed
> > token
> >             value is "#any"
> > 
> > [...]
> > 
> > 
> > ┌───────────────────────┬─────────────────────────────────────────────
> > ──┐
> >    │       Property        │                     Value
> > │
> > 
> > ├───────────────────────┼─────────────────────────────────────────────
> > ──┤
> >    │                       │ The actual value of the code attribute
> > │
> >    │ {soap fault code}     │ information item if present and if its
> > value  │
> >    │                       │ is not "#any"; otherwise empty.
> > │
> > 
> > ├───────────────────────┼─────────────────────────────────────────────
> > ──┤
> > 
> > Why do we need "#any" as a possible value if the wsoap:code attribute
> > is optional?
> > 
> > It turns out that the resolution to LC130 was not properly
> > implemented:
> > 
> > * Jonathan Marsh <jmarsh@microsoft.com> [2005-06-04 01:08-0700]
> > >   Issue LC130: Binding fault defaulting?
> > >     RESOLUTION: wsoap:subcode and wsoap:code will be optional,
> > >               wsoap:subcode and wsoap:code will allow #any as a
> > token,
> > >               missing attribute will map to #any in the component
> > model,
> > >               #any => no assertion is made about the value,
> > >               http:code will be similarly modified.
> > 
> > -- http://lists.w3.org/Archives/Public/www-ws-desc/2005Jun/0003
> > 
> > wsoap:subcode, wsoap:code and whttp:code need to be revised to reflect
> > the correct resolution of LC130.
> > 
> >   1. http://www.w3.org/2002/ws/desc/4/lc-issues/#LC130

The changes that we agreed to and have NOT been made editorially yet
are (based on [2]) — hopefully I got everything right:
- {soap fault code}:
  - change optionality to mandatory
  - change type from xs:QName to union of xs:QName and xs:token where
    the allowed token value is "#any"
  - change 'If this property is empty' into 'If the value of this
    property is "#any"'
- {soap fault subcodes}:
  - change optionality to mandatory
  - change type from list of xs:QName to union of list of xs:QName and
    xs:token where the allowed token value is "#any"
  - add: 'If the value of this property is "#any", no assertion is
    made about the value of the SOAP fault subcode.'
- @wsoap:subcodes:
  - change type from list of xs:QName to union of list of xs:QName and
    xs:token where the allowed token value is "#any"
- mapping for {soap fault code}:
  - replace 'and if its value is not "#any"; otherwise empty' by ';
    otherwise "#any"'
- mapping for {soap fault subcodes}
  - replay 'otherwise empty' by 'otherwise "#any"'
- {http error status code}:
  - change optionality to mandatory
  - change type from xs:int to union of xs:int and xs:token where the
    allowed token value is "#any"
  - change 'If empty' into 'If the value of this property is "#any"'
- mapping for {http error status code}:
  - replace 'and if its value is not "#any"; otherwise empty' by ';
    otherwise "#any"'

I believe that this accurately implements the resolution of LC130:

    wsoap:subcode and wsoap:code will be optional, wsoap:subcode and
    wsoap:code will allow #any as a token, missing attribute will map
    to #any in the component model, #any => no assertion is made about
    the value, http:code will be similarly modified.

Cheers,

Hugo

  2. http://lists.w3.org/Archives/Public/www-ws-desc/2005Jun/att-0002/20050601-ws-desc-minutes.html#item01
-- 
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/

Received on Tuesday, 13 September 2005 15:18:20 UTC