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

5231Re: xml protocols and transport bindings

Expand Messages
  • allenjswa
    Feb 3, 2002
      > Null/nil handing is not compatible depending on what version of

      This is true. For a list of some others, check out Sam Ruby's essay
      on the subject:


      I tend to agree with Sam, though -- things like Null vs. empty are
      almost meaningless in many languages (like Perl for example), so
      trying to get interop while counting on behavior of these is risky.
      And I personally think it is a bit unfair to expect instant interop
      with these particular high-risk categories -- the behavior of
      null/nil, empty, IsDefined, etc. can vary wildly depending on the
      platform and language. Even things like signed/unsigned and boolean
      have rather different implementations depending on platform. Even
      on the same platform (for example, use C# to call into interop C++
      that calls Oracle stored procedure) you will get many different
      interpretations of what null means.

      And even if you go to XSD spec, you find that xsi:nil behavior is
      completely different depending on whether you have an element or an
      attribute (at least in the case of xsd:default). So it is in fact
      impossible to even round-trip pure XML faithfully that uses explicit
      null, in certain cases.

      Not to say this is not an interop problem, but just that these
      problems are well-known and common, so I don't think it is
      necessarily an indictment of SOAP to say that "nil behavior is
      flaky". Nil is messy everywhere.

      But anyway, I get your point -- as long as you stick to simple
      strings, numbers, and arrays, things are pretty good (and current
      version toolkits; the namespace issues like in Apache vs. MS have
      been fixed AFAIK). But like you say, the null (especially) and some
      other cases are not very good. And I think another risky one at
      this point is passing "document" content (basically injecting a
      whole XML document as the payload). The support for this is not
    • Show all 20 messages in this topic