- From: Craig Salter <csalter@ca.ibm.com>
- Date: Fri, 10 Dec 2004 11:13:10 -0500
- To: noah_mendelsohn@us.ibm.com
- Cc: xmlschema-dev@w3.org
- Message-ID: <OFF78D6C68.B8F031B5-ON85256F66.00587B3A-85256F66.0059070A@ca.ibm.com>
Noah, Thanks for that detailed clarification. I agree completely. I was definitely using the term 'bug' loosely. Techinically Xerces 2.0.0 is correct in complaining about the schema for schema. In practise however many users do attempt to reference the schema for schema and the behaviour is perceived as a bug. As you suggest, later versions of Xerces have infact updated their processing of the schema for schema to 'skip over' the built in data types and tolerate the non-conformant schema for schema. thanks Craig Craig Salter Rational Studio XML Web Services Internal Mail: D3/RY6/8200 /MKM Phone: (905) 413-3918 TL: 969-3918 FAX: (905) 413-4920 Internet: csalter@ca.ibm.com Notes: Craig Salter/Toronto/IBM@IBMCA noah_mendelsohn@us.ibm.com 12/10/2004 09:42 AM To Craig Salter/Toronto/IBM@IBMCA cc xmlschema-dev@w3.org Subject Re: Using non-native attributes Craig Salter writes: >> The XML validator in WSAD is based on Xerces 2.0.0 and hence we inherit one of their bugs related to process schema for schema. Actually, I think it's a bit more subtle than that. The schema recommendation makes clear that declarations for the built in simple types are present by definition in every schema, without reference to the schema for schemas [1]: "Similarly, simple type definitions for all the built-in derived datatypes (see the Derived Datatypes section of [XML Schemas: Datatypes]) are present by definition in every schema, with properties as specified in [XML Schemas: Datatypes] and as represented in XML in Schema for Schemas (normative) (§A)." In fact, the builtin primitives are conjured up "magically". Just as you cannot define your own java.lang.string in Java, you cannot define your own xsd:string in schema. For better or worse, the schema for schemas contains place holder definitions for these built in types, and therefore the schema for schemas as published is not a legal XML schema document! So, the original versions of Xerces were correct in rejecting it. As it turns out, of course, there are good uses for being able to use the schema for schemas to get at the other definitions it provides. My impression is that Xerces, like some other processors, was updated to run in a mode where it ignored the definitions of the built in types in the specific case where they came from the schema for schemas, making it useful for import after all. So, I think the bottom line is that WSAD did not "inherit a bug". Rather, it relied at first on a conforming version of Xerces that made it impossible to do what users often want to do. Later versions picked up a version of Xerces that can run in a looser albeit non-conforming mode, enabling this scenario to work after all. FWIW: I think we in the schema WG blew it on making the schema for schemas non-conforming. I think we should have left out the definitions of the builtins, resulting in a schema document that was indeed conforming and therefore usable in validations. Noah [1] http://www.w3.org/TR/xmlschema-1/#d0e16395 -------------------------------------- Noah Mendelsohn IBM Corporation One Rogers Street Cambridge, MA 02142 1-617-693-4036 -------------------------------------- Craig Salter <csalter@ca.ibm.com> Sent by: xmlschema-dev-request@w3.org 12/09/2004 04:50 PM To: xmlschema-dev@w3.org cc: (bcc: Noah Mendelsohn/Cambridge/IBM) Subject: Re: Using non-native attributes Hi David, It sounds like Priscilla has offered the same advice that I would concerning the addition of the schema location and the correct way to set the "http://apache.org/xml/properties/schema/external-schemaLocation ",property in your Java code (the value of the propery must be a whitespace separated pair ... e.g. "namespace location"). Even with this change you'll notice that older version of the Websphere Studio product (e.g. WSAD 512) will complain that the reference XMLSchema.xsd is not valid. The XML validator in WSAD is based on Xerces 2.0.0 and hence we inherit one of their bugs related to process schema for schema. This bug is fixed in the most recent version of our product (now name Rational Application Developer) by virtue of updating to a newer version of xerces. BTW, schema editing and validating capability will soon be freely available in the open source Web Tools Project ( http://www.eclipse.org/webtools/index.html). We're eagerly seeking additional contributors to the project. thanks Craig Craig Salter Rational Studio XML Web Services Internal Mail: D3/RY6/8200 /MKM Phone: (905) 413-3918 TL: 969-3918 FAX: (905) 413-4920 Internet: csalter@ca.ibm.com Notes: Craig Salter/Toronto/IBM@IBMCA
Received on Friday, 10 December 2004 16:13:46 UTC