Loading ...
Sorry, an error occurred while loading the content.

Expand Messages
  • J C Lawrence
    I m looking to improve the SOAP generation for SOAPpy, particularly WRT complex types and interop conformance. In that line I ve a few questions related to
    Message 1 of 2 , Aug 23, 2004
    • 0 Attachment
      I'm looking to improve the SOAP generation for SOAPpy, particularly WRT
      complex types and interop conformance. In that line I've a few
      questions related to generating the parse tree, and which seem to relate
      to the now deprecated SOAP-ENC:root attribute:

      1) In a SOAP message can (how?) a multiref be outside of the Body?

      <body>
      <call href="#foo"/>
      </body>
      <multiref id="foo">XYZ</multiref>

      If so that would seem to allow a multiref to be shared between the
      header and body:

      <header>
      <value href="#foo" />
      </header>
      <body>
      <call href="#foo" />
      </body>
      <multiref id="foo">XYZ</multiref>

      Is either legal? Generally (un)supported if legal? My current
      reading suggests that a SOAP message may contain only two top-level
      entities: the header ad the body.

      2) As a more abstract version of the first question, can an HREF
      reference at entity which is defined higher in the parse tree than
      itself?

      <body>
      <a>
      <b>
      <c href="#foo" />
      <\b>
      </a>
      <multiref id="foo">XYZ</multiref>
      </body>

      How about not being defined at or beside a direct parent in terms of
      the parse graph?

      <body>
      <a>
      <b>
      <c href="#foo" />
      <\b>
      </a>
      <x>
      <multiref id="foo">XYZ</multiref>
      </x>
      </body>

      My reading of the specs suggests it can to the first part and can't to
      the second.

      3) In real-world practice is the SOAP-ENC:root attribute used much?

      I suspect I'm missing something obvious, but what?

      --
      J C Lawrence
      ---------(*) Satan, oscillate my metallic sonatas.
      claw@... He lived as a devil, eh?
      http://www.kanga.nu/~claw/ Evil is a name of a foeman, as I live.
    • Simon Fell
      ... You can t put elements after the body element. ... Your reading is correct. But you can still share between header and body
      Message 2 of 2 , Aug 24, 2004
      • 0 Attachment
        On Mon, 23 Aug 2004 15:32:44 -0400, in ws you wrote:

        >I'm looking to improve the SOAP generation for SOAPpy, particularly WRT
        >complex types and interop conformance. In that line I've a few
        >questions related to generating the parse tree, and which seem to relate
        >to the now deprecated SOAP-ENC:root attribute:
        >
        > 1) In a SOAP message can (how?) a multiref be outside of the Body?
        >
        > <body>
        > <call href="#foo"/>
        > </body>
        > <multiref id="foo">XYZ</multiref>

        You can't put elements after the body element.

        > If so that would seem to allow a multiref to be shared between the
        > header and body:
        >
        > <header>
        > <value href="#foo" />
        > </header>
        > <body>
        > <call href="#foo" />
        > </body>
        > <multiref id="foo">XYZ</multiref>
        >
        > Is either legal? Generally (un)supported if legal? My current
        > reading suggests that a SOAP message may contain only two top-level
        > entities: the header ad the body.
        Your reading is correct. But you can still share between header and
        body
        <header>
        <value href="#foo" />
        </header>
        <body>
        <call href="#foo" />
        <multiref id="foo">XYZ</multiref>
        </body>

        > 2) As a more abstract version of the first question, can an HREF
        > reference at entity which is defined higher in the parse tree than
        > itself?
        >
        > <body>
        > <a>
        > <b>
        > <c href="#foo" />
        > <\b>
        > </a>
        > <multiref id="foo">XYZ</multiref>
        > </body>

        yes, the relative locations in the parse tree are irrelevant.

        > How about not being defined at or beside a direct parent in terms of
        > the parse graph?
        >
        > <body>
        > <a>
        > <b>
        > <c href="#foo" />
        > <\b>
        > </a>
        > <x>
        > <multiref id="foo">XYZ</multiref>
        > </x>
        > </body>

        also allowed.

        > My reading of the specs suggests it can to the first part and can't to
        > the second.

        care to elaborate ? I'm not aware of anything that says you can't do
        the second one.

        > 3) In real-world practice is the SOAP-ENC:root attribute used much?

        some toolkits put the root attribute in the multiref elements, however
        a number of toolkits don't pay any attention to them during
        deserialation and assume the first child of body is the root method
        element, and subsequent siblings are mutliref roots.

        >I suspect I'm missing something obvious, but what?

        I think what you're missing is that the structure of the tree has no
        effect on the possible id/href locations. The href can also point to
        something outside of the envelope (see SwA for example)

        Cheers
        Simon
        www.pocketsoap.com
      Your message has been successfully submitted and would be delivered to recipients shortly.