[
Lists Home |
Date Index |
Thread Index
]
- From: Richard Tobin <richard@cogsci.ed.ac.uk>
- To: xml-dev@lists.xml.org
- Date: Tue, 08 Aug 2000 15:41:18 +0100 (BST)
> I don't think it lets you go as
> far as leaving out the colon and having no prefix, though that could
> probably be accomplished with an additional INCLUDE/IGNORE section for each
> declaration...
Fortunately you don't have to go that far. Instead, define two PEs:
<!ENTITY % nsprefix "foo:">
<!ENTITY % nssuffix ":foo">
and use the first for constructing element and attribute names and the
second for constructing namespace declaration attributes:
<!ENTITY % nsdecl "xmlns%nssuffix;">
<!ENTITY % elem "%nsprefix;elem">
<!ELEMENT %elem; ANY>
<!ATTLIST %elem; %nsdecl; CDATA #FIXED "my://namespace">
Then if you have:
<!ENTITY % nsprefix "">
<!ENTITY % nssuffix "">
you will get unprefixed names, and default namespace declarations.
Since entity declarations in the internal subset take precedence,
you can put the prefixless versions in your external DTD and let
the user override them if desired. The XML Schemas DTD does this
(using the memorable names "p" and "s").
-- Richard
|