Extension Handling 101: Example 2

Continuing in our series on extension handling here is Example 2:

It seems that our Subscriber was able to detect that we did not engage 
the strange and complicated "time dilation extension" in Example 1. (How 
could she possibly have figured that out? You'll have to wait for a 
later Example . . . ). In an attempt to make us comply with her 
extension she now submits the following request:

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
            xmlns:wsa="http://www.w3.org/2005/08/addressing"
            xmlns:wse="http://www.w3.org/2009/02/ws-evt"
            xmlns:frq="http://www.refractory.org/timeDilation">
  <s:Header>
    <wsa:Action>http://www.w3.org/2009/02/ws-evt/Subscribe</wsa:Action>
    . . .
    *<frq:UseDilate s:mustUnderstand="1"/>*
  </s:Header>
  <s:Body>
    <wse:Subscribe>
      <wse:Delivery>
        <wse:NotifyTo>
          <wsa:Address>http://www.example.com/MyEventSink/OnStormWarning</wsa:Address>
        </wse:NotifyTo>
*        <frq:Dilate>
          <frq:TimeScale useRelative="true">
            <frq:PhaseShift>-73.243</frq:PhaseShift>
          </frq>
          <frq:Margin>2009-07-07T15:27:26-0700</frq:Margin>
        </frq:Dilate>*
      </wse:Delivery>
    </wse:Subscribe>
  </s:Body>
</s:Envelope>

Ha! Too bad for her, because we *still* don't understand the frq:Dilate 
extension and her use of the mustUnderstand header has allowed us to 
fail her request even *earlier* and with *less processing* than before!

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
            xmlns:wsa="http://www.w3.org/2005/08/addressing"
            xmlns:frq="http://www.refractory.org/timeDilation">
  <s:Header>
    <s:NotUnderstood  qname="frq:UseDilate"/>
    . . .
  </s:Header>
  <s:Body>
    <s:Fault>
      <s:Reason>
        <s:Text xml:lang="en-US">One or more mandatory SOAP header blocks not understood</s:Text>
      </s:Reason>
      <s:Code>      
        <s:Value>s:MustUnderstand</s:Value>
      </s:Code>
    </s:Fault>
  </s:Body>
</s:Envelope>

And so concludes Example 2.

- gp

Received on Tuesday, 7 July 2009 23:18:25 UTC