> No, the processing isn't that tricky if you think of these as layered
> protocols:
The trouble arises in this case:
<foo:thing>This thing belongs to URI A</foo:thing>
...
<foo:thing>This thing belongs to URI B</foo:thing>
where the same prefix is meant to map to more than one URI in
the course of the document. The DTD can't supply "xmlns:foo"
default attribute values for both foo:a elements, because to
a DTD they are the same element type.
> That said, I still really HATE the new declaration namespace syntax
> and the scoping/defaulting, but for reasons other than the problem of
> DTD validation: the whole thing reminds me too much of my first early
> experiences with BASIC, assembly language, etc., when people were
> writing giant, monolithic programs to avoid the supposed overhead of
> function calls. Today, some people want to build giant monolithic XML
> documents to avoid the supposed overhead of multiple HTTP fetches.
I can't agree with you. The utility of namespaces is not so much
to create merged documents, but to create documents representing
merged designs: in particular, namespaces allow documents to
"mix in" existing element semantics as and where needed.
The alternative is to invent your own elements and "just know"
(namely, encode in programs) what their semantics are.
-- John Cowan http://www.ccil.org/~cowan cowan@ccil.org You tollerday donsk? N. You tolkatiff scowegian? Nn. You spigotty anglease? Nnn. You phonio saxo? Nnnn. Clear all so! 'Tis a Jute.... (Finnegans Wake 16.5)