[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Fault AI
I was asked to look at how WS-Addressing handles the expressivity
differences between SOAP 1.1 and SOAP 1.2 faults; basically, there is a
loss of information for SOAP 1.1. It would be my recommendation to
follow this model so that the base web services standards all follow an
identical model.
From section 4 of the member submission:
The faults defined in this section are generated if the condition stated
in the preamble in each subsection is met. They are sent to the [fault
endpoint], if present and valid. Otherwise they are sent to the [reply
endpoint] if present. If neither is present faults may be sent to the
[source endpoint].
Endpoints compliant with this specification MUST include required
message information headers on all fault messages. Fault messages are
correlated as replies using the [relationship] property as defined in
Section 3. The [action] property below designates WS-Addressing fault
messages (this URI is also used as default Action value for WSDL fault
messages, as described in Section 3.3.2):
http://schemas.xmlsoap.org/ws/2004/08/addressing/fault
The definitions of faults use the following properties:
*[Code]* The fault code.
*[Subcode]* The fault subcode.
*[Reason]* The English language reason element.
*[Detail]* The detail element. If absent, no detail element is defined
for the fault.
The properties above bind to a SOAP 1.2 fault as follows:
<S:Envelope>
<S:Header>
<wsa:Action>
http://schemas.xmlsoap.org/ws/2004/08/addressing/fault
</wsa:Action>
<!-- Headers elided for clarity. -->
</S:Header>
<S:Body>
<S:Fault>
<S:Code>
<S:Value>*[Code]*</S:Value>
<S:Subcode>
<S:Value>*[Subcode]*</S:Value>
</S:Subcode>
</S:Code>
<S:Reason>
<S:Text xml:lang="en">*[Reason]*</S:Text>
</S:Reason>
<S:Detail>
*[Detail]*
</S:Detail> </S:Fault>
</S:Body>
</S:Envelope>
The SOAP 1.1 fault is less expressive and map only [Subcode] and
[Reason]. These the properties bind to a SOAP 1.1 fault as follows:
<S11:Envelope>
<S11:Body>
<S11:Fault>
<faultcode>*[Subcode]*</faultcode>
<faultstring xml:lang="en">*[Reason]*</faultstring>
</S11:Fault>
</S11:Body>
</S11:Envelope>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]