Re: Included <schema>

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