Binary Data in XML

John Cowan cowan at
Wed Sep 30 21:09:46 BST 1998

Peter Murray-Rust wrote:

> <CML:molecule xml:packed="base64" xml:mime="chemical/x-chemdraw">... base64
> encoding of horrid binary file ... </CML:molecule>
> I know that this can also be done using NOTATION but also that - like many
> others - I don't know how to do it and have never seen a NOTATION used in
> XML documents. I therefore support Tim's suggestion of bolting xml:packed
> into the language and suggest xml:mime as a companion.

Here's how.  Insert the following declarations into the DTD
(internal or external as desired):

<!NOTATION chemical-x-chemdraw PUBLIC "-//whoever/whatever">
<!ATTLIST CML:molecule
	xml:mime NOTATION(chemical-x-chemdraw | another | another) #REQUIRED>

and then just use it as above.  A validating parser will guarantee
that the value of the xml:mime attribute is one of the specified
notations, and it will be possible to retrieve the external
identifier for each notation so that you know what it means.

The nice thing about this is that it just works if you are DTD-blind,
but provides the information that a generalized processor for
notation-governed elements needs to figure out what to do
(e.g. render using a chemical/x-chemdraw renderer).

John Cowan		cowan at
	You tollerday donsk?  N.  You tolkatiff scowegian?  Nn.
	You spigotty anglease?  Nnn.  You phonio saxo?  Nnnn.
		Clear all so!  'Tis a Jute.... (Finnegans Wake 16.5)

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
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