[yelp] yelp-docbook-document: Provide named entities without docbook-dtds
- From: Shaun McCance <shaunm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [yelp] yelp-docbook-document: Provide named entities without docbook-dtds
- Date: Fri, 14 Jan 2011 03:17:12 +0000 (UTC)
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 "↶" ><!--ANTICLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY curarr "↷" ><!--CLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY dArr "⇓" ><!--DOWNWARDS DOUBLE ARROW -->
+<!ENTITY darr2 "⇊" ><!--DOWNWARDS PAIRED ARROWS -->
+<!ENTITY dharl "⇃" ><!--DOWNWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY dharr "⇂" ><!--DOWNWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY dlarr "↙" ><!--SOUTH WEST ARROW -->
+<!ENTITY drarr "↘" ><!--SOUTH EAST ARROW -->
+<!ENTITY hArr "⇔" ><!--LEFT RIGHT DOUBLE ARROW -->
+<!ENTITY harr "↔" ><!--LEFT RIGHT ARROW -->
+<!ENTITY harrw "↭" ><!--LEFT RIGHT WAVE ARROW -->
+<!ENTITY lAarr "⇚" ><!--LEFTWARDS TRIPLE ARROW -->
+<!ENTITY Larr "↞" ><!--LEFTWARDS TWO HEADED ARROW -->
+<!ENTITY larr2 "⇇" ><!--LEFTWARDS PAIRED ARROWS -->
+<!ENTITY larrhk "↩" ><!--LEFTWARDS ARROW WITH HOOK -->
+<!ENTITY larrlp "↫" ><!--LEFTWARDS ARROW WITH LOOP -->
+<!ENTITY larrtl "↢" ><!--LEFTWARDS ARROW WITH TAIL -->
+<!ENTITY lhard "↽" ><!--LEFTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY lharu "↼" ><!--LEFTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY lrarr2 "⇆" ><!--LEFTWARDS ARROW OVER RIGHTWARDS ARROW -->
+<!ENTITY lrhar2 "⇋" ><!--LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON -->
+<!ENTITY lsh "↰" ><!--UPWARDS ARROW WITH TIP LEFTWARDS -->
+<!ENTITY map "↦" ><!--RIGHTWARDS ARROW FROM BAR -->
+<!ENTITY mumap "⊸" ><!--MULTIMAP -->
+<!ENTITY nearr "↗" ><!--NORTH EAST ARROW -->
+<!ENTITY nhArr "⇎" ><!--LEFT RIGHT DOUBLE ARROW WITH STROKE -->
+<!ENTITY nharr "↮" ><!--LEFT RIGHT ARROW WITH STROKE -->
+<!ENTITY nlArr "⇍" ><!--LEFTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nlarr "↚" ><!--LEFTWARDS ARROW WITH STROKE -->
+<!ENTITY nrArr "⇏" ><!--RIGHTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nrarr "↛" ><!--RIGHTWARDS ARROW WITH STROKE -->
+<!ENTITY nwarr "↖" ><!--NORTH WEST ARROW -->
+<!ENTITY olarr "↺" ><!--ANTICLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY orarr "↻" ><!--CLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY rAarr "⇛" ><!--RIGHTWARDS TRIPLE ARROW -->
+<!ENTITY Rarr "↠" ><!--RIGHTWARDS TWO HEADED ARROW -->
+<!ENTITY rarr2 "⇉" ><!--RIGHTWARDS PAIRED ARROWS -->
+<!ENTITY rarrhk "↪" ><!--RIGHTWARDS ARROW WITH HOOK -->
+<!ENTITY rarrlp "↬" ><!--RIGHTWARDS ARROW WITH LOOP -->
+<!ENTITY rarrtl "↣" ><!--RIGHTWARDS ARROW WITH TAIL -->
+<!ENTITY rarrw "↝" ><!--RIGHTWARDS WAVE ARROW -->
+<!ENTITY rhard "⇁" ><!--RIGHTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY rharu "⇀" ><!--RIGHTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY rlarr2 "⇄" ><!--RIGHTWARDS ARROW OVER LEFTWARDS ARROW -->
+<!ENTITY rlhar2 "⇌" ><!--RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON -->
+<!ENTITY rsh "↱" ><!--UPWARDS ARROW WITH TIP RIGHTWARDS -->
+<!ENTITY uArr "⇑" ><!--UPWARDS DOUBLE ARROW -->
+<!ENTITY uarr2 "⇈" ><!--UPWARDS PAIRED ARROWS -->
+<!ENTITY uharl "↿" ><!--UPWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY uharr "↾" ><!--UPWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY vArr "⇕" ><!--UP DOWN DOUBLE ARROW -->
+<!ENTITY varr "↕" ><!--UP DOWN ARROW -->
+<!ENTITY xhArr "⟺" ><!--LONG LEFT RIGHT DOUBLE ARROW -->
+<!ENTITY xharr "⟷" ><!--LONG LEFT RIGHT ARROW -->
+<!ENTITY xlArr "⟸" ><!--LONG LEFTWARDS DOUBLE ARROW -->
+<!ENTITY xrArr "⟹" ><!--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 "⨿" ><!--AMALGAMATION OR COPRODUCT -->
+<!ENTITY Barwed "⌆" ><!--PERSPECTIVE -->
+<!ENTITY barwed "⌅" ><!--PROJECTIVE -->
+<!ENTITY Cap "⋒" ><!--DOUBLE INTERSECTION -->
+<!ENTITY coprod "∐" ><!--N-ARY COPRODUCT -->
+<!ENTITY Cup "⋓" ><!--DOUBLE UNION -->
+<!ENTITY cuvee "⋎" ><!--CURLY LOGICAL OR -->
+<!ENTITY cuwed "⋏" ><!--CURLY LOGICAL AND -->
+<!ENTITY diam "⋄" ><!--DIAMOND OPERATOR -->
+<!ENTITY divonx "⋇" ><!--DIVISION TIMES -->
+<!ENTITY intcal "⊺" ><!--INTERCALATE -->
+<!ENTITY lthree "⋋" ><!--LEFT SEMIDIRECT PRODUCT -->
+<!ENTITY ltimes "⋉" ><!--LEFT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY minusb "⊟" ><!--SQUARED MINUS -->
+<!ENTITY oast "⊛" ><!--CIRCLED ASTERISK OPERATOR -->
+<!ENTITY ocir "⊚" ><!--CIRCLED RING OPERATOR -->
+<!ENTITY odash "⊝" ><!--CIRCLED DASH -->
+<!ENTITY odot "⊙" ><!--CIRCLED DOT OPERATOR -->
+<!ENTITY ominus "⊖" ><!--CIRCLED MINUS -->
+<!ENTITY oplus "⊕" ><!--CIRCLED PLUS -->
+<!ENTITY osol "⊘" ><!--CIRCLED DIVISION SLASH -->
+<!ENTITY otimes "⊗" ><!--CIRCLED TIMES -->
+<!ENTITY plusb "⊞" ><!--SQUARED PLUS -->
+<!ENTITY plusdo "∔" ><!--DOT PLUS -->
+<!ENTITY prod "∏" ><!--N-ARY PRODUCT -->
+<!ENTITY rthree "⋌" ><!--RIGHT SEMIDIRECT PRODUCT -->
+<!ENTITY rtimes "⋊" ><!--RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY sdot "⋅" ><!--DOT OPERATOR -->
+<!ENTITY sdotb "⊡" ><!--SQUARED DOT OPERATOR -->
+<!ENTITY setmn "∖" ><!--SET MINUS -->
+<!ENTITY sqcap "⊓" ><!--SQUARE CAP -->
+<!ENTITY sqcup "⊔" ><!--SQUARE CUP -->
+<!ENTITY ssetmn "∖" ><!--SET MINUS -->
+<!ENTITY sstarf "⋆" ><!--STAR OPERATOR -->
+<!ENTITY sum "∑" ><!--N-ARY SUMMATION -->
+<!ENTITY timesb "⊠" ><!--SQUARED TIMES -->
+<!ENTITY top "⊤" ><!--DOWN TACK -->
+<!ENTITY uplus "⊎" ><!--MULTISET UNION -->
+<!ENTITY wreath "≀" ><!--WREATH PRODUCT -->
+<!ENTITY xcirc "◯" ><!--LARGE CIRCLE -->
+<!ENTITY xdtri "▽" ><!--WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY xutri "△" ><!--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 "⌞" ><!--BOTTOM LEFT CORNER -->
+<!ENTITY drcorn "⌟" ><!--BOTTOM RIGHT CORNER -->
+<!ENTITY lceil "⌈" ><!--LEFT CEILING -->
+<!ENTITY lfloor "⌊" ><!--LEFT FLOOR -->
+<!ENTITY lpargt "⦠" ><!--SPHERICAL ANGLE OPENING LEFT -->
+<!ENTITY rceil "⌉" ><!--RIGHT CEILING -->
+<!ENTITY rfloor "⌋" ><!--RIGHT FLOOR -->
+<!ENTITY rpargt "⦔" ><!--RIGHT ARC GREATER-THAN BRACKET -->
+<!ENTITY ulcorn "⌜" ><!--TOP LEFT CORNER -->
+<!ENTITY urcorn "⌝" ><!--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 (︀)
+ 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 "⪊" ><!--GREATER-THAN AND NOT APPROXIMATE -->
+<!ENTITY gnE "≩" ><!--GREATER-THAN BUT NOT EQUAL TO -->
+<!ENTITY gne "⪈" ><!--GREATER-THAN AND SINGLE-LINE NOT EQUAL TO -->
+<!ENTITY gnsim "⋧" ><!--GREATER-THAN BUT NOT EQUIVALENT TO -->
+<!ENTITY gvnE "≩︀" ><!--GREATER-THAN BUT NOT EQUAL TO - with vertical stroke -->
+<!ENTITY lnap "⪉" ><!--LESS-THAN AND NOT APPROXIMATE -->
+<!ENTITY lnE "≨" ><!--LESS-THAN BUT NOT EQUAL TO -->
+<!ENTITY lne "⪇" ><!--LESS-THAN AND SINGLE-LINE NOT EQUAL TO -->
+<!ENTITY lnsim "⋦" ><!--LESS-THAN BUT NOT EQUIVALENT TO -->
+<!ENTITY lvnE "≨︀" ><!--LESS-THAN BUT NOT EQUAL TO - with vertical stroke -->
+<!ENTITY nap "≉" ><!--NOT ALMOST EQUAL TO -->
+<!ENTITY ncong "≇" ><!--NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO -->
+<!ENTITY nequiv "≢" ><!--NOT IDENTICAL TO -->
+<!ENTITY ngE "≧̸" ><!--GREATER-THAN OVER EQUAL TO with slash -->
+<!ENTITY nge "≱" ><!--NEITHER GREATER-THAN NOR EQUAL TO -->
+<!ENTITY nges "⩾̸" ><!--GREATER-THAN OR SLANTED EQUAL TO with slash -->
+<!ENTITY ngt "≯" ><!--NOT GREATER-THAN -->
+<!ENTITY nlE "≦̸" ><!--LESS-THAN OVER EQUAL TO with slash -->
+<!ENTITY nle "≰" ><!--NEITHER LESS-THAN NOR EQUAL TO -->
+<!ENTITY nles "⩽̸" ><!--LESS-THAN OR SLANTED EQUAL TO with slash -->
+<!ENTITY nlt "≮" ><!--NOT LESS-THAN -->
+<!ENTITY nltri "⋪" ><!--NOT NORMAL SUBGROUP OF -->
+<!ENTITY nltrie "⋬" ><!--NOT NORMAL SUBGROUP OF OR EQUAL TO -->
+<!ENTITY nmid "∤" ><!--DOES NOT DIVIDE -->
+<!ENTITY npar "∦" ><!--NOT PARALLEL TO -->
+<!ENTITY npr "⊀" ><!--DOES NOT PRECEDE -->
+<!ENTITY npre "⪯̸" ><!--PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash -->
+<!ENTITY nrtri "⋫" ><!--DOES NOT CONTAIN AS NORMAL SUBGROUP -->
+<!ENTITY nrtrie "⋭" ><!--DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL -->
+<!ENTITY nsc "⊁" ><!--DOES NOT SUCCEED -->
+<!ENTITY nsce "⪰̸" ><!--SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash -->
+<!ENTITY nsim "≁" ><!--NOT TILDE -->
+<!ENTITY nsime "≄" ><!--NOT ASYMPTOTICALLY EQUAL TO -->
+<!ENTITY nsmid "∤" ><!--DOES NOT DIVIDE -->
+<!ENTITY nspar "∦" ><!--NOT PARALLEL TO -->
+<!ENTITY nsub "⊄" ><!--NOT A SUBSET OF -->
+<!ENTITY nsubE "⫅̸" ><!--SUBSET OF ABOVE EQUALS SIGN with slash -->
+<!ENTITY nsube "⊈" ><!--NEITHER A SUBSET OF NOR EQUAL TO -->
+<!ENTITY nsup "⊅" ><!--NOT A SUPERSET OF -->
+<!ENTITY nsupE "⫆̸" ><!--SUPERSET OF ABOVE EQUALS SIGN with slash -->
+<!ENTITY nsupe "⊉" ><!--NEITHER A SUPERSET OF NOR EQUAL TO -->
+<!ENTITY nVDash "⊯" ><!--NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -->
+<!ENTITY nVdash "⊮" ><!--DOES NOT FORCE -->
+<!ENTITY nvDash "⊭" ><!--NOT TRUE -->
+<!ENTITY nvdash "⊬" ><!--DOES NOT PROVE -->
+<!ENTITY prnap "⪹" ><!--PRECEDES ABOVE NOT ALMOST EQUAL TO -->
+<!ENTITY prnE "⪵" ><!--PRECEDES ABOVE NOT EQUAL TO -->
+<!ENTITY prnsim "⋨" ><!--PRECEDES BUT NOT EQUIVALENT TO -->
+<!ENTITY scnap "⪺" ><!--SUCCEEDS ABOVE NOT ALMOST EQUAL TO -->
+<!ENTITY scnE "⪶" ><!--SUCCEEDS ABOVE NOT EQUAL TO -->
+<!ENTITY scnsim "⋩" ><!--SUCCEEDS BUT NOT EQUIVALENT TO -->
+<!ENTITY subnE "⫋" ><!--SUBSET OF ABOVE NOT EQUAL TO -->
+<!ENTITY subne "⊊" ><!--SUBSET OF WITH NOT EQUAL TO -->
+<!ENTITY supnE "⫌" ><!--SUPERSET OF ABOVE NOT EQUAL TO -->
+<!ENTITY supne "⊋" ><!--SUPERSET OF WITH NOT EQUAL TO -->
+<!ENTITY vsubnE "⫋︀" ><!--SUBSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members -->
+<!ENTITY vsubne "⊊︀" ><!--SUBSET OF WITH NOT EQUAL TO - variant with stroke through bottom members -->
+<!ENTITY vsupnE "⫌︀" ><!--SUPERSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members -->
+<!ENTITY vsupne "⊋︀" ><!--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 "∠" ><!--ANGLE -->
+<!ENTITY angmsd "∡" ><!--MEASURED ANGLE -->
+<!ENTITY beth "ℶ" ><!--BET SYMBOL -->
+<!ENTITY bprime "‵" ><!--REVERSED PRIME -->
+<!ENTITY comp "∁" ><!--COMPLEMENT -->
+<!ENTITY daleth "ℸ" ><!--DALET SYMBOL -->
+<!ENTITY ell "ℓ" ><!--SCRIPT SMALL L -->
+<!ENTITY empty "∅" ><!--EMPTY SET -->
+<!ENTITY gimel "ℷ" ><!--GIMEL SYMBOL -->
+<!ENTITY inodot "ı" ><!--LATIN SMALL LETTER DOTLESS I -->
+<!ENTITY jnodot "j" ><!--LATIN SMALL LETTER J -->
+<!ENTITY nexist "∄" ><!--THERE DOES NOT EXIST -->
+<!ENTITY oS "Ⓢ" ><!--CIRCLED LATIN CAPITAL LETTER S -->
+<!ENTITY planck "ℏ" ><!--PLANCK CONSTANT OVER TWO PI -->
+<!ENTITY real "ℜ" ><!--BLACK-LETTER CAPITAL R -->
+<!ENTITY sbsol "﹨" ><!--SMALL REVERSE SOLIDUS -->
+<!ENTITY vprime "′" ><!--PRIME -->
+<!ENTITY weierp "℘" ><!--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 "≊" ><!--ALMOST EQUAL OR EQUAL TO -->
+<!ENTITY asymp "≈" ><!--ALMOST EQUAL TO -->
+<!ENTITY bcong "≌" ><!--ALL EQUAL TO -->
+<!ENTITY bepsi "϶" ><!--GREEK REVERSED LUNATE EPSILON SYMBOL -->
+<!ENTITY bowtie "⋈" ><!--BOWTIE -->
+<!ENTITY bsim "∽" ><!--REVERSED TILDE -->
+<!ENTITY bsime "⋍" ><!--REVERSED TILDE EQUALS -->
+<!ENTITY bump "≎" ><!--GEOMETRICALLY EQUIVALENT TO -->
+<!ENTITY bumpe "≏" ><!--DIFFERENCE BETWEEN -->
+<!ENTITY cire "≗" ><!--RING EQUAL TO -->
+<!ENTITY colone "≔" ><!--COLON EQUALS -->
+<!ENTITY cuepr "⋞" ><!--EQUAL TO OR PRECEDES -->
+<!ENTITY cuesc "⋟" ><!--EQUAL TO OR SUCCEEDS -->
+<!ENTITY cupre "≼" ><!--PRECEDES OR EQUAL TO -->
+<!ENTITY dashv "⊣" ><!--LEFT TACK -->
+<!ENTITY ecir "≖" ><!--RING IN EQUAL TO -->
+<!ENTITY ecolon "≕" ><!--EQUALS COLON -->
+<!ENTITY eDot "≑" ><!--GEOMETRICALLY EQUAL TO -->
+<!ENTITY efDot "≒" ><!--APPROXIMATELY EQUAL TO OR THE IMAGE OF -->
+<!ENTITY egs "⪖" ><!--SLANTED EQUAL TO OR GREATER-THAN -->
+<!ENTITY els "⪕" ><!--SLANTED EQUAL TO OR LESS-THAN -->
+<!ENTITY erDot "≓" ><!--IMAGE OF OR APPROXIMATELY EQUAL TO -->
+<!ENTITY esdot "≐" ><!--APPROACHES THE LIMIT -->
+<!ENTITY fork "⋔" ><!--PITCHFORK -->
+<!ENTITY frown "⌢" ><!--FROWN -->
+<!ENTITY gap "⪆" ><!--GREATER-THAN OR APPROXIMATE -->
+<!ENTITY gE "≧" ><!--GREATER-THAN OVER EQUAL TO -->
+<!ENTITY gEl "⪌" ><!--GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN -->
+<!ENTITY gel "⋛" ><!--GREATER-THAN EQUAL TO OR LESS-THAN -->
+<!ENTITY ges "⩾" ><!--GREATER-THAN OR SLANTED EQUAL TO -->
+<!ENTITY Gg "⋙" ><!--VERY MUCH GREATER-THAN -->
+<!ENTITY gl "≷" ><!--GREATER-THAN OR LESS-THAN -->
+<!ENTITY gsdot "⋗" ><!--GREATER-THAN WITH DOT -->
+<!ENTITY gsim "≳" ><!--GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY Gt "≫" ><!--MUCH GREATER-THAN -->
+<!ENTITY lap "⪅" ><!--LESS-THAN OR APPROXIMATE -->
+<!ENTITY ldot "⋖" ><!--LESS-THAN WITH DOT -->
+<!ENTITY lE "≦" ><!--LESS-THAN OVER EQUAL TO -->
+<!ENTITY lEg "⪋" ><!--LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN -->
+<!ENTITY leg "⋚" ><!--LESS-THAN EQUAL TO OR GREATER-THAN -->
+<!ENTITY les "⩽" ><!--LESS-THAN OR SLANTED EQUAL TO -->
+<!ENTITY lg "≶" ><!--LESS-THAN OR GREATER-THAN -->
+<!ENTITY Ll "⋘" ><!--VERY MUCH LESS-THAN -->
+<!ENTITY lsim "≲" ><!--LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY Lt "≪" ><!--MUCH LESS-THAN -->
+<!ENTITY ltrie "⊴" ><!--NORMAL SUBGROUP OF OR EQUAL TO -->
+<!ENTITY mid "∣" ><!--DIVIDES -->
+<!ENTITY models "⊧" ><!--MODELS -->
+<!ENTITY pr "≺" ><!--PRECEDES -->
+<!ENTITY prap "⪷" ><!--PRECEDES ABOVE ALMOST EQUAL TO -->
+<!ENTITY pre "⪯" ><!--PRECEDES ABOVE SINGLE-LINE EQUALS SIGN -->
+<!ENTITY prsim "≾" ><!--PRECEDES OR EQUIVALENT TO -->
+<!ENTITY rtrie "⊵" ><!--CONTAINS AS NORMAL SUBGROUP OR EQUAL TO -->
+<!ENTITY samalg "∐" ><!--N-ARY COPRODUCT -->
+<!ENTITY sc "≻" ><!--SUCCEEDS -->
+<!ENTITY scap "⪸" ><!--SUCCEEDS ABOVE ALMOST EQUAL TO -->
+<!ENTITY sccue "≽" ><!--SUCCEEDS OR EQUAL TO -->
+<!ENTITY sce "⪰" ><!--SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN -->
+<!ENTITY scsim "≿" ><!--SUCCEEDS OR EQUIVALENT TO -->
+<!ENTITY sfrown "⌢" ><!--FROWN -->
+<!ENTITY smid "∣" ><!--DIVIDES -->
+<!ENTITY smile "⌣" ><!--SMILE -->
+<!ENTITY spar "∥" ><!--PARALLEL TO -->
+<!ENTITY sqsub "⊏" ><!--SQUARE IMAGE OF -->
+<!ENTITY sqsube "⊑" ><!--SQUARE IMAGE OF OR EQUAL TO -->
+<!ENTITY sqsup "⊐" ><!--SQUARE ORIGINAL OF -->
+<!ENTITY sqsupe "⊒" ><!--SQUARE ORIGINAL OF OR EQUAL TO -->
+<!ENTITY ssmile "⌣" ><!--SMILE -->
+<!ENTITY Sub "⋐" ><!--DOUBLE SUBSET -->
+<!ENTITY subE "⫅" ><!--SUBSET OF ABOVE EQUALS SIGN -->
+<!ENTITY Sup "⋑" ><!--DOUBLE SUPERSET -->
+<!ENTITY supE "⫆" ><!--SUPERSET OF ABOVE EQUALS SIGN -->
+<!ENTITY thkap "≈" ><!--ALMOST EQUAL TO -->
+<!ENTITY thksim "∼" ><!--TILDE OPERATOR -->
+<!ENTITY trie "≜" ><!--DELTA EQUAL TO -->
+<!ENTITY twixt "≬" ><!--BETWEEN -->
+<!ENTITY Vdash "⊩" ><!--FORCES -->
+<!ENTITY vDash "⊨" ><!--TRUE -->
+<!ENTITY vdash "⊢" ><!--RIGHT TACK -->
+<!ENTITY veebar "⊻" ><!--XOR -->
+<!ENTITY vltri "⊲" ><!--NORMAL SUBGROUP OF -->
+<!ENTITY vprop "∝" ><!--PROPORTIONAL TO -->
+<!ENTITY vrtri "⊳" ><!--CONTAINS AS NORMAL SUBGROUP -->
+<!ENTITY Vvdash "⊪" ><!--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 "╗" ><!--BOX DRAWINGS DOUBLE DOWN AND LEFT -->
+<!ENTITY boxDl "╖" ><!--BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxdL "╕" ><!--BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxdl "┐" ><!--BOX DRAWINGS LIGHT DOWN AND LEFT -->
+<!ENTITY boxDR "╔" ><!--BOX DRAWINGS DOUBLE DOWN AND RIGHT -->
+<!ENTITY boxDr "╓" ><!--BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxdR "╒" ><!--BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxdr "┌" ><!--BOX DRAWINGS LIGHT DOWN AND RIGHT -->
+<!ENTITY boxH "═" ><!--BOX DRAWINGS DOUBLE HORIZONTAL -->
+<!ENTITY boxh "─" ><!--BOX DRAWINGS LIGHT HORIZONTAL -->
+<!ENTITY boxHD "╦" ><!--BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -->
+<!ENTITY boxHd "╤" ><!--BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxhD "╥" ><!--BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxhd "┬" ><!--BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -->
+<!ENTITY boxHU "╩" ><!--BOX DRAWINGS DOUBLE UP AND HORIZONTAL -->
+<!ENTITY boxHu "╧" ><!--BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxhU "╨" ><!--BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxhu "┴" ><!--BOX DRAWINGS LIGHT UP AND HORIZONTAL -->
+<!ENTITY boxUL "╝" ><!--BOX DRAWINGS DOUBLE UP AND LEFT -->
+<!ENTITY boxUl "╜" ><!--BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxuL "╛" ><!--BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxul "┘" ><!--BOX DRAWINGS LIGHT UP AND LEFT -->
+<!ENTITY boxUR "╚" ><!--BOX DRAWINGS DOUBLE UP AND RIGHT -->
+<!ENTITY boxUr "╙" ><!--BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxuR "╘" ><!--BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxur "└" ><!--BOX DRAWINGS LIGHT UP AND RIGHT -->
+<!ENTITY boxV "║" ><!--BOX DRAWINGS DOUBLE VERTICAL -->
+<!ENTITY boxv "│" ><!--BOX DRAWINGS LIGHT VERTICAL -->
+<!ENTITY boxVH "╬" ><!--BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -->
+<!ENTITY boxVh "╫" ><!--BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxvH "╪" ><!--BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvh "┼" ><!--BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -->
+<!ENTITY boxVL "╣" ><!--BOX DRAWINGS DOUBLE VERTICAL AND LEFT -->
+<!ENTITY boxVl "╢" ><!--BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxvL "╡" ><!--BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxvl "┤" ><!--BOX DRAWINGS LIGHT VERTICAL AND LEFT -->
+<!ENTITY boxVR "╠" ><!--BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -->
+<!ENTITY boxVr "╟" ><!--BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxvR "╞" ><!--BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxvr "├" ><!--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 "А" ><!--CYRILLIC CAPITAL LETTER A -->
+<!ENTITY acy "а" ><!--CYRILLIC SMALL LETTER A -->
+<!ENTITY Bcy "Б" ><!--CYRILLIC CAPITAL LETTER BE -->
+<!ENTITY bcy "б" ><!--CYRILLIC SMALL LETTER BE -->
+<!ENTITY CHcy "Ч" ><!--CYRILLIC CAPITAL LETTER CHE -->
+<!ENTITY chcy "ч" ><!--CYRILLIC SMALL LETTER CHE -->
+<!ENTITY Dcy "Д" ><!--CYRILLIC CAPITAL LETTER DE -->
+<!ENTITY dcy "д" ><!--CYRILLIC SMALL LETTER DE -->
+<!ENTITY Ecy "Э" ><!--CYRILLIC CAPITAL LETTER E -->
+<!ENTITY ecy "э" ><!--CYRILLIC SMALL LETTER E -->
+<!ENTITY Fcy "Ф" ><!--CYRILLIC CAPITAL LETTER EF -->
+<!ENTITY fcy "ф" ><!--CYRILLIC SMALL LETTER EF -->
+<!ENTITY Gcy "Г" ><!--CYRILLIC CAPITAL LETTER GHE -->
+<!ENTITY gcy "г" ><!--CYRILLIC SMALL LETTER GHE -->
+<!ENTITY HARDcy "Ъ" ><!--CYRILLIC CAPITAL LETTER HARD SIGN -->
+<!ENTITY hardcy "ъ" ><!--CYRILLIC SMALL LETTER HARD SIGN -->
+<!ENTITY Icy "И" ><!--CYRILLIC CAPITAL LETTER I -->
+<!ENTITY icy "и" ><!--CYRILLIC SMALL LETTER I -->
+<!ENTITY IEcy "Е" ><!--CYRILLIC CAPITAL LETTER IE -->
+<!ENTITY iecy "е" ><!--CYRILLIC SMALL LETTER IE -->
+<!ENTITY IOcy "Ё" ><!--CYRILLIC CAPITAL LETTER IO -->
+<!ENTITY iocy "ё" ><!--CYRILLIC SMALL LETTER IO -->
+<!ENTITY Jcy "Й" ><!--CYRILLIC CAPITAL LETTER SHORT I -->
+<!ENTITY jcy "й" ><!--CYRILLIC SMALL LETTER SHORT I -->
+<!ENTITY Kcy "К" ><!--CYRILLIC CAPITAL LETTER KA -->
+<!ENTITY kcy "к" ><!--CYRILLIC SMALL LETTER KA -->
+<!ENTITY KHcy "Х" ><!--CYRILLIC CAPITAL LETTER HA -->
+<!ENTITY khcy "х" ><!--CYRILLIC SMALL LETTER HA -->
+<!ENTITY Lcy "Л" ><!--CYRILLIC CAPITAL LETTER EL -->
+<!ENTITY lcy "л" ><!--CYRILLIC SMALL LETTER EL -->
+<!ENTITY Mcy "М" ><!--CYRILLIC CAPITAL LETTER EM -->
+<!ENTITY mcy "м" ><!--CYRILLIC SMALL LETTER EM -->
+<!ENTITY Ncy "Н" ><!--CYRILLIC CAPITAL LETTER EN -->
+<!ENTITY ncy "н" ><!--CYRILLIC SMALL LETTER EN -->
+<!ENTITY numero "№" ><!--NUMERO SIGN -->
+<!ENTITY Ocy "О" ><!--CYRILLIC CAPITAL LETTER O -->
+<!ENTITY ocy "о" ><!--CYRILLIC SMALL LETTER O -->
+<!ENTITY Pcy "П" ><!--CYRILLIC CAPITAL LETTER PE -->
+<!ENTITY pcy "п" ><!--CYRILLIC SMALL LETTER PE -->
+<!ENTITY Rcy "Р" ><!--CYRILLIC CAPITAL LETTER ER -->
+<!ENTITY rcy "р" ><!--CYRILLIC SMALL LETTER ER -->
+<!ENTITY Scy "С" ><!--CYRILLIC CAPITAL LETTER ES -->
+<!ENTITY scy "с" ><!--CYRILLIC SMALL LETTER ES -->
+<!ENTITY SHCHcy "Щ" ><!--CYRILLIC CAPITAL LETTER SHCHA -->
+<!ENTITY shchcy "щ" ><!--CYRILLIC SMALL LETTER SHCHA -->
+<!ENTITY SHcy "Ш" ><!--CYRILLIC CAPITAL LETTER SHA -->
+<!ENTITY shcy "ш" ><!--CYRILLIC SMALL LETTER SHA -->
+<!ENTITY SOFTcy "Ь" ><!--CYRILLIC CAPITAL LETTER SOFT SIGN -->
+<!ENTITY softcy "ь" ><!--CYRILLIC SMALL LETTER SOFT SIGN -->
+<!ENTITY Tcy "Т" ><!--CYRILLIC CAPITAL LETTER TE -->
+<!ENTITY tcy "т" ><!--CYRILLIC SMALL LETTER TE -->
+<!ENTITY TScy "Ц" ><!--CYRILLIC CAPITAL LETTER TSE -->
+<!ENTITY tscy "ц" ><!--CYRILLIC SMALL LETTER TSE -->
+<!ENTITY Ucy "У" ><!--CYRILLIC CAPITAL LETTER U -->
+<!ENTITY ucy "у" ><!--CYRILLIC SMALL LETTER U -->
+<!ENTITY Vcy "В" ><!--CYRILLIC CAPITAL LETTER VE -->
+<!ENTITY vcy "в" ><!--CYRILLIC SMALL LETTER VE -->
+<!ENTITY YAcy "Я" ><!--CYRILLIC CAPITAL LETTER YA -->
+<!ENTITY yacy "я" ><!--CYRILLIC SMALL LETTER YA -->
+<!ENTITY Ycy "Ы" ><!--CYRILLIC CAPITAL LETTER YERU -->
+<!ENTITY ycy "ы" ><!--CYRILLIC SMALL LETTER YERU -->
+<!ENTITY YUcy "Ю" ><!--CYRILLIC CAPITAL LETTER YU -->
+<!ENTITY yucy "ю" ><!--CYRILLIC SMALL LETTER YU -->
+<!ENTITY Zcy "З" ><!--CYRILLIC CAPITAL LETTER ZE -->
+<!ENTITY zcy "з" ><!--CYRILLIC SMALL LETTER ZE -->
+<!ENTITY ZHcy "Ж" ><!--CYRILLIC CAPITAL LETTER ZHE -->
+<!ENTITY zhcy "ж" ><!--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 "Ђ" ><!--CYRILLIC CAPITAL LETTER DJE -->
+<!ENTITY djcy "ђ" ><!--CYRILLIC SMALL LETTER DJE -->
+<!ENTITY DScy "Ѕ" ><!--CYRILLIC CAPITAL LETTER DZE -->
+<!ENTITY dscy "ѕ" ><!--CYRILLIC SMALL LETTER DZE -->
+<!ENTITY DZcy "Џ" ><!--CYRILLIC CAPITAL LETTER DZHE -->
+<!ENTITY dzcy "џ" ><!--CYRILLIC SMALL LETTER DZHE -->
+<!ENTITY GJcy "Ѓ" ><!--CYRILLIC CAPITAL LETTER GJE -->
+<!ENTITY gjcy "ѓ" ><!--CYRILLIC SMALL LETTER GJE -->
+<!ENTITY Iukcy "І" ><!--CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY iukcy "і" ><!--CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY Jsercy "Ј" ><!--CYRILLIC CAPITAL LETTER JE -->
+<!ENTITY jsercy "ј" ><!--CYRILLIC SMALL LETTER JE -->
+<!ENTITY Jukcy "Є" ><!--CYRILLIC CAPITAL LETTER UKRAINIAN IE -->
+<!ENTITY jukcy "є" ><!--CYRILLIC SMALL LETTER UKRAINIAN IE -->
+<!ENTITY KJcy "Ќ" ><!--CYRILLIC CAPITAL LETTER KJE -->
+<!ENTITY kjcy "ќ" ><!--CYRILLIC SMALL LETTER KJE -->
+<!ENTITY LJcy "Љ" ><!--CYRILLIC CAPITAL LETTER LJE -->
+<!ENTITY ljcy "љ" ><!--CYRILLIC SMALL LETTER LJE -->
+<!ENTITY NJcy "Њ" ><!--CYRILLIC CAPITAL LETTER NJE -->
+<!ENTITY njcy "њ" ><!--CYRILLIC SMALL LETTER NJE -->
+<!ENTITY TSHcy "Ћ" ><!--CYRILLIC CAPITAL LETTER TSHE -->
+<!ENTITY tshcy "ћ" ><!--CYRILLIC SMALL LETTER TSHE -->
+<!ENTITY Ubrcy "Ў" ><!--CYRILLIC CAPITAL LETTER SHORT U -->
+<!ENTITY ubrcy "ў" ><!--CYRILLIC SMALL LETTER SHORT U -->
+<!ENTITY YIcy "Ї" ><!--CYRILLIC CAPITAL LETTER YI -->
+<!ENTITY yicy "ї" ><!--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 "´" ><!--ACUTE ACCENT -->
+<!ENTITY breve "˘" ><!--BREVE -->
+<!ENTITY caron "ˇ" ><!--CARON -->
+<!ENTITY cedil "¸" ><!--CEDILLA -->
+<!ENTITY circ "ˆ" ><!--MODIFIER LETTER CIRCUMFLEX ACCENT -->
+<!ENTITY dblac "˝" ><!--DOUBLE ACUTE ACCENT -->
+<!ENTITY die "¨" ><!--DIAERESIS -->
+<!ENTITY dot "˙" ><!--DOT ABOVE -->
+<!ENTITY grave "`" ><!--GRAVE ACCENT -->
+<!ENTITY macr "¯" ><!--MACRON -->
+<!ENTITY ogon "˛" ><!--OGONEK -->
+<!ENTITY ring "˚" ><!--RING ABOVE -->
+<!ENTITY tilde "˜" ><!--SMALL TILDE -->
+<!ENTITY uml "¨" ><!--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 "Α" ><!--GREEK CAPITAL LETTER ALPHA -->
+<!ENTITY agr "α" ><!--GREEK SMALL LETTER ALPHA -->
+<!ENTITY Bgr "Β" ><!--GREEK CAPITAL LETTER BETA -->
+<!ENTITY bgr "β" ><!--GREEK SMALL LETTER BETA -->
+<!ENTITY Dgr "Δ" ><!--GREEK CAPITAL LETTER DELTA -->
+<!ENTITY dgr "δ" ><!--GREEK SMALL LETTER DELTA -->
+<!ENTITY EEgr "Η" ><!--GREEK CAPITAL LETTER ETA -->
+<!ENTITY eegr "η" ><!--GREEK SMALL LETTER ETA -->
+<!ENTITY Egr "Ε" ><!--GREEK CAPITAL LETTER EPSILON -->
+<!ENTITY egr "ε" ><!--GREEK SMALL LETTER EPSILON -->
+<!ENTITY Ggr "Γ" ><!--GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY ggr "γ" ><!--GREEK SMALL LETTER GAMMA -->
+<!ENTITY Igr "Ι" ><!--GREEK CAPITAL LETTER IOTA -->
+<!ENTITY igr "ι" ><!--GREEK SMALL LETTER IOTA -->
+<!ENTITY Kgr "Κ" ><!--GREEK CAPITAL LETTER KAPPA -->
+<!ENTITY kgr "κ" ><!--GREEK SMALL LETTER KAPPA -->
+<!ENTITY KHgr "Χ" ><!--GREEK CAPITAL LETTER CHI -->
+<!ENTITY khgr "χ" ><!--GREEK SMALL LETTER CHI -->
+<!ENTITY Lgr "Λ" ><!--GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY lgr "λ" ><!--GREEK SMALL LETTER LAMDA -->
+<!ENTITY Mgr "Μ" ><!--GREEK CAPITAL LETTER MU -->
+<!ENTITY mgr "μ" ><!--GREEK SMALL LETTER MU -->
+<!ENTITY Ngr "Ν" ><!--GREEK CAPITAL LETTER NU -->
+<!ENTITY ngr "ν" ><!--GREEK SMALL LETTER NU -->
+<!ENTITY Ogr "Ο" ><!--GREEK CAPITAL LETTER OMICRON -->
+<!ENTITY ogr "ο" ><!--GREEK SMALL LETTER OMICRON -->
+<!ENTITY OHgr "Ω" ><!--GREEK CAPITAL LETTER OMEGA -->
+<!ENTITY ohgr "ω" ><!--GREEK SMALL LETTER OMEGA -->
+<!ENTITY Pgr "Π" ><!--GREEK CAPITAL LETTER PI -->
+<!ENTITY pgr "π" ><!--GREEK SMALL LETTER PI -->
+<!ENTITY PHgr "Φ" ><!--GREEK CAPITAL LETTER PHI -->
+<!ENTITY phgr "φ" ><!--GREEK SMALL LETTER PHI -->
+<!ENTITY PSgr "Ψ" ><!--GREEK CAPITAL LETTER PSI -->
+<!ENTITY psgr "ψ" ><!--GREEK SMALL LETTER PSI -->
+<!ENTITY Rgr "Ρ" ><!--GREEK CAPITAL LETTER RHO -->
+<!ENTITY rgr "ρ" ><!--GREEK SMALL LETTER RHO -->
+<!ENTITY sfgr "ς" ><!--GREEK SMALL LETTER FINAL SIGMA -->
+<!ENTITY Sgr "Σ" ><!--GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sgr "σ" ><!--GREEK SMALL LETTER SIGMA -->
+<!ENTITY Tgr "Τ" ><!--GREEK CAPITAL LETTER TAU -->
+<!ENTITY tgr "τ" ><!--GREEK SMALL LETTER TAU -->
+<!ENTITY THgr "Θ" ><!--GREEK CAPITAL LETTER THETA -->
+<!ENTITY thgr "θ" ><!--GREEK SMALL LETTER THETA -->
+<!ENTITY Ugr "Υ" ><!--GREEK CAPITAL LETTER UPSILON -->
+<!ENTITY ugr "υ" ><!--GREEK SMALL LETTER UPSILON -->
+<!ENTITY Xgr "Ξ" ><!--GREEK CAPITAL LETTER XI -->
+<!ENTITY xgr "ξ" ><!--GREEK SMALL LETTER XI -->
+<!ENTITY Zgr "Ζ" ><!--GREEK CAPITAL LETTER ZETA -->
+<!ENTITY zgr "ζ" ><!--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 "Ά" ><!--GREEK CAPITAL LETTER ALPHA WITH TONOS -->
+<!ENTITY aacgr "ά" ><!--GREEK SMALL LETTER ALPHA WITH TONOS -->
+<!ENTITY Eacgr "Έ" ><!--GREEK CAPITAL LETTER EPSILON WITH TONOS -->
+<!ENTITY eacgr "έ" ><!--GREEK SMALL LETTER EPSILON WITH TONOS -->
+<!ENTITY EEacgr "Ή" ><!--GREEK CAPITAL LETTER ETA WITH TONOS -->
+<!ENTITY eeacgr "ή" ><!--GREEK SMALL LETTER ETA WITH TONOS -->
+<!ENTITY Iacgr "Ί" ><!--GREEK CAPITAL LETTER IOTA WITH TONOS -->
+<!ENTITY iacgr "ί" ><!--GREEK SMALL LETTER IOTA WITH TONOS -->
+<!ENTITY idiagr "ΐ" ><!--GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -->
+<!ENTITY Idigr "Ϊ" ><!--GREEK CAPITAL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY idigr "ϊ" ><!--GREEK SMALL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY Oacgr "Ό" ><!--GREEK CAPITAL LETTER OMICRON WITH TONOS -->
+<!ENTITY oacgr "ό" ><!--GREEK SMALL LETTER OMICRON WITH TONOS -->
+<!ENTITY OHacgr "Ώ" ><!--GREEK CAPITAL LETTER OMEGA WITH TONOS -->
+<!ENTITY ohacgr "ώ" ><!--GREEK SMALL LETTER OMEGA WITH TONOS -->
+<!ENTITY Uacgr "Ύ" ><!--GREEK CAPITAL LETTER UPSILON WITH TONOS -->
+<!ENTITY uacgr "ύ" ><!--GREEK SMALL LETTER UPSILON WITH TONOS -->
+<!ENTITY udiagr "ΰ" ><!--GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -->
+<!ENTITY Udigr "Ϋ" ><!--GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY udigr "ϋ" ><!--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 "α" ><!--GREEK SMALL LETTER ALPHA -->
+<!ENTITY beta "β" ><!--GREEK SMALL LETTER BETA -->
+<!ENTITY chi "χ" ><!--GREEK SMALL LETTER CHI -->
+<!ENTITY Delta "Δ" ><!--GREEK CAPITAL LETTER DELTA -->
+<!ENTITY delta "δ" ><!--GREEK SMALL LETTER DELTA -->
+<!ENTITY epsi "ϵ" ><!--GREEK LUNATE EPSILON SYMBOL -->
+<!ENTITY epsis "ϵ" ><!--GREEK LUNATE EPSILON SYMBOL -->
+<!ENTITY epsiv "ε" ><!--GREEK SMALL LETTER EPSILON -->
+<!ENTITY eta "η" ><!--GREEK SMALL LETTER ETA -->
+<!ENTITY Gamma "Γ" ><!--GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY gamma "γ" ><!--GREEK SMALL LETTER GAMMA -->
+<!ENTITY gammad "ϝ" ><!--GREEK SMALL LETTER DIGAMMA -->
+<!ENTITY iota "ι" ><!--GREEK SMALL LETTER IOTA -->
+<!ENTITY kappa "κ" ><!--GREEK SMALL LETTER KAPPA -->
+<!ENTITY kappav "ϰ" ><!--GREEK KAPPA SYMBOL -->
+<!ENTITY Lambda "Λ" ><!--GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY lambda "λ" ><!--GREEK SMALL LETTER LAMDA -->
+<!ENTITY mu "μ" ><!--GREEK SMALL LETTER MU -->
+<!ENTITY nu "ν" ><!--GREEK SMALL LETTER NU -->
+<!ENTITY Omega "Ω" ><!--GREEK CAPITAL LETTER OMEGA -->
+<!ENTITY omega "ω" ><!--GREEK SMALL LETTER OMEGA -->
+<!ENTITY Phi "Φ" ><!--GREEK CAPITAL LETTER PHI -->
+<!ENTITY phis "ϕ" ><!--GREEK PHI SYMBOL -->
+<!ENTITY phiv "φ" ><!--GREEK SMALL LETTER PHI -->
+<!ENTITY Pi "Π" ><!--GREEK CAPITAL LETTER PI -->
+<!ENTITY pi "π" ><!--GREEK SMALL LETTER PI -->
+<!ENTITY piv "ϖ" ><!--GREEK PI SYMBOL -->
+<!ENTITY Psi "Ψ" ><!--GREEK CAPITAL LETTER PSI -->
+<!ENTITY psi "ψ" ><!--GREEK SMALL LETTER PSI -->
+<!ENTITY rho "ρ" ><!--GREEK SMALL LETTER RHO -->
+<!ENTITY rhov "ϱ" ><!--GREEK RHO SYMBOL -->
+<!ENTITY Sigma "Σ" ><!--GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sigma "σ" ><!--GREEK SMALL LETTER SIGMA -->
+<!ENTITY sigmav "ς" ><!--GREEK SMALL LETTER FINAL SIGMA -->
+<!ENTITY tau "τ" ><!--GREEK SMALL LETTER TAU -->
+<!ENTITY Theta "Θ" ><!--GREEK CAPITAL LETTER THETA -->
+<!ENTITY thetas "θ" ><!--GREEK SMALL LETTER THETA -->
+<!ENTITY thetav "ϑ" ><!--GREEK THETA SYMBOL -->
+<!ENTITY Upsi "ϒ" ><!--GREEK UPSILON WITH HOOK SYMBOL -->
+<!ENTITY upsi "υ" ><!--GREEK SMALL LETTER UPSILON -->
+<!ENTITY Xi "Ξ" ><!--GREEK CAPITAL LETTER XI -->
+<!ENTITY xi "ξ" ><!--GREEK SMALL LETTER XI -->
+<!ENTITY zeta "ζ" ><!--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 "𝛂" ><!--MATHEMATICAL BOLD SMALL ALPHA -->
+<!ENTITY b.beta "𝛃" ><!--MATHEMATICAL BOLD SMALL BETA -->
+<!ENTITY b.chi "𝛘" ><!--MATHEMATICAL BOLD SMALL CHI -->
+<!ENTITY b.Delta "𝚫" ><!--MATHEMATICAL BOLD CAPITAL DELTA -->
+<!ENTITY b.delta "𝛅" ><!--MATHEMATICAL BOLD SMALL DELTA -->
+<!ENTITY b.epsi "𝛆" ><!--MATHEMATICAL BOLD SMALL EPSILON -->
+<!ENTITY b.epsiv "𝛜" ><!--MATHEMATICAL BOLD EPSILON SYMBOL -->
+<!ENTITY b.eta "𝛈" ><!--MATHEMATICAL BOLD SMALL ETA -->
+<!ENTITY b.Gamma "𝚪" ><!--MATHEMATICAL BOLD CAPITAL GAMMA -->
+<!ENTITY b.gamma "𝛄" ><!--MATHEMATICAL BOLD SMALL GAMMA -->
+<!ENTITY b.Gammad "Ϝ" ><!--GREEK LETTER DIGAMMA -->
+<!ENTITY b.gammad "ϝ" ><!--GREEK SMALL LETTER DIGAMMA -->
+<!ENTITY b.iota "𝛊" ><!--MATHEMATICAL BOLD SMALL IOTA -->
+<!ENTITY b.kappa "𝛋" ><!--MATHEMATICAL BOLD SMALL KAPPA -->
+<!ENTITY b.kappav "𝛞" ><!--MATHEMATICAL BOLD KAPPA SYMBOL -->
+<!ENTITY b.Lambda "𝚲" ><!--MATHEMATICAL BOLD CAPITAL LAMDA -->
+<!ENTITY b.lambda "𝛌" ><!--MATHEMATICAL BOLD SMALL LAMDA -->
+<!ENTITY b.mu "𝛍" ><!--MATHEMATICAL BOLD SMALL MU -->
+<!ENTITY b.nu "𝛎" ><!--MATHEMATICAL BOLD SMALL NU -->
+<!ENTITY b.Omega "𝛀" ><!--MATHEMATICAL BOLD CAPITAL OMEGA -->
+<!ENTITY b.omega "𝛚" ><!--MATHEMATICAL BOLD SMALL OMEGA -->
+<!ENTITY b.Phi "𝚽" ><!--MATHEMATICAL BOLD CAPITAL PHI -->
+<!ENTITY b.phi "𝛗" ><!--MATHEMATICAL BOLD SMALL PHI -->
+<!ENTITY b.phiv "𝛟" ><!--MATHEMATICAL BOLD PHI SYMBOL -->
+<!ENTITY b.Pi "𝚷" ><!--MATHEMATICAL BOLD CAPITAL PI -->
+<!ENTITY b.pi "𝛑" ><!--MATHEMATICAL BOLD SMALL PI -->
+<!ENTITY b.piv "𝛡" ><!--MATHEMATICAL BOLD PI SYMBOL -->
+<!ENTITY b.Psi "𝚿" ><!--MATHEMATICAL BOLD CAPITAL PSI -->
+<!ENTITY b.psi "𝛙" ><!--MATHEMATICAL BOLD SMALL PSI -->
+<!ENTITY b.rho "𝛒" ><!--MATHEMATICAL BOLD SMALL RHO -->
+<!ENTITY b.rhov "𝛠" ><!--MATHEMATICAL BOLD RHO SYMBOL -->
+<!ENTITY b.Sigma "𝚺" ><!--MATHEMATICAL BOLD CAPITAL SIGMA -->
+<!ENTITY b.sigma "𝛔" ><!--MATHEMATICAL BOLD SMALL SIGMA -->
+<!ENTITY b.sigmav "𝛓" ><!--MATHEMATICAL BOLD SMALL FINAL SIGMA -->
+<!ENTITY b.tau "𝛕" ><!--MATHEMATICAL BOLD SMALL TAU -->
+<!ENTITY b.Theta "𝚯" ><!--MATHEMATICAL BOLD CAPITAL THETA -->
+<!ENTITY b.thetas "𝛉" ><!--MATHEMATICAL BOLD SMALL THETA -->
+<!ENTITY b.thetav "𝛝" ><!--MATHEMATICAL BOLD THETA SYMBOL -->
+<!ENTITY b.Upsi "𝚼" ><!--MATHEMATICAL BOLD CAPITAL UPSILON -->
+<!ENTITY b.upsi "𝛖" ><!--MATHEMATICAL BOLD SMALL UPSILON -->
+<!ENTITY b.Xi "𝚵" ><!--MATHEMATICAL BOLD CAPITAL XI -->
+<!ENTITY b.xi "𝛏" ><!--MATHEMATICAL BOLD SMALL XI -->
+<!ENTITY b.zeta "𝛇" ><!--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 "Á" ><!--LATIN CAPITAL LETTER A WITH ACUTE -->
+<!ENTITY aacute "á" ><!--LATIN SMALL LETTER A WITH ACUTE -->
+<!ENTITY Acirc "Â" ><!--LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY acirc "â" ><!--LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY AElig "Æ" ><!--LATIN CAPITAL LETTER AE -->
+<!ENTITY aelig "æ" ><!--LATIN SMALL LETTER AE -->
+<!ENTITY Agrave "À" ><!--LATIN CAPITAL LETTER A WITH GRAVE -->
+<!ENTITY agrave "à" ><!--LATIN SMALL LETTER A WITH GRAVE -->
+<!ENTITY Aring "Å" ><!--LATIN CAPITAL LETTER A WITH RING ABOVE -->
+<!ENTITY aring "å" ><!--LATIN SMALL LETTER A WITH RING ABOVE -->
+<!ENTITY Atilde "Ã" ><!--LATIN CAPITAL LETTER A WITH TILDE -->
+<!ENTITY atilde "ã" ><!--LATIN SMALL LETTER A WITH TILDE -->
+<!ENTITY Auml "Ä" ><!--LATIN CAPITAL LETTER A WITH DIAERESIS -->
+<!ENTITY auml "ä" ><!--LATIN SMALL LETTER A WITH DIAERESIS -->
+<!ENTITY Ccedil "Ç" ><!--LATIN CAPITAL LETTER C WITH CEDILLA -->
+<!ENTITY ccedil "ç" ><!--LATIN SMALL LETTER C WITH CEDILLA -->
+<!ENTITY Eacute "É" ><!--LATIN CAPITAL LETTER E WITH ACUTE -->
+<!ENTITY eacute "é" ><!--LATIN SMALL LETTER E WITH ACUTE -->
+<!ENTITY Ecirc "Ê" ><!--LATIN CAPITAL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY ecirc "ê" ><!--LATIN SMALL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY Egrave "È" ><!--LATIN CAPITAL LETTER E WITH GRAVE -->
+<!ENTITY egrave "è" ><!--LATIN SMALL LETTER E WITH GRAVE -->
+<!ENTITY ETH "Ð" ><!--LATIN CAPITAL LETTER ETH -->
+<!ENTITY eth "ð" ><!--LATIN SMALL LETTER ETH -->
+<!ENTITY Euml "Ë" ><!--LATIN CAPITAL LETTER E WITH DIAERESIS -->
+<!ENTITY euml "ë" ><!--LATIN SMALL LETTER E WITH DIAERESIS -->
+<!ENTITY Iacute "Í" ><!--LATIN CAPITAL LETTER I WITH ACUTE -->
+<!ENTITY iacute "í" ><!--LATIN SMALL LETTER I WITH ACUTE -->
+<!ENTITY Icirc "Î" ><!--LATIN CAPITAL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY icirc "î" ><!--LATIN SMALL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY Igrave "Ì" ><!--LATIN CAPITAL LETTER I WITH GRAVE -->
+<!ENTITY igrave "ì" ><!--LATIN SMALL LETTER I WITH GRAVE -->
+<!ENTITY Iuml "Ï" ><!--LATIN CAPITAL LETTER I WITH DIAERESIS -->
+<!ENTITY iuml "ï" ><!--LATIN SMALL LETTER I WITH DIAERESIS -->
+<!ENTITY Ntilde "Ñ" ><!--LATIN CAPITAL LETTER N WITH TILDE -->
+<!ENTITY ntilde "ñ" ><!--LATIN SMALL LETTER N WITH TILDE -->
+<!ENTITY Oacute "Ó" ><!--LATIN CAPITAL LETTER O WITH ACUTE -->
+<!ENTITY oacute "ó" ><!--LATIN SMALL LETTER O WITH ACUTE -->
+<!ENTITY Ocirc "Ô" ><!--LATIN CAPITAL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY ocirc "ô" ><!--LATIN SMALL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY Ograve "Ò" ><!--LATIN CAPITAL LETTER O WITH GRAVE -->
+<!ENTITY ograve "ò" ><!--LATIN SMALL LETTER O WITH GRAVE -->
+<!ENTITY Oslash "Ø" ><!--LATIN CAPITAL LETTER O WITH STROKE -->
+<!ENTITY oslash "ø" ><!--LATIN SMALL LETTER O WITH STROKE -->
+<!ENTITY Otilde "Õ" ><!--LATIN CAPITAL LETTER O WITH TILDE -->
+<!ENTITY otilde "õ" ><!--LATIN SMALL LETTER O WITH TILDE -->
+<!ENTITY Ouml "Ö" ><!--LATIN CAPITAL LETTER O WITH DIAERESIS -->
+<!ENTITY ouml "ö" ><!--LATIN SMALL LETTER O WITH DIAERESIS -->
+<!ENTITY szlig "ß" ><!--LATIN SMALL LETTER SHARP S -->
+<!ENTITY THORN "Þ" ><!--LATIN CAPITAL LETTER THORN -->
+<!ENTITY thorn "þ" ><!--LATIN SMALL LETTER THORN -->
+<!ENTITY Uacute "Ú" ><!--LATIN CAPITAL LETTER U WITH ACUTE -->
+<!ENTITY uacute "ú" ><!--LATIN SMALL LETTER U WITH ACUTE -->
+<!ENTITY Ucirc "Û" ><!--LATIN CAPITAL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY ucirc "û" ><!--LATIN SMALL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY Ugrave "Ù" ><!--LATIN CAPITAL LETTER U WITH GRAVE -->
+<!ENTITY ugrave "ù" ><!--LATIN SMALL LETTER U WITH GRAVE -->
+<!ENTITY Uuml "Ü" ><!--LATIN CAPITAL LETTER U WITH DIAERESIS -->
+<!ENTITY uuml "ü" ><!--LATIN SMALL LETTER U WITH DIAERESIS -->
+<!ENTITY Yacute "Ý" ><!--LATIN CAPITAL LETTER Y WITH ACUTE -->
+<!ENTITY yacute "ý" ><!--LATIN SMALL LETTER Y WITH ACUTE -->
+<!ENTITY yuml "ÿ" ><!--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 "Ă" ><!--LATIN CAPITAL LETTER A WITH BREVE -->
+<!ENTITY abreve "ă" ><!--LATIN SMALL LETTER A WITH BREVE -->
+<!ENTITY Amacr "Ā" ><!--LATIN CAPITAL LETTER A WITH MACRON -->
+<!ENTITY amacr "ā" ><!--LATIN SMALL LETTER A WITH MACRON -->
+<!ENTITY Aogon "Ą" ><!--LATIN CAPITAL LETTER A WITH OGONEK -->
+<!ENTITY aogon "ą" ><!--LATIN SMALL LETTER A WITH OGONEK -->
+<!ENTITY Cacute "Ć" ><!--LATIN CAPITAL LETTER C WITH ACUTE -->
+<!ENTITY cacute "ć" ><!--LATIN SMALL LETTER C WITH ACUTE -->
+<!ENTITY Ccaron "Č" ><!--LATIN CAPITAL LETTER C WITH CARON -->
+<!ENTITY ccaron "č" ><!--LATIN SMALL LETTER C WITH CARON -->
+<!ENTITY Ccirc "Ĉ" ><!--LATIN CAPITAL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY ccirc "ĉ" ><!--LATIN SMALL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY Cdot "Ċ" ><!--LATIN CAPITAL LETTER C WITH DOT ABOVE -->
+<!ENTITY cdot "ċ" ><!--LATIN SMALL LETTER C WITH DOT ABOVE -->
+<!ENTITY Dcaron "Ď" ><!--LATIN CAPITAL LETTER D WITH CARON -->
+<!ENTITY dcaron "ď" ><!--LATIN SMALL LETTER D WITH CARON -->
+<!ENTITY Dstrok "Đ" ><!--LATIN CAPITAL LETTER D WITH STROKE -->
+<!ENTITY dstrok "đ" ><!--LATIN SMALL LETTER D WITH STROKE -->
+<!ENTITY Ecaron "Ě" ><!--LATIN CAPITAL LETTER E WITH CARON -->
+<!ENTITY ecaron "ě" ><!--LATIN SMALL LETTER E WITH CARON -->
+<!ENTITY Edot "Ė" ><!--LATIN CAPITAL LETTER E WITH DOT ABOVE -->
+<!ENTITY edot "ė" ><!--LATIN SMALL LETTER E WITH DOT ABOVE -->
+<!ENTITY Emacr "Ē" ><!--LATIN CAPITAL LETTER E WITH MACRON -->
+<!ENTITY emacr "ē" ><!--LATIN SMALL LETTER E WITH MACRON -->
+<!ENTITY ENG "Ŋ" ><!--LATIN CAPITAL LETTER ENG -->
+<!ENTITY eng "ŋ" ><!--LATIN SMALL LETTER ENG -->
+<!ENTITY Eogon "Ę" ><!--LATIN CAPITAL LETTER E WITH OGONEK -->
+<!ENTITY eogon "ę" ><!--LATIN SMALL LETTER E WITH OGONEK -->
+<!ENTITY gacute "ǵ" ><!--LATIN SMALL LETTER G WITH ACUTE -->
+<!ENTITY Gbreve "Ğ" ><!--LATIN CAPITAL LETTER G WITH BREVE -->
+<!ENTITY gbreve "ğ" ><!--LATIN SMALL LETTER G WITH BREVE -->
+<!ENTITY Gcedil "Ģ" ><!--LATIN CAPITAL LETTER G WITH CEDILLA -->
+<!ENTITY Gcirc "Ĝ" ><!--LATIN CAPITAL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY gcirc "ĝ" ><!--LATIN SMALL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY Gdot "Ġ" ><!--LATIN CAPITAL LETTER G WITH DOT ABOVE -->
+<!ENTITY gdot "ġ" ><!--LATIN SMALL LETTER G WITH DOT ABOVE -->
+<!ENTITY Hcirc "Ĥ" ><!--LATIN CAPITAL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY hcirc "ĥ" ><!--LATIN SMALL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY Hstrok "Ħ" ><!--LATIN CAPITAL LETTER H WITH STROKE -->
+<!ENTITY hstrok "ħ" ><!--LATIN SMALL LETTER H WITH STROKE -->
+<!ENTITY Idot "İ" ><!--LATIN CAPITAL LETTER I WITH DOT ABOVE -->
+<!ENTITY IJlig "IJ" ><!--LATIN CAPITAL LIGATURE IJ -->
+<!ENTITY ijlig "ij" ><!--LATIN SMALL LIGATURE IJ -->
+<!ENTITY Imacr "Ī" ><!--LATIN CAPITAL LETTER I WITH MACRON -->
+<!ENTITY imacr "ī" ><!--LATIN SMALL LETTER I WITH MACRON -->
+<!ENTITY inodot "ı" ><!--LATIN SMALL LETTER DOTLESS I -->
+<!ENTITY Iogon "Į" ><!--LATIN CAPITAL LETTER I WITH OGONEK -->
+<!ENTITY iogon "į" ><!--LATIN SMALL LETTER I WITH OGONEK -->
+<!ENTITY Itilde "Ĩ" ><!--LATIN CAPITAL LETTER I WITH TILDE -->
+<!ENTITY itilde "ĩ" ><!--LATIN SMALL LETTER I WITH TILDE -->
+<!ENTITY Jcirc "Ĵ" ><!--LATIN CAPITAL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY jcirc "ĵ" ><!--LATIN SMALL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY Kcedil "Ķ" ><!--LATIN CAPITAL LETTER K WITH CEDILLA -->
+<!ENTITY kcedil "ķ" ><!--LATIN SMALL LETTER K WITH CEDILLA -->
+<!ENTITY kgreen "ĸ" ><!--LATIN SMALL LETTER KRA -->
+<!ENTITY Lacute "Ĺ" ><!--LATIN CAPITAL LETTER L WITH ACUTE -->
+<!ENTITY lacute "ĺ" ><!--LATIN SMALL LETTER L WITH ACUTE -->
+<!ENTITY Lcaron "Ľ" ><!--LATIN CAPITAL LETTER L WITH CARON -->
+<!ENTITY lcaron "ľ" ><!--LATIN SMALL LETTER L WITH CARON -->
+<!ENTITY Lcedil "Ļ" ><!--LATIN CAPITAL LETTER L WITH CEDILLA -->
+<!ENTITY lcedil "ļ" ><!--LATIN SMALL LETTER L WITH CEDILLA -->
+<!ENTITY Lmidot "Ŀ" ><!--LATIN CAPITAL LETTER L WITH MIDDLE DOT -->
+<!ENTITY lmidot "ŀ" ><!--LATIN SMALL LETTER L WITH MIDDLE DOT -->
+<!ENTITY Lstrok "Ł" ><!--LATIN CAPITAL LETTER L WITH STROKE -->
+<!ENTITY lstrok "ł" ><!--LATIN SMALL LETTER L WITH STROKE -->
+<!ENTITY Nacute "Ń" ><!--LATIN CAPITAL LETTER N WITH ACUTE -->
+<!ENTITY nacute "ń" ><!--LATIN SMALL LETTER N WITH ACUTE -->
+<!ENTITY napos "ʼn" ><!--LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -->
+<!ENTITY Ncaron "Ň" ><!--LATIN CAPITAL LETTER N WITH CARON -->
+<!ENTITY ncaron "ň" ><!--LATIN SMALL LETTER N WITH CARON -->
+<!ENTITY Ncedil "Ņ" ><!--LATIN CAPITAL LETTER N WITH CEDILLA -->
+<!ENTITY ncedil "ņ" ><!--LATIN SMALL LETTER N WITH CEDILLA -->
+<!ENTITY Odblac "Ő" ><!--LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY odblac "ő" ><!--LATIN SMALL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY OElig "Œ" ><!--LATIN CAPITAL LIGATURE OE -->
+<!ENTITY oelig "œ" ><!--LATIN SMALL LIGATURE OE -->
+<!ENTITY Omacr "Ō" ><!--LATIN CAPITAL LETTER O WITH MACRON -->
+<!ENTITY omacr "ō" ><!--LATIN SMALL LETTER O WITH MACRON -->
+<!ENTITY Racute "Ŕ" ><!--LATIN CAPITAL LETTER R WITH ACUTE -->
+<!ENTITY racute "ŕ" ><!--LATIN SMALL LETTER R WITH ACUTE -->
+<!ENTITY Rcaron "Ř" ><!--LATIN CAPITAL LETTER R WITH CARON -->
+<!ENTITY rcaron "ř" ><!--LATIN SMALL LETTER R WITH CARON -->
+<!ENTITY Rcedil "Ŗ" ><!--LATIN CAPITAL LETTER R WITH CEDILLA -->
+<!ENTITY rcedil "ŗ" ><!--LATIN SMALL LETTER R WITH CEDILLA -->
+<!ENTITY Sacute "Ś" ><!--LATIN CAPITAL LETTER S WITH ACUTE -->
+<!ENTITY sacute "ś" ><!--LATIN SMALL LETTER S WITH ACUTE -->
+<!ENTITY Scaron "Š" ><!--LATIN CAPITAL LETTER S WITH CARON -->
+<!ENTITY scaron "š" ><!--LATIN SMALL LETTER S WITH CARON -->
+<!ENTITY Scedil "Ş" ><!--LATIN CAPITAL LETTER S WITH CEDILLA -->
+<!ENTITY scedil "ş" ><!--LATIN SMALL LETTER S WITH CEDILLA -->
+<!ENTITY Scirc "Ŝ" ><!--LATIN CAPITAL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY scirc "ŝ" ><!--LATIN SMALL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY Tcaron "Ť" ><!--LATIN CAPITAL LETTER T WITH CARON -->
+<!ENTITY tcaron "ť" ><!--LATIN SMALL LETTER T WITH CARON -->
+<!ENTITY Tcedil "Ţ" ><!--LATIN CAPITAL LETTER T WITH CEDILLA -->
+<!ENTITY tcedil "ţ" ><!--LATIN SMALL LETTER T WITH CEDILLA -->
+<!ENTITY Tstrok "Ŧ" ><!--LATIN CAPITAL LETTER T WITH STROKE -->
+<!ENTITY tstrok "ŧ" ><!--LATIN SMALL LETTER T WITH STROKE -->
+<!ENTITY Ubreve "Ŭ" ><!--LATIN CAPITAL LETTER U WITH BREVE -->
+<!ENTITY ubreve "ŭ" ><!--LATIN SMALL LETTER U WITH BREVE -->
+<!ENTITY Udblac "Ű" ><!--LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY udblac "ű" ><!--LATIN SMALL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY Umacr "Ū" ><!--LATIN CAPITAL LETTER U WITH MACRON -->
+<!ENTITY umacr "ū" ><!--LATIN SMALL LETTER U WITH MACRON -->
+<!ENTITY Uogon "Ų" ><!--LATIN CAPITAL LETTER U WITH OGONEK -->
+<!ENTITY uogon "ų" ><!--LATIN SMALL LETTER U WITH OGONEK -->
+<!ENTITY Uring "Ů" ><!--LATIN CAPITAL LETTER U WITH RING ABOVE -->
+<!ENTITY uring "ů" ><!--LATIN SMALL LETTER U WITH RING ABOVE -->
+<!ENTITY Utilde "Ũ" ><!--LATIN CAPITAL LETTER U WITH TILDE -->
+<!ENTITY utilde "ũ" ><!--LATIN SMALL LETTER U WITH TILDE -->
+<!ENTITY Wcirc "Ŵ" ><!--LATIN CAPITAL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY wcirc "ŵ" ><!--LATIN SMALL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY Ycirc "Ŷ" ><!--LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY ycirc "ŷ" ><!--LATIN SMALL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Yuml "Ÿ" ><!--LATIN CAPITAL LETTER Y WITH DIAERESIS -->
+<!ENTITY Zacute "Ź" ><!--LATIN CAPITAL LETTER Z WITH ACUTE -->
+<!ENTITY zacute "ź" ><!--LATIN SMALL LETTER Z WITH ACUTE -->
+<!ENTITY Zcaron "Ž" ><!--LATIN CAPITAL LETTER Z WITH CARON -->
+<!ENTITY zcaron "ž" ><!--LATIN SMALL LETTER Z WITH CARON -->
+<!ENTITY Zdot "Ż" ><!--LATIN CAPITAL LETTER Z WITH DOT ABOVE -->
+<!ENTITY zdot "ż" ><!--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;" ><!--AMPERSAND -->
+<!ENTITY apos "'" ><!--APOSTROPHE -->
+<!ENTITY ast "*" ><!--ASTERISK -->
+<!ENTITY brvbar "¦" ><!--BROKEN BAR -->
+<!ENTITY bsol "\" ><!--REVERSE SOLIDUS -->
+<!ENTITY cent "¢" ><!--CENT SIGN -->
+<!ENTITY colon ":" ><!--COLON -->
+<!ENTITY comma "," ><!--COMMA -->
+<!ENTITY commat "@" ><!--COMMERCIAL AT -->
+<!ENTITY copy "©" ><!--COPYRIGHT SIGN -->
+<!ENTITY curren "¤" ><!--CURRENCY SIGN -->
+<!ENTITY darr "↓" ><!--DOWNWARDS ARROW -->
+<!ENTITY deg "°" ><!--DEGREE SIGN -->
+<!ENTITY divide "÷" ><!--DIVISION SIGN -->
+<!ENTITY dollar "$" ><!--DOLLAR SIGN -->
+<!ENTITY equals "=" ><!--EQUALS SIGN -->
+<!ENTITY excl "!" ><!--EXCLAMATION MARK -->
+<!ENTITY frac12 "½" ><!--VULGAR FRACTION ONE HALF -->
+<!ENTITY frac14 "¼" ><!--VULGAR FRACTION ONE QUARTER -->
+<!ENTITY frac18 "⅛" ><!--VULGAR FRACTION ONE EIGHTH -->
+<!ENTITY frac34 "¾" ><!--VULGAR FRACTION THREE QUARTERS -->
+<!ENTITY frac38 "⅜" ><!--VULGAR FRACTION THREE EIGHTHS -->
+<!ENTITY frac58 "⅝" ><!--VULGAR FRACTION FIVE EIGHTHS -->
+<!ENTITY frac78 "⅞" ><!--VULGAR FRACTION SEVEN EIGHTHS -->
+<!ENTITY gt ">" ><!--GREATER-THAN SIGN -->
+<!ENTITY half "½" ><!--VULGAR FRACTION ONE HALF -->
+<!ENTITY horbar "―" ><!--HORIZONTAL BAR -->
+<!ENTITY hyphen "‐" ><!--HYPHEN -->
+<!ENTITY iexcl "¡" ><!--INVERTED EXCLAMATION MARK -->
+<!ENTITY iquest "¿" ><!--INVERTED QUESTION MARK -->
+<!ENTITY laquo "«" ><!--LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY larr "←" ><!--LEFTWARDS ARROW -->
+<!ENTITY lcub "{" ><!--LEFT CURLY BRACKET -->
+<!ENTITY ldquo "“" ><!--LEFT DOUBLE QUOTATION MARK -->
+<!ENTITY lowbar "_" ><!--LOW LINE -->
+<!ENTITY lpar "(" ><!--LEFT PARENTHESIS -->
+<!ENTITY lsqb "[" ><!--LEFT SQUARE BRACKET -->
+<!ENTITY lsquo "‘" ><!--LEFT SINGLE QUOTATION MARK -->
+<!ENTITY lt "&#60;" ><!--LESS-THAN SIGN -->
+<!ENTITY micro "µ" ><!--MICRO SIGN -->
+<!ENTITY middot "·" ><!--MIDDLE DOT -->
+<!ENTITY nbsp " " ><!--NO-BREAK SPACE -->
+<!ENTITY not "¬" ><!--NOT SIGN -->
+<!ENTITY num "#" ><!--NUMBER SIGN -->
+<!ENTITY ohm "Ω" ><!--OHM SIGN -->
+<!ENTITY ordf "ª" ><!--FEMININE ORDINAL INDICATOR -->
+<!ENTITY ordm "º" ><!--MASCULINE ORDINAL INDICATOR -->
+<!ENTITY para "¶" ><!--PILCROW SIGN -->
+<!ENTITY percnt "%" ><!--PERCENT SIGN -->
+<!ENTITY period "." ><!--FULL STOP -->
+<!ENTITY plus "+" ><!--PLUS SIGN -->
+<!ENTITY plusmn "±" ><!--PLUS-MINUS SIGN -->
+<!ENTITY pound "£" ><!--POUND SIGN -->
+<!ENTITY quest "?" ><!--QUESTION MARK -->
+<!ENTITY quot """ ><!--QUOTATION MARK -->
+<!ENTITY raquo "»" ><!--RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY rarr "→" ><!--RIGHTWARDS ARROW -->
+<!ENTITY rcub "}" ><!--RIGHT CURLY BRACKET -->
+<!ENTITY rdquo "”" ><!--RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY reg "®" ><!--REGISTERED SIGN -->
+<!ENTITY rpar ")" ><!--RIGHT PARENTHESIS -->
+<!ENTITY rsqb "]" ><!--RIGHT SQUARE BRACKET -->
+<!ENTITY rsquo "’" ><!--RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY sect "§" ><!--SECTION SIGN -->
+<!ENTITY semi ";" ><!--SEMICOLON -->
+<!ENTITY shy "­" ><!--SOFT HYPHEN -->
+<!ENTITY sol "/" ><!--SOLIDUS -->
+<!ENTITY sung "♪" ><!--EIGHTH NOTE -->
+<!ENTITY sup1 "¹" ><!--SUPERSCRIPT ONE -->
+<!ENTITY sup2 "²" ><!--SUPERSCRIPT TWO -->
+<!ENTITY sup3 "³" ><!--SUPERSCRIPT THREE -->
+<!ENTITY times "×" ><!--MULTIPLICATION SIGN -->
+<!ENTITY trade "™" ><!--TRADE MARK SIGN -->
+<!ENTITY uarr "↑" ><!--UPWARDS ARROW -->
+<!ENTITY verbar "|" ><!--VERTICAL LINE -->
+<!ENTITY yen "¥" ><!--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 "␣" ><!--OPEN BOX -->
+<!ENTITY blk12 "▒" ><!--MEDIUM SHADE -->
+<!ENTITY blk14 "░" ><!--LIGHT SHADE -->
+<!ENTITY blk34 "▓" ><!--DARK SHADE -->
+<!ENTITY block "█" ><!--FULL BLOCK -->
+<!ENTITY bull "•" ><!--BULLET -->
+<!ENTITY caret "⁁" ><!--CARET INSERTION POINT -->
+<!ENTITY check "✓" ><!--CHECK MARK -->
+<!ENTITY cir "○" ><!--WHITE CIRCLE -->
+<!ENTITY clubs "♣" ><!--BLACK CLUB SUIT -->
+<!ENTITY copysr "℗" ><!--SOUND RECORDING COPYRIGHT -->
+<!ENTITY cross "✗" ><!--BALLOT X -->
+<!ENTITY Dagger "‡" ><!--DOUBLE DAGGER -->
+<!ENTITY dagger "†" ><!--DAGGER -->
+<!ENTITY dash "‐" ><!--HYPHEN -->
+<!ENTITY diams "♦" ><!--BLACK DIAMOND SUIT -->
+<!ENTITY dlcrop "⌍" ><!--BOTTOM LEFT CROP -->
+<!ENTITY drcrop "⌌" ><!--BOTTOM RIGHT CROP -->
+<!ENTITY dtri "▿" ><!--WHITE DOWN-POINTING SMALL TRIANGLE -->
+<!ENTITY dtrif "▾" ><!--BLACK DOWN-POINTING SMALL TRIANGLE -->
+<!ENTITY emsp " " ><!--EM SPACE -->
+<!ENTITY emsp13 " " ><!--THREE-PER-EM SPACE -->
+<!ENTITY emsp14 " " ><!--FOUR-PER-EM SPACE -->
+<!ENTITY ensp " " ><!--EN SPACE -->
+<!ENTITY female "♀" ><!--FEMALE SIGN -->
+<!ENTITY ffilig "ffi" ><!--LATIN SMALL LIGATURE FFI -->
+<!ENTITY fflig "ff" ><!--LATIN SMALL LIGATURE FF -->
+<!ENTITY ffllig "ffl" ><!--LATIN SMALL LIGATURE FFL -->
+<!ENTITY filig "fi" ><!--LATIN SMALL LIGATURE FI -->
+<!ENTITY flat "♭" ><!--MUSIC FLAT SIGN -->
+<!ENTITY fllig "fl" ><!--LATIN SMALL LIGATURE FL -->
+<!ENTITY frac13 "⅓" ><!--VULGAR FRACTION ONE THIRD -->
+<!ENTITY frac15 "⅕" ><!--VULGAR FRACTION ONE FIFTH -->
+<!ENTITY frac16 "⅙" ><!--VULGAR FRACTION ONE SIXTH -->
+<!ENTITY frac23 "⅔" ><!--VULGAR FRACTION TWO THIRDS -->
+<!ENTITY frac25 "⅖" ><!--VULGAR FRACTION TWO FIFTHS -->
+<!ENTITY frac35 "⅗" ><!--VULGAR FRACTION THREE FIFTHS -->
+<!ENTITY frac45 "⅘" ><!--VULGAR FRACTION FOUR FIFTHS -->
+<!ENTITY frac56 "⅚" ><!--VULGAR FRACTION FIVE SIXTHS -->
+<!ENTITY hairsp " " ><!--HAIR SPACE -->
+<!ENTITY hearts "♥" ><!--BLACK HEART SUIT -->
+<!ENTITY hellip "…" ><!--HORIZONTAL ELLIPSIS -->
+<!ENTITY hybull "⁃" ><!--HYPHEN BULLET -->
+<!ENTITY incare "℅" ><!--CARE OF -->
+<!ENTITY ldquor "„" ><!--DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY lhblk "▄" ><!--LOWER HALF BLOCK -->
+<!ENTITY loz "◊" ><!--LOZENGE -->
+<!ENTITY lozf "⧫" ><!--BLACK LOZENGE -->
+<!ENTITY lsquor "‚" ><!--SINGLE LOW-9 QUOTATION MARK -->
+<!ENTITY ltri "◃" ><!--WHITE LEFT-POINTING SMALL TRIANGLE -->
+<!ENTITY ltrif "◂" ><!--BLACK LEFT-POINTING SMALL TRIANGLE -->
+<!ENTITY male "♂" ><!--MALE SIGN -->
+<!ENTITY malt "✠" ><!--MALTESE CROSS -->
+<!ENTITY marker "▮" ><!--BLACK VERTICAL RECTANGLE -->
+<!ENTITY mdash "—" ><!--EM DASH -->
+<!ENTITY mldr "…" ><!--HORIZONTAL ELLIPSIS -->
+<!ENTITY natur "♮" ><!--MUSIC NATURAL SIGN -->
+<!ENTITY ndash "–" ><!--EN DASH -->
+<!ENTITY nldr "‥" ><!--TWO DOT LEADER -->
+<!ENTITY numsp " " ><!--FIGURE SPACE -->
+<!ENTITY phone "☎" ><!--BLACK TELEPHONE -->
+<!ENTITY puncsp " " ><!--PUNCTUATION SPACE -->
+<!ENTITY rdquor "”" ><!--RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY rect "▭" ><!--WHITE RECTANGLE -->
+<!ENTITY rsquor "’" ><!--RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY rtri "▹" ><!--WHITE RIGHT-POINTING SMALL TRIANGLE -->
+<!ENTITY rtrif "▸" ><!--BLACK RIGHT-POINTING SMALL TRIANGLE -->
+<!ENTITY rx "℞" ><!--PRESCRIPTION TAKE -->
+<!ENTITY sext "✶" ><!--SIX POINTED BLACK STAR -->
+<!ENTITY sharp "♯" ><!--MUSIC SHARP SIGN -->
+<!ENTITY spades "♠" ><!--BLACK SPADE SUIT -->
+<!ENTITY squ "□" ><!--WHITE SQUARE -->
+<!ENTITY squf "▪" ><!--BLACK SMALL SQUARE -->
+<!ENTITY star "☆" ><!--WHITE STAR -->
+<!ENTITY starf "★" ><!--BLACK STAR -->
+<!ENTITY target "⌖" ><!--POSITION INDICATOR -->
+<!ENTITY telrec "⌕" ><!--TELEPHONE RECORDER -->
+<!ENTITY thinsp " " ><!--THIN SPACE -->
+<!ENTITY uhblk "▀" ><!--UPPER HALF BLOCK -->
+<!ENTITY ulcrop "⌏" ><!--TOP LEFT CROP -->
+<!ENTITY urcrop "⌎" ><!--TOP RIGHT CROP -->
+<!ENTITY utri "▵" ><!--WHITE UP-POINTING SMALL TRIANGLE -->
+<!ENTITY utrif "▴" ><!--BLACK UP-POINTING SMALL TRIANGLE -->
+<!ENTITY vellip "⋮" ><!--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 "ℵ" ><!--ALEF SYMBOL -->
+<!ENTITY and "∧" ><!--LOGICAL AND -->
+<!ENTITY ang90 "∟" ><!--RIGHT ANGLE -->
+<!ENTITY angsph "∢" ><!--SPHERICAL ANGLE -->
+<!ENTITY angst "Å" ><!--ANGSTROM SIGN -->
+<!ENTITY ap "≈" ><!--ALMOST EQUAL TO -->
+<!ENTITY becaus "∵" ><!--BECAUSE -->
+<!ENTITY bernou "ℬ" ><!--SCRIPT CAPITAL B -->
+<!ENTITY bottom "⊥" ><!--UP TACK -->
+<!ENTITY cap "∩" ><!--INTERSECTION -->
+<!ENTITY compfn "∘" ><!--RING OPERATOR -->
+<!ENTITY cong "≅" ><!--APPROXIMATELY EQUAL TO -->
+<!ENTITY conint "∮" ><!--CONTOUR INTEGRAL -->
+<!ENTITY cup "∪" ><!--UNION -->
+<!ENTITY Dot "¨" ><!--DIAERESIS -->
+<!ENTITY DotDot " ⃜" ><!--COMBINING FOUR DOTS ABOVE -->
+<!ENTITY equiv "≡" ><!--IDENTICAL TO -->
+<!ENTITY exist "∃" ><!--THERE EXISTS -->
+<!ENTITY fnof "ƒ" ><!--LATIN SMALL LETTER F WITH HOOK -->
+<!ENTITY forall "∀" ><!--FOR ALL -->
+<!ENTITY ge "≥" ><!--GREATER-THAN OR EQUAL TO -->
+<!ENTITY hamilt "ℋ" ><!--SCRIPT CAPITAL H -->
+<!ENTITY iff "⇔" ><!--LEFT RIGHT DOUBLE ARROW -->
+<!ENTITY infin "∞" ><!--INFINITY -->
+<!ENTITY int "∫" ><!--INTEGRAL -->
+<!ENTITY isin "∈" ><!--ELEMENT OF -->
+<!ENTITY lagran "ℒ" ><!--SCRIPT CAPITAL L -->
+<!ENTITY lang "〈" ><!--LEFT-POINTING ANGLE BRACKET -->
+<!ENTITY lArr "⇐" ><!--LEFTWARDS DOUBLE ARROW -->
+<!ENTITY le "≤" ><!--LESS-THAN OR EQUAL TO -->
+<!ENTITY lowast "∗" ><!--ASTERISK OPERATOR -->
+<!ENTITY minus "−" ><!--MINUS SIGN -->
+<!ENTITY mnplus "∓" ><!--MINUS-OR-PLUS SIGN -->
+<!ENTITY nabla "∇" ><!--NABLA -->
+<!ENTITY ne "≠" ><!--NOT EQUAL TO -->
+<!ENTITY ni "∋" ><!--CONTAINS AS MEMBER -->
+<!ENTITY notin "∉" ><!--NOT AN ELEMENT OF -->
+<!ENTITY or "∨" ><!--LOGICAL OR -->
+<!ENTITY order "ℴ" ><!--SCRIPT SMALL O -->
+<!ENTITY par "∥" ><!--PARALLEL TO -->
+<!ENTITY part "∂" ><!--PARTIAL DIFFERENTIAL -->
+<!ENTITY permil "‰" ><!--PER MILLE SIGN -->
+<!ENTITY perp "⊥" ><!--UP TACK -->
+<!ENTITY phmmat "ℳ" ><!--SCRIPT CAPITAL M -->
+<!ENTITY Prime "″" ><!--DOUBLE PRIME -->
+<!ENTITY prime "′" ><!--PRIME -->
+<!ENTITY prop "∝" ><!--PROPORTIONAL TO -->
+<!ENTITY radic "√" ><!--SQUARE ROOT -->
+<!ENTITY rang "〉" ><!--RIGHT-POINTING ANGLE BRACKET -->
+<!ENTITY rArr "⇒" ><!--RIGHTWARDS DOUBLE ARROW -->
+<!ENTITY sim "∼" ><!--TILDE OPERATOR -->
+<!ENTITY sime "≃" ><!--ASYMPTOTICALLY EQUAL TO -->
+<!ENTITY square "□" ><!--WHITE SQUARE -->
+<!ENTITY sub "⊂" ><!--SUBSET OF -->
+<!ENTITY sube "⊆" ><!--SUBSET OF OR EQUAL TO -->
+<!ENTITY sup "⊃" ><!--SUPERSET OF -->
+<!ENTITY supe "⊇" ><!--SUPERSET OF OR EQUAL TO -->
+<!ENTITY tdot " ⃛" ><!--COMBINING THREE DOTS ABOVE -->
+<!ENTITY there4 "∴" ><!--THEREFORE -->
+<!ENTITY tprime "‴" ><!--TRIPLE PRIME -->
+<!ENTITY Verbar "‖" ><!--DOUBLE VERTICAL LINE -->
+<!ENTITY wedgeq "≙" ><!--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]