nxml-mode: DTDs
7 DTDs
******
nXML mode is designed to support the creation of standalone XML
documents that do not depend on a DTD. Although it is common practice
to insert a DOCTYPE declaration referencing an external DTD, this has
undesirable side-effects. It means that the document is no longer
self-contained. It also means that different XML parsers may interpret
the document in different ways, since the XML Recommendation does not
require XML parsers to read the DTD. With DTDs, it was impractical to
get validation without using an external DTD or reference to an
parameter entity. With RELAX NG and other schema languages, you can
simultaneously get the benefits of validation and standalone XML
documents. Therefore, I recommend that you do not reference an external
DOCTYPE in your XML documents.
One problem is entities for characters. Typically, as well as
providing validation, DTDs also provide a set of character entities for
documents to use. Schemas cannot provide this functionality, because
schema validation happens after XML parsing. The recommended solution
is to either use the Unicode characters directly, or, if this is
impractical, use character references. nXML mode supports this by
providing commands for entering characters and character references
using the Unicode names, and can display the glyph corresponding to a
character reference.