On 5/30/06, Geoffrey Winn <[EMAIL PROTECTED]> wrote:
Simon, On 26/05/06, Simon Laws <[EMAIL PROTECTED]> wrote: > > A long time ago I posted about doing some interoperability testing. I've > got > back to this now and I've put some ideas about how we do this on the wiki, > here (http://wiki.apache.org/ws/Tuscany/Interop). ... So if we lay these tests out in order I would expect to do the following in > Java, C++ and PHP where the feature is supported > > 1.1. Read an XML file and write it out again > > 1.2. Read an XML file and write out an XSD file > > 2.1 Read and write Records from a database > > 3.1 Read XML and write Axiom > > 3.2 Read Axiom and write XML I see the sense in 1.1 However, I'm not so sure about 1.2. Presumably that is saying that we read an XML instance and in the process of creating an SDO for it we have also defined a variety of types, properties and so on to describe it. Then we use that information to generate an XSD. This is pretty much the same as inspecting an XML instance document and then writing an XSD for it. It isn't obvious to me that different implementations would necessarily generate the same XSD in these cases. I'm willing to be convinced; I'm just not sure that it's fair to expect that different implementations will generate the same XSD when what they were doing was populating a model with whatever they needed to read an XML instance. Regards Geoff.
Yes, you have spotted a slip up here I think. This is an interesting test of schema free XML loading but I'm told this doesn't work in PHP so probably doesn't in C++. The spec implies that you can do this in Java although I have to admit to not having tried it yet. As its difficult to test interoperability with one implementation we could replace "1.2. Read an XML file and write out an XSD file" with "1.2. Generate metadata statically in code and write out an XSD file" and test the case where the type model comes from elsewhere prior to XSD generation. What we are testing here is each implementations' type model to XSD mapping to see if they are compatible.