[yelp] yelp-docbook-document: Provide named entities without docbook-dtds



commit 7550685c356eb3701abac23accaadec32cb905c9
Author: Shaun McCance <shaunm gnome org>
Date:   Thu Jan 13 22:14:24 2011 -0500

    yelp-docbook-document: Provide named entities without docbook-dtds

 configure.ac                    |    1 +
 data/Makefile.am                |    2 +-
 data/dtd/Makefile.am            |   26 ++++++
 data/dtd/catalog                |   19 +++++
 data/dtd/docbookx.dtd           |   76 ++++++++++++++++++
 data/dtd/isoamsa.ent            |   97 +++++++++++++++++++++++
 data/dtd/isoamsb.ent            |   83 ++++++++++++++++++++
 data/dtd/isoamsc.ent            |   51 ++++++++++++
 data/dtd/isoamsn.ent            |  103 +++++++++++++++++++++++++
 data/dtd/isoamso.ent            |   59 ++++++++++++++
 data/dtd/isoamsr.ent            |  125 ++++++++++++++++++++++++++++++
 data/dtd/isobox.ent             |   81 +++++++++++++++++++
 data/dtd/isocyr1.ent            |  108 ++++++++++++++++++++++++++
 data/dtd/isocyr2.ent            |   67 ++++++++++++++++
 data/dtd/isodia.ent             |   55 +++++++++++++
 data/dtd/isogrk1.ent            |   90 ++++++++++++++++++++++
 data/dtd/isogrk2.ent            |   61 +++++++++++++++
 data/dtd/isogrk3.ent            |   84 ++++++++++++++++++++
 data/dtd/isogrk4.ent            |   84 ++++++++++++++++++++
 data/dtd/isolat1.ent            |  103 +++++++++++++++++++++++++
 data/dtd/isolat2.ent            |  162 +++++++++++++++++++++++++++++++++++++++
 data/dtd/isonum.ent             |  117 ++++++++++++++++++++++++++++
 data/dtd/isopub.ent             |  125 ++++++++++++++++++++++++++++++
 data/dtd/isotech.ent            |  103 +++++++++++++++++++++++++
 libyelp/yelp-docbook-document.c |   15 ++++
 25 files changed, 1896 insertions(+), 1 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 7e2f835..9900164 100644
--- a/configure.ac
+++ b/configure.ac
@@ -207,6 +207,7 @@ stylesheets/man2html.xsl
 stylesheets/toc2html.xsl
 stylesheets/yelp-common.xsl
 data/Makefile
+data/dtd/Makefile
 data/icons/Makefile
 data/icons/hicolor/Makefile
 data/icons/hicolor/16x16/Makefile
diff --git a/data/Makefile.am b/data/Makefile.am
index 50334c4..6947367 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = icons
+SUBDIRS = dtd icons
 
 #This has to be defined, because GSETTINGS_CHECK_RULE adds to it
 MOSTLYCLEANFILES =
diff --git a/data/dtd/Makefile.am b/data/dtd/Makefile.am
new file mode 100644
index 0000000..e37975b
--- /dev/null
+++ b/data/dtd/Makefile.am
@@ -0,0 +1,26 @@
+dtddir=$(datadir)/yelp/dtd
+
+dtd_DATA =		\
+	docbookx.dtd	\
+	isoamsa.ent	\
+	isoamsb.ent	\
+	isoamsc.ent	\
+	isoamsn.ent	\
+	isoamso.ent	\
+	isoamsr.ent	\
+	isobox.ent	\
+	isocyr1.ent	\
+	isocyr2.ent	\
+	isodia.ent	\
+	isogrk1.ent	\
+	isogrk2.ent	\
+	isogrk3.ent	\
+	isogrk4.ent	\
+	isolat1.ent	\
+	isolat2.ent	\
+	isonum.ent	\
+	isopub.ent	\
+	isotech.ent	\
+	catalog
+
+EXTRA_DIST = $(dtd_DATA)
diff --git a/data/dtd/catalog b/data/dtd/catalog
new file mode 100644
index 0000000..407d249
--- /dev/null
+++ b/data/dtd/catalog
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd";>
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
+  <rewriteSystem
+      systemIdStartString="http://www.oasis-open.org/docbook/xml/4.1.2";
+      rewritePrefix="/home/shaunm/Projects/yelp/data/dtd"/>
+  <rewriteSystem
+      systemIdStartString="http://www.oasis-open.org/docbook/xml/4.2";
+      rewritePrefix="/home/shaunm/Projects/yelp/data/dtd"/>
+  <rewriteSystem
+      systemIdStartString="http://www.oasis-open.org/docbook/xml/4.3";
+      rewritePrefix="/home/shaunm/Projects/yelp/data/dtd"/>
+  <rewriteSystem
+      systemIdStartString="http://www.oasis-open.org/docbook/xml/4.4";
+      rewritePrefix="/home/shaunm/Projects/yelp/data/dtd"/>
+  <rewriteSystem
+      systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5";
+      rewritePrefix="/home/shaunm/Projects/yelp/data/dtd"/>
+</catalog>
diff --git a/data/dtd/docbookx.dtd b/data/dtd/docbookx.dtd
new file mode 100644
index 0000000..3ed0a5f
--- /dev/null
+++ b/data/dtd/docbookx.dtd
@@ -0,0 +1,76 @@
+<!ENTITY % ISOamsa PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
+"isoamsa.ent">
+<!ENTITY % ISOamsb PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
+"isoamsb.ent">
+<!ENTITY % ISOamsc PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
+"isoamsc.ent">
+<!ENTITY % ISOamsn PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
+"isoamsn.ent">
+<!ENTITY % ISOamso PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
+"isoamso.ent">
+<!ENTITY % ISOamsr PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
+"isoamsr.ent">
+<!ENTITY % ISObox PUBLIC
+"ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
+"isobox.ent">
+<!ENTITY % ISOcyr1 PUBLIC
+"ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
+"isocyr1.ent">
+<!ENTITY % ISOcyr2 PUBLIC
+"ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
+"isocyr2.ent">
+<!ENTITY % ISOdia PUBLIC
+"ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
+"isodia.ent">
+<!ENTITY % ISOgrk1 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
+"isogrk1.ent">
+<!ENTITY % ISOgrk2 PUBLIC
+"ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
+"isogrk2.ent">
+<!ENTITY % ISOgrk3 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
+"isogrk3.ent">
+<!ENTITY % ISOgrk4 PUBLIC
+"ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
+"isogrk4.ent">
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"isolat1.ent">
+<!ENTITY % ISOlat2 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
+"isolat2.ent">
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"isonum.ent">
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"isopub.ent">
+<!ENTITY % ISOtech PUBLIC
+"ISO 8879:1986//ENTITIES General Technical//EN//XML"
+"isotech.ent">
+%ISOamsa;
+%ISOamsb;
+%ISOamsc;
+%ISOamsn;
+%ISOamso;
+%ISOamsr;
+%ISObox;
+%ISOcyr1;
+%ISOcyr2;
+%ISOdia;
+%ISOgrk1;
+%ISOgrk2;
+%ISOgrk3;
+%ISOgrk4;
+%ISOlat1;
+%ISOlat2;
+%ISOnum;
+%ISOpub;
+%ISOtech;
diff --git a/data/dtd/isoamsa.ent b/data/dtd/isoamsa.ent
new file mode 100644
index 0000000..dac3e62
--- /dev/null
+++ b/data/dtd/isoamsa.ent
@@ -0,0 +1,97 @@
+
+<!--
+     File isoamsa.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isoamsa.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isoamsa.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isoamsa PUBLIC
+         "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isoamsa.ent";
+       >
+       %isoamsa;
+
+-->
+
+<!ENTITY cularr           "&#x021B6;" ><!--ANTICLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY curarr           "&#x021B7;" ><!--CLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY dArr             "&#x021D3;" ><!--DOWNWARDS DOUBLE ARROW -->
+<!ENTITY darr2            "&#x021CA;" ><!--DOWNWARDS PAIRED ARROWS -->
+<!ENTITY dharl            "&#x021C3;" ><!--DOWNWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY dharr            "&#x021C2;" ><!--DOWNWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY dlarr            "&#x02199;" ><!--SOUTH WEST ARROW -->
+<!ENTITY drarr            "&#x02198;" ><!--SOUTH EAST ARROW -->
+<!ENTITY hArr             "&#x021D4;" ><!--LEFT RIGHT DOUBLE ARROW -->
+<!ENTITY harr             "&#x02194;" ><!--LEFT RIGHT ARROW -->
+<!ENTITY harrw            "&#x021AD;" ><!--LEFT RIGHT WAVE ARROW -->
+<!ENTITY lAarr            "&#x021DA;" ><!--LEFTWARDS TRIPLE ARROW -->
+<!ENTITY Larr             "&#x0219E;" ><!--LEFTWARDS TWO HEADED ARROW -->
+<!ENTITY larr2            "&#x021C7;" ><!--LEFTWARDS PAIRED ARROWS -->
+<!ENTITY larrhk           "&#x021A9;" ><!--LEFTWARDS ARROW WITH HOOK -->
+<!ENTITY larrlp           "&#x021AB;" ><!--LEFTWARDS ARROW WITH LOOP -->
+<!ENTITY larrtl           "&#x021A2;" ><!--LEFTWARDS ARROW WITH TAIL -->
+<!ENTITY lhard            "&#x021BD;" ><!--LEFTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY lharu            "&#x021BC;" ><!--LEFTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY lrarr2           "&#x021C6;" ><!--LEFTWARDS ARROW OVER RIGHTWARDS ARROW -->
+<!ENTITY lrhar2           "&#x021CB;" ><!--LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON -->
+<!ENTITY lsh              "&#x021B0;" ><!--UPWARDS ARROW WITH TIP LEFTWARDS -->
+<!ENTITY map              "&#x021A6;" ><!--RIGHTWARDS ARROW FROM BAR -->
+<!ENTITY mumap            "&#x022B8;" ><!--MULTIMAP -->
+<!ENTITY nearr            "&#x02197;" ><!--NORTH EAST ARROW -->
+<!ENTITY nhArr            "&#x021CE;" ><!--LEFT RIGHT DOUBLE ARROW WITH STROKE -->
+<!ENTITY nharr            "&#x021AE;" ><!--LEFT RIGHT ARROW WITH STROKE -->
+<!ENTITY nlArr            "&#x021CD;" ><!--LEFTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nlarr            "&#x0219A;" ><!--LEFTWARDS ARROW WITH STROKE -->
+<!ENTITY nrArr            "&#x021CF;" ><!--RIGHTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nrarr            "&#x0219B;" ><!--RIGHTWARDS ARROW WITH STROKE -->
+<!ENTITY nwarr            "&#x02196;" ><!--NORTH WEST ARROW -->
+<!ENTITY olarr            "&#x021BA;" ><!--ANTICLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY orarr            "&#x021BB;" ><!--CLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY rAarr            "&#x021DB;" ><!--RIGHTWARDS TRIPLE ARROW -->
+<!ENTITY Rarr             "&#x021A0;" ><!--RIGHTWARDS TWO HEADED ARROW -->
+<!ENTITY rarr2            "&#x021C9;" ><!--RIGHTWARDS PAIRED ARROWS -->
+<!ENTITY rarrhk           "&#x021AA;" ><!--RIGHTWARDS ARROW WITH HOOK -->
+<!ENTITY rarrlp           "&#x021AC;" ><!--RIGHTWARDS ARROW WITH LOOP -->
+<!ENTITY rarrtl           "&#x021A3;" ><!--RIGHTWARDS ARROW WITH TAIL -->
+<!ENTITY rarrw            "&#x0219D;" ><!--RIGHTWARDS WAVE ARROW -->
+<!ENTITY rhard            "&#x021C1;" ><!--RIGHTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY rharu            "&#x021C0;" ><!--RIGHTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY rlarr2           "&#x021C4;" ><!--RIGHTWARDS ARROW OVER LEFTWARDS ARROW -->
+<!ENTITY rlhar2           "&#x021CC;" ><!--RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON -->
+<!ENTITY rsh              "&#x021B1;" ><!--UPWARDS ARROW WITH TIP RIGHTWARDS -->
+<!ENTITY uArr             "&#x021D1;" ><!--UPWARDS DOUBLE ARROW -->
+<!ENTITY uarr2            "&#x021C8;" ><!--UPWARDS PAIRED ARROWS -->
+<!ENTITY uharl            "&#x021BF;" ><!--UPWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY uharr            "&#x021BE;" ><!--UPWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY vArr             "&#x021D5;" ><!--UP DOWN DOUBLE ARROW -->
+<!ENTITY varr             "&#x02195;" ><!--UP DOWN ARROW -->
+<!ENTITY xhArr            "&#x027FA;" ><!--LONG LEFT RIGHT DOUBLE ARROW -->
+<!ENTITY xharr            "&#x027F7;" ><!--LONG LEFT RIGHT ARROW -->
+<!ENTITY xlArr            "&#x027F8;" ><!--LONG LEFTWARDS DOUBLE ARROW -->
+<!ENTITY xrArr            "&#x027F9;" ><!--LONG RIGHTWARDS DOUBLE ARROW -->
diff --git a/data/dtd/isoamsb.ent b/data/dtd/isoamsb.ent
new file mode 100644
index 0000000..4065b66
--- /dev/null
+++ b/data/dtd/isoamsb.ent
@@ -0,0 +1,83 @@
+
+<!--
+     File isoamsb.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isoamsb.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isoamsb.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isoamsb PUBLIC
+         "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isoamsb.ent";
+       >
+       %isoamsb;
+
+-->
+
+<!ENTITY amalg            "&#x02A3F;" ><!--AMALGAMATION OR COPRODUCT -->
+<!ENTITY Barwed           "&#x02306;" ><!--PERSPECTIVE -->
+<!ENTITY barwed           "&#x02305;" ><!--PROJECTIVE -->
+<!ENTITY Cap              "&#x022D2;" ><!--DOUBLE INTERSECTION -->
+<!ENTITY coprod           "&#x02210;" ><!--N-ARY COPRODUCT -->
+<!ENTITY Cup              "&#x022D3;" ><!--DOUBLE UNION -->
+<!ENTITY cuvee            "&#x022CE;" ><!--CURLY LOGICAL OR -->
+<!ENTITY cuwed            "&#x022CF;" ><!--CURLY LOGICAL AND -->
+<!ENTITY diam             "&#x022C4;" ><!--DIAMOND OPERATOR -->
+<!ENTITY divonx           "&#x022C7;" ><!--DIVISION TIMES -->
+<!ENTITY intcal           "&#x022BA;" ><!--INTERCALATE -->
+<!ENTITY lthree           "&#x022CB;" ><!--LEFT SEMIDIRECT PRODUCT -->
+<!ENTITY ltimes           "&#x022C9;" ><!--LEFT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY minusb           "&#x0229F;" ><!--SQUARED MINUS -->
+<!ENTITY oast             "&#x0229B;" ><!--CIRCLED ASTERISK OPERATOR -->
+<!ENTITY ocir             "&#x0229A;" ><!--CIRCLED RING OPERATOR -->
+<!ENTITY odash            "&#x0229D;" ><!--CIRCLED DASH -->
+<!ENTITY odot             "&#x02299;" ><!--CIRCLED DOT OPERATOR -->
+<!ENTITY ominus           "&#x02296;" ><!--CIRCLED MINUS -->
+<!ENTITY oplus            "&#x02295;" ><!--CIRCLED PLUS -->
+<!ENTITY osol             "&#x02298;" ><!--CIRCLED DIVISION SLASH -->
+<!ENTITY otimes           "&#x02297;" ><!--CIRCLED TIMES -->
+<!ENTITY plusb            "&#x0229E;" ><!--SQUARED PLUS -->
+<!ENTITY plusdo           "&#x02214;" ><!--DOT PLUS -->
+<!ENTITY prod             "&#x0220F;" ><!--N-ARY PRODUCT -->
+<!ENTITY rthree           "&#x022CC;" ><!--RIGHT SEMIDIRECT PRODUCT -->
+<!ENTITY rtimes           "&#x022CA;" ><!--RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY sdot             "&#x022C5;" ><!--DOT OPERATOR -->
+<!ENTITY sdotb            "&#x022A1;" ><!--SQUARED DOT OPERATOR -->
+<!ENTITY setmn            "&#x02216;" ><!--SET MINUS -->
+<!ENTITY sqcap            "&#x02293;" ><!--SQUARE CAP -->
+<!ENTITY sqcup            "&#x02294;" ><!--SQUARE CUP -->
+<!ENTITY ssetmn           "&#x02216;" ><!--SET MINUS -->
+<!ENTITY sstarf           "&#x022C6;" ><!--STAR OPERATOR -->
+<!ENTITY sum              "&#x02211;" ><!--N-ARY SUMMATION -->
+<!ENTITY timesb           "&#x022A0;" ><!--SQUARED TIMES -->
+<!ENTITY top              "&#x022A4;" ><!--DOWN TACK -->
+<!ENTITY uplus            "&#x0228E;" ><!--MULTISET UNION -->
+<!ENTITY wreath           "&#x02240;" ><!--WREATH PRODUCT -->
+<!ENTITY xcirc            "&#x025EF;" ><!--LARGE CIRCLE -->
+<!ENTITY xdtri            "&#x025BD;" ><!--WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY xutri            "&#x025B3;" ><!--WHITE UP-POINTING TRIANGLE -->
diff --git a/data/dtd/isoamsc.ent b/data/dtd/isoamsc.ent
new file mode 100644
index 0000000..2fad417
--- /dev/null
+++ b/data/dtd/isoamsc.ent
@@ -0,0 +1,51 @@
+
+<!--
+     File isoamsc.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isoamsc.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isoamsc.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isoamsc PUBLIC
+         "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isoamsc.ent";
+       >
+       %isoamsc;
+
+-->
+
+<!ENTITY dlcorn           "&#x0231E;" ><!--BOTTOM LEFT CORNER -->
+<!ENTITY drcorn           "&#x0231F;" ><!--BOTTOM RIGHT CORNER -->
+<!ENTITY lceil            "&#x02308;" ><!--LEFT CEILING -->
+<!ENTITY lfloor           "&#x0230A;" ><!--LEFT FLOOR -->
+<!ENTITY lpargt           "&#x029A0;" ><!--SPHERICAL ANGLE OPENING LEFT -->
+<!ENTITY rceil            "&#x02309;" ><!--RIGHT CEILING -->
+<!ENTITY rfloor           "&#x0230B;" ><!--RIGHT FLOOR -->
+<!ENTITY rpargt           "&#x02994;" ><!--RIGHT ARC GREATER-THAN BRACKET -->
+<!ENTITY ulcorn           "&#x0231C;" ><!--TOP LEFT CORNER -->
+<!ENTITY urcorn           "&#x0231D;" ><!--TOP RIGHT CORNER -->
diff --git a/data/dtd/isoamsn.ent b/data/dtd/isoamsn.ent
new file mode 100644
index 0000000..ddca8d1
--- /dev/null
+++ b/data/dtd/isoamsn.ent
@@ -0,0 +1,103 @@
+
+<!--
+     File isoamsn.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     References to the VARIANT SELECTOR 1 character (&#x0FE00;)
+     should match the uses listed in Unicode Technical Report 25.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isoamsn.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isoamsn.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isoamsn PUBLIC
+         "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isoamsn.ent";
+       >
+       %isoamsn;
+
+-->
+
+<!ENTITY gnap             "&#x02A8A;" ><!--GREATER-THAN AND NOT APPROXIMATE -->
+<!ENTITY gnE              "&#x02269;" ><!--GREATER-THAN BUT NOT EQUAL TO -->
+<!ENTITY gne              "&#x02A88;" ><!--GREATER-THAN AND SINGLE-LINE NOT EQUAL TO -->
+<!ENTITY gnsim            "&#x022E7;" ><!--GREATER-THAN BUT NOT EQUIVALENT TO -->
+<!ENTITY gvnE             "&#x02269;&#x0FE00;" ><!--GREATER-THAN BUT NOT EQUAL TO - with vertical stroke -->
+<!ENTITY lnap             "&#x02A89;" ><!--LESS-THAN AND NOT APPROXIMATE -->
+<!ENTITY lnE              "&#x02268;" ><!--LESS-THAN BUT NOT EQUAL TO -->
+<!ENTITY lne              "&#x02A87;" ><!--LESS-THAN AND SINGLE-LINE NOT EQUAL TO -->
+<!ENTITY lnsim            "&#x022E6;" ><!--LESS-THAN BUT NOT EQUIVALENT TO -->
+<!ENTITY lvnE             "&#x02268;&#x0FE00;" ><!--LESS-THAN BUT NOT EQUAL TO - with vertical stroke -->
+<!ENTITY nap              "&#x02249;" ><!--NOT ALMOST EQUAL TO -->
+<!ENTITY ncong            "&#x02247;" ><!--NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO -->
+<!ENTITY nequiv           "&#x02262;" ><!--NOT IDENTICAL TO -->
+<!ENTITY ngE              "&#x02267;&#x00338;" ><!--GREATER-THAN OVER EQUAL TO with slash -->
+<!ENTITY nge              "&#x02271;" ><!--NEITHER GREATER-THAN NOR EQUAL TO -->
+<!ENTITY nges             "&#x02A7E;&#x00338;" ><!--GREATER-THAN OR SLANTED EQUAL TO with slash -->
+<!ENTITY ngt              "&#x0226F;" ><!--NOT GREATER-THAN -->
+<!ENTITY nlE              "&#x02266;&#x00338;" ><!--LESS-THAN OVER EQUAL TO with slash -->
+<!ENTITY nle              "&#x02270;" ><!--NEITHER LESS-THAN NOR EQUAL TO -->
+<!ENTITY nles             "&#x02A7D;&#x00338;" ><!--LESS-THAN OR SLANTED EQUAL TO with slash -->
+<!ENTITY nlt              "&#x0226E;" ><!--NOT LESS-THAN -->
+<!ENTITY nltri            "&#x022EA;" ><!--NOT NORMAL SUBGROUP OF -->
+<!ENTITY nltrie           "&#x022EC;" ><!--NOT NORMAL SUBGROUP OF OR EQUAL TO -->
+<!ENTITY nmid             "&#x02224;" ><!--DOES NOT DIVIDE -->
+<!ENTITY npar             "&#x02226;" ><!--NOT PARALLEL TO -->
+<!ENTITY npr              "&#x02280;" ><!--DOES NOT PRECEDE -->
+<!ENTITY npre             "&#x02AAF;&#x00338;" ><!--PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash -->
+<!ENTITY nrtri            "&#x022EB;" ><!--DOES NOT CONTAIN AS NORMAL SUBGROUP -->
+<!ENTITY nrtrie           "&#x022ED;" ><!--DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL -->
+<!ENTITY nsc              "&#x02281;" ><!--DOES NOT SUCCEED -->
+<!ENTITY nsce             "&#x02AB0;&#x00338;" ><!--SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash -->
+<!ENTITY nsim             "&#x02241;" ><!--NOT TILDE -->
+<!ENTITY nsime            "&#x02244;" ><!--NOT ASYMPTOTICALLY EQUAL TO -->
+<!ENTITY nsmid            "&#x02224;" ><!--DOES NOT DIVIDE -->
+<!ENTITY nspar            "&#x02226;" ><!--NOT PARALLEL TO -->
+<!ENTITY nsub             "&#x02284;" ><!--NOT A SUBSET OF -->
+<!ENTITY nsubE            "&#x02AC5;&#x00338;" ><!--SUBSET OF ABOVE EQUALS SIGN with slash -->
+<!ENTITY nsube            "&#x02288;" ><!--NEITHER A SUBSET OF NOR EQUAL TO -->
+<!ENTITY nsup             "&#x02285;" ><!--NOT A SUPERSET OF -->
+<!ENTITY nsupE            "&#x02AC6;&#x00338;" ><!--SUPERSET OF ABOVE EQUALS SIGN with slash -->
+<!ENTITY nsupe            "&#x02289;" ><!--NEITHER A SUPERSET OF NOR EQUAL TO -->
+<!ENTITY nVDash           "&#x022AF;" ><!--NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -->
+<!ENTITY nVdash           "&#x022AE;" ><!--DOES NOT FORCE -->
+<!ENTITY nvDash           "&#x022AD;" ><!--NOT TRUE -->
+<!ENTITY nvdash           "&#x022AC;" ><!--DOES NOT PROVE -->
+<!ENTITY prnap            "&#x02AB9;" ><!--PRECEDES ABOVE NOT ALMOST EQUAL TO -->
+<!ENTITY prnE             "&#x02AB5;" ><!--PRECEDES ABOVE NOT EQUAL TO -->
+<!ENTITY prnsim           "&#x022E8;" ><!--PRECEDES BUT NOT EQUIVALENT TO -->
+<!ENTITY scnap            "&#x02ABA;" ><!--SUCCEEDS ABOVE NOT ALMOST EQUAL TO -->
+<!ENTITY scnE             "&#x02AB6;" ><!--SUCCEEDS ABOVE NOT EQUAL TO -->
+<!ENTITY scnsim           "&#x022E9;" ><!--SUCCEEDS BUT NOT EQUIVALENT TO -->
+<!ENTITY subnE            "&#x02ACB;" ><!--SUBSET OF ABOVE NOT EQUAL TO -->
+<!ENTITY subne            "&#x0228A;" ><!--SUBSET OF WITH NOT EQUAL TO -->
+<!ENTITY supnE            "&#x02ACC;" ><!--SUPERSET OF ABOVE NOT EQUAL TO -->
+<!ENTITY supne            "&#x0228B;" ><!--SUPERSET OF WITH NOT EQUAL TO -->
+<!ENTITY vsubnE           "&#x02ACB;&#x0FE00;" ><!--SUBSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members -->
+<!ENTITY vsubne           "&#x0228A;&#x0FE00;" ><!--SUBSET OF WITH NOT EQUAL TO - variant with stroke through bottom members -->
+<!ENTITY vsupnE           "&#x02ACC;&#x0FE00;" ><!--SUPERSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members -->
+<!ENTITY vsupne           "&#x0228B;&#x0FE00;" ><!--SUPERSET OF WITH NOT EQUAL TO - variant with stroke through bottom members -->
diff --git a/data/dtd/isoamso.ent b/data/dtd/isoamso.ent
new file mode 100644
index 0000000..278e4b4
--- /dev/null
+++ b/data/dtd/isoamso.ent
@@ -0,0 +1,59 @@
+
+<!--
+     File isoamso.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isoamso.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isoamso.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isoamso PUBLIC
+         "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isoamso.ent";
+       >
+       %isoamso;
+
+-->
+
+<!ENTITY ang              "&#x02220;" ><!--ANGLE -->
+<!ENTITY angmsd           "&#x02221;" ><!--MEASURED ANGLE -->
+<!ENTITY beth             "&#x02136;" ><!--BET SYMBOL -->
+<!ENTITY bprime           "&#x02035;" ><!--REVERSED PRIME -->
+<!ENTITY comp             "&#x02201;" ><!--COMPLEMENT -->
+<!ENTITY daleth           "&#x02138;" ><!--DALET SYMBOL -->
+<!ENTITY ell              "&#x02113;" ><!--SCRIPT SMALL L -->
+<!ENTITY empty            "&#x02205;" ><!--EMPTY SET -->
+<!ENTITY gimel            "&#x02137;" ><!--GIMEL SYMBOL -->
+<!ENTITY inodot           "&#x00131;" ><!--LATIN SMALL LETTER DOTLESS I -->
+<!ENTITY jnodot           "&#x0006A;" ><!--LATIN SMALL LETTER J -->
+<!ENTITY nexist           "&#x02204;" ><!--THERE DOES NOT EXIST -->
+<!ENTITY oS               "&#x024C8;" ><!--CIRCLED LATIN CAPITAL LETTER S -->
+<!ENTITY planck           "&#x0210F;" ><!--PLANCK CONSTANT OVER TWO PI -->
+<!ENTITY real             "&#x0211C;" ><!--BLACK-LETTER CAPITAL R -->
+<!ENTITY sbsol            "&#x0FE68;" ><!--SMALL REVERSE SOLIDUS -->
+<!ENTITY vprime           "&#x02032;" ><!--PRIME -->
+<!ENTITY weierp           "&#x02118;" ><!--SCRIPT CAPITAL P -->
diff --git a/data/dtd/isoamsr.ent b/data/dtd/isoamsr.ent
new file mode 100644
index 0000000..18e64bf
--- /dev/null
+++ b/data/dtd/isoamsr.ent
@@ -0,0 +1,125 @@
+
+<!--
+     File isoamsr.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isoamsr.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isoamsr.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isoamsr PUBLIC
+         "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isoamsr.ent";
+       >
+       %isoamsr;
+
+-->
+
+<!ENTITY ape              "&#x0224A;" ><!--ALMOST EQUAL OR EQUAL TO -->
+<!ENTITY asymp            "&#x02248;" ><!--ALMOST EQUAL TO -->
+<!ENTITY bcong            "&#x0224C;" ><!--ALL EQUAL TO -->
+<!ENTITY bepsi            "&#x003F6;" ><!--GREEK REVERSED LUNATE EPSILON SYMBOL -->
+<!ENTITY bowtie           "&#x022C8;" ><!--BOWTIE -->
+<!ENTITY bsim             "&#x0223D;" ><!--REVERSED TILDE -->
+<!ENTITY bsime            "&#x022CD;" ><!--REVERSED TILDE EQUALS -->
+<!ENTITY bump             "&#x0224E;" ><!--GEOMETRICALLY EQUIVALENT TO -->
+<!ENTITY bumpe            "&#x0224F;" ><!--DIFFERENCE BETWEEN -->
+<!ENTITY cire             "&#x02257;" ><!--RING EQUAL TO -->
+<!ENTITY colone           "&#x02254;" ><!--COLON EQUALS -->
+<!ENTITY cuepr            "&#x022DE;" ><!--EQUAL TO OR PRECEDES -->
+<!ENTITY cuesc            "&#x022DF;" ><!--EQUAL TO OR SUCCEEDS -->
+<!ENTITY cupre            "&#x0227C;" ><!--PRECEDES OR EQUAL TO -->
+<!ENTITY dashv            "&#x022A3;" ><!--LEFT TACK -->
+<!ENTITY ecir             "&#x02256;" ><!--RING IN EQUAL TO -->
+<!ENTITY ecolon           "&#x02255;" ><!--EQUALS COLON -->
+<!ENTITY eDot             "&#x02251;" ><!--GEOMETRICALLY EQUAL TO -->
+<!ENTITY efDot            "&#x02252;" ><!--APPROXIMATELY EQUAL TO OR THE IMAGE OF -->
+<!ENTITY egs              "&#x02A96;" ><!--SLANTED EQUAL TO OR GREATER-THAN -->
+<!ENTITY els              "&#x02A95;" ><!--SLANTED EQUAL TO OR LESS-THAN -->
+<!ENTITY erDot            "&#x02253;" ><!--IMAGE OF OR APPROXIMATELY EQUAL TO -->
+<!ENTITY esdot            "&#x02250;" ><!--APPROACHES THE LIMIT -->
+<!ENTITY fork             "&#x022D4;" ><!--PITCHFORK -->
+<!ENTITY frown            "&#x02322;" ><!--FROWN -->
+<!ENTITY gap              "&#x02A86;" ><!--GREATER-THAN OR APPROXIMATE -->
+<!ENTITY gE               "&#x02267;" ><!--GREATER-THAN OVER EQUAL TO -->
+<!ENTITY gEl              "&#x02A8C;" ><!--GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN -->
+<!ENTITY gel              "&#x022DB;" ><!--GREATER-THAN EQUAL TO OR LESS-THAN -->
+<!ENTITY ges              "&#x02A7E;" ><!--GREATER-THAN OR SLANTED EQUAL TO -->
+<!ENTITY Gg               "&#x022D9;" ><!--VERY MUCH GREATER-THAN -->
+<!ENTITY gl               "&#x02277;" ><!--GREATER-THAN OR LESS-THAN -->
+<!ENTITY gsdot            "&#x022D7;" ><!--GREATER-THAN WITH DOT -->
+<!ENTITY gsim             "&#x02273;" ><!--GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY Gt               "&#x0226B;" ><!--MUCH GREATER-THAN -->
+<!ENTITY lap              "&#x02A85;" ><!--LESS-THAN OR APPROXIMATE -->
+<!ENTITY ldot             "&#x022D6;" ><!--LESS-THAN WITH DOT -->
+<!ENTITY lE               "&#x02266;" ><!--LESS-THAN OVER EQUAL TO -->
+<!ENTITY lEg              "&#x02A8B;" ><!--LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN -->
+<!ENTITY leg              "&#x022DA;" ><!--LESS-THAN EQUAL TO OR GREATER-THAN -->
+<!ENTITY les              "&#x02A7D;" ><!--LESS-THAN OR SLANTED EQUAL TO -->
+<!ENTITY lg               "&#x02276;" ><!--LESS-THAN OR GREATER-THAN -->
+<!ENTITY Ll               "&#x022D8;" ><!--VERY MUCH LESS-THAN -->
+<!ENTITY lsim             "&#x02272;" ><!--LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY Lt               "&#x0226A;" ><!--MUCH LESS-THAN -->
+<!ENTITY ltrie            "&#x022B4;" ><!--NORMAL SUBGROUP OF OR EQUAL TO -->
+<!ENTITY mid              "&#x02223;" ><!--DIVIDES -->
+<!ENTITY models           "&#x022A7;" ><!--MODELS -->
+<!ENTITY pr               "&#x0227A;" ><!--PRECEDES -->
+<!ENTITY prap             "&#x02AB7;" ><!--PRECEDES ABOVE ALMOST EQUAL TO -->
+<!ENTITY pre              "&#x02AAF;" ><!--PRECEDES ABOVE SINGLE-LINE EQUALS SIGN -->
+<!ENTITY prsim            "&#x0227E;" ><!--PRECEDES OR EQUIVALENT TO -->
+<!ENTITY rtrie            "&#x022B5;" ><!--CONTAINS AS NORMAL SUBGROUP OR EQUAL TO -->
+<!ENTITY samalg           "&#x02210;" ><!--N-ARY COPRODUCT -->
+<!ENTITY sc               "&#x0227B;" ><!--SUCCEEDS -->
+<!ENTITY scap             "&#x02AB8;" ><!--SUCCEEDS ABOVE ALMOST EQUAL TO -->
+<!ENTITY sccue            "&#x0227D;" ><!--SUCCEEDS OR EQUAL TO -->
+<!ENTITY sce              "&#x02AB0;" ><!--SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN -->
+<!ENTITY scsim            "&#x0227F;" ><!--SUCCEEDS OR EQUIVALENT TO -->
+<!ENTITY sfrown           "&#x02322;" ><!--FROWN -->
+<!ENTITY smid             "&#x02223;" ><!--DIVIDES -->
+<!ENTITY smile            "&#x02323;" ><!--SMILE -->
+<!ENTITY spar             "&#x02225;" ><!--PARALLEL TO -->
+<!ENTITY sqsub            "&#x0228F;" ><!--SQUARE IMAGE OF -->
+<!ENTITY sqsube           "&#x02291;" ><!--SQUARE IMAGE OF OR EQUAL TO -->
+<!ENTITY sqsup            "&#x02290;" ><!--SQUARE ORIGINAL OF -->
+<!ENTITY sqsupe           "&#x02292;" ><!--SQUARE ORIGINAL OF OR EQUAL TO -->
+<!ENTITY ssmile           "&#x02323;" ><!--SMILE -->
+<!ENTITY Sub              "&#x022D0;" ><!--DOUBLE SUBSET -->
+<!ENTITY subE             "&#x02AC5;" ><!--SUBSET OF ABOVE EQUALS SIGN -->
+<!ENTITY Sup              "&#x022D1;" ><!--DOUBLE SUPERSET -->
+<!ENTITY supE             "&#x02AC6;" ><!--SUPERSET OF ABOVE EQUALS SIGN -->
+<!ENTITY thkap            "&#x02248;" ><!--ALMOST EQUAL TO -->
+<!ENTITY thksim           "&#x0223C;" ><!--TILDE OPERATOR -->
+<!ENTITY trie             "&#x0225C;" ><!--DELTA EQUAL TO -->
+<!ENTITY twixt            "&#x0226C;" ><!--BETWEEN -->
+<!ENTITY Vdash            "&#x022A9;" ><!--FORCES -->
+<!ENTITY vDash            "&#x022A8;" ><!--TRUE -->
+<!ENTITY vdash            "&#x022A2;" ><!--RIGHT TACK -->
+<!ENTITY veebar           "&#x022BB;" ><!--XOR -->
+<!ENTITY vltri            "&#x022B2;" ><!--NORMAL SUBGROUP OF -->
+<!ENTITY vprop            "&#x0221D;" ><!--PROPORTIONAL TO -->
+<!ENTITY vrtri            "&#x022B3;" ><!--CONTAINS AS NORMAL SUBGROUP -->
+<!ENTITY Vvdash           "&#x022AA;" ><!--TRIPLE VERTICAL BAR RIGHT TURNSTILE -->
diff --git a/data/dtd/isobox.ent b/data/dtd/isobox.ent
new file mode 100644
index 0000000..9ae27d4
--- /dev/null
+++ b/data/dtd/isobox.ent
@@ -0,0 +1,81 @@
+
+<!--
+     File isobox.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isobox.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isobox.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isobox PUBLIC
+         "ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isobox.ent";
+       >
+       %isobox;
+
+-->
+
+<!ENTITY boxDL            "&#x02557;" ><!--BOX DRAWINGS DOUBLE DOWN AND LEFT -->
+<!ENTITY boxDl            "&#x02556;" ><!--BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxdL            "&#x02555;" ><!--BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxdl            "&#x02510;" ><!--BOX DRAWINGS LIGHT DOWN AND LEFT -->
+<!ENTITY boxDR            "&#x02554;" ><!--BOX DRAWINGS DOUBLE DOWN AND RIGHT -->
+<!ENTITY boxDr            "&#x02553;" ><!--BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxdR            "&#x02552;" ><!--BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxdr            "&#x0250C;" ><!--BOX DRAWINGS LIGHT DOWN AND RIGHT -->
+<!ENTITY boxH             "&#x02550;" ><!--BOX DRAWINGS DOUBLE HORIZONTAL -->
+<!ENTITY boxh             "&#x02500;" ><!--BOX DRAWINGS LIGHT HORIZONTAL -->
+<!ENTITY boxHD            "&#x02566;" ><!--BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -->
+<!ENTITY boxHd            "&#x02564;" ><!--BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxhD            "&#x02565;" ><!--BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxhd            "&#x0252C;" ><!--BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -->
+<!ENTITY boxHU            "&#x02569;" ><!--BOX DRAWINGS DOUBLE UP AND HORIZONTAL -->
+<!ENTITY boxHu            "&#x02567;" ><!--BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxhU            "&#x02568;" ><!--BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxhu            "&#x02534;" ><!--BOX DRAWINGS LIGHT UP AND HORIZONTAL -->
+<!ENTITY boxUL            "&#x0255D;" ><!--BOX DRAWINGS DOUBLE UP AND LEFT -->
+<!ENTITY boxUl            "&#x0255C;" ><!--BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxuL            "&#x0255B;" ><!--BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxul            "&#x02518;" ><!--BOX DRAWINGS LIGHT UP AND LEFT -->
+<!ENTITY boxUR            "&#x0255A;" ><!--BOX DRAWINGS DOUBLE UP AND RIGHT -->
+<!ENTITY boxUr            "&#x02559;" ><!--BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxuR            "&#x02558;" ><!--BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxur            "&#x02514;" ><!--BOX DRAWINGS LIGHT UP AND RIGHT -->
+<!ENTITY boxV             "&#x02551;" ><!--BOX DRAWINGS DOUBLE VERTICAL -->
+<!ENTITY boxv             "&#x02502;" ><!--BOX DRAWINGS LIGHT VERTICAL -->
+<!ENTITY boxVH            "&#x0256C;" ><!--BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -->
+<!ENTITY boxVh            "&#x0256B;" ><!--BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxvH            "&#x0256A;" ><!--BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvh            "&#x0253C;" ><!--BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -->
+<!ENTITY boxVL            "&#x02563;" ><!--BOX DRAWINGS DOUBLE VERTICAL AND LEFT -->
+<!ENTITY boxVl            "&#x02562;" ><!--BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxvL            "&#x02561;" ><!--BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxvl            "&#x02524;" ><!--BOX DRAWINGS LIGHT VERTICAL AND LEFT -->
+<!ENTITY boxVR            "&#x02560;" ><!--BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -->
+<!ENTITY boxVr            "&#x0255F;" ><!--BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxvR            "&#x0255E;" ><!--BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxvr            "&#x0251C;" ><!--BOX DRAWINGS LIGHT VERTICAL AND RIGHT -->
diff --git a/data/dtd/isocyr1.ent b/data/dtd/isocyr1.ent
new file mode 100644
index 0000000..364b6d8
--- /dev/null
+++ b/data/dtd/isocyr1.ent
@@ -0,0 +1,108 @@
+
+<!--
+     File isocyr1.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isocyr1.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isocyr1.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isocyr1 PUBLIC
+         "ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isocyr1.ent";
+       >
+       %isocyr1;
+
+-->
+
+<!ENTITY Acy              "&#x00410;" ><!--CYRILLIC CAPITAL LETTER A -->
+<!ENTITY acy              "&#x00430;" ><!--CYRILLIC SMALL LETTER A -->
+<!ENTITY Bcy              "&#x00411;" ><!--CYRILLIC CAPITAL LETTER BE -->
+<!ENTITY bcy              "&#x00431;" ><!--CYRILLIC SMALL LETTER BE -->
+<!ENTITY CHcy             "&#x00427;" ><!--CYRILLIC CAPITAL LETTER CHE -->
+<!ENTITY chcy             "&#x00447;" ><!--CYRILLIC SMALL LETTER CHE -->
+<!ENTITY Dcy              "&#x00414;" ><!--CYRILLIC CAPITAL LETTER DE -->
+<!ENTITY dcy              "&#x00434;" ><!--CYRILLIC SMALL LETTER DE -->
+<!ENTITY Ecy              "&#x0042D;" ><!--CYRILLIC CAPITAL LETTER E -->
+<!ENTITY ecy              "&#x0044D;" ><!--CYRILLIC SMALL LETTER E -->
+<!ENTITY Fcy              "&#x00424;" ><!--CYRILLIC CAPITAL LETTER EF -->
+<!ENTITY fcy              "&#x00444;" ><!--CYRILLIC SMALL LETTER EF -->
+<!ENTITY Gcy              "&#x00413;" ><!--CYRILLIC CAPITAL LETTER GHE -->
+<!ENTITY gcy              "&#x00433;" ><!--CYRILLIC SMALL LETTER GHE -->
+<!ENTITY HARDcy           "&#x0042A;" ><!--CYRILLIC CAPITAL LETTER HARD SIGN -->
+<!ENTITY hardcy           "&#x0044A;" ><!--CYRILLIC SMALL LETTER HARD SIGN -->
+<!ENTITY Icy              "&#x00418;" ><!--CYRILLIC CAPITAL LETTER I -->
+<!ENTITY icy              "&#x00438;" ><!--CYRILLIC SMALL LETTER I -->
+<!ENTITY IEcy             "&#x00415;" ><!--CYRILLIC CAPITAL LETTER IE -->
+<!ENTITY iecy             "&#x00435;" ><!--CYRILLIC SMALL LETTER IE -->
+<!ENTITY IOcy             "&#x00401;" ><!--CYRILLIC CAPITAL LETTER IO -->
+<!ENTITY iocy             "&#x00451;" ><!--CYRILLIC SMALL LETTER IO -->
+<!ENTITY Jcy              "&#x00419;" ><!--CYRILLIC CAPITAL LETTER SHORT I -->
+<!ENTITY jcy              "&#x00439;" ><!--CYRILLIC SMALL LETTER SHORT I -->
+<!ENTITY Kcy              "&#x0041A;" ><!--CYRILLIC CAPITAL LETTER KA -->
+<!ENTITY kcy              "&#x0043A;" ><!--CYRILLIC SMALL LETTER KA -->
+<!ENTITY KHcy             "&#x00425;" ><!--CYRILLIC CAPITAL LETTER HA -->
+<!ENTITY khcy             "&#x00445;" ><!--CYRILLIC SMALL LETTER HA -->
+<!ENTITY Lcy              "&#x0041B;" ><!--CYRILLIC CAPITAL LETTER EL -->
+<!ENTITY lcy              "&#x0043B;" ><!--CYRILLIC SMALL LETTER EL -->
+<!ENTITY Mcy              "&#x0041C;" ><!--CYRILLIC CAPITAL LETTER EM -->
+<!ENTITY mcy              "&#x0043C;" ><!--CYRILLIC SMALL LETTER EM -->
+<!ENTITY Ncy              "&#x0041D;" ><!--CYRILLIC CAPITAL LETTER EN -->
+<!ENTITY ncy              "&#x0043D;" ><!--CYRILLIC SMALL LETTER EN -->
+<!ENTITY numero           "&#x02116;" ><!--NUMERO SIGN -->
+<!ENTITY Ocy              "&#x0041E;" ><!--CYRILLIC CAPITAL LETTER O -->
+<!ENTITY ocy              "&#x0043E;" ><!--CYRILLIC SMALL LETTER O -->
+<!ENTITY Pcy              "&#x0041F;" ><!--CYRILLIC CAPITAL LETTER PE -->
+<!ENTITY pcy              "&#x0043F;" ><!--CYRILLIC SMALL LETTER PE -->
+<!ENTITY Rcy              "&#x00420;" ><!--CYRILLIC CAPITAL LETTER ER -->
+<!ENTITY rcy              "&#x00440;" ><!--CYRILLIC SMALL LETTER ER -->
+<!ENTITY Scy              "&#x00421;" ><!--CYRILLIC CAPITAL LETTER ES -->
+<!ENTITY scy              "&#x00441;" ><!--CYRILLIC SMALL LETTER ES -->
+<!ENTITY SHCHcy           "&#x00429;" ><!--CYRILLIC CAPITAL LETTER SHCHA -->
+<!ENTITY shchcy           "&#x00449;" ><!--CYRILLIC SMALL LETTER SHCHA -->
+<!ENTITY SHcy             "&#x00428;" ><!--CYRILLIC CAPITAL LETTER SHA -->
+<!ENTITY shcy             "&#x00448;" ><!--CYRILLIC SMALL LETTER SHA -->
+<!ENTITY SOFTcy           "&#x0042C;" ><!--CYRILLIC CAPITAL LETTER SOFT SIGN -->
+<!ENTITY softcy           "&#x0044C;" ><!--CYRILLIC SMALL LETTER SOFT SIGN -->
+<!ENTITY Tcy              "&#x00422;" ><!--CYRILLIC CAPITAL LETTER TE -->
+<!ENTITY tcy              "&#x00442;" ><!--CYRILLIC SMALL LETTER TE -->
+<!ENTITY TScy             "&#x00426;" ><!--CYRILLIC CAPITAL LETTER TSE -->
+<!ENTITY tscy             "&#x00446;" ><!--CYRILLIC SMALL LETTER TSE -->
+<!ENTITY Ucy              "&#x00423;" ><!--CYRILLIC CAPITAL LETTER U -->
+<!ENTITY ucy              "&#x00443;" ><!--CYRILLIC SMALL LETTER U -->
+<!ENTITY Vcy              "&#x00412;" ><!--CYRILLIC CAPITAL LETTER VE -->
+<!ENTITY vcy              "&#x00432;" ><!--CYRILLIC SMALL LETTER VE -->
+<!ENTITY YAcy             "&#x0042F;" ><!--CYRILLIC CAPITAL LETTER YA -->
+<!ENTITY yacy             "&#x0044F;" ><!--CYRILLIC SMALL LETTER YA -->
+<!ENTITY Ycy              "&#x0042B;" ><!--CYRILLIC CAPITAL LETTER YERU -->
+<!ENTITY ycy              "&#x0044B;" ><!--CYRILLIC SMALL LETTER YERU -->
+<!ENTITY YUcy             "&#x0042E;" ><!--CYRILLIC CAPITAL LETTER YU -->
+<!ENTITY yucy             "&#x0044E;" ><!--CYRILLIC SMALL LETTER YU -->
+<!ENTITY Zcy              "&#x00417;" ><!--CYRILLIC CAPITAL LETTER ZE -->
+<!ENTITY zcy              "&#x00437;" ><!--CYRILLIC SMALL LETTER ZE -->
+<!ENTITY ZHcy             "&#x00416;" ><!--CYRILLIC CAPITAL LETTER ZHE -->
+<!ENTITY zhcy             "&#x00436;" ><!--CYRILLIC SMALL LETTER ZHE -->
diff --git a/data/dtd/isocyr2.ent b/data/dtd/isocyr2.ent
new file mode 100644
index 0000000..6432d74
--- /dev/null
+++ b/data/dtd/isocyr2.ent
@@ -0,0 +1,67 @@
+
+<!--
+     File isocyr2.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isocyr2.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isocyr2.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isocyr2 PUBLIC
+         "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isocyr2.ent";
+       >
+       %isocyr2;
+
+-->
+
+<!ENTITY DJcy             "&#x00402;" ><!--CYRILLIC CAPITAL LETTER DJE -->
+<!ENTITY djcy             "&#x00452;" ><!--CYRILLIC SMALL LETTER DJE -->
+<!ENTITY DScy             "&#x00405;" ><!--CYRILLIC CAPITAL LETTER DZE -->
+<!ENTITY dscy             "&#x00455;" ><!--CYRILLIC SMALL LETTER DZE -->
+<!ENTITY DZcy             "&#x0040F;" ><!--CYRILLIC CAPITAL LETTER DZHE -->
+<!ENTITY dzcy             "&#x0045F;" ><!--CYRILLIC SMALL LETTER DZHE -->
+<!ENTITY GJcy             "&#x00403;" ><!--CYRILLIC CAPITAL LETTER GJE -->
+<!ENTITY gjcy             "&#x00453;" ><!--CYRILLIC SMALL LETTER GJE -->
+<!ENTITY Iukcy            "&#x00406;" ><!--CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY iukcy            "&#x00456;" ><!--CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY Jsercy           "&#x00408;" ><!--CYRILLIC CAPITAL LETTER JE -->
+<!ENTITY jsercy           "&#x00458;" ><!--CYRILLIC SMALL LETTER JE -->
+<!ENTITY Jukcy            "&#x00404;" ><!--CYRILLIC CAPITAL LETTER UKRAINIAN IE -->
+<!ENTITY jukcy            "&#x00454;" ><!--CYRILLIC SMALL LETTER UKRAINIAN IE -->
+<!ENTITY KJcy             "&#x0040C;" ><!--CYRILLIC CAPITAL LETTER KJE -->
+<!ENTITY kjcy             "&#x0045C;" ><!--CYRILLIC SMALL LETTER KJE -->
+<!ENTITY LJcy             "&#x00409;" ><!--CYRILLIC CAPITAL LETTER LJE -->
+<!ENTITY ljcy             "&#x00459;" ><!--CYRILLIC SMALL LETTER LJE -->
+<!ENTITY NJcy             "&#x0040A;" ><!--CYRILLIC CAPITAL LETTER NJE -->
+<!ENTITY njcy             "&#x0045A;" ><!--CYRILLIC SMALL LETTER NJE -->
+<!ENTITY TSHcy            "&#x0040B;" ><!--CYRILLIC CAPITAL LETTER TSHE -->
+<!ENTITY tshcy            "&#x0045B;" ><!--CYRILLIC SMALL LETTER TSHE -->
+<!ENTITY Ubrcy            "&#x0040E;" ><!--CYRILLIC CAPITAL LETTER SHORT U -->
+<!ENTITY ubrcy            "&#x0045E;" ><!--CYRILLIC SMALL LETTER SHORT U -->
+<!ENTITY YIcy             "&#x00407;" ><!--CYRILLIC CAPITAL LETTER YI -->
+<!ENTITY yicy             "&#x00457;" ><!--CYRILLIC SMALL LETTER YI -->
diff --git a/data/dtd/isodia.ent b/data/dtd/isodia.ent
new file mode 100644
index 0000000..b49c309
--- /dev/null
+++ b/data/dtd/isodia.ent
@@ -0,0 +1,55 @@
+
+<!--
+     File isodia.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isodia.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isodia.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isodia PUBLIC
+         "ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isodia.ent";
+       >
+       %isodia;
+
+-->
+
+<!ENTITY acute            "&#x000B4;" ><!--ACUTE ACCENT -->
+<!ENTITY breve            "&#x002D8;" ><!--BREVE -->
+<!ENTITY caron            "&#x002C7;" ><!--CARON -->
+<!ENTITY cedil            "&#x000B8;" ><!--CEDILLA -->
+<!ENTITY circ             "&#x002C6;" ><!--MODIFIER LETTER CIRCUMFLEX ACCENT -->
+<!ENTITY dblac            "&#x002DD;" ><!--DOUBLE ACUTE ACCENT -->
+<!ENTITY die              "&#x000A8;" ><!--DIAERESIS -->
+<!ENTITY dot              "&#x002D9;" ><!--DOT ABOVE -->
+<!ENTITY grave            "&#x00060;" ><!--GRAVE ACCENT -->
+<!ENTITY macr             "&#x000AF;" ><!--MACRON -->
+<!ENTITY ogon             "&#x002DB;" ><!--OGONEK -->
+<!ENTITY ring             "&#x002DA;" ><!--RING ABOVE -->
+<!ENTITY tilde            "&#x002DC;" ><!--SMALL TILDE -->
+<!ENTITY uml              "&#x000A8;" ><!--DIAERESIS -->
diff --git a/data/dtd/isogrk1.ent b/data/dtd/isogrk1.ent
new file mode 100644
index 0000000..7826f81
--- /dev/null
+++ b/data/dtd/isogrk1.ent
@@ -0,0 +1,90 @@
+
+<!--
+     File isogrk1.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isogrk1.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Greek Letters//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isogrk1.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isogrk1 PUBLIC
+         "ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isogrk1.ent";
+       >
+       %isogrk1;
+
+-->
+
+<!ENTITY Agr              "&#x00391;" ><!--GREEK CAPITAL LETTER ALPHA -->
+<!ENTITY agr              "&#x003B1;" ><!--GREEK SMALL LETTER ALPHA -->
+<!ENTITY Bgr              "&#x00392;" ><!--GREEK CAPITAL LETTER BETA -->
+<!ENTITY bgr              "&#x003B2;" ><!--GREEK SMALL LETTER BETA -->
+<!ENTITY Dgr              "&#x00394;" ><!--GREEK CAPITAL LETTER DELTA -->
+<!ENTITY dgr              "&#x003B4;" ><!--GREEK SMALL LETTER DELTA -->
+<!ENTITY EEgr             "&#x00397;" ><!--GREEK CAPITAL LETTER ETA -->
+<!ENTITY eegr             "&#x003B7;" ><!--GREEK SMALL LETTER ETA -->
+<!ENTITY Egr              "&#x00395;" ><!--GREEK CAPITAL LETTER EPSILON -->
+<!ENTITY egr              "&#x003B5;" ><!--GREEK SMALL LETTER EPSILON -->
+<!ENTITY Ggr              "&#x00393;" ><!--GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY ggr              "&#x003B3;" ><!--GREEK SMALL LETTER GAMMA -->
+<!ENTITY Igr              "&#x00399;" ><!--GREEK CAPITAL LETTER IOTA -->
+<!ENTITY igr              "&#x003B9;" ><!--GREEK SMALL LETTER IOTA -->
+<!ENTITY Kgr              "&#x0039A;" ><!--GREEK CAPITAL LETTER KAPPA -->
+<!ENTITY kgr              "&#x003BA;" ><!--GREEK SMALL LETTER KAPPA -->
+<!ENTITY KHgr             "&#x003A7;" ><!--GREEK CAPITAL LETTER CHI -->
+<!ENTITY khgr             "&#x003C7;" ><!--GREEK SMALL LETTER CHI -->
+<!ENTITY Lgr              "&#x0039B;" ><!--GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY lgr              "&#x003BB;" ><!--GREEK SMALL LETTER LAMDA -->
+<!ENTITY Mgr              "&#x0039C;" ><!--GREEK CAPITAL LETTER MU -->
+<!ENTITY mgr              "&#x003BC;" ><!--GREEK SMALL LETTER MU -->
+<!ENTITY Ngr              "&#x0039D;" ><!--GREEK CAPITAL LETTER NU -->
+<!ENTITY ngr              "&#x003BD;" ><!--GREEK SMALL LETTER NU -->
+<!ENTITY Ogr              "&#x0039F;" ><!--GREEK CAPITAL LETTER OMICRON -->
+<!ENTITY ogr              "&#x003BF;" ><!--GREEK SMALL LETTER OMICRON -->
+<!ENTITY OHgr             "&#x003A9;" ><!--GREEK CAPITAL LETTER OMEGA -->
+<!ENTITY ohgr             "&#x003C9;" ><!--GREEK SMALL LETTER OMEGA -->
+<!ENTITY Pgr              "&#x003A0;" ><!--GREEK CAPITAL LETTER PI -->
+<!ENTITY pgr              "&#x003C0;" ><!--GREEK SMALL LETTER PI -->
+<!ENTITY PHgr             "&#x003A6;" ><!--GREEK CAPITAL LETTER PHI -->
+<!ENTITY phgr             "&#x003C6;" ><!--GREEK SMALL LETTER PHI -->
+<!ENTITY PSgr             "&#x003A8;" ><!--GREEK CAPITAL LETTER PSI -->
+<!ENTITY psgr             "&#x003C8;" ><!--GREEK SMALL LETTER PSI -->
+<!ENTITY Rgr              "&#x003A1;" ><!--GREEK CAPITAL LETTER RHO -->
+<!ENTITY rgr              "&#x003C1;" ><!--GREEK SMALL LETTER RHO -->
+<!ENTITY sfgr             "&#x003C2;" ><!--GREEK SMALL LETTER FINAL SIGMA -->
+<!ENTITY Sgr              "&#x003A3;" ><!--GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sgr              "&#x003C3;" ><!--GREEK SMALL LETTER SIGMA -->
+<!ENTITY Tgr              "&#x003A4;" ><!--GREEK CAPITAL LETTER TAU -->
+<!ENTITY tgr              "&#x003C4;" ><!--GREEK SMALL LETTER TAU -->
+<!ENTITY THgr             "&#x00398;" ><!--GREEK CAPITAL LETTER THETA -->
+<!ENTITY thgr             "&#x003B8;" ><!--GREEK SMALL LETTER THETA -->
+<!ENTITY Ugr              "&#x003A5;" ><!--GREEK CAPITAL LETTER UPSILON -->
+<!ENTITY ugr              "&#x003C5;" ><!--GREEK SMALL LETTER UPSILON -->
+<!ENTITY Xgr              "&#x0039E;" ><!--GREEK CAPITAL LETTER XI -->
+<!ENTITY xgr              "&#x003BE;" ><!--GREEK SMALL LETTER XI -->
+<!ENTITY Zgr              "&#x00396;" ><!--GREEK CAPITAL LETTER ZETA -->
+<!ENTITY zgr              "&#x003B6;" ><!--GREEK SMALL LETTER ZETA -->
diff --git a/data/dtd/isogrk2.ent b/data/dtd/isogrk2.ent
new file mode 100644
index 0000000..726b7dd
--- /dev/null
+++ b/data/dtd/isogrk2.ent
@@ -0,0 +1,61 @@
+
+<!--
+     File isogrk2.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isogrk2.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isogrk2.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isogrk2 PUBLIC
+         "ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isogrk2.ent";
+       >
+       %isogrk2;
+
+-->
+
+<!ENTITY Aacgr            "&#x00386;" ><!--GREEK CAPITAL LETTER ALPHA WITH TONOS -->
+<!ENTITY aacgr            "&#x003AC;" ><!--GREEK SMALL LETTER ALPHA WITH TONOS -->
+<!ENTITY Eacgr            "&#x00388;" ><!--GREEK CAPITAL LETTER EPSILON WITH TONOS -->
+<!ENTITY eacgr            "&#x003AD;" ><!--GREEK SMALL LETTER EPSILON WITH TONOS -->
+<!ENTITY EEacgr           "&#x00389;" ><!--GREEK CAPITAL LETTER ETA WITH TONOS -->
+<!ENTITY eeacgr           "&#x003AE;" ><!--GREEK SMALL LETTER ETA WITH TONOS -->
+<!ENTITY Iacgr            "&#x0038A;" ><!--GREEK CAPITAL LETTER IOTA WITH TONOS -->
+<!ENTITY iacgr            "&#x003AF;" ><!--GREEK SMALL LETTER IOTA WITH TONOS -->
+<!ENTITY idiagr           "&#x00390;" ><!--GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -->
+<!ENTITY Idigr            "&#x003AA;" ><!--GREEK CAPITAL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY idigr            "&#x003CA;" ><!--GREEK SMALL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY Oacgr            "&#x0038C;" ><!--GREEK CAPITAL LETTER OMICRON WITH TONOS -->
+<!ENTITY oacgr            "&#x003CC;" ><!--GREEK SMALL LETTER OMICRON WITH TONOS -->
+<!ENTITY OHacgr           "&#x0038F;" ><!--GREEK CAPITAL LETTER OMEGA WITH TONOS -->
+<!ENTITY ohacgr           "&#x003CE;" ><!--GREEK SMALL LETTER OMEGA WITH TONOS -->
+<!ENTITY Uacgr            "&#x0038E;" ><!--GREEK CAPITAL LETTER UPSILON WITH TONOS -->
+<!ENTITY uacgr            "&#x003CD;" ><!--GREEK SMALL LETTER UPSILON WITH TONOS -->
+<!ENTITY udiagr           "&#x003B0;" ><!--GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -->
+<!ENTITY Udigr            "&#x003AB;" ><!--GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY udigr            "&#x003CB;" ><!--GREEK SMALL LETTER UPSILON WITH DIALYTIKA -->
diff --git a/data/dtd/isogrk3.ent b/data/dtd/isogrk3.ent
new file mode 100644
index 0000000..28b5c27
--- /dev/null
+++ b/data/dtd/isogrk3.ent
@@ -0,0 +1,84 @@
+
+<!--
+     File isogrk3.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isogrk3.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Greek Symbols//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isogrk3.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isogrk3 PUBLIC
+         "ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isogrk3.ent";
+       >
+       %isogrk3;
+
+-->
+
+<!ENTITY alpha            "&#x003B1;" ><!--GREEK SMALL LETTER ALPHA -->
+<!ENTITY beta             "&#x003B2;" ><!--GREEK SMALL LETTER BETA -->
+<!ENTITY chi              "&#x003C7;" ><!--GREEK SMALL LETTER CHI -->
+<!ENTITY Delta            "&#x00394;" ><!--GREEK CAPITAL LETTER DELTA -->
+<!ENTITY delta            "&#x003B4;" ><!--GREEK SMALL LETTER DELTA -->
+<!ENTITY epsi             "&#x003F5;" ><!--GREEK LUNATE EPSILON SYMBOL -->
+<!ENTITY epsis            "&#x003F5;" ><!--GREEK LUNATE EPSILON SYMBOL -->
+<!ENTITY epsiv            "&#x003B5;" ><!--GREEK SMALL LETTER EPSILON -->
+<!ENTITY eta              "&#x003B7;" ><!--GREEK SMALL LETTER ETA -->
+<!ENTITY Gamma            "&#x00393;" ><!--GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY gamma            "&#x003B3;" ><!--GREEK SMALL LETTER GAMMA -->
+<!ENTITY gammad           "&#x003DD;" ><!--GREEK SMALL LETTER DIGAMMA -->
+<!ENTITY iota             "&#x003B9;" ><!--GREEK SMALL LETTER IOTA -->
+<!ENTITY kappa            "&#x003BA;" ><!--GREEK SMALL LETTER KAPPA -->
+<!ENTITY kappav           "&#x003F0;" ><!--GREEK KAPPA SYMBOL -->
+<!ENTITY Lambda           "&#x0039B;" ><!--GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY lambda           "&#x003BB;" ><!--GREEK SMALL LETTER LAMDA -->
+<!ENTITY mu               "&#x003BC;" ><!--GREEK SMALL LETTER MU -->
+<!ENTITY nu               "&#x003BD;" ><!--GREEK SMALL LETTER NU -->
+<!ENTITY Omega            "&#x003A9;" ><!--GREEK CAPITAL LETTER OMEGA -->
+<!ENTITY omega            "&#x003C9;" ><!--GREEK SMALL LETTER OMEGA -->
+<!ENTITY Phi              "&#x003A6;" ><!--GREEK CAPITAL LETTER PHI -->
+<!ENTITY phis             "&#x003D5;" ><!--GREEK PHI SYMBOL -->
+<!ENTITY phiv             "&#x003C6;" ><!--GREEK SMALL LETTER PHI -->
+<!ENTITY Pi               "&#x003A0;" ><!--GREEK CAPITAL LETTER PI -->
+<!ENTITY pi               "&#x003C0;" ><!--GREEK SMALL LETTER PI -->
+<!ENTITY piv              "&#x003D6;" ><!--GREEK PI SYMBOL -->
+<!ENTITY Psi              "&#x003A8;" ><!--GREEK CAPITAL LETTER PSI -->
+<!ENTITY psi              "&#x003C8;" ><!--GREEK SMALL LETTER PSI -->
+<!ENTITY rho              "&#x003C1;" ><!--GREEK SMALL LETTER RHO -->
+<!ENTITY rhov             "&#x003F1;" ><!--GREEK RHO SYMBOL -->
+<!ENTITY Sigma            "&#x003A3;" ><!--GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sigma            "&#x003C3;" ><!--GREEK SMALL LETTER SIGMA -->
+<!ENTITY sigmav           "&#x003C2;" ><!--GREEK SMALL LETTER FINAL SIGMA -->
+<!ENTITY tau              "&#x003C4;" ><!--GREEK SMALL LETTER TAU -->
+<!ENTITY Theta            "&#x00398;" ><!--GREEK CAPITAL LETTER THETA -->
+<!ENTITY thetas           "&#x003B8;" ><!--GREEK SMALL LETTER THETA -->
+<!ENTITY thetav           "&#x003D1;" ><!--GREEK THETA SYMBOL -->
+<!ENTITY Upsi             "&#x003D2;" ><!--GREEK UPSILON WITH HOOK SYMBOL -->
+<!ENTITY upsi             "&#x003C5;" ><!--GREEK SMALL LETTER UPSILON -->
+<!ENTITY Xi               "&#x0039E;" ><!--GREEK CAPITAL LETTER XI -->
+<!ENTITY xi               "&#x003BE;" ><!--GREEK SMALL LETTER XI -->
+<!ENTITY zeta             "&#x003B6;" ><!--GREEK SMALL LETTER ZETA -->
diff --git a/data/dtd/isogrk4.ent b/data/dtd/isogrk4.ent
new file mode 100644
index 0000000..27c6a51
--- /dev/null
+++ b/data/dtd/isogrk4.ent
@@ -0,0 +1,84 @@
+
+<!--
+     File isogrk4.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isogrk4.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isogrk4.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isogrk4 PUBLIC
+         "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isogrk4.ent";
+       >
+       %isogrk4;
+
+-->
+
+<!ENTITY b.alpha          "&#x1D6C2;" ><!--MATHEMATICAL BOLD SMALL ALPHA -->
+<!ENTITY b.beta           "&#x1D6C3;" ><!--MATHEMATICAL BOLD SMALL BETA -->
+<!ENTITY b.chi            "&#x1D6D8;" ><!--MATHEMATICAL BOLD SMALL CHI -->
+<!ENTITY b.Delta          "&#x1D6AB;" ><!--MATHEMATICAL BOLD CAPITAL DELTA -->
+<!ENTITY b.delta          "&#x1D6C5;" ><!--MATHEMATICAL BOLD SMALL DELTA -->
+<!ENTITY b.epsi           "&#x1D6C6;" ><!--MATHEMATICAL BOLD SMALL EPSILON -->
+<!ENTITY b.epsiv          "&#x1D6DC;" ><!--MATHEMATICAL BOLD EPSILON SYMBOL -->
+<!ENTITY b.eta            "&#x1D6C8;" ><!--MATHEMATICAL BOLD SMALL ETA -->
+<!ENTITY b.Gamma          "&#x1D6AA;" ><!--MATHEMATICAL BOLD CAPITAL GAMMA -->
+<!ENTITY b.gamma          "&#x1D6C4;" ><!--MATHEMATICAL BOLD SMALL GAMMA -->
+<!ENTITY b.Gammad         "&#x003DC;" ><!--GREEK LETTER DIGAMMA -->
+<!ENTITY b.gammad         "&#x003DD;" ><!--GREEK SMALL LETTER DIGAMMA -->
+<!ENTITY b.iota           "&#x1D6CA;" ><!--MATHEMATICAL BOLD SMALL IOTA -->
+<!ENTITY b.kappa          "&#x1D6CB;" ><!--MATHEMATICAL BOLD SMALL KAPPA -->
+<!ENTITY b.kappav         "&#x1D6DE;" ><!--MATHEMATICAL BOLD KAPPA SYMBOL -->
+<!ENTITY b.Lambda         "&#x1D6B2;" ><!--MATHEMATICAL BOLD CAPITAL LAMDA -->
+<!ENTITY b.lambda         "&#x1D6CC;" ><!--MATHEMATICAL BOLD SMALL LAMDA -->
+<!ENTITY b.mu             "&#x1D6CD;" ><!--MATHEMATICAL BOLD SMALL MU -->
+<!ENTITY b.nu             "&#x1D6CE;" ><!--MATHEMATICAL BOLD SMALL NU -->
+<!ENTITY b.Omega          "&#x1D6C0;" ><!--MATHEMATICAL BOLD CAPITAL OMEGA -->
+<!ENTITY b.omega          "&#x1D6DA;" ><!--MATHEMATICAL BOLD SMALL OMEGA -->
+<!ENTITY b.Phi            "&#x1D6BD;" ><!--MATHEMATICAL BOLD CAPITAL PHI -->
+<!ENTITY b.phi            "&#x1D6D7;" ><!--MATHEMATICAL BOLD SMALL PHI -->
+<!ENTITY b.phiv           "&#x1D6DF;" ><!--MATHEMATICAL BOLD PHI SYMBOL -->
+<!ENTITY b.Pi             "&#x1D6B7;" ><!--MATHEMATICAL BOLD CAPITAL PI -->
+<!ENTITY b.pi             "&#x1D6D1;" ><!--MATHEMATICAL BOLD SMALL PI -->
+<!ENTITY b.piv            "&#x1D6E1;" ><!--MATHEMATICAL BOLD PI SYMBOL -->
+<!ENTITY b.Psi            "&#x1D6BF;" ><!--MATHEMATICAL BOLD CAPITAL PSI -->
+<!ENTITY b.psi            "&#x1D6D9;" ><!--MATHEMATICAL BOLD SMALL PSI -->
+<!ENTITY b.rho            "&#x1D6D2;" ><!--MATHEMATICAL BOLD SMALL RHO -->
+<!ENTITY b.rhov           "&#x1D6E0;" ><!--MATHEMATICAL BOLD RHO SYMBOL -->
+<!ENTITY b.Sigma          "&#x1D6BA;" ><!--MATHEMATICAL BOLD CAPITAL SIGMA -->
+<!ENTITY b.sigma          "&#x1D6D4;" ><!--MATHEMATICAL BOLD SMALL SIGMA -->
+<!ENTITY b.sigmav         "&#x1D6D3;" ><!--MATHEMATICAL BOLD SMALL FINAL SIGMA -->
+<!ENTITY b.tau            "&#x1D6D5;" ><!--MATHEMATICAL BOLD SMALL TAU -->
+<!ENTITY b.Theta          "&#x1D6AF;" ><!--MATHEMATICAL BOLD CAPITAL THETA -->
+<!ENTITY b.thetas         "&#x1D6C9;" ><!--MATHEMATICAL BOLD SMALL THETA -->
+<!ENTITY b.thetav         "&#x1D6DD;" ><!--MATHEMATICAL BOLD THETA SYMBOL -->
+<!ENTITY b.Upsi           "&#x1D6BC;" ><!--MATHEMATICAL BOLD CAPITAL UPSILON -->
+<!ENTITY b.upsi           "&#x1D6D6;" ><!--MATHEMATICAL BOLD SMALL UPSILON -->
+<!ENTITY b.Xi             "&#x1D6B5;" ><!--MATHEMATICAL BOLD CAPITAL XI -->
+<!ENTITY b.xi             "&#x1D6CF;" ><!--MATHEMATICAL BOLD SMALL XI -->
+<!ENTITY b.zeta           "&#x1D6C7;" ><!--MATHEMATICAL BOLD SMALL ZETA -->
diff --git a/data/dtd/isolat1.ent b/data/dtd/isolat1.ent
new file mode 100644
index 0000000..381bd09
--- /dev/null
+++ b/data/dtd/isolat1.ent
@@ -0,0 +1,103 @@
+
+<!--
+     File isolat1.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isolat1.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Added Latin 1//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isolat1.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isolat1 PUBLIC
+         "ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isolat1.ent";
+       >
+       %isolat1;
+
+-->
+
+<!ENTITY Aacute           "&#x000C1;" ><!--LATIN CAPITAL LETTER A WITH ACUTE -->
+<!ENTITY aacute           "&#x000E1;" ><!--LATIN SMALL LETTER A WITH ACUTE -->
+<!ENTITY Acirc            "&#x000C2;" ><!--LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY acirc            "&#x000E2;" ><!--LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY AElig            "&#x000C6;" ><!--LATIN CAPITAL LETTER AE -->
+<!ENTITY aelig            "&#x000E6;" ><!--LATIN SMALL LETTER AE -->
+<!ENTITY Agrave           "&#x000C0;" ><!--LATIN CAPITAL LETTER A WITH GRAVE -->
+<!ENTITY agrave           "&#x000E0;" ><!--LATIN SMALL LETTER A WITH GRAVE -->
+<!ENTITY Aring            "&#x000C5;" ><!--LATIN CAPITAL LETTER A WITH RING ABOVE -->
+<!ENTITY aring            "&#x000E5;" ><!--LATIN SMALL LETTER A WITH RING ABOVE -->
+<!ENTITY Atilde           "&#x000C3;" ><!--LATIN CAPITAL LETTER A WITH TILDE -->
+<!ENTITY atilde           "&#x000E3;" ><!--LATIN SMALL LETTER A WITH TILDE -->
+<!ENTITY Auml             "&#x000C4;" ><!--LATIN CAPITAL LETTER A WITH DIAERESIS -->
+<!ENTITY auml             "&#x000E4;" ><!--LATIN SMALL LETTER A WITH DIAERESIS -->
+<!ENTITY Ccedil           "&#x000C7;" ><!--LATIN CAPITAL LETTER C WITH CEDILLA -->
+<!ENTITY ccedil           "&#x000E7;" ><!--LATIN SMALL LETTER C WITH CEDILLA -->
+<!ENTITY Eacute           "&#x000C9;" ><!--LATIN CAPITAL LETTER E WITH ACUTE -->
+<!ENTITY eacute           "&#x000E9;" ><!--LATIN SMALL LETTER E WITH ACUTE -->
+<!ENTITY Ecirc            "&#x000CA;" ><!--LATIN CAPITAL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY ecirc            "&#x000EA;" ><!--LATIN SMALL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY Egrave           "&#x000C8;" ><!--LATIN CAPITAL LETTER E WITH GRAVE -->
+<!ENTITY egrave           "&#x000E8;" ><!--LATIN SMALL LETTER E WITH GRAVE -->
+<!ENTITY ETH              "&#x000D0;" ><!--LATIN CAPITAL LETTER ETH -->
+<!ENTITY eth              "&#x000F0;" ><!--LATIN SMALL LETTER ETH -->
+<!ENTITY Euml             "&#x000CB;" ><!--LATIN CAPITAL LETTER E WITH DIAERESIS -->
+<!ENTITY euml             "&#x000EB;" ><!--LATIN SMALL LETTER E WITH DIAERESIS -->
+<!ENTITY Iacute           "&#x000CD;" ><!--LATIN CAPITAL LETTER I WITH ACUTE -->
+<!ENTITY iacute           "&#x000ED;" ><!--LATIN SMALL LETTER I WITH ACUTE -->
+<!ENTITY Icirc            "&#x000CE;" ><!--LATIN CAPITAL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY icirc            "&#x000EE;" ><!--LATIN SMALL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY Igrave           "&#x000CC;" ><!--LATIN CAPITAL LETTER I WITH GRAVE -->
+<!ENTITY igrave           "&#x000EC;" ><!--LATIN SMALL LETTER I WITH GRAVE -->
+<!ENTITY Iuml             "&#x000CF;" ><!--LATIN CAPITAL LETTER I WITH DIAERESIS -->
+<!ENTITY iuml             "&#x000EF;" ><!--LATIN SMALL LETTER I WITH DIAERESIS -->
+<!ENTITY Ntilde           "&#x000D1;" ><!--LATIN CAPITAL LETTER N WITH TILDE -->
+<!ENTITY ntilde           "&#x000F1;" ><!--LATIN SMALL LETTER N WITH TILDE -->
+<!ENTITY Oacute           "&#x000D3;" ><!--LATIN CAPITAL LETTER O WITH ACUTE -->
+<!ENTITY oacute           "&#x000F3;" ><!--LATIN SMALL LETTER O WITH ACUTE -->
+<!ENTITY Ocirc            "&#x000D4;" ><!--LATIN CAPITAL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY ocirc            "&#x000F4;" ><!--LATIN SMALL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY Ograve           "&#x000D2;" ><!--LATIN CAPITAL LETTER O WITH GRAVE -->
+<!ENTITY ograve           "&#x000F2;" ><!--LATIN SMALL LETTER O WITH GRAVE -->
+<!ENTITY Oslash           "&#x000D8;" ><!--LATIN CAPITAL LETTER O WITH STROKE -->
+<!ENTITY oslash           "&#x000F8;" ><!--LATIN SMALL LETTER O WITH STROKE -->
+<!ENTITY Otilde           "&#x000D5;" ><!--LATIN CAPITAL LETTER O WITH TILDE -->
+<!ENTITY otilde           "&#x000F5;" ><!--LATIN SMALL LETTER O WITH TILDE -->
+<!ENTITY Ouml             "&#x000D6;" ><!--LATIN CAPITAL LETTER O WITH DIAERESIS -->
+<!ENTITY ouml             "&#x000F6;" ><!--LATIN SMALL LETTER O WITH DIAERESIS -->
+<!ENTITY szlig            "&#x000DF;" ><!--LATIN SMALL LETTER SHARP S -->
+<!ENTITY THORN            "&#x000DE;" ><!--LATIN CAPITAL LETTER THORN -->
+<!ENTITY thorn            "&#x000FE;" ><!--LATIN SMALL LETTER THORN -->
+<!ENTITY Uacute           "&#x000DA;" ><!--LATIN CAPITAL LETTER U WITH ACUTE -->
+<!ENTITY uacute           "&#x000FA;" ><!--LATIN SMALL LETTER U WITH ACUTE -->
+<!ENTITY Ucirc            "&#x000DB;" ><!--LATIN CAPITAL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY ucirc            "&#x000FB;" ><!--LATIN SMALL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY Ugrave           "&#x000D9;" ><!--LATIN CAPITAL LETTER U WITH GRAVE -->
+<!ENTITY ugrave           "&#x000F9;" ><!--LATIN SMALL LETTER U WITH GRAVE -->
+<!ENTITY Uuml             "&#x000DC;" ><!--LATIN CAPITAL LETTER U WITH DIAERESIS -->
+<!ENTITY uuml             "&#x000FC;" ><!--LATIN SMALL LETTER U WITH DIAERESIS -->
+<!ENTITY Yacute           "&#x000DD;" ><!--LATIN CAPITAL LETTER Y WITH ACUTE -->
+<!ENTITY yacute           "&#x000FD;" ><!--LATIN SMALL LETTER Y WITH ACUTE -->
+<!ENTITY yuml             "&#x000FF;" ><!--LATIN SMALL LETTER Y WITH DIAERESIS -->
diff --git a/data/dtd/isolat2.ent b/data/dtd/isolat2.ent
new file mode 100644
index 0000000..e91ffdb
--- /dev/null
+++ b/data/dtd/isolat2.ent
@@ -0,0 +1,162 @@
+
+<!--
+     File isolat2.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isolat2.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Added Latin 2//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isolat2.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isolat2 PUBLIC
+         "ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isolat2.ent";
+       >
+       %isolat2;
+
+-->
+
+<!ENTITY Abreve           "&#x00102;" ><!--LATIN CAPITAL LETTER A WITH BREVE -->
+<!ENTITY abreve           "&#x00103;" ><!--LATIN SMALL LETTER A WITH BREVE -->
+<!ENTITY Amacr            "&#x00100;" ><!--LATIN CAPITAL LETTER A WITH MACRON -->
+<!ENTITY amacr            "&#x00101;" ><!--LATIN SMALL LETTER A WITH MACRON -->
+<!ENTITY Aogon            "&#x00104;" ><!--LATIN CAPITAL LETTER A WITH OGONEK -->
+<!ENTITY aogon            "&#x00105;" ><!--LATIN SMALL LETTER A WITH OGONEK -->
+<!ENTITY Cacute           "&#x00106;" ><!--LATIN CAPITAL LETTER C WITH ACUTE -->
+<!ENTITY cacute           "&#x00107;" ><!--LATIN SMALL LETTER C WITH ACUTE -->
+<!ENTITY Ccaron           "&#x0010C;" ><!--LATIN CAPITAL LETTER C WITH CARON -->
+<!ENTITY ccaron           "&#x0010D;" ><!--LATIN SMALL LETTER C WITH CARON -->
+<!ENTITY Ccirc            "&#x00108;" ><!--LATIN CAPITAL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY ccirc            "&#x00109;" ><!--LATIN SMALL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY Cdot             "&#x0010A;" ><!--LATIN CAPITAL LETTER C WITH DOT ABOVE -->
+<!ENTITY cdot             "&#x0010B;" ><!--LATIN SMALL LETTER C WITH DOT ABOVE -->
+<!ENTITY Dcaron           "&#x0010E;" ><!--LATIN CAPITAL LETTER D WITH CARON -->
+<!ENTITY dcaron           "&#x0010F;" ><!--LATIN SMALL LETTER D WITH CARON -->
+<!ENTITY Dstrok           "&#x00110;" ><!--LATIN CAPITAL LETTER D WITH STROKE -->
+<!ENTITY dstrok           "&#x00111;" ><!--LATIN SMALL LETTER D WITH STROKE -->
+<!ENTITY Ecaron           "&#x0011A;" ><!--LATIN CAPITAL LETTER E WITH CARON -->
+<!ENTITY ecaron           "&#x0011B;" ><!--LATIN SMALL LETTER E WITH CARON -->
+<!ENTITY Edot             "&#x00116;" ><!--LATIN CAPITAL LETTER E WITH DOT ABOVE -->
+<!ENTITY edot             "&#x00117;" ><!--LATIN SMALL LETTER E WITH DOT ABOVE -->
+<!ENTITY Emacr            "&#x00112;" ><!--LATIN CAPITAL LETTER E WITH MACRON -->
+<!ENTITY emacr            "&#x00113;" ><!--LATIN SMALL LETTER E WITH MACRON -->
+<!ENTITY ENG              "&#x0014A;" ><!--LATIN CAPITAL LETTER ENG -->
+<!ENTITY eng              "&#x0014B;" ><!--LATIN SMALL LETTER ENG -->
+<!ENTITY Eogon            "&#x00118;" ><!--LATIN CAPITAL LETTER E WITH OGONEK -->
+<!ENTITY eogon            "&#x00119;" ><!--LATIN SMALL LETTER E WITH OGONEK -->
+<!ENTITY gacute           "&#x001F5;" ><!--LATIN SMALL LETTER G WITH ACUTE -->
+<!ENTITY Gbreve           "&#x0011E;" ><!--LATIN CAPITAL LETTER G WITH BREVE -->
+<!ENTITY gbreve           "&#x0011F;" ><!--LATIN SMALL LETTER G WITH BREVE -->
+<!ENTITY Gcedil           "&#x00122;" ><!--LATIN CAPITAL LETTER G WITH CEDILLA -->
+<!ENTITY Gcirc            "&#x0011C;" ><!--LATIN CAPITAL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY gcirc            "&#x0011D;" ><!--LATIN SMALL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY Gdot             "&#x00120;" ><!--LATIN CAPITAL LETTER G WITH DOT ABOVE -->
+<!ENTITY gdot             "&#x00121;" ><!--LATIN SMALL LETTER G WITH DOT ABOVE -->
+<!ENTITY Hcirc            "&#x00124;" ><!--LATIN CAPITAL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY hcirc            "&#x00125;" ><!--LATIN SMALL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY Hstrok           "&#x00126;" ><!--LATIN CAPITAL LETTER H WITH STROKE -->
+<!ENTITY hstrok           "&#x00127;" ><!--LATIN SMALL LETTER H WITH STROKE -->
+<!ENTITY Idot             "&#x00130;" ><!--LATIN CAPITAL LETTER I WITH DOT ABOVE -->
+<!ENTITY IJlig            "&#x00132;" ><!--LATIN CAPITAL LIGATURE IJ -->
+<!ENTITY ijlig            "&#x00133;" ><!--LATIN SMALL LIGATURE IJ -->
+<!ENTITY Imacr            "&#x0012A;" ><!--LATIN CAPITAL LETTER I WITH MACRON -->
+<!ENTITY imacr            "&#x0012B;" ><!--LATIN SMALL LETTER I WITH MACRON -->
+<!ENTITY inodot           "&#x00131;" ><!--LATIN SMALL LETTER DOTLESS I -->
+<!ENTITY Iogon            "&#x0012E;" ><!--LATIN CAPITAL LETTER I WITH OGONEK -->
+<!ENTITY iogon            "&#x0012F;" ><!--LATIN SMALL LETTER I WITH OGONEK -->
+<!ENTITY Itilde           "&#x00128;" ><!--LATIN CAPITAL LETTER I WITH TILDE -->
+<!ENTITY itilde           "&#x00129;" ><!--LATIN SMALL LETTER I WITH TILDE -->
+<!ENTITY Jcirc            "&#x00134;" ><!--LATIN CAPITAL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY jcirc            "&#x00135;" ><!--LATIN SMALL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY Kcedil           "&#x00136;" ><!--LATIN CAPITAL LETTER K WITH CEDILLA -->
+<!ENTITY kcedil           "&#x00137;" ><!--LATIN SMALL LETTER K WITH CEDILLA -->
+<!ENTITY kgreen           "&#x00138;" ><!--LATIN SMALL LETTER KRA -->
+<!ENTITY Lacute           "&#x00139;" ><!--LATIN CAPITAL LETTER L WITH ACUTE -->
+<!ENTITY lacute           "&#x0013A;" ><!--LATIN SMALL LETTER L WITH ACUTE -->
+<!ENTITY Lcaron           "&#x0013D;" ><!--LATIN CAPITAL LETTER L WITH CARON -->
+<!ENTITY lcaron           "&#x0013E;" ><!--LATIN SMALL LETTER L WITH CARON -->
+<!ENTITY Lcedil           "&#x0013B;" ><!--LATIN CAPITAL LETTER L WITH CEDILLA -->
+<!ENTITY lcedil           "&#x0013C;" ><!--LATIN SMALL LETTER L WITH CEDILLA -->
+<!ENTITY Lmidot           "&#x0013F;" ><!--LATIN CAPITAL LETTER L WITH MIDDLE DOT -->
+<!ENTITY lmidot           "&#x00140;" ><!--LATIN SMALL LETTER L WITH MIDDLE DOT -->
+<!ENTITY Lstrok           "&#x00141;" ><!--LATIN CAPITAL LETTER L WITH STROKE -->
+<!ENTITY lstrok           "&#x00142;" ><!--LATIN SMALL LETTER L WITH STROKE -->
+<!ENTITY Nacute           "&#x00143;" ><!--LATIN CAPITAL LETTER N WITH ACUTE -->
+<!ENTITY nacute           "&#x00144;" ><!--LATIN SMALL LETTER N WITH ACUTE -->
+<!ENTITY napos            "&#x00149;" ><!--LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -->
+<!ENTITY Ncaron           "&#x00147;" ><!--LATIN CAPITAL LETTER N WITH CARON -->
+<!ENTITY ncaron           "&#x00148;" ><!--LATIN SMALL LETTER N WITH CARON -->
+<!ENTITY Ncedil           "&#x00145;" ><!--LATIN CAPITAL LETTER N WITH CEDILLA -->
+<!ENTITY ncedil           "&#x00146;" ><!--LATIN SMALL LETTER N WITH CEDILLA -->
+<!ENTITY Odblac           "&#x00150;" ><!--LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY odblac           "&#x00151;" ><!--LATIN SMALL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY OElig            "&#x00152;" ><!--LATIN CAPITAL LIGATURE OE -->
+<!ENTITY oelig            "&#x00153;" ><!--LATIN SMALL LIGATURE OE -->
+<!ENTITY Omacr            "&#x0014C;" ><!--LATIN CAPITAL LETTER O WITH MACRON -->
+<!ENTITY omacr            "&#x0014D;" ><!--LATIN SMALL LETTER O WITH MACRON -->
+<!ENTITY Racute           "&#x00154;" ><!--LATIN CAPITAL LETTER R WITH ACUTE -->
+<!ENTITY racute           "&#x00155;" ><!--LATIN SMALL LETTER R WITH ACUTE -->
+<!ENTITY Rcaron           "&#x00158;" ><!--LATIN CAPITAL LETTER R WITH CARON -->
+<!ENTITY rcaron           "&#x00159;" ><!--LATIN SMALL LETTER R WITH CARON -->
+<!ENTITY Rcedil           "&#x00156;" ><!--LATIN CAPITAL LETTER R WITH CEDILLA -->
+<!ENTITY rcedil           "&#x00157;" ><!--LATIN SMALL LETTER R WITH CEDILLA -->
+<!ENTITY Sacute           "&#x0015A;" ><!--LATIN CAPITAL LETTER S WITH ACUTE -->
+<!ENTITY sacute           "&#x0015B;" ><!--LATIN SMALL LETTER S WITH ACUTE -->
+<!ENTITY Scaron           "&#x00160;" ><!--LATIN CAPITAL LETTER S WITH CARON -->
+<!ENTITY scaron           "&#x00161;" ><!--LATIN SMALL LETTER S WITH CARON -->
+<!ENTITY Scedil           "&#x0015E;" ><!--LATIN CAPITAL LETTER S WITH CEDILLA -->
+<!ENTITY scedil           "&#x0015F;" ><!--LATIN SMALL LETTER S WITH CEDILLA -->
+<!ENTITY Scirc            "&#x0015C;" ><!--LATIN CAPITAL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY scirc            "&#x0015D;" ><!--LATIN SMALL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY Tcaron           "&#x00164;" ><!--LATIN CAPITAL LETTER T WITH CARON -->
+<!ENTITY tcaron           "&#x00165;" ><!--LATIN SMALL LETTER T WITH CARON -->
+<!ENTITY Tcedil           "&#x00162;" ><!--LATIN CAPITAL LETTER T WITH CEDILLA -->
+<!ENTITY tcedil           "&#x00163;" ><!--LATIN SMALL LETTER T WITH CEDILLA -->
+<!ENTITY Tstrok           "&#x00166;" ><!--LATIN CAPITAL LETTER T WITH STROKE -->
+<!ENTITY tstrok           "&#x00167;" ><!--LATIN SMALL LETTER T WITH STROKE -->
+<!ENTITY Ubreve           "&#x0016C;" ><!--LATIN CAPITAL LETTER U WITH BREVE -->
+<!ENTITY ubreve           "&#x0016D;" ><!--LATIN SMALL LETTER U WITH BREVE -->
+<!ENTITY Udblac           "&#x00170;" ><!--LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY udblac           "&#x00171;" ><!--LATIN SMALL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY Umacr            "&#x0016A;" ><!--LATIN CAPITAL LETTER U WITH MACRON -->
+<!ENTITY umacr            "&#x0016B;" ><!--LATIN SMALL LETTER U WITH MACRON -->
+<!ENTITY Uogon            "&#x00172;" ><!--LATIN CAPITAL LETTER U WITH OGONEK -->
+<!ENTITY uogon            "&#x00173;" ><!--LATIN SMALL LETTER U WITH OGONEK -->
+<!ENTITY Uring            "&#x0016E;" ><!--LATIN CAPITAL LETTER U WITH RING ABOVE -->
+<!ENTITY uring            "&#x0016F;" ><!--LATIN SMALL LETTER U WITH RING ABOVE -->
+<!ENTITY Utilde           "&#x00168;" ><!--LATIN CAPITAL LETTER U WITH TILDE -->
+<!ENTITY utilde           "&#x00169;" ><!--LATIN SMALL LETTER U WITH TILDE -->
+<!ENTITY Wcirc            "&#x00174;" ><!--LATIN CAPITAL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY wcirc            "&#x00175;" ><!--LATIN SMALL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY Ycirc            "&#x00176;" ><!--LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY ycirc            "&#x00177;" ><!--LATIN SMALL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Yuml             "&#x00178;" ><!--LATIN CAPITAL LETTER Y WITH DIAERESIS -->
+<!ENTITY Zacute           "&#x00179;" ><!--LATIN CAPITAL LETTER Z WITH ACUTE -->
+<!ENTITY zacute           "&#x0017A;" ><!--LATIN SMALL LETTER Z WITH ACUTE -->
+<!ENTITY Zcaron           "&#x0017D;" ><!--LATIN CAPITAL LETTER Z WITH CARON -->
+<!ENTITY zcaron           "&#x0017E;" ><!--LATIN SMALL LETTER Z WITH CARON -->
+<!ENTITY Zdot             "&#x0017B;" ><!--LATIN CAPITAL LETTER Z WITH DOT ABOVE -->
+<!ENTITY zdot             "&#x0017C;" ><!--LATIN SMALL LETTER Z WITH DOT ABOVE -->
diff --git a/data/dtd/isonum.ent b/data/dtd/isonum.ent
new file mode 100644
index 0000000..884c0c4
--- /dev/null
+++ b/data/dtd/isonum.ent
@@ -0,0 +1,117 @@
+
+<!--
+     File isonum.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isonum.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isonum.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isonum PUBLIC
+         "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isonum.ent";
+       >
+       %isonum;
+
+-->
+
+<!ENTITY amp              "&#38;#38;" ><!--AMPERSAND -->
+<!ENTITY apos             "&#x00027;" ><!--APOSTROPHE -->
+<!ENTITY ast              "&#x0002A;" ><!--ASTERISK -->
+<!ENTITY brvbar           "&#x000A6;" ><!--BROKEN BAR -->
+<!ENTITY bsol             "&#x0005C;" ><!--REVERSE SOLIDUS -->
+<!ENTITY cent             "&#x000A2;" ><!--CENT SIGN -->
+<!ENTITY colon            "&#x0003A;" ><!--COLON -->
+<!ENTITY comma            "&#x0002C;" ><!--COMMA -->
+<!ENTITY commat           "&#x00040;" ><!--COMMERCIAL AT -->
+<!ENTITY copy             "&#x000A9;" ><!--COPYRIGHT SIGN -->
+<!ENTITY curren           "&#x000A4;" ><!--CURRENCY SIGN -->
+<!ENTITY darr             "&#x02193;" ><!--DOWNWARDS ARROW -->
+<!ENTITY deg              "&#x000B0;" ><!--DEGREE SIGN -->
+<!ENTITY divide           "&#x000F7;" ><!--DIVISION SIGN -->
+<!ENTITY dollar           "&#x00024;" ><!--DOLLAR SIGN -->
+<!ENTITY equals           "&#x0003D;" ><!--EQUALS SIGN -->
+<!ENTITY excl             "&#x00021;" ><!--EXCLAMATION MARK -->
+<!ENTITY frac12           "&#x000BD;" ><!--VULGAR FRACTION ONE HALF -->
+<!ENTITY frac14           "&#x000BC;" ><!--VULGAR FRACTION ONE QUARTER -->
+<!ENTITY frac18           "&#x0215B;" ><!--VULGAR FRACTION ONE EIGHTH -->
+<!ENTITY frac34           "&#x000BE;" ><!--VULGAR FRACTION THREE QUARTERS -->
+<!ENTITY frac38           "&#x0215C;" ><!--VULGAR FRACTION THREE EIGHTHS -->
+<!ENTITY frac58           "&#x0215D;" ><!--VULGAR FRACTION FIVE EIGHTHS -->
+<!ENTITY frac78           "&#x0215E;" ><!--VULGAR FRACTION SEVEN EIGHTHS -->
+<!ENTITY gt               "&#x0003E;" ><!--GREATER-THAN SIGN -->
+<!ENTITY half             "&#x000BD;" ><!--VULGAR FRACTION ONE HALF -->
+<!ENTITY horbar           "&#x02015;" ><!--HORIZONTAL BAR -->
+<!ENTITY hyphen           "&#x02010;" ><!--HYPHEN -->
+<!ENTITY iexcl            "&#x000A1;" ><!--INVERTED EXCLAMATION MARK -->
+<!ENTITY iquest           "&#x000BF;" ><!--INVERTED QUESTION MARK -->
+<!ENTITY laquo            "&#x000AB;" ><!--LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY larr             "&#x02190;" ><!--LEFTWARDS ARROW -->
+<!ENTITY lcub             "&#x0007B;" ><!--LEFT CURLY BRACKET -->
+<!ENTITY ldquo            "&#x0201C;" ><!--LEFT DOUBLE QUOTATION MARK -->
+<!ENTITY lowbar           "&#x0005F;" ><!--LOW LINE -->
+<!ENTITY lpar             "&#x00028;" ><!--LEFT PARENTHESIS -->
+<!ENTITY lsqb             "&#x0005B;" ><!--LEFT SQUARE BRACKET -->
+<!ENTITY lsquo            "&#x02018;" ><!--LEFT SINGLE QUOTATION MARK -->
+<!ENTITY lt               "&#38;#60;" ><!--LESS-THAN SIGN -->
+<!ENTITY micro            "&#x000B5;" ><!--MICRO SIGN -->
+<!ENTITY middot           "&#x000B7;" ><!--MIDDLE DOT -->
+<!ENTITY nbsp             "&#x000A0;" ><!--NO-BREAK SPACE -->
+<!ENTITY not              "&#x000AC;" ><!--NOT SIGN -->
+<!ENTITY num              "&#x00023;" ><!--NUMBER SIGN -->
+<!ENTITY ohm              "&#x02126;" ><!--OHM SIGN -->
+<!ENTITY ordf             "&#x000AA;" ><!--FEMININE ORDINAL INDICATOR -->
+<!ENTITY ordm             "&#x000BA;" ><!--MASCULINE ORDINAL INDICATOR -->
+<!ENTITY para             "&#x000B6;" ><!--PILCROW SIGN -->
+<!ENTITY percnt           "&#x00025;" ><!--PERCENT SIGN -->
+<!ENTITY period           "&#x0002E;" ><!--FULL STOP -->
+<!ENTITY plus             "&#x0002B;" ><!--PLUS SIGN -->
+<!ENTITY plusmn           "&#x000B1;" ><!--PLUS-MINUS SIGN -->
+<!ENTITY pound            "&#x000A3;" ><!--POUND SIGN -->
+<!ENTITY quest            "&#x0003F;" ><!--QUESTION MARK -->
+<!ENTITY quot             "&#x00022;" ><!--QUOTATION MARK -->
+<!ENTITY raquo            "&#x000BB;" ><!--RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY rarr             "&#x02192;" ><!--RIGHTWARDS ARROW -->
+<!ENTITY rcub             "&#x0007D;" ><!--RIGHT CURLY BRACKET -->
+<!ENTITY rdquo            "&#x0201D;" ><!--RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY reg              "&#x000AE;" ><!--REGISTERED SIGN -->
+<!ENTITY rpar             "&#x00029;" ><!--RIGHT PARENTHESIS -->
+<!ENTITY rsqb             "&#x0005D;" ><!--RIGHT SQUARE BRACKET -->
+<!ENTITY rsquo            "&#x02019;" ><!--RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY sect             "&#x000A7;" ><!--SECTION SIGN -->
+<!ENTITY semi             "&#x0003B;" ><!--SEMICOLON -->
+<!ENTITY shy              "&#x000AD;" ><!--SOFT HYPHEN -->
+<!ENTITY sol              "&#x0002F;" ><!--SOLIDUS -->
+<!ENTITY sung             "&#x0266A;" ><!--EIGHTH NOTE -->
+<!ENTITY sup1             "&#x000B9;" ><!--SUPERSCRIPT ONE -->
+<!ENTITY sup2             "&#x000B2;" ><!--SUPERSCRIPT TWO -->
+<!ENTITY sup3             "&#x000B3;" ><!--SUPERSCRIPT THREE -->
+<!ENTITY times            "&#x000D7;" ><!--MULTIPLICATION SIGN -->
+<!ENTITY trade            "&#x02122;" ><!--TRADE MARK SIGN -->
+<!ENTITY uarr             "&#x02191;" ><!--UPWARDS ARROW -->
+<!ENTITY verbar           "&#x0007C;" ><!--VERTICAL LINE -->
+<!ENTITY yen              "&#x000A5;" ><!--YEN SIGN -->
diff --git a/data/dtd/isopub.ent b/data/dtd/isopub.ent
new file mode 100644
index 0000000..a117878
--- /dev/null
+++ b/data/dtd/isopub.ent
@@ -0,0 +1,125 @@
+
+<!--
+     File isopub.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isopub.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES Publishing//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isopub.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isopub PUBLIC
+         "ISO 8879:1986//ENTITIES Publishing//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isopub.ent";
+       >
+       %isopub;
+
+-->
+
+<!ENTITY blank            "&#x02423;" ><!--OPEN BOX -->
+<!ENTITY blk12            "&#x02592;" ><!--MEDIUM SHADE -->
+<!ENTITY blk14            "&#x02591;" ><!--LIGHT SHADE -->
+<!ENTITY blk34            "&#x02593;" ><!--DARK SHADE -->
+<!ENTITY block            "&#x02588;" ><!--FULL BLOCK -->
+<!ENTITY bull             "&#x02022;" ><!--BULLET -->
+<!ENTITY caret            "&#x02041;" ><!--CARET INSERTION POINT -->
+<!ENTITY check            "&#x02713;" ><!--CHECK MARK -->
+<!ENTITY cir              "&#x025CB;" ><!--WHITE CIRCLE -->
+<!ENTITY clubs            "&#x02663;" ><!--BLACK CLUB SUIT -->
+<!ENTITY copysr           "&#x02117;" ><!--SOUND RECORDING COPYRIGHT -->
+<!ENTITY cross            "&#x02717;" ><!--BALLOT X -->
+<!ENTITY Dagger           "&#x02021;" ><!--DOUBLE DAGGER -->
+<!ENTITY dagger           "&#x02020;" ><!--DAGGER -->
+<!ENTITY dash             "&#x02010;" ><!--HYPHEN -->
+<!ENTITY diams            "&#x02666;" ><!--BLACK DIAMOND SUIT -->
+<!ENTITY dlcrop           "&#x0230D;" ><!--BOTTOM LEFT CROP -->
+<!ENTITY drcrop           "&#x0230C;" ><!--BOTTOM RIGHT CROP -->
+<!ENTITY dtri             "&#x025BF;" ><!--WHITE DOWN-POINTING SMALL TRIANGLE -->
+<!ENTITY dtrif            "&#x025BE;" ><!--BLACK DOWN-POINTING SMALL TRIANGLE -->
+<!ENTITY emsp             "&#x02003;" ><!--EM SPACE -->
+<!ENTITY emsp13           "&#x02004;" ><!--THREE-PER-EM SPACE -->
+<!ENTITY emsp14           "&#x02005;" ><!--FOUR-PER-EM SPACE -->
+<!ENTITY ensp             "&#x02002;" ><!--EN SPACE -->
+<!ENTITY female           "&#x02640;" ><!--FEMALE SIGN -->
+<!ENTITY ffilig           "&#x0FB03;" ><!--LATIN SMALL LIGATURE FFI -->
+<!ENTITY fflig            "&#x0FB00;" ><!--LATIN SMALL LIGATURE FF -->
+<!ENTITY ffllig           "&#x0FB04;" ><!--LATIN SMALL LIGATURE FFL -->
+<!ENTITY filig            "&#x0FB01;" ><!--LATIN SMALL LIGATURE FI -->
+<!ENTITY flat             "&#x0266D;" ><!--MUSIC FLAT SIGN -->
+<!ENTITY fllig            "&#x0FB02;" ><!--LATIN SMALL LIGATURE FL -->
+<!ENTITY frac13           "&#x02153;" ><!--VULGAR FRACTION ONE THIRD -->
+<!ENTITY frac15           "&#x02155;" ><!--VULGAR FRACTION ONE FIFTH -->
+<!ENTITY frac16           "&#x02159;" ><!--VULGAR FRACTION ONE SIXTH -->
+<!ENTITY frac23           "&#x02154;" ><!--VULGAR FRACTION TWO THIRDS -->
+<!ENTITY frac25           "&#x02156;" ><!--VULGAR FRACTION TWO FIFTHS -->
+<!ENTITY frac35           "&#x02157;" ><!--VULGAR FRACTION THREE FIFTHS -->
+<!ENTITY frac45           "&#x02158;" ><!--VULGAR FRACTION FOUR FIFTHS -->
+<!ENTITY frac56           "&#x0215A;" ><!--VULGAR FRACTION FIVE SIXTHS -->
+<!ENTITY hairsp           "&#x0200A;" ><!--HAIR SPACE -->
+<!ENTITY hearts           "&#x02665;" ><!--BLACK HEART SUIT -->
+<!ENTITY hellip           "&#x02026;" ><!--HORIZONTAL ELLIPSIS -->
+<!ENTITY hybull           "&#x02043;" ><!--HYPHEN BULLET -->
+<!ENTITY incare           "&#x02105;" ><!--CARE OF -->
+<!ENTITY ldquor           "&#x0201E;" ><!--DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY lhblk            "&#x02584;" ><!--LOWER HALF BLOCK -->
+<!ENTITY loz              "&#x025CA;" ><!--LOZENGE -->
+<!ENTITY lozf             "&#x029EB;" ><!--BLACK LOZENGE -->
+<!ENTITY lsquor           "&#x0201A;" ><!--SINGLE LOW-9 QUOTATION MARK -->
+<!ENTITY ltri             "&#x025C3;" ><!--WHITE LEFT-POINTING SMALL TRIANGLE -->
+<!ENTITY ltrif            "&#x025C2;" ><!--BLACK LEFT-POINTING SMALL TRIANGLE -->
+<!ENTITY male             "&#x02642;" ><!--MALE SIGN -->
+<!ENTITY malt             "&#x02720;" ><!--MALTESE CROSS -->
+<!ENTITY marker           "&#x025AE;" ><!--BLACK VERTICAL RECTANGLE -->
+<!ENTITY mdash            "&#x02014;" ><!--EM DASH -->
+<!ENTITY mldr             "&#x02026;" ><!--HORIZONTAL ELLIPSIS -->
+<!ENTITY natur            "&#x0266E;" ><!--MUSIC NATURAL SIGN -->
+<!ENTITY ndash            "&#x02013;" ><!--EN DASH -->
+<!ENTITY nldr             "&#x02025;" ><!--TWO DOT LEADER -->
+<!ENTITY numsp            "&#x02007;" ><!--FIGURE SPACE -->
+<!ENTITY phone            "&#x0260E;" ><!--BLACK TELEPHONE -->
+<!ENTITY puncsp           "&#x02008;" ><!--PUNCTUATION SPACE -->
+<!ENTITY rdquor           "&#x0201D;" ><!--RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY rect             "&#x025AD;" ><!--WHITE RECTANGLE -->
+<!ENTITY rsquor           "&#x02019;" ><!--RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY rtri             "&#x025B9;" ><!--WHITE RIGHT-POINTING SMALL TRIANGLE -->
+<!ENTITY rtrif            "&#x025B8;" ><!--BLACK RIGHT-POINTING SMALL TRIANGLE -->
+<!ENTITY rx               "&#x0211E;" ><!--PRESCRIPTION TAKE -->
+<!ENTITY sext             "&#x02736;" ><!--SIX POINTED BLACK STAR -->
+<!ENTITY sharp            "&#x0266F;" ><!--MUSIC SHARP SIGN -->
+<!ENTITY spades           "&#x02660;" ><!--BLACK SPADE SUIT -->
+<!ENTITY squ              "&#x025A1;" ><!--WHITE SQUARE -->
+<!ENTITY squf             "&#x025AA;" ><!--BLACK SMALL SQUARE -->
+<!ENTITY star             "&#x02606;" ><!--WHITE STAR -->
+<!ENTITY starf            "&#x02605;" ><!--BLACK STAR -->
+<!ENTITY target           "&#x02316;" ><!--POSITION INDICATOR -->
+<!ENTITY telrec           "&#x02315;" ><!--TELEPHONE RECORDER -->
+<!ENTITY thinsp           "&#x02009;" ><!--THIN SPACE -->
+<!ENTITY uhblk            "&#x02580;" ><!--UPPER HALF BLOCK -->
+<!ENTITY ulcrop           "&#x0230F;" ><!--TOP LEFT CROP -->
+<!ENTITY urcrop           "&#x0230E;" ><!--TOP RIGHT CROP -->
+<!ENTITY utri             "&#x025B5;" ><!--WHITE UP-POINTING SMALL TRIANGLE -->
+<!ENTITY utrif            "&#x025B4;" ><!--BLACK UP-POINTING SMALL TRIANGLE -->
+<!ENTITY vellip           "&#x022EE;" ><!--VERTICAL ELLIPSIS -->
diff --git a/data/dtd/isotech.ent b/data/dtd/isotech.ent
new file mode 100644
index 0000000..07e8100
--- /dev/null
+++ b/data/dtd/isotech.ent
@@ -0,0 +1,103 @@
+
+<!--
+     File isotech.ent produced by the XSL script entities.xsl
+     from input data in unicode.xml.
+
+     Please report any errors to David Carlisle
+     via the public W3C list www-math w3 org 
+
+     The numeric character values assigned to each entity
+     (should) match the Unicode assignments in Unicode 4.0.
+
+     Entity names in this file are derived from files carrying the
+     following notice:
+
+     (C) International Organization for Standardization 1986
+     Permission to copy in any form is granted for use with
+     conforming SGML systems and applications as defined in
+     ISO 8879, provided this notice is included in all copies.
+
+-->
+
+
+<!-- 
+     Version: $Id: isotech.ent,v 1.2 2003/12/08 15:14:43 davidc Exp $
+
+       Public identifier: ISO 8879:1986//ENTITIES General Technical//EN//XML
+       System identifier: http://www.w3.org/2003/entities/iso8879/isotech.ent
+
+     The public identifier should always be used verbatim.
+     The system identifier may be changed to suit local requirements.
+
+     Typical invocation:
+
+       <!ENTITY % isotech PUBLIC
+         "ISO 8879:1986//ENTITIES General Technical//EN//XML"
+         "http://www.w3.org/2003/entities/iso8879/isotech.ent";
+       >
+       %isotech;
+
+-->
+
+<!ENTITY aleph            "&#x02135;" ><!--ALEF SYMBOL -->
+<!ENTITY and              "&#x02227;" ><!--LOGICAL AND -->
+<!ENTITY ang90            "&#x0221F;" ><!--RIGHT ANGLE -->
+<!ENTITY angsph           "&#x02222;" ><!--SPHERICAL ANGLE -->
+<!ENTITY angst            "&#x0212B;" ><!--ANGSTROM SIGN -->
+<!ENTITY ap               "&#x02248;" ><!--ALMOST EQUAL TO -->
+<!ENTITY becaus           "&#x02235;" ><!--BECAUSE -->
+<!ENTITY bernou           "&#x0212C;" ><!--SCRIPT CAPITAL B -->
+<!ENTITY bottom           "&#x022A5;" ><!--UP TACK -->
+<!ENTITY cap              "&#x02229;" ><!--INTERSECTION -->
+<!ENTITY compfn           "&#x02218;" ><!--RING OPERATOR -->
+<!ENTITY cong             "&#x02245;" ><!--APPROXIMATELY EQUAL TO -->
+<!ENTITY conint           "&#x0222E;" ><!--CONTOUR INTEGRAL -->
+<!ENTITY cup              "&#x0222A;" ><!--UNION -->
+<!ENTITY Dot              "&#x000A8;" ><!--DIAERESIS -->
+<!ENTITY DotDot           " &#x020DC;" ><!--COMBINING FOUR DOTS ABOVE -->
+<!ENTITY equiv            "&#x02261;" ><!--IDENTICAL TO -->
+<!ENTITY exist            "&#x02203;" ><!--THERE EXISTS -->
+<!ENTITY fnof             "&#x00192;" ><!--LATIN SMALL LETTER F WITH HOOK -->
+<!ENTITY forall           "&#x02200;" ><!--FOR ALL -->
+<!ENTITY ge               "&#x02265;" ><!--GREATER-THAN OR EQUAL TO -->
+<!ENTITY hamilt           "&#x0210B;" ><!--SCRIPT CAPITAL H -->
+<!ENTITY iff              "&#x021D4;" ><!--LEFT RIGHT DOUBLE ARROW -->
+<!ENTITY infin            "&#x0221E;" ><!--INFINITY -->
+<!ENTITY int              "&#x0222B;" ><!--INTEGRAL -->
+<!ENTITY isin             "&#x02208;" ><!--ELEMENT OF -->
+<!ENTITY lagran           "&#x02112;" ><!--SCRIPT CAPITAL L -->
+<!ENTITY lang             "&#x02329;" ><!--LEFT-POINTING ANGLE BRACKET -->
+<!ENTITY lArr             "&#x021D0;" ><!--LEFTWARDS DOUBLE ARROW -->
+<!ENTITY le               "&#x02264;" ><!--LESS-THAN OR EQUAL TO -->
+<!ENTITY lowast           "&#x02217;" ><!--ASTERISK OPERATOR -->
+<!ENTITY minus            "&#x02212;" ><!--MINUS SIGN -->
+<!ENTITY mnplus           "&#x02213;" ><!--MINUS-OR-PLUS SIGN -->
+<!ENTITY nabla            "&#x02207;" ><!--NABLA -->
+<!ENTITY ne               "&#x02260;" ><!--NOT EQUAL TO -->
+<!ENTITY ni               "&#x0220B;" ><!--CONTAINS AS MEMBER -->
+<!ENTITY notin            "&#x02209;" ><!--NOT AN ELEMENT OF -->
+<!ENTITY or               "&#x02228;" ><!--LOGICAL OR -->
+<!ENTITY order            "&#x02134;" ><!--SCRIPT SMALL O -->
+<!ENTITY par              "&#x02225;" ><!--PARALLEL TO -->
+<!ENTITY part             "&#x02202;" ><!--PARTIAL DIFFERENTIAL -->
+<!ENTITY permil           "&#x02030;" ><!--PER MILLE SIGN -->
+<!ENTITY perp             "&#x022A5;" ><!--UP TACK -->
+<!ENTITY phmmat           "&#x02133;" ><!--SCRIPT CAPITAL M -->
+<!ENTITY Prime            "&#x02033;" ><!--DOUBLE PRIME -->
+<!ENTITY prime            "&#x02032;" ><!--PRIME -->
+<!ENTITY prop             "&#x0221D;" ><!--PROPORTIONAL TO -->
+<!ENTITY radic            "&#x0221A;" ><!--SQUARE ROOT -->
+<!ENTITY rang             "&#x0232A;" ><!--RIGHT-POINTING ANGLE BRACKET -->
+<!ENTITY rArr             "&#x021D2;" ><!--RIGHTWARDS DOUBLE ARROW -->
+<!ENTITY sim              "&#x0223C;" ><!--TILDE OPERATOR -->
+<!ENTITY sime             "&#x02243;" ><!--ASYMPTOTICALLY EQUAL TO -->
+<!ENTITY square           "&#x025A1;" ><!--WHITE SQUARE -->
+<!ENTITY sub              "&#x02282;" ><!--SUBSET OF -->
+<!ENTITY sube             "&#x02286;" ><!--SUBSET OF OR EQUAL TO -->
+<!ENTITY sup              "&#x02283;" ><!--SUPERSET OF -->
+<!ENTITY supe             "&#x02287;" ><!--SUPERSET OF OR EQUAL TO -->
+<!ENTITY tdot             " &#x020DB;" ><!--COMBINING THREE DOTS ABOVE -->
+<!ENTITY there4           "&#x02234;" ><!--THEREFORE -->
+<!ENTITY tprime           "&#x02034;" ><!--TRIPLE PRIME -->
+<!ENTITY Verbar           "&#x02016;" ><!--DOUBLE VERTICAL LINE -->
+<!ENTITY wedgeq           "&#x02259;" ><!--ESTIMATES -->
diff --git a/libyelp/yelp-docbook-document.c b/libyelp/yelp-docbook-document.c
index a00e567..d4b4cec 100644
--- a/libyelp/yelp-docbook-document.c
+++ b/libyelp/yelp-docbook-document.c
@@ -38,6 +38,8 @@
 #include "yelp-debug.h"
 
 #define STYLESHEET DATADIR"/yelp/xslt/db2html.xsl"
+#define DEFAULT_CATALOG "file:///etc/xml/catalog"
+#define YELP_CATALOG "file://"DATADIR"/yelp/dtd/catalog"
 
 typedef enum {
     DOCBOOK_STATE_BLANK,   /* Brand new, run transform as needed */
@@ -125,6 +127,19 @@ yelp_docbook_document_class_init (YelpDocbookDocumentClass *klass)
 {
     GObjectClass      *object_class   = G_OBJECT_CLASS (klass);
     YelpDocumentClass *document_class = YELP_DOCUMENT_CLASS (klass);
+    const gchar *catalog = g_getenv ("XML_CATALOG_FILES");
+
+    /* We ship a faux DocBook catalog. It just contains the common entity
+     * definitions. Documents can use the named entities they expect to
+     * be able to use, but we don't have to depend on docbook-dtds.
+     */
+    if (catalog == NULL)
+        catalog = DEFAULT_CATALOG;
+    if (!strstr(catalog, YELP_CATALOG)) {
+        gchar *newcat = g_strconcat (YELP_CATALOG, " ", catalog, NULL);
+        g_setenv ("XML_CATALOG_FILES", newcat, TRUE);
+        g_free (newcat);
+    }
 
     object_class->dispose = yelp_docbook_document_dispose;
     object_class->finalize = yelp_docbook_document_finalize;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]