> These documents are supposed to be processed in
> part by software written for IBTWSH documents, so Sral adds to his DTD
> the following declaration:
>
> <!ATTLIST IBTWSH-root-element
> xmlns:IBTWSH "http://www.purl.org/foo" #FIXED>
>
> so that all IBTWSH elements will use the IBTWSH namespace by default.
The problem is all the worse in that IBTWSH doesn't have a root
element, being meant solely for embedding (there are no IBTWSH
*documents* as such; HTML serves that function). I know you just
chose IBTWSH as a well-known example, but the problem's bigger
than you thought.
> Then, somewhere in one of his documents, Sral writes:
>
> <IBTWSH:P>Huba!</IBTWSH:P>
>
> This is where the problems begin. (Well, they really started above,
> but it's easier to see here.) Srals validating parser can now do one
> of three things if it supports namespaces:
>
> a) complain that the IBTWSH:P element has not been declared. (Which
> is literally true: it was declared as P.)
Seems to me that it *must* do this in the name of SGML backward
compatibility. The developers of namespaces don't seem to give
a red rubber rat's **** about DTD-based validation.
> In other words: as far as I can understand either DTDs must use the
> full namespace names in all declarations, as in
>
> <!ELEMENT http://www.purl.org/foo:P ...>
>
> (which is truly unreadable, and also not well-formed) or there must be
> some means by which a DTD can declare its namespace, which will of
> course be difficult since one may want to mix namespaces.
DTDs don't *have* namespaces under the new draft. DTDs understand
prefixes only, without a clue as to what the prefixes might mean.
-- 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)