Subject:Newbie looking for help with schema generated from XML doc, possible bug? Author:Julie Tittler Date:26 Apr 2005 10:20 AM
Version: Stylus Studio 6 build 287j - 30 day eval.
What I'm Trying To Do:
I have a client-server .NET app which is building custom objects and is using the .NET XML tools to serialize the objects out to an XML file. I'm trying to use your app to generate a schema from this XML source. It seems to work, but when I go to validate the document against the generated schema it fails. Here are the errors I get:
xsi.xsd:4,47: The {target namespace} of 'type' must not match 'http://www.w3.org/2001/XMLSchema-instance'.
aar_2.xsd:66,37: Could not find top level attribute: xsi:type
attack2.xml:9,37: Unresolved type 'EventHeader' found in xsi:type handling
etc, etc, etc...
If this is a bug, is there an obvious work around. I'm new to XMLSchemas. I'm attaching the source XML and the schema doc to this message.
Thank you in advance,
Julie
test(7).xml xml from which schema is being generated
Subject:Newbie looking for help with schema generated from XML doc, possible bug? Author:Ivan Pedruzzi Date:26 Apr 2005 10:47 PM
Hi Julie,
You are facing a challenge because of a unfortunate design choose: xsi:type.
xsi:type instructs the schema processor which type to use for validation.
A schema processor before validates a document performs a pre-step to create what is called PSVI
(Pre Schema Validation Infoset), during this task among other operations, the xsi:type attributes are removed.
The use of xsi:type also assume that a schema exist somewhere;
unfortunately it breaks the isolation between XML document instance and XML Schema.
My suggestion is to use an identity transformation to remove xsi:type (as below), then use the transformation result to infer the schema. The new created document validated against the inferred schema, but the original document (test.xml) still doesn't validate because the xsi:type attributes reference some types defined somewhere else.
Subject:Newbie looking for help with schema generated from XML doc, possible bug? Author:Julie Tittler Date:27 Apr 2005 08:35 AM
Thanks. I'll give it a try and see what happens. Just as an FYI...the XML is auto-generated by .NET's XML object serialization object. I give it a class, and it turns said standard OOP class into XML. It's a great way to save object state in between sessions. So, it's no design on my part. But it's good to know what the problem is. I can then write code to replace Microsoft's unfortunate design choice. :)