the embodiment of the processing logic necessary to transmit, receive, process and/or relay a soap message, according to the set of conventions defined by this recommendation. a soap node is responsible for enforcing the rules that govern the exchange of soap messages (see 2. soap processing model). it accesses the services provided by the underlying protocols through one or more soap bindings.
soap role
a soap receiver's expected function in processing a message. a soap receiver can act in multiple roles.
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 the preceding step are not understood by the node then generate a single soap fault with the value of code set to "env:mustunderstand" (see 5.4.8 soap mustunderstand faults). if such a fault is generated, any further processing must not be done. faults relating to 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 non-mandatory 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 (e.g. no fault generated) require that the soap message be sent further along the soap message path, relay the message as described in section 2.7 relaying soap messages.
soap中间节点必须按照第三部分所描述的方式处理其收到的soap消息,并按以下方式生成一个新的soap消息,并将其向前传递给下一个soap node。 remove all processed soap header blocks.
remove all non-relayable soap header blocks that were targeted at the forwarding node but ignored during processing.
retain all relayable soap header blocks that were targeted at the forwarding node but ignored during processing.
insert or reinsert some header blocks if the soap intermediary determined to do that. the header blocks that were inserted or reinserted might be indistinguishable from one or more of the header blocks removed by the intermediary. processing is defined here in terms of re-inserting header blocks (rather than leaving them in place) to emphasize the need to process them at each soap node along the soap message path.