Hi Mark and Alex,
I read all existing fault handling rules as Alex, QName matching based on
the declaration in the WSDL. If the actual thrown element data's QName does
not match the QName in a <catch faultElement="..."> it isn't catched by
that <catch>. IMO, in the following example the <catch> currently can't
catch the thrown variable and that's too true for rules 2 and 5:
<element name="E1" type="T"/>
<element name="E2" type="T"/>
<variable name="E1" element="E1"/>
<variable name="E2" element="E2"/>
scope
catch faultElement="E1"
...
throw variable="E2"
Means there is currently no support for cross-over catching (elements of
the same type) or substitution groups. Maybe this needs a clarification.