[
Lists Home |
Date Index |
Thread Index
]
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
|