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

WSDL and method names

Expand Messages
  • Simon Fell
    Hi all, Most of us have been talking about WSDL issues on and off for a while, so i doubt this comes as a surprise to anyone, but i was looking at writing a
    Message 1 of 7 , Jan 30, 2001
    • 0 Attachment
      Hi all,

      Most of us have been talking about WSDL issues on and off for a while,
      so i doubt this comes as a surprise to anyone, but i was looking at
      writing a WSDL description for manila following Dave Winer's call for
      help on scripting.com. I had no trouble putting a basic WSDL file
      together but i ran the results through both SOAP::Lite and IdooXoap
      both choked with the same problem (and i'm guessing the other WSDL
      toolkits would too) as the method names for manila have /'s in them,
      e.g. css/get, css/checkIn

      On a slightly different note, while i was working on the WSDL
      generator for 4s4c, i tried various WSDL toolkits, and in particular i
      tried doing some array / complex type inter-op, and i couldn't get of
      them to work cross-tool for arrays or complex types.

      I'd like to propose that we workup some well documented examples of
      what WSDL should look like, and try and resolve some of the
      outstanding issues that Tony Hong has already raised (which part of
      WSDL controls the method names / responses, one way vs empty response
      etc )

      Cheers
      Simon
      www.pocketsoap.com
    • Paul Kulchenko
      Hi, Simon! ... True, but as I understand it s not a toolkit problem, because I could fix the name (for example change non-allowed symbols to _ ), but it ll
      Message 2 of 7 , Jan 30, 2001
      • 0 Attachment
        Hi, Simon!

        --- Simon Fell <soap@...> wrote:
        > Most of us have been talking about WSDL issues on and off for a
        > while,
        > so i doubt this comes as a surprise to anyone, but i was looking at
        > writing a WSDL description for manila following Dave Winer's call
        > for
        > help on scripting.com. I had no trouble putting a basic WSDL file
        > together but i ran the results through both SOAP::Lite and IdooXoap
        > both choked with the same problem (and i'm guessing the other WSDL
        > toolkits would too) as the method names for manila have /'s in
        > them, e.g. css/get, css/checkIn
        True, but as I understand it's not a toolkit problem, because I could
        fix the name (for example change non-allowed symbols to '_'), but
        it'll have no use, since server won't understand modified name
        anyway. I don't know how they can choose method elements with '/' if
        it couldn't be properly encoded according to SOAP spec. Or I'm
        missing something?

        > On a slightly different note, while i was working on the WSDL
        > generator for 4s4c, i tried various WSDL toolkits, and in
        > particular i
        > tried doing some array / complex type inter-op, and i couldn't get
        > of them to work cross-tool for arrays or complex types.
        Right, there (at least in SOAP::Lite) is no support for arrays and
        complex types. I don't want to implements it before I'll have clear
        understanding how to map it to user input.

        > I'd like to propose that we workup some well documented examples of
        > what WSDL should look like, and try and resolve some of the
        > outstanding issues that Tony Hong has already raised (which part of
        > WSDL controls the method names / responses, one way vs empty
        > response etc )
        It would be great! Who will take the lead? Author? :))

        Best wishes, Paul.

        __________________________________________________
        Get personalized email addresses from Yahoo! Mail - only $35
        a year! http://personal.mail.yahoo.com/
      • Simon Fell
        ... couple of separate issues here 1. There is no reason why a soap request of ... needs to be mapped directly to a language method of
        Message 3 of 7 , Jan 30, 2001
        • 0 Attachment
          On Tue, 30 Jan 2001 21:35:04 -0800 (PST), in soap you wrote:

          >Hi, Simon!
          >
          >--- Simon Fell <soap@...> wrote:
          >> Most of us have been talking about WSDL issues on and off for a
          >> while,
          >> so i doubt this comes as a surprise to anyone, but i was looking at
          >> writing a WSDL description for manila following Dave Winer's call
          >> for
          >> help on scripting.com. I had no trouble putting a basic WSDL file
          >> together but i ran the results through both SOAP::Lite and IdooXoap
          >> both choked with the same problem (and i'm guessing the other WSDL
          >> toolkits would too) as the method names for manila have /'s in
          >> them, e.g. css/get, css/checkIn
          >True, but as I understand it's not a toolkit problem, because I could
          >fix the name (for example change non-allowed symbols to '_'), but
          >it'll have no use, since server won't understand modified name
          >anyway. I don't know how they can choose method elements with '/' if
          >it couldn't be properly encoded according to SOAP spec. Or I'm
          >missing something?

          couple of separate issues here
          1. There is no reason why a soap request of <css/get>...</css/get>
          needs to be mapped directly to a language method of css/get, different
          languages have different rules on legal names, and they are going to
          have to escape them in a manner that works for that language.
          2. I had no trouble generating and parsing a SOAP message using that
          format, but i just had a quick look through the XML spec and i'm not
          sure if it is a valid element name or not.

          >> On a slightly different note, while i was working on the WSDL
          >> generator for 4s4c, i tried various WSDL toolkits, and in
          >> particular i
          >> tried doing some array / complex type inter-op, and i couldn't get
          >> of them to work cross-tool for arrays or complex types.
          >Right, there (at least in SOAP::Lite) is no support for arrays and
          >complex types. I don't want to implements it before I'll have clear
          >understanding how to map it to user input.

          me and you both, i don't really want to start work on a WSDL client
          until its better defined.

          >> I'd like to propose that we workup some well documented examples of
          >> what WSDL should look like, and try and resolve some of the
          >> outstanding issues that Tony Hong has already raised (which part of
          >> WSDL controls the method names / responses, one way vs empty
          >> response etc )
          >It would be great! Who will take the lead? Author? :))

          I'm more that happy to try and drive this forward, however i'd be
          interested in hearing Sanjiva's opinion of issues first (as one of the
          WSDL authors).

          Cheers
          Simon
        • Paul Kulchenko
          Hi, Simon! ... True, but if other implementation expect to get css/get there is no way for client to alter this name on wire. ... [40] STag ::=
          Message 4 of 7 , Jan 31, 2001
          • 0 Attachment
            Hi, Simon!

            --- Simon Fell <soap@...> wrote:
            > couple of separate issues here
            > 1. There is no reason why a soap request of <css/get>...</css/get>
            > needs to be mapped directly to a language method of css/get,
            > different
            > languages have different rules on legal names, and they are going
            > to have to escape them in a manner that works for that language.
            True, but if other implementation expect to get css/get there is no
            way for client to alter this name on wire.

            > 2. I had no trouble generating and parsing a SOAP message using
            > that
            > format, but i just had a quick look through the XML spec and i'm
            > not sure if it is a valid element name or not.
            [40] STag ::= '<' Name (S Attribute)* S? '>'
            [5] Name ::= (Letter | '_' | ':') (NameChar)*
            [84] Letter ::= BaseChar | Ideographic
            [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' |
            CombiningChar | Extender
            [85] BaseChar ::= [#x0041-#x005A] | [#x0061-#x007A] | .....

            So, as I understand there is no place for '/'.

            Best wishes, Paul.


            __________________________________________________
            Get personalized email addresses from Yahoo! Mail - only $35
            a year! http://personal.mail.yahoo.com/
          • Jacek Kopecky
            ...
            Message 5 of 7 , Jan 31, 2001
            • 0 Attachment
              > > On a slightly different note, while i was working on the WSDL
              > > generator for 4s4c, i tried various WSDL toolkits, and in
              > > particular i
              > > tried doing some array / complex type inter-op, and i couldn't get
              > > of them to work cross-tool for arrays or complex types.
              > Right, there (at least in SOAP::Lite) is no support for arrays and
              > complex types. I don't want to implements it before I'll have clear
              > understanding how to map it to user input.

              When we were implementing our WSDL parser for our stub-generating
              tools, we decided to go with some subset of XML Scheme that seemed to
              describe the complex types the best.

              > > I'd like to propose that we workup some well documented examples of
              > > what WSDL should look like, and try and resolve some of the
              > > outstanding issues that Tony Hong has already raised (which part of
              > > WSDL controls the method names / responses, one way vs empty
              > > response etc )
              > It would be great! Who will take the lead? Author? :))

              Attached is our demo WSDL description where we use both structures
              and arrays. Comments welcome. 8-)

              This WSDL description is parsable with version 1.0 of IdooXoap and
              describes a (very demo-ish) service at our server soap.idoox.net. I
              can post example requests sent by stubs generated from this WSDL so
              that you know how we interpret the WSDL description.

              I already know about one thing that we fixed after 1.0 that is
              probably a problem with our understanding of WSDL, it's the body
              element's namespace that isn't being put there in 1.0.

              I think this might be a good starting point for creating that
              well-documented example WSDL.

              Enjoy! 8-)

              Jacek Kopecky
              Idoox
            • Simon Fell
              ... Thanks Jacek, i have a few comments. 1. in binding operation input soap:body & output soap:body there s no use attribute, the WSDL spec says that this is
              Message 6 of 7 , Jan 31, 2001
              • 0 Attachment
                > Attached is our demo WSDL description where we use both structures
                >and arrays. Comments welcome. 8-)

                Thanks Jacek, i have a few comments.

                1. in binding\operation\input\soap:body & output\soap:body
                there's no "use" attribute, the WSDL spec says that this is required,
                and if set to "encoded" as i think it should for your example, it also
                needs an encodingStyle attribute e.g.

                <operation name='revert'>
                <soap:operation soapAction=""/>
                <input>
                <soap:body use="encoded" namespace="http://my.org/structures.xsd"
                encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                </input>
                <output>
                <soap:body use="encoded" namespace="http://my.org/structures.xsd"
                encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                </output>
                </operation>

                2. under types you have a couple of type="soap:reference", i couldn't
                find this in the spec at all.

                3. you have the following definition
                <complexType name="SimpleArray">
                <sequence>
                <element name="a" type="soap:reference" soap:reftype="my:SimpleStruct"
                nullable="true"/>
                <element name="b" type="soap:reference" soap:reftype="my:SimpleStruct"
                nullable="true"/>
                <element name="c" type="soap:reference" soap:reftype="my:SimpleStruct"
                nullable="true"/>
                <element name="d" type="soap:reference" soap:reftype="my:SimpleStruct"
                nullable="true"/>
                </sequence>
                </complexType>

                You've called this SimpleArray, but it looks more than a struct than
                an array.

                5. for your ArrayofInt you have
                <complexType name="ArrayOfInt" base="soapenc:Array"
                xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
                <all>
                <element name="x" type="xsd:int"/>
                </all>
                </complexType>

                based on a disucsion[1] on soap@... with Martin Gudgen
                i believe that arrays should be

                <complexType name="ArrayOfint" base="soapenc:Array"
                xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
                <sequence>
                <element name="item" type="xsd:int" minOccurs='0'
                maxOccurs='unbounded' />
                </sequence>
                </complexType>

                Note that this is slightly different from Martins post and takes into
                account the correct scoping of Array as per Jacek's example. This of
                course is different to Erik Christensen's earlier array example[2]

                6. The final issue is that over the version of the XML Schema in use,
                the WSDL spec doesn't mandate a particular version or even mandate the
                use of XML Schama's. This makes it nice and extensible, but a complete
                nightmare from an inter-op point of view. Unfortunately the spec
                doesn't indicate anyway for the client to indicate any preference in
                which schema language it would like to receive type information in,
                the likely result being that some OOB communication is used to pick a
                schema language. RDDL is picking up momentum as a mechanism for
                finding meta data available in many formats, it may be an interesting
                exercise to see if a WSDL client could use RDDL to negotiate which
                schema language it wanted type information in.


                I think at this point i could tweak the 4s4c WSDL generator to output
                the newer schema version, and it would likely inter-op with IdooXoap
                at this point.

                Cheers
                Simon


                [1]http://discuss.develop.com/archives/wa.exe?A2=ind0101&L=SOAP&P=R1343
                [2]http://discuss.develop.com/archives/wa.exe?A2=ind0011&L=SOAP&P=R11363
              • Tony Hong
                Hi Jacek, Thanks for the example! A couple of questions: 1. In your soap:body element, you don t have use= encoded or encoding style attribute. Are these
                Message 7 of 7 , Feb 1, 2001
                • 0 Attachment
                  Hi Jacek, Thanks for the example!
                   
                  A couple of questions:
                   
                  1.  In your soap:body element, you don't have use="encoded" or encoding style attribute. Are these implied or defaulted?
                   
                  2.  The way you encoded your array "ArrayofInt" touches on a thread that Simon posted in the forum here: http://www.xmethods.net/ubb/Forum1/HTML/000004.html
                   
                  The basic question is: can you use <all> for an array, rather than <sequence> ? the elements in <all> have a maxoccurs=1, thus it may be inappropriate for an array. or is there a misinterpreation somewhere?.
                   
                  It would be great to see the envelopes - I'm curious as to how your Simple types are rendered on the wire .
                   
                  Thanks!
                   
                  Tony 
                   
                   
                  -----Original Message-----
                  From: Jacek Kopecky [mailto:jacek@...]
                  Sent: Wednesday, January 31, 2001 7:19 AM
                  To: soapbuilders@yahoogroups.com
                  Subject: Re: [soapbuilders] WSDL and method names

                  > > On a slightly different note, while i was working on the WSDL
                  > > generator for 4s4c, i tried various WSDL toolkits, and in
                  > > particular i
                  > > tried doing some array / complex type inter-op, and i couldn't get
                  > > of them to work cross-tool for arrays or complex types.
                  > Right, there (at least in SOAP::Lite) is no support for arrays and
                  > complex types. I don't want to implements it before I'll have clear
                  > understanding how to map it to user input.

                  When we were implementing our WSDL parser for our stub-generating
                  tools, we decided to go with some subset of XML Scheme that seemed to
                  describe the complex types the best.

                  > > I'd like to propose that we workup some well documented examples of
                  > > what WSDL should look like, and try and resolve some of the
                  > > outstanding issues that Tony Hong has already raised (which part of
                  > > WSDL controls the method names / responses, one way vs empty
                  > > response etc )
                  > It would be great! Who will take the lead? Author? :))

                  Attached is our demo WSDL description where we use both structures
                  and arrays. Comments welcome. 8-)

                  This WSDL description is parsable with version 1.0 of IdooXoap and
                  describes a (very demo-ish) service at our server soap.idoox.net. I
                  can post example requests sent by stubs generated from this WSDL so
                  that you know how we interpret the WSDL description.

                  I already know about one thing that we fixed after 1.0 that is
                  probably a problem with our understanding of WSDL, it's the body
                  element's namespace that isn't being put there in 1.0.

                  I think this might be a good starting point for creating that
                  well-documented example WSDL.

                  Enjoy! 8-)

                                              Jacek Kopecky
                                                 Idoox


                  To unsubscribe from this group, send an email to:
                  soapbuilders-unsubscribe@yahoogroups.com


                Your message has been successfully submitted and would be delivered to recipients shortly.