- From: Michael Kay <mike@saxonica.com>
- Date: Wed, 21 Mar 2007 23:10:03 -0000
- To: <noah_mendelsohn@us.ibm.com>
- Cc: "'Pete Cordell'" <petexmldev@tech-know-ware.com>, <xmlschema-dev@w3.org>
> > You may well have some sort of cache as an implementation > strategy, but it's not an abstraction that appears in the > schema language. By and large, the spec simply says that the schema is a collection of schema components gathered from some implementation-defined source. > There are already a number of constructs > that have the same closed world feel. That's true: for example lax validation, and redefines. They're all a bit problematic, because you can't inspect a schema document and an instance and know whether the instance is valid without knowing somethng else about the validation environment. However, I don't think there are currently any cases where an element E that conforms to a declaration D causes the instance to be valid when D is absent from the schema but invalid when it is present. Intuitively, this seems a little weird. It's likely to be particularly problematic, I think, in an XQuery scenario where you are typically dealing with a pool of long-lived schema information rather than with one validation episode at a time. > > While not written specifically to deal with these "action at > a distance" > mechanisms, this text makes pretty clear that the definition > of assessment is indeed of a completely assembled schema in > which all components are known. Anything more incremental is > a processor implementation strategy that must not have > externally visible characteristics that conflict with the > normative rule. Generally, the way Saxon enforces this rule is to freeze components in the cache once they have been used: for example, once a type has been used for validation then it can't be redefined. So it sounds as if the implementation strategy for the not-in-schema wildcard will be "once you have used the fact that element E is not in the schema, E must not be added to the schema". But I may also have to think about providing a mechanism to remove components from the schema since their mere presence can now cause problems. Michael Kay http://www.saxonica.com/
Received on Wednesday, 21 March 2007 23:10:18 UTC