Validation and Fault Handling

Most WS-Addressing elements are optional. If these elements are omitted, the SOAP binding does not return a fault message. To enable validation, enable the endpoint for WS-Addressing.

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].

The [action] property designates WS-Addressing fault messages. This URI is also used as default Action value for WSDL fault messages: http://schemas.xmlsoap.org/ws/2004/08/addressing/fault

The definitions of faults use the following properties:

Property Description
[Code] The fault code.
[Subcode] or [Subsubcode] The fault subcode.
[Details] The detail element. If absent, no detail element is defined for the fault.

SOAP Binding Flags

The handling of WS-Addressing headers depends on the state of the Enable WS-Addressing SOAP binding flag. When checked, the WS-Addressing headers are validated. If unchecked, the request URI determines the service name and the soapAction transport header determines the operation. The following sections describe the behavior of the SOAP binding when incoming requests are missing WS-Addressing header elements.

/wsa:Action

  • Missing /wsa:Action The SOAP container returns a fault message with the details:
    <ProblemAction xmlns="http://www.w3.org/2005/08/addressing">
       <Action>NULL</Action>
    </ProblemAction>
    If this header is set but is invalid, the SOAP binding returns a fault message with the details:
    <ProblemAction xmlns="http://www.w3.org/2005/08/addressing">
       <Action>invalidAction</Action>
    </ProblemAction>

/wsa:To

  • Missing /wsa:To

    The value of the [destination] property is set to http://www.w3c.org/2005/08/addressing/anonymous.

  • Missing Both /wsa:Action and /wsa:To
    The SOAP binding returns a fault message with the details:
    <ProblemAction xmlns="http://www.w3.org/2005/08/addressing">
       <Action>NULL</Action>
    </ProblemAction> 

/wsa:ReplyTo

  • Missing /wsa:ReplyTo

    The [address] property of the [reply endpoint] is set to http://www.w3c.org/2005/08/addressing/anonymous. If this element is missing or invalid, the SOAP container synchronously returns a response message to the client with WS-Addressing header populated.

  • Missing /wsa:ReplyTo/Addressing

    If /wsa:ReplyTo element is present, but is missing the required address subelement, the SOAP container returns a fault message with subcode=InvalidAddressingHeader and subsubcode=MissingAddressInEPR. The [action] property is set to http://www.w3.org./2005/08/addressing/soap/fault.

/wsa:FaultTo

  • Missing /wsa:FaultTo

    If the reply is a fault message the [reply endpoint] property is used.

  • Missing Both /wsa:FaultTo and /wsa:ReplyTo

    The response is sent back to the client directly. The [action] property is set to http://www.w3.org./2005/08/addressing/soap/fault.

  • Missing /wsa:FaultTo/Addressing

    If the /wsa:FaultTo element is present, but is missing the required Address subelement, the SOAP container returns a fault message with subcode InvalidAddressingHeader and subsubcode=MissingAddressInEPR. The [action] property is set to http://www.w3.org./2005/08/addressing/soap/fault.

  • Missing /wsa:MessageID

    The SOAP container returns a fault message with subcode=MessageAddressingHeaderRequired.