Statement from HTML WG

David Brownell david-b at
Tue Sep 21 00:24:23 BST 1999

> From: Steven Pemberton <steven at>
> Subject: XHTML: One Namespace or Three?
> Executive summary: Namespaces are used by software to distinguish what
> is contained in a piece of markup. ...

Actually, that's the role assigned to DTDs.  "What is contained" is a
content model style constraint.  Namespaces are only used to disambiguate
the markup itself, as you said later -- "table" as in XHTML versus a kind
of furniture, "frame" as in XHTML versus door (or window...) construction.

> What are Namespaces
> ... according to the Namespace recommendation, Namespaces are used to
> disambiguate different vocabularies, without saying where those
> vocabularies come from. ...

Which says nothing about placing constraints on how those vocabularies
are used.  DTDs address such constraints, and they aren't synonymous
with definitions of vocabularies.

This is shown by the HTML spec, which talks about "one language" and yet
has "three DTDs" used to provide three different kinds of constraint
about how its vocabulary is used.  (Also by common usage -- "HTML" does
not generally care about such nuances.)

> History
> After publishing the draft we received two comments (though without
> technical argumentation) saying that there should only be one
> namespace.

Odd -- I knew of at least three, each with technical argumentation.

Those were highlighted on the plenary (back when I had regular access
to that sort of information).  And I seem to recall that they were
not the only comments to that effect, but only the ones which seemed
most clearly expressed.

> Using Namespaces
> ... in a fragment such as the following:
>               <notes>
>                 <p xmlns=''>
>                     This is also available
>                         <a href="">online</a>.
>                 </p>
>               </notes>
> the namespace is the only mechanism available for identifying the
> vocabulary intended.

True.  And DTDs are the only mechanism available for specifying any
content model restrictions that may be desired.

It has been made abundantly clear that developers expect schema mechanisms
to support content model restrictions when combining vocabularies ... and
to do so without depending on specific prefixes.  Likewise, it is clear that
until such schema mechanisms exist, people WILL use DTDs for at least some
cases of vocabulary combination, by hardwiring prefixes.  (Not all -- "some",
hence the desire to see progress on schemas.)

The point has also been raised that in the example above, the "p" element
would often need to contain inline elements from specialized vocabularies.

Using a namespace to identify a content model (instead of a separate DTD
or schema) effectively precludes vocabulary re-use through combination,
which is quite contrary to the goals I've understood for XML, namespaces,
or related technologies.

- Dave

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
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