[Home] [By Thread] [By Date] [Recent Entries]


There are a lot of ideas popping up for making DTDs namespace
aware/compatabile.  I had another thought though that des involve breakage:
What if you could label the namespace of an entity? Then, similar to XML
Schema and other schema languages you could label the "targetNamespace" of
an entity:

<?xml version="1.1"?>
<!DOCUMENT root NAMESPACE "http://www.example.org/" [
  <!ELEMENT root EMPTY>
]>
<prefix:root xmlns:prefix="http://www.example.org/"/>

Here I have defined the namespace for the DTD/document entity in the
Document Type Declaration. Obviously prefix information in this idea is
syntax sugar. This only allows the declaration of a single namespace within
a DTD-- however <claim kind="shaky">most documents which use multiple
namespaces have a DTD comprised of multiple sources-- usually using
parameter entities.</claim> Therefore, if you can label the namespace of a
parameter entity then you can effectively do an import of items declared in
another namespace.

So the idea requires two changes to DTD syntax (well-formedness): ability to
define namespaces in the DTDeclaration and in a PE declaration. However
validation based on this model significantly changes. The biggest change is
neding to track what namespace an element or attribute was declared in.

Just an idea...

Jeff Rafter



Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member