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

The age-old question: nesting, SOAP:Body and omitting namespaces

Expand Messages
  • mrbelvedere30
    Hi, after reading this newsgroup, Google, and W3C standards for half a day, I m still confused about how one can accomplish the following with S::L, or if it
    Message 1 of 2 , Feb 15, 2006
    • 0 Attachment
      Hi,

      after reading this newsgroup, Google, and W3C standards for half a
      day, I'm still confused about how one can accomplish the following
      with S::L, or if it can be done at all. So perhaps you could just help
      a little...

      I need to create the following SOAP message:

      MESSAGE 1:

      <soap:Body>
      <Code>123</Code>
      <Message>456</Message>
      <Details>789</Details>
      </soap:Body>

      So I have:

      use SOAP::Lite
      proxy => 'http://localserver';
      my $soap = new SOAP::Lite;
      $code = SOAP::Data->name("Code" => '123');
      $message = SOAP::Data->name("Message" => '456');
      $details = SOAP::Data->name("Details" => '789');
      $soap->call($code, $message, $details);

      Everything works, except that SOAP::Lite *always* nests my tags inside
      some top-level tag, like this:

      MESSAGE 2:

      <soap:Body>
      <some-tag-or-another>
      <Code>123</Code>
      <Message>456</Message>
      <Details>789</Details>
      </some-tag-or-another>
      </soap:Body>

      But I don't need to use a namespace, and according to the W3C
      SOAP standard, I don't have to. So why, oh why does S::L still require
      a namespace tag, and even generate one itself if it's missing? :(

      I think there is no clearer way to ask this: is there a way to get the
      result shown in MESSAGE 1, or is there not and I should be looking for
      another SOAP library?

      I'd be very very glad if you could clarify this.

      J. Belvedere
    • Eric Bridger
      You are mis-using the call method. Your some-tag-or-another is what S::L thinks is the name of the method you are calling. Seems to me it should be
      Message 2 of 2 , Feb 15, 2006
      • 0 Attachment
        You are mis-using the call method. Your "some-tag-or-another" is what
        S::L thinks is the name of the method you are calling. Seems to me it
        should be <code> with some namespace on the proxy. You must call some
        method on the SOAP server end.

        See:
        http://www.majordojo.com/soaplite/docs/SOAP/Lite.html#METHODS
        $client->call($method => @arguments);

        Eric


        On Wed, 2006-02-15 at 11:44, mrbelvedere30 wrote:
        > Hi,
        >
        > after reading this newsgroup, Google, and W3C standards for half a
        > day, I'm still confused about how one can accomplish the following
        > with S::L, or if it can be done at all. So perhaps you could just help
        > a little...
        >
        > I need to create the following SOAP message:
        >
        > MESSAGE 1:
        >
        > <soap:Body>
        > <Code>123</Code>
        > <Message>456</Message>
        > <Details>789</Details>
        > </soap:Body>
        >
        > So I have:
        >
        > use SOAP::Lite
        > proxy => 'http://localserver';
        > my $soap = new SOAP::Lite;
        > $code = SOAP::Data->name("Code" => '123');
        > $message = SOAP::Data->name("Message" => '456');
        > $details = SOAP::Data->name("Details" => '789');
        > $soap->call($code, $message, $details);
        >
        > Everything works, except that SOAP::Lite *always* nests my tags inside
        > some top-level tag, like this:
        >
        > MESSAGE 2:
        >
        > <soap:Body>
        > <some-tag-or-another>
        > <Code>123</Code>
        > <Message>456</Message>
        > <Details>789</Details>
        > </some-tag-or-another>
        > </soap:Body>
        >
        > But I don't need to use a namespace, and according to the W3C
        > SOAP standard, I don't have to. So why, oh why does S::L still require
        > a namespace tag, and even generate one itself if it's missing? :(
        >
        > I think there is no clearer way to ask this: is there a way to get the
        > result shown in MESSAGE 1, or is there not and I should be looking for
        > another SOAP library?
        >
        > I'd be very very glad if you could clarify this.
        >
        > J. Belvedere
        >
        >
        >
        >
        >
        >
        >
        > Yahoo! Groups Links
        >
        >
        >
        >
        >
      Your message has been successfully submitted and would be delivered to recipients shortly.