- From: Ray Whitmer <rayw@netscape.com>
- Date: Mon, 08 Apr 2002 10:29:39 -0700
- To: Noah Mendelsohn/Cambridge/IBM <noah_mendelsohn@us.ibm.com>
- CC: Herve Ruellan <ruellan@crf.canon.fr>, jacek@systinet.com, tjewald@develop.com, xml-dist-app@w3.org, "Sanjiva_Weerawarana/Watson/IBM%IBMUS" <Sanjiva_Weerawarana/Watson/IBM%IBMUS@lotus.com>
- Message-ID: <3CB1D383.5050404@netscape.com>
Noah Mendelsohn/Cambridge/IBM wrote: >Herve Ruellan writes: > >>>My short reply to your short answer is: XML >>>Schema is not suitable for describing data >>>in SOAP Data Model (or at least in SOAP Encoding), >>>but with a few tweaking, we should be able to used >>>XML Schema to describe data in SOAP Encoding for >>>RPC requests and responses. >>> > >I respectfully disagree, unless you want to lock in to one of the many >legal serializations for each graph. Note that the latest editors draft >of SOAP mandates that reeivers MUST accept any legal serialization of a >graph. > >The SOAP data model is a Directed Graph, is potentially cyclic, and is >only accidently tree-like in particular cases (which are admittedly >comon). For example, I might imagine a program that uses a circularly >linked list as a datastructure. None of the elements is a head or a tail, >just a cycle. I might want to pass one or another member of the list as >an argument to an RPC, and pass the entire cycle by value. SOAP RPC and >its encoding can do this trivially. > >You can probably invent a schema that will match one or another, or even a >bunch of the legal encodings of your graph, but it's unlikely you'd write >a schema that matches even the majority of equivalent representations >(I.e. that represent the same graph.) It only gets worse with more >complex structures. > >XML Schema is just that: it's a schema language for XML. I don't think >it is a good language for describing SOAP Data Model graphs, and I think >the fudging that goes on in WSDL to try to make it so is a mistake (my >opinion, not necessarily IBM's corporate position -- I haven't checked >with our WSDL reps on this lately.) It would be quite reasonable to use >XML Schema to insist on one particular representation of a graph, then >everyone would have to use exactly that form when serializing. > To me, this is very different from what I thought I heard early on -- so different, that it is hard for me to understand the references to XMLSchema in the SOAP encoding, and so different that I cannot imagine that the SOAP encoding is ready for last call without having any real example of how to interoperate via some sort of contract. As the Mozilla implementation of SOAP was being produced, WSDL with XML schema was the only thing seriously talked about to describe the contract. So, we have made it work. We look at the schema, look at the native data, cross our eyes a bit, and output the native data in a form that follows the XML schema following the rules of the SOAP encoding. When it comes to arrays, we look for hints, as was described for WSDL in the schema in the default attribute value. When it comes to cycles, we still haven't found a good way to implement them, so we will not be compliant, but I haven't encountered yet a valuable service that relied on them in SOAP -- not that such may not exist -- so we haven't solved that problem. But we interoperate with every real service I have tried that follows the basic SOAP rules -- not that extensive testing has been done. It doesn't seem too hard to contemplate what WSDL does -- describing the model using XML Schema. If Schema really is not suitable for describing data in the SOAP data model, and cannot be made so by adopting a few extra rules for dealing with cycles and arrays, then I think this is a very significant problem with the spec as it exists today. How can there even claim to be interoperating implementations if no language exists to describe the contract? Do we need to adopt RDF instead as the primary encoding? Is it possible to define a subset -- say without cycles -- and say that XMLSchema is suitable for that subset? Ray Whitmer rayw@netscape.com
Received on Monday, 8 April 2002 13:30:34 UTC