Namespace Comments (and dtd encoding)

Ron Bourret rbourret at
Wed Aug 5 11:58:09 BST 1998

> The point is - I think - that the DTD parser is completely dumb. It doesn't
> care about colons (except to recognise that they are legal). I assume -
> though I haven't tried it - that this DTD will validate the example with
> any of the current parsers.

My first reaction was that it was dumb, too, but at some point, it's got to get 
smart.  That is, it needs to resolve the prefixes in the DTD to determine what 
elements are being defined.  As far as I can see, the new spec does not define 
when this occurs.  The only relevant information I can find is that it 
specifically omits the 'Prefix Declared' constraint from the DTD productions 

In the worst possible case, you would have to resolve the DTD prefixes every 
time there is a change in namespace declarations.  Not only is this extremely 
ugly, it would lead to abuse such as the following, where the second A is in a 
different namespace than the first A and both A's are declared with a single 
element declaration:

<!ELEMENT foo:A (B)>
<!ELEMENT B (#PCDATA, foo:A)*>
<foo:A xmlns:foo="[first URI]">
   <B xmlns:foo="[second URI]">

A more reasonable solution might be a namespace constraint that says that all 
DTD prefixes must be declared on the root element.  However, without thinking 
this through too carefully, I suspect you lose a good deal of flexibility.

Could someone in the know comment on how this is supposed to be solved, or point 
us to the relevant portion of the spec in case we're missing something obvious?  

-- Ron Bourret

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

More information about the Xml-dev mailing list