Lists Home |
Date Index |
Elliotte Rusty Harold wrote:
> At 4:28 PM +0200 7/11/02, james anderson wrote:
> >? (parse-document "<doc xmlns:xml='http://www.w3.org/XML/0000/namespace'/>")
> >#<DOC-NODE <no uri> #x8C88DFE>
> Incorrect. This is simply illegal in a namespace well-formed
> document. If cl-xml accepts that, then cl-xml is wrong and should be
> >but i suppose opinions may differ.
> They may indeed. However, some opinions are right and some are wrong. :-)
ok, how about an opinon on
<!DOCTYPE doc [
<!ELEMENT doc EMPTY >
<!ELEMENT tick ANY>
<!ATTLIST tick xmlns:xml CDATA 'http://www.w3.org/XML/0000/namespace'>
<!ELEMENT tock ANY>
<!ATTLIST tock xmlns:xml CDATA ''>
or the equivalent in the more-namespace-aware document definition encodings?
> >Is there actually anything in the spec which precludes rebinding "xml"?
> Yes. "The prefix xml is by definition bound to the namespace name
> http://www.w3.org/XML/1998/namespace"; The words "by definition"
> clearly indicate that documents can't change this. It does not say,
> "The prefix xml is initially bound to the namespace name
> http://www.w3.org/XML/1998/namespace";. Past discussions with the
> authors of the Namespaces spec also clearly indicate that this was
> [their] intent.
Noted. I had considered "unbound" and "immutable" to be orthogonal errors.
Perhaps this intent would be more clearly expressed if the respective passages
in 1.1, the topical NSC notwithstanding, were to read
[Definition:] If the attribute name matches PrefixedAttName, then
the NCName gives the namespace prefix, used to associate element
and attribute names with the namespace name in the attribute value
in the scope of the element to which the declaration is attached.
In such declarations, the attribute value may be an empty string,
the namespace prefix may not be "xmlns", and if the namespace
prefix is "xml", then the namespace name must be
The prefix xml is by definition bound immutably to the namespace
name http://www.w3.org/XML/1998/namespace. The prefix xmlns is
used only for namespace bindings and may not itself be bound to
any namespace name.