intercepting internal entities?

David Megginson david at
Tue Apr 27 22:21:34 BST 1999

DuCharme, Robert writes:

 > Here's my problem: let's say I have a document with ä in it
 > somewhere and auml properly declared as an internal entity in the
 > DTD along with the other 589 internal entities shown at
 > My application
 > will write to one file headed for a Windows app (in which case I
 > want the ä mapped to byte 228), a Mac document (where I want
 > it mapped to byte 138) a DOS one (byte 132), a web page ("ä")
 > and a Bloomberg terminal ("a").

This is a problem that came up during my discussion with Rick Jelliffe 
(at, I think it was Rick) about the utility of maintaining XML and
SGML as two separate standards.  Rick rightly pointed out that this is 
one area where SGML can make life a little harder.

Actually, for this example, XML is sufficient -- since all of the
characters are represented in Unicode, simply declare the following:

  <!ENTITY auml "&#228;">

Your processing software will receive the character in UTF-16 if
you're using Java (or Python?) and in UTF-8 if you're using Perl.
When you write your output, simple re-encode the file into the
appropriate encoding: Java and Perl both have support for this, and
Python probably does as well.

The area where SDATA actually does give an advantage is when you're
using characters that are not part of Unicode: my favourite example is 
differentiating six different graphs of the grapheme /a/ in a
tenth-century English manuscript.  In this case, you have to use PUA
Unicode characters.

All the best,


David Megginson                 david at

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list