Hi All,
While reading through the
SOAP nodes and header blocks, I read through mustUnderstand and role attributes of SOAP envelope schema. It is mentioned that applications can define their own roles as an addition to the standard next, none, ulitmateReceiver. Does anybody come across such examples? I tried to look for one, but was not successful.
Also, assume that a header block bears the role as "next" and mustUnderstand = "1" in such cases, the next available node in path, should either process it or generate a fault. If it generates a fault, a SOAP fault is sent back to the sender. If it processes the header, then it would remove that header block and fowards the modified SOAP message to the next node. Is my understanding correct so far?
In the usecase of fault generation, I think that particular SOAP fault would again go through all the nodes defined in its path before reaching the original sender. Is this true ?
I'm adding another question to my original post. Under SOAP role attribute description (
http://www.w3.org/TR/soap12-part1/#soaprole), it is mentioned that
SOAP senders SHOULD NOT generate, but SOAP receivers MUST accept, the SOAP role attribute information item with a value of "http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver".
Does the above statement mean, that a SOAP sender should not explicitly indicate the role as "ultimateReciever" and if no role mentioned, then it implies "ultimateReceiver". Can an intermediary set the role to "ultimateReceiver", if not the original sender? Is there any logical reason for not allowing the sender to specify the role as "ultimateReceiver".
If relaying the message, a SOAP intermediary MAY omit a SOAP role attribute information item if its value is "http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver"
If a sender is NOT permitted to set "ultimateReceiver", why would intermediaries would see the attribute value as "ultimateReceiver".