Home > Articles

The SOAP Protocol

  • Print
  • + Share This
This chapter is from the book

The SOAP Processing Model

Now we're ready to finish describing the SOAP 1.2 processing model. Here are the steps a processor must perform when it receives a SOAP message, as described in the spec:

  1. Determine the set of roles in which the node is to act. The contents of the SOAP envelope, including any SOAP header blocks and the SOAP body, may be inspected in making such determination.

  2. Identify all header blocks targeted at the node that are mandatory.

  3. If one or more of the SOAP header blocks identified in step 2 aren't understood by the node, then generate a single SOAP fault with the value of Code set to env:mustUnderstand. If such a fault is generated, any further processing must not be done. Faults related to processing the contents of the SOAP body must not be generated in this step.

  4. Process all mandatory SOAP header blocks targeted at the node and, in the case of an ultimate SOAP receiver, the SOAP body. A SOAP node may also choose to process nonmandatory SOAP header blocks targeted at it.

  5. In the case of a SOAP intermediary, and where the SOAP message exchange pattern and results of processing (for example, no fault generated) require that the SOAP message be sent further along the SOAP message path, relay the message.

The processing model has been designed to let you use mustUnderstand headers to do anything you want. We could imagine a mustUnderstand header, for instance, that tells the processor at the next hop to process all headers and ignore the role attribute.

  • + Share This
  • 🔖 Save To Your Account