The SOAP <Fault> is a sub-element of the SOAP
body, which is used for reporting errors.
If present, the SOAP <Fault> element must appear as
a body entry and must not appear more than once within a body element. The
sub-elements of the SOAP <Fault> element are different
in SOAP 1.1 and SOAP 1.2.
SOAP 1.1
In SOAP 1.1, the SOAP
<Fault> element
contains the following sub-elements:
- <faultcode>
- The<faultcode> element is a mandatory element within
the <Fault> element. It provides information about the
fault in a form that can be processed by software. SOAP defines a small set
of SOAP fault codes covering basic SOAP faults, and this set can be extended
by applications.
- <faultstring>
- The <faultstring> element is a mandatory element within
the <Fault> element. It provides information about the
fault in a form intended for a human reader.
- <faultactor>
- The <faultactor> element contains the URI of the SOAP
node that generated the fault. A SOAP node that is not the ultimate SOAP receiver
must include the <faultactor> element when it creates
a fault; an ultimate SOAP receiver is not obliged to include this element,
but might do so.
- <detail>
- The <detail> element carries application-specific
error information related to the <Body> element. It must
be present if the contents of the <Body> element were
not successfully processed. The <detail> element must
not be used to carry information about error information belonging to header
entries. Detailed error information belonging to header entries must be carried
within header entries.
SOAP 1.2
In SOAP 1.2, the SOAP
<Fault> element
contains the following sub-elements:
- <Code>
- The <Code> element is a mandatory element within the <Fault> element.
It provides information about the fault in a form that can be processed by
software. It contains a <Value> element and an optional <Subcode> element.
- <Reason>
- The <Reason> element is a mandatory element within
the <Fault> element. It provides information about the
fault in a form intended for a human reader. The <Reason> element
contains one or more <Text> elements, each of which contains
information about the fault in a different language.
- <Node>
- The <Node> element contains the URI of the SOAP node
that generated the fault. A SOAP node that is not the ultimate SOAP receiver
must include the <Node> element when it creates a fault;
an ultimate SOAP receiver is not obliged to include this element, but might
do so.
- <Role>
- The <Role> element contains a URI that identifies
the role the node was operating in at the point the fault occurred.
- <Detail>
- The <Detail> element is an optional element, which
contains application-specific error information related to the SOAP fault
codes describing the fault. The presence of the <Detail> element
has no significance as to which parts of the faulty SOAP message were processed.