OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: Does DTD validation work with namespaces?

[ 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


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS