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

Schema question

Expand Messages
  • Robert van Engelen
    Hi, I have a question with regard to the validity of the following schema:
    Message 1 of 23 , Apr 3, 2002
    • 0 Attachment
      Hi,

      I have a question with regard to the validity of the following schema:

      <complexType name="address">
      <sequence>
      <element name="city" type="xsd:string"/>
      <element name="zip" type="xsd:string"/>
      <element name="zip" type="xsd:integer"/>
      <element name="country" type="xsd:string"/>
      </sequence>
      </complexType>

      In other words, is it legal to have two elements with the same name but a
      different type?

      Sorry if this is a dumb/trivial question but I couldn't find a clear
      answer in the schema specs after reading it over and over and I need to
      make sure that my SOAP/WSDL tool implementation can handle the right schemas.

      Thanks!

      - Robert
    • Wes Moulder
      I believe local qnames must be unique. I m not sure where it s specified, and I ll look for it further, but I m pretty sure that s the case. --Wes ... From:
      Message 2 of 23 , Apr 3, 2002
      • 0 Attachment

        I believe local qnames must be unique.  I’m not sure where it’s specified, and I’ll look for it further, but I’m pretty sure that’s the case.

         

        --Wes

         

        -----Original Message-----
        From: Robert van Engelen [mailto:engelen@...]
        Sent: Wednesday, April 03, 2002 10:37 AM
        To: soapbuilders@yahoogroups.com
        Subject: [soapbuilders] Schema question

         


        Hi,

        I have a question with regard to the validity of the following schema:

        <complexType name="address">
          <sequence>
            <element name="city" type="xsd:string"/>
            <element name="zip" type="xsd:string"/>
            <element name="zip" type="xsd:integer"/>
            <element name="country" type="xsd:string"/>
          </sequence>
        </complexType>

        In other words, is it legal to have two elements with the same name but a
        different type?

        Sorry if this is a dumb/trivial question but I couldn't find a clear
        answer in the schema specs after reading it over and over and I need to
        make sure that my SOAP/WSDL tool implementation can handle the right schemas.

        Thanks!

        - Robert


        -----------------------------------------------------------------
        This group is a forum for builders of SOAP implementations to discuss implementation and interoperability issues.  Please stay on-topic.

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



        Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
      • Wes Moulder
        Robert, Looking at section 2.5 of xmlschema-1, I gather this: Within a given symbol space, names are unique, but the same name may appear in more than one
        Message 3 of 23 , Apr 3, 2002
        • 0 Attachment

          Robert,

          Looking at section 2.5 of xmlschema-1, I gather this:

           

          Within a given symbol space, names are unique, but the same name may appear in more than one symbol space without conflict.

           

          And this:

           

          Every complex type definition defines its own local attribute and element declaration symbol spaces, where these symbol spaces are distinct from each other and from any of the other symbol spaces. So, for example, two complex type definitions having the same target namespace can contain a local attribute declaration for the unqualified name "priority", or contain a local element declaration for the name "address", without conflict or necessary relation between the two.

           

          (Used Google to highlight local and unique, so that I could find it.  I love google’s cache.)

           

          Does that answer your question?

          --Wes

          -----Original Message-----
          From: Wes Moulder [mailto:wes@...]
          Sent:
          Wednesday, April 03, 2002 10:57 AM
          To: soapbuilders@yahoogroups.com
          Subject: RE: [soapbuilders] Schema question

           

          I believe local qnames must be unique.  I’m not sure where it’s specified, and I’ll look for it further, but I’m pretty sure that’s the case.

           

          --Wes

           

          -----Original Message-----
          From: Robert van Engelen [mailto:engelen@...]
          Sent:
          Wednesday, April 03, 2002 10:37 AM
          To: soapbuilders@yahoogroups.com
          Subject: [soapbuilders] Schema question

           


          Hi,

          I have a question with regard to the validity of the following schema:

          <complexType name="address">
            <sequence>
              <element name="city" type="xsd:string"/>
              <element name="zip" type="xsd:string"/>
              <element name="zip" type="xsd:integer"/>
              <element name="country" type="xsd:string"/>
            </sequence>
          </complexType>

          In other words, is it legal to have two elements with the same name but a
          different type?

          Sorry if this is a dumb/trivial question but I couldn't find a clear
          answer in the schema specs after reading it over and over and I need to
          make sure that my SOAP/WSDL tool implementation can handle the right schemas.

          Thanks!

          - Robert


          -----------------------------------------------------------------
          This group is a forum for builders of SOAP implementations to discuss implementation and interoperability issues.  Please stay on-topic.

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



          Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.



          -----------------------------------------------------------------
          This group is a forum for builders of SOAP implementations to discuss implementation and interoperability issues.  Please stay on-topic.

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



          Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
        • Martin Gudgin
          The type definition is not legal. A element with a given QName ( zip ) in a given context ( address type ) cannot be bound to more than one type. The relevant
          Message 4 of 23 , Apr 3, 2002
          • 0 Attachment
            The type definition is not legal. A element with a given QName ( zip ) in a
            given context ( address type ) cannot be bound to more than one type.

            The relevant part of the XML Schema Structures spec[1] is in Section
            3.8.1[2];

            'When two or more particles contained directly or indirectly in the
            {particles} of a model group have identically named element declarations as
            their {term}, the type definitions of those declarations must be the same.'

            Regards

            Martin

            [1] http://www.w3.org/TR/xmlschema-1/
            [2] http://www.w3.org/TR/xmlschema-1/#Model_Group_details


            ----- Original Message -----
            From: "Robert van Engelen" <engelen@...>
            To: <soapbuilders@yahoogroups.com>
            Sent: Wednesday, April 03, 2002 5:36 PM
            Subject: [soapbuilders] Schema question


            >
            > Hi,
            >
            > I have a question with regard to the validity of the following schema:
            >
            > <complexType name="address">
            > <sequence>
            > <element name="city" type="xsd:string"/>
            > <element name="zip" type="xsd:string"/>
            > <element name="zip" type="xsd:integer"/>
            > <element name="country" type="xsd:string"/>
            > </sequence>
            > </complexType>
            >
            > In other words, is it legal to have two elements with the same name but a
            > different type?
            >
            > Sorry if this is a dumb/trivial question but I couldn't find a clear
            > answer in the schema specs after reading it over and over and I need to
            > make sure that my SOAP/WSDL tool implementation can handle the right
            schemas.
            >
            > Thanks!
            >
            > - Robert
            >
            >
            > -----------------------------------------------------------------
            > This group is a forum for builders of SOAP implementations to discuss
            implementation and interoperability issues. Please stay on-topic.
            >
            > To unsubscribe from this group, send an email to:
            > soapbuilders-unsubscribe@yahoogroups.com
            >
            >
            >
            > Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
            >
            >
          • Robert van Engelen
            Thanks! It is easy to overlook this kind of information in these long specs. One more question though: is the following legal?
            Message 5 of 23 , Apr 3, 2002
            • 0 Attachment
              Thanks!

              It is easy to overlook this kind of information in these long specs.

              One more question though: is the following legal?

              <complexType name="baseAddress">
              <sequence>
              <element name="city" type="xsd:string"/>
              <element name="zip" type="xsd:string"/>
              <element name="country" type="xsd:string"/>
              </sequence>
              </complexType>

              <complexType name="address">
              <complexContent>
              <extension base="tns:baseAddress">
              <sequence>
              <element name="zip" type="xsd:integer"/>
              </sequence>
              </extension>
              </complexContent>
              </complexType>

              If this is legal, is the resulting XML allowed to carry two zip elements or
              only one?

              I am asking this because:

              1. gSOAP supports single inheritance. When communicating derived class
              instances over SOAP also the base class members need to be present in the
              SOAP message (just like any OO implementation keeps base class information
              in the derived class instances).

              2. The problem is that if schemas/WSDL disallows the above then SOAP is not
              suitable for OO! (or maybe it need to be accomplished with some tricks).

              - Robert
            • Wes Moulder
              Robert, I believe it would have to be a restriction, not an extension, since you re changing the behaviour of zip, and even then, I don t think you re allowed
              Message 6 of 23 , Apr 3, 2002
              • 0 Attachment

                Robert,

                I believe it would have to be a restriction, not an extension, since you’re changing the behaviour of zip, and even then, I don’t think you’re allowed to completely alter the type of data, just restrict its possibilities.

                 

                This is all from a vague understanding of xmlschema-1/ section 3.9.6, though.

                The multiple zip problem is still in effect, though; thus you wouldn’t have two zip entries.

                 

                For better understanding of where I’m coming from, take it as if zip were defined as ur-type, and string.

                Now, send in two normalized strings.  Which zip maps to which field? <sequence> would say it’s order dependant, right? 

                Where do parent elements go in terms of extension?

                 

                You might also look in xmlschema-1 section 2.2.1, where it talks about DataTypes.

                 

                As far as OO goes, I don’t think you can take an object that contains a String, and replace it with an int, and have any assumptions still hold up.

                Take this for an example:

                 

                Address{

                  String zip;

                  String city;

                  String country;

                }

                 

                and

                USAddress :: Address {

                  Int zip;

                }

                 

                if I set the int on USAddress, and pass it into a function that looks for an Address, the String would be empty/null, which isn’t what you’re after.

                 

                --Wes

                 

                 

                -----Original Message-----
                From: Robert van Engelen [mailto:engelen@...]
                Sent:
                Wednesday, April 03, 2002 12:27 PM
                To: soapbuilders@yahoogroups.com
                Subject: Re: [soapbuilders] Schema question

                 


                Thanks!

                It is easy to overlook this kind of information in these long specs.

                One more question though: is the following legal?

                <complexType name="baseAddress">
                  <sequence>
                    <element name="city" type="xsd:string"/>
                    <element name="zip" type="xsd:string"/>
                    <element name="country" type="xsd:string"/>
                  </sequence>
                </complexType>

                <complexType name="address">
                  <complexContent>
                    <extension base="tns:baseAddress">
                      <sequence>
                        <element name="zip" type="xsd:integer"/>
                      </sequence>
                    </extension>
                  </complexContent>
                </complexType>

                If this is legal, is the resulting XML allowed to carry two zip elements or
                only one?

                I am asking this because:

                1. gSOAP supports single inheritance. When communicating derived class
                instances over SOAP also the base class members need to be present in the
                SOAP message (just like any OO implementation keeps base class information
                in the derived class instances).

                2. The problem is that if schemas/WSDL disallows the above then SOAP is not
                suitable for OO! (or maybe it need to be accomplished with some tricks).

                - Robert


                -----------------------------------------------------------------
                This group is a forum for builders of SOAP implementations to discuss implementation and interoperability issues.  Please stay on-topic.

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



                Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
              • Robert van Engelen
                Hi Wes, I see. But don t you find it strange that the O in SOAP refers to Objects while XML schemas don t seem to be able to preserve basic OO semantics? A
                Message 7 of 23 , Apr 3, 2002
                • 0 Attachment
                  Hi Wes,

                  I see. But don't you find it strange that the O in SOAP refers to Objects
                  while XML schemas don't seem to be able to preserve basic OO semantics?

                  A restriction won't work as you pointed out because the zip field of the base
                  is overwritten with a new definition for zip. Extension seems to be more
                  natural. After all, we add new fields to a base class to get a derived class.

                  Again, if this cannot be resolved in schemas/WSDL then SOAP will not be
                  suitable for object exchange. The .NET guys must have a tremendous problem
                  at their hands when they say that C# is competative to Java while Java
                  preserves simple OO semantics while C# cannot? I would like to hear some
                  more, especially from the .NET people :-)

                  Wes Moulder wrote:
                  >
                  > ------=_NextPart_000_007B_01C1DB0D.2C1B77E0
                  > Content-Type: text/plain;
                  > charset="US-ASCII"
                  > Content-Transfer-Encoding: 7bit
                  >
                  > Robert,
                  > I believe it would have to be a restriction, not an extension, since
                  > you're changing the behaviour of zip, and even then, I don't think
                  > you're allowed to completely alter the type of data, just restrict its
                  > possibilities.
                  >
                  > This is all from a vague understanding of xmlschema-1/ section 3.9.6,
                  > though.
                  > The multiple zip problem is still in effect, though; thus you wouldn't
                  > have two zip entries.
                  >
                  > For better understanding of where I'm coming from, take it as if zip
                  > were defined as ur-type, and string.
                  > Now, send in two normalized strings. Which zip maps to which field?
                  > <sequence> would say it's order dependant, right?
                  > Where do parent elements go in terms of extension?
                  >
                  > You might also look in xmlschema-1 section 2.2.1, where it talks about
                  > DataTypes.
                  >
                  > As far as OO goes, I don't think you can take an object that contains a
                  > String, and replace it with an int, and have any assumptions still hold
                  > up.
                  > Take this for an example:
                  >
                  > Address{
                  > String zip;
                  > String city;
                  > String country;
                  > }
                  >
                  > and
                  > USAddress :: Address {
                  > Int zip;
                  > }
                  >
                  > if I set the int on USAddress, and pass it into a function that looks
                  > for an Address, the String would be empty/null, which isn't what you're
                  > after.
                  >
                  > --Wes
                  >
                  >
                  > -----Original Message-----
                  > From: Robert van Engelen [mailto:engelen@...]
                  > Sent: Wednesday, April 03, 2002 12:27 PM
                  > To: soapbuilders@yahoogroups.com
                  > Subject: Re: [soapbuilders] Schema question
                  >
                  >
                  > Thanks!
                  >
                  > It is easy to overlook this kind of information in these long specs.
                  >
                  > One more question though: is the following legal?
                  >
                  > <complexType name="baseAddress">
                  > <sequence>
                  > <element name="city" type="xsd:string"/>
                  > <element name="zip" type="xsd:string"/>
                  > <element name="country" type="xsd:string"/>
                  > </sequence>
                  > </complexType>
                  >
                  > <complexType name="address">
                  > <complexContent>
                  > <extension base="tns:baseAddress">
                  > <sequence>
                  > <element name="zip" type="xsd:integer"/>
                  > </sequence>
                  > </extension>
                  > </complexContent>
                  > </complexType>
                  >
                  > If this is legal, is the resulting XML allowed to carry two zip elements
                  > or
                  > only one?
                  >
                  > I am asking this because:
                  >
                  > 1. gSOAP supports single inheritance. When communicating derived class
                  > instances over SOAP also the base class members need to be present in
                  > the
                  > SOAP message (just like any OO implementation keeps base class
                  > information
                  > in the derived class instances).
                  >
                  > 2. The problem is that if schemas/WSDL disallows the above then SOAP is
                  > not
                  > suitable for OO! (or maybe it need to be accomplished with some tricks).
                  >
                  > - Robert
                  >
                  >
                  >
                  >
                  > Yahoo! Groups Sponsor
                  >
                  >
                  > ADVERTISEMENT
                  >
                  > <http://rd.yahoo.com/M=215002.1954253.3462811.1261774/D=egroupweb/S=1705
                  > 701014:HM/A=1000239/R=0/*http:/ads.x10.com/?bHlhaG9vaG0xLmRhd=1017858457
                  > %3eM=215002.1954253.3462811.1261774/D=egroupweb/S=1705701014:HM/A=100023
                  > 9/R=1>
                  >
                  >
                  > <http://us.adserver.yahoo.com/l?M=215002.1954253.3462811.1261774/D=egrou
                  > pmail/S=1705701014:HM/A=1000239/rand=279483169>
                  >
                  > -----------------------------------------------------------------
                  > This group is a forum for builders of SOAP implementations to discuss
                  > implementation and interoperability issues. Please stay on-topic.
                  >
                  > To unsubscribe from this group, send an email to:
                  > soapbuilders-unsubscribe@yahoogroups.com
                  >
                  >
                  >
                  > Your use of Yahoo! Groups is subject to the Yahoo!
                  > <http://docs.yahoo.com/info/terms/> Terms of Service.
                  >
                  > ------=_NextPart_000_007B_01C1DB0D.2C1B77E0
                  > Content-Type: text/html; charset=US-ASCII
                  > Content-Transfer-Encoding: 7bit
                  >
                  > <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">
                  >
                  > <head>
                  > <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
                  >
                  >
                  > <meta name=ProgId content=Word.Document>
                  > <meta name=Generator content="Microsoft Word 10">
                  > <meta name=Originator content="Microsoft Word 10">
                  > <link rel=File-List href="cid:filelist.xml@01C1DB0D.2B333AC0">
                  > <link rel=Edit-Time-Data href="cid:editdata.mso@01C1DB0D.2B333AC0">
                  > <!--[if !mso]>
                  > <style>
                  > v\:* {behavior:url(#default#VML);}
                  > o\:* {behavior:url(#default#VML);}
                  > w\:* {behavior:url(#default#VML);}
                  > .shape {behavior:url(#default#VML);}
                  > </style>
                  > <![endif]--><o:SmartTagType
                  > namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="time"/>
                  > <o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
                  > name="date"/>
                  > <!--[if gte mso 9]><xml>
                  > <o:OfficeDocumentSettings>
                  > <o:DoNotRelyOnCSS/>
                  > </o:OfficeDocumentSettings>
                  > </xml><![endif]--><!--[if gte mso 9]><xml>
                  > <w:WordDocument>
                  > <w:DocumentKind>DocumentEmail</w:DocumentKind>
                  > <w:EnvelopeVis/>
                  > <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
                  > </w:WordDocument>
                  > </xml><![endif]--><!--[if !mso]>
                  > <style>
                  > st1\:*{behavior:url(#default#ieooui) }
                  > </style>
                  > <![endif]-->
                  > <style>
                  > <!--
                  > /* Font Definitions */
                  > @font-face
                  > {font-family:Tahoma;
                  > panose-1:2 11 6 4 3 5 4 4 2 4;
                  > mso-font-charset:0;
                  > mso-generic-font-family:swiss;
                  > mso-font-pitch:variable;
                  > mso-font-signature:553679495 -2147483648 8 0 66047 0;}
                  > /* Style Definitions */
                  > p.MsoNormal, li.MsoNormal, div.MsoNormal
                  > {mso-style-parent:"";
                  > margin:0in;
                  > margin-bottom:.0001pt;
                  > mso-pagination:widow-orphan;
                  > font-size:12.0pt;
                  > font-family:"Times New Roman";
                  > mso-fareast-font-family:"Times New Roman";}
                  > a:link, span.MsoHyperlink
                  > {color:blue;
                  > text-decoration:underline;
                  > text-underline:single;}
                  > a:visited, span.MsoHyperlinkFollowed
                  > {color:blue;
                  > text-decoration:underline;
                  > text-underline:single;}
                  > tt
                  > {font-family:"Courier New";
                  > mso-ascii-font-family:"Courier New";
                  > mso-fareast-font-family:"Times New Roman";
                  > mso-hansi-font-family:"Courier New";
                  > mso-bidi-font-family:"Courier New";}
                  > span.EmailStyle18
                  > {mso-style-type:personal-reply;
                  > mso-style-noshow:yes;
                  > mso-ansi-font-size:10.0pt;
                  > mso-bidi-font-size:10.0pt;
                  > font-family:Arial;
                  > mso-ascii-font-family:Arial;
                  > mso-hansi-font-family:Arial;
                  > mso-bidi-font-family:Arial;
                  > color:navy;}
                  > @page Section1
                  > {size:8.5in 11.0in;
                  > margin:1.0in 1.25in 1.0in 1.25in;
                  > mso-header-margin:.5in;
                  > mso-footer-margin:.5in;
                  > mso-paper-source:0;}
                  > div.Section1
                  > {page:Section1;}
                  > -->
                  > </style>
                  > <!--[if gte mso 10]>
                  > <style>
                  > /* Style Definitions */
                  > table.MsoNormalTable
                  > {mso-style-name:"Table Normal";
                  > mso-tstyle-rowband-size:0;
                  > mso-tstyle-colband-size:0;
                  > mso-style-noshow:yes;
                  > mso-style-parent:"";
                  > mso-padding-alt:0in 5.4pt 0in 5.4pt;
                  > mso-para-margin:0in;
                  > mso-para-margin-bottom:.0001pt;
                  > mso-pagination:widow-orphan;
                  > font-size:10.0pt;
                  > font-family:"Times New Roman";}
                  > </style>
                  > <![endif]-->
                  > </head>
                  >
                  > <body lang=EN-US link=blue vlink=blue style='tab-interval:.5in'>
                  >
                  >
                  >
                  > <div class=Section1>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>Robert,<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>I believe it would have to be a
                  > restriction, not an extension, since you’re changing the behaviour of zip,
                  > and even then, I don’t think you’re allowed to completely alter the
                  > type of data, just restrict its possibilities.<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>This is all from a vague understanding of
                  > xmlschema-1/ section 3.9.6, though.<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>The multiple zip problem is still in
                  > effect, though; thus you wouldn’t have two zip entries.<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>For better understanding of where I’m
                  > coming from, take it as if zip were defined as ur-type, and string.<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>Now, send in two normalized strings.<span
                  > style='mso-spacerun:yes'>  </span>Which zip maps to which field?
                  > <sequence> would say it’s order dependant, right?<span
                  > style='mso-spacerun:yes'>  </span><o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>Where do parent elements go in terms of
                  > extension?<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>You might also look in xmlschema-1 section
                  > 2.2.1, where it talks about DataTypes.<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>As far as OO goes, I don’t think you
                  > can take an object that contains a String, and replace it with an int, and have
                  > any assumptions still hold up.<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>Take this for an example:<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>Address{<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><span style='mso-spacerun:yes'> 
                  > </span>String zip;<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><span style='mso-spacerun:yes'> 
                  > </span>String city;<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><span style='mso-spacerun:yes'> 
                  > </span>String country;<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>}<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>and <o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>USAddress :: Address {<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><span style='mso-spacerun:yes'> 
                  > </span>Int zip;<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>}<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>if I set the int on USAddress, and pass it
                  > into a function that looks for an Address, the String would be empty/null,
                  > which isn’t what you’re after.<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'>--Wes<o:p></o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                  >
                  > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                  > 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                  >
                  > <p class=MsoNormal style='margin-left:.5in'><font size=2 face=Tahoma><span
                  > style='font-size:10.0pt;font-family:Tahoma'>-----Original Message-----<br>
                  > <b><span style='font-weight:bold'>From:</span></b> Robert van Engelen
                  > [mailto:engelen@...] <br>
                  > <b><span style='font-weight:bold'>Sent:</span></b> </span></font><st1:date
                  > Month="4" Day="3" Year="2002"><font size=2 face=Tahoma><span style='font-size:
                  > 10.0pt;font-family:Tahoma'>Wednesday, April 03, 2002</span></font></st1:date><font
                  > size=2 face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'> </span></font><st1:time
                  > Hour="12" Minute="27"><font size=2 face=Tahoma><span style='font-size:10.0pt;
                  > font-family:Tahoma'>12:27 PM</span></font></st1:time><font size=2 face=Tahoma><span
                  > style='font-size:10.0pt;font-family:Tahoma'><br>
                  > <b><span style='font-weight:bold'>To:</span></b> soapbuilders@yahoogroups.com<br>
                  > <b><span style='font-weight:bold'>Subject:</span></b> Re: [soapbuilders] Schema
                  > question</span></font></p>
                  >
                  > <p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
                  > style='font-size:12.0pt'><o:p> </o:p></span></font></p>
                  >
                  > <p class=MsoNormal style='margin-left:.5in'><font size=2 face="Courier New"><span
                  > style='font-size:10.0pt;font-family:"Courier New"'><br>
                  > <tt><font face="Courier New">Thanks!</font></tt><br>
                  > <br>
                  > <tt><font face="Courier New">It is easy to overlook this kind of information in
                  > these long specs.</font></tt><br>
                  > <br>
                  > <tt><font face="Courier New">One more question though: is the following legal?</font></tt><br>
                  > <br>
                  > <tt><font face="Courier New"><complexType name="baseAddress"></font></tt><br>
                  > <tt><font face="Courier New">  <sequence></font></tt><br>
                  > <tt><font face="Courier New">    <element
                  > name="city" type="xsd:string"/></font></tt><br>
                  > <tt><font face="Courier New">    <element
                  > name="zip" type="xsd:string"/></font></tt><br>
                  > <tt><font face="Courier New">    <element
                  > name="country" type="xsd:string"/></font></tt><br>
                  > <tt><font face="Courier New">  </sequence></font></tt><br>
                  > <tt><font face="Courier New"></complexType></font></tt><br>
                  > <br>
                  > <tt><font face="Courier New"><complexType name="address"></font></tt><br>
                  > <tt><font face="Courier New">  <complexContent></font></tt><br>
                  > <tt><font face="Courier New">    <extension
                  > base="tns:baseAddress"></font></tt><br>
                  > <tt><font face="Courier New">      <sequence></font></tt><br>
                  > <tt><font face="Courier New">       
                  > <element name="zip" type="xsd:integer"/></font></tt><br>
                  > <tt><font face="Courier New">      </sequence></font></tt><br>
                  > <tt><font face="Courier New">    </extension></font></tt><br>
                  > <tt><font face="Courier New">  </complexContent></font></tt><br>
                  > <tt><font face="Courier New"></complexType></font></tt><br>
                  > <br>
                  > <tt><font face="Courier New">If this is legal, is the resulting XML allowed to
                  > carry two zip elements or</font></tt><br>
                  > <tt><font face="Courier New">only one?</font></tt><br>
                  > <br>
                  > <tt><font face="Courier New">I am asking this because:</font></tt><br>
                  > <br>
                  > <tt><font face="Courier New">1. gSOAP supports single inheritance. When
                  > communicating derived class</font></tt><br>
                  > <tt><font face="Courier New">instances over SOAP also the base class members
                  > need to be present in the</font></tt><br>
                  > <tt><font face="Courier New">SOAP message (just like any OO implementation
                  > keeps base class information</font></tt><br>
                  > <tt><font face="Courier New">in the derived class instances).</font></tt><br>
                  > <br>
                  > <tt><font face="Courier New">2. The problem is that if schemas/WSDL disallows
                  > the above then SOAP is not</font></tt><br>
                  > <tt><font face="Courier New">suitable for OO! (or maybe it need to be
                  > accomplished with some tricks).</font></tt><br>
                  > <br>
                  > <tt><font face="Courier New">- Robert</font></tt><br>
                  > </span></font><br style='mso-special-character:line-break'>
                  > <![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
                  > <![endif]><o:p></o:p></p>
                  >
                  > </span></font><tt><font size=2
                  > face="Courier New"><span style='font-size:10.0pt'>-----------------------------------------------------------------</span></font></tt><font
                  > size=2 face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'><br>
                  > <tt><font face="Courier New">This group is a forum for builders of SOAP
                  > implementations to discuss implementation and interoperability issues. 
                  > Please stay on-topic.</font></tt><br>
                  > <br>
                  > <tt><font face="Courier New">To unsubscribe from this group, send an email to:</font></tt><br>
                  > <tt><font face="Courier New">soapbuilders-unsubscribe@yahoogroups.com</font></tt><br>
                  > <br>
                  > </span></font><br>
                  > <br>
                  > <tt><font size=2 face="Courier New"><span style='font-size:10.0pt'>Your use of
                  > Yahoo! Groups is subject to the <a href="http://docs.yahoo.com/info/terms/">Yahoo!
                  > Terms of Service</a>.</span></font></tt> <o:p></o:p></p>
                  >
                  > </br></div>
                  >
                  >
                  > <br>
                  >
                  > <!-- |**|begin egp html banner|**| -->
                  >
                  > <table border=0 cellspacing=0 cellpadding=2>
                  > <tr bgcolor=#FFFFCC>
                  > <td align=center><font size="-1" color=#003399><b>Yahoo! Groups Sponsor</b></font></td>
                  > </tr>
                  > <tr bgcolor=#FFFFFF>
                  > <td align=center width=470><table border=0 cellpadding=0 cellspacing=0><tr><td align=center><font face=arial size=-2>ADVERTISEMENT</font><br><a href="http://rd.yahoo.com/M=215002.1954253.3462811.1261774/D=egroupweb/S=1705701014:HM/A=1000239/R=0/*http://ads.x10.com/?bHlhaG9vaG0xLmRhd=1017859886%3eM=215002.1954253.3462811.1261774/D=egroupweb/S=1705701014:HM/A=1000239/R=1" target=_top><img src="http://ads.x10.com/?Z3lhaG9vaG0xLmRhd=1017859886%3eM=215002.1954253.3462811.1261774/D=egroupweb/S=1705701014:HM/A=1000239/R=2" alt="" width="300" height="250" border="0"></a></td></tr></table></td>
                  > </tr>
                  > <tr><td><img alt="" width=1 height=1 src="http://us.adserver.yahoo.com/l?M=215002.1954253.3462811.1261774/D=egroupmail/S=1705701014:HM/A=1000239/rand=293260734"></td></tr>
                  > </table>
                  >
                  > <!-- |**|end egp html banner|**| -->
                  >
                  >
                  > <br>
                  > <tt>
                  > -----------------------------------------------------------------<BR>
                  > This group is a forum for builders of SOAP implementations to discuss implementation and interoperability issues.  Please stay on-topic.<BR>
                  > <BR>
                  > To unsubscribe from this group, send an email to:<BR>
                  > soapbuilders-unsubscribe@yahoogroups.com<BR>
                  > <BR>
                  > </tt>
                  > <br>
                  >
                  > <br>
                  > <tt>Your use of Yahoo! Groups is subject to the <a href="http://docs.yahoo.com/info/terms/">Yahoo! Terms of Service</a>.</tt>
                  > </br>
                  >
                  > </body>
                  >
                  > </html>
                  >
                  > ------=_NextPart_000_007B_01C1DB0D.2C1B77E0--
                  >


                  --
                  Robert van Engelen: Assistant Professor, Computer Science Department
                  Florida State University, 206 J. Love Bldg., Tallahassee, FL32306-4530
                  Offices: 162LOV/471DSL, (850)644-9661/645-0309, Fax: (850)644-0058
                  Email: engelen@..., URL: http://www.cs.fsu.edu/~engelen
                • Wes Moulder
                  Well, as far as Java goes, if you have two classes, Address and USAddress, Like this: public class Address { String city; String zip; String country; } public
                  Message 8 of 23 , Apr 3, 2002
                  • 0 Attachment

                    Well, as far as Java goes, if you have two classes, Address and USAddress, Like this:

                     

                    public class Address

                      {

                      String city;

                      String zip;

                      String country;

                      }

                     

                    public class USAddress extends Address

                      {

                      int zip;

                      }

                     

                    Both zips are around.  However, anything that uses Address, and accesses zip will get a null value.  Preserving that semantic would be a bad idea to me, as it breaks the principal of least surprises.  SOAP is more about Data from an OO standpoint, and less about Objects.  When you pass an object back and forth across platforms, there is no guarantee that the other side will have the same methods available.

                     

                    IE:

                     

                    public static void main( String[] args )

                      {

                      USAddress address = new USAddress();

                      address.zip = 1;

                      printOutZip( address );

                      }

                     

                    public void printOutZip( Address address )

                      {

                      System.out.println( address.zip );

                      }

                     

                    Hope that helps you understand my POV.

                    --Wes

                     

                    -----Original Message-----
                    From: Robert van Engelen [mailto:engelen@...]
                    Sent
                    : Wednesday, April 03, 2002 1:07 PM
                    To: soapbuilders@yahoogroups.com
                    Subject: Re: [soapbuilders] Schema question

                     


                    Hi Wes,

                    I see. But don't you find it strange that the O in SOAP refers to Objects
                    while XML schemas don't seem to be able to preserve basic OO semantics?

                    A restriction won't work as you pointed out because the zip field of the base
                    is overwritten with a new definition for zip. Extension seems to be more
                    natural. After all, we add new fields to a base class to get a derived class.

                    Again, if this cannot be resolved in schemas/WSDL then SOAP will not be
                    suitable for object exchange. The .NET guys must have a tremendous problem
                    at their hands when they say that C# is competative to Java while Java
                    preserves simple OO semantics while C# cannot? I would like to hear some
                    more, especially from the .NET people :-)

                    Wes Moulder wrote:
                    >
                    > ------=_NextPart_000_007B_01C1DB0D.2C1B77E0
                    > Content-Type: text/plain;
                    >       charset="US-ASCII"
                    > Content-Transfer-Encoding: 7bit
                    >
                    > Robert,
                    > I believe it would have to be a restriction, not an extension, since
                    > you're changing the behaviour of zip, and even then, I don't think
                    > you're allowed to completely alter the type of data, just restrict its
                    > possibilities.

                    > This is all from a vague understanding of xmlschema-1/ section 3.9.6,
                    > though.
                    > The multiple zip problem is still in effect, though; thus you wouldn't
                    > have two zip entries.

                    > For better understanding of where I'm coming from, take it as if zip
                    > were defined as ur-type, and string.
                    > Now, send in two normalized strings.  Which zip maps to which field?
                    > <sequence> would say it's order dependant, right? 
                    > Where do parent elements go in terms of extension?

                    > You might also look in xmlschema-1 section 2.2.1, where it talks about
                    > DataTypes.

                    > As far as OO goes, I don't think you can take an object that contains a
                    > String, and replace it with an int, and have any assumptions still hold
                    > up.
                    > Take this for an example:

                    > Address{
                    >   String zip;
                    >   String city;
                    >   String country;
                    > }

                    > and
                    > USAddress :: Address {
                    >   Int zip;
                    > }

                    > if I set the int on USAddress, and pass it into a function that looks
                    > for an Address, the String would be empty/null, which isn't what you're
                    > after.

                    > --Wes


                    > -----Original Message-----
                    > From: Robert van Engelen [mailto:engelen@...]
                    > Sent: Wednesday, April 03, 2002 12:27 PM
                    > To: soapbuilders@yahoogroups.com
                    > Subject: Re: [soapbuilders] Schema question

                    >
                    > Thanks!
                    >
                    > It is easy to overlook this kind of information in these long specs.
                    >
                    > One more question though: is the following legal?
                    >
                    > <complexType name="baseAddress">
                    >   <sequence>
                    >     <element name="city" type="xsd:string"/>
                    >     <element name="zip" type="xsd:string"/>
                    >     <element name="country" type="xsd:string"/>
                    >   </sequence>
                    > </complexType>
                    >
                    > <complexType name="address">
                    >   <complexContent>
                    >     <extension base="tns:baseAddress">
                    >       <sequence>
                    >         <element name="zip" type="xsd:integer"/>
                    >       </sequence>
                    >     </extension>
                    >   </complexContent>
                    > </complexType>
                    >
                    > If this is legal, is the resulting XML allowed to carry two zip elements
                    > or
                    > only one?
                    >
                    > I am asking this because:
                    >
                    > 1. gSOAP supports single inheritance. When communicating derived class
                    > instances over SOAP also the base class members need to be present in
                    > the
                    > SOAP message (just like any OO implementation keeps base class
                    > information
                    > in the derived class instances).
                    >
                    > 2. The problem is that if schemas/WSDL disallows the above then SOAP is
                    > not
                    > suitable for OO! (or maybe it need to be accomplished with some tricks).
                    >
                    > - Robert
                    >
                    >
                    >
                    >
                    > Yahoo! Groups Sponsor
                    >
                    >
                    > ADVERTISEMENT

                    > <http://rd.yahoo.com/M=215002.1954253.3462811.1261774/D=egroupweb/S=1705
                    > 701014:HM/A=1000239/R=0/*http:/ads.x10.com/?bHlhaG9vaG0xLmRhd=1017858457
                    > %3eM=215002.1954253.3462811.1261774/D=egroupweb/S=1705701014:HM/A=100023
                    > 9/R=1>
                    >

                    > <http://us.adserver.yahoo.com/l?M=215002.1954253.3462811.1261774/D=egrou
                    > pmail/S=1705701014:HM/A=1000239/rand=279483169>
                    >
                    > -----------------------------------------------------------------
                    > This group is a forum for builders of SOAP implementations to discuss
                    > implementation and interoperability issues.  Please stay on-topic.
                    >
                    > To unsubscribe from this group, send an email to:
                    > soapbuilders-unsubscribe@yahoogroups.com
                    >
                    >
                    >
                    > Your use of Yahoo! Groups is subject to the Yahoo!
                    > <http://docs.yahoo.com/info/terms/>  Terms of Service.
                    >
                    > ------=_NextPart_000_007B_01C1DB0D.2C1B77E0
                    > Content-Type: text/html; charset=US-ASCII
                    > Content-Transfer-Encoding: 7bit
                    >
                    > <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">
                    >
                    > <head>
                    > <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
                    >
                    >
                    > <meta name=ProgId content=Word.Document>
                    > <meta name=Generator content="Microsoft Word 10">
                    > <meta name=Originator content="Microsoft Word 10">
                    > <link rel=File-List href="cid:filelist.xml@01C1DB0D.2B333AC0">
                    > <link rel=Edit-Time-Data href="cid:editdata.mso@01C1DB0D.2B333AC0">
                    > <!--[if !mso]>
                    > <style>
                    > v\:* {behavior:url(#default#VML);}
                    > o\:* {behavior:url(#default#VML);}
                    > w\:* {behavior:url(#default#VML);}
                    > .shape {behavior:url(#default#VML);}
                    > </style>
                    > <![endif]--><o:SmartTagType
                    >  namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="time"/>
                    > <o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
                    >  name="date"/>
                    > <!--[if gte mso 9]><xml>
                    >  <o:OfficeDocumentSettings>
                    >   <o:DoNotRelyOnCSS/>
                    >  </o:OfficeDocumentSettings>
                    > </xml><![endif]--><!--[if gte mso 9]><xml>
                    >  <w:WordDocument>
                    >   <w:DocumentKind>DocumentEmail</w:DocumentKind>
                    >   <w:EnvelopeVis/>
                    >   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
                    >  </w:WordDocument>
                    > </xml><![endif]--><!--[if !mso]>
                    > <style>
                    > st1\:*{behavior:url(#default#ieooui) }
                    > </style>
                    > <![endif]-->
                    > <style>
                    > <!--
                    >  /* Font Definitions */
                    >  @font-face
                    >       {font-family:Tahoma;
                    >       panose-1:2 11 6 4 3 5 4 4 2 4;
                    >       mso-font-charset:0;
                    >       mso-generic-font-family:swiss;
                    >       mso-font-pitch:variable;
                    >       mso-font-signature:553679495 -2147483648 8 0 66047 0;}
                    >  /* Style Definitions */
                    >  p.MsoNormal, li.MsoNormal, div.MsoNormal
                    >       {mso-style-parent:"";
                    >       margin:0in;
                    >       margin-bottom:.0001pt;
                    >       mso-pagination:widow-orphan;
                    >       font-size:12.0pt;
                    >       font-family:"Times New Roman";
                    >       mso-fareast-font-family:"Times New Roman";}
                    > a:link, span.MsoHyperlink
                    >       {color:blue;
                    >       text-decoration:underline;
                    >       text-underline:single;}
                    > a:visited, span.MsoHyperlinkFollowed
                    >       {color:blue;
                    >       text-decoration:underline;
                    >       text-underline:single;}
                    > tt
                    >       {font-family:"Courier New";
                    >       mso-ascii-font-family:"Courier New";
                    >       mso-fareast-font-family:"Times New Roman";
                    >       mso-hansi-font-family:"Courier New";
                    >       mso-bidi-font-family:"Courier New";}
                    > span.EmailStyle18
                    >       {mso-style-type:personal-reply;
                    >       mso-style-noshow:yes;
                    >       mso-ansi-font-size:10.0pt;
                    >       mso-bidi-font-size:10.0pt;
                    >       font-family:Arial;
                    >       mso-ascii-font-family:Arial;
                    >       mso-hansi-font-family:Arial;
                    >       mso-bidi-font-family:Arial;
                    >       color:navy;}
                    > @page Section1
                    >       {size:8.5in 11.0in;
                    >       margin:1.0in 1.25in 1.0in 1.25in;
                    >       mso-header-margin:.5in;
                    >       mso-footer-margin:.5in;
                    >       mso-paper-source:0;}
                    > div.Section1
                    >       {page:Section1;}
                    > -->
                    > </style>
                    > <!--[if gte mso 10]>
                    > <style>
                    >  /* Style Definitions */
                    >  table.MsoNormalTable
                    >       {mso-style-name:"Table Normal";
                    >       mso-tstyle-rowband-size:0;
                    >       mso-tstyle-colband-size:0;
                    >       mso-style-noshow:yes;
                    >       mso-style-parent:"";
                    >       mso-padding-alt:0in 5.4pt 0in 5.4pt;
                    >       mso-para-margin:0in;
                    >       mso-para-margin-bottom:.0001pt;
                    >       mso-pagination:widow-orphan;
                    >       font-size:10.0pt;
                    >       font-family:"Times New Roman";}
                    > </style>
                    > <![endif]-->
                    > </head>
                    >
                    > <body lang=EN-US link=blue vlink=blue style='tab-interval:.5in'>
                    >
                    >
                    >
                    > <div class=Section1>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>Robert,<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>I believe it would have to be a
                    > restriction, not an extension, since you&#8217;re changing the behaviour of zip,
                    > and even then, I don&#8217;t think you&#8217;re allowed to completely alter the
                    > type of data, just restrict its possibilities.<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>This is all from a vague understanding of
                    > xmlschema-1/ section 3.9.6, though.<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>The multiple zip problem is still in
                    > effect, though; thus you wouldn&#8217;t have two zip entries.<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>For better understanding of where I&#8217;m
                    > coming from, take it as if zip were defined as ur-type, and string.<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>Now, send in two normalized strings.<span
                    > style='mso-spacerun:yes'>&nbsp; </span>Which zip maps to which field?
                    > &lt;sequence&gt; would say it&#8217;s order dependant, right?<span
                    > style='mso-spacerun:yes'>&nbsp; </span><o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>Where do parent elements go in terms of
                    > extension?<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>You might also look in xmlschema-1 section
                    > 2.2.1, where it talks about DataTypes.<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>As far as OO goes, I don&#8217;t think you
                    > can take an object that contains a String, and replace it with an int, and have
                    > any assumptions still hold up.<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>Take this for an example:<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>Address{<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><span style='mso-spacerun:yes'>&nbsp;
                    > </span>String zip;<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><span style='mso-spacerun:yes'>&nbsp;
                    > </span>String city;<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><span style='mso-spacerun:yes'>&nbsp;
                    > </span>String country;<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>}<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>and <o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>USAddress :: Address {<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><span style='mso-spacerun:yes'>&nbsp;
                    > </span>Int zip;<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>}<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>if I set the int on USAddress, and pass it
                    > into a function that looks for an Address, the String would be empty/null,
                    > which isn&#8217;t what you&#8217;re after.<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'>--Wes<o:p></o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>
                    >
                    > <p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
                    > 10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>
                    >
                    > <p class=MsoNormal style='margin-left:.5in'><font size=2 face=Tahoma><span
                    > style='font-size:10.0pt;font-family:Tahoma'>-----Original Message-----<br>
                    > <b><span style='font-weight:bold'>From:</span></b> Robert van Engelen
                    > [mailto:engelen@...] <br>
                    > <b><span style='font-weight:bold'>Sent:</span></b> </span></font><st1:date
                    > Month="4" Day="3" Year="2002"><font size=2 face=Tahoma><span style='font-size:
                    >  10.0pt;font-family:Tahoma'>Wednesday, April 03, 2002</span></font></st1:date><font
                    > size=2 face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'> </span></font><st1:time
                    > Hour="12" Minute="27"><font size=2 face=Tahoma><span style='font-size:10.0pt;
                    >  font-family:Tahoma'>12:27 PM</span></font></st1:time><font size=2 face=Tahoma><span
                    > style='font-size:10.0pt;font-family:Tahoma'><br>
                    > <b><span style='font-weight:bold'>To:</span></b> soapbuilders@yahoogroups.com<br>
                    > <b><span style='font-weight:bold'>Subject:</span></b> Re: [soapbuilders] Schema
                    > question</span></font></p>
                    >
                    > <p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
                    > style='font-size:12.0pt'><o:p>&nbsp;</o:p></span></font></p>
                    >
                    > <p class=MsoNormal style='margin-left:.5in'><font size=2 face="Courier New"><span
                    > style='font-size:10.0pt;font-family:"Courier New"'><br>
                    > <tt><font face="Courier New">Thanks!</font></tt><br>
                    > <br>
                    > <tt><font face="Courier New">It is easy to overlook this kind of information in
                    > these long specs.</font></tt><br>
                    > <br>
                    > <tt><font face="Courier New">One more question though: is the following legal?</font></tt><br>
                    > <br>
                    > <tt><font face="Courier New">&lt;complexType name=&quot;baseAddress&quot;&gt;</font></tt><br>
                    > <tt><font face="Courier New">&nbsp; &lt;sequence&gt;</font></tt><br>
                    > <tt><font face="Courier New">&nbsp;&nbsp;&nbsp; &lt;element
                    > name=&quot;city&quot; type=&quot;xsd:string&quot;/&gt;</font></tt><br>
                    > <tt><font face="Courier New">&nbsp;&nbsp;&nbsp; &lt;element
                    > name=&quot;zip&quot; type=&quot;xsd:string&quot;/&gt;</font></tt><br>
                    > <tt><font face="Courier New">&nbsp;&nbsp;&nbsp; &lt;element
                    > name=&quot;country&quot; type=&quot;xsd:string&quot;/&gt;</font></tt><br>
                    > <tt><font face="Courier New">&nbsp; &lt;/sequence&gt;</font></tt><br>
                    > <tt><font face="Courier New">&lt;/complexType&gt;</font></tt><br>
                    > <br>
                    > <tt><font face="Courier New">&lt;complexType name=&quot;address&quot;&gt;</font></tt><br>
                    > <tt><font face="Courier New">&nbsp; &lt;complexContent&gt;</font></tt><br>
                    > <tt><font face="Courier New">&nbsp;&nbsp;&nbsp; &lt;extension
                    > base=&quot;tns:baseAddress&quot;&gt;</font></tt><br>
                    > <tt><font face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sequence&gt;</font></tt><br>
                    > <tt><font face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                    > &lt;element name=&quot;zip&quot; type=&quot;xsd:integer&quot;/&gt;</font></tt><br>
                    > <tt><font face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/sequence&gt;</font></tt><br>
                    > <tt><font face="Courier New">&nbsp;&nbsp;&nbsp; &lt;/extension&gt;</font></tt><br>
                    > <tt><font face="Courier New">&nbsp; &lt;/complexContent&gt;</font></tt><br>
                    > <tt><font face="Courier New">&lt;/complexType&gt;</font></tt><br>
                    > <br>
                    > <tt><font face="Courier New">If this is legal, is the resulting XML allowed to
                    > carry two zip elements or</font></tt><br>
                    > <tt><font face="Courier New">only one?</font></tt><br>
                    > <br>
                    > <tt><font face="Courier New">I am asking this because:</font></tt><br>
                    > <br>
                    > <tt><font face="Courier New">1. gSOAP supports single inheritance. When
                    > communicating derived class</font></tt><br>
                    > <tt><font face="Courier New">instances over SOAP also the base class members
                    > need to be present in the</font></tt><br>
                    > <tt><font face="Courier New">SOAP message (just like any OO implementation
                    > keeps base class information</font></tt><br>
                    > <tt><font face="Courier New">in the derived class instances).</font></tt><br>
                    > <br>
                    > <tt><font face="Courier New">2. The problem is that if schemas/WSDL disallows
                    > the above then SOAP is not</font></tt><br>
                    > <tt><font face="Courier New">suitable for OO! (or maybe it need to be
                    > accomplished with some tricks).</font></tt><br>
                    > <br>
                    > <tt><font face="Courier New">- Robert</font></tt><br>
                    > </span></font><br style='mso-special-character:line-break'>
                    > <![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
                    > <![endif]><o:p></o:p></p>
                    >
                    > </span></font><tt><font size=2
                    > face="Courier New"><span style='font-size:10.0pt'>-----------------------------------------------------------------</span></font></tt><font
                    > size=2 face="Courier New"><span style='font-size:10.0pt;font-family:"Courier New"'><br>
                    > <tt><font face="Courier New">This group is a forum for builders of SOAP
                    > implementations to discuss implementation and interoperability issues.&nbsp;
                    > Please stay on-topic.</font></tt><br>
                    > <br>
                    > <tt><font face="Courier New">To unsubscribe from this group, send an email to:</font></tt><br>
                    > <tt><font face="Courier New">soapbuilders-unsubscribe@yahoogroups.com</font></tt><br>
                    > <br>
                    > </span></font><br>
                    > <br>
                    > <tt><font size=2 face="Courier New"><span style='font-size:10.0pt'>Your use of
                    > Yahoo! Groups is subject to the <a href="http://docs.yahoo.com/info/terms/">Yahoo!
                    > Terms of Service</a>.</span></font></tt> <o:p></o:p></p>
                    >
                    > </br></div>
                    >
                    >
                    > <br>
                    >
                    > <!-- |**|begin egp html banner|**| -->
                    >
                    > <table border=0 cellspacing=0 cellpadding=2>
                    > <tr bgcolor=#FFFFCC>
                    > <td align=center><font size="-1" color=#003399><b>Yahoo! Groups Sponsor</b></font></td>
                    > </tr>
                    > <tr bgcolor=#FFFFFF>
                    > <td align=center width=470><table border=0 cellpadding=0 cellspacing=0><tr><td align=center><font face=arial size=-2>ADVERTISEMENT</font><br><a href="http://rd.yahoo.com/M=215002.1954253.3462811.1261774/D=egroupweb/S=1705701014:HM/A=1000239/R=0/*http://ads.x10.com/?bHlhaG9vaG0xLmRhd=1017859886%3eM=215002.1954253.3462811.1261774/D=egroupweb/S=1705701014:HM/A=1000239/R=1" target=_top><img src="http://ads.x10.com/?Z3lhaG9vaG0xLmRhd=1017859886%3eM=215002.1954253.3462811.1261774/D=egroupweb/S=1705701014:HM/A=1000239/R=2" alt="" width="300" height="250" border="0"></a></td></tr></table></td>
                    > </tr>
                    > <tr><td><img alt="" width=1 height=1 src="http://us.adserver.yahoo.com/l?M=215002.1954253.3462811.1261774/D=egroupmail/S=1705701014:HM/A=1000239/rand=293260734"></td></tr>
                    > </table>
                    >
                    > <!-- |**|end egp html banner|**| -->
                    >
                    >
                    > <br>
                    > <tt>
                    > -----------------------------------------------------------------<BR>
                    > This group is a forum for builders of SOAP implementations to discuss implementation and interoperability issues.&nbsp; Please stay on-topic.<BR>
                    > <BR>
                    > To unsubscribe from this group, send an email to:<BR>
                    > soapbuilders-unsubscribe@yahoogroups.com<BR>
                    > <BR>
                    > </tt>
                    > <br>
                    >
                    > <br>
                    > <tt>Your use of Yahoo! Groups is subject to the <a href="http://docs.yahoo.com/info/terms/">Yahoo! Terms of Service</a>.</tt>
                    > </br>
                    >
                    > </body>
                    >
                    > </html>
                    >
                    > ------=_NextPart_000_007B_01C1DB0D.2C1B77E0--
                    >


                    --
                        Robert van Engelen: Assistant Professor, Computer Science Department
                       Florida State University, 206 J. Love Bldg., Tallahassee, FL32306-4530
                         Offices: 162LOV/471DSL, (850)644-9661/645-0309, Fax: (850)644-0058
                           Email: engelen@..., URL: http://www.cs.fsu.edu/~engelen




                    (Message over 64 KB, truncated)
                  • Bob Cunnings
                    Hello, How do C# or Java come into the picture? I though you were discussing the limitations of XML Schema... not C# RC
                    Message 9 of 23 , Apr 3, 2002
                    • 0 Attachment
                      Hello,

                      How do C# or Java come into the picture? I though you were
                      discussing the limitations of XML Schema... not C#

                      RC

                      >
                      > Hi Wes,
                      >
                      > I see. But don't you find it strange that the O in SOAP refers to Objects
                      > while XML schemas don't seem to be able to preserve basic OO semantics?
                      >
                      > A restriction won't work as you pointed out because the zip field of the base
                      > is overwritten with a new definition for zip. Extension seems to be more
                      > natural. After all, we add new fields to a base class to get a derived class.
                      >
                      > Again, if this cannot be resolved in schemas/WSDL then SOAP will not be
                      > suitable for object exchange. The .NET guys must have a tremendous problem
                      > at their hands when they say that C# is competative to Java while Java
                      > preserves simple OO semantics while C# cannot? I would like to hear some
                      > more, especially from the .NET people :-)
                      >
                      > Wes Moulder wrote:
                      > >
                      > > ------=_NextPart_000_007B_01C1DB0D.2C1B77E0
                      > > Content-Type: text/plain;
                      > > charset="US-ASCII"
                      > > Content-Transfer-Encoding: 7bit
                      > >
                      > > Robert,
                      > > I believe it would have to be a restriction, not an extension, since
                      > > you're changing the behaviour of zip, and even then, I don't think
                      > > you're allowed to completely alter the type of data, just restrict its
                      > > possibilities.
                      > >
                      > > This is all from a vague understanding of xmlschema-1/ section 3.9.6,
                      > > though.
                      > > The multiple zip problem is still in effect, though; thus you wouldn't
                      > > have two zip entries.
                      > >
                      > > For better understanding of where I'm coming from, take it as if zip
                      > > were defined as ur-type, and string.
                      > > Now, send in two normalized strings. Which zip maps to which field?
                      > > <sequence> would say it's order dependant, right?
                      > > Where do parent elements go in terms of extension?
                      > >
                      > > You might also look in xmlschema-1 section 2.2.1, where it talks about
                      > > DataTypes.
                      > >
                      > > As far as OO goes, I don't think you can take an object that contains a
                      > > String, and replace it with an int, and have any assumptions still hold
                      > > up.
                      > > Take this for an example:
                      > >
                      > > Address{
                      > > String zip;
                      > > String city;
                      > > String country;
                      > > }
                      > >
                      > > and
                      > > USAddress :: Address {
                      > > Int zip;
                      > > }
                      > >
                      > > if I set the int on USAddress, and pass it into a function that looks
                      > > for an Address, the String would be empty/null, which isn't what you're
                      > > after.
                      > >
                      > > --Wes
                      > >
                      > >
                    • Robert van Engelen
                      Hi, ... Sorry, I am primarely looking for OO representations in SOAP and I think there are some problems that need to be addressed at the protocol level. Again
                      Message 10 of 23 , Apr 3, 2002
                      • 0 Attachment
                        Hi,

                        > How do C# or Java come into the picture? I though you were
                        > discussing the limitations of XML Schema... not C#

                        Sorry, I am primarely looking for OO representations in SOAP and I think
                        there are some problems that need to be addressed at the protocol level.

                        Again sorry, I want to demonstrate this with Java (no preference).

                        Let's define a Test program:

                        import java.io.*;
                        public class Test
                        { public static void doit(Base b) throws IOException
                        { b.print();
                        }
                        public static void main(String argv[]) throws IOException
                        { Derived d = new Derived();
                        doit(d);
                        }
                        }

                        With Base and Derived classes:

                        import java.io.*;
                        public class Base
                        { String zip;
                        public Base()
                        { zip = new String("hello");
                        }
                        public void print() throws IOException
                        { System.out.print(zip);
                        }
                        public void show() throws IOException
                        { System.out.print(zip);
                        }
                        }

                        import java.io.*;
                        public class Derived extends Base
                        { int zip;
                        public Derived()
                        { zip = 3;
                        }
                        public void show() throws IOException
                        { System.out.print(zip);
                        }
                        }

                        When running the Test program, it will print "hello" which is the zip of Base.

                        Now suppose that we implement 'doit' as a remote method. You see that it
                        expects a Base class instance but we hand it a Derived class instance.

                        The implementation will either:
                        1. pre-convert the Derived class instance to a Base class at the sending side
                        2. post-convert the Derived class instance to a Base class instance at the
                        recieving side.

                        #1 has the advantage that it will limit the data but the disadvantage is that
                        an upgrade to the receiving server-side (to allow derived class instances)
                        requires recompilation of the client.

                        #2 has the advantage that the client does not have to be recompiled when the
                        service is upgraded to accept derived instances.

                        I recall (if correct) that SOAP 1.1 allowed for a scenario such as #2 which
                        explains the fact that accessors can be ignored (unless MU=1).

                        Even when you use #1, it may get you into trouble. Consider echoing a derived
                        class instance:

                        import java.io.*;
                        public class Test
                        { public static Base echo(Base b) throws IOException
                        { return b;
                        }
                        public static void main(String argv[]) throws IOException
                        { Derived d = new Derived();
                        Base b;
                        b = echo(d);
                        b.show()
                        }
                        }

                        This should print '3' instead of 'hello'.

                        All I am saying is that SOAP and schema's don't seem to support these simple
                        OO semantics for RMI.

                        gSOAP does support it (using scenario #2) and I have an echo method example
                        that works just like the above example. I am afraid that this is not
                        interoperable and cannot be supported by SOAP/WSDL because of schema problems.

                        Are there any other SOAP implementation out there that supports the above
                        echo example?

                        - Robert
                      • Yann Christensen
                        ... while XML schemas don t seem to be able to preserve basic OO semantics? From what I understand, in SOAP 1.2 the S, O, A, and P don t stand for anything.
                        Message 11 of 23 , Apr 3, 2002
                        • 0 Attachment
                          > But don't you find it strange that the O in SOAP refers to Objects
                          while XML schemas don't seem to be able to preserve basic OO semantics?

                          From what I understand, in SOAP 1.2 the S, O, A, and P don't stand for
                          anything.

                          -----Original Message-----
                          From: Robert van Engelen [mailto:engelen@...]
                          Sent: Wednesday, April 03, 2002 11:07 AM
                          To: soapbuilders@yahoogroups.com
                          Subject: Re: [soapbuilders] Schema question


                          Hi Wes,

                          I see. But don't you find it strange that the O in SOAP refers to
                          Objects
                          while XML schemas don't seem to be able to preserve basic OO semantics?

                          A restriction won't work as you pointed out because the zip field of the
                          base
                          is overwritten with a new definition for zip. Extension seems to be more
                          natural. After all, we add new fields to a base class to get a derived
                          class.

                          Again, if this cannot be resolved in schemas/WSDL then SOAP will not be
                          suitable for object exchange. The .NET guys must have a tremendous
                          problem
                          at their hands when they say that C# is competative to Java while Java
                          preserves simple OO semantics while C# cannot? I would like to hear some
                          more, especially from the .NET people :-)

                          Wes Moulder wrote:
                          >
                          > ------=_NextPart_000_007B_01C1DB0D.2C1B77E0
                          > Content-Type: text/plain;
                          > charset="US-ASCII"
                          > Content-Transfer-Encoding: 7bit
                          >
                          > Robert,
                          > I believe it would have to be a restriction, not an extension, since
                          > you're changing the behaviour of zip, and even then, I don't think
                          > you're allowed to completely alter the type of data, just restrict its
                          > possibilities.
                          >
                          > This is all from a vague understanding of xmlschema-1/ section 3.9.6,
                          > though.
                          > The multiple zip problem is still in effect, though; thus you wouldn't
                          > have two zip entries.
                          >
                          > For better understanding of where I'm coming from, take it as if zip
                          > were defined as ur-type, and string.
                          > Now, send in two normalized strings. Which zip maps to which field?
                          > <sequence> would say it's order dependant, right?
                          > Where do parent elements go in terms of extension?
                          >
                          > You might also look in xmlschema-1 section 2.2.1, where it talks about
                          > DataTypes.
                          >
                          > As far as OO goes, I don't think you can take an object that contains
                          a
                          > String, and replace it with an int, and have any assumptions still
                          hold
                          > up.
                          > Take this for an example:
                          >
                          > Address{
                          > String zip;
                          > String city;
                          > String country;
                          > }
                          >
                          > and
                          > USAddress :: Address {
                          > Int zip;
                          > }
                          >
                          > if I set the int on USAddress, and pass it into a function that looks
                          > for an Address, the String would be empty/null, which isn't what
                          you're
                          > after.
                          >
                          > --Wes
                          >
                          >
                          > -----Original Message-----
                          > From: Robert van Engelen [mailto:engelen@...]
                          > Sent: Wednesday, April 03, 2002 12:27 PM
                          > To: soapbuilders@yahoogroups.com
                          > Subject: Re: [soapbuilders] Schema question
                          >
                          >
                          > Thanks!
                          >
                          > It is easy to overlook this kind of information in these long specs.
                          >
                          > One more question though: is the following legal?
                          >
                          > <complexType name="baseAddress">
                          > <sequence>
                          > <element name="city" type="xsd:string"/>
                          > <element name="zip" type="xsd:string"/>
                          > <element name="country" type="xsd:string"/>
                          > </sequence>
                          > </complexType>
                          >
                          > <complexType name="address">
                          > <complexContent>
                          > <extension base="tns:baseAddress">
                          > <sequence>
                          > <element name="zip" type="xsd:integer"/>
                          > </sequence>
                          > </extension>
                          > </complexContent>
                          > </complexType>
                          >
                          > If this is legal, is the resulting XML allowed to carry two zip
                          elements
                          > or
                          > only one?
                          >
                          > I am asking this because:
                          >
                          > 1. gSOAP supports single inheritance. When communicating derived class
                          > instances over SOAP also the base class members need to be present in
                          > the
                          > SOAP message (just like any OO implementation keeps base class
                          > information
                          > in the derived class instances).
                          >
                          > 2. The problem is that if schemas/WSDL disallows the above then SOAP
                          is
                          > not
                          > suitable for OO! (or maybe it need to be accomplished with some
                          tricks).
                          >
                          > - Robert
                          >
                          >
                          >
                          >
                          > Yahoo! Groups Sponsor
                          >
                          >
                          > ADVERTISEMENT
                          >
                          >
                          <http://rd.yahoo.com/M=215002.1954253.3462811.1261774/D=egroupweb/S=1705
                          >
                          701014:HM/A=1000239/R=0/*http:/ads.x10.com/?bHlhaG9vaG0xLmRhd=1017858457
                          >
                          %3eM=215002.1954253.3462811.1261774/D=egroupweb/S=1705701014:HM/A=100023
                          > 9/R=1>
                          >
                          >
                          >
                          <http://us.adserver.yahoo.com/l?M=215002.1954253.3462811.1261774/D=egrou
                          > pmail/S=1705701014:HM/A=1000239/rand=279483169>
                          >
                          > -----------------------------------------------------------------
                          > This group is a forum for builders of SOAP implementations to discuss
                          > implementation and interoperability issues. Please stay on-topic.
                          >
                          > To unsubscribe from this group, send an email to:
                          > soapbuilders-unsubscribe@yahoogroups.com
                          >
                          >
                          >
                          > Your use of Yahoo! Groups is subject to the Yahoo!
                          > <http://docs.yahoo.com/info/terms/> Terms of Service.
                          >
                          > ------=_NextPart_000_007B_01C1DB0D.2C1B77E0
                          > Content-Type: text/html; charset=US-ASCII
                          > Content-Transfer-Encoding: 7bit
                          >
                          > <html xmlns:v="urn:schemas-microsoft-com:vml"
                          xmlns:o="urn:schemas-microsoft-com:office:office"
                          xmlns:w="urn:schemas-microsoft-com:office:word"
                          xmlns:st1="urn:schemas-microsoft-com:office:smarttags"
                          xmlns="http://www.w3.org/TR/REC-html40">
                          >
                          > <head>
                          > <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
                          >
                          >
                          > <meta name=ProgId content=Word.Document>
                          > <meta name=Generator content="Microsoft Word 10">
                          > <meta name=Originator content="Microsoft Word 10">
                          > <link rel=File-List href="cid:filelist.xml@01C1DB0D.2B333AC0">
                          > <link rel=Edit-Time-Data href="cid:editdata.mso@01C1DB0D.2B333AC0">
                          > <!--[if !mso]>
                          > <style>
                          > v\:* {behavior:url(#default#VML);}
                          > o\:* {behavior:url(#default#VML);}
                          > w\:* {behavior:url(#default#VML);}
                          > .shape {behavior:url(#default#VML);}
                          > </style>
                          > <![endif]--><o:SmartTagType
                          > namespaceuri="urn:schemas-microsoft-com:office:smarttags"
                          name="time"/>
                          > <o:SmartTagType
                          namespaceuri="urn:schemas-microsoft-com:office:smarttags"
                          > name="date"/>
                          > <!--[if gte mso 9]><xml>
                          > <o:OfficeDocumentSettings>
                          > <o:DoNotRelyOnCSS/>
                          > </o:OfficeDocumentSettings>
                          > </xml><![endif]--><!--[if gte mso 9]><xml>
                          > <w:WordDocument>
                          > <w:DocumentKind>DocumentEmail</w:DocumentKind>
                          > <w:EnvelopeVis/>
                          > <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
                          > </w:WordDocument>
                          > </xml><![endif]--><!--[if !mso]>
                          > <style>
                          > st1\:*{behavior:url(#default#ieooui) }
                          > </style>
                          > <![endif]-->
                          > <style>
                          > <!--
                          > /* Font Definitions */
                          > @font-face
                          > {font-family:Tahoma;
                          > panose-1:2 11 6 4 3 5 4 4 2 4;
                          > mso-font-charset:0;
                          > mso-generic-font-family:swiss;
                          > mso-font-pitch:variable;
                          > mso-font-signature:553679495 -2147483648 8 0 66047 0;}
                          > /* Style Definitions */
                          > p.MsoNormal, li.MsoNormal, div.MsoNormal
                          > {mso-style-parent:"";
                          > margin:0in;
                          > margin-bottom:.0001pt;
                          > mso-pagination:widow-orphan;
                          > font-size:12.0pt;
                          > font-family:"Times New Roman";
                          > mso-fareast-font-family:"Times New Roman";}
                          > a:link, span.MsoHyperlink
                          > {color:blue;
                          > text-decoration:underline;
                          > text-underline:single;}
                          > a:visited, span.MsoHyperlinkFollowed
                          > {color:blue;
                          > text-decoration:underline;
                          > text-underline:single;}
                          > tt
                          > {font-family:"Courier New";
                          > mso-ascii-font-family:"Courier New";
                          > mso-fareast-font-family:"Times New Roman";
                          > mso-hansi-font-family:"Courier New";
                          > mso-bidi-font-family:"Courier New";}
                          > span.EmailStyle18
                          > {mso-style-type:personal-reply;
                          > mso-style-noshow:yes;
                          > mso-ansi-font-size:10.0pt;
                          > mso-bidi-font-size:10.0pt;
                          > font-family:Arial;
                          > mso-ascii-font-family:Arial;
                          > mso-hansi-font-family:Arial;
                          > mso-bidi-font-family:Arial;
                          > color:navy;}
                          > @page Section1
                          > {size:8.5in 11.0in;
                          > margin:1.0in 1.25in 1.0in 1.25in;
                          > mso-header-margin:.5in;
                          > mso-footer-margin:.5in;
                          > mso-paper-source:0;}
                          > div.Section1
                          > {page:Section1;}
                          > -->
                          > </style>
                          > <!--[if gte mso 10]>
                          > <style>
                          > /* Style Definitions */
                          > table.MsoNormalTable
                          > {mso-style-name:"Table Normal";
                          > mso-tstyle-rowband-size:0;
                          > mso-tstyle-colband-size:0;
                          > mso-style-noshow:yes;
                          > mso-style-parent:"";
                          > mso-padding-alt:0in 5.4pt 0in 5.4pt;
                          > mso-para-margin:0in;
                          > mso-para-margin-bottom:.0001pt;
                          > mso-pagination:widow-orphan;
                          > font-size:10.0pt;
                          > font-family:"Times New Roman";}
                          > </style>
                          > <![endif]-->
                          > </head>
                          >
                          > <body lang=EN-US link=blue vlink=blue style='tab-interval:.5in'>
                          >
                          >
                          >
                          > <div class=Section1>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          >
                          10.0pt;font-family:Arial;color:navy'>Robert,<o:p></o:p></span></font></p
                          >
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>I believe it would have to be a
                          > restriction, not an extension, since you’re changing the
                          behaviour of zip,
                          > and even then, I don’t think you’re allowed to completely
                          alter the
                          > type of data, just restrict its
                          possibilities.<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          >
                          10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>This is all from a vague
                          understanding of
                          > xmlschema-1/ section 3.9.6, though.<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>The multiple zip problem is still
                          in
                          > effect, though; thus you wouldn’t have two zip
                          entries.<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          >
                          10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>For better understanding of where
                          I’m
                          > coming from, take it as if zip were defined as ur-type, and
                          string.<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>Now, send in two normalized
                          strings.<span
                          > style='mso-spacerun:yes'>  </span>Which zip maps to which field?
                          > <sequence> would say it’s order dependant, right?<span
                          > style='mso-spacerun:yes'>  </span><o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>Where do parent elements go in
                          terms of
                          > extension?<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          >
                          10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>You might also look in
                          xmlschema-1 section
                          > 2.2.1, where it talks about DataTypes.<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          >
                          10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>As far as OO goes, I don’t
                          think you
                          > can take an object that contains a String, and replace it with an int,
                          and have
                          > any assumptions still hold up.<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>Take this for an
                          example:<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          >
                          10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          >
                          10.0pt;font-family:Arial;color:navy'>Address{<o:p></o:p></span></font></
                          p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'><span
                          style='mso-spacerun:yes'> 
                          > </span>String zip;<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'><span
                          style='mso-spacerun:yes'> 
                          > </span>String city;<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'><span
                          style='mso-spacerun:yes'> 
                          > </span>String country;<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>}<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          >
                          10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>and <o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>USAddress :: Address
                          {<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'><span
                          style='mso-spacerun:yes'> 
                          > </span>Int zip;<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>}<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          >
                          10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          > 10.0pt;font-family:Arial;color:navy'>if I set the int on USAddress,
                          and pass it
                          > into a function that looks for an Address, the String would be
                          empty/null,
                          > which isn’t what you’re
                          after.<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          >
                          10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          >
                          10.0pt;font-family:Arial;color:navy'>--Wes<o:p></o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          >
                          10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                          >
                          > <p class=MsoNormal><font size=2 color=navy face=Arial><span
                          style='font-size:
                          >
                          10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>
                          >
                          > <p class=MsoNormal style='margin-left:.5in'><font size=2
                          face=Tahoma><span
                          > style='font-size:10.0pt;font-family:Tahoma'>-----Original
                          Message-----<br>
                          > <b><span style='font-weight:bold'>From:</span></b> Robert van Engelen
                          > [mailto:engelen@...] <br>
                          > <b><span style='font-weight:bold'>Sent:</span></b>
                          </span></font><st1:date
                          > Month="4" Day="3" Year="2002"><font size=2 face=Tahoma><span
                          style='font-size:
                          > 10.0pt;font-family:Tahoma'>Wednesday, April 03,
                          2002</span></font></st1:date><font
                          > size=2 face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
                          </span></font><st1:time
                          > Hour="12" Minute="27"><font size=2 face=Tahoma><span
                          style='font-size:10.0pt;
                          > font-family:Tahoma'>12:27 PM</span></font></st1:time><font size=2
                          face=Tahoma><span
                          > style='font-size:10.0pt;font-family:Tahoma'><br>
                          > <b><span style='font-weight:bold'>To:</span></b>
                          soapbuilders@yahoogroups.com<br>
                          > <b><span style='font-weight:bold'>Subject:</span></b> Re:
                          [soapbuilders] Schema
                          > question</span></font></p>
                          >
                          > <p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times
                          New Roman"><span
                          > style='font-size:12.0pt'><o:p> </o:p></span></font></p>
                          >
                          > <p class=MsoNormal style='margin-left:.5in'><font size=2 face="Courier
                          New"><span
                          > style='font-size:10.0pt;font-family:"Courier New"'><br>
                          > <tt><font face="Courier New">Thanks!</font></tt><br>
                          > <br>
                          > <tt><font face="Courier New">It is easy to overlook this kind of
                          information in
                          > these long specs.</font></tt><br>
                          > <br>
                          > <tt><font face="Courier New">One more question though: is the
                          following legal?</font></tt><br>
                          > <br>
                          > <tt><font face="Courier New"><complexType
                          name="baseAddress"></font></tt><br>
                          > <tt><font face="Courier New">  <sequence></font></tt><br>
                          > <tt><font face="Courier New">    <element
                          > name="city" type="xsd:string"/></font></tt><br>
                          > <tt><font face="Courier New">    <element
                          > name="zip" type="xsd:string"/></font></tt><br>
                          > <tt><font face="Courier New">    <element
                          > name="country"
                          type="xsd:string"/></font></tt><br>
                          > <tt><font face="Courier New">  </sequence></font></tt><br>
                          > <tt><font face="Courier New"></complexType></font></tt><br>
                          > <br>
                          > <tt><font face="Courier New"><complexType
                          name="address"></font></tt><br>
                          > <tt><font face="Courier New"> 
                          <complexContent></font></tt><br>
                          > <tt><font face="Courier New">    <extension
                          > base="tns:baseAddress"></font></tt><br>
                          > <tt><font face="Courier New">     
                          <sequence></font></tt><br>
                          > <tt><font face="Courier
                          New">       
                          > <element name="zip"
                          type="xsd:integer"/></font></tt><br>
                          > <tt><font face="Courier New">     
                          </sequence></font></tt><br>
                          > <tt><font face="Courier New">   
                          </extension></font></tt><br>
                          > <tt><font face="Courier New"> 
                          </complexContent></font></tt><br>
                          > <tt><font face="Courier New"></complexType></font></tt><br>
                          > <br>
                          > <tt><font face="Courier New">If this is legal, is the resulting XML
                          allowed to
                          > carry two zip elements or</font></tt><br>
                          > <tt><font face="Courier New">only one?</font></tt><br>
                          > <br>
                          > <tt><font face="Courier New">I am asking this because:</font></tt><br>
                          > <br>
                          > <tt><font face="Courier New">1. gSOAP supports single inheritance.
                          When
                          > communicating derived class</font></tt><br>
                          > <tt><font face="Courier New">instances over SOAP also the base class
                          members
                          > need to be present in the</font></tt><br>
                          > <tt><font face="Courier New">SOAP message (just like any OO
                          implementation
                          > keeps base class information</font></tt><br>
                          > <tt><font face="Courier New">in the derived class
                          instances).</font></tt><br>
                          > <br>
                          > <tt><font face="Courier New">2. The problem is that if schemas/WSDL
                          disallows
                          > the above then SOAP is not</font></tt><br>
                          > <tt><font face="Courier New">suitable for OO! (or maybe it need to be
                          > accomplished with some tricks).</font></tt><br>
                          > <br>
                          > <tt><font face="Courier New">- Robert</font></tt><br>
                          > </span></font><br style='mso-special-character:line-break'>
                          > <![if !supportLineBreakNewLine]><br
                          style='mso-special-character:line-break'>
                          > <![endif]><o:p></o:p></p>
                          >
                          > </span></font><tt><font size=2
                          > face="Courier New"><span
                          style='font-size:10.0pt'>-----------------------------------------------
                          ------------------</span></font></tt><font
                          > size=2 face="Courier New"><span
                          style='font-size:10.0pt;font-family:"Courier New"'><br>
                          > <tt><font face="Courier New">This group is a forum for builders of
                          SOAP
                          > implementations to discuss implementation and interoperability
                          issues. 
                          > Please stay on-topic.</font></tt><br>
                          > <br>
                          > <tt><font face="Courier New">To unsubscribe from this group, send an
                          email to:</font></tt><br>
                          > <tt><font face="Courier
                          New">soapbuilders-unsubscribe@yahoogroups.com</font></tt><br>
                          > <br>
                          > </span></font><br>
                          > <br>
                          > <tt><font size=2 face="Courier New"><span
                          style='font-size:10.0pt'>Your use of
                          > Yahoo! Groups is subject to the <a
                          href="http://docs.yahoo.com/info/terms/">Yahoo!
                          > Terms of Service</a>.</span></font></tt> <o:p></o:p></p>
                          >
                          > </br></div>
                          >
                          >
                          > <br>
                          >
                          > <!-- |**|begin egp html banner|**| -->
                          >
                          > <table border=0 cellspacing=0 cellpadding=2>
                          > <tr bgcolor=#FFFFCC>
                          > <td align=center><font size="-1" color=#003399><b>Yahoo! Groups
                          Sponsor</b></font></td>
                          > </tr>
                          > <tr bgcolor=#FFFFFF>
                          > <td align=center width=470><table border=0 cellpadding=0
                          cellspacing=0><tr><td align=center><font face=arial
                          size=-2>ADVERTISEMENT</font><br><a
                          href="http://rd.yahoo.com/M=215002.1954253.3462811.1261774/D=egroupweb/S
                          =1705701014:HM/A=1000239/R=0/*http://ads.x10.com/?bHlhaG9vaG0xLmRhd=1017
                          859886%3eM=215002.1954253.3462811.1261774/D=egroupweb/S=1705701014:HM/A=
                          1000239/R=1" target=_top><img
                          src="http://ads.x10.com/?Z3lhaG9vaG0xLmRhd=1017859886%3eM=215002.1954253
                          .3462811.1261774/D=egroupweb/S=1705701014:HM/A=1000239/R=2" alt=""
                          width="300" height="250" border="0"></a></td></tr></table></td>
                          > </tr>
                          > <tr><td><img alt="" width=1 height=1
                          src="http://us.adserver.yahoo.com/l?M=215002.1954253.3462811.1261774/D=e
                          groupmail/S=1705701014:HM/A=1000239/rand=293260734"></td></tr>
                          > </table>
                          >
                          > <!-- |**|end egp html banner|**| -->
                          >
                          >
                          > <br>
                          > <tt>
                          > -----------------------------------------------------------------<BR>
                          > This group is a forum for builders of SOAP implementations to discuss
                          implementation and interoperability issues.  Please stay
                          on-topic.<BR>
                          > <BR>
                          > To unsubscribe from this group, send an email to:<BR>
                          > soapbuilders-unsubscribe@yahoogroups.com<BR>
                          > <BR>
                          > </tt>
                          > <br>
                          >
                          > <br>
                          > <tt>Your use of Yahoo! Groups is subject to the <a
                          href="http://docs.yahoo.com/info/terms/">Yahoo! Terms of
                          Service</a>.</tt>
                          > </br>
                          >
                          > </body>
                          >
                          > </html>
                          >
                          > ------=_NextPart_000_007B_01C1DB0D.2C1B77E0--
                          >


                          --
                          Robert van Engelen: Assistant Professor, Computer Science Department
                          Florida State University, 206 J. Love Bldg., Tallahassee,
                          FL32306-4530
                          Offices: 162LOV/471DSL, (850)644-9661/645-0309, Fax: (850)644-0058
                          Email: engelen@..., URL: http://www.cs.fsu.edu/~engelen


                          -----------------------------------------------------------------
                          This group is a forum for builders of SOAP implementations to discuss
                          implementation and interoperability issues. Please stay on-topic.

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



                          Your use of Yahoo! Groups is subject to
                          http://docs.yahoo.com/info/terms/
                        • Rich Salz
                          The SOAP RPC encoding can send data (e.g., aliased pointers via href/id) that cannot be expressed in XML Schema. There is no requirement that WSDL use XML
                          Message 12 of 23 , Apr 3, 2002
                          • 0 Attachment
                            The SOAP RPC encoding can send data (e.g., aliased pointers via href/id)
                            that cannot be expressed in XML Schema. There is no requirement that
                            WSDL use XML Schema, although it is the "preferred" (er, sorry,
                            "canonical") data description.

                            You could, e.g., define your own "types" extgension element that
                            contained a URL to a Java interface, a Corba IDL file, etc.

                            It would seem that since you want to use SOAP for things that cannot be
                            expressed in XML Schema, then you shouldn't use XML Schema, and you
                            needn't. :)
                            /R$
                          • Martin Gudgin
                            No, for the same reason. The effective type definition for address is;
                            Message 13 of 23 , Apr 3, 2002
                            • 0 Attachment
                              No, for the same reason. The effective type definition for address is;

                              <complexType name="address">
                              <sequence>
                              <element name="city" type="xsd:string"/>
                              <element name="zip" type="xsd:string"/>
                              <element name="country" type="xsd:string"/>
                              <element name="zip" type="xsd:integer"/>
                              </sequence>
                              </complexType>

                              Martin


                              ----- Original Message -----
                              From: "Robert van Engelen" <engelen@...>
                              To: <soapbuilders@yahoogroups.com>
                              Sent: Wednesday, April 03, 2002 7:27 PM
                              Subject: Re: [soapbuilders] Schema question


                              >
                              > Thanks!
                              >
                              > It is easy to overlook this kind of information in these long specs.
                              >
                              > One more question though: is the following legal?
                              >
                              > <complexType name="baseAddress">
                              > <sequence>
                              > <element name="city" type="xsd:string"/>
                              > <element name="zip" type="xsd:string"/>
                              > <element name="country" type="xsd:string"/>
                              > </sequence>
                              > </complexType>
                              >
                              > <complexType name="address">
                              > <complexContent>
                              > <extension base="tns:baseAddress">
                              > <sequence>
                              > <element name="zip" type="xsd:integer"/>
                              > </sequence>
                              > </extension>
                              > </complexContent>
                              > </complexType>
                              >
                              > If this is legal, is the resulting XML allowed to carry two zip elements
                              or
                              > only one?
                              >
                              > I am asking this because:
                              >
                              > 1. gSOAP supports single inheritance. When communicating derived class
                              > instances over SOAP also the base class members need to be present in the
                              > SOAP message (just like any OO implementation keeps base class information
                              > in the derived class instances).
                              >
                              > 2. The problem is that if schemas/WSDL disallows the above then SOAP is
                              not
                              > suitable for OO! (or maybe it need to be accomplished with some tricks).
                              >
                              > - Robert
                              >
                              >
                              > -----------------------------------------------------------------
                              > This group is a forum for builders of SOAP implementations to discuss
                              implementation and interoperability issues. Please stay on-topic.
                              >
                              > To unsubscribe from this group, send an email to:
                              > soapbuilders-unsubscribe@yahoogroups.com
                              >
                              >
                              >
                              > Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
                              >
                              >
                            • Rosimildo daSIlva
                              ... I agree. The programming languages are what they are. C#, Java, C++ and others have the constructs to build Classes, Inheritance, Polymorphism, etc.These
                              Message 14 of 23 , Apr 3, 2002
                              • 0 Attachment
                                >
                                > How do C# or Java come into the picture? I though
                                > you were
                                > discussing the limitations of XML Schema... not C#
                                >

                                I agree. The programming languages are what they are.
                                C#, Java, C++
                                and others have the constructs to build Classes,
                                Inheritance, Polymorphism, etc.These mechanisms are
                                very powerful.

                                At the same time, I understand where Robert is
                                coming from.

                                As has been debated before, XML-Schema and in some
                                extent SOAP/WSDL, are
                                very limited regarding modeling of systems using
                                techniques sich as Object
                                Orientation. The Schema limits you on how you define
                                "Messages" to be delivered
                                back and forth, and WSDL is very weak regarding
                                composition of end-points.

                                Assuming that one "portType", defines one interface.
                                It would be nice
                                to compose more complex interfaces ( portTypes ) using
                                inheritance:

                                interface SuperTV extends PublicTV, CableTV, DishTV
                                {


                                };

                                where: PublicTV --- described by public_tv.wsdl,
                                CableTV --- described by cable_tv.wsdl,
                                DiskTV --- described by dish_tv.wsdl

                                Now this service, super_tv.wsdl is higher level
                                service that using composition
                                provide a more sophisticated service that wants
                                simplicity for a fee. <g>

                                This is very basic, and still missing in WSDL/SOAP.
                                Imagine things
                                like Security, Session Managment, QoS, etc.

                                Rosimildo.



                                __________________________________________________
                                Do You Yahoo!?
                                Yahoo! Tax Center - online filing with TurboTax
                                http://taxes.yahoo.com/
                              • david_cleary
                                ... Since I haven t seen a reply that tells you how to code this, here it goes. Use a union type. Here is the syntax using an anonyomous type decl and requires
                                Message 15 of 23 , Apr 4, 2002
                                • 0 Attachment
                                  --- In soapbuilders@y..., Robert van Engelen <engelen@a...> wrote:
                                  >
                                  > Hi,
                                  >
                                  > I have a question with regard to the validity of the following
                                  schema:
                                  >
                                  > <complexType name="address">
                                  > <sequence>
                                  > <element name="city" type="xsd:string"/>
                                  > <element name="zip" type="xsd:string"/>
                                  > <element name="zip" type="xsd:integer"/>
                                  > <element name="country" type="xsd:string"/>
                                  > </sequence>
                                  > </complexType>

                                  Since I haven't seen a reply that tells you how to code this, here it
                                  goes. Use a union type. Here is the syntax using an anonyomous type
                                  decl and requires both to be present.

                                  <xs:element name="zip" minOccurs="2" maxOccurs="2">
                                  <xs:simpleType>
                                  <xs:union memberTypes="xs:int xs:string"/>
                                  </xs:simpleType>
                                  </xs:element>

                                  You need to use xsi:type in the instance if the datatype can't be
                                  determined by the data.

                                  David Cleary
                                  Progress Software
                                • Noah Mendelsohn/Cambridge/IBM
                                  ... No, but the reason is either subtle (or pretty) as you prefer. Gudge has already pointed out that [1]: When two or more particles contained directly or
                                  Message 16 of 23 , Apr 4, 2002
                                  • 0 Attachment
                                    Rob van Engelen asks:

                                    >> One more question though: is the following legal?

                                    >> <complexType name="baseAddress">
                                    >> <sequence>
                                    >> <element name="city" type="xsd:string"/>
                                    >> <element name="zip" type="xsd:string"/>
                                    >> <element name="country" type="xsd:string"/>
                                    >> </sequence>
                                    >> </complexType>
                                    >>
                                    >> <complexType name="address">
                                    >> <complexContent>
                                    >> <extension base="tns:baseAddress">
                                    >> <sequence>
                                    >> <element name="zip" type="xsd:integer"/>
                                    >> </sequence>
                                    >> </extension>
                                    >> </complexContent>
                                    >> </complexType>

                                    No, but the reason is either subtle (or pretty) as you prefer. Gudge has
                                    already pointed out that [1]:

                                    'When two or more particles contained directly or indirectly in the
                                    {particles} of a model group have identically named element declarations
                                    as
                                    their {term}, the type definitions of those declarations must be the
                                    same.'

                                    If you read [2] you will find out that when <extension> is used in a
                                    schema document, the derived type has a {term} (essentially a particle)
                                    which is the net content model. In your case, a sequence of city,zip,
                                    country, zip (actually, I think it's
                                    sequence(sequence(city,zip,country),zip)). This model group violates the
                                    rule cited by Gudge. Hence, invalid.

                                    Actually, if you are a real schema guru, you will note that this only
                                    covers the common case in which you used the <schema> syntax to declare
                                    your schema. The general case is covered at [3], combined with [1]. It
                                    states:

                                    "[Definition:] For a particle (call it E, for extension) to be a valid
                                    extension of another particle (call it B, for base) one of the following
                                    must be true:
                                    1 They are the same particle.
                                    2 E's {min occurs}={max occurs}=1 and its {term} is a sequence group whose
                                    {particles}' first member is a particle all of whose properties,
                                    recursively, are identical to those of B, with the exception of
                                    {annotation} properties. "

                                    In other words, the constructs from the base type appear in the same
                                    particle of as the derived, and hence are subject to the rule cited by
                                    Gudge.

                                    In short, this example is clearly invalid, IMO at least.

                                    [1] http://www.w3.org/TR/xmlschema-1/#Model_Group_details
                                    [2] http://www.w3.org/TR/xmlschema-1/#declare-type
                                    [3] http://www.w3.org/TR/xmlschema-1/#cos-particle-extend

                                    ------------------------------------------------------------------
                                    Noah Mendelsohn Voice: 1-617-693-4036
                                    IBM Corporation Fax: 1-617-693-8676
                                    One Rogers Street
                                    Cambridge, MA 02142
                                    ------------------------------------------------------------------







                                    Robert van Engelen <engelen@...>
                                    04/03/02 01:27 PM
                                    Please respond to soapbuilders


                                    To: soapbuilders@yahoogroups.com
                                    cc: (bcc: Noah Mendelsohn/Cambridge/IBM)
                                    Subject: Re: [soapbuilders] Schema question


                                    Thanks!

                                    It is easy to overlook this kind of information in these long specs.

                                    One more question though: is the following legal?

                                    <complexType name="baseAddress">
                                    <sequence>
                                    <element name="city" type="xsd:string"/>
                                    <element name="zip" type="xsd:string"/>
                                    <element name="country" type="xsd:string"/>
                                    </sequence>
                                    </complexType>

                                    <complexType name="address">
                                    <complexContent>
                                    <extension base="tns:baseAddress">
                                    <sequence>
                                    <element name="zip" type="xsd:integer"/>
                                    </sequence>
                                    </extension>
                                    </complexContent>
                                    </complexType>

                                    If this is legal, is the resulting XML allowed to carry two zip elements
                                    or
                                    only one?

                                    I am asking this because:

                                    1. gSOAP supports single inheritance. When communicating derived class
                                    instances over SOAP also the base class members need to be present in the
                                    SOAP message (just like any OO implementation keeps base class information
                                    in the derived class instances).

                                    2. The problem is that if schemas/WSDL disallows the above then SOAP is
                                    not
                                    suitable for OO! (or maybe it need to be accomplished with some tricks).

                                    - Robert


                                    -----------------------------------------------------------------
                                    This group is a forum for builders of SOAP implementations to discuss
                                    implementation and interoperability issues. Please stay on-topic.

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



                                    Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
                                  • Rosimildo daSIlva
                                    ... I am glad that there are people around here with that qualifications. Everytime I get close to the XML Schema spec, I feel sorry for myself, and I feel
                                    Message 17 of 23 , Apr 4, 2002
                                    • 0 Attachment
                                      <noah_mendelsohn@...> wrote:
                                      > Rob van Engelen asks:
                                      >
                                      > Actually, if you are a real schema guru, you will
                                      > note that this only
                                      > covers the common case in which you used the
                                      > <schema> syntax to declare
                                      > your schema. The general case is covered at [3],
                                      > combined with [1]. It
                                      > states:
                                      >

                                      I am glad that there are people around here with that
                                      qualifications. <g>

                                      Everytime I get close to the XML Schema spec, I feel
                                      sorry for myself, and I feel so "small" thinking to
                                      myself that I need the next 10 years to really
                                      understand it.

                                      Rosimildo.



                                      __________________________________________________
                                      Do You Yahoo!?
                                      Yahoo! Tax Center - online filing with TurboTax
                                      http://taxes.yahoo.com/
                                    • Robert van Engelen
                                      Noah, Thanks. Your comments are highly appreciated. Based on this I can conclude that the extension mechanism is not suitable to implement the usual OO base
                                      Message 18 of 23 , Apr 4, 2002
                                      • 0 Attachment
                                        Noah,

                                        Thanks. Your comments are highly appreciated.

                                        Based on this I can conclude that the extension mechanism is not suitable
                                        to implement the usual OO base class overriding semantics. Which means that
                                        a derived class (in the OO sense) must be represented with a schema
                                        that is separate from the base class schema. E.g. to represent the base
                                        class zip with the derived class zip I have to use a <union>. The unfortunate
                                        consequence is that the base class <-> derived class information is completely
                                        lost in the process and can't be retained in a WSDL document. One can argue
                                        that the OO hierarchies have nothing in common with XML schemas. However,
                                        since SOAP utilizes WSDL for declaring the necessary data types for RPC,
                                        the OO hierarchy may be exploited by SOAP-enabled applications that have to
                                        deal with object exchange. It appears that the two cannot be mixed, which is
                                        unfortunate for SOAP. For example, when I declare a remote procedure in WSDL
                                        with a parameter of a base type, then the procedure can never accept a derived
                                        type (with additional elements) because of validation violations. A solution
                                        is to write overloaded procedure definitions, one for each class. Is that a
                                        recommended solution?

                                        Question: Can <union> be used to refer to any schema type or only to primitive
                                        schema types?

                                        - Robert
                                      • graham glass
                                        hi robert, there is another way to look at this which i think is more useful. you *can* pass a derived schema type to a method which accepts a base schema type
                                        Message 19 of 23 , Apr 4, 2002
                                        • 0 Attachment
                                          hi robert,
                                           
                                          there is another way to look at this which i think is more useful.
                                           
                                          you *can* pass a derived schema type to a method which accepts
                                          a base schema type as long as the derived type doesn't contain
                                          a field name which is a duplicate of the base name.
                                           
                                          i bet that 99% of the derived classes don't contain field names
                                          that override those of their base classes, so this approach (with
                                          a noted restriction) seems pragmatic.
                                           
                                          this is the kind of functionality that GLUE and many other SOAP
                                          platforms support.
                                           
                                          cheers,
                                          graham
                                          -----Original Message-----
                                          From: Robert van Engelen [mailto:engelen@...]
                                          Sent: Thursday, April 04, 2002 4:31 PM
                                          To: soapbuilders@yahoogroups.com
                                          Subject: Re: [soapbuilders] Schema question


                                          Noah,

                                          Thanks. Your comments are highly appreciated.

                                          Based on this I can conclude that the extension mechanism is not suitable
                                          to implement the usual OO base class overriding semantics. Which means that
                                          a derived class (in the OO sense) must be represented with a schema
                                          that is separate from the base class schema. E.g. to represent the base
                                          class zip with the derived class zip I have to use a <union>. The unfortunate
                                          consequence is that the base class <-> derived class information is completely
                                          lost in the process and can't be retained in a WSDL document. One can argue
                                          that the OO hierarchies have nothing in common with XML schemas. However,
                                          since SOAP utilizes WSDL for declaring the necessary data types for RPC,
                                          the OO hierarchy may be exploited by SOAP-enabled applications that have to
                                          deal with object exchange. It appears that the two cannot be mixed, which is
                                          unfortunate for SOAP. For example, when I declare a remote procedure in WSDL
                                          with a parameter of a base type, then the procedure can never accept a derived
                                          type (with additional elements) because of validation violations. A solution
                                          is to write overloaded procedure definitions, one for each class. Is that a
                                          recommended solution?

                                          Question: Can <union> be used to refer to any schema type or only to primitive
                                          schema types?

                                          - Robert


                                          -----------------------------------------------------------------
                                          This group is a forum for builders of SOAP implementations to discuss implementation and interoperability issues.  Please stay on-topic.

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



                                          Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
                                        • Noah Mendelsohn/Cambridge/IBM
                                          Exactly the answer I would have given. Schema s type system is at best an 80/20 as a basis for representing this or that existing object system. First of all,
                                          Message 20 of 23 , Apr 5, 2002
                                          • 0 Attachment
                                            Exactly the answer I would have given. Schema's type system is at best an
                                            80/20 as a basis for representing this or that existing object system.
                                            First of all, most programming languages emphasize inheritance of methods
                                            rather than data (though there is no-doubt data inheritance going on as
                                            well, but in many uses of OO only the methods are made public or protected
                                            and are thus part of the overt interface contract.) Anyway, another
                                            glaring hole is that schema makes no attempt at multiple inheritance (a
                                            conscious keep it simple compromise.) Covering redefinition of a
                                            like-named member property is probably below multiple-inheritance in terms
                                            of the number of users who have screamed that they can't effectively
                                            mapped to our system.

                                            ------------------------------------------------------------------
                                            Noah Mendelsohn Voice: 1-617-693-4036
                                            IBM Corporation Fax: 1-617-693-8676
                                            One Rogers Street
                                            Cambridge, MA 02142
                                            ------------------------------------------------------------------







                                            "graham glass" <graham@...>
                                            04/05/02 02:33 AM
                                            Please respond to soapbuilders


                                            To: <soapbuilders@yahoogroups.com>
                                            cc: (bcc: Noah Mendelsohn/Cambridge/IBM)
                                            Subject: RE: [soapbuilders] Schema question

                                            hi robert,

                                            there is another way to look at this which i think is more useful.

                                            you *can* pass a derived schema type to a method which accepts
                                            a base schema type as long as the derived type doesn't contain
                                            a field name which is a duplicate of the base name.

                                            i bet that 99% of the derived classes don't contain field names
                                            that override those of their base classes, so this approach (with
                                            a noted restriction) seems pragmatic.

                                            this is the kind of functionality that GLUE and many other SOAP
                                            platforms support.

                                            cheers,
                                            graham
                                            -----Original Message-----
                                            From: Robert van Engelen [mailto:engelen@...]
                                            Sent: Thursday, April 04, 2002 4:31 PM
                                            To: soapbuilders@yahoogroups.com
                                            Subject: Re: [soapbuilders] Schema question


                                            Noah,

                                            Thanks. Your comments are highly appreciated.

                                            Based on this I can conclude that the extension mechanism is not suitable
                                            to implement the usual OO base class overriding semantics. Which means
                                            that
                                            a derived class (in the OO sense) must be represented with a schema
                                            that is separate from the base class schema. E.g. to represent the base
                                            class zip with the derived class zip I have to use a <union>. The
                                            unfortunate
                                            consequence is that the base class <-> derived class information is
                                            completely
                                            lost in the process and can't be retained in a WSDL document. One can
                                            argue
                                            that the OO hierarchies have nothing in common with XML schemas. However,
                                            since SOAP utilizes WSDL for declaring the necessary data types for RPC,
                                            the OO hierarchy may be exploited by SOAP-enabled applications that have
                                            to
                                            deal with object exchange. It appears that the two cannot be mixed, which
                                            is
                                            unfortunate for SOAP. For example, when I declare a remote procedure in
                                            WSDL
                                            with a parameter of a base type, then the procedure can never accept a
                                            derived
                                            type (with additional elements) because of validation violations. A
                                            solution
                                            is to write overloaded procedure definitions, one for each class. Is that
                                            a
                                            recommended solution?

                                            Question: Can <union> be used to refer to any schema type or only to
                                            primitive
                                            schema types?

                                            - Robert


                                            -----------------------------------------------------------------
                                            This group is a forum for builders of SOAP implementations to discuss
                                            implementation and interoperability issues. Please stay on-topic.

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



                                            Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.

                                            Yahoo! Groups Sponsor

                                            ADVERTISEMENT




                                            -----------------------------------------------------------------
                                            This group is a forum for builders of SOAP implementations to discuss
                                            implementation and interoperability issues. Please stay on-topic.

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



                                            Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
                                          • Robert van Engelen
                                            Noah and Graham, Thanks! Please allow me to elaborate on this a little further for sake of clarity and usefulness to the SOAP interop community after which (I
                                            Message 21 of 23 , Apr 5, 2002
                                            • 0 Attachment
                                              Noah and Graham,

                                              Thanks!

                                              Please allow me to elaborate on this a little further for sake of clarity
                                              and usefulness to the SOAP interop community after which (I hope) this
                                              issue can be closed.

                                              gSOAP does support single inheritance and allows a derived class to be passed
                                              to a method that accepts a base class.

                                              However, to generate valid WSDL schemas for the 1% of code that does in fact
                                              override base class fields needs some tweaking by renaming derived class fields
                                              (in the language domain) to unique element names (in the schema domain).
                                              I was just concerned that this renaming might break interoperability
                                              between OO-based SOAP implementations (whatever that means) and I am very
                                              interested to hear how other SOAP implementations handle this. [Note that gSOAP
                                              has a fully automatic mapping from C/C++ data types to SOAP data types.]

                                              As a general solution, a field 'F' of a derived class 'D' can be renamed to an
                                              element '<D.F>' in case 'F' is a field in a base class. Any WSDL importer will
                                              just use this (unique) element and doesn't need to be concerned about
                                              overriding issues.

                                              When gSOAP would import such as schema though, gSOAP could in fact declare a
                                              derived class with field 'F' to recreate the (language-specific) OO hierarchy
                                              with member overriding.

                                              Interestingly enough, this approach allows for both OO implementations and
                                              non-OO implementations to cope with schemas derived by extension. Maybe
                                              I am reinventing the wheel here?

                                              - Cheers, Robert
                                            • Noah Mendelsohn/Cambridge/IBM
                                              Thanks. I would have thought there were other potential member name issues. For example, if your programming language allows variable names to have
                                              Message 22 of 23 , Apr 5, 2002
                                              • 0 Attachment
                                                Thanks. I would have thought there were other potential member name
                                                issues. For example, if your programming language allows variable names
                                                to have characters that are not XML Name characters. In general, I would
                                                expect that for real interop of some particular inheritance model, someone
                                                would have to write a specification saying: "here's how we map member
                                                names that aren't legal XML names, here is how we rename members in the
                                                1% of cases where a derived class does an incompatible override of a base,
                                                etc."

                                                ------------------------------------------------------------------
                                                Noah Mendelsohn Voice: 1-617-693-4036
                                                IBM Corporation Fax: 1-617-693-8676
                                                One Rogers Street
                                                Cambridge, MA 02142
                                                ------------------------------------------------------------------







                                                Robert van Engelen <engelen@...>
                                                04/05/02 11:40 AM
                                                Please respond to soapbuilders


                                                To: soapbuilders@yahoogroups.com
                                                cc: (bcc: Noah Mendelsohn/Cambridge/IBM)
                                                Subject: Re: [soapbuilders] Schema question


                                                Noah and Graham,

                                                Thanks!

                                                Please allow me to elaborate on this a little further for sake of clarity
                                                and usefulness to the SOAP interop community after which (I hope) this
                                                issue can be closed.

                                                gSOAP does support single inheritance and allows a derived class to be
                                                passed
                                                to a method that accepts a base class.

                                                However, to generate valid WSDL schemas for the 1% of code that does in
                                                fact
                                                override base class fields needs some tweaking by renaming derived class
                                                fields
                                                (in the language domain) to unique element names (in the schema domain).
                                                I was just concerned that this renaming might break interoperability
                                                between OO-based SOAP implementations (whatever that means) and I am very
                                                interested to hear how other SOAP implementations handle this. [Note that
                                                gSOAP
                                                has a fully automatic mapping from C/C++ data types to SOAP data types.]

                                                As a general solution, a field 'F' of a derived class 'D' can be renamed
                                                to an
                                                element '<D.F>' in case 'F' is a field in a base class. Any WSDL importer
                                                will
                                                just use this (unique) element and doesn't need to be concerned about
                                                overriding issues.

                                                When gSOAP would import such as schema though, gSOAP could in fact declare
                                                a
                                                derived class with field 'F' to recreate the (language-specific) OO
                                                hierarchy
                                                with member overriding.

                                                Interestingly enough, this approach allows for both OO implementations and
                                                non-OO implementations to cope with schemas derived by extension. Maybe
                                                I am reinventing the wheel here?

                                                - Cheers, Robert


                                                -----------------------------------------------------------------
                                                This group is a forum for builders of SOAP implementations to discuss
                                                implementation and interoperability issues. Please stay on-topic.

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



                                                Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
                                              • Robert van Engelen
                                                ... That s an accurate observation. I came up with conventions for special characters. For example, element maps to ns2__x_DOT_y_z, assuming that
                                                Message 23 of 23 , Apr 8, 2002
                                                • 0 Attachment
                                                  > Thanks. I would have thought there were other potential member name
                                                  > issues. For example, if your programming language allows variable names
                                                  > to have characters that are not XML Name characters. In general, I would

                                                  That's an accurate observation. I came up with conventions for special
                                                  characters. For example, element <ns1:x.y-z> maps to ns2__x_DOT_y_z,
                                                  assuming that ns1 refers to the same namespace URI as ns2 (light validation).

                                                  This way, I can map

                                                  class ns__X
                                                  { int n;
                                                  };
                                                  class ns__Y:ns__X
                                                  { int n;
                                                  int m;
                                                  };

                                                  to

                                                  <?xml version="1.0" encoding="UTF-8"?>
                                                  <schema
                                                  xmlns="http://www.w3.org/2001/XMLSchema"
                                                  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
                                                  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
                                                  targetNamespace="XXXXX"
                                                  xmlns:ns="XXXXX">
                                                  <complexType name="X">
                                                  <sequence>
                                                  <element name="n" type="xsd:int" minOccurs="0" maxOccurs="1"/>
                                                  </sequence>
                                                  </complexType>
                                                  <complexType name="Y">
                                                  <complexContent>
                                                  <extension base="ns:X">
                                                  <sequence>
                                                  <element name="ns:Y.n" type="xsd:int" minOccurs="0" maxOccurs="1"/>
                                                  <element name="m" type="xsd:int" minOccurs="0" maxOccurs="1"/>
                                                  </sequence>
                                                  </extension>
                                                  </complexContent>
                                                  </complexType>
                                                  </schema>

                                                  and vice-versa. I made a change to my schema generator to accomodate
                                                  overriding. Is the use of the element name="ns:Y.n" valid in this case?

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