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

Change namespace of the envelope?

Expand Messages
  • ramon_dei@yahoo.com
    Hello all, I met a problem when changing my perl program from SOAP to SOAP::Lite. In the previous SOAP call, I specified the XML stream as following:
    Message 1 of 2 , Sep 24, 2001
    • 0 Attachment
      Hello all,

      I met a problem when changing my perl program from SOAP to
      SOAP::Lite. In the previous SOAP call, I specified the XML stream as
      following:

      <SOAP:Envelope xmlns:SOAP="urn:schemas-xmlsoap-org:soap.v1"
      xmlns:xsd="urn:schemas-microsoft-com:datatypes" xmlns:dt="urn:schemas-
      microsoft-com:datatypes">
      <SOAP:Body>...(method and parameters)...</SOAP:Body></SOAP:Envelope>

      It works perfectly. When I change this to SOAP:Lite, it automatically
      generates something like this:

      <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-
      ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-
      ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:SOAP-
      ENV="http://schemas.xmlsoap.org/soap/envelope/"
      xmlns:xsd="http://www.w3.org/1999/XMLSchema"><SOAP-ENV:Body>...
      (method and parameters>...</SOAP:Body></SOAP:Envelope>

      As you can see the difference of the namespace for the envelope, I
      got an error message from the server like following:

      100: Version Mismatch|Incorrect namespace for Envelope:
      http://schemas.xmlsoap.org/soap/envelope

      Thus, my question is: is there any way to specify the namespace of
      the envelope?

      Thanks,
      Ramon
    • Paul Kulchenko
      Hi, Ramon! ... This is namespace from SOAP1.0 ... This is namespace from SOAP1.1. Most (if not all) of the toolkits available now on market are support this
      Message 2 of 2 , Sep 24, 2001
      • 0 Attachment
        Hi, Ramon!

        > <SOAP:Envelope xmlns:SOAP="urn:schemas-xmlsoap-org:soap.v1"
        This is namespace from SOAP1.0

        > xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:SOAP-
        > ENV="http://schemas.xmlsoap.org/soap/envelope/"
        This is namespace from SOAP1.1. Most (if not all) of the toolkits
        available now on market are support this version of SOAP and do not
        support SOAP1.0. SOAP::Lite does the same thing. It supports SOAP1.1
        and SOAP1.2, but if you want to generate SOAP1.0 (which I do not
        recommend), you can do it manually.

        Technically, there is an array (SOAP::Constants::SOAP_VERSIONS) that
        specifies namespaces for different versions. After you specify
        namespaces for SOAP1.0, you can call ->soapversion() method of
        SOAP::Lite and specify '1.0' as a parameter. Untested. It doesn't
        guarantee the result, because datatypes might be different too and
        you may need to provide your own serializer to customize it.

        I would recommend to use SOAP1.1 and don't think about SOAP1.0,
        because nobody will be able to interoperate with your toolkit.
        Probably the safest way is to update versions on both client and
        server. Are you using SOAP.pm from DevelopMentor?

        Best wishes, Paul.

        --- ramon_dei@... wrote:
        > Hello all,
        >
        > I met a problem when changing my perl program from SOAP to
        > SOAP::Lite. In the previous SOAP call, I specified the XML stream
        > as
        > following:
        >
        > <SOAP:Envelope xmlns:SOAP="urn:schemas-xmlsoap-org:soap.v1"
        > xmlns:xsd="urn:schemas-microsoft-com:datatypes"
        > xmlns:dt="urn:schemas-
        > microsoft-com:datatypes">
        > <SOAP:Body>...(method and
        > parameters)...</SOAP:Body></SOAP:Envelope>
        >
        > It works perfectly. When I change this to SOAP:Lite, it
        > automatically
        > generates something like this:
        >
        > <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
        > xmlns:SOAP-
        > ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-
        > ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
        > xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:SOAP-
        > ENV="http://schemas.xmlsoap.org/soap/envelope/"
        > xmlns:xsd="http://www.w3.org/1999/XMLSchema"><SOAP-ENV:Body>...
        > (method and parameters>...</SOAP:Body></SOAP:Envelope>
        >
        > As you can see the difference of the namespace for the envelope, I
        > got an error message from the server like following:
        >
        > 100: Version Mismatch|Incorrect namespace for Envelope:
        > http://schemas.xmlsoap.org/soap/envelope
        >
        > Thus, my question is: is there any way to specify the namespace of
        > the envelope?
        >
        > Thanks,
        > Ramon
        >
        >
        > ------------------------ Yahoo! Groups Sponsor
        >
        > To unsubscribe from this group, send an email to:
        > soaplite-unsubscribe@yahoogroups.com
        >
        >
        >
        > Your use of Yahoo! Groups is subject to
        > http://docs.yahoo.com/info/terms/
        >
        >


        __________________________________________________
        Do You Yahoo!?
        Get email alerts & NEW webcam video instant messaging with Yahoo! Messenger. http://im.yahoo.com
      Your message has been successfully submitted and would be delivered to recipients shortly.