Re: [xml-dev] Declaring the XML namespace

At 11:08 AM +0200 7/12/02, james anderson wrote:

>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 ''>
>     ]>
>
>    <doc></doc>
>
>or the equivalent in the more-namespace-aware document definition encodings?

Since you've declared that in the internal DTD subset, it will be a 
namespace error if and only if an element of type tick appears in the 
instance document. Here no such element appears in the body of the 
document, so the document is namespace well-formed. This document, 
however, is not:

<!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 ''>
     ]>
<doc><tick /></doc>

Nice corner case, though. Note that all of this is orthogonal to 
whether the document is valid or not.


>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
>    http://www.w3.org/XML/1998/namespace.

It certainly could be clearer. The only reason I'm so certain is that 
this topic has come up before, and the various authors of this and 
other specs have given this interpretation before. The spec text 
alone often needs some decoding based on authors' intent.

>and
>
>   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.


The latter sentence should probably not be in namespaces 1.1, but 
that's a separate issue.
-- 

+-----------------------+------------------------+-------------------+
| Elliotte Rusty Harold | elharo@metalab.unc.edu | Writer/Programmer |
+-----------------------+------------------------+-------------------+
|          XML in a  Nutshell, 2nd Edition (O'Reilly, 2002)          |
|              http://www.cafeconleche.org/books/xian2/              |
|  http://www.amazon.com/exec/obidos/ISBN%3D0596002920/cafeaulaitA/  |
+----------------------------------+---------------------------------+
|  Read Cafe au Lait for Java News:  http://www.cafeaulait.org/      |
|  Read Cafe con Leche for XML News: http://www.cafeconleche.org/    |
+----------------------------------+---------------------------------+

Received on Friday, 12 July 2002 09:42:23 UTC