- From: Michael Kay <mike@saxonica.com>
- Date: Wed, 13 Feb 2013 13:09:49 +0000
- To: xmlschema-dev@w3.org
On 13/02/2013 08:10, George Cristian Bina wrote: > Thanks Henry, > > Regarding the lazy component construction my understanding of that was > that during the schema creation when a module is read it may contain > references that cannot be be resolved at that time but they should > still be resolved when all the modules are read. The specification says that all references required for validation must be resolvable. It doesn't say which references are required for validation. I think the designers of the language had in mind that the rules should be similar to those for DTDs (or for SGML), where absent references are allowed in content models provided the element in question is not encountered. But the rules in XSD are much more complicated; for example you can't tell whether "element declarations consistent" is satisified without following all the references, so if a reference is unresolved, you have to assume this constraint is violated. In addition, users really don't want the situation where they use a schema successfully to validate hundreds of instances, and are then told during the next validation episode that the schema is incomplete. So in practice I made the decision that there are so few cases where a schema with dangling references is usable that I don't allow it. This is conformant, because a processor is allowed to use as many references as it chooses during validation, and to fail if any of them is unresolved. Michael Kay
Received on Wednesday, 13 February 2013 13:10:16 UTC