RE: Cross-references among included schema documents

OK.

So you are telling me that the statement in 3.15.3, "For a ˇQNameˇ to
resolve to a schema component of a specified kind all of the following must
be true:" is wrong? The first condition below that statement reads: "That
component is a member of the value of the appropriate property of the
schema...". Is this condition completely wrong, should I ignore it totally,
or does it have some residual meaning? 

Does this also mean, for example, that if P imports Q and Q imports R, that
a QName in P can resolve to a component defined in R? And perhaps that a
QName in R can resolve to a component defined in P? Are there any
restrictions at all?

This would mean that if I implement a schema cache in which R is cached, the
names in R can resolve differently depending on who imports it.

The problem I have with the para from 4.2.1 is the phrase "during schema
construction". Is there any point at which I can decide schema construction
is complete, or is it not possible to report unresolved references in a
schema until you actually see an xsi:schemaLocation attribute in an instance
document, at which point you know the full set of schema components
available? This would mean that none of the more complex schema consistency
constraints can be checked in advance, which would surely be a bad thing.

This now leaves me the problem of deciding whether to implement what the
spec says, or what its authors say that it should have said. (I'm
implementing 1.0, not 1.1!)

Michael Kay
http://www.saxonica.com/

 

> -----Original Message-----
> From: Henry S. Thompson [mailto:ht@inf.ed.ac.uk] 
> Sent: 27 September 2004 08:55
> To: Michael Kay
> Cc: xmlschema-dev@w3.org
> Subject: Re: Cross-references among included schema documents
> 
> You've put your finger on a weakness in the REC -- the prevasive
> impact of the necessity of allowing for late binding was imperfectly
> realised in the prose.  The bit you quote from 4.2.1 [1]:
> 
>   "As discussed in Missing Sub-components (§5.3) [2], ˇQNameˇs in XML
>   representations may fail to ˇresolveˇ, rendering components
>   incomplete and unusable because of missing subcomponents. During
>   schema construction, implementations must retain ˇQNameˇ values for
>   such references, in case an appropriately-named component becomes
>   available to discharge the reference by the time it is actually
>   needed."
> 
> is meant to have a universal impact.  So, somewhat informally, I'd say
> that in your example the inclusion of B into A results in a schema,
> some of whose references are unresolved.  Once C is integrated, we get
> an enlarged schema, and resolution becomes possible.
> 
> The XML Schema WG is at work to make this cleaner, clearer and more
> systematic in Schema 1.1
> 
> ht
> 
> [1] 
> http://www.w3.org/TR/2004/PER-xmlschema-1-20040318/#compound-schema
> [2] 
> http://www.w3.org/TR/2004/PER-xmlschema-1-20040318/#conformanc
> e-missing
> -- 
>  Henry S. Thompson, HCRC Language Technology Group, 
> University of Edinburgh
>                      Half-time member of W3C Team
>     2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 
> 131 650-4440
>             Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
>                    URL: http://www.ltg.ed.ac.uk/~ht/
> [mail really from me _always_ has this .sig -- mail without 
> it is forged spam]
> 

Received on Monday, 27 September 2004 09:04:13 UTC