Namespaces: silly question

John Cowan cowan at locke.ccil.org
Fri Aug 7 20:44:34 BST 1998


Posted for Murray Altheim, who is having trouble posting to XML-Dev.
My comments appear in double square brackets.

John Cowan <cowan at locke.ccil.org> writes:
[...]
> 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.

I'm not sure what you mean. There is no way to declare a root element
in a DTD. Paraphrasing Eliot Kimber, a DTD is nothing more than a 
collection of markup declarations. Nothing in a DTD actually describes
a document, merely structures that might make up a document. The root
element can be almost any element (RefEntry rather than Book in DocBook,
forinstance).

[[My reply:  Right.  However, IBTWSH is *designed* to be used in this
way, embedded in other documents with larger DTDs.]]

[...]
> 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.

I don't think that's entirely true, given the long, heated arguments
over the issue. It seems merely that those that wanted namespaces
regardless of DTDs won out over those that thought full compatibility
with XML 1.0 (including PIs and DTDs) was more important. I find that 
unfortunate, but I guess we'll all have to live with it now or find 
somewhere else to look for standardization.

In all of my testing, I have found namespaces and DTDs to be inherently
incompatible in all but the most constrained (and manually modified)
instances. The whole point of namespaces was to allow combination of 
existing namespaces. If one has to modify all the element and attribute
names in a DTD, the justification for namespaces evaporates: one might 
as well change HTML's 'pre' to 'HTML_pre' than bother to use 'HTML:pre'.

[[My reply: Still worse if one must modify the instance itself, removing
all non-unique prefixes, in order to achieve validation at all!]]

And the idea of manually modifying the 7,623 lines of DocBook (much less 
TEI) is perfectly ludicrous. In all but trivial cases this must be a 
machine process, but given that element type names and attribute names 
show up undifferentiated in PEs, I don't know that this is possible.

[[My reply: Remove PEs first by a preprocessor, I guess.]]

Also,
the namespace declaration must occur before the markup declaration it is 
to be applied to is parsed, but unfortunately the current draft's namespace 
'declaration' doesn't occur until after the prolog, when the namespace 
boundaries of the various markup declarations have already been lost. IOW,
if we assume a mix of several unqualified DTDs as separate entities, we 
must declare the prefix to be applied to each entity before they are mixed
together. 
 
Murray

...........................................................................
Murray Altheim, SGML Grease Monkey         <mailto:altheim&#64;eng.sun.com>
Member of Technical Staff, Tools Development & Support
Sun Microsystems, 901 San Antonio Rd., UMPK17-102, Palo Alto, CA 94303-4900
         "Give a monkey the tools and he'll build a typewriter."

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list