I think that you are asking a question about message _routing_
here whereas the "actor" attribute identifies the _target_ of a
header block. The ordering of header blocks does not control the
actual message path... nor does the value of the actor attributes.
Routing is controlled by the use of a SOAP extension, like WS-
Routing  or by some other app defined means, independent of
the ordering of the header entries.
So there is no reason to rewrite the actor attributes as you
describe, changing them from a specific URI to "next". They are
used to identify "roles", and as such would be left undisturbed as
the message propagates. It is quite possible that when the
message reaches the ultimate destination, header blocks targeted
at some actor not encountered in the message path remain, having
never been processed.
> First, let me say that I'm not writing an implementation, I'm writing a book.
> I did an extensive Google search with several different combinations of terms,
> with no real luck. Of the mailing lists that were "hits", this one seemed to
> be the most currently-active (there may have been others that just didn't
> match the search terms).
> My question regards headers in which there are multiple blocks with actor
> attributes, and within these there are at least two such blocks for which the
> attribute is identical, but is *not* the "/next" or "/none" actor as defined
> by SOAP 1.2, Part 1, from w3c.org.
> I realize that there is no established, hard-defined standard for the order
> in which header blocks intended for multiple intermediaries are processed.
> Most currently-available text on the subject implies that the blocks are
> handled in a linear order, defined by the existing ordering within the
> <env:Header></env:Header> container itself.
> Assume for the sake of example that the header has 5 blocks within it, in a
> structure roughly described by:
> Block A: actor="http://www.w3.org/2001/12/soap-envelope/actor/next"
> Block B: actor="http://something.else.org/op"
> Block C: actor="http://third.com/operation"
> Block D: actor="http://something.else.org/op"
> Block E: no actor, intended for ultimate recipient
> (the presence and/or value of mustUnderstand attributes are not relevant in
> this case)
> Upon processing by the first node, Block A is handled by virtue of explicitly
> drawing attention to itself with the actor-role. The node is now responsible
> for creating a new message and sending it to the next intermediary. This new
> message will have Block A removed from the header, and possibly some new
> information added in either or both of the header and body. The header block(s)
> that correspond to the upcoming intermediary will have the actor attribute
> rewritten to reference the "current" actor, as Block A's does at the moment.
> So the actual question is this: From Block A, does the message pass to the
> actor specified in Block B with *only* Block B's actor set to /next, and
> then to Block C and then on to Block D, which will also be the ultimate
> recipient, -OR-, does the message pass to this new intermediary with the actor
> attributes in BOTH B and D set to /next, after which the message will be sent
> to the node specified by Block D, which will also act as the ultimate
> Is it:
> A(start) -> B+D(together) -> C (which also processes E)
> A(start) -> B -> C -> D (which also processes E)
> Thanks in advance for any help you may be able to offer.
> rjray@... Linux: Because rebooting is for adding new hardware.
> Any spammers auto-extracting addresses from this message will definitely want
> to include uce@... and report@...
> This group is a forum for builders of SOAP implementations to discuss implementation and interoperability issues. Please stay on-topic.
> To unsubscribe from this group, send an email to:
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/