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

Re: [soapbuilders] Re: Interoperability lab

Expand Messages
  • Jacek Kopecky
    W. Matthew, I see that you chose the same approach as IdooXoap did, too. We also compare xsi:type against the WSDL, we don t require xsi:type either and we
    Message 1 of 18 , Feb 2, 2001
    • 0 Attachment
      W. Matthew, I see that you chose the same approach as IdooXoap did,
      too. We also compare xsi:type against the WSDL, we don't require
      xsi:type either and we also put it in there everywhere.

      What kind of XML Schema representation of SOAP Encoding structures
      do you support? Or do you support any general schema?

      Jacek Kopecky
      Idoox



      On Fri, 2 Feb 2001, W. Matthew Long wrote:

      > > Hi Tony,
      > >
      > > What I'm actually looking for is a service that doesn't put in the
      > > xsi:type
      > > stuff and relies on WSDL/SDL/whatever to get the knowledge of the
      > types of
      > > parameters of a call. We recently put in support in Apache SOAP
      > to handle
      > > that and I haven't been able to find any complex type tests. I
      > wrote a
      > > simpel test to talk to your guidgen server (written in MS SOAP I
      > believe)
      > > and it works fine.
      > >
      >
      > Sanjiva,
      >
      > We should be releasing the vbSOAP tool set in two weeks. The SOAP
      > Processor utilizes the WSDL Processor to ensure the scenario.
      > 1) If the xsi:type is set in the Request Envelope the xsi:type is
      > check against the WSDL document, also the value is check against the
      > type specific is the xsi:type(s) match between the request and the
      > WSLD document for the service
      > 2) If the xsi:type is not specified, the SOAP processor utilizes the
      > WSDL processor to ensure the part values can be converted into the
      > appropriate type.
      > 3) Finally, we have WSDL interrogator that will generate VBScript
      > from a WSDL document for method calls. The Interrogator along with
      > our SOAP client will automatically use xsi:type attributes on the
      > parts for interoperability purposes, although our SOAP processor does
      > not require it.
      >
      > We have found that the WSDL Interrogator along with our SOAP client
      > is highly interoperable with does take into account the possibility
      > of differing XMLSchema, i.e., 1999 and 2000/10, which some
      > implementations require.
      >
      > All this will be available, along with our WSDL Wizard for COM
      > objects after the documentation is completed (which is a mountain of
      > documentation)
      >
      >
      >
      >
      >
      >
      >
      > To unsubscribe from this group, send an email to:
      > soapbuilders-unsubscribe@yahoogroups.com
      >
      >
      >
    • Matt Long
      ... We re using 2000/10 as the default of the WSDL Wizard, but it is up to the user to insert the schema for a part(s) where needed, i.e., support xsi:type(s)
      Message 2 of 18 , Feb 2, 2001
      • 0 Attachment
        > W. Matthew, I see that you chose the same approach as IdooXoap did,
        > too. We also compare xsi:type against the WSDL, we don't require
        > xsi:type either and we also put it in there everywhere.
        >
        > What kind of XML Schema representation of SOAP Encoding structures
        > do you support? Or do you support any general schema?
        >
        > Jacek Kopecky
        > Idoox


        We're using 2000/10 as the default of the WSDL Wizard, but it is up to the
        user to insert the schema for a part(s) where needed, i.e., support
        xsi:type(s) do not schemas nor does supportted ArrayOfTypes. Our WSDL
        Interrogator can set the xsi and xsd namespaces from the WSDL document for
        our SOAP client if these exist in the WSDL Document (which is needed in some
        implementations). The general rule in our implementation is that if a part
        is not a supportted xsi:type, i.e., xsd:string, xsd:date, xsd:timeInstant,
        xsd:double,.... then it must be properly identified to the <types> element,
        i.e., the schema of the WSDL document.

        Example tns:PurchaseOrder. If this occurs the processor will cut out the
        scoping element and its children of "tns:PurchaseOrder" and pass to the
        method call as a document fragment.

        ...soap arrays can only be one dimension for now and must be in the form
        <SOAP-ENC:Array SOAP-ENC:arrayType="xsd:whatever">
        <part/>
        <part/>
        </SOAP-ENC:Array>
        We choose this for arrays since it is the basic form and *should* interop
        best.

        ...Also, the WSDL Interrogator will inspect the <types> in the WSDL document
        in such a case that a part is a object(i.e., dom document or xml fragment)
        and will display the schema of said part in comments for VBScript. With
        this the service implementor receives the correct schema (specific to the
        WSDL document interrogated) such that the service implementor can correctly
        form the object to pass in the request.






        >
        >
        >
        > On Fri, 2 Feb 2001, W. Matthew Long wrote:
        >
        > > > Hi Tony,
        > > >
        > > > What I'm actually looking for is a service that
        > doesn't put in the
        > > > xsi:type
        > > > stuff and relies on WSDL/SDL/whatever to get the
        > knowledge of the
        > > types of
        > > > parameters of a call. We recently put in support in
        > Apache SOAP
        > > to handle
        > > > that and I haven't been able to find any complex type tests. I
        > > wrote a
        > > > simpel test to talk to your guidgen server (written in
        > MS SOAP I
        > > believe)
        > > > and it works fine.
        > > >
        > >
        > > Sanjiva,
        > >
        > > We should be releasing the vbSOAP tool set in two weeks. The SOAP
        > > Processor utilizes the WSDL Processor to ensure the scenario.
        > > 1) If the xsi:type is set in the Request Envelope the xsi:type is
        > > check against the WSDL document, also the value is check
        > against the
        > > type specific is the xsi:type(s) match between the request and the
        > > WSLD document for the service
        > > 2) If the xsi:type is not specified, the SOAP processor
        > utilizes the
        > > WSDL processor to ensure the part values can be converted into the
        > > appropriate type.
        > > 3) Finally, we have WSDL interrogator that will generate VBScript
        > > from a WSDL document for method calls. The Interrogator
        > along with
        > > our SOAP client will automatically use xsi:type attributes on the
        > > parts for interoperability purposes, although our SOAP
        > processor does
        > > not require it.
        > >
        > > We have found that the WSDL Interrogator along with our
        > SOAP client
        > > is highly interoperable with does take into account the
        > possibility
        > > of differing XMLSchema, i.e., 1999 and 2000/10, which some
        > > implementations require.
        > >
        > > All this will be available, along with our WSDL Wizard for COM
        > > objects after the documentation is completed (which is a
        > mountain of
        > > documentation)
        > >
        > >
        > >
        > >
        > >
        > >
        > >
        > > To unsubscribe from this group, send an email to:
        > > soapbuilders-unsubscribe@yahoogroups.com
        > >
        > >
        > >
        >
        >
        > ------------------------ Yahoo! Groups Sponsor
        > ---------------------~-~>
        > eGroups is now Yahoo! Groups
        > Click here for more details
        > http://click.egroups.com/1/11231/0/_/_/_/981126210/
        > --------------------------------------------------------------
        > -------_->
        >
        > To unsubscribe from this group, send an email to:
        > soapbuilders-unsubscribe@yahoogroups.com
        >
        >
      • Paul Kulchenko
        Hi, Tony! ... Yes, that s true. You may specify (with maptype() method) mappings between types and namespaces. Introduced basically for Apache interoperability
        Message 3 of 18 , Feb 2, 2001
        • 0 Attachment
          Hi, Tony!

          > One thing to note: in versions prior to 0.46, the namespace of the
          > generated
          > structure is the same as the method namespace URI (in this case,
          > urn:xmethodsInterop) . I believe in 0.46, this is now configurable.
          Yes, that's true. You may specify (with maptype() method) mappings
          between types and namespaces. Introduced basically for Apache
          interoperability :)).

          Best wishes, Paul.

          --- Tony Hong <thong@...> wrote:
          > Simon, here's a snippet of SOAP::Lite that calls the echoStruct
          > service.
          > Paul, please don't beat me up if the Perl isn't pretty! :-)
          >
          >
          ----------------------------------------------------------------------------
          > -----------------
          >
          > #!/usr/bin/perl
          >
          > use SOAP::Lite;
          >
          > SOAP::Data->import('name');
          >
          > my %hash = (
          > varInt => 5,
          > varString => "test string",
          > varFloat => 6.2
          > );
          >
          > $h=SOAP::Lite
          > -> uri ('urn:xmethodsInterop')
          > ->
          > proxy('http://services.xmethods.com:80/soap/servlet/rpcrouter')
          > -> echoStruct(name("testStruct" => \%hash))
          > ;
          >
          > if($h->faultcode)
          > {print "FAULT CODE --------------------\n";
          > print $h->faultcode. "\n\n";
          > print "FAULT DETAIL--------------------\n";
          > print $h->faultstring. "\n";
          > }
          > else
          > {
          > print "RESULT --------------------\n";
          > foreach $k (keys %{$h->result})
          > {
          > print $k."\t".$h->result->{$k}."\n";
          > }
          > }
          >
          >
          ------------------------------------------------------------------------
          >
          > It generates the following envelope:
          >
          > POST /soap/servlet/rpcrouter HTTP/1.0
          > Host: tony:8080
          > User-Agent: SOAP::Lite/Perl/0.45
          > Content-Length: 662
          > Content-Type: text/xml
          > SOAPAction: "urn:xmethodsInterop#echoStruct"
          >
          > <?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>
          > <namesp1:echoStruct xmlns:namesp1="urn:xmethodsInterop">
          > <testStruct xsi:type="namesp1:SOAPStruct">
          > <varFloat xsi:type="xsd:float">6.2</varFloat>
          > <varString xsi:type="xsd:string">test string</varString>
          > <varInt xsi:type="xsd:int">5</varInt></testStruct>
          > </namesp1:echoStruct>
          > </SOAP-ENV:Body>
          > </SOAP-ENV:Envelope>
          >
          > ---------------------------------------------------
          >
          > And when you run it, here's the output bounced off the Apache
          > version
          > echoStruct method:
          >
          > RESULT --------------------
          > varFloat 6.2
          > varString test string
          > varInt 5
          >
          >
          >
          > One thing to note: in versions prior to 0.46, the namespace of the
          > generated
          > structure is the same as the method namespace URI (in this case,
          > urn:xmethodsInterop) . I believe in 0.46, this is now configurable.
          > I'll let
          > Paul comment on that .
          >
          > Cheers,
          > Tony
          > -----Original Message-----
          > From: Simon Fell [mailto:soap@...]
          > Sent: Thursday, February 01, 2001 12:23 AM
          > To: soapbuilders@yahoogroups.com
          > Subject: Re: [soapbuilders] Interoperability lab
          >
          >
          > I've got an implementation of this running, i'll try and get it
          > on a
          > public server tomorrow. I'm testing with SOAP::Lite as a client,
          > can
          > anyone show me how to call the echoStruct method, i'm having
          > trouble
          > getting the values nested in the inputStruct element (my perl
          > skills
          > can only get better from this point <g>)
          >
          > this is what i currently have
          >
          > my @struct = (
          > SOAP::Data->name(varInt => 42),
          > SOAP::Data->name(varFloat => 42.42),
          > SOAP::Data->name(varString => "SOAP::Lite to 4s4c")
          > ) ;
          >
          > my @parameters = (
          > SOAP::Data->name(inputStruct => @struct )
          > ) ;
          >
          > print @{$soap->echoStruct(@parameters)->method}{'outputStruct'} ,
          > "\n"
          > ;
          >
          >
          > For reference here are traces for the call to echoStringArray,
          > one
          > thing i did notice is that SOAP::Lite types the array as
          > namesp2:Array
          > whilst i'm typing it as SOAP-ENC:Array.
          >
          > Cheers
          > Simon
          >
          > ------------------ SOAP::Lite request ---------------------------
          > POST /ilab/soap.asp HTTP/1.0
          > Host: localhost:8080
          > User-Agent: SOAP::Lite/Perl/0.45
          > Content-Type: text/xml
          > SOAPAction: "urn:xmethodsInterop#echoStringArray"
          >
          > <?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>
          > <namesp2:echoStringArray xmlns:namesp2="urn:xmethodsInterop">
          > <inputStringArray SOAP-ENC:arrayType="xsd:string[3]"
          > xsi:type="namesp2:Array">
          > <c-gensym9 xsi:type="xsd:string">SOAP::Lite</c-gensym9>
          > <c-gensym9 xsi:type="xsd:string">to</c-gensym9>
          > <c-gensym9 xsi:type="xsd:string">4s4c</c-gensym9>
          > </inputStringArray></namesp2:echoStringArray>
          > </SOAP-ENV:Body></SOAP-ENV:Envelope>
          >
          >
          > ---------------------- 4s4c Response
          > -----------------------------
          > HTTP/1.1 200 OK
          > Server: Microsoft-IIS/5.0
          > Date: Thu, 01 Feb 2001 08:09:24 GMT
          > Connection: Keep-Alive
          > Content-Type: text/xml
          > Expires: Thu, 01 Feb 2001 08:09:24 GMT
          > Set-Cookie: ASPSESSIONIDGGQGQPMO=OOMLALIAMAFPCEFMOJNBNGGN; path=/
          > Cache-control: private
          >
          > <?xml version="1.0"?><SOAP-ENV:Envelope
          > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
          > xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
          > xmlns:xsd="http://www.w3.org/1999/XMLSchema"
          > xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
          >
          > SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
          > <SOAP-ENV:Body><m:echoStringArrayResponse
          > xmlns:m="urn:xmethodsInterop">
          > <outputStringArray xsi:type="SOAP-ENC:Array"
          > SOAP-ENC:arrayType="xsd:string[3]">
          > <item xsi:type="xsd:string">SOAP::Lite</item>
          > <item xsi:type="xsd:string">to</item>
          > <item xsi:type="xsd:string">4s4c</item>
          > </outputStringArray></m:echoStringArrayResponse>
          > </SOAP-ENV:Body></SOAP-ENV:Envelope>
          >
          >
          >
          > On Wed, 31 Jan 2001 17:17:32 -0800, in soap you wrote:
          >
          > >Sanjiva,
          > >
          > >One other note - to illustrate the existing struct array test,
          > here is
          > the
          > >request/response wiredump. In
          > >this example, it's a Apache 2.0 client hitting a SOAPLite server
          > (it
          > works
          > >successfully) . Let me know if
          > >this is what you're thinking about, or if you need something
          > different.
          >
          === message truncated ===


          __________________________________________________
          Get personalized email addresses from Yahoo! Mail - only $35
          a year! http://personal.mail.yahoo.com/
        Your message has been successfully submitted and would be delivered to recipients shortly.