[
Lists Home |
Date Index |
Thread Index
]
Anne Thomas Manes wrote:
> If you go with the reasoning that elements with no namespace are
> elements in the namespace with no name, then the following two
> elements would be the same kind of element, when obviously they are
> not:
>
> <a>pi</a>
>
> <a>
> <b>3.14156</b>
> </a>
No, I think they are the same kind of element; the element that has the
content model (if there's a DTD) something like this:
<!ELEMENT a (#PCDATA | b)>
Anything designed to process arbitrary a elements had better be ready to
handle both cases. This isn't uncommon. Many elements in many XML
vocabularies can have different content models in different places.
The tricky bit here that I've struggled with while writing this is what
does it mean for two elements to be the same. In this context, that
we're talking about the element "kind" rather than the element instance.
Otherwise the first element <a>1</a> is not the same as the second
element <a>1</a>. At the same time, I want to avoid the word "type"
which has just way too many connotations. However, I don't really want
to say that the names are the same either, since that doesn't really
reflect how namespaces are used in practice.
I'm still not perfectly happy with my language here. Improvements are
solicited and appreciated. The difficulty we have explaining this stuff
clearly and correctly I think reflects some underlying problems in the
whole namespace model.
Maybe this isn't even a namespace problem. Ignoring namespaces and going
back to XML 1.0, can we say that two FOO elements share some part of
their nature? Maybe not, Clearly an HTML table is not a furniture table,
but isn't this exactly the problem namespaces were supposed to solve?
i.e. a {http://www.w3.org/199/xhtml}table is always one kind of thing,
never some other kind of thing?
--
Elliotte Rusty Harold elharo@metalab.unc.edu
XML in a Nutshell 3rd Edition Just Published!
http://www.cafeconleche.org/books/xian3/
http://www.amazon.com/exec/obidos/ISBN=0596007647/cafeaulaitA/ref=nosim
|