Schema 1.0 part 1 3.15.2 forgets "redefine" (and "top-level" undefined)

In the schema document at http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/,
section 3.15.2 says:

     Aside from <include> and <import>, which do not correspond
     directly to any schema component at all, each of the element
     information items which may appear in the content of <schema>
     corresponds to a schema component, and all except <annotation>
     are named.  The sections below present each such item in turn,
     setting out the components to which it may correspond.

Shouldn't <redefine> be listed along with <include> and <import> at the
beginning of the first sentence?


It seems that when the redefine feature was added, it wasn't fully
applied to the specification.  Section 3.15.2.2 says:

    A fragment identifier of the form
    #xpointer(xs:schema/xs:element[@name="person"]) will uniquely
    identify the representation of a top-level element declaration
    with name person, ...

That XPointer expression isn't correct, is it?  That fragment identifier
won't identify the representation of a top-level* element declaration if
that representation (an element element) is under a redefine element.

(Also, does that example properly account for the possibility of having
(the representations of) multiple schema documents in the XML document?)


*Is such a declaration a top-level declaration or not?

It seems that the schema specification never defines what it means by
"top level" or "top-level."   Does it refer the structure between
schema components or the structure (the tree) of element information
items?

Section 3.2.2 refers to "the top level of a schema _document_"
[emphasis added], but then section 3.6.2 refers to "the top level of
a _schema_" [emphasis added].

Clearly, the schema specification refers to both, so any "undisambigu-
ated" reference is ... well ... ambiguous.  (The reader can't assume
that the specification refers to only one kind of structure with a top
level.)

(The co-existence of those two references to different types "top-
levelness" is not itself a problem, because they include "of a schema"
or "of a schema document" to remove any ambiguity.)

It appears that the schema specification intends that the terms "top-
level" and "top level" refer to the structure between components.

Since within XML Schema the term "top-level" seems to be synonymous
with "global" (or "named" or "not anonymous" or "non-local"), perhaps
one of those terms should be used instead.

At a minimum, the glossary should define what "top-level" means.

If "top-level" means top-level in the element information item sense,
then many references to "top-level" need to augmented with references
to a term that includes declaration/definition components defined under
redefine elements.  (E.g., section 3.3.2 says:

    For complete declarations, top-level or local, ...

If "top-level" does not apply to an element element under a redefine
element under a schema element, then that "or" phrase needs a third
adjective to include such element elements.)



Daniel

Received on Monday, 7 May 2007 22:31:14 UTC