Lists Home |
Date Index |
james anderson wrote:
> > I find this abusive and no more correct than renaming x and y as Fred
> > and Ginger.
> Taken to the extreme, this characterisation implies that all element
> sets should include a fixed namespace declaration in their
> "top-level" element(s). In which case the NAMESPACE notation is superfluous.
I finally see what you're getting at.
You feel that xmlns "attributes" must be in the DTD anyway, so the
NAMESPACE notation is redundant. Since the "validation DTD" will define
validation in different terms (two part names v. lexical names, data
types, etc.) than XML 1.0, there is a better solution: treat the xmlns
thingies as namespace declarations, not attributes. This means you don't
need to declare them in the DTD and can use the NAMESPACE notation,
which is much cleaner and easier to use/understand.
> > They were not in any namespace, so when used in a compound
> > document, they should continue not to be in any namespace.
> Does the "default" namespace mean something different in a document
> definition than it means in the document entity?
I don't believe so. It identifies the namespace (if any) to be used with
> The notion of "not in any namespace" is bogus.
Technically, it isn't. To quote from the namespaces spec:
"If the URI reference in a default namespace declaration is empty, then
unprefixed elements in the scope of the declaration are not considered
to be in any namespace."
However, I'm happy to agree that it is equivalent to having a namespace
with a null URI.
> Unprefixed qualified
> names which appear outside of the scope of a default
> namespace declaration are identified with universal names in a
> distinguished "null" namespace. For which there is an implicit
Again, that's technically an implementation detail. Nothing in the
namespaces spec requires it.
> If there were not true, such names would be incommensuarable and
> validation would not be possible.
I'm not sure what "incommensurable" means, but I don't follow why
validation is not possible. You simply have two sets of validation rules
-- one for validating names in namespaces and the other for validating
names not in namespaces. You can, of course, join these into a single
code line by using a "null" namespace for the latter but, as I said,
that's an implementation detail.
> How is one to use a declaration with indefinite scope to emulate the
> lexical scope of attribute-based declarations within the
> document entity?
One doesn't. Why is this a requirement? (Note that the proposed
validation DTD is no different from other schema languages in this
respect. Neither is intended to perform lexical validation of QNames.)