summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@src.gnome.org>2001-02-24 16:51:37 +0000
committerDaniel Veillard <veillard@src.gnome.org>2001-02-24 16:51:37 +0000
commit294ccb6850f153440bdfc5c8936d9871f6f0a123 (patch)
tree0af47719cfa61980bc895355e904c6231436aabd
parent7bba163d4d9e3e9a54f2a7ff80a68acbba7c1ac4 (diff)
downloadlibxslt-294ccb6850f153440bdfc5c8936d9871f6f0a123.tar.gz
libxslt-294ccb6850f153440bdfc5c8936d9871f6f0a123.tar.bz2
libxslt-294ccb6850f153440bdfc5c8936d9871f6f0a123.zip
- configure.in tests/Makefile.am tests/docbook tree:
added docbook XSL based test suite Daniel
-rw-r--r--ChangeLog5
-rw-r--r--configure.in13
-rw-r--r--tests/Makefile.am10
-rw-r--r--tests/docbook/Makefile.am23
-rw-r--r--tests/docbook/README107
-rw-r--r--tests/docbook/VERSION6
-rw-r--r--tests/docbook/common/ChangeLog98
-rw-r--r--tests/docbook/common/LostLog167
-rw-r--r--tests/docbook/common/Makefile.am9
-rw-r--r--tests/docbook/common/ca.xml100
-rw-r--r--tests/docbook/common/common.xsl1929
-rw-r--r--tests/docbook/common/cs.xml108
-rw-r--r--tests/docbook/common/da.xml98
-rw-r--r--tests/docbook/common/de.xml99
-rw-r--r--tests/docbook/common/el.xml104
-rw-r--r--tests/docbook/common/en.xml102
-rw-r--r--tests/docbook/common/es.xml98
-rw-r--r--tests/docbook/common/et.xml104
-rw-r--r--tests/docbook/common/fi.xml98
-rw-r--r--tests/docbook/common/fr.xml99
-rw-r--r--tests/docbook/common/hu.xml94
-rw-r--r--tests/docbook/common/id.xml104
-rw-r--r--tests/docbook/common/it.xml103
-rw-r--r--tests/docbook/common/ja.xml104
-rw-r--r--tests/docbook/common/ko.xml96
-rw-r--r--tests/docbook/common/l10n.dtd25
-rw-r--r--tests/docbook/common/l10n.xml59
-rw-r--r--tests/docbook/common/l10n.xsl244
-rw-r--r--tests/docbook/common/nl.xml105
-rw-r--r--tests/docbook/common/no.xml97
-rw-r--r--tests/docbook/common/pl.xml96
-rw-r--r--tests/docbook/common/pt.xml98
-rw-r--r--tests/docbook/common/pt_br.xml98
-rw-r--r--tests/docbook/common/ro.xml104
-rw-r--r--tests/docbook/common/ru.xml113
-rw-r--r--tests/docbook/common/sk.xml104
-rw-r--r--tests/docbook/common/sl.xml104
-rw-r--r--tests/docbook/common/sv.xml99
-rw-r--r--tests/docbook/common/zh_cn.xml95
-rw-r--r--tests/docbook/common/zh_tw.xml98
-rw-r--r--tests/docbook/dtd/3.1.7/COPYRIGHT27
-rw-r--r--tests/docbook/dtd/3.1.7/ChangeLog249
-rw-r--r--tests/docbook/dtd/3.1.7/Makefile.am12
-rw-r--r--tests/docbook/dtd/3.1.7/README76
-rw-r--r--tests/docbook/dtd/3.1.7/VERSION1
-rw-r--r--tests/docbook/dtd/3.1.7/calstblx.dtd176
-rw-r--r--tests/docbook/dtd/3.1.7/dbcentx.mod166
-rw-r--r--tests/docbook/dtd/3.1.7/dbgenent.ent21
-rw-r--r--tests/docbook/dtd/3.1.7/dbhierx.mod1795
-rw-r--r--tests/docbook/dtd/3.1.7/dbnotnx.mod60
-rw-r--r--tests/docbook/dtd/3.1.7/dbpoolx.mod7291
-rw-r--r--tests/docbook/dtd/3.1.7/dbtblcals.dtd5
-rw-r--r--tests/docbook/dtd/3.1.7/dbtblxchg.dtd5
-rw-r--r--tests/docbook/dtd/3.1.7/docbookx.dtd69
-rw-r--r--tests/docbook/dtd/3.1.7/ent/ChangeLog9
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-amsa.ent61
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-amsb.ent47
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-amsc.ent15
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-amsn.ent64
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-amso.ent24
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-amsr.ent89
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-box.ent45
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-cyr1.ent72
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-cyr2.ent31
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-dia.ent19
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-grk1.ent54
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-grk2.ent25
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-grk3.ent48
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-grk4.ent48
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-lat1.ent67
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-lat2.ent126
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-num.ent81
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-pub.ent90
-rw-r--r--tests/docbook/dtd/3.1.7/ent/iso-tech.ent67
-rw-r--r--tests/docbook/dtd/3.1.7/soextblx.dtd307
-rw-r--r--tests/docbook/dtd/4.0/40chg.txt51
-rw-r--r--tests/docbook/dtd/4.0/Makefile.am10
-rwxr-xr-xtests/docbook/dtd/4.0/calstblx.dtd199
-rwxr-xr-xtests/docbook/dtd/4.0/dbcentx.mod204
-rwxr-xr-xtests/docbook/dtd/4.0/dbhierx.mod2086
-rwxr-xr-xtests/docbook/dtd/4.0/dbnotnx.mod97
-rwxr-xr-xtests/docbook/dtd/4.0/dbpoolx.mod7573
-rwxr-xr-xtests/docbook/dtd/4.0/docbookx.dtd125
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-amsa.ent61
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-amsb.ent47
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-amsc.ent15
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-amsn.ent64
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-amso.ent24
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-amsr.ent89
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-box.ent45
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-cyr1.ent72
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-cyr2.ent31
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-dia.ent19
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-grk1.ent54
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-grk2.ent25
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-grk3.ent48
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-grk4.ent48
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-lat1.ent67
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-lat2.ent126
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-num.ent81
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-pub.ent90
-rwxr-xr-xtests/docbook/dtd/4.0/ent/iso-tech.ent67
-rw-r--r--tests/docbook/dtd/4.0/readme.txt12
-rw-r--r--tests/docbook/dtd/4.0/soextblx.dtd308
-rw-r--r--tests/docbook/dtd/4.1.2/40chg.txt53
-rw-r--r--tests/docbook/dtd/4.1.2/41chg.txt18
-rw-r--r--tests/docbook/dtd/4.1.2/ChangeLog118
-rw-r--r--tests/docbook/dtd/4.1.2/Makefile.am11
-rwxr-xr-xtests/docbook/dtd/4.1.2/calstblx.dtd199
-rwxr-xr-xtests/docbook/dtd/4.1.2/dbcentx.mod204
-rw-r--r--tests/docbook/dtd/4.1.2/dbgenent.mod41
-rwxr-xr-xtests/docbook/dtd/4.1.2/dbhierx.mod2074
-rwxr-xr-xtests/docbook/dtd/4.1.2/dbnotnx.mod97
-rwxr-xr-xtests/docbook/dtd/4.1.2/dbpoolx.mod7516
-rwxr-xr-xtests/docbook/dtd/4.1.2/docbookx.dtd125
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-amsa.ent63
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-amsb.ent49
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-amsc.ent15
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-amsn.ent66
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-amso.ent26
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-amsr.ent91
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-box.ent45
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-cyr1.ent72
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-cyr2.ent31
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-dia.ent19
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-grk1.ent54
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-grk2.ent25
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-grk3.ent48
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-grk4.ent48
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-lat1.ent67
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-lat2.ent126
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-num.ent81
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-pub.ent90
-rw-r--r--tests/docbook/dtd/4.1.2/ent/iso-tech.ent69
-rw-r--r--tests/docbook/dtd/4.1.2/readme.txt16
-rw-r--r--tests/docbook/dtd/4.1.2/soextblx.dtd308
-rw-r--r--tests/docbook/dtd/Makefile.am4
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/ChangeLog113
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/Makefile.am9
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/README105
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/VERSION1
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/ent/ChangeLog4
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/ent/iso-lat1.ent67
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/ent/iso-num.ent81
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/ent/iso-pub.ent90
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/sdbcent.mod47
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/sdbhier.mod64
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/sdbpool.mod166
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/sdocbook-custom.dtd238
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/sdocbook.css674
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/sdocbook.dtd1315
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/sdocbookref-custom.dtd22
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/sdocbookref.dtd1460
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/sinclist.mod252
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/test.xml6
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/testcss.xml52
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/testcust.xml4
-rw-r--r--tests/docbook/dtd/simple/3.1.7.1/testrefcust.xml10
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/COPYRIGHT26
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/ChangeLog31
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/LostLog173
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/Makefile.am7
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/README107
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/VERSION1
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/sdbcent.mod47
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/sdbhier.mod68
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/sdbpool.mod174
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/sdocbook-custom.dtd306
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/sdocbook.css679
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/sdocbook.dtd1530
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/sdocbookref.dtd1688
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/sinclist.mod284
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/test.xml6
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/testcss.xml52
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/testcust.xml4
-rw-r--r--tests/docbook/dtd/simple/4.1.2.4/testrefcust.xml10
-rw-r--r--tests/docbook/dtd/simple/Makefile.am4
-rw-r--r--tests/docbook/lib/ChangeLog20
-rw-r--r--tests/docbook/lib/LostLog24
-rw-r--r--tests/docbook/lib/Makefile.am3
-rw-r--r--tests/docbook/lib/lib.xsl242
-rw-r--r--tests/docbook/result/Makefile.am4
-rw-r--r--tests/docbook/result/html/Makefile.am11
-rw-r--r--tests/docbook/result/html/article.html163
-rw-r--r--tests/docbook/result/html/article2.html122
-rw-r--r--tests/docbook/result/html/article3.html122
-rw-r--r--tests/docbook/result/html/bib.html175
-rw-r--r--tests/docbook/result/html/book.html415
-rw-r--r--tests/docbook/result/html/book2.html3245
-rw-r--r--tests/docbook/result/html/book3.html272
-rw-r--r--tests/docbook/result/html/callout.html82
-rw-r--r--tests/docbook/result/html/chunk.html130
-rw-r--r--tests/docbook/result/html/classsynop.html118
-rw-r--r--tests/docbook/result/html/condition.html3307
-rw-r--r--tests/docbook/result/html/docbook40.html136
-rw-r--r--tests/docbook/result/html/emc2.gifbin0 -> 1342 bytes
-rw-r--r--tests/docbook/result/html/emc2.pngbin0 -> 1423 bytes
-rw-r--r--tests/docbook/result/html/figtest.html57
-rw-r--r--tests/docbook/result/html/foottest.html94
-rw-r--r--tests/docbook/result/html/fotest.html60
-rw-r--r--tests/docbook/result/html/func.html29
-rw-r--r--tests/docbook/result/html/graphics.html59
-rw-r--r--tests/docbook/result/html/gtest.html17
-rw-r--r--tests/docbook/result/html/idxbook.html84
-rw-r--r--tests/docbook/result/html/multilingual.html736
-rw-r--r--tests/docbook/result/html/qa.html982
-rw-r--r--tests/docbook/result/html/qa2.html80
-rw-r--r--tests/docbook/result/html/sectest.html733
-rw-r--r--tests/docbook/result/html/set.html136
-rw-r--r--tests/docbook/result/html/table.html282
-rw-r--r--tests/docbook/result/html/test.html30
-rw-r--r--tests/docbook/result/html/testmath.html64
-rw-r--r--tests/docbook/result/html/verbtest.html26
-rw-r--r--tests/docbook/test/ChangeLog70
-rw-r--r--tests/docbook/test/LostLog127
-rw-r--r--tests/docbook/test/Makefile.am11
-rw-r--r--tests/docbook/test/article.xml120
-rw-r--r--tests/docbook/test/article2.xml80
-rw-r--r--tests/docbook/test/article3.xml60
-rw-r--r--tests/docbook/test/bib.xml229
-rw-r--r--tests/docbook/test/book.xml410
-rw-r--r--tests/docbook/test/book2.xml3249
-rw-r--r--tests/docbook/test/book3.xml391
-rw-r--r--tests/docbook/test/callout.xml55
-rw-r--r--tests/docbook/test/chunk.xml127
-rw-r--r--tests/docbook/test/classsynop.xml160
-rw-r--r--tests/docbook/test/condition.xml3303
-rw-r--r--tests/docbook/test/docbook.css2
-rw-r--r--tests/docbook/test/docbook40.xml128
-rw-r--r--tests/docbook/test/emc2.gifbin0 -> 1342 bytes
-rw-r--r--tests/docbook/test/emc2.pngbin0 -> 1423 bytes
-rw-r--r--tests/docbook/test/figtest.xml46
-rw-r--r--tests/docbook/test/foottest.xml67
-rw-r--r--tests/docbook/test/fotest.xml57
-rw-r--r--tests/docbook/test/func.xml24
-rw-r--r--tests/docbook/test/graphics.xml89
-rw-r--r--tests/docbook/test/gtest.xml23
-rw-r--r--tests/docbook/test/idxbook.xml142
-rw-r--r--tests/docbook/test/multilingual.xml700
-rw-r--r--tests/docbook/test/qa.xml136
-rw-r--r--tests/docbook/test/qa2.xml50
-rw-r--r--tests/docbook/test/sectest.xml832
-rw-r--r--tests/docbook/test/set.xml79
-rw-r--r--tests/docbook/test/table.xml94
-rw-r--r--tests/docbook/test/test.xml46
-rw-r--r--tests/docbook/test/test.xsl9
-rw-r--r--tests/docbook/test/verbtest.xml20
247 files changed, 73337 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 1f0edeb0..fa6887c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Feb 25 04:51:33 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
+
+ * configure.in tests/Makefile.am tests/docbook tree:
+ added docbook XSL based test suite
+
Sat Feb 24 14:02:05 CET 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
* libxslt/xsltutils.c: reformat of messages
diff --git a/configure.in b/configure.in
index 3fd7f6dc..c2c52032 100644
--- a/configure.in
+++ b/configure.in
@@ -152,6 +152,19 @@ tests/general/Makefile
tests/numbers/Makefile
tests/documents/Makefile
tests/xmlspec/Makefile
+tests/docbook/common/Makefile
+tests/docbook/lib/Makefile
+tests/docbook/test/Makefile
+tests/docbook/dtd/simple/3.1.7.1/Makefile
+tests/docbook/dtd/simple/4.1.2.4/Makefile
+tests/docbook/dtd/simple/Makefile
+tests/docbook/dtd/4.1.2/Makefile
+tests/docbook/dtd/3.1.7/Makefile
+tests/docbook/dtd/4.0/Makefile
+tests/docbook/dtd/Makefile
+tests/docbook/result/html/Makefile
+tests/docbook/result/Makefile
+tests/docbook/Makefile
doc/Makefile
xslt-config
libxslt.spec
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 88310500..eb7f7ba2 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,5 +1,11 @@
## Process this file with automake to produce Makefile.in
-SUBDIRS=docs REC1 REC2 REC general numbers documents xmlspec
+SUBDIRS=docs REC1 REC2 REC general numbers documents xmlspec docbook
+
+all:
+
+test tests: all docbook_tests
+
+docbook_tests:
+ @(cd docbook ; $(MAKE) tests)
-test tests: all
diff --git a/tests/docbook/Makefile.am b/tests/docbook/Makefile.am
new file mode 100644
index 00000000..195f3d25
--- /dev/null
+++ b/tests/docbook/Makefile.am
@@ -0,0 +1,23 @@
+## Process this file with automake to produce Makefile.in
+
+SUBDIRS = common dtd lib result test
+
+all: # Avoid doing the test in normal pass
+
+$(top_builddir)/libxslt/xsltproc:
+ @(cd ../../libxslt ; make xsltproc)
+
+EXTRA_DIST = README VERSION
+
+tests: html
+
+html: ../../libxslt/xsltproc
+ @(for i in test/*.xml ; do \
+ echo $$i ; \
+ out=result/html/`basename $$i .xml`.tst; \
+ html=result/html/`basename $$i .xml`.html; \
+ ../../libxslt/xsltproc html/docbook.xsl $$i > $$out ; \
+ if [ -f $$html ] ; then diff $$html $$out ; \
+ else mv $$out $$html ; fi ; \
+ grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
+ rm -f $$out ; done )
diff --git a/tests/docbook/README b/tests/docbook/README
new file mode 100644
index 00000000..a24699aa
--- /dev/null
+++ b/tests/docbook/README
@@ -0,0 +1,107 @@
+README for the DocBook Stylesheets
+
+These are XSL stylesheets for the DocBk XML DTD. (They would
+also work for the DocBook DTD, modulo certain namecase problems
+and the fact that there aren't (yet) any XSL implementations
+that work with SGML source documents.)
+
+As of version 1.0, most of the elements in DocBook are handled
+in some way or another, usually reasonably, but there's still
+lots of work to be done.
+
+Manifest
+--------
+
+README this file
+TODO planned features not yet implemented (may be incomplete :-)
+BUGS known problems (may also be incomplete :-)
+VERSION the current version number (note that this is an XSL stylesheet,
+ included by both fo/docbook.xsl and html/docbook.xsl)
+WhatsNew changes since the last public release (for a complete list
+ of changes, see the ChangeLog file(s))
+bin/ scripts and other tools that work with the stylesheets
+common/ contains code common to both stylesheets
+contrib/ stylesheets contributed by others
+dtds/ dtds used by the stylesheets or stylesheet outputs
+fo/ a stylesheet that produces XSL FO result trees
+html/ a stylesheet that produces HTML/XHTML result trees
+lib/ contains schema-independent functions
+template/ contains templates for building stylesheet customization layers
+test/ test documents
+
+Changes
+-------
+
+See the ChangeLog in each directory for additional information
+about the specific changes.
+
+See WhatsNew for changes since the last release.
+
+Installation
+------------
+
+Unpack the distribution somewhere.
+
+Use
+---
+
+Process your DocBook documents with one of the following stylesheets
+using your favorite XSLT processor:
+
+ xhtml/docbook.xsl produces an XHTML result tree
+ html/docbook.xsl produces an HTML result tree
+ fo/docbook.xsl produces an FO result tree
+
+Copyright
+---------
+
+Copyright (C) 1999, 2000 Norman Walsh
+
+Ironically, assertion of copyright is done to make it _easier_
+to distribute these stylesheets. (At least one organization,
+Software in the Public Interest, requires an explicit copyright
+statement in order to redistribute the software.)
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the ``Software''), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+Except as contained in this notice, the names of individuals
+credited with contribution to this software shall not be used in
+advertising or otherwise to promote the sale, use or other
+dealings in this Software without prior written authorization
+from the individuals in question.
+
+Any stylesheet derived from this Software that is publically
+distributed will be identified with a different name and the
+version strings in any derived Software will be changed so that
+no possibility of confusion between the derived package and this
+Software will exist.
+
+Warranty
+--------
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
+CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Contacting the Author
+---------------------
+
+These stylesheets are maintained by Norman Walsh, <ndw@nwalsh.com>.
+
+The best way to reach norm is by email. You will find additional
+contact information at http://nwalsh.com/~ndw/
diff --git a/tests/docbook/VERSION b/tests/docbook/VERSION
new file mode 100644
index 00000000..a674aac1
--- /dev/null
+++ b/tests/docbook/VERSION
@@ -0,0 +1,6 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+<xsl:variable name="VERSION">1.29</xsl:variable>
+</xsl:stylesheet>
+
diff --git a/tests/docbook/common/ChangeLog b/tests/docbook/common/ChangeLog
new file mode 100644
index 00000000..e5cc9d50
--- /dev/null
+++ b/tests/docbook/common/ChangeLog
@@ -0,0 +1,98 @@
+2001-01-30 Norman Walsh <ndw@nwalsh.com>
+
+ * en.xml: Added index symbols entry
+
+2001-01-28 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Support suppressing anchors in referenced titles; support imageobjectco
+
+ * hu.xml: Tweak chapter title xref template
+
+2001-01-07 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Added 'Chapter' and 'Appendix' to the gentext for chapter and appendix titles
+
+ * et.xml, hu.xml, id.xml, ko.xml, sl.xml: Added dingbats
+
+ * l10n.xml, zh_tw.xml: Added traditional Chinese
+
+ * l10n.xsl: Generalized 'gentext.element.name' to 'gentext' with key parameter
+
+2000-12-14 Norman Walsh <ndw@nwalsh.com>
+
+ * it.xml: Updated
+
+2000-11-29 Norman Walsh <ndw@nwalsh.com>
+
+ * l10n.xsl: Changed variables to parameters
+
+2000-11-05 Norman Walsh <ndw@nwalsh.com>
+
+ * nl.xml: Updates
+
+2000-11-03 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Parameterize wrappers around the parts of a title.ref
+
+2000-11-02 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Remove HTML spans from common.xsl; that needs to be supported some other way (in the HTML stylesheets)
+
+2000-10-30 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Don't put the span around the label if text-only is true
+
+2000-10-29 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Added label.this.section template to provide more specific control of section labelling; added spans around labels and titles for CSS styling
+
+ * en.xml: Make dingbat quotes curly
+
+2000-10-27 Norman Walsh <ndw@nwalsh.com>
+
+ * cs.xml: Updates
+
+2000-10-26 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Changed text-only parameter to 0/1 from true()/false()
+
+ * hu.xml: Updated
+
+ * ko.xml: New file.
+
+ * l10n.xml: Added Korean
+
+ * l10n.xsl: Handle empty gentext
+
+ * l10n.xsl: Fixed serious bug in gentext.element.name
+
+2000-10-23 Norman Walsh <ndw@nwalsh.com>
+
+ * ca.xml, cs.xml, da.xml, de.xml, el.xml, es.xml, et.xml, fi.xml, fr.xml, hu.xml, id.xml, it.xml, ja.xml, no.xml, pl.xml, pt.xml, pt_br.xml, ro.xml, ru.xml, sk.xml, sl.xml, sv.xml:
+ Fixed localization key errors and missing xrefs (thanks to Eva a Pavel ZAMPACHOVI)
+
+2000-10-19 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Documentation changes
+
+2000-10-17 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Updated documentation
+
+2000-10-16 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Added doc:reference
+
+2000-10-14 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Added filename-basename, select.mediaobject, and is.acceptable.mediaobject
+
+ * cs.xml: Updates
+
+2000-10-09 Norman Walsh <ndw@nwalsh.com>
+
+ * LostLog, ca.xml, common.xsl, cs.xml, da.xml, de.xml, el.xml, en.xml, es.xml, et.xml, fi.xml, fr.xml, hu.xml, id.xml, it.xml, ja.xml, l10n.dtd, l10n.xml, l10n.xsl, nl.xml, no.xml, pl.xml, pt.xml, pt_br.xml, ro.xml, ru.xml, sk.xml, sl.xml, sv.xml, zh_cn.xml:
+ New file.
+
+ * common.xsl: Output '.' between section numbers
+
diff --git a/tests/docbook/common/LostLog b/tests/docbook/common/LostLog
new file mode 100644
index 00000000..dba73a53
--- /dev/null
+++ b/tests/docbook/common/LostLog
@@ -0,0 +1,167 @@
+2000-08-29 Norman Walsh <ndw@nwalsh.com>
+
+ * nl.xml: Updated
+
+2000-08-08 Norman Walsh <ndw@nwalsh.com>
+
+ * et.xml, id.xml, sl.xml: Fixed language attribute
+
+ * hu.xml: Fixup encoding problems; fix language attribute
+
+ * l10n.dtd, l10n.xml: Added DTD
+
+2000-07-21 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Fixed hierarchical section numbering
+
+ * et.xml, hu.xml, id.xml, l10n.xml, sl.xml, zh_cn.xml:
+ Added first cut at ET, HU, ID, SL, and ZH (CN) localizations
+
+ * nl.xml: Updated
+
+2000-06-25 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Moved graphic extension stuff into common
+
+2000-04-19 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Moved IDREF checking code into common.xsl
+
+ * fr.xml: Fixed typo in gentext key
+
+2000-04-06 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Generalized title.content; added DocBook 4.0 elements to strip-space
+
+2000-04-03 Norman Walsh <ndw@nwalsh.com>
+
+ * it.xml: Fixed revisedby
+
+2000-03-23 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Change boolean stylesheet variables to use 0/1 instead of true()/false() to avoid representation issues when setting them from the command line
+
+ * common.xsl: Started adding documentation and fixed formal object numbering
+
+2000-02-18 Norman Walsh <ndw@nwalsh.com>
+
+ * en.xml: Changed quote characters to avoid Netscape irritation with ldquo
+ and rdquo.
+
+2000-02-16 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Added filename.extension and mediaobject.filename named templates
+
+ * l10n.xsl: Tweaked URI for conformance with some broken XSLT processors
+
+2000-02-07 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Fiddled with label punctuation; added some xref-related string functions
+
+ * en.xml: Sorted terms; added sect1-5
+
+ * l10n.xsl: Added gentext.xref.text
+
+ * no.xml: Fixed capitalization of keys
+
+2000-01-27 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Support section.label.includes.component.label
+
+ * de.xml: Fixed RevisedBy
+
+2000-01-14 Norman Walsh <ndw@nwalsh.com>
+
+ * ca.xml, cs.xml, da.xml, de.xml, el.xml, en.xml, es.xml, fi.xml, fr.xml, it.xml, ja.xml, nl.xml, no.xml, pl.xml, pt.xml, pt_br.xml, ro.xml, ru.xml, sk.xml, sv.xml:
+ Fixed typos; added HTML navigation keys
+
+ * l10n.xml: Added Brazilian Portuguese
+
+ * l10n.xsl: Support country subclassing of languages; added gentext for HTML navigation
+
+ * pt_br.xml: New file.
+
+2000-01-11 Norman Walsh <ndw@nwalsh.com>
+
+ * l10n.xsl: Fix relative URI for l10n.xml
+
+2000-01-10 Norman Walsh <ndw@nwalsh.com>
+
+ * ca.xml, common.xsl, cs.xml, da.xml, de.xml, el.xml, en.xml, es.xml, fi.xml, fr.xml, it.xml, ja.xml, l10n.xml, l10n.xsl, nl.xml, no.xml, pl.xml, pt.xml, ro.xml, ru.xml, sk.xml, sv.xml:
+ First cut at I18N/L10N
+
+ * ca.xml, cs.xml, da.xml, de.xml, el.xml, es.xml, fi.xml, it.xml, ja.xml, nl.xml, no.xml, pl.xml, pt.xml, ro.xml, ru.xml, sk.xml, sv.xml:
+ Added L10N for dingbats
+
+ * common.xsl: Fix gentext space in title.ref
+
+ * l10n.xml: Added ca
+
+ * l10n.xsl: Fix editedby and by gentext calls
+
+1999-12-28 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Added modes for generating element labels and titles; added stylesheet version
+
+ * common.xsl: Support bibliography, glossary, and index titles
+
+ * l10n.xsl: Added stylesheet version
+
+1999-10-20 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl, l10n.xsl: Update URI in all the included modules
+
+1999-08-19 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Added xsl:preserve-space
+
+1999-07-27 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl, l10n.xsl: Updated to July spec
+
+1999-07-15 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Moved strip-space into common
+
+1999-07-06 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Removed section.title; it was bogus
+
+ * l10n.xsl: Added appendix and reference
+
+1999-07-02 Norman Walsh <ndw@nwalsh.com>
+
+ * dbl10n.xsl, l10n.xsl: Renamed
+
+ * l10n.xsl: Added glosssee and glossseealso
+
+1999-06-14 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Added section.autolabel support; fixed bug in person.name.list
+
+ * dbl10n.xsl: Added revhistory and revision to element.name
+
+1999-06-09 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Removed section.heading and formal.object.heading--they used markup
+
+ * dbl10n.xsl: Added a few entries and sorted them
+
+ * inline.xsl: removed
+
+1999-06-03 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl: Top-level headings now include the clear: all CSS style property
+
+ * dbl10n.xsl: Added a few more element names
+
+1999-05-20 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl, dbl10n.xsl, inline.xsl: Many updates
+
+ * dbl10n.xsl: Updates
+
+1999-05-19 Norman Walsh <ndw@nwalsh.com>
+
+ * common.xsl, dbl10n.xsl, inline.xsl: New file.
+
diff --git a/tests/docbook/common/Makefile.am b/tests/docbook/common/Makefile.am
new file mode 100644
index 00000000..1721ff4a
--- /dev/null
+++ b/tests/docbook/common/Makefile.am
@@ -0,0 +1,9 @@
+## Process this file with automake to produce Makefile.in
+
+all:
+
+EXTRA_DIST = \
+ ChangeLog LostLog ca.xml common.xsl cs.xml da.xml de.xml el.xml \
+ en.xml es.xml et.xml fi.xml fr.xml hu.xml id.xml it.xml ja.xml \
+ ko.xml l10n.dtd l10n.xml l10n.xsl nl.xml no.xml pl.xml pt.xml \
+ pt_br.xml ro.xml ru.xml sk.xml sl.xml sv.xml zh_cn.xml zh_tw.xml
diff --git a/tests/docbook/common/ca.xml b/tests/docbook/common/ca.xml
new file mode 100644
index 00000000..fec3efff
--- /dev/null
+++ b/tests/docbook/common/ca.xml
@@ -0,0 +1,100 @@
+<localization language="ca">
+
+<gentext key="abstract" text="Resum"/>
+<gentext key="appendix" text="Ap&#x00E8;ndix"/>
+<gentext key="article" text="Article"/>
+<gentext key="bibliography" text="Bibliografia"/>
+<gentext key="book" text="Llibre"/>
+<gentext key="caution" text="ATENCI&#x00D3;"/>
+<gentext key="caution" text="Atenci&#x00F3;"/>
+<gentext key="chapter" text="Cap&#x00ED;tol"/>
+<gentext key="copyright" text="Dret de reproducci&#x00F3;"/>
+<gentext key="dedication" text="Dedicat&#x00F2;ria"/>
+<gentext key="edition" text="Edici&#x00F3;"/>
+<gentext key="equation" text="Equaci&#x00F3;"/>
+<gentext key="example" text="Exemple"/>
+<gentext key="figure" text="Figura"/>
+<gentext key="glosssee" text="Veure"/>
+<gentext key="glossseealso" text="Veure tamb&#x00E9;"/>
+<gentext key="glossary" text="Glossari"/>
+<gentext key="important" text="IMPORTANT"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Important"/>
+<gentext key="index" text="&#x00CD;ndex alfab&#x00E8;tic"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="Audi&#x00E8;ncia"/>
+<gentext key="msglevel" text="Nivell"/>
+<gentext key="msgorig" text="Origen"/>
+<gentext key="note" text="NOTA"/>
+<gentext key="note" text="Nota"/>
+<gentext key="part" text="Part"/>
+<gentext key="preface" text="Prefaci"/>
+<gentext key="procedure" text="Procediment"/>
+<gentext key="pubdate" text="Data de publicaci&#x00F3;"/>
+<gentext key="published" text="Data de publicaci&#x00F3;"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Refer&#x00E8;ncia"/>
+<gentext key="refname" text="Nom"/>
+<gentext key="revision" text="Revisi&#x00F3;"/>
+<gentext key="revhistory" text="Historial de revisions"/>
+<gentext key="section" text="Secci&#x00F3;"/>
+<gentext key="see" text="Veure"/>
+<gentext key="seealso" text="Veure tambi&#x00E9;"/>
+<gentext key="set" text="Conjunt"/>
+<gentext key="setindex" text="&#x00CD;ndex del conjunt"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Pas"/>
+<gentext key="tip" text="SUGGERIMENT"/>
+<gentext key="table" text="Taula"/>
+<gentext key="tip" text="Suggeriment"/>
+<gentext key="warning" text="AV&#x00CD;S"/>
+<gentext key="warning" text="Av&#x00ED;s"/>
+<gentext key="appendix" text="ap&#x00E8;ndex"/>
+<gentext key="chapter" text="cap&#x00ED;tol"/>
+<gentext key="section" text="secci&#x00F3;"/>
+<gentext key="sidebar" text="glossa"/>
+<gentext key="step" text="pas"/>
+<gentext key="seealso" text="Veure tamb&#x00E9;"/>
+
+<gentext key="TableofContents" text="Sumari"/>
+<gentext key="in" text="a"/>
+<gentext key="by" text="per"/>
+<gentext key="Edited" text="Editat"/>
+<gentext key="Editedby" text="Editat per"/>
+<gentext key="and" text="i"/>
+<gentext key="Notes" text="Notes"/>
+<gentext key="TableNotes" text="Notes"/>
+<gentext key="nonexistantelement" text="element inexistent"/>
+<gentext key="Pgs" text="P&#x00E0;gs."/>
+<gentext key="unsupported" text="no reconeguda"/>
+<gentext key="xrefto" text="xref a"/>
+<gentext key="unexpectedelementname" text="Nom d'element no esperat"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="&#x00CD;ndex de taules"/>
+<gentext key="ListofExamples" text="&#x00CD;ndex d'exemples"/>
+<gentext key="ListofFigures" text="&#x00CD;ndex de figures"/>
+<gentext key="ListofEquations" text="&#x00CD;ndex d'equacions"/>
+<gentext key="ListofUnknown" text="&#x00CD;ndex de desconegut ?"/>
+
+<gentext key="nav-prev" text="Anterior"/>
+<gentext key="nav-prev-sibling" text="Retrocedir"/>
+<gentext key="nav-next-sibling" text="Avancar"/>
+<gentext key="nav-next" text="Seguent"/>
+<gentext key="nav-up" text="Pujar"/>
+<gentext key="nav-home" text="Inici"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/common.xsl b/tests/docbook/common/common.xsl
new file mode 100644
index 00000000..c8b905f1
--- /dev/null
+++ b/tests/docbook/common/common.xsl
@@ -0,0 +1,1929 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ This file contains general templates common to both the HTML and FO
+ versions of the DocBook stylesheets.
+ ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>Common Template Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+
+</doc:reference>
+
+<!-- ==================================================================== -->
+<!-- Establish strip/preserve whitespace rules -->
+
+<xsl:preserve-space elements="*"/>
+
+<xsl:strip-space elements="
+abstract affiliation anchor answer appendix area areaset areaspec
+artheader article audiodata audioobject author authorblurb authorgroup
+beginpage bibliodiv biblioentry bibliography biblioset blockquote book
+bookbiblio bookinfo callout calloutlist caption caution chapter
+citerefentry cmdsynopsis co collab colophon colspec confgroup
+copyright dedication docinfo editor entry entrytbl epigraph equation
+example figure footnote footnoteref formalpara funcprototype
+funcsynopsis glossary glossdef glossdiv glossentry glosslist graphicco
+group highlights imagedata imageobject imageobjectco important index
+indexdiv indexentry indexterm informalequation informalexample
+informalfigure informaltable inlineequation inlinemediaobject
+itemizedlist itermset keycombo keywordset legalnotice listitem lot
+mediaobject mediaobjectco menuchoice msg msgentry msgexplan msginfo
+msgmain msgrel msgset msgsub msgtext note objectinfo
+orderedlist othercredit part partintro preface printhistory procedure
+programlistingco publisher qandadiv qandaentry qandaset question
+refentry reference refmeta refnamediv refsect1 refsect1info refsect2
+refsect2info refsect3 refsect3info refsynopsisdiv refsynopsisdivinfo
+revhistory revision row sbr screenco screenshot sect1 sect1info sect2
+sect2info sect3 sect3info sect4 sect4info sect5 sect5info section
+sectioninfo seglistitem segmentedlist seriesinfo set setindex setinfo
+shortcut sidebar simplelist simplesect spanspec step subject
+subjectset substeps synopfragment table tbody textobject tfoot tgroup
+thead tip toc tocchap toclevel1 toclevel2 toclevel3 toclevel4
+toclevel5 tocpart varargs variablelist varlistentry videodata
+videoobject void warning subjectset
+
+classsynopsis
+constructorsynopsis
+destructorsynopsis
+fieldsynopsis
+methodparam
+methodsynopsis
+ooclass
+ooexception
+oointerface
+simplemsgentry
+"/>
+
+<!-- ====================================================================== -->
+
+<doc:template name="is.component" xmlns="">
+<refpurpose>Tests if a given node is a component-level element</refpurpose>
+
+<refdescription>
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The node which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>This template returns '1' if the specified node is a component
+(Chapter, Appendix, etc.), and '0' otherwise.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.component">
+ <xsl:param name="node" select="."/>
+ <xsl:choose>
+ <xsl:when test="local-name($node) = 'appendix'
+ or local-name($node) = 'article'
+ or local-name($node) = 'chapter'
+ or local-name($node) = 'preface'
+ or local-name($node) = 'bibliography'
+ or local-name($node) = 'glossary'
+ or local-name($node) = 'index'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="is.section" xmlns="">
+<refpurpose>Tests if a given node is a section-level element</refpurpose>
+
+<refdescription>
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The node which is to be tested.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>This template returns '1' if the specified node is a section
+(Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.section">
+ <xsl:param name="node" select="."/>
+ <xsl:choose>
+ <xsl:when test="local-name($node) = 'section'
+ or local-name($node) = 'sect1'
+ or local-name($node) = 'sect2'
+ or local-name($node) = 'sect3'
+ or local-name($node) = 'sect4'
+ or local-name($node) = 'sect5'
+ or local-name($node) = 'refsect1'
+ or local-name($node) = 'refsect2'
+ or local-name($node) = 'refsect3'
+ or local-name($node) = 'simplesect'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="section.level" xmlns="">
+<refpurpose>Returns the hierarchical level of a section.</refpurpose>
+
+<refdescription>
+<para>This template calculates the hierarchical level of a section.
+Hierarchically, components are <quote>top level</quote>, so a
+<sgmltag>sect1</sgmltag> is at level 2, <sgmltag>sect3</sgmltag> is
+at level 3, etc.</para>
+
+<para>Recursive sections are calculated down to the sixth level.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>node</term>
+<listitem>
+<para>The section node for which the level should be calculated.
+Defaults to the context node.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>The section level, <quote>2</quote>, <quote>3</quote>, etc.
+</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="section.level">
+ <xsl:param name="node" select="."/>
+ <xsl:choose>
+ <xsl:when test="name($node)='sect1'">2</xsl:when>
+ <xsl:when test="name($node)='sect2'">3</xsl:when>
+ <xsl:when test="name($node)='sect3'">4</xsl:when>
+ <xsl:when test="name($node)='sect4'">5</xsl:when>
+ <xsl:when test="name($node)='sect5'">6</xsl:when>
+ <xsl:when test="name($node)='section'">
+ <xsl:choose>
+ <xsl:when test="$node/../../../../../section">6</xsl:when>
+ <xsl:when test="$node/../../../../section">5</xsl:when>
+ <xsl:when test="$node/../../../section">4</xsl:when>
+ <xsl:when test="$node/../../section">3</xsl:when>
+ <xsl:otherwise>2</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name($node)='simplesect'">
+ <xsl:choose>
+ <xsl:when test="$node/../../sect1">3</xsl:when>
+ <xsl:when test="$node/../../sect2">4</xsl:when>
+ <xsl:when test="$node/../../sect3">5</xsl:when>
+ <xsl:when test="$node/../../sect4">6</xsl:when>
+ <xsl:when test="$node/../../sect5">6</xsl:when>
+ <xsl:when test="$node/../../section">
+ <xsl:choose>
+ <xsl:when test="$node/../../../../../section">6</xsl:when>
+ <xsl:when test="$node/../../../../section">5</xsl:when>
+ <xsl:when test="$node/../../../section">4</xsl:when>
+ <xsl:otherwise>3</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>2</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>2</xsl:otherwise>
+ </xsl:choose>
+</xsl:template><!-- section.level -->
+
+<doc:template name="qanda.section.level" xmlns="">
+<refpurpose>Returns the hierarchical level of a QandASet.</refpurpose>
+
+<refdescription>
+<para>This template calculates the hierarchical level of a QandASet.
+</para>
+</refdescription>
+
+<refreturn>
+<para>The level, <quote>1</quote>, <quote>2</quote>, etc.
+</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="qanda.section.level">
+ <xsl:variable name="section"
+ select="(ancestor::section
+ |ancestor::simplesect
+ |ancestor::sect5
+ |ancestor::sect4
+ |ancestor::sect3
+ |ancestor::sect2
+ |ancestor::sect1
+ |ancestor::refsect3
+ |ancestor::refsect2
+ |ancestor::refsect1)[last()]"/>
+ <xsl:choose>
+ <xsl:when test="count($section) = '0'">1</xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="section.level">
+ <xsl:with-param name="node" select="$section"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="qandadiv.section.level">
+ <xsl:variable name="section.level">
+ <xsl:call-template name="qanda.section.level"/>
+ </xsl:variable>
+ <xsl:variable name="anc.divs" select="ancestor::qandadiv"/>
+
+ <xsl:value-of select="count($anc.divs) + number($section.level)"/>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="object.id">
+ <xsl:param name="object" select="."/>
+ <xsl:choose>
+ <xsl:when test="$object/@id">
+ <xsl:value-of select="$object/@id"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="generate-id($object)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="person.name">
+ <!-- Return a formatted string representation of the contents of
+ the specified node (by default, the current element).
+ Handles Honorific, FirstName, SurName, and Lineage.
+ If %author-othername-in-middle% is #t, also OtherName
+ Handles *only* the first of each.
+ Format is "Honorific. FirstName [OtherName] SurName, Lineage"
+ -->
+ <xsl:param name="node" select="."/>
+
+ <xsl:choose>
+ <!-- handle corpauthor as a special case...-->
+ <xsl:when test="name($node)='corpauthor'">
+ <xsl:apply-templates select="$node"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="h_nl" select="$node//honorific[1]"/>
+ <xsl:variable name="f_nl" select="$node//firstname[1]"/>
+ <xsl:variable name="o_nl" select="$node//othername[1]"/>
+ <xsl:variable name="s_nl" select="$node//surname[1]"/>
+ <xsl:variable name="l_nl" select="$node//lineage[1]"/>
+
+ <xsl:variable name="has_h" select="$h_nl"/>
+ <xsl:variable name="has_f" select="$f_nl"/>
+ <xsl:variable name="has_o"
+ select="$o_nl and ($author.othername.in.middle != 0)"/>
+ <xsl:variable name="has_s" select="$s_nl"/>
+ <xsl:variable name="has_l" select="$l_nl"/>
+
+ <xsl:if test="$has_h">
+ <xsl:value-of select="$h_nl"/>.
+ </xsl:if>
+
+ <xsl:if test="$has_f">
+ <xsl:if test="$has_h"><xsl:text> </xsl:text></xsl:if>
+ <xsl:value-of select="$f_nl"/>
+ </xsl:if>
+
+ <xsl:if test="$has_o">
+ <xsl:if test="$has_h or $has_f"><xsl:text> </xsl:text></xsl:if>
+ <xsl:value-of select="$o_nl"/>
+ </xsl:if>
+
+ <xsl:if test="$has_s">
+ <xsl:if test="$has_h or $has_f or $has_o">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$s_nl"/>
+ </xsl:if>
+
+ <xsl:if test="$has_l">
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$l_nl"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template> <!-- person.name -->
+
+<xsl:template name="person.name.list">
+ <!-- Return a formatted string representation of the contents of
+ the current element. The current element must contain one or
+ more AUTHORs, CORPAUTHORs, OTHERCREDITs, and/or EDITORs.
+
+ John Doe
+ or
+ John Doe and Jane Doe
+ or
+ John Doe, Jane Doe, and A. Nonymous
+ -->
+ <xsl:param name="person.list" select="./author|./corpauthor|./othercredit|./editor"/>
+ <xsl:param name="person.count" select="count($person.list)"/>
+ <xsl:param name="count" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="$count>$person.count"></xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="person.name">
+ <xsl:with-param name="node" select="$person.list[position()=$count]"/>
+ </xsl:call-template>
+ <xsl:if test="$count&lt;$person.count">
+ <xsl:if test="$person.count>2">,</xsl:if>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ <xsl:if test="$count+1=$person.count">and </xsl:if>
+ <xsl:call-template name="person.name.list">
+ <xsl:with-param name="person.list" select="$person.list"/>
+ <xsl:with-param name="person.count" select="$person.count"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template><!-- person.name.list -->
+
+<!-- === synopsis ======================================================= -->
+<!-- The following definitions match those given in the reference
+ documentation for DocBook V3.0
+-->
+
+<xsl:variable name="arg.choice.opt.open.str">[</xsl:variable>
+<xsl:variable name="arg.choice.opt.close.str">]</xsl:variable>
+<xsl:variable name="arg.choice.req.open.str">{</xsl:variable>
+<xsl:variable name="arg.choice.req.close.str">}</xsl:variable>
+<xsl:variable name="arg.choice.plain.open.str"><xsl:text> </xsl:text></xsl:variable>
+<xsl:variable name="arg.choice.plain.close.str"><xsl:text> </xsl:text></xsl:variable>
+<xsl:variable name="arg.choice.def.open.str">[</xsl:variable>
+<xsl:variable name="arg.choice.def.close.str">]</xsl:variable>
+<xsl:variable name="arg.rep.repeat.str">...</xsl:variable>
+<xsl:variable name="arg.rep.norepeat.str"></xsl:variable>
+<xsl:variable name="arg.rep.def.str"></xsl:variable>
+<xsl:variable name="arg.or.sep"> | </xsl:variable>
+<xsl:variable name="cmdsynopsis.hanging.indent">4pi</xsl:variable>
+
+<!-- ====================================================================== -->
+<!-- label content -->
+
+<doc:mode mode="label.content" xmlns="">
+<refpurpose>Provides access to element labels</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">label.content</literal> mode produces the
+element label.</para>
+<para>If the label is non-null, either because the
+<sgmltag class="attribute">label</sgmltag> attribute was present on the
+element or the stylesheet automatically generated a label, trailing
+punctuation is automatically added.</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="label.content">
+ <xsl:message>
+ <xsl:text>Request for label of unexpected element: </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ </xsl:message>
+</xsl:template>
+
+<xsl:template match="set|book" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="part" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$part.autolabel != 0">
+ <xsl:number from="book" count="part" format="I"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="preface" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$preface.autolabel != 0">
+ <xsl:number from="book" count="preface" format="1" level="any"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="chapter" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$chapter.autolabel != 0">
+ <xsl:number from="book" count="chapter" format="1" level="any"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="appendix" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$chapter.autolabel != 0">
+ <xsl:number from="book" count="appendix" format="A" level="any"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="reference" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$part.autolabel != 0">
+ <xsl:number from="book" count="reference" format="I" level="any"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refentry" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="section" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+
+ <!-- if this is a nested section, label the parent -->
+ <xsl:if test="local-name(..) = 'section'">
+ <xsl:apply-templates select=".." mode="label.content">
+ <xsl:with-param name="punct">.</xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <!-- if the parent is a component, maybe label that too -->
+ <xsl:variable name="parent.is.component">
+ <xsl:call-template name="is.component">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- does this section get labelled? -->
+ <xsl:variable name="label">
+ <xsl:call-template name="label.this.section">
+ <xsl:with-param name="section" select="."/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="$section.label.includes.component.label != 0
+ and $parent.is.component != 0">
+ <xsl:apply-templates select=".." mode="label.content">
+ <xsl:with-param name="punct">.</xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$label != 0">
+ <xsl:number count="section"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+
+ <!-- if the parent is a component, maybe label that too -->
+ <xsl:variable name="parent.is.component">
+ <xsl:call-template name="is.component">
+ <xsl:with-param name="node" select=".."/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$section.label.includes.component.label != 0
+ and $parent.is.component">
+ <xsl:apply-templates select=".." mode="label.content">
+ <xsl:with-param name="punct">.</xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$section.autolabel != 0">
+ <xsl:number count="sect1"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect2|sect3|sect4|sect5" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+
+ <!-- label the parent -->
+ <xsl:apply-templates select=".." mode="label.content">
+ <xsl:with-param name="punct">.</xsl:with-param>
+ </xsl:apply-templates>
+
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$section.autolabel != 0">
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'sect2'">
+ <xsl:number count="sect2"/>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'sect3'">
+ <xsl:number count="sect3"/>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'sect4'">
+ <xsl:number count="sect4"/>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'sect5'">
+ <xsl:number count="sect5"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>label.content: this can't happen!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refsect1|refsect2|refsect3" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$section.autolabel != 0">
+ <xsl:number level="multiple" count="refsect1|refsect2|refsect3"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="simplesect" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$section.autolabel != 0">
+ <xsl:number level="multiple" count="section
+ |sect1|sect2|sect3|sect4|sect5
+ |refsect1|refsect2|refsect3
+ |simplesect"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="qandadiv" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:variable name="prefix">
+ <xsl:if test="$qanda.inherit.numeration != 0">
+ <xsl:variable name="lparent" select="(ancestor::set
+ |ancestor::book
+ |ancestor::chapter
+ |ancestor::appendix
+ |ancestor::preface
+ |ancestor::section
+ |ancestor::simplesect
+ |ancestor::sect1
+ |ancestor::sect2
+ |ancestor::sect3
+ |ancestor::sect4
+ |ancestor::sect5
+ |ancestor::refsect1
+ |ancestor::refsect2
+ |ancestor::refsect3)[last()]"/>
+ <xsl:if test="count($lparent)>0">
+ <xsl:apply-templates select="$lparent" mode="label.content"/>
+ </xsl:if>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="$prefix"/>
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:when test="$qandadiv.autolabel != 0">
+ <xsl:value-of select="$prefix"/>
+ <xsl:number level="multiple" count="qandadiv" format="1"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="question|answer" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:variable name="prefix">
+ <xsl:if test="$qanda.inherit.numeration != 0">
+ <xsl:variable name="lparent" select="(ancestor::set
+ |ancestor::book
+ |ancestor::chapter
+ |ancestor::appendix
+ |ancestor::preface
+ |ancestor::section
+ |ancestor::simplesect
+ |ancestor::sect1
+ |ancestor::sect2
+ |ancestor::sect3
+ |ancestor::sect4
+ |ancestor::sect5
+ |ancestor::refsect1
+ |ancestor::refsect2
+ |ancestor::refsect3
+ |ancestor::qandadiv)[last()]"/>
+ <xsl:if test="count($lparent)>0">
+ <xsl:apply-templates select="$lparent" mode="label.content"/>
+ </xsl:if>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="inhlabel"
+ select="ancestor-or-self::qandaset/@defaultlabel[1]"/>
+
+ <xsl:variable name="deflabel">
+ <xsl:choose>
+ <xsl:when test="$inhlabel != ''">
+ <xsl:value-of select="$inhlabel"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$qanda.defaultlabel"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="label" select="label"/>
+
+ <xsl:choose>
+ <xsl:when test="count($label)>0">
+ <xsl:value-of select="$prefix"/>
+ <xsl:apply-templates select="$label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+
+ <xsl:when test="$deflabel = 'qanda'">
+ <xsl:call-template name="gentext.element.name"/>
+ </xsl:when>
+
+ <xsl:when test="$deflabel = 'number'">
+ <xsl:if test="name(.) = 'question'">
+ <xsl:value-of select="$prefix"/>
+ <xsl:number level="multiple" count="qandaentry" format="1"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary|index" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:if test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+ <xsl:choose>
+ <xsl:when test="@label">
+ <xsl:value-of select="@label"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="pchap"
+ select="ancestor::chapter|ancestor::appendix"/>
+ <xsl:choose>
+ <xsl:when test="count($pchap)>0">
+ <xsl:apply-templates select="$pchap" mode="label.content">
+ <xsl:with-param name="punct">.</xsl:with-param>
+ </xsl:apply-templates>
+ <xsl:number format="1" from="chapter|appendix" level="any"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number format="1" from="book|article" level="any"/>
+ <xsl:value-of select="$punct"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="abstract" mode="label.content">
+ <xsl:param name="punct">.</xsl:param>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="label.this.section">
+ <xsl:param name="section" select="."/>
+ <xsl:value-of select="$section.autolabel"/>
+</xsl:template>
+
+<doc:template name="label.this.section" xmlns="">
+<refpurpose>Returns true if $section should be labelled</refpurpose>
+<refdescription>
+<para>Returns true if the specified section should be labelled.
+By default, this template simply returns $section.autolabel, but
+custom stylesheets may override it to get more selective behavior.</para>
+</refdescription>
+</doc:template>
+
+<!-- ====================================================================== -->
+<!-- title content -->
+
+<doc:mode mode="title.content" xmlns="">
+<refpurpose>Provides access to element titles</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">title.content</literal> mode produces the
+title of the element. This does not include the label. If
+<parameter>text-only</parameter> is true, the text of the title
+is returned, without inline markup, otherwise inline markup is processed
+(in the default mode). By default, <parameter>text-only</parameter>
+is false.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:apply-templates select="title[1]" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Request for title of unexpected element: </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ </xsl:message>
+ <xsl:text>???TITLE???</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="no.anchor.mode">
+ <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="anchor" mode="no.anchor.mode">
+ <!-- nop, suppressed -->
+</xsl:template>
+
+<xsl:template match="title" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:choose>
+ <xsl:when test="$text-only != 0">
+ <xsl:value-of select="."/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$allow-anchors != 0">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="no.anchor.mode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="set" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(setinfo/title|title)[1]"
+ mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="book" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(bookinfo/title|title)[1]"
+ mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="part" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(partinfo/title|docinfo/title|title)[1]"
+ mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:variable name="title" select="(docinfo/title
+ |prefaceinfo/title
+ |chapterinfo/title
+ |appendixinfo/title
+ |title)[1]"/>
+ <xsl:choose>
+ <xsl:when test="$title">
+ <xsl:apply-templates select="$title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name" select="name(.)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:apply-templates select="title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name" select="name(.)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="article" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:variable name="title" select="(artheader/title
+ |articleinfo/title
+ |title)[1]"/>
+
+ <xsl:apply-templates select="$title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="reference" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(referenceinfo/title|docinfo/title|title)[1]"
+ mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:variable name="refmeta" select=".//refmeta"/>
+ <xsl:variable name="refentrytitle" select="$refmeta//refentrytitle"/>
+ <xsl:variable name="refnamediv" select=".//refnamediv"/>
+ <xsl:variable name="refname" select="$refnamediv//refname"/>
+
+ <xsl:variable name="title">
+ <xsl:choose>
+ <xsl:when test="$refentrytitle">
+ <xsl:apply-templates select="$refentrytitle[1]" mode="title.content"/>
+ </xsl:when>
+ <xsl:when test="$refname">
+ <xsl:apply-templates select="$refname[1]" mode="title.content"/>
+ </xsl:when>
+ <xsl:otherwise>REFENTRY WITHOUT TITLE???</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$text-only != 0">
+ <xsl:value-of select="$title"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:copy-of select="$title"/></xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="refentrytitle|refname" mode="title.content">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="section
+ |sect1|sect2|sect3|sect4|sect5
+ |refsect1|refsect2|refsect3
+ |simplesect"
+ mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:variable name="title" select="(sectioninfo/title
+ |sect1info/title
+ |sect2info/title
+ |sect3info/title
+ |sect4info/title
+ |sect5info/title
+ |refsect1info/title
+ |refsect2info/title
+ |refsect3info/title
+ |title)[1]"/>
+
+ <xsl:apply-templates select="$title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="bibliography|glossary|index" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:apply-templates select="title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name" select="name(.)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="abstract" mode="title.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:choose>
+ <xsl:when test="title">
+ <xsl:apply-templates select="title" mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name" select="name(.)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- subtitle content -->
+
+<doc:mode mode="subtitle.content" xmlns="">
+<refpurpose>Provides access to element subtitles</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">subtitle.content</literal> mode produces the
+subtitle of the element. If
+<parameter>text-only</parameter> is true, the text of the title
+is returned, without inline markup, otherwise inline markup is processed
+(in the default mode). By default, <parameter>text-only</parameter>
+is false.
+</para>
+</refdescription>
+</doc:mode>
+
+<xsl:template match="*" mode="subtitle.content">
+ <xsl:message>
+ <xsl:text>Request for subtitle of unexpected element: </xsl:text>
+ <xsl:value-of select="name(.)"/>
+ </xsl:message>
+ <xsl:text>???SUBTITLE???</xsl:text>
+</xsl:template>
+
+<xsl:template match="subtitle" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:choose>
+ <xsl:when test="$text-only != 0">
+ <xsl:value-of select="."/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="set" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(setinfo/subtitle|subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="book" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(bookinfo/subtitle|subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="part" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(partinfo/subtitle
+ |docinfo/subtitle
+ |subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="preface|chapter|appendix" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(docinfo/subtitle
+ |prefaceinfo/subtitle
+ |chapterinfo/subtitle
+ |appendixinfo/subtitle
+ |subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="dedication|colophon" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="subtitle"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="reference" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(referenceinfo/subtitle
+ |docinfo/subtitle
+ |subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="refentry" mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(refentryinfo/subtitle
+ |docinfo/subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="section
+ |sect1|sect2|sect3|sect4|sect5
+ |refsect1|refsect2|refsect3
+ |simplesect"
+ mode="subtitle.content">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:apply-templates select="(sectioninfo/subtitle
+ |sect1info/subtitle
+ |sect2info/subtitle
+ |sect3info/subtitle
+ |sect4info/subtitle
+ |sect5info/subtitle
+ |refsect1info/subtitle
+ |refsect2info/subtitle
+ |refsect3info/subtitle
+ |subtitle)[1]"
+ mode="subtitle.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+</xsl:template>
+
+<!-- ====================================================================== -->
+<!-- title reference (label + title) -->
+
+<doc:mode mode="title.ref" xmlns="">
+<refpurpose>Provides reference text for an element</refpurpose>
+<refdescription>
+<para>Processing an element in the
+<literal role="mode">title.ref</literal> mode produces the
+label and title of the element.
+</para>
+</refdescription>
+<refparameter>
+<variablelist>
+<varlistentry><term>text-only</term>
+<listitem>
+<para> If
+<parameter>text-only</parameter> is true, the text of the title
+is returned, without inline markup, otherwise inline markup is processed
+(in the default mode). By default, <parameter>text-only</parameter>
+is false.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>label-wrapper</term>
+<listitem>
+<para>If <parameter>label-wrapper</parameter> is not the emtpy string,
+it must be the name of an element. The element so named will be wrapped
+around labels on output.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>title-wrapper</term>
+<listitem>
+<para>If <parameter>title.wrapper</parameter> is not the emtpy string,
+it must be the name of an element. The element so named will be wrapped
+around titles on output.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>label-wrapper-class</term>
+<listitem>
+<para>If a <parameter>label-wrapper</parameter> is provided and
+<parameter>label-wrapper-class</parameter> is not the emtpy string,
+it be used as the value for a <sgmltag class="attribute">class</sgmltag>
+attribute on the <parameter>label-wrapper</parameter> element.</para>
+<para>This is a dirty hack because it only makes sense for the HTML
+stylesheet (there's no <sgmltag class="attribute">class</sgmltag> attribute
+on the FO elements). What I'd really like to do is pass an attribute
+set as a parameter, but I can't.</para>
+</listitem>
+</varlistentry>
+<varlistentry><term>title-wrapper-class</term>
+<listitem>
+<para>If a <parameter>title-wrapper</parameter> is provided and
+<parameter>title-wrapper-class</parameter> is not the emtpy string,
+it be used as the value for a <sgmltag class="attribute">class</sgmltag>
+attribute on the <parameter>title-wrapper</parameter> element.</para>
+<para>This is a dirty hack because it only makes sense for the HTML
+stylesheet (there's no <sgmltag class="attribute">class</sgmltag> attribute
+on the FO elements). What I'd really like to do is pass an attribute
+set as a parameter, but I can't.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+</doc:mode>
+
+<xsl:template match="*" mode="title.ref">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:param name="label-wrapper" select="''"/>
+ <xsl:param name="title-wrapper" select="''"/>
+ <!-- Dirty hack -->
+ <xsl:param name="label-wrapper-class" select="''"/>
+ <xsl:param name="title-wrapper-class" select="''"/>
+
+ <xsl:variable name="label">
+ <xsl:apply-templates select="." mode="label.content"/>
+ </xsl:variable>
+
+ <xsl:if test="$label != ''">
+ <xsl:choose>
+ <xsl:when test="$text-only = 0">
+ <xsl:choose>
+ <xsl:when test="$label-wrapper != ''">
+ <xsl:element name="{$label-wrapper}">
+ <xsl:if test="$label-wrapper-class != ''">
+ <xsl:attribute name="class">
+ <xsl:value-of select="$label-wrapper-class"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$label"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$label"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text> </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$label"/>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$text-only = 0">
+ <xsl:choose>
+ <xsl:when test="$title-wrapper != ''">
+ <xsl:element name="{$title-wrapper}">
+ <xsl:if test="$title-wrapper-class != ''">
+ <xsl:attribute name="class">
+ <xsl:value-of select="$title-wrapper-class"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="figure|table|example|equation
+ |chapter|appendix" mode="title.ref">
+ <xsl:param name="text-only" select="'0'"/>
+ <xsl:param name="allow-anchors" select="'0'"/>
+ <xsl:param name="label-wrapper" select="''"/>
+ <xsl:param name="title-wrapper" select="''"/>
+ <!-- Dirty hack -->
+ <xsl:param name="label-wrapper-class" select="''"/>
+ <xsl:param name="title-wrapper-class" select="''"/>
+
+ <xsl:variable name="label">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">
+ <xsl:value-of select="name(.)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="gentext.space"/>
+ <xsl:apply-templates select="." mode="label.content"/>
+ </xsl:variable>
+
+ <xsl:if test="$label != ''">
+ <xsl:choose>
+ <xsl:when test="$text-only = 0">
+ <xsl:choose>
+ <xsl:when test="$label-wrapper != ''">
+ <xsl:element name="{$label-wrapper}">
+ <xsl:if test="$label-wrapper-class != ''">
+ <xsl:attribute name="class">
+ <xsl:value-of select="$label-wrapper-class"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$label"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$label"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text> </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$label"/>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$text-only = 0">
+ <xsl:choose>
+ <xsl:when test="$title-wrapper != ''">
+ <xsl:element name="{$title-wrapper}">
+ <xsl:if test="$title-wrapper-class != ''">
+ <xsl:attribute name="class">
+ <xsl:value-of select="$title-wrapper-class"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="." mode="title.content">
+ <xsl:with-param name="text-only" select="$text-only"/>
+ <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="xref.g.subst">
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="target" select="."/>
+ <xsl:variable name="subst">%g</xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($string, $subst)">
+ <xsl:value-of select="substring-before($string, $subst)"/>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name" select="name($target)"/>
+ </xsl:call-template>
+ <xsl:call-template name="xref.g.subst">
+ <xsl:with-param name="string"
+ select="substring-after($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xref.t.subst">
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="target" select="."/>
+ <xsl:variable name="subst">%t</xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($string, $subst)">
+ <xsl:call-template name="xref.g.subst">
+ <xsl:with-param name="string"
+ select="substring-before($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ <xsl:call-template name="title.xref">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ <xsl:call-template name="xref.t.subst">
+ <xsl:with-param name="string"
+ select="substring-after($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="xref.g.subst">
+ <xsl:with-param name="string" select="$string"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="xref.n.subst">
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="target" select="."/>
+ <xsl:variable name="subst">%n</xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($string, $subst)">
+ <xsl:call-template name="xref.t.subst">
+ <xsl:with-param name="string"
+ select="substring-before($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ <xsl:call-template name="number.xref">
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ <xsl:call-template name="xref.t.subst">
+ <xsl:with-param name="string"
+ select="substring-after($string, $subst)"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="xref.t.subst">
+ <xsl:with-param name="string" select="$string"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="subst.xref.text">
+ <xsl:param name="xref.text"></xsl:param>
+ <xsl:param name="target" select="."/>
+
+ <xsl:call-template name="xref.n.subst">
+ <xsl:with-param name="string" select="$xref.text"/>
+ <xsl:with-param name="target" select="$target"/>
+ </xsl:call-template>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="filename-basename">
+ <!-- We assume all filenames are really URIs and use "/" -->
+ <xsl:param name="filename"></xsl:param>
+ <xsl:param name="recurse" select="false()"/>
+
+ <xsl:choose>
+ <xsl:when test="substring-after($filename, '/') != ''">
+ <xsl:call-template name="filename-basename">
+ <xsl:with-param name="filename"
+ select="substring-after($filename, '/')"/>
+ <xsl:with-param name="recurse" select="true()"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="filename-extension">
+ <xsl:param name="filename"></xsl:param>
+ <xsl:param name="recurse" select="false()"/>
+
+ <!-- Make sure we only look at the base name... -->
+ <xsl:variable name="basefn">
+ <xsl:choose>
+ <xsl:when test="$recurse">
+ <xsl:value-of select="$filename"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="filename-basename">
+ <xsl:with-param name="filename" select="$filename"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="substring-after($basefn, '.') != ''">
+ <xsl:call-template name="filename-extension">
+ <xsl:with-param name="filename"
+ select="substring-after($basefn, '.')"/>
+ <xsl:with-param name="recurse" select="true()"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$recurse">
+ <xsl:value-of select="$basefn"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="select.mediaobject" xmlns="">
+<refpurpose>Selects an appropriate media object from a list</refpurpose>
+
+<refdescription>
+<para>This template examines a list of media objects (usually the
+children of a mediaobject or inlinemediaobject) and processes
+the "right" object.</para>
+
+<para>This template relies on a template named "is.acceptable.mediaobject"
+to determine if a given object is an acceptable graphic. The semantics
+of media objects is that the first acceptable graphic should be used.
+</para>
+
+<para>If no acceptable object is located, nothing happens.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>olist</term>
+<listitem>
+<para>The node list of potential objects to examine.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>Calls &lt;xsl:apply-templates&gt; on the selected object.</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="select.mediaobject">
+ <xsl:param name="olist"
+ select="imageobject|imageobjectco
+ |videoobject|audioobject|textobject"/>
+ <xsl:param name="count">1</xsl:param>
+
+ <xsl:if test="$count &lt;= count($olist)">
+ <xsl:variable name="object" select="$olist[position()=$count]"/>
+
+ <xsl:variable name="useobject">
+ <xsl:choose>
+ <!-- The phrase is never used -->
+ <xsl:when test="name($object)='textobject' and $object/phrase">
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+ <!-- The first textobject is a reasonable fallback -->
+ <xsl:when test="name($object)='textobject'">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <!-- If there's only one object, use it -->
+ <xsl:when test="$count = 1 and count($olist) = 1">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <!-- Otherwise, see if this one is a useable graphic -->
+ <xsl:otherwise>
+ <xsl:choose>
+ <!-- peek inside imageobjectco to simplify the test -->
+ <xsl:when test="local-name($object) = 'imageobjectco'">
+ <xsl:call-template name="is.acceptable.mediaobject">
+ <xsl:with-param name="object" select="$object/imageobject"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="is.acceptable.mediaobject">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$useobject='1'">
+ <xsl:apply-templates select="$object"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="select.mediaobject">
+ <xsl:with-param name="olist" select="$olist"/>
+ <xsl:with-param name="count" select="$count + 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+</xsl:template>
+
+<doc:template name="is.acceptable.mediaobject" xmlns="">
+<refpurpose>Returns '1' if the specified media object is recognized.</refpurpose>
+
+<refdescription>
+<para>This template examines a media object and returns '1' if the
+object is recognized as a graphic.</para>
+</refdescription>
+
+<refparameter>
+<variablelist>
+<varlistentry><term>object</term>
+<listitem>
+<para>The media object to consider.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</refparameter>
+
+<refreturn>
+<para>0 or 1</para>
+</refreturn>
+</doc:template>
+
+<xsl:template name="is.acceptable.mediaobject">
+ <xsl:param name="object"></xsl:param>
+
+ <xsl:variable name="filename">
+ <xsl:call-template name="mediaobject.filename">
+ <xsl:with-param name="object" select="$object"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="ext">
+ <xsl:call-template name="filename-extension">
+ <xsl:with-param name="filename" select="$filename"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- there will only be one -->
+ <xsl:variable name="data" select="$object/videodata
+ |$object/imagedata
+ |$object/audiodata"/>
+
+ <xsl:variable name="format" select="$data/@format"/>
+
+ <xsl:variable name="graphic.format">
+ <xsl:if test="$format">
+ <xsl:call-template name="is.graphic.format">
+ <xsl:with-param name="format" select="$format"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:variable name="graphic.ext">
+ <xsl:if test="$ext">
+ <xsl:call-template name="is.graphic.extension">
+ <xsl:with-param name="ext" select="$ext"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$graphic.format = '1'">1</xsl:when>
+ <xsl:when test="$graphic.ext = '1'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="is.graphic.format">
+ <xsl:param name="format"></xsl:param>
+ <xsl:if test="$format = 'PNG'
+ or $format = 'JPG'
+ or $format = 'JPEG'
+ or $format = 'linespecific'
+ or $format = 'GIF'
+ or $format = 'GIF87a'
+ or $format = 'GIF89a'
+ or $format = 'BMP'">1</xsl:if>
+</xsl:template>
+
+<xsl:template name="is.graphic.extension">
+ <xsl:param name="ext"></xsl:param>
+ <xsl:if test="$ext = 'png'
+ or $ext = 'jpeg'
+ or $ext = 'jpg'
+ or $ext = 'avi'
+ or $ext = 'mpg'
+ or $ext = 'mpeg'
+ or $ext = 'qt'
+ or $ext = 'gif'
+ or $ext = 'bmp'">1</xsl:if>
+</xsl:template>
+
+<xsl:template name="mediaobject.filename">
+ <xsl:param name="object"></xsl:param>
+
+ <xsl:variable name="data" select="$object/videodata
+ |$object/imagedata
+ |$object/audiodata"/>
+
+ <xsl:variable name="filename">
+ <xsl:choose>
+ <xsl:when test="$data[@fileref]">
+ <xsl:value-of select="$data/@fileref"/>
+ </xsl:when>
+ <xsl:when test="$data[@entityref]">
+ <xsl:value-of select="unparsed-entity-uri($data/@entityref)"/>
+ </xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="has.ext" select="contains($filename, '.') != ''"/>
+
+ <xsl:variable name="ext">
+ <xsl:choose>
+ <xsl:when test="contains($filename, '.')">
+ <xsl:call-template name="filename-extension">
+ <xsl:with-param name="filename" select="$filename"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$graphic.default.extension"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="graphic.ext">
+ <xsl:call-template name="is.graphic.extension">
+ <xsl:with-param name="ext" select="$ext"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="not($has.ext)">
+ <xsl:choose>
+ <xsl:when test="$ext != ''">
+ <xsl:value-of select="$filename"/>
+ <xsl:text>.</xsl:text>
+ <xsl:value-of select="$ext"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="not($graphic.ext)">
+ <xsl:choose>
+ <xsl:when test="$graphic.default.extension != ''">
+ <xsl:value-of select="$filename"/>
+ <xsl:text>.</xsl:text>
+ <xsl:value-of select="$graphic.default.extension"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="check.id.unique" xmlns="">
+<refpurpose>Warn users about references to non-unique IDs</refpurpose>
+<refdescription>
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.id.unique</function> prints
+a warning message to the user if either the ID does not exist or
+the ID is not unique.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="check.id.unique">
+ <xsl:param name="linkend"></xsl:param>
+ <xsl:if test="$linkend != ''">
+ <xsl:variable name="targets" select="id($linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:if test="count($targets)=0">
+ <xsl:message>
+ <xsl:text>Error: no ID for constraint linkend: </xsl:text>
+ <xsl:value-of select="$linkend"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+
+ <xsl:if test="count($targets)>1">
+ <xsl:message>
+ <xsl:text>Warning: multiple "IDs" for constraint linkend: </xsl:text>
+ <xsl:value-of select="$linkend"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<doc:template name="check.idref.targets" xmlns="">
+<refpurpose>Warn users about incorrectly typed references</refpurpose>
+<refdescription>
+<para>If passed an ID in <varname>linkend</varname>,
+<function>check.idref.targets</function> makes sure that the element
+pointed to by the link is one of the elements listed in
+<varname>element-list</varname> and warns the user otherwise.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="check.idref.targets">
+ <xsl:param name="linkend"></xsl:param>
+ <xsl:param name="element-list"></xsl:param>
+ <xsl:if test="$linkend != ''">
+ <xsl:variable name="targets" select="id($linkend)"/>
+ <xsl:variable name="target" select="$targets[1]"/>
+
+ <xsl:if test="count($target) &gt; 0">
+ <xsl:if test="not(contains(concat(' ', $element-list, ' '), name($target)))">
+ <xsl:message>
+ <xsl:text>Error: linkend (</xsl:text>
+ <xsl:value-of select="$linkend"/>
+ <xsl:text>) points to "</xsl:text>
+ <xsl:value-of select="name($target)"/>
+ <xsl:text>" not (one of): </xsl:text>
+ <xsl:value-of select="$element-list"/>
+ </xsl:message>
+ </xsl:if>
+ </xsl:if>
+ </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+</xsl:stylesheet>
+
diff --git a/tests/docbook/common/cs.xml b/tests/docbook/common/cs.xml
new file mode 100644
index 00000000..42511cee
--- /dev/null
+++ b/tests/docbook/common/cs.xml
@@ -0,0 +1,108 @@
+<localization language="cs">
+
+<!-- Contributors:
+ Martin Perina <docbk@ataco.cz>
+ Jirka Kosek <jirka@kosek.cz>
+-->
+
+<gentext key="abstract" text="Abstrakt"/>
+<gentext key="answer" text="Ot&#x00e1;zka:"/>
+<gentext key="appendix" text="P&#x0159;&#x00ed;loha"/>
+<gentext key="article" text="&#x010c;l&#x00e1;nek"/>
+<gentext key="bibliography" text="Bibliografie"/>
+<gentext key="book" text="Kniha"/>
+<gentext key="caution" text="V&#x00fd;straha"/>
+<gentext key="chapter" text="Kapitola"/>
+<gentext key="colophon" text="Tir&#x00e1;&#x017e;"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="V&#x011b;nov&#x00e1;n&#x00ed;"/>
+<gentext key="edition" text="Vyd&#x00e1;n&#x00ed;"/>
+<gentext key="equation" text="Rovnice"/>
+<gentext key="example" text="P&#x0159;&#x00ed;klad"/>
+<gentext key="figure" text="Obr&#x00e1;zek"/>
+<gentext key="glossary" text="Slovn&#x00ed;k"/>
+<gentext key="glosssee" text="Viz"/>
+<gentext key="glossseealso" text="Viz t&#x00e9;&#x017e;"/>
+<gentext key="important" text="D&#x016f;le&#x017e;it&#x00e9;"/>
+<gentext key="index" text="Rejst&#x0159;&#x00ed;k"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="legalnotice" text="Pr&#x00e1;vn&#x00ed; pozn&#x00e1;mka"/>
+<gentext key="msgaud" text="Publikum"/>
+<gentext key="msglevel" text="&#x00da;rove&#x0148;"/>
+<gentext key="msgorig" text="P&#x016f;vod"/>
+<gentext key="note" text="Pozn&#x00e1;mka"/>
+<gentext key="part" text="&#x010c;&#x00e1;st"/>
+<gentext key="preface" text="P&#x0159;edmluva"/>
+<gentext key="procedure" text="Postup"/>
+<gentext key="published" text="Vyd&#x00e1;no"/>
+<gentext key="question" text="Ot&#x00e1;zka:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Odkaz"/>
+<gentext key="refname" text="Jm&#x00e9;no"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="P&#x0159;ehled"/>
+<gentext key="revhistory" text="P&#x0159;ehled reviz&#x00ed;"/>
+<gentext key="revision" text="Revize"/>
+<gentext key="section" text="Odd&#x00ed;l"/>
+<gentext key="sect1" text="Odd&#x00ed;l"/>
+<gentext key="sect2" text="Odd&#x00ed;l"/>
+<gentext key="sect3" text="Odd&#x00ed;l"/>
+<gentext key="sect4" text="Odd&#x00ed;l"/>
+<gentext key="sect5" text="Odd&#x00ed;l"/>
+<gentext key="see" text="Viz"/>
+<gentext key="seealso" text="Viz t&#x00e9;&#x017e;"/>
+<gentext key="set" text="Sada"/>
+<gentext key="setindex" text="Rejst&#x0159;&#x00ed;k sady"/>
+<gentext key="sidebar" text="Margin&#x00e1;lie"/>
+<gentext key="step" text="Krok"/>
+<gentext key="table" text="Tabulka"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="Varov&#x00e1;n&#x00ed;"/>
+
+<gentext key="TableofContents" text="Obsah"/>
+<gentext key="in" text="v"/>
+<gentext key="by" text=" "/>
+<gentext key="Edited" text="Vyd&#x00e1;no"/>
+<gentext key="Editedby" text="Sestavil"/>
+<gentext key="and" text="a"/>
+<gentext key="Notes" text="Pozn&#x00e1;mky"/>
+<gentext key="TableNotes" text="Pozn&#x00e1;mky"/>
+<gentext key="nonexistantelement" text="neexistuj&#x00ed;c&#x00ed; prvek"/>
+<gentext key="Pgs" text="Str."/>
+<gentext key="unsupported" text="nepodporovan&#x00fd;"/>
+<gentext key="xrefto" text="xref k"/>
+<gentext key="unexpectedelementname" text="Neo&#x010d;ek&#x00e1;van&#x00e9; jm&#x00e9;no prvku"/>
+<gentext key="Revisedby" text="Revidoval: "/>
+
+<gentext key="ListofTables" text="Seznam tabulek"/>
+<gentext key="ListofExamples" text="Seznam p&#x0159;&#x00ed;klad&#x016f;"/>
+<gentext key="ListofFigures" text="Seznam obr&#x00e1;zk&#x016f;"/>
+<gentext key="ListofEquations" text="Seznam rovnic"/>
+<gentext key="ListofUnknown" text="Seznam nezn&#x00e1;m&#x00e9;ho"/>
+
+<gentext key="nav-prev" text="P&#x0159;edch&#x00e1;zej&#x00ed;c&#x00ed;"/>
+<gentext key="nav-prev-sibling" text="Rychle zp&#x011b;t"/>
+<gentext key="nav-next-sibling" text="Rychle dop&#x0159;edu"/>
+<gentext key="nav-next" text="Dal&#x0161;&#x00ed;"/>
+<gentext key="nav-up" text="Nahoru"/>
+<gentext key="nav-home" text="Dom&#x016f;"/>
+
+<gentext key="the section called" text="odd&#x00ed;l nazvan&#x00fd;"/>
+
+<dingbat key="startquote" text="&#x201e;"/>
+<dingbat key="endquote" text="&#x201c;"/>
+<dingbat key="nestedstartquote" text="&#x201a;"/>
+<dingbat key="nestedendquote" text="&#x2018;"/>
+<dingbat key="bullet" text="&#x2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="figure" text="%n"/>
+<xref element="example" text="%n"/>
+<xref element="table" text="%n"/>
+
+</localization>
diff --git a/tests/docbook/common/da.xml b/tests/docbook/common/da.xml
new file mode 100644
index 00000000..95905023
--- /dev/null
+++ b/tests/docbook/common/da.xml
@@ -0,0 +1,98 @@
+<localization language="da">
+
+<gentext key="abstract" text="Abstract"/>
+<gentext key="appendix" text="Appendiks"/>
+<gentext key="article" text="Article"/>
+<gentext key="bibliography" text="Bibliografi"/>
+<gentext key="book" text="Book"/>
+<gentext key="caution" text="BEM&#198;RK"/>
+<gentext key="caution" text="Bem&#230;rk"/>
+<gentext key="chapter" text="Kapitel"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Tilegnet"/>
+<gentext key="edition" text="Udgave"/>
+<gentext key="equation" text="Ligning"/>
+<gentext key="example" text="Eksempel"/>
+<gentext key="figure" text="Figur"/>
+<gentext key="glosssee" text="Se"/>
+<gentext key="glossseealso" text="Se ogs&#229;"/>
+<gentext key="glossary" text="Stikordregister"/>
+<gentext key="important" text="VIGTIGT"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Vigtigt"/>
+<gentext key="index" text="Index"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="M&#229;lgruppe"/>
+<gentext key="msglevel" text="Niveau"/>
+<gentext key="msgorig" text="Grundlag"/>
+<gentext key="note" text="NOTE"/>
+<gentext key="note" text="Note"/>
+<gentext key="part" text="Del"/>
+<gentext key="preface" text="Forord"/>
+<gentext key="procedure" text="Procedure"/>
+<gentext key="pubdate" text="Udgivet"/>
+<gentext key="published" text="Published"/>
+<gentext key="refname" text="Navn"/>
+<gentext key="reference" text="Reference"/>
+<gentext key="revision" text="Revision"/>
+<gentext key="revhistory" text="Revision historie"/>
+<gentext key="section" text="Afsnit"/>
+<gentext key="see" text="Se"/>
+<gentext key="seealso" text="Se ogs&#229;"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Skridt"/>
+<gentext key="tip" text="TIP"/>
+<gentext key="table" text="Tabel"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="ADVARSEL"/>
+<gentext key="warning" text="Advarsel"/>
+<gentext key="appendix" text="appendiks"/>
+<gentext key="chapter" text="kapitel"/>
+<gentext key="section" text="sektion"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="skridt"/>
+<gentext key="seealso" text="Se ogs&#229;"/>
+
+<gentext key="TableofContents" text="Indholdsfortegnelse"/>
+<gentext key="by" text="af"/>
+<gentext key="Edited" text="Redigeret"/>
+<gentext key="Editedby" text="Redigeret af"/>
+<gentext key="and" text="og"/>
+<gentext key="Notes" text="Slutbem&#230;rkning:"/>
+<gentext key="TableNotes" text="Noter:"/>
+<gentext key="nonexistantelement" text="non-existant element"/>
+<gentext key="Pgs" text="siderne"/>
+<gentext key="unsupported" text="unsupported"/>
+<gentext key="xrefto" text="xref to"/>
+<gentext key="unexpectedelementname" text="Unexpected element name"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Liste over alle tabeller"/>
+<gentext key="ListofExamples" text="Liste over alle eksempler"/>
+<gentext key="ListofFigures" text="Liste over alle figurer"/>
+<gentext key="ListofEquations" text="Liste over alle ligninger"/>
+<gentext key="ListofUnknown" text="Liste over alle ????"/>
+
+<gentext key="nav-prev" text="Forrige"/>
+<gentext key="nav-prev-sibling" text="Hurtigt tilbage"/>
+<gentext key="nav-next-sibling" text="Hurtigt fremad"/>
+<gentext key="nav-next" text="N&#230;ste"/>
+<gentext key="nav-up" text="Op"/>
+<gentext key="nav-home" text="Hjem"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/de.xml b/tests/docbook/common/de.xml
new file mode 100644
index 00000000..33d3e819
--- /dev/null
+++ b/tests/docbook/common/de.xml
@@ -0,0 +1,99 @@
+<localization language="de">
+<!--
+ Contributions by: Michael Burschik, burschik@id-pro.de
+-->
+
+<gentext key="abstract" text="Zusammenfassung"/>
+<gentext key="appendix" text="Anhang"/>
+<gentext key="article" text="Artikel"/>
+<gentext key="bibliography" text="Literaturverzeichnis"/>
+<gentext key="book" text="Buch"/>
+<gentext key="caution" text="Achtung"/>
+<gentext key="chapter" text="Kapitel"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Widmung"/>
+<gentext key="edition" text="Ausgabe"/>
+<gentext key="equation" text="Gleichung"/>
+<gentext key="example" text="Beispiel"/>
+<gentext key="figure" text="Abbildung"/>
+<gentext key="glosssee" text="Siehe"/>
+<gentext key="glossseealso" text="Siehe auch"/>
+<gentext key="glossary" text="Glossar"/>
+<gentext key="important" text="WICHTIG"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Wichtig"/>
+<gentext key="index" text="Stichwortverzeichnis"/>
+<gentext key="legalnotice" text="Rechtlicher Hinweis"/>
+<gentext key="msgaud" text="Zielgruppe"/>
+<gentext key="msglevel" text="Dringlichkeit"/>
+<gentext key="msgorig" text="Ursprung"/>
+<gentext key="note" text="Anmerkung"/>
+<gentext key="part" text="Teil"/>
+<gentext key="preface" text="Vorwort"/>
+<gentext key="procedure" text="Prozedur"/>
+<gentext key="published" text="Ver&#x00F6;ffentlicht"/>
+<gentext key="refname" text="Name"/>
+<gentext key="reference" text="Verweis"/>
+<gentext key="refsection" text="Abschnitt"/>
+<gentext key="refsynopsisdiv" text="Synopsis"/> <!--en-->
+<gentext key="revhistory" text="Versionsgeschichte"/>
+<gentext key="revision" text="Version"/>
+<gentext key="section" text="Abschnitt"/>
+<gentext key="see" text="Siehe"/>
+<gentext key="seealso" text="Siehe auch"/>
+<gentext key="seealso" text="Siehe auch"/>
+<gentext key="set" text="Satz"/>
+<gentext key="setindex" text="Stichwortverzeichnis"/>
+<gentext key="sidebar" text="Randnotiz"/>
+<gentext key="step" text="Schritt"/>
+<gentext key="tip" text="TIP"/>
+<gentext key="table" text="Tabelle"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="WARNUNG"/>
+<gentext key="appendix" text="Anhang"/>
+<gentext key="chapter" text="Kapitel"/>
+<gentext key="section" text="Abschnitt"/>
+<gentext key="step" text="Schritt"/>
+
+<gentext key="TableofContents" text="Inhaltsverzeichnis"/>
+<gentext key="in" text="in"/>
+<gentext key="by" text="von"/>
+<gentext key="Edited" text="Herausgegeben"/>
+<gentext key="Editedby" text="Herausgegeben von"/>
+<gentext key="and" text="und"/>
+<gentext key="Notes" text="Fu&#x00DF;noten"/>
+<gentext key="TableNotes" text="Bemerkungen"/>
+<gentext key="nonexistantelement" text="nicht existierendes Element"/>
+<gentext key="Pgs" text="Seiten"/>
+<gentext key="unsupported" text="wird nicht unterst&#x00FC;tzt"/>
+<gentext key="xrefto" text="xref auf"/>
+<gentext key="unexpectedelementname" text="Unerwarteter Elementname"/>
+<gentext key="Revisedby" text="Ge&#x00E4;ndert durch: "/>
+
+<gentext key="ListofTables" text="Tabellenverzeichnis"/>
+<gentext key="ListofExamples" text="Beispiele"/>
+<gentext key="ListofFigures" text="Abbildungsverzeichnis"/>
+<gentext key="ListofEquations" text="Gleichungen"/>
+<gentext key="ListofUnknown" text="???-Verzeichnis"/>
+
+<gentext key="nav-prev" text="Zur&#x00FC;ck"/>
+<gentext key="nav-prev-sibling" text="Schnell zur&#x00FC;ck"/>
+<gentext key="nav-next-sibling" text="Schnell vor"/>
+<gentext key="nav-next" text="Vor"/>
+<gentext key="nav-up" text="Hoch"/>
+<gentext key="nav-home" text="Anfang"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/el.xml b/tests/docbook/common/el.xml
new file mode 100644
index 00000000..ad930320
--- /dev/null
+++ b/tests/docbook/common/el.xml
@@ -0,0 +1,104 @@
+<localization language="el">
+
+<gentext key="abstract" text="&#208;&#229;&#241;&#223;&#235;&#231;&#248;&#231;"/>
+<gentext key="answer" text="&#193;:"/>
+<gentext key="appendix" text="&#208;&#225;&#241;&#220;&#241;&#244;&#231;&#236;&#225;"/>
+<gentext key="article" text="&#182;&#241;&#232;&#241;&#239;"/>
+<gentext key="bibliography" text="&#194;&#233;&#226;&#235;&#233;&#239;&#227;&#241;&#225;&#246;&#223;&#225;"/>
+<gentext key="book" text="&#194;&#233;&#226;&#235;&#223;&#239;"/>
+<gentext key="caution" text="&#208;&#209;&#207;&#211;&#207;&#215;&#199;"/>
+<gentext key="caution" text="&#208;&#241;&#239;&#243;&#239;&#247;&#222;"/>
+<gentext key="chapter" text="&#202;&#229;&#246;&#220;&#235;&#225;&#233;&#239;"/>
+<gentext key="colophon" text="&#202;&#239;&#241;&#249;&#237;&#223;&#228;&#225;"/>
+<gentext key="copyright" text="&#208;&#237;&#229;&#245;&#236;&#225;&#244;&#233;&#234;&#220; &#196;&#233;&#234;&#225;&#233;&#254;&#236;&#225;&#244;&#225;"/>
+<gentext key="dedication" text="&#193;&#246;&#233;&#221;&#241;&#249;&#243;&#231;"/>
+<gentext key="edition" text="&#184;&#234;&#228;&#239;&#243;&#231;"/>
+<gentext key="equation" text="&#197;&#238;&#223;&#243;&#249;&#243;&#231;"/>
+<gentext key="example" text="&#208;&#225;&#241;&#220;&#228;&#229;&#233;&#227;&#236;&#225;"/>
+<gentext key="figure" text="&#211;&#247;&#222;&#236;&#225;"/>
+<gentext key="glosssee" text="&#196;&#229;&#223;&#244;&#229;"/>
+<gentext key="glossseealso" text="&#196;&#229;&#223;&#244;&#229; &#197;&#240;&#223;&#243;&#231;&#242;"/>
+<gentext key="glossary" text="&#195;&#235;&#249;&#243;&#243;&#220;&#241;&#233;&#239;"/>
+<gentext key="important" text="&#211;&#199;&#204;&#193;&#205;&#212;&#201;&#202;&#207;"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="&#211;&#231;&#236;&#225;&#237;&#244;&#233;&#234;&#252;"/>
+<gentext key="index" text="&#197;&#245;&#241;&#229;&#244;&#222;&#241;&#233;&#239;"/>
+<gentext key="legalnotice" text="&#205;&#239;&#236;&#233;&#234;&#222; &#211;&#231;&#236;&#229;&#223;&#249;&#243;&#231;"/>
+<gentext key="msgaud" text="&#193;&#234;&#241;&#239;&#225;&#244;&#222;&#241;&#233;&#239;"/>
+<gentext key="msglevel" text="&#197;&#240;&#223;&#240;&#229;&#228;&#239;"/>
+<gentext key="msgorig" text="&#208;&#231;&#227;&#222;"/>
+<gentext key="note" text="&#211;&#199;&#204;&#197;&#201;&#217;&#211;&#199;"/>
+<gentext key="note" text="&#211;&#231;&#236;&#229;&#223;&#249;&#243;&#231;"/>
+<gentext key="part" text="&#204;&#221;&#241;&#239;&#242;"/>
+<gentext key="preface" text="&#197;&#233;&#243;&#225;&#227;&#249;&#227;&#222;"/>
+<gentext key="procedure" text="&#196;&#233;&#225;&#228;&#233;&#234;&#225;&#243;&#223;&#225;"/>
+<gentext key="published" text="&#196;&#231;&#236;&#239;&#243;&#233;&#229;&#245;&#236;&#221;&#237;&#239;"/>
+<gentext key="question" text="&#197;:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="&#193;&#237;&#225;&#246;&#239;&#241;&#220;"/>
+<gentext key="refname" text="&#188;&#237;&#239;&#236;&#225;"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="&#211;&#253;&#237;&#239;&#248;&#231;"/>
+<gentext key="revision" text="&#193;&#237;&#225;&#232;&#229;&#254;&#241;&#231;&#243;&#231;"/>
+<gentext key="revhistory" text="&#201;&#243;&#244;&#239;&#241;&#233;&#234;&#252; &#193;&#237;&#225;&#232;&#229;&#249;&#241;&#222;&#243;&#229;&#249;&#237;"/>
+<gentext key="section" text="&#212;&#236;&#222;&#236;&#225;"/>
+<gentext key="see" text="&#196;&#229;&#223;&#244;&#229;"/>
+<gentext key="seealso" text="&#196;&#229;&#223;&#244;&#229; &#197;&#240;&#223;&#243;&#231;&#242;"/>
+<gentext key="set" text="&#211;&#253;&#237;&#239;&#235;&#239;"/>
+<gentext key="setindex" text="&#197;&#245;&#241;&#229;&#244;&#222;&#241;&#233;&#239; &#211;&#245;&#237;&#252;&#235;&#249;&#237;"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="&#214;&#220;&#243;&#231;"/>
+<gentext key="tip" text="&#213;&#208;&#207;&#196;&#197;&#201;&#206;&#199;"/>
+<gentext key="table" text="&#208;&#223;&#237;&#225;&#234;&#225;&#242;"/>
+<gentext key="tip" text="&#213;&#240;&#252;&#228;&#229;&#233;&#238;&#231;"/>
+<gentext key="warning" text="&#208;&#209;&#207;&#197;&#201;&#196;&#207;&#208;&#207;&#201;&#199;&#211;&#199;"/>
+<gentext key="warning" text="&#208;&#241;&#239;&#229;&#233;&#228;&#239;&#240;&#239;&#223;&#231;&#243;&#231;"/>
+<gentext key="appendix" text="&#240;&#225;&#241;&#220;&#241;&#244;&#231;&#236;&#225;"/>
+<gentext key="chapter" text="&#234;&#229;&#246;&#220;&#235;&#225;&#233;&#239;"/>
+<gentext key="section" text="&#244;&#236;&#222;&#236;&#225;"/>
+<gentext key="sidebar" text="&#229;&#240;&#229;&#238;&#231;&#227;&#231;&#236;&#225;&#244;&#233;&#234;&#252; &#240;&#235;&#229;&#245;&#241;&#233;&#234;&#252; &#225;&#241;&#232;&#241;&#223;&#228;&#233;&#239;"/>
+<gentext key="step" text="&#246;&#220;&#243;&#231;"/>
+<gentext key="seealso" text="&#196;&#229;&#223;&#244;&#229; &#229;&#240;&#223;&#243;&#231;&#242;"/>
+
+<gentext key="TableofContents" text="&#208;&#223;&#237;&#225;&#234;&#225;&#242; &#208;&#229;&#241;&#233;&#229;&#247;&#239;&#236;&#221;&#237;&#249;&#237;"/>
+<gentext key="in" text="&#243;&#229;"/>
+<gentext key="by" text="&#225;&#240;&#252;"/>
+<gentext key="Edited" text="&#197;&#240;&#233;&#236;&#221;&#235;&#229;&#233;&#225;"/>
+<gentext key="Editedby" text="&#197;&#240;&#233;&#236;&#221;&#235;&#229;&#233;&#225; &#225;&#240;&#252;"/>
+<gentext key="and" text="&#234;&#225;&#233;"/>
+<gentext key="Notes" text="&#211;&#231;&#236;&#229;&#233;&#254;&#243;&#229;&#233;&#242;"/>
+<gentext key="TableNotes" text="&#208;&#223;&#237;&#225;&#234;&#225;&#242; &#211;&#231;&#236;&#229;&#233;&#254;&#243;&#229;&#249;&#237;"/>
+<gentext key="nonexistantelement" text="&#236;&#231;-&#245;&#240;&#225;&#241;&#234;&#244;&#252; &#243;&#244;&#239;&#233;&#247;&#229;&#223;&#239;"/>
+<gentext key="Pgs" text="&#211;&#235;&#228;&#242;."/>
+<gentext key="unsupported" text="&#236;&#231; &#245;&#240;&#239;&#243;&#244;&#231;&#241;&#233;&#230;&#252;&#236;&#229;&#237;&#239;"/>
+<gentext key="xrefto" text="&#225;&#237;&#244;&#233;&#240;&#225;&#241;&#225;&#240;&#239;&#236;&#240;&#222; &#243;&#229;"/>
+<gentext key="unexpectedelementname" text="&#204;&#231; &#225;&#237;&#225;&#236;&#229;&#237;&#252;&#236;&#229;&#237;&#239; &#252;&#237;&#239;&#236;&#225; &#243;&#244;&#239;&#233;&#247;&#229;&#223;&#239;&#245;"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#208;&#233;&#237;&#220;&#234;&#249;&#237;"/>
+<gentext key="ListofExamples" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#208;&#225;&#241;&#225;&#228;&#229;&#233;&#227;&#236;&#220;&#244;&#249;&#237;"/>
+<gentext key="ListofFigures" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#211;&#247;&#231;&#236;&#220;&#244;&#249;&#237;"/>
+<gentext key="ListofEquations" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#197;&#238;&#233;&#243;&#254;&#243;&#229;&#249;&#237;"/>
+<gentext key="ListofUnknown" text="&#202;&#225;&#244;&#220;&#235;&#239;&#227;&#239;&#242; &#193;&#227;&#237;&#254;&#243;&#244;&#249;&#237;"/>
+
+<gentext key="nav-prev" text="&#208;&#241;&#239;&#231;&#227;"/>
+<gentext key="nav-prev-sibling" text="&#208;&#241;&#239;&#242; &#244;&#231;&#237; &#225;&#241;&#247;&#222;"/>
+<gentext key="nav-next-sibling" text="&#208;&#241;&#239;&#242; &#244;&#239; &#244;&#221;&#235;&#239;&#242;"/>
+<gentext key="nav-next" text="&#197;&#240;&#252;&#236;&#229;&#237;&#239;"/>
+<gentext key="nav-up" text="&#208;&#220;&#237;&#249;"/>
+<gentext key="nav-home" text="&#193;&#241;&#247;&#222;"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/en.xml b/tests/docbook/common/en.xml
new file mode 100644
index 00000000..a105370b
--- /dev/null
+++ b/tests/docbook/common/en.xml
@@ -0,0 +1,102 @@
+<localization language="en">
+
+<gentext key="abstract" text="Abstract"/>
+<gentext key="answer" text="A:"/>
+<gentext key="appendix" text="Appendix"/>
+<gentext key="article" text="Article"/>
+<gentext key="bibliography" text="Bibliography"/>
+<gentext key="book" text="Book"/>
+<gentext key="caution" text="Caution"/>
+<gentext key="chapter" text="Chapter"/>
+<gentext key="colophon" text="Colophon"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedication"/>
+<gentext key="edition" text="Edition"/>
+<gentext key="equation" text="Equation"/>
+<gentext key="example" text="Example"/>
+<gentext key="figure" text="Figure"/>
+<gentext key="glossary" text="Glossary"/>
+<gentext key="glosssee" text="See"/>
+<gentext key="glossseealso" text="See Also"/>
+<gentext key="important" text="Important"/>
+<gentext key="index" text="Index"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="legalnotice" text="Legal Notice"/>
+<gentext key="msgaud" text="Audience"/>
+<gentext key="msglevel" text="Level"/>
+<gentext key="msgorig" text="Origin"/>
+<gentext key="note" text="Note"/>
+<gentext key="part" text="Part"/>
+<gentext key="preface" text="Preface"/>
+<gentext key="procedure" text="Procedure"/>
+<gentext key="published" text="Published"/>
+<gentext key="question" text="Q:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Reference"/>
+<gentext key="refname" text="Name"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="Synopsis"/>
+<gentext key="revhistory" text="Revision History"/>
+<gentext key="revision" text="Revision"/>
+<gentext key="section" text="Section"/>
+<gentext key="sect1" text="Section"/>
+<gentext key="sect2" text="Section"/>
+<gentext key="sect3" text="Section"/>
+<gentext key="sect4" text="Section"/>
+<gentext key="sect5" text="Section"/>
+<gentext key="see" text="See"/>
+<gentext key="seealso" text="See Also"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text="Sidebar"/>
+<gentext key="step" text="Step"/>
+<gentext key="table" text="Table"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="Warning"/>
+
+<gentext key="TableofContents" text="Table of Contents"/>
+<gentext key="in" text="in"/>
+<gentext key="by" text="by"/>
+<gentext key="Edited" text="Edited"/>
+<gentext key="Editedby" text="Edited by"/>
+<gentext key="and" text="and"/>
+<gentext key="Notes" text="Notes"/>
+<gentext key="TableNotes" text="Notes"/>
+<gentext key="nonexistantelement" text="non-existant element"/>
+<gentext key="Pgs" text="Pgs."/>
+<gentext key="unsupported" text="unsupported"/>
+<gentext key="xrefto" text="xref to"/>
+<gentext key="unexpectedelementname" text="Unexpected element name"/>
+<gentext key="Revisedby" text="Revised by:"/>
+
+<gentext key="ListofTables" text="List of Tables"/>
+<gentext key="ListofExamples" text="List of Examples"/>
+<gentext key="ListofFigures" text="List of Figures"/>
+<gentext key="ListofEquations" text="List of Equations"/>
+<gentext key="ListofUnknown" text="List of Unknown"/>
+
+<gentext key="nav-prev" text="Prev"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="Next"/>
+<gentext key="nav-up" text="Up"/>
+<gentext key="nav-home" text="Home"/>
+
+<gentext key="the section called" text="the section called"/>
+
+<gentext key="index symbols" text="Symbols"/>
+
+<dingbat key="startquote" text='&#8220;'/>
+<dingbat key="endquote" text='&#8221;'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="bibliography" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/es.xml b/tests/docbook/common/es.xml
new file mode 100644
index 00000000..78483dfb
--- /dev/null
+++ b/tests/docbook/common/es.xml
@@ -0,0 +1,98 @@
+<localization language="es">
+
+<gentext key="abstract" text="Resumen"/>
+<gentext key="appendix" text="Ap&#x00E9;ndice"/>
+<gentext key="article" text="Art&#x00ED;culo"/>
+<gentext key="bibliography" text="Bibliograf&#x00ED;a"/>
+<gentext key="book" text="Libro"/>
+<gentext key="caution" text="ATENCI&#x00D3;N"/>
+<gentext key="caution" text="Atenci&#x00F3;n"/>
+<gentext key="chapter" text="Cap&#x00ED;tulo"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedicado"/>
+<gentext key="edition" text="Edici&#x00F3;n"/>
+<gentext key="equation" text="Ecuaci&#x00F3;n"/>
+<gentext key="example" text="Ejemplo"/>
+<gentext key="figure" text="Figura"/>
+<gentext key="glosssee" text="Ver"/>
+<gentext key="glossseealso" text="Ver tambi&#x00E9;n"/>
+<gentext key="glossary" text="Glosario"/>
+<gentext key="important" text="IMPORTANTE"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Importante"/>
+<gentext key="index" text="&#x00CD;ndice"/>
+<gentext key="legalnotice" text="Aviso Legal"/>
+<gentext key="msgaud" text="Audiencia"/>
+<gentext key="msglevel" text="Nivel"/>
+<gentext key="msgorig" text="Origen"/>
+<gentext key="note" text="NOTA"/>
+<gentext key="note" text="Nota"/>
+<gentext key="part" text="Parte"/>
+<gentext key="preface" text="Prefacio"/>
+<gentext key="procedure" text="Procedimiento"/>
+<gentext key="pubdate" text="Fecha de publicaci&#x00F3;n"/>
+<gentext key="published" text="Publicado"/>
+<gentext key="refname" text="Nombre"/>
+<gentext key="reference" text="Referencia"/>
+<gentext key="revision" text="Revisi&#x00F3;n"/>
+<gentext key="revhistory" text="Historial de revisiones"/>
+<gentext key="section" text="Secci&#x00F3;n"/>
+<gentext key="see" text="Ver"/>
+<gentext key="seealso" text="Ver Tambi&#x00E9;n"/>
+<gentext key="set" text="Conjunto"/>
+<gentext key="setindex" text="&#x00CD;ndice del conjunto"/>
+<gentext key="sidebar" text="Sidebar"/>
+<gentext key="step" text="Paso"/>
+<gentext key="tip" text="SUGERENCIA"/>
+<gentext key="table" text="Tabla"/>
+<gentext key="tip" text="Sugerencia"/>
+<gentext key="warning" text="AVISO"/>
+<gentext key="warning" text="Aviso"/>
+<gentext key="appendix" text="ap&#x00E9;ndice"/>
+<gentext key="chapter" text="cap&#x00ED;tulo"/>
+<gentext key="section" text="secci&#x00F3;n"/>
+<gentext key="step" text="paso"/>
+<gentext key="seealso" text="Ver Tambi&#x00E9;n"/>
+
+<gentext key="TableofContents" text="Tabla de contenidos"/>
+<gentext key="in" text="en"/>
+<gentext key="by" text="por"/>
+<gentext key="Edited" text="Editado"/>
+<gentext key="Editedby" text="Editado por"/>
+<gentext key="and" text="y"/>
+<gentext key="Notes" text="Notas"/>
+<gentext key="TableNotes" text="Notas"/>
+<gentext key="nonexistantelement" text="elemento inexistente"/>
+<gentext key="Pgs" text="Pags."/>
+<gentext key="unsupported" text="no soportado"/>
+<gentext key="xrefto" text="referido a"/>
+<gentext key="unexpectedelementname" text="Nombre de elemento inesperado"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Lista de tablas"/>
+<gentext key="ListofExamples" text="Tabla de ejemplos"/>
+<gentext key="ListofFigures" text="Tabla de figuras"/>
+<gentext key="ListofEquations" text="Tabla de ecuaciones"/>
+<gentext key="ListofUnknown" text="Lista de ???"/>
+
+<gentext key="nav-prev" text="Anterior"/>
+<gentext key="nav-prev-sibling" text="Retroceder"/>
+<gentext key="nav-next-sibling" text="Avanzar"/>
+<gentext key="nav-next" text="Siguiente"/>
+<gentext key="nav-up" text="Subir"/>
+<gentext key="nav-home" text="Inicio"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/et.xml b/tests/docbook/common/et.xml
new file mode 100644
index 00000000..4c63adbe
--- /dev/null
+++ b/tests/docbook/common/et.xml
@@ -0,0 +1,104 @@
+<localization language="et">
+
+<gentext key="abstract" text="&#220;levaade"/>
+<gentext key="answer" text="V:"/>
+<gentext key="appendix" text="Lisa"/>
+<gentext key="article" text="Artikkel"/>
+<gentext key="bibliography" text="Bibliograafia"/>
+<gentext key="book" text="Raamat"/>
+<gentext key="caution" text="ETTEVAATUST"/>
+<gentext key="caution" text="Ettevaatust"/>
+<gentext key="chapter" text="Peat&#252;kk"/>
+<gentext key="colophon" text="L&#245;pum&#228;rgis"/>
+<gentext key="copyright" text="Autori&#245;igus"/>
+<gentext key="dedication" text="P&#252;hendus"/>
+<gentext key="edition" text="V&#228;ljaanne"/>
+<gentext key="equation" text="Valem"/>
+<gentext key="example" text="N&#228;ide"/>
+<gentext key="figure" text="Joonis"/>
+<gentext key="glosssee" text="Vt."/>
+<gentext key="glossseealso" text="Vt. ka"/>
+<gentext key="glossary" text="S&#245;nastik"/>
+<gentext key="important" text="OLULINE"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Oluline"/>
+<gentext key="index" text="Aineregister"/>
+<gentext key="legalnotice" text="Autori&#245;iguse m&#228;rge"/>
+<gentext key="msgaud" text="Auditoorium"/>
+<gentext key="msglevel" text="Tase"/>
+<gentext key="msgorig" text="Algallikas"/>
+<gentext key="note" text="M&#196;RKUS"/>
+<gentext key="note" text="M&#228;rkus"/>
+<gentext key="part" text="Osa"/>
+<gentext key="preface" text="Eess&#245;na"/>
+<gentext key="procedure" text="Protseduur"/>
+<gentext key="published" text="Avaldatud"/>
+<gentext key="question" text="K:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Viide"/>
+<gentext key="refname" text="Nimi"/>
+<gentext key="refsection" text="L&#245;ik"/>
+<gentext key="refsynopsisdiv" text="S&#252;nopsis"/>
+<gentext key="revision" text="Vigade parandus"/>
+<gentext key="revhistory" text="Vigade paranduste ajalugu"/>
+<gentext key="section" text="Sektsioon"/>
+<gentext key="see" text="Vt."/>
+<gentext key="seealso" text="Vt. ka"/>
+<gentext key="set" text="Sea"/>
+<gentext key="setindex" text="Sea indeks"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Samm"/>
+<gentext key="tip" text="VIHJE"/>
+<gentext key="table" text="Tabel"/>
+<gentext key="tip" text="Vihje"/>
+<gentext key="warning" text="HOIATUS"/>
+<gentext key="warning" text="Hoiatus"/>
+<gentext key="appendix" text="lisa"/>
+<gentext key="chapter" text="peat&#252;kk"/>
+<gentext key="section" text="l&#245;ik"/>
+<gentext key="sidebar" text="k&#252;lgriba"/>
+<gentext key="step" text="samm"/>
+<gentext key="seealso" text="Vt. ka"/>
+
+<gentext key="TableofContents" text="Sisukord"/>
+<gentext key="in" text=""/>
+<gentext key="by" text=""/>
+<gentext key="Edited" text="Redaktsioon"/>
+<gentext key="Editedby" text="Redaktsiooni autor(id)"/>
+<gentext key="and" text="ja"/>
+<gentext key="Notes" text="M&#228;rkused"/>
+<gentext key="TableNotes" text="M&#228;rkused"/>
+<gentext key="nonexistantelement" text="mitte eksisteeriv element"/>
+<gentext key="Pgs" text="Lk."/>
+<gentext key="unsupported" text="toetuseta"/>
+<gentext key="xrefto" text="viide"/>
+<gentext key="unexpectedelementname" text="Ootamatu elemendi nimi"/>
+<gentext key="Revisedby" text="&#220;le vaadanud: "/>
+
+<gentext key="ListofTables" text="Tabelite nimekiri"/>
+<gentext key="ListofExamples" text="N&#228;idete nimekiri"/>
+<gentext key="ListofFigures" text="Jooniste nimekiri"/>
+<gentext key="ListofEquations" text="Valemite nimekiri"/>
+<gentext key="ListofUnknown" text="Tundmatute nimekiri"/>
+
+<gentext key="nav-prev" text="Eelmine"/>
+<gentext key="nav-prev-sibling" text="Kiiresti tagasi"/>
+<gentext key="nav-next-sibling" text="Kiiresti edasi"/>
+<gentext key="nav-next" text="J&#228;rgmine"/>
+<gentext key="nav-up" text="&#220;les"/>
+<gentext key="nav-home" text="Koju"/>
+
+<dingbat key="startquote" text='&#8220;'/>
+<dingbat key="endquote" text='&#8221;'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/fi.xml b/tests/docbook/common/fi.xml
new file mode 100644
index 00000000..5d257255
--- /dev/null
+++ b/tests/docbook/common/fi.xml
@@ -0,0 +1,98 @@
+<localization language="fi">
+
+<gentext key="abstract" text="Lyhennelm&#228;"/>
+<gentext key="appendix" text="Liite"/>
+<gentext key="article" text="Artikkeli"/>
+<gentext key="bibliography" text="L&#228;hteet"/>
+<gentext key="book" text="Kirja"/>
+<gentext key="caution" text="VARO"/>
+<gentext key="caution" text="Varo"/>
+<gentext key="chapter" text="Luku"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Omistus"/>
+<gentext key="edition" text="Edition"/>
+<gentext key="equation" text="Kaava"/>
+<gentext key="example" text="Esimerkki"/>
+<gentext key="figure" text="Kuva"/>
+<gentext key="glosssee" text="Katso"/>
+<gentext key="glossseealso" text="Katso my&#246;s"/>
+<gentext key="glossary" text="Sanasto"/>
+<gentext key="important" text="T&#196;RKE&#196;&#196;"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="T&#228;rke&#228;&#228;"/>
+<gentext key="index" text="Indeksi"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="Yleis&#246;"/>
+<gentext key="msglevel" text="Taso"/>
+<gentext key="msgorig" text="Alkuper&#228;"/>
+<gentext key="note" text="HUOMAA"/>
+<gentext key="note" text="Huomaa"/>
+<gentext key="part" text="Osa"/>
+<gentext key="preface" text="Esipuhe"/>
+<gentext key="procedure" text="Aliohjelma"/>
+<gentext key="published" text="Julkaistu"/>
+<gentext key="refname" text="Nimi"/>
+<gentext key="reference" text="L&#228;hdeluettelo"/>
+<gentext key="revision" text="Versio"/>
+<gentext key="revhistory" text="Versiohistoria"/>
+<gentext key="section" text="Kohta"/>
+<gentext key="see" text="Katso"/>
+<gentext key="seealso" text="Katso my&#246;s"/>
+<gentext key="set" text="Kokoelma"/>
+<gentext key="setindex" text="Kokoelman indeksi"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Step"/>
+<gentext key="tip" text="VIHJE"/>
+<gentext key="table" text="Taulu"/>
+<gentext key="tip" text="Vihje"/>
+<gentext key="warning" text="VAROITUS"/>
+<gentext key="warning" text="Varoitus"/>
+<gentext key="appendix" text="liite"/>
+<gentext key="chapter" text="luku"/>
+<gentext key="section" text="kohta"/>
+<gentext key="sidebar" text="sivupalkki"/>
+<gentext key="step" text="step"/>
+<gentext key="seealso" text="Katso my&#246;s"/>
+
+<gentext key="TableofContents" text="Sis&#228;llys"/>
+<gentext key="in" text="teoksessa"/>
+<gentext key="by" text=""/>
+<gentext key="Edited" text="Toim."/>
+<gentext key="Editedby" text="Toimittanut"/>
+<gentext key="and" text="ja"/>
+<gentext key="Notes" text=""/>
+<gentext key="TableNotes" text=""/>
+<gentext key="nonexistantelement" text="elementti&#228; ei ole olemassa"/>
+<gentext key="Pgs" text="Sivut"/>
+<gentext key="unsupported" text="ei tueta"/>
+<gentext key="xrefto" text="xref johonkin"/>
+<gentext key="unexpectedelementname" text="Odottamaton elementin nimi"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Luettelo tauluista"/>
+<gentext key="ListofExamples" text="Luettelo esimerkeist&#228;"/>
+<gentext key="ListofFigures" text="Luettelo kuvista"/>
+<gentext key="ListofEquations" text="Luettelo esimerkeist&#228;"/>
+<gentext key="ListofUnknown" text="Luettelo tuntemattomista"/>
+
+<gentext key="nav-prev" text="Edellinen"/>
+<gentext key="nav-prev-sibling" text="Nopeasti taaksep&#x00E4;in"/>
+<gentext key="nav-next-sibling" text="Nopeasti eteenp&#x00E4;in"/>
+<gentext key="nav-next" text="Seuraava"/>
+<gentext key="nav-up" text="Yl&#x00F6;s"/>
+<gentext key="nav-home" text="Alkuun"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/fr.xml b/tests/docbook/common/fr.xml
new file mode 100644
index 00000000..f99c07f4
--- /dev/null
+++ b/tests/docbook/common/fr.xml
@@ -0,0 +1,99 @@
+<localization language="fr">
+
+<gentext key="abstract" text="R&#x00E9;sum&#x00E9;"/>
+<gentext key="answer" text="R:"/>
+<gentext key="appendix" text="Annexe"/>
+<gentext key="article" text="Article"/>
+<gentext key="bibliography" text="Bibliographie"/>
+<gentext key="book" text="Livre"/>
+<gentext key="caution" text="Attention"/>
+<gentext key="chapter" text="Chapitre"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="D&#x00E9;dicace"/>
+<gentext key="edition" text="&#x00C9;dition"/>
+<gentext key="equation" text="&#x00C9;quation"/>
+<gentext key="example" text="Exemple"/>
+<gentext key="figure" text="Figure"/>
+<gentext key="glosssee" text="Voir"/>
+<gentext key="glossseealso" text="Voir aussi"/>
+<gentext key="glossary" text="Glossaire"/>
+<gentext key="important" text="IMPORTANT"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Important"/>
+<gentext key="index" text="Index"/>
+<gentext key="legalnotice" text="Note l&#x00E9;gale"/>
+<gentext key="msgaud" text="Public vis&#x00E9;"/>
+<gentext key="msglevel" text="Niveau"/>
+<gentext key="msgorig" text="Origine"/>
+<gentext key="note" text="Note"/>
+<gentext key="part" text="Partie"/>
+<gentext key="preface" text="Pr&#x00E9;face"/>
+<gentext key="procedure" text="Proc&#x00E9;dure"/>
+<gentext key="published" text="Publi&#x00E9;"/>
+<gentext key="question" text="Q:"/>
+<gentext key="refentry" text=""/>
+<gentext key="refname" text="Nom"/>
+<gentext key="refsection" text=""/>
+<gentext key="reference" text="R&#x00E9;f&#x00E9;rence"/>
+<gentext key="revhistory" text="Historique des versions"/>
+<gentext key="revision" text="Version"/>
+<gentext key="section" text="Section"/>
+<gentext key="see" text="Voir"/>
+<gentext key="seealso" text="Voir Aussi"/>
+<gentext key="seealso" text="Voir aussi"/>
+<gentext key="set" text="Ensemble"/>
+<gentext key="setindex" text="Index"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="&#x00C9;tape"/>
+<gentext key="tip" text="TUYAU"/>
+<gentext key="table" text="Tableau"/>
+<gentext key="tip" text="Tuyau"/>
+<gentext key="warning" text="Avertissement"/>
+<gentext key="appendix" text="annexe"/>
+<gentext key="chapter" text="chapitre"/>
+<gentext key="sidebar" text=""/>
+<gentext key="section" text="section"/>
+<gentext key="step" text="&#x00E9;tape"/>
+
+<gentext key="TableofContents" text="Table des mati&#x00E8;res"/>
+<gentext key="in" text="dans"/>
+<gentext key="by" text="par"/>
+<gentext key="Edited" text="Publi&#x00E9;"/>
+<gentext key="Editedby" text="Publi&#x00E9; par"/>
+<gentext key="and" text="et"/>
+<gentext key="Notes" text="Notes"/>
+<gentext key="TableNotes" text="Remarques"/>
+<gentext key="nonexistantelement" text="Cet &#x00E9;l&#x00E9;ment n'existe pas"/>
+<gentext key="Pgs" text="Pages"/>
+<gentext key="unsupported" text="Non reconnu par le syst&#x00E8;me"/>
+<gentext key="xrefto" text="R&#x00E9;f&#x00E9;rence vers"/>
+<gentext key="unexpectedelementname" text="Nom d'&#x00E9;l&#x00E9;ment non attendu"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Liste des tableaux"/>
+<gentext key="ListofExamples" text="Liste des exemples"/>
+<gentext key="ListofFigures" text="Liste des illustrations"/>
+<gentext key="ListofEquations" text="Liste des &#x00E9;quations"/>
+<gentext key="ListofUnknown" text="Liste des inconnues"/>
+
+<gentext key="nav-prev" text="Pr&#x00E9;c&#x00E9;dent"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="Suivant"/>
+<gentext key="nav-up" text="Niveau sup&#x00E9;rieur"/>
+<gentext key="nav-home" text="Sommaire"/>
+
+<dingbat key="startquote" text="&#x00AB;"/>
+<dingbat key="endquote" text="&#x00BB;"/>
+<dingbat key="nestedstartquote" text="&#x00AB;"/>
+<dingbat key="nestedendquote" text="&#x00BB;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/hu.xml b/tests/docbook/common/hu.xml
new file mode 100644
index 00000000..d37e06ff
--- /dev/null
+++ b/tests/docbook/common/hu.xml
@@ -0,0 +1,94 @@
+<localization language="hu">
+
+<gentext key="abstract" text="Kivonat"/>
+<gentext key="answer" text="V:"/>
+<gentext key="appendix" text="F&#x0171;ggel&#x00E9;k"/>
+<gentext key="article" text="Cikk"/>
+<gentext key="bibliography" text="Irodalomjegyz&#x00E9;k"/>
+<gentext key="book" text="K&#x0151;nyv"/>
+<gentext key="caution" text="Figyelem"/>
+<gentext key="chapter" text="Fejezet"/>
+<gentext key="colophon" text="V&#x00E9;gsz&#x00F3;"/>
+<gentext key="copyright" text="V&#x08e9;djegy"/>
+<gentext key="dedication" text="Aj&#x00E1;nl&#x00E1;s"/>
+<gentext key="edition" text="Kiad&#x00E1;s"/>
+<gentext key="equation" text="Egyenlet"/>
+<gentext key="example" text="P&#x00E9;lda"/>
+<gentext key="figure" text="&#x00C1;bra"/>
+<gentext key="glosssee" text="L&#x00E1;sd"/>
+<gentext key="glossseealso" text="L&#x00E1;sd m&#x00E9;g"/>
+<gentext key="glossary" text="Sz&#x00F3;jegyz&#x00E9;k"/>
+<gentext key="important" text="FONTOS"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Fontos"/>
+<gentext key="index" text="T&#x00E1;rgymutat&#x00F3;"/>
+<gentext key="legalnotice" text="Jogi k&#x0151;zlem&#x00E9;ny"/>
+<gentext key="msgaud" text="C&#x00E9;lk&#x0151;z&#x0151;ns&#x00E9;g"/>
+<gentext key="msglevel" text="Szint"/>
+<gentext key="msgorig" text="Eredet"/>
+<gentext key="note" text="Megjegyz&#x00E9;s"/>
+<gentext key="part" text="R&#x00E9;sz"/>
+<gentext key="preface" text="El&#x0151;sz&#x00F3;"/>
+<gentext key="procedure" text="Elj&#x00E1;r&#x00E1;s"/>
+<gentext key="published" text="Megjelent"/>
+<gentext key="question" text="K:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Referencia"/>
+<gentext key="refname" text="N&#x00E9;v"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="&#x00C1;ttekint&#x00E9;s"/>
+<gentext key="revision" text="Verzi&#x00F3;"/>
+<gentext key="revhistory" text="Verzi&#x00F3;k t&#x0151;rt&#x00E9;nete"/>
+<gentext key="section" text="Szakasz"/>
+<gentext key="see" text="L&#x00E1;sd"/>
+<gentext key="seealso" text="L&#x00E1;sd m&#x00E9;g"/>
+<gentext key="set" text="Set"/> <!-- en -->
+<gentext key="setindex" text="Set Index"/> <!-- en -->
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="L&#x00E9;p&#x00E9;s"/>
+<gentext key="table" text="T&#x00E1;bl&#x00E1;zat"/>
+<gentext key="tip" text="Tipp"/>
+<gentext key="warning" text="Figyelem"/>
+
+<gentext key="TableofContents" text="Tartalom"/>
+<gentext key="in" text=""/>
+<gentext key="by" text=""/>
+<gentext key="Edited" text="Szerk."/>
+<gentext key="Editedby" text="Szerkesztette"/>
+<gentext key="and" text="&#x00E9;s"/>
+<gentext key="Notes" text="Megjegyz&#x00E9;sek"/>
+<gentext key="TableNotes" text="Megjegyz&#x00E9;sek"/>
+<gentext key="nonexistantelement" text="nem l&#x00E9;tezo elem"/>
+<gentext key="Pgs" text="Lsz."/>
+<gentext key="unsupported" text="nem t&#x00E1;mogatott"/>
+<gentext key="xrefto" text="keresztref:"/>
+<gentext key="unexpectedelementname" text="Nem v&#x00E1;rt elemn&#x00E9;v"/>
+<gentext key="Revisedby" text="Megvizsg&#x00E1;lva: "/>
+
+<gentext key="ListofTables" text="T&#x00E1;bl&#x00E1;zatok list&#x00E1;ja"/>
+<gentext key="ListofExamples" text="P&#x00E9;ld&#x00E1;k list&#x00E1;ja"/>
+<gentext key="ListofFigures" text="&#x00C1;br&#x00E1;k list&#x00E1;ja"/>
+<gentext key="ListofEquations" text="Egyenletek list&#x00E1;ja"/>
+<gentext key="ListofUnknown" text="Egy&#x00E9;b elemek list&#x00E1;ja"/>
+
+<gentext key="nav-prev" text="Vissza"/>
+<gentext key="nav-prev-sibling" text="Gyors vissza"/>
+<gentext key="nav-next-sibling" text="Gyors Tov&#x00E1;bb"/>
+<gentext key="nav-next" text="Tov&#x00E1;bb"/>
+<gentext key="nav-up" text="Fel"/>
+<gentext key="nav-home" text="Tartalom"/>
+
+<dingbat key="startquote" text='&#8220;'/>
+<dingbat key="endquote" text='&#8221;'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%n %g %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/id.xml b/tests/docbook/common/id.xml
new file mode 100644
index 00000000..f85b0215
--- /dev/null
+++ b/tests/docbook/common/id.xml
@@ -0,0 +1,104 @@
+<localization language="id">
+
+<gentext key="abstract" text="Abstrak"/>
+<gentext key="answer" text="Jawab:"/>
+<gentext key="appendix" text="Lampiran"/>
+<gentext key="article" text="Artikel"/>
+<gentext key="bibliography" text="Bibliografi"/>
+<gentext key="book" text="Buku"/>
+<gentext key="caution" text="PERHATIAN"/>
+<gentext key="caution" text="Perhatian"/>
+<gentext key="chapter" text="Bab"/>
+<gentext key="colophon" text="Kolofon"/>
+<gentext key="copyright" text="Hak Cipta"/>
+<gentext key="dedication" text="Dedikasi"/>
+<gentext key="edition" text="Edisi"/>
+<gentext key="equation" text="Persamaan"/>
+<gentext key="example" text="Teladan"/>
+<gentext key="figure" text="Gambar"/>
+<gentext key="glosssee" text="Lihat"/>
+<gentext key="glossseealso" text="Lihat Juga"/>
+<gentext key="glossary" text="Daftar Istilah"/>
+<gentext key="important" text="PENTING"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Penting"/>
+<gentext key="index" text="Indeks"/>
+<gentext key="legalnotice" text="Aspek Hukum"/>
+<gentext key="msgaud" text="Pemirsa"/>
+<gentext key="msglevel" text="Tingkatan"/>
+<gentext key="msgorig" text="Asal"/>
+<gentext key="note" text="CATATAN"/>
+<gentext key="note" text="Catatan"/>
+<gentext key="part" text="Bagian"/>
+<gentext key="preface" text="Kata Pengantar"/>
+<gentext key="procedure" text="Prosedur"/>
+<gentext key="published" text="Diterbitkan"/>
+<gentext key="question" text="Tanya:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Referensi"/>
+<gentext key="refname" text="Nama"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="Sinopsis"/>
+<gentext key="revision" text="Revisi"/>
+<gentext key="revhistory" text="Catatan Revisi"/>
+<gentext key="section" text="Bagian"/>
+<gentext key="see" text="Lihat"/>
+<gentext key="seealso" text="Lihat Juga"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Tahap"/>
+<gentext key="tip" text="TIP"/>
+<gentext key="table" text="Tabel"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="AWAS"/>
+<gentext key="warning" text="Awas"/>
+<gentext key="appendix" text="lampiran"/>
+<gentext key="chapter" text="bab"/>
+<gentext key="section" text="bagian"/>
+<gentext key="sidebar" text="sidebar"/>
+<gentext key="step" text="tahap"/>
+<gentext key="seealso" text="Lihat juga"/>
+
+<gentext key="TableofContents" text="Daftar Isi"/>
+<gentext key="in" text="di"/>
+<gentext key="by" text="oleh"/>
+<gentext key="Edited" text="disunting"/>
+<gentext key="Editedby" text="disunting oleh"/>
+<gentext key="and" text="dan"/>
+<gentext key="Notes" text="Catatan"/>
+<gentext key="TableNotes" text="Catatan"/>
+<gentext key="nonexistantelement" text="elemen tak tampak"/>
+<gentext key="Pgs" text="Hal."/>
+<gentext key="unsupported" text="tidak didukung"/>
+<gentext key="xrefto" text="xref ke"/>
+<gentext key="unexpectedelementname" text="Nama Elemen seharusnya tidak ada"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Daftar Tabel"/>
+<gentext key="ListofExamples" text="Daftar Teladan"/>
+<gentext key="ListofFigures" text="Daftar Gambar"/>
+<gentext key="ListofEquations" text="Daftar Persamaan"/>
+<gentext key="ListofUnknown" text="Daftar Gaib"/>
+
+<gentext key="nav-prev" text="Prev"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="Next"/>
+<gentext key="nav-up" text="Up"/>
+<gentext key="nav-home" text="Home"/>
+
+<dingbat key="startquote" text='&#8220;'/>
+<dingbat key="endquote" text='&#8221;'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/it.xml b/tests/docbook/common/it.xml
new file mode 100644
index 00000000..a7e1063e
--- /dev/null
+++ b/tests/docbook/common/it.xml
@@ -0,0 +1,103 @@
+<localization language="it">
+<!-- updates from camille@mandrakesoft.com -->
+
+<gentext key="abstract" text="Estratto"/>
+<gentext key="appendix" text="Appendice"/>
+<gentext key="article" text="Articolo"/>
+<gentext key="audience" text="Pubblico"/>
+<gentext key="bibliography" text="Bibliografia"/>
+<gentext key="book" text="Libro"/>
+<gentext key="caution" text="CAUTELA"/>
+<gentext key="caution" text="Cautela"/>
+<gentext key="chapter" text="Capitolo"/>
+<gentext key="colophon" text="Colophon"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedica"/>
+<gentext key="edition" text="Edizione"/>
+<gentext key="equation" text="Equazione"/>
+<gentext key="example" text="Esempio"/>
+<gentext key="figure" text="Figura"/>
+<gentext key="glossary" text="Glossario"/>
+<gentext key="glosssee" text="Vedi"/>
+<gentext key="glossseealso" text="Vedi anche"/>
+<gentext key="important" text="IMPORTANTE"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Importante"/>
+<gentext key="index" text="Indice"/>
+<gentext key="legalnotice" text="Note legali"/>
+<gentext key="level" text="Livello"/>
+<gentext key="note" text="NOTA"/>
+<gentext key="name" text="Nome"/>
+<gentext key="note" text="Nota"/>
+<gentext key="origin" text="Origine"/>
+<gentext key="part" text="Parte"/>
+<gentext key="preface" text="Prefazione"/>
+<gentext key="procedure" text="Procedura"/>
+<gentext key="published" text="Pubblicato"/>
+<gentext key="reference" text="Riferimento"/>
+<gentext key="revision" text="Revisione"/>
+<gentext key="history" text="Diario"/>
+<gentext key="refsynopsisdiv" text="Sinossi"/>
+<gentext key="revisionhistory" text="Diario delle revisioni"/>
+<gentext key="section" text="Sezione"/>
+<gentext key="see" text="Vd."/>
+<gentext key="seealso" text="Vd. Anche"/>
+<gentext key="seealso" text="Vd. anche"/>
+<gentext key="set" text="Raccolta"/>
+<gentext key="setindex" text="Indice Raccolta"/>
+<gentext key="sidebar" text="Nota a margine"/>
+<gentext key="step" text="Passaggio"/>
+<gentext key="tip" text="SUGGERIMENTO"/>
+<gentext key="table" text="Tabella"/>
+<gentext key="tip" text="Suggerimento"/>
+<gentext key="warning" text="ATTENZIONE"/>
+<gentext key="warning" text="Attenzione"/>
+<gentext key="appendix" text="appendice"/>
+<gentext key="chapter" text="capitolo"/>
+<gentext key="section" text="sezione"/>
+<gentext key="step" text="passaggio"/>
+
+<gentext key="TableofContents" text="Sommario"/>
+<gentext key="called" text="intitolato"/>
+<gentext key="in" text="in"/>
+<gentext key="by" text="di"/>
+<gentext key="Edited" text="A cura"/>
+<gentext key="Editedby" text="A cura di"/>
+<gentext key="and" text="e"/>
+<gentext key="Notes" text="Note"/>
+<gentext key="TableNotes" text="Note"/>
+<gentext key="nonexistantelement" text="elemento non esistente"/>
+<gentext key="the" text="il"/>
+<gentext key="Pgs" text="pp."/>
+<gentext key="unsupported" text="non supportato"/>
+<gentext key="xrefto" text="riferimento a"/>
+<gentext key="unexpectedelementname" text="Nome elemento inaspettato"/>
+<gentext key="Revisedby" text="Modificato da:"/>
+
+<gentext key="ListofTables" text="Lista delle Tabelle"/>
+<gentext key="ListofExamples" text="Lista degli Esempi"/>
+<gentext key="ListofFigures" text="Lista delle Figure"/>
+<gentext key="ListofEquations" text="Lista delle Equazioni"/>
+<gentext key="ListofUnknown" text="Lista Sconosciuti"/>
+
+<gentext key="nav-prev" text="Indietro"/>
+<gentext key="nav-prev-sibling" text="Salta indietro"/>
+<gentext key="nav-next-sibling" text="Salta avanti"/>
+<gentext key="nav-next" text="Avanti"/>
+<gentext key="nav-up" text="Risali"/>
+<gentext key="nav-home" text="Partenza"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/ja.xml b/tests/docbook/common/ja.xml
new file mode 100644
index 00000000..9180e8e1
--- /dev/null
+++ b/tests/docbook/common/ja.xml
@@ -0,0 +1,104 @@
+<localization language="ja">
+
+<!--
+;; Contributors:
+;; Karl Critz, kcritz@mathworks.com, contributed the original dbl1ja.ent file
+;; Ralf Schleitzer, ralf.schleitzer@ixos.de
+-->
+
+<gentext key="abstract" text="&#x6982;&#x8981;"/>
+<gentext key="appendix" text="&#x4ED8;&#x9332;"/>
+<gentext key="article" text="&#x9805;&#x76EE;"/>
+<gentext key="bibliography" text="&#x53C2;&#x8003;&#x6587;&#x732E;"/>
+<gentext key="book" text="&#x30D6;&#x30C3;&#x30AF;"/>
+<gentext key="caution" text="&#x6CE8;&#x610F;"/>
+<gentext key="caution" text="&#x6CE8;&#x610F;"/>
+<gentext key="chapter" text="&#x7AE0;"/>
+<gentext key="copyright" text="&#x88FD;&#x4F5C;&#x8457;&#x4F5C;"/>
+<gentext key="dedication" text="&#x8B1D;&#x8F9E;"/>
+<gentext key="edition" text="&#x7DE8;&#x96C6;"/>
+<gentext key="equation" text="&#x5F0F;"/>
+<gentext key="example" text="&#x4F8B;"/>
+<gentext key="figure" text="&#x56F3;"/>
+<gentext key="glosssee" text="&#x53C2;&#x8003;"/>
+<gentext key="glossseealso" text="&#x53C2;&#x8003;"/>
+<gentext key="glossary" text="&#x7528;&#x8A9E;&#x96C6;"/>
+<gentext key="important" text="&#x91CD;&#x8981;&#x9805;&#x76EE;"/>
+<gentext key="isbn" text="&#x4953;&#x424E;"/>
+<gentext key="important" text="&#x91CD;&#x8981;&#x9805;&#x76EE;"/>
+<gentext key="index" text="&#x76EE;&#x6B21;"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="&#x4175;&#x6469;&#x656E;&#x6365;"/>
+<gentext key="msglevel" text="&#x30EC;&#x30D9;&#x30EB;"/>
+<gentext key="msgorig" text="&#x30AA;&#x30EA;&#x30B8;&#x30CA;&#x30EB;"/>
+<gentext key="note" text="&#x6CE8;&#x610F;"/>
+<gentext key="note" text="&#x6CE8;&#x610F;"/>
+<gentext key="part" text="&#x30D1;&#x30FC;&#x30C8;"/>
+<gentext key="preface" text="&#x5E8F;&#x6587;"/>
+<gentext key="procedure" text="&#x624B;&#x9806;"/>
+<gentext key="published" text="&#x767A;&#x884C;"/>
+<gentext key="refname" text="&#x540D;&#x524D;"/>
+<gentext key="reference" text="&#x53C2;&#x8003;"/>
+<gentext key="revision" text="&#x6539;&#x8A02;"/>
+<gentext key="revhistory" text="&#x6539;&#x8A02;&#x5C65;&#x6B74;"/>
+<gentext key="section" text="&#x7BC0;"/>
+<gentext key="see" text="&#x53C2;&#x8003;"/>
+<gentext key="seealso" text="&#x53C2;&#x8003;"/>
+<gentext key="set" text="&#x8A2D;&#x5B9A;"/>
+<gentext key="setindex" text="&#x76EE;&#x6B21;&#x8A2D;&#x5B9A;"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="&#x30B9;&#x30C6;&#x30C3;&#x30D7;"/>
+<gentext key="tip" text="&#x30C6;&#x30A3;&#x30C3;&#x30D7;"/>
+<gentext key="table" text="&#x8868;"/>
+<gentext key="tip" text="&#x30C6;&#x30A3;&#x30C3;&#x30D7;"/>
+<gentext key="warning" text="&#x8B66;&#x544A;"/>
+<gentext key="warning" text="&#x8B66;&#x544A;"/>
+<gentext key="appendix" text="&#x4ED8;&#x9332;"/>
+<gentext key="chapter" text="&#x7AE0;"/>
+<gentext key="section" text="&#x7BC0;"/>
+<gentext key="sidebar" text="&#x30B5;&#x30A4;&#x30C9;&#x30D0;&#x30FC;"/>
+<gentext key="step" text="&#x30B9;&#x30C6;&#x30C3;&#x30D7;"/>
+<gentext key="seealso" text="&#x53C2;&#x8003;"/>
+
+<gentext key="TableofContents" text="&#x76EE;&#x6B21;"/>
+<gentext key="in" text="&#x65E5;&#x4ED8;"/>
+<gentext key="by" text="&#xFF1A;"/>
+<gentext key="Edited" text="&#x4F5C;&#x8005;"/>
+<gentext key="Editedby" text="26&#x4564;&#x6974;&#x3B20;&#x2662;&#x793B;"/>
+<gentext key="and" text="&#x3001;"/>
+<gentext key="Notes" text="&#x6CE8;&#x610F;"/>
+<gentext key="TableNotes" text="&#x6CE8;&#x610F;"/>
+<gentext key="nonexistantelement" text="&#x8981;&#x7D20;&#x304C;&#x5B58;&#x5728;&#x3057;&#x307E;&#x305B;&#x3093;"/>
+<gentext key="Pgs" text="&#x5067;&#x732E;"/>
+<gentext key="unsupported" text="&#x30B5;&#x30DD;&#x30FC;&#x30C8;&#x3057;&#x307E;&#x305B;&#x3093;"/>
+<gentext key="xrefto" text="78&#x7265;&#x6620;&#x746F;"/>
+<gentext key="unexpectedelementname" text="&#x4E0D;&#x660E;&#x306A;&#x8981;&#x7D20;&#x540D;"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="&#x8868;&#x30EA;&#x30B9;&#x30C8;"/>
+<gentext key="ListofExamples" text="&#x4F8B;&#x984C;&#x30EA;&#x30B9;&#x30C8;"/>
+<gentext key="ListofFigures" text="&#x0046;&#x0069;&#x0067;&#x0075;&#x0072;&#x0065;&#x30EA;&#x30B9;&#x30C8;"/>
+<gentext key="ListofEquations" text="&#x5F0F;&#x30EA;&#x30B9;&#x30C8;"/>
+<gentext key="ListofUnknown" text="&#x4E0D;&#x660E;&#x30EA;&#x30B9;&#x30C8;"/>
+
+<gentext key="nav-prev" text="&#x524D;&#x306E;&#x30DA;&#x30FC;&#x30B8;"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="&#x6B21;&#x306E;&#x30DA;&#x30FC;&#x30B8;"/>
+<gentext key="nav-up" text="Up"/>
+<gentext key="nav-home" text="Home"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/ko.xml b/tests/docbook/common/ko.xml
new file mode 100644
index 00000000..06dd7cb2
--- /dev/null
+++ b/tests/docbook/common/ko.xml
@@ -0,0 +1,96 @@
+<localization language="ko">
+
+<!-- ;; by Park Yong Joo (yongjoo@kldp.org) -->
+
+<gentext key="abstract" text="&#xCD08;&#xB85D;"/>
+<gentext key="answer" text="&#xB2F5;&#xBCC0;:"/>
+<gentext key="appendix" text="&#xBD80;&#xB85D;"/>
+<gentext key="article" text="&#xBB38;&#xC11C;"/>
+<gentext key="bibliography" text="&#xC11C;&#xC9C0;&#xC0AC;&#xD56D;"/>
+<gentext key="book" text="&#xCC45;"/>
+<gentext key="caution" text="&#xACBD;&#xACE0;!"/>
+<gentext key="chapter" text=""/>
+<gentext key="colophon" text="&#xD310;&#xAD8C;"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="&#xBC14;&#xCE58;&#xB294; &#xAE00;"/>
+<gentext key="edition" text="&#xAC1C;&#xC815;&#xD310;"/>
+<gentext key="equation" text="&#xC218;&#xC2DD;"/>
+<gentext key="example" text="&#xC608;"/>
+<gentext key="figure" text="&#xADF8;&#xB9BC;"/>
+<gentext key="glosssee" text="&#xC0B4;&#xD3B4;&#xBCFC; &#xB0B4;&#xC6A9;"/>
+<gentext key="glossseealso" text="&#xB2E4;&#xB978; &#xC0B4;&#xD3B4;&#xBCFC; &#xB0B4;&#xC6A9;"/>
+<gentext key="glossary" text="&#xC6A9;&#xC5B4;&#xD574;&#xC124;"/>
+<gentext key="important" text="[&#xC911;&#xC694;]"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="&#xC911;&#xC694;"/>
+<gentext key="index" text="&#xC0C9;&#xC778;"/>
+<gentext key="legalnotice" text="&#xBC95;&#xC801; &#xACF5;&#xC9C0;"/>
+<gentext key="msgaud" text="&#xB4E3;&#xAE30;"/>
+<gentext key="msglevel" text="&#xB808;&#xBCA8;"/>
+<gentext key="msgorig" text="&#xC6D0;&#xCC9C;"/>
+<gentext key="note" text="&#xCC38;&#xACE0;"/>
+<gentext key="part" text="&#xBD80;&#xBD84;"/>
+<gentext key="preface" text="&#xC11C;&#xBB38;"/>
+<gentext key="procedure" text="&#xC21C;&#xC11C;"/>
+<gentext key="published" text="&#xCD9C;&#xD310;"/>
+<gentext key="question" text="&#xB2F5;&#xBCC0;:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="&#xCC38;&#xACE0;&#xBB38;&#xD5CC;"/>
+<gentext key="refname" text="&#xC81C;&#xBAA9;"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="&#xC694;&#xC57D;"/>
+<gentext key="revision" text="&#xAD50;&#xC815;"/>
+<gentext key="revhistory" text="&#xAD50;&#xC815; &#xACFC;&#xC815;"/>
+<gentext key="section" text=""/>
+<gentext key="see" text="&#xC0B4;&#xD3B4;&#xBCFC; &#xB0B4;&#xC6A9;"/>
+<gentext key="seealso" text="[&#xC0B4;&#xD3B4;&#xBCFC; &#xB2E4;&#xB978; &#xB0B4;&#xC6A9;]"/>
+<gentext key="set" text="&#xC804;&#xC9D1;"/>
+<gentext key="setindex" text="&#xC804;&#xC9D1; &#xC0C9;&#xC778;"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="&#xB2E8;&#xACC4;"/>
+<gentext key="table" text="&#xD45C;"/>
+<gentext key="tip" text="&#xC791;&#xC740; &#xC815;&#xBCF4;"/>
+<gentext key="warning" text="&#xC8FC;&#xC758;"/>
+
+<gentext key="TableofContents" text="&#xCC28;&#xB840;"/>
+<gentext key="in" text="-"/>
+<gentext key="by" text="&#xAE00;&#xC4F4;&#xC774; : "/>
+<gentext key="Edited" text="&#xD3B8;&#xC9D1;"/>
+<gentext key="Editedby" text="&#xD3B8;&#xC9D1; : "/>
+<gentext key="and" text="&#xADF8;&#xB9AC;&#xACE0;"/>
+<gentext key="Notes" text="&#xC8FC;&#xC11D;"/>
+<gentext key="TableNotes" text="&#xCC38;&#xACE0;"/>
+<gentext key="nonexistantelement" text="&#xC874;&#xC7AC;&#xD558;&#xC9C0; &#xC54A;&#xB294; &#xAE30;&#xCD08;&#xC694;&#xC18C;&#xC785;&#xB2C8;&#xB2E4;"/>
+<gentext key="Pgs" text="Pgs."/>
+<gentext key="unsupported" text="&#xC9C0;&#xC6D0;&#xB418;&#xC9C0; &#xC54A;&#xC2B5;&#xB2C8;&#xB2E4;"/>
+<gentext key="xrefto" text="&#xC774; &#xACF3;&#xC744; &#xCC38;&#xC870;&#xD558;&#xC138;&#xC694; : "/>
+<gentext key="unexpectedelementname" text="&#xC54C; &#xC218; &#xC5C6;&#xB294; &#xAE30;&#xCD08;&#xC694;&#xC18C; &#xC774;&#xB984;&#xC785;&#xB2C8;&#xB2E4;"/>
+<gentext key="Revisedby" text="&#xAD50;&#xC815; : "/>
+
+<gentext key="ListofTables" text="&#xD45C; &#xBAA9;&#xB85D;"/>
+<gentext key="ListofExamples" text="&#xC608; &#xBAA9;&#xB85D;"/>
+<gentext key="ListofFigures" text="&#xADF8;&#xB9BC; &#xBAA9;&#xB85D;"/>
+<gentext key="ListofEquations" text="&#xC218;&#xC2DD; &#xBAA9;&#xB85D;"/>
+<gentext key="ListofUnknown" text="&#xAE30;&#xD0C0; &#xBAA9;&#xB85D;"/>
+
+<gentext key="nav-prev" text="Prev"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="Next"/>
+<gentext key="nav-up" text="Up"/>
+<gentext key="nav-home" text="Home"/>
+
+<dingbat key="startquote" text='&#8220;'/>
+<dingbat key="endquote" text='&#8221;'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/l10n.dtd b/tests/docbook/common/l10n.dtd
new file mode 100644
index 00000000..0336baf2
--- /dev/null
+++ b/tests/docbook/common/l10n.dtd
@@ -0,0 +1,25 @@
+<!ELEMENT internationalization (localization+)>
+
+<!ELEMENT localization (gentext|dingbat|xref)*>
+<!ATTLIST localization
+ language CDATA #REQUIRED
+>
+
+<!ELEMENT gentext EMPTY>
+<!ATTLIST gentext
+ key CDATA #REQUIRED
+ text CDATA #REQUIRED
+>
+
+<!ELEMENT dingbat EMPTY>
+<!ATTLIST dingbat
+ key CDATA #REQUIRED
+ text CDATA #REQUIRED
+>
+
+<!ELEMENT xref EMPTY>
+<!ATTLIST xref
+ element CDATA #REQUIRED
+ text CDATA #REQUIRED
+>
+
diff --git a/tests/docbook/common/l10n.xml b/tests/docbook/common/l10n.xml
new file mode 100644
index 00000000..a7ef90e9
--- /dev/null
+++ b/tests/docbook/common/l10n.xml
@@ -0,0 +1,59 @@
+<?xml version='1.0'?>
+<!DOCTYPE internationalization SYSTEM "l10n.dtd" [
+<!ENTITY ca SYSTEM "ca.xml">
+<!ENTITY cs SYSTEM "cs.xml">
+<!ENTITY da SYSTEM "da.xml">
+<!ENTITY de SYSTEM "de.xml">
+<!ENTITY el SYSTEM "el.xml">
+<!ENTITY en SYSTEM "en.xml">
+<!ENTITY es SYSTEM "es.xml">
+<!ENTITY et SYSTEM "et.xml">
+<!ENTITY fi SYSTEM "fi.xml">
+<!ENTITY fr SYSTEM "fr.xml">
+<!ENTITY hu SYSTEM "hu.xml">
+<!ENTITY id SYSTEM "id.xml">
+<!ENTITY it SYSTEM "it.xml">
+<!ENTITY ja SYSTEM "ja.xml">
+<!ENTITY ko SYSTEM "ko.xml">
+<!ENTITY nl SYSTEM "nl.xml">
+<!ENTITY no SYSTEM "no.xml">
+<!ENTITY pl SYSTEM "pl.xml">
+<!ENTITY pt SYSTEM "pt.xml">
+<!ENTITY pt_br SYSTEM "pt_br.xml">
+<!ENTITY ro SYSTEM "ro.xml">
+<!ENTITY ru SYSTEM "ru.xml">
+<!ENTITY sk SYSTEM "sk.xml">
+<!ENTITY sl SYSTEM "sl.xml">
+<!ENTITY sv SYSTEM "sv.xml">
+<!ENTITY zh_cn SYSTEM "zh_cn.xml">
+<!ENTITY zh_tw SYSTEM "zh_tw.xml">
+]>
+<internationalization>
+&ca;
+&cs;
+&da;
+&de;
+&el;
+&en;
+&es;
+&et;
+&fi;
+&fr;
+&hu;
+&id;
+&it;
+&ja;
+&ko;
+&nl;
+&no;
+&pl;
+&pt;
+&pt_br;
+&ro;
+&ru;
+&sk;
+&sl;
+&sv;
+&zh_cn;
+&zh_tw;
+</internationalization>
diff --git a/tests/docbook/common/l10n.xsl b/tests/docbook/common/l10n.xsl
new file mode 100644
index 00000000..f2f6fad1
--- /dev/null
+++ b/tests/docbook/common/l10n.xsl
@@ -0,0 +1,244 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ This file contains localization templates (for internationalization)
+ ******************************************************************** -->
+
+<xsl:param name="l10n.xml" select="document('../common/l10n.xml')"/>
+
+<xsl:param name="l10n.gentext.language" select="''"/>
+<xsl:param name="l10n.gentext.default.language" select="'en'"/>
+<xsl:param name="l10n.gentext.use.xref.language" select="false()"/>
+
+<xsl:template name="l10n.language">
+ <xsl:param name="target" select="."/>
+ <xsl:param name="xref-context" select="false()"/>
+
+ <xsl:variable name="language">
+ <xsl:choose>
+ <xsl:when test="$l10n.gentext.language != ''">
+ <xsl:value-of select="$l10n.gentext.language"/>
+ </xsl:when>
+
+ <xsl:when test="$xref-context or $l10n.gentext.use.xref.language">
+ <xsl:variable name="lang-attr"
+ select="($target/ancestor-or-self::*/@lang
+ |$target/ancestor-or-self::*/@xml:lang)[last()]"/>
+ <xsl:choose>
+ <xsl:when test="string($lang-attr) = ''">
+ <xsl:value-of select="$l10n.gentext.default.language"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$lang-attr"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:variable name="lang-attr"
+ select="(ancestor-or-self::*/@lang
+ |ancestor-or-self::*/@xml:lang)[last()]"/>
+ <xsl:choose>
+ <xsl:when test="string($lang-attr) = ''">
+ <xsl:value-of select="$l10n.gentext.default.language"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$lang-attr"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="contains($language,'-')">
+ <xsl:value-of select="substring-before($language,'-')"/>
+ <xsl:text>_</xsl:text>
+ <xsl:value-of select="substring-after($language,'-')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$language"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.xref.text">
+ <xsl:param name="element.name" select="name(.)"/>
+ <xsl:param name="default"></xsl:param>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+
+ <xsl:variable name="l10n.text">
+ <xsl:value-of select="($l10n.xml/internationalization/localization[@language=$lang]/xref[@element=$element.name])[1]/@text"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$l10n.text=''">
+ <xsl:choose>
+ <xsl:when test="$default=''">
+ <xsl:message>
+ <xsl:text>No "</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>" cross reference text for "</xsl:text>
+ <xsl:value-of select="$element.name"/>
+ <xsl:text>" exists and no default specified.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$l10n.text"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext">
+ <xsl:param name="key" select="local-name(.)"/>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+
+ <xsl:variable name="l10n.gentext"
+ select="($l10n.xml/internationalization/localization[@language=$lang]/gentext[@key=$key])[1]"/>
+
+ <xsl:variable name="l10n.name">
+ <xsl:value-of select="$l10n.gentext/@text"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="count($l10n.gentext)=0">
+ <xsl:message>
+ <xsl:text>No "</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>" localization of "</xsl:text>
+ <xsl:value-of select="$key"/>
+ <xsl:text>" exists; using "en".</xsl:text>
+ </xsl:message>
+
+ <xsl:value-of select="($l10n.xml/internationalization/localization[@language='en']/gentext[@key=$key])[1]/@text"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$l10n.name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.element.name">
+ <xsl:param name="element.name" select="name(.)"/>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="$element.name"/>
+ <xsl:with-param name="lang" select="$lang"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.space">
+ <xsl:text> </xsl:text>
+</xsl:template>
+
+<xsl:template name="gentext.edited.by">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">Editedby</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.by">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">by</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.dingbat">
+ <xsl:param name="dingbat">bullet</xsl:param>
+ <xsl:param name="lang">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:param>
+
+ <xsl:variable name="l10n.dingbat">
+ <xsl:value-of select="($l10n.xml/internationalization/localization[@language=$lang]/dingbat[@key=$dingbat])[1]/@text"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$l10n.dingbat=''">
+ <xsl:message>
+ <xsl:text>No "</xsl:text>
+ <xsl:value-of select="$lang"/>
+ <xsl:text>" localization of dingbat </xsl:text>
+ <xsl:value-of select="$dingbat"/>
+ <xsl:text> exists; using "en".</xsl:text>
+ </xsl:message>
+
+ <xsl:value-of select="($l10n.xml/internationalization/localization[@language='en']/dingbat[@key=$dingbat])[1]/@text"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$l10n.dingbat"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="gentext.startquote">
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">startquote</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.endquote">
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">endquote</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nestedstartquote">
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">nestedstartquote</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nestedendquote">
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">nestedendquote</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.prev">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">nav-prev</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.next">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">nav-next</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.home">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">nav-home</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="gentext.nav.up">
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">nav-up</xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/tests/docbook/common/nl.xml b/tests/docbook/common/nl.xml
new file mode 100644
index 00000000..56ead54d
--- /dev/null
+++ b/tests/docbook/common/nl.xml
@@ -0,0 +1,105 @@
+<localization language="nl">
+
+<!-- Updated by Frederik Fouvry, fouvry@essex.ac.uk -->
+<!-- Vincent Partington, vincent.partington@graddelt.com -->
+<!-- Updated by Erwin Bolwidt, ejb@tryllian.com, august 2000 -->
+
+<gentext key="abstract" text="Overzicht"/>
+<gentext key="answer" text="A:"/>
+<gentext key="appendix" text="Aanhangsel"/>
+<gentext key="article" text="Artikel"/>
+<gentext key="bibliography" text="Bibliografie"/>
+<gentext key="book" text="Boek"/>
+<gentext key="caution" text="Waarschuwing"/>
+<gentext key="chapter" text="Hoofdstuk"/>
+<gentext key="colophon" text="Colofon"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Opdracht"/>
+<gentext key="edition" text="Uitgave"/>
+<gentext key="equation" text="Vergelijking"/>
+<gentext key="example" text="Voorbeeld"/>
+<gentext key="figure" text="Figuur"/>
+<gentext key="glossary" text="Woordenlijst"/>
+<gentext key="glosssee" text="Zie"/>
+<gentext key="glossseealso" text="Zie ook"/>
+<gentext key="important" text="Belangrijk"/>
+<gentext key="index" text="Index"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="legalnotice" text="Juridische mededeling"/>
+<gentext key="msgaud" text="Doelgroep"/>
+<gentext key="msglevel" text="Ernst"/>
+<gentext key="msgorig" text="Afkomst"/>
+<gentext key="note" text="N.B."/>
+<gentext key="part" text="Deel"/>
+<gentext key="preface" text="Inleiding"/>
+<gentext key="procedure" text="Procedure"/>
+<gentext key="published" text="Gepubliceerd"/>
+<gentext key="pubdate" text="Gepubliceerd"/>
+<gentext key="question" text="V:"/>
+<gentext key="refentry" text="Referentielemma"/>
+<gentext key="reference" text="Referentie"/>
+<gentext key="refname" text="Referentienaam"/>
+<gentext key="refsection" text="Referentieparagraaf"/>
+<gentext key="refsynopsisdiv" text="Samenvatting"/>
+<gentext key="revhistory" text="Revisie verloop"/>
+<gentext key="revision" text="Revisie"/>
+<gentext key="section" text="Sectie"/>
+<gentext key="sect1" text="Sectie"/>
+<gentext key="sect2" text="Sectie"/>
+<gentext key="sect3" text="Sectie"/>
+<gentext key="sect4" text="Sectie"/>
+<gentext key="sect5" text="Sectie"/>
+<gentext key="see" text="Zie"/>
+<gentext key="seealso" text="Zie ook"/>
+<gentext key="set" text="Verzameling"/>
+<gentext key="setindex" text="Hoofdindex"/>
+<gentext key="sidebar" text="Excursie"/>
+<gentext key="step" text="Stap"/>
+<gentext key="table" text="Tabel"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="Waarschuwing"/>
+
+<gentext key="TableofContents" text="Inhoudsopgave"/>
+<gentext key="in" text="in"/>
+<gentext key="by" text="door"/>
+<gentext key="Edited" text="Redactie"/>
+<gentext key="Editedby" text="Redactie door"/>
+<gentext key="and" text="en"/>
+<gentext key="Notes" text="Opmerkingen"/>
+<gentext key="TableNotes" text="Opmerkingen"/>
+<gentext key="nonexistantelement" text="niet-bestaand element"/>
+<gentext key="Pgs" text="blz."/>
+<gentext key="unsupported" text="niet ondersteund"/>
+<gentext key="xrefto" text="verwijzing naar"/>
+<gentext key="unexpectedelementname" text="Onverwachte naam van element"/>
+<gentext key="Revisedby" text="Herzien door:"/>
+
+<gentext key="ListofTables" text="Lijst van Tabellen"/>
+<gentext key="ListofExamples" text="Lijst van Voorbeelden"/>
+<gentext key="ListofFigures" text="Lijst van Figuren"/>
+<gentext key="ListofEquations" text="Lijst van Vergelijkingen"/>
+<gentext key="ListofUnknown" text="Lijst van Onbekends"/>
+
+<gentext key="nav-prev" text="Vorige"/>
+<gentext key="nav-prev-sibling" text="Snel terug"/>
+<gentext key="nav-next-sibling" text="Snel vooruit"/>
+<gentext key="nav-next" text="Volgende"/>
+<gentext key="nav-up" text="Omhoog"/>
+<gentext key="nav-home" text="Begin"/>
+
+<gentext key="the section called" text="de sectie genaamd"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="bibliography" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/no.xml b/tests/docbook/common/no.xml
new file mode 100644
index 00000000..b3aba44f
--- /dev/null
+++ b/tests/docbook/common/no.xml
@@ -0,0 +1,97 @@
+<localization language="no">
+
+<gentext key="abstract" text="Abstract"/>
+<gentext key="appendix" text="Tillegg"/>
+<gentext key="article" text=""/>
+<gentext key="bibliography" text="Bibliografi"/>
+<gentext key="book" text=""/>
+<gentext key="caution" text="OBS"/>
+<gentext key="caution" text="Obs"/>
+<gentext key="chapter" text="Kapittel"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedikasjon"/>
+<gentext key="edition" text=""/>
+<gentext key="equation" text="Formel"/>
+<gentext key="example" text="Eksempel"/>
+<gentext key="figure" text="Figur"/>
+<gentext key="glosssee" text="Se"/>
+<gentext key="glossseealso" text="Se Ogs&#x00E5;"/>
+<gentext key="glossary" text="Ordliste"/>
+<gentext key="important" text="VIKTIG"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Viktig"/>
+<gentext key="index" text="Indeks"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="Publikum"/>
+<gentext key="msglevel" text="Niv&#x00E5;"/>
+<gentext key="msgorig" text="Opphav"/>
+<gentext key="note" text="NOTAT"/>
+<gentext key="note" text="Notat"/>
+<gentext key="part" text="Del"/>
+<gentext key="preface" text="Forord"/>
+<gentext key="procedure" text="Prosedyre"/>
+<gentext key="published" text=""/>
+<gentext key="refname" text="Navn"/>
+<gentext key="reference" text="Referanse"/>
+<gentext key="revision" text="Revisjon"/>
+<gentext key="revhistory" text="Revisjonshistorie"/>
+<gentext key="section" text="Seksjon"/>
+<gentext key="see" text="Se"/>
+<gentext key="seealso" text="Se Ogs&#x00E5;"/>
+<gentext key="set" text=""/>
+<gentext key="setindex" text="Indeks"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Steg"/>
+<gentext key="tip" text="TIPS"/>
+<gentext key="table" text="Tabell"/>
+<gentext key="tip" text="Tips"/>
+<gentext key="warning" text="ADVARSEL"/>
+<gentext key="warning" text="Advarsel"/>
+<gentext key="appendix" text="Tillegg"/>
+<gentext key="chapter" text="Kapittel"/>
+<gentext key="section" text="seksjon"/>
+<gentext key="step" text="steg"/>
+<gentext key="seealso" text="Se ogs&#x00E5;"/>
+
+<gentext key="TableofContents" text="Innholdsfortegnelse"/>
+<gentext key="in" text="i"/>
+<gentext key="by" text="av"/>
+<gentext key="Edited" text="Redigert"/>
+<gentext key="Editedby" text="Redigert av"/>
+<gentext key="and" text="og"/>
+<gentext key="Notes" text="Sluttnotater"/>
+<gentext key="TableNotes" text="Notater"/>
+<gentext key="nonexistantelement" text="ikke-eksisterende element"/>
+<gentext key="Pgs" text="Sdr."/>
+<gentext key="unsupported" text="ikke st&#x2298;ttet"/>
+<gentext key="xrefto" text="xref til"/>
+<gentext key="unexpectedelementname" text="UVENTET-ELEMENTNAVN"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Tabelloversikt"/>
+<gentext key="ListofExamples" text="Eksempeloversikt"/>
+<gentext key="ListofFigures" text="Figuroversikt"/>
+<gentext key="ListofEquations" text="Formeloversikt"/>
+<gentext key="ListofUnknown" text="???-oversikt"/>
+
+<gentext key="nav-prev" text="Forrige"/>
+<gentext key="nav-prev-sibling" text="Raskt Bakover"/>
+<gentext key="nav-next-sibling" text="Raskt Fremover"/>
+<gentext key="nav-next" text="Neste"/>
+<gentext key="nav-up" text="Opp"/>
+<gentext key="nav-home" text="Hjem"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/pl.xml b/tests/docbook/common/pl.xml
new file mode 100644
index 00000000..8582bbeb
--- /dev/null
+++ b/tests/docbook/common/pl.xml
@@ -0,0 +1,96 @@
+<localization language="pl">
+
+<gentext key="abstract" text="Abstrakt"/>
+<gentext key="appendix" text="Dodatek"/>
+<gentext key="article" text="Article"/>
+<gentext key="bibliography" text="Bibliografia"/>
+<gentext key="book" text="Book"/>
+<gentext key="caution" text="PRZYPADEK"/>
+<gentext key="caution" text="Przypadek"/>
+<gentext key="chapter" text="Rozdzia&#179;"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedykacja"/>
+<gentext key="edition" text="Wydanie"/>
+<gentext key="equation" text="R&#243;wnanie"/>
+<gentext key="example" text="Przyk&#179;ad"/>
+<gentext key="figure" text="Rysunek"/>
+<gentext key="glosssee" text="Patrz"/>
+<gentext key="glossseealso" text="Patrz te&#191;"/>
+<gentext key="glossary" text="Glossary"/>
+<gentext key="important" text="WA&#175;NE"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="WA&#175;NE"/>
+<gentext key="index" text="Indeks"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="Odbiorcy"/>
+<gentext key="msglevel" text="Poziom"/>
+<gentext key="msgorig" text="Nadawca"/>
+<gentext key="note" text="NOTATKA"/>
+<gentext key="note" text="Notatka"/>
+<gentext key="part" text="Cz&#234;&#182;&#230;"/>
+<gentext key="preface" text="Przedmowa"/>
+<gentext key="procedure" text="Procedura"/>
+<gentext key="published" text="Data wydania"/>
+<gentext key="refname" text="Nazwa"/>
+<gentext key="reference" text="Materia&#179;y &#188;r&#243;d&#179;owe"/>
+<gentext key="revision" text="Zmiana"/>
+<gentext key="revhistory" text="Historia zmian"/>
+<gentext key="section" text="Sekcja"/>
+<gentext key="see" text="Patrz"/>
+<gentext key="seealso" text="Patrz Te&#191;"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Indeks"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="krok"/>
+<gentext key="tip" text="Podpowied&#188;"/>
+<gentext key="table" text="Tabela"/>
+<gentext key="tip" text="Podpowied&#188;"/>
+<gentext key="warning" text="Ostrze&#191;enie"/>
+<gentext key="warning" text="Ostrze&#191;enie"/>
+<gentext key="appendix" text="dodatek"/>
+<gentext key="chapter" text="rozdzia&#179;"/>
+<gentext key="section" text="sekcja"/>
+<gentext key="step" text="krok"/>
+<gentext key="seealso" text="Patrz te&#191;"/>
+
+<gentext key="TableofContents" text="Spis tre&#182;ci"/>
+<gentext key="in" text="w"/>
+<gentext key="by" text=""/>
+<gentext key="Editedby" text="Redakcja: "/>
+<gentext key="and" text="i"/>
+<gentext key="Notes" text="Przypisy"/>
+<gentext key="TableNotes" text="Przypisy"/>
+<gentext key="nonexistantelement" text="nie istniej&#177;cy element"/>
+<gentext key="Pgs" text="stron"/>
+<gentext key="unsupported" text="nie wspierany"/>
+<gentext key="xrefto" text="xref to"/>
+<gentext key="unexpectedelementname" text="Unexpected element name"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Spis tabel"/>
+<gentext key="ListofExamples" text="Spis przyk&#179;ad&#243;w"/>
+<gentext key="ListofFigures" text="Spis rysunk&#243;w"/>
+<gentext key="ListofEquations" text="Spis r&#243;wna&#241;"/>
+<gentext key="ListofUnknown" text="Spis ???"/>
+
+<gentext key="nav-prev" text="Poprzedni"/>
+<gentext key="nav-prev-sibling" text="Poprzedni rozdzia&#179;"/>
+<gentext key="nav-next-sibling" text="Nast&#234;pny rozdzia&#179;"/>
+<gentext key="nav-next" text="Nast&#234;pny"/>
+<gentext key="nav-up" text="Pocz&#177;tek rozdzia&#179;u"/>
+<gentext key="nav-home" text="Spis tre&#182;ci"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/pt.xml b/tests/docbook/common/pt.xml
new file mode 100644
index 00000000..af0c22f4
--- /dev/null
+++ b/tests/docbook/common/pt.xml
@@ -0,0 +1,98 @@
+<localization language="pt">
+
+<gentext key="abstract" text="Resumo"/>
+<gentext key="appendix" text="Ap&#234;ndice"/>
+<gentext key="article" text="Article"/>
+<gentext key="bibliography" text="Bibliografia"/>
+<gentext key="book" text="Book"/>
+<gentext key="caution" text="CAUTELA"/>
+<gentext key="caution" text="Cautela"/>
+<gentext key="chapter" text="Cap&#237;tulo"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedicat&#243;ria"/>
+<gentext key="edition" text="Edi&#231;&#227;o"/>
+<gentext key="equation" text="Equa&#231;&#227;o"/>
+<gentext key="example" text="Exemplo"/>
+<gentext key="figure" text="Figura"/>
+<gentext key="glosssee" text="Ver"/>
+<gentext key="glossseealso" text="Ver Tamb&#233;m"/>
+<gentext key="glossary" text="Glossario"/>
+<gentext key="important" text="IMPORTANTE"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Importante"/>
+<gentext key="index" text="Index"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text="Audi&#234;ncia"/>
+<gentext key="msglevel" text="N&#237;vel"/>
+<gentext key="msgorig" text="Origem"/>
+<gentext key="note" text="NOTA"/>
+<gentext key="note" text="Nota"/>
+<gentext key="part" text="Parte"/>
+<gentext key="preface" text="Pref&#225;cio"/>
+<gentext key="procedure" text="Procedimento"/>
+<gentext key="pubdate" text="Editado"/>
+<gentext key="published" text="Published"/>
+<gentext key="refname" text="Nome"/>
+<gentext key="reference" text="Refer&#234;ncia"/>
+<gentext key="revision" text="Revis&#227;o"/>
+<gentext key="revhistory" text="Hitorial de Revis&#245;es"/>
+<gentext key="section" text="Sec&#231;&#227;o"/>
+<gentext key="see" text="Ver"/>
+<gentext key="seealso" text="Ver Tamb&#233;m"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text="Sidebar"/>
+<gentext key="step" text="Passo"/>
+<gentext key="tip" text="DICA"/>
+<gentext key="table" text="Tabela"/>
+<gentext key="tip" text="Dica"/>
+<gentext key="warning" text="ATEN&#199;&#195;O"/>
+<gentext key="warning" text="Aten&#231;&#227;o"/>
+<gentext key="appendix" text="ap&#234;ndice"/>
+<gentext key="chapter" text="cap&#237;tulo"/>
+<gentext key="section" text="sec&#231;&#227;o"/>
+<gentext key="step" text="passo"/>
+<gentext key="seealso" text="ver tamb&#233;m"/>
+
+<gentext key="TableofContents" text="&#205;ndice"/>
+<gentext key="in" text=""/>
+<gentext key="by" text="por"/>
+<gentext key="Edited" text="Editado"/>
+<gentext key="Editedby" text="Editado por"/>
+<gentext key="and" text="e"/>
+<gentext key="Notes" text="Notas"/>
+<gentext key="TableNotes" text="Notas"/>
+<gentext key="nonexistantelement" text="non-existant element"/>
+<gentext key="Pgs" text="P&#225;ginas"/>
+<gentext key="unsupported" text="unsupported"/>
+<gentext key="xrefto" text="xref to"/>
+<gentext key="unexpectedelementname" text="Unexpected element name"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Lista de Tabelas"/>
+<gentext key="ListofExamples" text="Lista de Exemplos"/>
+<gentext key="ListofFigures" text="Lista de Figuras"/>
+<gentext key="ListofEquations" text="Lista de Equa&#231;&#245;es"/>
+<gentext key="ListofUnknown" text="List of ???"/>
+
+<gentext key="nav-prev" text="Prev"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="Next"/>
+<gentext key="nav-up" text="Up"/>
+<gentext key="nav-home" text="Home"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/pt_br.xml b/tests/docbook/common/pt_br.xml
new file mode 100644
index 00000000..cf63d1eb
--- /dev/null
+++ b/tests/docbook/common/pt_br.xml
@@ -0,0 +1,98 @@
+<localization language="pt_br">
+
+<gentext key="abstract" text="Resumo"/>
+<gentext key="appendix" text="Ap&#234;ndice"/>
+<gentext key="article" text="Artigo"/>
+<gentext key="bibliography" text="Bibliografia"/>
+<gentext key="book" text="Livro"/>
+<gentext key="caution" text="CUIDADO"/>
+<gentext key="caution" text="Cuidado"/>
+<gentext key="chapter" text="Cap&#237;tulo"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedicat&#243;ria"/>
+<gentext key="edition" text="Edi&#231;&#227;o"/>
+<gentext key="equation" text="Equa&#231;&#227;o"/>
+<gentext key="example" text="Exemplo"/>
+<gentext key="figure" text="Figura"/>
+<gentext key="glosssee" text="Ver"/>
+<gentext key="glossseealso" text="Ver Tamb&#233;m"/>
+<gentext key="glossary" text="Gloss&#225;rio"/>
+<gentext key="important" text="IMPORTANTE"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Importante"/>
+<gentext key="index" text="&#205;ndice Remissivo"/>
+<gentext key="legalnotice" text="Nota Legal"/>
+<gentext key="msgaud" text="Audi&#234;ncia"/>
+<gentext key="msglevel" text="N&#237;vel"/>
+<gentext key="msgorig" text="Origem"/>
+<gentext key="note" text="NOTA"/>
+<gentext key="note" text="Nota"/>
+<gentext key="part" text="Parte"/>
+<gentext key="preface" text="Pref&#225;cio"/>
+<gentext key="procedure" text="Procedimento"/>
+<gentext key="pubdate" text="Data de Publica&#231;&#227;o"/>
+<gentext key="published" text="Publicado"/>
+<gentext key="refname" text="Nome"/>
+<gentext key="reference" text="Refer&#234;ncia"/>
+<gentext key="revision" text="Revis&#227;o"/>
+<gentext key="revhistory" text="Hist&#243;rico de Revis&#245;es"/>
+<gentext key="section" text="Sec&#231;&#227;o"/>
+<gentext key="see" text="Ver"/>
+<gentext key="seealso" text="Ver Tamb&#233;m"/>
+<gentext key="set" text="Conjunto"/>
+<gentext key="setindex" text="&#205;ndice do Conjunto"/>
+<gentext key="sidebar" text="Quadro Lateral"/>
+<gentext key="step" text="Passo"/>
+<gentext key="tip" text="DICA"/>
+<gentext key="table" text="Tabela"/>
+<gentext key="tip" text="Dica"/>
+<gentext key="warning" text="ATEN&#199;&#195;O"/>
+<gentext key="warning" text="Aten&#231;&#227;o"/>
+<gentext key="appendix" text="ap&#234;ndice"/>
+<gentext key="chapter" text="cap&#237;tulo"/>
+<gentext key="section" text="sec&#231;&#227;o"/>
+<gentext key="step" text="passo"/>
+<gentext key="seealso" text="ver tamb&#233;m"/>
+
+<gentext key="TableofContents" text="&#205;ndice"/>
+<gentext key="in" text=""/>
+<gentext key="by" text="por"/>
+<gentext key="Edited" text="Editado"/>
+<gentext key="Editedby" text="Editado por"/>
+<gentext key="Revisedby" text="Revised by: "/> <!-- en -->
+<gentext key="and" text="e"/>
+<gentext key="Notes" text="Notas"/>
+<gentext key="TableNotes" text="Notas"/>
+<gentext key="nonexistantelement" text="elemento inexistente"/>
+<gentext key="Pgs" text="P&#225;ginas"/>
+<gentext key="unsupported" text="n&#227;o suportado"/>
+<gentext key="xrefto" text="refer&#234;ncia para"/>
+<gentext key="unexpectedelementname" text="Nome de elemento inesperado"/>
+
+<gentext key="ListofTables" text="Lista de Tabelas"/>
+<gentext key="ListofExamples" text="Lista de Exemplos"/>
+<gentext key="ListofFigures" text="Lista de Figuras"/>
+<gentext key="ListofEquations" text="Lista de Equa&#231;&#245;es"/>
+<gentext key="ListofUnknown" text="Lista de ???"/>
+
+<gentext key="nav-prev" text="Anterior"/>
+<gentext key="nav-prev-sibling" text="In&#237;cio"/>
+<gentext key="nav-next-sibling" text="Fim"/>
+<gentext key="nav-next" text="Pr&#243;xima"/>
+<gentext key="nav-up" text="Acima"/>
+<gentext key="nav-home" text="Principal"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/ro.xml b/tests/docbook/common/ro.xml
new file mode 100644
index 00000000..a59ffd82
--- /dev/null
+++ b/tests/docbook/common/ro.xml
@@ -0,0 +1,104 @@
+<localization language="ro">
+
+<gentext key="abstract" text="Rezumat"/>
+<gentext key="appendix" text="Anexa"/>
+<gentext key="article" text="Articol"/>
+<gentext key="bibliography" text="Bibliografie"/>
+<gentext key="book" text="Carte"/>
+<gentext key="caution" text="ATEN&#222;IE"/>
+<gentext key="caution" text="Aten&#254;ie"/>
+<gentext key="chapter" text="Cap."/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedica&#254;ie"/>
+<gentext key="edition" text="Edi&#254;ie"/>
+<gentext key="equation" text="ecua&#254;ia"/>
+<gentext key="example" text="Exemplu"/>
+<gentext key="figure" text="Fig."/>
+<gentext key="glossary" text="Glosar"/>
+<gentext key="glosssee" text="Vezi"/>
+<gentext key="glossseealso" text="Vezi &#x015F;i"/>
+<gentext key="important" text="IMPORTANT"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Important"/>
+<gentext key="index" text="Index"/>
+<gentext key="legalnotice" text=""/>
+<gentext key="msgaud" text=""/>
+<gentext key="msglevel" text="Nivel"/>
+<gentext key="msgorig" text="Origine"/>
+<gentext key="note" text="NOT&#195;"/>
+<gentext key="note" text="Not&#227;"/>
+<gentext key="refname" text="Nume"/>
+<gentext key="note" text="Not&#227;"/>
+<gentext key="part" text="Parte"/>
+<gentext key="preface" text="Prefa&#254;&#227;"/>
+<gentext key="procedure" text="Procedur&#227;"/>
+<gentext key="published" text="Publicat"/>
+<gentext key="reference" text="Referin&#254;&#227;"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Referin&#254;&#227;"/>
+<gentext key="refname" text="Name"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="Rezumat"/>
+<gentext key="revision" text="Versiune"/>
+<gentext key="revhistory" text="Istoricul versiunilor"/>
+<gentext key="section" text="Sec&#254;iune"/>
+<gentext key="see" text="Vezi"/>
+<gentext key="seealso" text="Vezi &#x015F;i"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Index"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Opera&#254;ie"/>
+<gentext key="tip" text="INDICA&#222;IE"/>
+<gentext key="table" text="Tabel"/>
+<gentext key="tip" text="Indica&#254;ie"/>
+<gentext key="warning" text="AVERTISMENT"/>
+<gentext key="warning" text="Avertisment"/>
+<gentext key="appendix" text="anexa"/>
+<gentext key="sidebar" text="sidebar"/>
+<gentext key="chapter" text="cap."/>
+<gentext key="section" text="sec."/>
+<gentext key="step" text="opera&#254;iune"/>
+<gentext key="seealso" text="Vezi &#x015F;i"/>
+
+<gentext key="TableofContents" text="Cuprins"/>
+<gentext key="in" text="&#x00EE;n"/>
+<gentext key="by" text="de"/>
+<gentext key="Edited" text="Publicat"/>
+<gentext key="Editedby" text="Publicat de"/>
+<gentext key="and" text="&#x015F;i"/>
+<gentext key="Notes" text="Note"/>
+<gentext key="TableNotes" text="Remarci"/>
+<gentext key="nonexistantelement" text="element inexistent"/>
+<gentext key="Pgs" text="Pagini"/>
+<gentext key="unsupported" text="nerecunoscut de sisitem"/>
+<gentext key="xrefto" text="referin&#254;&#227; c&#227;tre"/>
+<gentext key="unexpectedelementname" text="Nume de element nea&#x015F;teptat"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="List&#227; de tabele"/>
+<gentext key="ListofExamples" text="List&#227; de exemple"/>
+<gentext key="ListofFigures" text="List&#227; de figuri"/>
+<gentext key="ListofEquations" text="List&#227; de ecua&#254;ii"/>
+<gentext key="ListofUnknown" text="List&#227; de necunoscute"/>
+
+<gentext key="nav-prev" text="Prev"/>
+<gentext key="nav-prev-sibling" text="Fast Backward"/>
+<gentext key="nav-next-sibling" text="Fast Forward"/>
+<gentext key="nav-next" text="Next"/>
+<gentext key="nav-up" text="Up"/>
+<gentext key="nav-home" text="Home"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/ru.xml b/tests/docbook/common/ru.xml
new file mode 100644
index 00000000..a097cd41
--- /dev/null
+++ b/tests/docbook/common/ru.xml
@@ -0,0 +1,113 @@
+<localization language="ru">
+
+<gentext key="abstract" text="&#x0410;&#x043D;&#x043D;&#x043E;&#x0442;&#x0430;&#x0446;&#x0438;&#x044F;"/>
+<gentext key="appendix" text="&#x041F;&#x0440;&#x0438;&#x043B;&#x043E;&#x0436;&#x0435;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="appendix.abr" text="&#x041F;&#x0440;&#x0438;&#x043B;."/>
+<gentext key="article" text="&#x0421;&#x0442;&#x0430;&#x0442;&#x044C;&#x044F;"/>
+<gentext key="audience" text="&#x0410;&#x0443;&#x0434;&#x0438;&#x0442;&#x043E;&#x0440;&#x0438;&#x044F;"/>
+<gentext key="bibliography" text="&#x041B;&#x0438;&#x0442;&#x0435;&#x0440;&#x0430;&#x0442;&#x0443;&#x0440;&#x0430;"/>
+<gentext key="book" text="&#x041A;&#x043D;&#x0438;&#x0433;&#x0430;"/>
+<gentext key="caution" text="&#x041F;&#x0420;&#x0415;&#x0414;&#x041E;&#x0421;&#x0422;&#x0415;&#x0420;&#x0415;&#x0416;&#x0415;&#x041D;&#x0418;&#x0415;"/>
+<gentext key="caution" text="&#x041F;&#x0440;&#x0435;&#x0434;&#x043E;&#x0441;&#x0442;&#x0435;&#x0440;&#x0435;&#x0436;&#x0435;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="chapter" text="&#x0413;&#x043B;&#x0430;&#x0432;&#x0430;"/>
+<gentext key="chapter.abr" text="&#x0413;&#x043B;."/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="&#x041F;&#x043E;&#x0441;&#x0432;&#x044F;&#x0449;&#x0435;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="edition" text="&#x0420;&#x0435;&#x0434;&#x0430;&#x043A;&#x0446;&#x0438;&#x044F;"/>
+<gentext key="equation" text="&#x0424;&#x043E;&#x0440;&#x043C;&#x0443;&#x043B;&#x0430;"/>
+<gentext key="equation.abr" text="&#x0424;."/>
+<gentext key="example" text="&#x041F;&#x0440;&#x0438;&#x043C;&#x0435;&#x0440;"/>
+<gentext key="example.abr" text="&#x041F;&#x0440;&#x0438;&#x043C;."/>
+<gentext key="figure" text="&#x0420;&#x0438;&#x0441;&#x0443;&#x043D;&#x043E;&#x043A;"/>
+<gentext key="figure.abr" text="&#x0420;&#x0438;&#x0441;."/>
+<gentext key="glossary" text="&#x0413;&#x043B;&#x043E;&#x0441;&#x0441;&#x0430;&#x0440;&#x0438;&#x0439;"/>
+<gentext key="important" text="&#x0412;&#x0410;&#x0416;&#x041D;&#x041E;"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="&#x0412;&#x0430;&#x0436;&#x043D;&#x043E;"/>
+<gentext key="index" text="&#x041F;&#x0440;&#x0435;&#x0434;&#x043C;&#x0435;&#x0442;&#x043D;&#x044B;&#x0439; &#x0443;&#x043A;&#x0430;&#x0437;&#x0430;&#x0442;&#x0435;&#x043B;&#x044C;"/>
+<gentext key="legalnotice" text="&#x0410;&#x0432;&#x0442;&#x043E;&#x0440;&#x0441;&#x043A;&#x0438;&#x0435; &#x043F;&#x0440;&#x0430;&#x0432;&#x0430;"/>
+<gentext key="level" text="&#x0423;&#x0440;&#x043E;&#x0432;&#x0435;&#x043D;&#x044C;"/>
+<gentext key="note" text="&#x0417;&#x0410;&#x041C;&#x0415;&#x0427;&#x0410;&#x041D;&#x0418;&#x0415;"/>
+<gentext key="name" text="&#x0418;&#x043C;&#x044F;"/>
+<gentext key="note" text="&#x0417;&#x0430;&#x043C;&#x0435;&#x0447;&#x0430;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="origin" text="&#x0418;&#x0441;&#x0442;&#x043E;&#x0447;&#x043D;&#x0438;&#x043A;"/>
+<gentext key="part" text="&#x0427;&#x0430;&#x0441;&#x0442;&#x044C;"/>
+<gentext key="part.abr" text="&#x0427;."/>
+<gentext key="preface" text="&#x041F;&#x0440;&#x0435;&#x0434;&#x0438;&#x0441;&#x043B;&#x043E;&#x0432;&#x0438;&#x0435;"/>
+<gentext key="procedure" text="&#x041F;&#x0440;&#x043E;&#x0446;&#x0435;&#x0434;&#x0443;&#x0440;&#x0430;"/>
+<gentext key="procedure.abr" text="&#x041F;&#x0440;&#x043E;&#x0446;."/>
+<gentext key="published" text="&#x041E;&#x043F;&#x0443;&#x0431;&#x043B;&#x0438;&#x043A;&#x043E;&#x0432;&#x0430;&#x043D;&#x043E;"/>
+<gentext key="reference" text="&#x0421;&#x0441;&#x044B;&#x043B;&#x043A;&#x0430;"/>
+<gentext key="revision" text="&#x0418;&#x0437;&#x0434;&#x0430;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="history" text="&#x0418;&#x0441;&#x0442;&#x043E;&#x0440;&#x0438;&#x044F;"/>
+<gentext key="revisionhistory" text="&#x0418;&#x0441;&#x0442;&#x043E;&#x0440;&#x0438;&#x044F; &#x043F;&#x0435;&#x0440;&#x0435;&#x0438;&#x0437;&#x0434;&#x0430;&#x043D;&#x0438;&#x044F;"/>
+<gentext key="section" text="&#x0420;&#x0430;&#x0437;&#x0434;&#x0435;&#x043B;"/>
+<gentext key="section.abr" text="&#x0420;&#x0430;&#x0437;&#x0434;."/>
+<gentext key="see" text="&#x0421;&#x043C;."/>
+<gentext key="seealso" text="&#x0421;&#x043C;. &#x0442;&#x0430;&#x043A;&#x0436;&#x0435;"/>
+<gentext key="seealso" text="&#x0421;&#x043C;. &#x0442;&#x0430;&#x043A;&#x0436;&#x0435;"/>
+<gentext key="set" text="&#x041F;&#x043E;&#x0434;&#x0431;&#x043E;&#x0440;&#x043A;&#x0430;"/>
+<gentext key="setindex" text="&#x0418;&#x043D;&#x0434;&#x0435;&#x043A;&#x0441; &#x043F;&#x043E;&#x0434;&#x0431;&#x043E;&#x0440;&#x043A;&#x0438;"/>
+<gentext key="sidebar" text="&#x0412;&#x044B;&#x0434;&#x0435;&#x043B;&#x0435;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="step" text="&#x0428;&#x0430;&#x0433;"/>
+<gentext key="tip" text="&#x041F;&#x041E;&#x0414;&#x0421;&#x041A;&#x0410;&#x0417;&#x041A;&#x0410;"/>
+<gentext key="table" text="&#x0422;&#x0430;&#x0431;&#x043B;&#x0438;&#x0446;&#x0430;"/>
+<gentext key="table.abr" text="&#x0422;&#x0430;&#x0431;&#x043B;."/>
+<gentext key="tip" text="&#x041F;&#x043E;&#x0434;&#x0441;&#x043A;&#x0430;&#x0437;&#x043A;&#x0430;"/>
+<gentext key="warning" text="&#x0412;&#x041D;&#x0418;&#x041C;&#x0410;&#x041D;&#x0418;&#x0415;"/>
+<gentext key="warning" text="&#x0412;&#x043D;&#x0438;&#x043C;&#x0430;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="appendix" text="&#x043F;&#x0440;&#x0438;&#x043B;&#x043E;&#x0436;&#x0435;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="chapter" text="&#x0433;&#x043B;&#x0430;&#x0432;&#x0430;"/>
+<gentext key="section" text="&#x0440;&#x0430;&#x0437;&#x0434;&#x0435;&#x043B;"/>
+<gentext key="step" text="&#x0448;&#x0430;&#x0433;"/>
+
+<gentext key="TableofContents" text="&#x0421;&#x043E;&#x0434;&#x0435;&#x0440;&#x0436;&#x0430;&#x043D;&#x0438;&#x0435;"/>
+<gentext key="called" text=""/>
+<gentext key="in" text="&#x0432;"/>
+<gentext key="by" text=""/>
+<gentext key="Edited" text="&#x041F;&#x043E;&#x0434; &#x0440;&#x0435;&#x0434;&#x0430;&#x043A;&#x0446;&#x0438;&#x0435;&#x0439;"/>
+<gentext key="Editedby" text="&#x041F;&#x043E;&#x0434; &#x0440;&#x0435;&#x0434;&#x0430;&#x043A;&#x0446;&#x0438;&#x0435;&#x0439;"/>
+<gentext key="and" text=""/>
+<!-- the list of author names, but "and" in such
+ lists of Russian books is not traditionally
+ used (I. Kouznetsov) -->
+<gentext key="Notes" text="&#x041F;&#x0440;&#x0438;&#x043C;&#x0435;&#x0447;&#x0430;&#x043D;&#x0438;&#x044F;"/>
+<gentext key="TableNotes" text="&#x041F;&#x0440;&#x0438;&#x043C;&#x0435;&#x0447;&#x0430;&#x043D;&#x0438;&#x044F;"/>
+
+<!-- Suggestion of I. Kouznetsov: Error messages are better in English -->
+
+<gentext key="nonexistantelement" text="non-existant element"/>
+<gentext key="the" text=""/>
+<gentext key="Pgs" text="&#x0421;&#x0442;&#x0440;."/>
+<gentext key="unsupported" text="unsupported"/>
+<gentext key="xrefto" text="xref to"/>
+<gentext key="unexpectedelementname" text="unexpected element name"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="&#x0421;&#x043F;&#x0438;&#x0441;&#x043E;&#x043A; &#x0442;&#x0430;&#x0431;&#x043B;&#x0438;&#x0446;"/>
+<gentext key="ListofExamples" text="&#x0421;&#x043F;&#x0438;&#x0441;&#x043E;&#x043A; &#x043F;&#x0440;&#x0438;&#x043C;&#x0435;&#x0440;&#x043E;&#x0432;"/>
+<gentext key="ListofFigures" text="&#x0421;&#x043F;&#x0438;&#x0441;&#x043E;&#x043A; &#x0438;&#x043B;&#x043B;&#x044E;&#x0441;&#x0442;&#x0440;&#x0430;&#x0446;&#x0438;&#x0439;"/>
+<gentext key="ListofEquations" text="&#x0421;&#x043F;&#x0438;&#x0441;&#x043E;&#x043A; &#x0444;&#x043E;&#x0440;&#x043C;&#x0443;&#x043B;"/>
+<gentext key="ListofUnknown" text="&#x041D;&#x0435;&#x043E;&#x043F;&#x0440;&#x0435;&#x0434;&#x0435;&#x043B;&#x0435;&#x043D;&#x043D;&#x044B;&#x0439; &#x0441;&#x043F;&#x0438;&#x0441;&#x043E;&#x043A;"/>
+
+<gentext key="nav-prev" text="&#x041F;&#x0440;&#x0435;&#x0434;."/>
+<gentext key="nav-prev-sibling" text="&#x041F;&#x0440;&#x0435;&#x0434;. &#x041F;&#x043E;&#x0434;&#x0440;&#x0430;&#x0437;&#x0434;&#x0435;&#x043B;"/>
+<gentext key="nav-next-sibling" text="&#x0421;&#x043B;&#x0435;&#x0434;. &#x041F;&#x043E;&#x0434;&#x0440;&#x0430;&#x0437;&#x0434;&#x0435;&#x043B;"/>
+<gentext key="nav-next" text="&#x0421;&#x043B;&#x0435;&#x0434;."/>
+<gentext key="nav-up" text="&#x0423;&#x0440;&#x043E;&#x0432;&#x0435;&#x043D;&#x044C; &#x0432;&#x044B;&#x0448;&#x0435;"/>
+<gentext key="nav-home" text="&#x043D;&#x0430;&#x0447;&#x0430;&#x043B;&#x043E;"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/sk.xml b/tests/docbook/common/sk.xml
new file mode 100644
index 00000000..0c2fbc85
--- /dev/null
+++ b/tests/docbook/common/sk.xml
@@ -0,0 +1,104 @@
+<localization language="sk">
+
+<gentext key="abstract" text="Obsah"/>
+<gentext key="answer" text="A:"/>
+<gentext key="appendix" text="Dodatok"/>
+<gentext key="article" text="&#x010C;l&#x00E1;nok"/>
+<gentext key="bibliography" text="Bibliografia"/>
+<gentext key="book" text="Kniha"/>
+<gentext key="caution" text="V&#x00DD;STRAHA"/>
+<gentext key="caution" text="V&#x00FD;straha"/>
+<gentext key="chapter" text="Kapitola"/>
+<gentext key="colophon" text="Tir&#x00E1;&#x017E;"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Venovanie"/>
+<gentext key="edition" text="Vydanie"/>
+<gentext key="equation" text="Rovnice"/>
+<gentext key="example" text="Pr&#x00ED;klad"/>
+<gentext key="figure" text="Obr&#x00E1;zok"/>
+<gentext key="glosssee" text="Pozri"/>
+<gentext key="glossseealso" text="Pozri tie&#x017E;"/>
+<gentext key="glossary" text="Slovn&#x00ED;k"/>
+<gentext key="important" text="D&#x00D4;LE&#x017D;IT&#x00C9;"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="D&#x00F4;le&#x017E;it&#x00E9;"/>
+<gentext key="index" text="Zoznam"/>
+<gentext key="legalnotice" text="Pr&#x00E1;vna pozn&#x00E1;mka"/>
+<gentext key="msgaud" text="Publikum"/>
+<gentext key="msglevel" text="&#x00DA;rove&#x0148;"/>
+<gentext key="msgorig" text="P&#x00F4;vod"/>
+<gentext key="note" text="POZN&#x00C1;MKA"/>
+<gentext key="note" text="Pozn&#x00E1;mka"/>
+<gentext key="part" text="&#x010C;as&#x0165;"/>
+<gentext key="preface" text="&#x00DA;vod"/>
+<gentext key="procedure" text="Postup"/>
+<gentext key="published" text="Vydan&#x00E9;"/>
+<gentext key="question" text="Q:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Odkaz"/>
+<gentext key="refname" text="Meno"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="Preh&#x013E;ad"/>
+<gentext key="revision" text="Rev&#x00ED;zia"/>
+<gentext key="revhistory" text="Preh&#x013E;ad rev&#x00ED;zi&#x00ED;"/>
+<gentext key="section" text="Oddiel"/>
+<gentext key="see" text="Pozri"/>
+<gentext key="seealso" text="Pozri tie&#x017E;"/>
+<gentext key="set" text="Nastavi&#x0165;"/>
+<gentext key="setindex" text="Nastavi&#x0165; index"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Krok"/>
+<gentext key="tip" text="TIP"/>
+<gentext key="table" text="Tabu&#x013E;ka"/>
+<gentext key="tip" text="Tip"/>
+<gentext key="warning" text="VAROVANIE"/>
+<gentext key="warning" text="Varovanie"/>
+<gentext key="appendix" text="dodatok"/>
+<gentext key="chapter" text="kapitola"/>
+<gentext key="section" text="oddiel"/>
+<gentext key="sidebar" text="bo&#x010D;n&#x00ED; li&#x0161;ta"/>
+<gentext key="step" text="krok"/>
+<gentext key="seealso" text="Pozri tie&#x017E;"/>
+
+<gentext key="TableofContents" text="Obsah"/>
+<gentext key="in" text="v"/>
+<gentext key="by" text=""/>
+<gentext key="Edited" text="Vydan&#x00E9;"/>
+<gentext key="Editedby" text="Vydan&#x00E9;"/>
+<gentext key="and" text="a"/>
+<gentext key="Notes" text="Pozn&#x00E1;mky"/>
+<gentext key="TableNotes" text="Pozn&#x00E1;mky"/>
+<gentext key="nonexistantelement" text="neexistuj&#x00FA;ci prvok"/>
+<gentext key="Pgs" text="Str."/>
+<gentext key="unsupported" text="nepodporovan&#x00FD;"/>
+<gentext key="xrefto" text="xref k"/>
+<gentext key="unexpectedelementname" text="Neo&#x010D;ak&#x00E1;van&#x00E9; meno prvku"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Zoznam tabuliek"/>
+<gentext key="ListofExamples" text="Zoznam pr&#x00ED;kladov"/>
+<gentext key="ListofFigures" text="Zoznam obr&#x00E1;zkov"/>
+<gentext key="ListofEquations" text="Zoznam rovn&#x00ED;c"/>
+<gentext key="ListofUnknown" text="Zoznam nezn&#x00E1;meho"/>
+
+<gentext key="nav-prev" text="Predch&#x00E1;dzaj&#x00FA;ci"/>
+<gentext key="nav-prev-sibling" text="R&#x00FD;chlo nazp&#x00E4;t"/>
+<gentext key="nav-next-sibling" text="R&#x00FD;chlo dopredu"/>
+<gentext key="nav-next" text="&#x010E;al&#x0161;&#x00ED;"/>
+<gentext key="nav-up" text="Hore"/>
+<gentext key="nav-home" text="Domov"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/sl.xml b/tests/docbook/common/sl.xml
new file mode 100644
index 00000000..fca0f5e3
--- /dev/null
+++ b/tests/docbook/common/sl.xml
@@ -0,0 +1,104 @@
+<localization language="sl">
+
+<gentext key="abstract" text="Povzetek"/>
+<gentext key="answer" text="O:"/>
+<gentext key="appendix" text="Dodatek"/>
+<gentext key="article" text="&#x010C;lanek"/>
+<gentext key="bibliography" text="Literatura"/>
+<gentext key="book" text="Knjiga"/>
+<gentext key="caution" text="OPOZORILO"/>
+<gentext key="caution" text="Opozorilo"/>
+<gentext key="chapter" text="Poglavje"/>
+<gentext key="colophon" text="Kolofon"/>
+<gentext key="copyright" text="Pravna za&#x0161;&#x010D;ita"/>
+<gentext key="dedication" text="Posvetilo"/>
+<gentext key="edition" text="Izdaja"/>
+<gentext key="equation" text="Ena&#x010D;ba"/>
+<gentext key="example" text="Primer"/>
+<gentext key="figure" text="Slika"/>
+<gentext key="glosssee" text="glej"/>
+<gentext key="glossseealso" text="glej tudi"/>
+<gentext key="glossary" text="Slovar&#x010D;ek"/>
+<gentext key="important" text="POMEMBNO"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Pomembno"/>
+<gentext key="index" text="Stvarno kazalo"/>
+<gentext key="legalnotice" text="Pravno sporo&#x010D;ilo"/>
+<gentext key="msgaud" text="Ob&#x010D;instvo"/>
+<gentext key="msglevel" text="Raven"/>
+<gentext key="msgorig" text="Izvor"/>
+<gentext key="note" text="OPOMBA"/>
+<gentext key="note" text="Opomba"/>
+<gentext key="part" text="Del"/>
+<gentext key="preface" text="Predgovor"/>
+<gentext key="procedure" text="Postopek"/>
+<gentext key="published" text="Izdano"/>
+<gentext key="question" text="V:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="Sklic"/>
+<gentext key="refname" text="Ime"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="Sinopsis"/>
+<gentext key="revision" text="Razli&#x010D;ica"/>
+<gentext key="revhistory" text="Zgodovina razli&#x010D;ic"/>
+<gentext key="section" text="Razdelek"/>
+<gentext key="see" text="glej"/>
+<gentext key="seealso" text="glej tudi"/>
+<gentext key="set" text="Postavi"/> <!-- ? -->
+<gentext key="setindex" text="Postavi stvarno kazalo"/> <!-- ? -->
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="Korak"/>
+<gentext key="tip" text="NAMIG"/>
+<gentext key="table" text="Tabela"/>
+<gentext key="tip" text="Namig"/>
+<gentext key="warning" text="POZOR"/>
+<gentext key="warning" text="Pozor"/>
+<gentext key="appendix" text="dodatek"/>
+<gentext key="chapter" text="poglavje"/>
+<gentext key="section" text="razdelek"/>
+<gentext key="sidebar" text="sidebar"/> <!-- ? -->
+<gentext key="step" text="korak"/>
+<gentext key="seealso" text="Glej tudi"/>
+
+<gentext key="TableofContents" text="Kazalo"/>
+<gentext key="in" text="v"/>
+<gentext key="by" text="od"/> <!-- ? -->
+<gentext key="Edited" text="Urejeno"/> <!-- ? -->
+<gentext key="Editedby" text="Urejeno od"/> <!-- ? -->
+<gentext key="and" text="in"/>
+<gentext key="Notes" text="Notes"/> <!-- ? -->
+<gentext key="TableNotes" text="Notes"/> <!-- ? -->
+<gentext key="nonexistantelement" text="neobstoje&#x010D;i element"/>
+<gentext key="Pgs" text="Str."/>
+<gentext key="unsupported" text="nepodprto"/>
+<gentext key="xrefto" text="xref na"/> <!-- ? -->
+<gentext key="unexpectedelementname" text="Nepri&#x010D;akovano ime elementa"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Seznam tabel"/>
+<gentext key="ListofExamples" text="Seznam primerov"/>
+<gentext key="ListofFigures" text="Seznam slik"/>
+<gentext key="ListofEquations" text="Seznam ena&#x010D;b"/>
+<gentext key="ListofUnknown" text="Seznam neznanih stvari"/> <!-- ? -->
+
+<gentext key="nav-prev" text="Nazaj"/>
+<gentext key="nav-prev-sibling" text="Hitro nazaj"/>
+<gentext key="nav-next-sibling" text="Hitro naprej"/>
+<gentext key="nav-next" text="Naprej"/>
+<gentext key="nav-up" text="Gor"/>
+<gentext key="nav-home" text="Domov"/>
+
+<dingbat key="startquote" text='&#8220;'/>
+<dingbat key="endquote" text='&#8221;'/>
+<dingbat key="nestedstartquote" text="`"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/sv.xml b/tests/docbook/common/sv.xml
new file mode 100644
index 00000000..27b45cce
--- /dev/null
+++ b/tests/docbook/common/sv.xml
@@ -0,0 +1,99 @@
+<localization language="sv">
+
+<gentext key="abstract" text="Abstrakt"/>
+<gentext key="appendix" text="Appendix"/>
+<gentext key="article" text="Artikel"/>
+<gentext key="bibliography" text="Bibliografi"/>
+<gentext key="book" text="Bok"/>
+<gentext key="caution" text="OBSERVERA"/>
+<gentext key="caution" text="Observera"/>
+<gentext key="chapter" text="Kapitel"/>
+<gentext key="copyright" text="Copyright"/>
+<gentext key="dedication" text="Dedikation"/>
+<gentext key="edition" text="Edition"/>
+<gentext key="equation" text="Ekvation"/>
+<gentext key="example" text="Exempel"/>
+<gentext key="figure" text="Figur"/>
+<gentext key="glosssee" text="Se"/>
+<gentext key="glossseealso" text="Se &#196;ven"/>
+<gentext key="glossary" text="Gloslista"/>
+<gentext key="important" text="VIKTIGT"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="important" text="Viktigt"/>
+<gentext key="index" text="Index"/>
+<gentext key="legalnotice" text="Legal Notice"/>
+<gentext key="msgaud" text="M&#229;lgrupp"/>
+<gentext key="msglevel" text="Niv&#229;"/>
+<gentext key="msgorig" text="Ursprung"/>
+<gentext key="note" text="NOT"/>
+<gentext key="note" text="Not"/>
+<gentext key="part" text="Del"/>
+<gentext key="preface" text="F&#246;retal"/>
+<gentext key="procedure" text="Procedur"/>
+<gentext key="published" text="Publicerad"/>
+<gentext key="refname" text="Namn"/>
+<gentext key="reference" text="Referens"/>
+<gentext key="revision" text="Revision"/>
+<gentext key="revhistory" text="Revisions Historik;"/>
+<gentext key="section" text="Sektion"/>
+<gentext key="see" text="Se"/>
+<gentext key="seealso" text="Se &#196;ven"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text="Sidebar"/>
+<gentext key="step" text="Steg"/>
+<gentext key="tip" text="TIPS"/>
+<gentext key="table" text="Tabell"/>
+<gentext key="tip" text="Tips"/>
+<gentext key="warning" text="VARNING"/>
+<gentext key="warning" text="Varning"/>
+<gentext key="appendix" text="appendix"/>
+<gentext key="chapter" text="kapitel"/>
+<gentext key="section" text="sektion"/>
+<gentext key="step" text="steg"/>
+<gentext key="seealso" text="Se &#228;ven"/>
+
+<gentext key="TableofContents" text="Inneh&#229;llsf&#246;rteckning"/>
+<gentext key="called" text="kallas"/>
+<gentext key="in" text="i"/>
+<gentext key="by" text="av"/>
+<gentext key="Edited" text="Utgiven"/>
+<gentext key="Editedby" text="Utgiven av"/>
+<gentext key="and" text="och"/>
+<gentext key="Notes" text="Noter"/>
+<gentext key="TableNotes" text="Noter"/>
+<gentext key="nonexistantelement" text="non-existant element"/>
+<gentext key="the" text=""/>
+<gentext key="Pgs" text="Sid."/>
+<gentext key="unsupported" text="unsupported"/>
+<gentext key="xrefto" text="xref till"/>
+<gentext key="unexpectedelementname" text="Unexpected element name"/>
+<gentext key="Revisedby" text="Revised by: "/>
+
+<gentext key="ListofTables" text="Tabellf&#246;rteckning"/>
+<gentext key="ListofExamples" text="Exempelf&#246;rteckning"/>
+<gentext key="ListofFigures" text="Figurf&#246;rteckning"/>
+<gentext key="ListofEquations" text="Ekvationsf&#246;rteckning"/>
+<gentext key="ListofUnknown" text="F&#246;rteckning av ok&#228;nda"/>
+
+<gentext key="nav-prev" text="F&#246;rutg&#229;ende"/>
+<gentext key="nav-prev-sibling" text="Snabbt framm&#229;t"/>
+<gentext key="nav-next-sibling" text="Snabbt bak&#229;t"/>
+<gentext key="nav-next" text="N&#228;sta"/>
+<gentext key="nav-up" text="Upp"/>
+<gentext key="nav-home" text="Hem"/>
+
+<dingbat key="startquote" text="&#x201C;"/>
+<dingbat key="endquote" text="&#x201D;"/>
+<dingbat key="nestedstartquote" text="&#x2018;"/>
+<dingbat key="nestedendquote" text="&#x2019;"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="bibliography" text="%t"/>
+<xref element="chapter" text="%g %n, %t"/>
+<xref element="dedication" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+<xref element="preface" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/zh_cn.xml b/tests/docbook/common/zh_cn.xml
new file mode 100644
index 00000000..ef373b4a
--- /dev/null
+++ b/tests/docbook/common/zh_cn.xml
@@ -0,0 +1,95 @@
+<localization language="zh_cn">
+
+<gentext key="abstract" text="&#x6458;&#x8981;"/>
+<gentext key="answer" text="&#x7B54;:"/>
+<gentext key="appendix" text="&#x9644;&#x5F55;"/>
+<gentext key="article" text="&#x6587;&#x7AE0;"/>
+<gentext key="bibliography" text="&#x53C2;&#x8003;&#x4E66;&#x76EE;"/>
+<gentext key="book" text="&#x4E66;&#x76EE;"/>
+<gentext key="caution" text="&#x6CE8;&#x610F;"/>
+<gentext key="chapter" text="&#x7AE0;"/>
+<gentext key="colophon" text="Colophon"/>
+<gentext key="copyright" text="&#x7248;&#x6743;"/>
+<gentext key="dedication" text="&#x5949;&#x732E;"/>
+<gentext key="edition" text="&#x7248;"/>
+<gentext key="equation" text="&#x65B9;&#x7A0B;"/>
+<gentext key="example" text="&#x4F8B;&#x5B50;"/>
+<gentext key="figure" text="&#x56FE;&#x5F62;"/>
+<gentext key="glossary" text="&#x672F;&#x8BED;&#x8868;"/>
+<gentext key="glosssee" text="&#x89C1;"/>
+<gentext key="glossseealso" text="&#x53E6;&#x89C1;"/>
+<gentext key="important" text="&#x91CD;&#x8981;"/>
+<gentext key="index" text="&#x7D22;&#x5F15;"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="legalnotice" text="&#x6CD5;&#x5F8B;&#x5E03;&#x544A;"/>
+<gentext key="msgaud" text="&#x8BFB;&#x8005;"/>
+<gentext key="msglevel" text="&#x96BE;&#x5EA6;"/>
+<gentext key="msgorig" text="&#x51FA;&#x5904;"/>
+<gentext key="note" text="&#x6CE8;"/>
+<gentext key="part" text="&#x90E8;&#x5206;"/>
+<gentext key="preface" text="&#x524D;&#x8A00;"/>
+<gentext key="procedure" text="&#x8FC7;&#x7A0B;"/>
+<gentext key="published" text="&#x51FA;&#x7248;"/>
+<gentext key="question" text="&#x95EE;:"/>
+<gentext key="refentry" text=""/>
+<gentext key="reference" text="&#x53C2;&#x8003;"/>
+<gentext key="refname" text="&#x540D;&#x5B57;"/>
+<gentext key="refsection" text=""/>
+<gentext key="refsynopsisdiv" text="&#x5927;&#x7EB2;"/>
+<gentext key="revhistory" text="&#x4FEE;&#x8BA2;&#x5386;&#x53F2;"/>
+<gentext key="revision" text="&#x4FEE;&#x8BA2;"/>
+<gentext key="section" text="&#x8282;"/>
+<gentext key="see" text="&#x89C1;"/>
+<gentext key="seealso" text="&#x53E6;&#x89C1;"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text="sidebar"/>
+<gentext key="step" text="&#x6B65;&#x9AA4;"/>
+<gentext key="table" text="&#x8868;&#x683C;"/>
+<gentext key="tip" text="&#x63D0;&#x793A;"/>
+<gentext key="tip" text="&#x63D0;&#x793A;"/>
+<gentext key="warning" text="&#x8B66;&#x544A;"/>
+
+<gentext key="TableofContents" text="&#x76EE;&#x5F55;"/>
+<gentext key="in" text="&#x5728;"/>
+<gentext key="by" text="&#x7531;"/>
+<gentext key="Edited" text="&#x7F16;&#x8F91;"/>
+<gentext key="Editedby" text="&#x7F16;&#x8F91;"/>
+<gentext key="and" text="&#x548C;"/>
+<gentext key="Notes" text="&#x6CE8;"/>
+<gentext key="TableNotes" text="&#x6CE8;"/>
+<gentext key="nonexistantelement" text="&#x4E0D;&#x5B58;&#x5728;&#x7684;&#x5143;&#x7D20;"/>
+<gentext key="Pgs" text="&#x9875;"/>
+<gentext key="unsupported" text="&#x4E0D;&#x652F;&#x6301;"/>
+<gentext key="xrefto" text="&#x53C2;&#x7167;"/>
+<gentext key="unexpectedelementname" text="&#x672A;&#x9884;&#x6599;&#x5230;&#x7684;&#x5143;&#x7D20;&#x540D;"/>
+<gentext key="Revisedby" text="&#x4FEE;&#x8BA2;"/>
+
+<gentext key="ListofTables" text="&#x8868;&#x683C;&#x5217;&#x8868;"/>
+<gentext key="ListofExamples" text="&#x793A;&#x4F8B;&#x5217;&#x8868;"/>
+<gentext key="ListofFigures" text="&#x56FE;&#x5F62;&#x5217;&#x8868;"/>
+<gentext key="ListofEquations" text="&#x65B9;&#x7A0B;&#x5F0F;&#x5217;&#x8868;"/>
+<gentext key="ListofUnknown" text="&#x5176;&#x4ED6;&#x5185;&#x5BB9;&#x5217;&#x8868;"/>
+
+<gentext key="nav-prev" text="&#x540E;&#x9000;"/>
+<gentext key="nav-prev-sibling" text="&#x5FEB;&#x901F;&#x540E;&#x9000;"/>
+<gentext key="nav-next-sibling" text="&#x5FEB;&#x901F;&#x524D;&#x8FDB;"/>
+<gentext key="nav-next" text="&#x524D;&#x8FDB;"/>
+<gentext key="nav-up" text="&#x4E0A;&#x4E00;&#x7EA7;"/>
+<gentext key="nav-home" text="&#x8D77;&#x70B9;"/>
+
+<dingbat key="startquote" text='"'/>
+<dingbat key="endquote" text='"'/>
+<dingbat key="nestedstartquote" text="'"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="appendix" text="%g %n"/>
+<xref element="chapter" text="%g %n"/>
+<xref element="dedication" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="bibliography" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/common/zh_tw.xml b/tests/docbook/common/zh_tw.xml
new file mode 100644
index 00000000..7168114f
--- /dev/null
+++ b/tests/docbook/common/zh_tw.xml
@@ -0,0 +1,98 @@
+<localization language="zh_tw">
+
+<gentext key="abstract" text="&#x6458;&#x8981;"/>
+<gentext key="answer" text="&#x7B54;&#xFF1A;"/>
+<gentext key="appendix" text="&#x9644;&#x9304;"/>
+<gentext key="article" text="&#x6587;&#x7AE0;"/>
+<gentext key="bibliography" text="&#x53C3;&#x8003;&#x6587;&#x737B;"/>
+<gentext key="book" text="&#x66F8;&#x76EE;"/>
+<gentext key="caution" text="&#x6CE8;&#x610F;"/>
+<gentext key="chapter" text="&#x7AE0;"/>
+<gentext key="colophon" text="&#x7248;&#x672C;&#x8A18;&#x9304;"/>
+<gentext key="copyright" text="&#x7248;&#x6B0A;"/>
+<gentext key="dedication" text="&#x5949;&#x737B;"/>
+<gentext key="edition" text="&#x7248;"/>
+<gentext key="equation" text="&#x65B9;&#x7A0B;&#x5F0F;"/>
+<gentext key="example" text="&#x7BC4;&#x4F8B;"/>
+<gentext key="figure" text="&#x5716;&#x5F62;"/>
+<gentext key="glossary" text="&#x5C0F;&#x8FAD;&#x5F59;"/>
+<gentext key="glosssee" text="&#x53C3;&#x898B;"/>
+<gentext key="glossseealso" text="&#x53E6;&#x53C3;&#x898B;"/>
+<gentext key="important" text="&#x91CD;&#x8981;"/>
+<gentext key="index" text="&#x7D22;&#x5F15;"/>
+<gentext key="isbn" text="ISBN"/>
+<gentext key="legalnotice" text="&#x6CD5;&#x5F8B;&#x8072;&#x660E;"/>
+<gentext key="msgaud" text="&#x8B80;&#x8005;"/>
+<gentext key="msglevel" text="&#x7A0B;&#x5EA6;"/>
+<gentext key="msgorig" text="&#x51FA;&#x8655;"/>
+<gentext key="note" text="&#x6CE8;"/>
+<gentext key="part" text="&#x90E8;"/>
+<gentext key="preface" text="&#x5E8F;&#x8A00;"/>
+<gentext key="procedure" text="&#x904E;&#x7A0B;"/>
+<gentext key="published" text="&#x51FA;&#x7248;"/>
+<gentext key="question" text="&#x554F;&#xFF1A;"/>
+<gentext key="refentry" text="&#x53C3;&#x7167;&#x9805;&#x76EE;"/>
+<gentext key="reference" text="&#x53C3;&#x8003;"/>
+<gentext key="refname" text="&#x53C3;&#x8003;&#x540D;"/>
+<gentext key="refsection" text="&#x53C3;&#x7167;&#x7AE0;&#x7BC0;"/>
+<gentext key="refsynopsisdiv" text="&#x5927;&#x7DB1;"/>
+<gentext key="revhistory" text="&#x4FEE;&#x8A02;&#x8A18;&#x9304;"/>
+<gentext key="revision" text="&#x4FEE;&#x8A02;"/>
+<gentext key="section" text="&#x7BC0;"/>
+<gentext key="see" text="&#x898B;"/>
+<gentext key="seealso" text="&#x53E6;&#x898B;"/>
+<gentext key="set" text="Set"/>
+<gentext key="setindex" text="Set Index"/>
+<gentext key="sidebar" text=""/>
+<gentext key="step" text="&#x6B65;&#x9A5F;"/>
+<gentext key="table" text="&#x8868;&#x683C;"/>
+<gentext key="tip" text="&#x63D0;&#x793A;"/>
+<gentext key="tip" text="&#x63D0;&#x793A;"/>
+<gentext key="warning" text="&#x8B66;&#x544A;"/>
+
+<gentext key="TableofContents"
+ text="&#x5167;&#x5BB9;&#x76EE;&#x9304;"/>
+<gentext key="in" text="&#x5728;"/>
+<gentext key="by" text="&#x7531;"/>
+<gentext key="Edited" text="&#x7DE8;&#x8F2F;"/>
+<gentext key="Editedby" text="&#x7DE8;&#x8F2F;"/>
+<gentext key="and" text="&#x4E14;"/>
+<gentext key="Notes" text="&#x6CE8;"/>
+<gentext key="TableNotes" text="&#x6CE8;&#x91CB;"/>
+<gentext key="nonexistantelement"
+ text="&#x4E0D;&#x5B58;&#x5728;&#x7684;&#x5143;&#x7D20;"/>
+<gentext key="Pgs" text="&#x9801;"/>
+<gentext key="unsupported" text="&#x672A;&#x652F;&#x63F4;"/>
+<gentext key="xrefto" text="&#x53C3;&#x7167;"/>
+<gentext key="unexpectedelementname"
+ text="&#x975E;&#x9810;&#x671F;&#x7684;&#x5143;&#x7D20;&#x540D;"/>
+<gentext key="Revisedby" text="&#x4FEE;&#x8A02;"/>
+
+<gentext key="ListofTables" text="&#x9644;&#x8868;&#x76EE;&#x9304;"/>
+<gentext key="ListofExamples" text="&#x7BC4;&#x4F8B;&#x76EE;&#x9304;"/>
+<gentext key="ListofFigures" text="&#x9644;&#x5716;&#x76EE;&#x9304;"/>
+<gentext key="ListofEquations" text="&#x516C;&#x5F0F;&#x76EE;&#x9304;"/>
+<gentext key="ListofUnknown" text="&#x5176;&#x5B83;&#x5167;&#x5BB9;&#x76EE;&#x9304;"/>
+
+<gentext key="nav-prev" text="&#x524D;&#x4E00;&#x9801;"/>
+<gentext key="nav-prev-sibling" text="&#x5FEB;&#x901F;&#x5411;&#x524D;"/>
+<gentext key="nav-next-sibling" text="&#x5FEB;&#x901F;&#x5411;&#x5F8C;"/>
+<gentext key="nav-next" text="&#x4E0B;&#x4E00;&#x9801;"/>
+<gentext key="nav-up" text="&#x4E0A;&#x4E00;&#x5C64;"/>
+<gentext key="nav-home" text="&#x5167;&#x5BB9;"/>
+
+<dingbat key="startquote" text="&quot;"/>
+<dingbat key="endquote" text="&quot;"/>
+<dingbat key="nestedstartquote" text="'"/>
+<dingbat key="nestedendquote" text="'"/>
+<dingbat key="bullet" text="&#2022;"/>
+
+<xref element="appendix" text="%g %n"/>
+<xref element="chapter" text="%g %n"/>
+<xref element="dedication" text="%t"/>
+<xref element="preface" text="%t"/>
+<xref element="bibliography" text="%t"/>
+<xref element="glossary" text="%t"/>
+<xref element="index" text="%t"/>
+
+</localization>
diff --git a/tests/docbook/dtd/3.1.7/COPYRIGHT b/tests/docbook/dtd/3.1.7/COPYRIGHT
new file mode 100644
index 00000000..166cf74f
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/COPYRIGHT
@@ -0,0 +1,27 @@
+DocBk XML V3.1.7 DTD
+Copyright (C) 1998, 1999 Norman Walsh
+http://nwalsh.com/docbook/xml/
+
+You may distribute this DTD under the same terms as DocBook.
+
+Please direct all questions and comments about this DTD to
+Norman Walsh, <ndw@nwalsh.com>.
+
+This DTD is based on the DocBook V3.1 DTD from OASIS:
+
+ [DocBook is] Copyright 1992, 1993, 1994, 1995, 1996, 1998,
+ 1999 HaL Computer Systems, Inc., O'Reilly & Associates, Inc.,
+ ArborText, Inc., Fujitsu Software Corporation, and the
+ Organization for the Advancement of Structured Information
+ Standards (OASIS).
+
+ Permission to use, copy, modify and distribute the DocBook
+ DTD and its accompanying documentation for any purpose and
+ without fee is hereby granted in perpetuity, provided that
+ the above copyright notice and this paragraph appear in all
+ copies. The copyright holders make no representation about
+ the suitability of the DTD for any purpose. It is provided
+ "as is" without expressed or implied warranty.
+
+For more information about the DocBook DTD, see
+http://www.oasis-open.org/docbook/
diff --git a/tests/docbook/dtd/3.1.7/ChangeLog b/tests/docbook/dtd/3.1.7/ChangeLog
new file mode 100644
index 00000000..c5c68a71
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ChangeLog
@@ -0,0 +1,249 @@
+1999-11-10 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, test.xml:
+ Updated version numbers
+
+ * VERSION: Version 3.1.7 released
+
+ * dbpoolx.mod: Finally wrote a program to compare the SGML and XML DTDs. Oh my!
+ Added informalfigure to a number of contexts where it was missing
+ Changed the format attribute on graphics back into a notation list
+ (why had I made it CDATA?)
+ Tweaked the parameterization of table attributes, this restores the 'role'
+ attribute to 'entry', 'row', and perhaps a few other places where it
+ was missing.
+ Added journal, series, set, and manuscript as values for the pubwork
+ attribute on citetitle
+ Removed extraneous '?' from the declaration for indexterm. Indexterms
+ are not allowed to be empty!
+
+1999-10-19 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, test.xml:
+ Updated version numbers
+
+ * VERSION: Version 3.1.6 released
+
+ * dbhierx.mod, dbpoolx.mod: Added missing mediaobject/inlinemediaobject elements
+
+ * soextblx.dtd: Official OASIS table model: TR9901:1999
+
+1999-08-26 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, soextblx.dtd, test.xml:
+ Updated version number
+
+ * VERSION: Version 3.1.5 released
+
+ * dbpoolx.mod: Fixed a number of erroneous comments
+ Added constant and varname to tech.char.class
+ Changed "VarName" to "varname"
+ Changed %argpagenums to %artpagenums
+
+1999-06-04 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, soextblx.dtd, test.xml:
+ Updated version numbers
+
+ * VERSION: Version 3.1.4 released
+
+ * dbhierx.mod: Made artheader optional
+
+ * dbpoolx.mod: Fix common attribute problem on informaltable a different way
+
+ * dbpoolx.mod: The common.attrib PE was missing from informaltable
+
+ * dbpoolx.mod: Reformulated parameterization of table attributes (again) to get it right.
+
+ * dbtblcals.dtd, dbtblxchg.dtd, tblcals.xml, tblxchg.xml:
+ New file.
+
+1999-03-31 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, soextblx.dtd, test.xml:
+ Changed version number to 3.1.3
+
+ * VERSION: Version 3.1.3 released
+
+ * dbhierx.mod, dbpoolx.mod, docbookx.dtd: Added param. ent. decls. to make IE5 happy.
+
+1999-03-19 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, soextblx.dtd, test.xml:
+ Updated version number to 3.1.2
+
+ * VERSION: Version 3.1.2 released
+
+ * dbpoolx.mod: Changed my mind, CALS has to be the default table model
+
+1999-03-17 Norman Walsh <ndw@nwalsh.com>
+
+ * README: Updated manifest
+
+ * VERSION: Version 3.1.1 released
+
+ This release introduces several significant changes:
+
+ - An XML version of the OASIS Exchange Table Model
+ is used in favor of the full CALS model. This can
+ be "toggled" back with a single parameter entity
+ change
+
+ - The version number has changed dramatically to make
+ it clear that it tracks 3.1. (Version 1.3 of the
+ XML version of DocBook 3.1 was just too confusing!)
+
+ - I added parameter entities to include/exclude the
+ dbcentx.mod and dbnotnx.mod modules all at once
+
+ - Fixed a few small content model bugs
+
+ * docbookx.dtd: Added marked sections around dbnotn and dbcent modules
+
+1999-03-16 Norman Walsh <ndw@nwalsh.com>
+
+ * dbpoolx.mod: In the XML exchange table model case, the attlist for informaltable was wrong
+
+1999-03-11 Norman Walsh <ndw@nwalsh.com>
+
+ * calstblx.dtd: Removed unused PEs
+
+ * dbpoolx.mod: Added switch for exchange or CALS table model; made exchange the default
+
+ * soextblx.dtd: New file.
+
+1999-03-06 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, calstblx.dtd, dbgenent.ent, docbookx.dtd:
+ Changed version number to 3.1.1
+
+ * changes: Replaced by ChangeLog
+
+ * db3xml.dtd, docbookx.dtd: Renamed db3xml.dtd to docbookx.dtd
+
+ * dbcentx.mod: Fixed broken public identifiers. Changed version number to 3.1.1
+
+ * dbhierx.mod: Fixed bug: added section to %bookcomponent.content;
+ Changed version number to 3.1.1.
+
+ * dbnotnx.mod: Changed the PUBLIC identifiers that were just a single word (like
+ "DITROFF") back into SYSTEM identifiers. I don't know why I made
+ the PUBLIC in the first place.
+ Changed version number to 3.1.1
+
+ * dbpoolx.mod: Fixed bug: added qandaset to %compound.class;
+ Fixed bug: added citetitle to %bibliocomponent.mix;
+ Changed version to 3.1.1
+
+ * test.xml: Changed version number to 3.1.1; changed system identifier
+
+1999-01-31 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, calstblx.dtd, db3xml.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, test.xml:
+ Converted version to 1.3
+
+ * VERSION: Version 1.3 released.
+ Based on DocBook 3.1.
+ Public identifiers now contain the string "DocBk XML" instead of
+ just "DocBk30 XML".
+
+ * db3xml.dtd: Added dbnotnx.mod; added notations back into the DTD. Notations don't
+ require system identifiers, so the public IDs will be just fine.
+
+ Moved ISO character entity declarations into dbcentx.mod. Added
+ Unicode versions of the entity sets to the distribution.
+
+ * dbcentx.mod, dbnotnx.mod: New file.
+
+ * dbhierx.mod: Converted to DocBook 3.1:
+
+ - Add 'faq' as a class value to Article
+ - Cleaned up, and significantly loosened, the content model of Book.
+ - Added Colophon to Book.
+ - Add LinkEnd to LoTEntry.
+ - Sets are no longer required to contain at least two books.
+ - Added recursive Divisions.
+ - Added Subtitle to divisions (Set, Book, etc.), components, and
+ sections. It may occur outside of *Info elements.
+ - Added Title, TitleAbbrev, and SubTitle outside ArtHeader; ArtHeader
+ is now optional.
+ - Parameterized element and attribute declarations separately.
+
+ * dbpoolx.mod: Converted to DocBook 3.1:
+
+ - Added optional title to MsgSet
+ - Added inline Constant for marking up constants and limits
+ - Added inline VarName for marking up variable names
+ - Added several elements to the content model of ArtHeader that were
+ accidentally left out in 3.0: Graphic, LegalNotice, ModeSpec,
+ SubjectSet, KeywordSet, and ITermSet.
+ - Added pagewide attribute to Figure, added InformalFigure
+ - Added person name elements to Address.
+ - Added Class attribute to LiteralLayout indicating Monospaced or
+ Normal font.
+ - Added ULink to docinfo.char.mix.
+ - Added RevHistory to GlossEntry.
+ - Added CmdLength attribute to CmdSynopsis to indicate Command length
+ - Added QAndASet, MediaObject, and InlineMediaObject.
+ - Parameterized element and attribute declarations separately.
+
+1999-01-30 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT: Moved install info to README, updated year & URL
+
+ * README: Changed version, added manifest and installation instructions, updated year
+
+ * VERSION: Updated version
+
+ * calstblx.dtd: Changed version number
+
+ * db3xml.dtd, dbgenent.ent, dbhierx.mod, dbpoolx.mod: Changed version
+
+ * test.xml: Added glossary test, fixed indexterm example
+
+1999-01-13 Norman Walsh <ndw@nwalsh.com>
+
+ * dbhierx.mod: Added indexterms to RefEntry and RefMeta
+
+ * dbpoolx.mod: Added indexterm to glossentry between glossterm and glossdef.
+
+1998-12-09 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, calstblx.dtd, db3xml.dtd, dbgenent.ent, dbhierx.mod, dbpoolx.mod, test.xml:
+ Changed embedded version number to 1.1
+
+ * VERSION: Version 1.1 released.
+
+ * VERSION: New file.
+
+ * calstblx.dtd: Ripped out a whole bunch of comments. In XML, parameter
+ entities are expanded in comments and that made some of the
+ comments bogus.
+
+ * dbhierx.mod: Added indexterms to refinline.char.mix.
+
+ * dbpoolx.mod: Added indexterm and beginpage to example.mix, highlights.mix,
+ admon.mix, figure.mix, glossdef.mix, legalnotice.mix.
+
+ Allow indexterms between title and para in formalpara.
+
+ Added indexterms to tbl.table.mdl, between title and the rest of
+ the content of table.
+
+ Removed a few extraneous parameter entities (exclusions in
+ tables, mostly).
+
+ * test.xml: Change systemid; added test indexterms
+
+1998-09-16 Norman Walsh <ndw@nwalsh.com>
+
+ * db3xml.dtd: Changed declaration of linespecific; former declaration
+ was not a valid URI
+
+ * dbpoolx.mod: Removed duplicate declaration of local.keywordset.attrib
+
+1998-09-10 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, calstblx.dtd, changes, db3xml.dtd, dbgenent.ent, dbhierx.mod, dbpoolx.mod, test.xml:
+ New file.
+
diff --git a/tests/docbook/dtd/3.1.7/Makefile.am b/tests/docbook/dtd/3.1.7/Makefile.am
new file mode 100644
index 00000000..7b6baf3c
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/Makefile.am
@@ -0,0 +1,12 @@
+## Process this file with automake to produce Makefile.in
+
+EXTRA_DIST = \
+ COPYRIGHT ChangeLog README VERSION calstblx.dtd dbcentx.mod \
+ dbgenent.ent dbhierx.mod dbnotnx.mod dbpoolx.mod dbtblcals.dtd \
+ dbtblxchg.dtd docbookx.dtd soextblx.dtd tblcals.xml tblxchg.xml \
+ test.xml \
+ ent/iso-amsa.ent ent/iso-amsb.ent ent/iso-amsc.ent ent/iso-amsn.ent \
+ ent/iso-amso.ent ent/iso-amsr.ent ent/iso-box.ent ent/iso-cyr1.ent \
+ ent/iso-cyr2.ent ent/iso-dia.ent ent/iso-grk1.ent ent/iso-grk2.ent \
+ ent/iso-grk3.ent ent/iso-grk4.ent ent/iso-lat1.ent ent/iso-lat2.ent \
+ ent/iso-num.ent ent/iso-pub.ent ent/iso-tech.ent
diff --git a/tests/docbook/dtd/3.1.7/README b/tests/docbook/dtd/3.1.7/README
new file mode 100644
index 00000000..ff486a06
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/README
@@ -0,0 +1,76 @@
+README for the DocBk XML V3.1.7 DTD
+
+This is an XML version of the DocBook V3.1 DTD
+
+Manifest
+--------
+
+README - This readme file
+VERSION - The version number
+COPYRIGHT - Copyright statement
+ChangeLog - Summary of changes from previous versions
+calstblx.dtd - An XML version of the CALS Table Model DTD
+dbcentx.mod - Character entities
+dbgenent.ent - General entities
+dbhierx.mod - The XML version of the hierarchy module
+dbnotnx.mod - Notations
+dbpoolx.mod - The XML version of the information pool module
+docbookx.dtd - The XML version of the DocBook 3.1 DTD
+soextblx.dtd - An XML version of the OASIS Exchange Table model
+test.xml - A test document
+ent/ - XML versions of the ISO entity sets
+
+Installation
+------------
+
+Place the files in this distribution somewhere on your machine. Adjust
+your catalog(s) if appropriate (XML tools frequently do not support
+catalogs, so this may be irrelevant for you).
+
+Please use the following formal public identifier to identify this DTD:
+
+"-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+
+For example, if your document's top-level element is <book>, and
+you are using DocBk XML directly, use the FPI in the DOCTYPE
+declaration:
+
+<!DOCTYPE book PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "/system/identifier/on/your/system/db3xml.dtd" [
+...
+]>
+
+Or, if you have a higher-level driver file that customizes DocBk XML,
+use the FPI in the parameter entity declaration:
+
+<!ENTITY % DocBkXML PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "/system/identifier/on/your/system/db3xml.dtd">
+%DocBkXML;
+
+
+Copyright
+---------
+
+Copyright (C) 1998, 1999 Norman Walsh
+
+See COPYRIGHT for more information
+
+Warranty
+--------
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
+CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Contacting the Author
+---------------------
+
+This DTD is maintained by Norman Walsh, <ndw@nwalsh.com>.
+
+The best way to reach norm is by email. You will find additional
+contact information at http://nwalsh.com/docbook/xml/
diff --git a/tests/docbook/dtd/3.1.7/VERSION b/tests/docbook/dtd/3.1.7/VERSION
new file mode 100644
index 00000000..7ffe389a
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/VERSION
@@ -0,0 +1 @@
+3.1.7
diff --git a/tests/docbook/dtd/3.1.7/calstblx.dtd b/tests/docbook/dtd/3.1.7/calstblx.dtd
new file mode 100644
index 00000000..ce6f7607
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/calstblx.dtd
@@ -0,0 +1,176 @@
+<!-- ====================================================================== -->
+<!-- CALS Table Model XML V3.1.7
+ Part of the DocBk XML V3.1.7 DTD
+ http://nwalsh.com/docbook/xml/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+
+ This DTD is based on the CALS Table Model
+ PUBLIC "-//USA-DOD//DTD Table Model 951010//EN"
+ -->
+<!-- ====================================================================== -->
+
+<!-- These definitions are not directly related to the table model, but are
+ used in the default CALS table model and are usually defined elsewhere
+ (and prior to the inclusion of this table module) in a CALS DTD. -->
+
+<!ENTITY % bodyatt "">
+<!ENTITY % secur "">
+
+<!-- no if zero(s),
+ yes if any other digits value -->
+
+<!ENTITY % yesorno 'CDATA'>
+<!ENTITY % titles 'title?'>
+
+<!-- default for use in entry content -->
+
+<!ENTITY % paracon '#PCDATA'>
+
+<!--
+The parameter entities as defined below provide the CALS table model
+as published (as part of the Example DTD) in MIL-HDBK-28001.
+
+These following declarations provide the CALS-compliant default definitions
+for these entities. However, these entities can and should be redefined
+(by giving the appropriate parameter entity declaration(s) prior to the
+reference to this Table Model declaration set entity) to fit the needs
+of the current application.
+-->
+
+<!ENTITY % tbl.table.name "(table|chart)">
+<!ENTITY % tbl.table-titles.mdl "%titles;,">
+<!ENTITY % tbl.table-main.mdl "(tgroup+|graphic+)">
+<!ENTITY % tbl.table.mdl "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
+<!ENTITY % tbl.table.att '
+ tabstyle CDATA #IMPLIED
+ tocentry %yesorno; #IMPLIED
+ shortentry %yesorno; #IMPLIED
+ orient (port|land) #IMPLIED
+ pgwide %yesorno; #IMPLIED '>
+<!ENTITY % tbl.tgroup.mdl "colspec*,spanspec*,thead?,tfoot?,tbody">
+<!ENTITY % tbl.tgroup.att '
+ tgroupstyle CDATA #IMPLIED '>
+<!ENTITY % tbl.hdft.mdl "colspec*,row+">
+<!ENTITY % tbl.row.mdl "(entry|entrytbl)+">
+<!ENTITY % tbl.entrytbl.mdl "colspec*,spanspec*,thead?,tbody">
+<!ENTITY % tbl.entry.mdl "(para|warning|caution|note|legend|%paracon;)*">
+<!-- ===== Element and attribute declarations follow. ===== -->
+
+<!ELEMENT table (%tbl.table.mdl;)>
+
+<!ATTLIST table
+ frame (top|bottom|topbot|all|sides|none) #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ %tbl.table.att;
+ %bodyatt;
+ %secur;
+>
+
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+
+<!ATTLIST tgroup
+ cols CDATA #REQUIRED
+ %tbl.tgroup.att;
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ %secur;
+>
+
+<!ELEMENT colspec EMPTY >
+
+<!ATTLIST colspec
+ colnum CDATA #IMPLIED
+ colname CDATA #IMPLIED
+ colwidth CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+>
+
+<!ELEMENT spanspec EMPTY >
+
+<!ATTLIST spanspec
+ namest CDATA #REQUIRED
+ nameend CDATA #REQUIRED
+ spanname CDATA #REQUIRED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+>
+
+<!ELEMENT thead (%tbl.hdft.mdl;)>
+<!ATTLIST thead
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!ELEMENT tfoot (%tbl.hdft.mdl;)>
+<!ATTLIST tfoot
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!ELEMENT tbody (row+)>
+
+<!ATTLIST tbody
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!ELEMENT row (%tbl.row.mdl;)>
+
+<!ATTLIST row
+ rowsep %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!ELEMENT entrytbl (%tbl.entrytbl.mdl;)>
+
+<!ATTLIST entrytbl
+ cols CDATA #REQUIRED
+ %tbl.tgroup.att;
+ colname CDATA #IMPLIED
+ spanname CDATA #IMPLIED
+ namest CDATA #IMPLIED
+ nameend CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ %secur;
+>
+
+<!ELEMENT entry (%tbl.entry.mdl;)*>
+
+<!ATTLIST entry
+ colname CDATA #IMPLIED
+ namest CDATA #IMPLIED
+ nameend CDATA #IMPLIED
+ spanname CDATA #IMPLIED
+ morerows CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ rotate %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!-- End of CALS Table Model XML V3.1.7 ..................................... -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/3.1.7/dbcentx.mod b/tests/docbook/dtd/3.1.7/dbcentx.mod
new file mode 100644
index 00000000..52f52cae
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/dbcentx.mod
@@ -0,0 +1,166 @@
+<!-- ====================================================================== -->
+<!-- DocBk XML Character Entity Sets V3.1.7
+ Part of the DocBk XML V3.1.7 DTD
+ http://nwalsh.com/docbook/xml/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % ISOamsa.module "INCLUDE">
+<![%ISOamsa.module;[
+<!ENTITY % ISOamsa PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
+"ent/iso-amsa.ent">
+%ISOamsa;
+<!--end of ISOamsa.module-->]]>
+
+<!ENTITY % ISOamsb.module "INCLUDE">
+<![%ISOamsb.module;[
+<!ENTITY % ISOamsb PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
+"ent/iso-amsb.ent">
+%ISOamsb;
+<!--end of ISOamsb.module-->]]>
+
+<!ENTITY % ISOamsc.module "INCLUDE">
+<![%ISOamsc.module;[
+<!ENTITY % ISOamsc PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
+"ent/iso-amsc.ent">
+%ISOamsc;
+<!--end of ISOamsc.module-->]]>
+
+<!ENTITY % ISOamsn.module "INCLUDE">
+<![%ISOamsn.module;[
+<!ENTITY % ISOamsn PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
+"ent/iso-amsn.ent">
+%ISOamsn;
+<!--end of ISOamsn.module-->]]>
+
+<!ENTITY % ISOamso.module "INCLUDE">
+<![%ISOamso.module;[
+<!ENTITY % ISOamso PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
+"ent/iso-amso.ent">
+%ISOamso;
+<!--end of ISOamso.module-->]]>
+
+<!ENTITY % ISOamsr.module "INCLUDE">
+<![%ISOamsr.module;[
+<!ENTITY % ISOamsr PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
+"ent/iso-amsr.ent">
+%ISOamsr;
+<!--end of ISOamsr.module-->]]>
+
+<!ENTITY % ISObox.module "INCLUDE">
+<![%ISObox.module;[
+<!ENTITY % ISObox PUBLIC
+"ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
+"ent/iso-box.ent">
+%ISObox;
+<!--end of ISObox.module-->]]>
+
+<!ENTITY % ISOcyr1.module "INCLUDE">
+<![%ISOcyr1.module;[
+<!ENTITY % ISOcyr1 PUBLIC
+"ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
+"ent/iso-cyr1.ent">
+%ISOcyr1;
+<!--end of ISOcyr1.module-->]]>
+
+<!ENTITY % ISOcyr2.module "INCLUDE">
+<![%ISOcyr2.module;[
+<!ENTITY % ISOcyr2 PUBLIC
+"ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
+"ent/iso-cyr2.ent">
+%ISOcyr2;
+<!--end of ISOcyr2.module-->]]>
+
+<!ENTITY % ISOdia.module "INCLUDE">
+<![%ISOdia.module;[
+<!ENTITY % ISOdia PUBLIC
+"ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
+"ent/iso-dia.ent">
+%ISOdia;
+<!--end of ISOdia.module-->]]>
+
+<!ENTITY % ISOgrk1.module "INCLUDE">
+<![%ISOgrk1.module;[
+<!ENTITY % ISOgrk1 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
+"ent/iso-grk1.ent">
+%ISOgrk1;
+<!--end of ISOgrk1.module-->]]>
+
+<!ENTITY % ISOgrk2.module "INCLUDE">
+<![%ISOgrk2.module;[
+<!ENTITY % ISOgrk2 PUBLIC
+"ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
+"ent/iso-grk2.ent">
+%ISOgrk2;
+<!--end of ISOgrk2.module-->]]>
+
+<!ENTITY % ISOgrk3.module "INCLUDE">
+<![%ISOgrk3.module;[
+<!ENTITY % ISOgrk3 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
+"ent/iso-grk3.ent">
+%ISOgrk3;
+<!--end of ISOgrk3.module-->]]>
+
+<!ENTITY % ISOgrk4.module "INCLUDE">
+<![%ISOgrk4.module;[
+<!ENTITY % ISOgrk4 PUBLIC
+"ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
+"ent/iso-grk4.ent">
+%ISOgrk4;
+<!--end of ISOgrk4.module-->]]>
+
+<!ENTITY % ISOlat1.module "INCLUDE">
+<![%ISOlat1.module;[
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+<!--end of ISOlat1.module-->]]>
+
+<!ENTITY % ISOlat2.module "INCLUDE">
+<![%ISOlat2.module;[
+<!ENTITY % ISOlat2 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
+"ent/iso-lat2.ent">
+%ISOlat2;
+<!--end of ISOlat2.module-->]]>
+
+<!ENTITY % ISOnum.module "INCLUDE">
+<![%ISOnum.module;[
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+<!--end of ISOnum.module-->]]>
+
+<!ENTITY % ISOpub.module "INCLUDE">
+<![%ISOpub.module;[
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+<!--end of ISOpub.module-->]]>
+
+<!ENTITY % ISOtech.module "INCLUDE">
+<![%ISOtech.module;[
+<!ENTITY % ISOtech PUBLIC
+"ISO 8879:1986//ENTITIES General Technical//EN//XML"
+"ent/iso-tech.ent">
+%ISOtech;
+<!--end of ISOtech.module-->]]>
+
+<!-- End of DocBk XML character entity sets module V3.1.7 ................... -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/3.1.7/dbgenent.ent b/tests/docbook/dtd/3.1.7/dbgenent.ent
new file mode 100644
index 00000000..3c8d9be3
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/dbgenent.ent
@@ -0,0 +1,21 @@
+<!-- ====================================================================== -->
+<!-- DocBk XML Additional General Entities V3.1.7
+ Part of the DocBk XML V3.1.7 DTD
+ http://nwalsh.com/docbook/xml/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!-- You can edit this file to add the following:
+ o General entity declarations of any kind.
+ o Notation declarations.
+ o Declarations for and references to external parameter entities
+ containing collections of any of the above.
+-->
+
+<!-- End of DocBk XML Additional General Entities V3.1.7 .................. -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/3.1.7/dbhierx.mod b/tests/docbook/dtd/3.1.7/dbhierx.mod
new file mode 100644
index 00000000..7ea1b324
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/dbhierx.mod
@@ -0,0 +1,1795 @@
+<!-- ====================================================================== -->
+<!-- DocBk XML Document Hierarchy V3.1.7
+ Part of the DocBk XML V3.1.7 DTD
+ http://nwalsh.com/docbook/xml/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!-- ...................................................................... -->
+<!-- Entities for module inclusions ....................................... -->
+
+<!ENTITY % dbhier.redecl.module "IGNORE">
+<!ENTITY % dbhier.redecl2.module "IGNORE">
+
+<!-- ...................................................................... -->
+<!-- Entities for element classes ......................................... -->
+
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class "appendix %local.appendix.class;">
+
+<!ENTITY % local.article.class "">
+<!ENTITY % article.class "article %local.article.class;">
+
+<!ENTITY % local.book.class "">
+<!ENTITY % book.class "book %local.book.class;">
+
+<!ENTITY % local.chapter.class "">
+<!ENTITY % chapter.class "chapter %local.chapter.class;">
+
+<!ENTITY % local.index.class "">
+<!ENTITY % index.class "index|setindex %local.index.class;">
+
+<!ENTITY % local.refentry.class "">
+<!ENTITY % refentry.class "refentry %local.refentry.class;">
+
+<!ENTITY % local.nav.class "">
+<!ENTITY % nav.class "toc|lot|index|glossary|bibliography
+ %local.nav.class;">
+
+<!-- Redeclaration placeholder ............................................ -->
+
+<!-- For redeclaring entities that are declared after this point while
+ retaining their references to the entities that are declared before
+ this point -->
+
+<![%dbhier.redecl.module;[
+<!-- Defining rdbhier here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbhier "">
+%rdbhier;
+<!--end of dbhier.redecl.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Entities for element mixtures ........................................ -->
+
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%genobj.class; |%descobj.class;
+ |%ndxterm.class; |beginpage
+ %local.divcomponent.mix;">
+
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%genobj.class; |%descobj.class;
+ |%ndxterm.class; |beginpage
+ %local.refcomponent.mix;">
+
+<!ENTITY % local.indexdivcomponent.mix "">
+<!ENTITY % indexdivcomponent.mix
+ "itemizedlist|orderedlist|variablelist|simplelist
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |anchor|comment
+ |%link.char.class;
+ |beginpage
+ %local.indexdivcomponent.mix;">
+
+<!ENTITY % local.refname.char.mix "">
+<!ENTITY % refname.char.mix
+ "#PCDATA
+ |%tech.char.class;
+ %local.refname.char.mix;">
+
+<!ENTITY % local.partcontent.mix "">
+<!ENTITY % partcontent.mix
+ "%appendix.class;|%chapter.class;|%nav.class;|%article.class;
+ |preface|%refentry.class;|reference %local.partcontent.mix;">
+
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+ "#PCDATA
+ |%xref.char.class; |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class; |%docinfo.char.class;
+ |%other.char.class;
+ |%ndxterm.class; |beginpage
+ %local.refinline.char.mix;">
+
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % refclass.char.mix
+ "#PCDATA
+ |application
+ %local.refclass.char.mix;">
+
+<!-- Redeclaration placeholder 2 .......................................... -->
+
+<!-- For redeclaring entities that are declared after this point while
+ retaining their references to the entities that are declared before
+ this point -->
+
+<![%dbhier.redecl2.module;[
+<!-- Defining rdbhier2 here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbhier2 "">
+%rdbhier2;
+<!--end of dbhier.redecl2.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Entities for content models .......................................... -->
+
+<!ENTITY % div.title.content
+ "title, subtitle?, titleabbrev?">
+
+<!--FUTURE USE (V4.0):
+......................
+The DocInfo element will be split out into ChapterInfo, AppendixInfo,
+etc.
+......................
+-->
+<!ENTITY % bookcomponent.title.content
+ "docinfo?, title, subtitle?, titleabbrev?">
+
+<!ENTITY % sect.title.content
+ "title, subtitle?, titleabbrev?">
+
+<!ENTITY % refsect.title.content
+ "title, subtitle?, titleabbrev?">
+
+<!ENTITY % bookcomponent.content
+ "((%divcomponent.mix;)+,
+ (sect1*|(%refentry.class;)*|simplesect*|section*))
+ | (sect1+|(%refentry.class;)+|simplesect+|section+)">
+
+<!-- ...................................................................... -->
+<!-- Set and SetInfo ...................................................... -->
+
+<!ENTITY % set.content.module "INCLUDE">
+<![%set.content.module;[
+<!ENTITY % set.module "INCLUDE">
+<![%set.module;[
+<!ENTITY % local.set.attrib "">
+<!ENTITY % set.role.attrib "%role.attrib;">
+
+<!ENTITY % set.element "INCLUDE">
+<![%set.element;[
+<!ELEMENT set ((%div.title.content;)?, setinfo?, toc?, (%book.class;)+,
+ setindex?)>
+<!--end of set.element-->]]>
+
+<!-- FPI: SGML formal public identifier -->
+
+
+<!ENTITY % set.attlist "INCLUDE">
+<![%set.attlist;[
+<!ATTLIST set
+ fpi CDATA #IMPLIED
+ %status.attrib;
+ %common.attrib;
+ %set.role.attrib;
+ %local.set.attrib;
+>
+<!--end of set.attlist-->]]>
+<!--end of set.module-->]]>
+
+<!ENTITY % setinfo.module "INCLUDE">
+<![%setinfo.module;[
+<!ENTITY % local.setinfo.attrib "">
+<!ENTITY % setinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % setinfo.element "INCLUDE">
+<![%setinfo.element;[
+<!ELEMENT setinfo ((graphic | mediaobject
+ | legalnotice | modespec | subjectset
+ | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of setinfo.element-->]]>
+
+<!-- Contents: IDs of the ToC, Books, and SetIndex that comprise
+ the set, in the order of their appearance -->
+
+
+<!ENTITY % setinfo.attlist "INCLUDE">
+<![%setinfo.attlist;[
+<!ATTLIST setinfo
+ contents IDREFS #IMPLIED
+ %common.attrib;
+ %setinfo.role.attrib;
+ %local.setinfo.attrib;
+>
+<!--end of setinfo.attlist-->]]>
+<!--end of setinfo.module-->]]>
+<!--end of set.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Book and BookInfo .................................................... -->
+
+<!ENTITY % book.content.module "INCLUDE">
+<![%book.content.module;[
+<!ENTITY % book.module "INCLUDE">
+<![%book.module;[
+<!--FUTURE USE (V4.0):
+......................
+The %article.class; entity *may* be removed from the Book content model.
+(Article may be made part of a new top-level document hierarchy.)
+......................
+-->
+
+<!ENTITY % local.book.attrib "">
+<!ENTITY % book.role.attrib "%role.attrib;">
+
+<!ENTITY % book.element "INCLUDE">
+<![%book.element;[
+<!ELEMENT book ((%div.title.content;)?, bookinfo?,
+ (dedication | toc | lot
+ | glossary | bibliography | preface
+ | %chapter.class; | reference | part
+ | %article.class;
+ | %appendix.class;
+ | %index.class;
+ | colophon)*)>
+<!--end of book.element-->]]>
+
+<!-- FPI: SGML formal public identifier -->
+
+
+<!ENTITY % book.attlist "INCLUDE">
+<![%book.attlist;[
+<!ATTLIST book fpi CDATA #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %book.role.attrib;
+ %local.book.attrib;
+>
+<!--end of book.attlist-->]]>
+<!--end of book.module-->]]>
+
+<!ENTITY % bookinfo.module "INCLUDE">
+<![%bookinfo.module;[
+<!--FUTURE USE (V4.0):
+......................
+BookBiblio will be discarded.
+......................
+-->
+<!ENTITY % local.bookinfo.attrib "">
+<!ENTITY % bookinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % bookinfo.element "INCLUDE">
+<![%bookinfo.element;[
+<!ELEMENT bookinfo ((graphic | mediaobject
+ | legalnotice | modespec | subjectset
+ | keywordset | itermset | %bibliocomponent.mix; | bookbiblio)+)>
+<!--end of bookinfo.element-->]]>
+
+<!-- Contents: IDs of the ToC, LoTs, Prefaces, Parts, Chapters,
+ Appendixes, References, GLossary, Bibliography, and indexes
+ comprising the Book, in the order of their appearance -->
+
+
+<!ENTITY % bookinfo.attlist "INCLUDE">
+<![%bookinfo.attlist;[
+<!ATTLIST bookinfo
+ contents IDREFS #IMPLIED
+ %common.attrib;
+ %bookinfo.role.attrib;
+ %local.bookinfo.attrib;
+>
+<!--end of bookinfo.attlist-->]]>
+<!--end of bookinfo.module-->]]>
+<!--end of book.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Dedication, ToC, and LoT ............................................. -->
+
+<!ENTITY % dedication.module "INCLUDE">
+<![%dedication.module;[
+<!ENTITY % local.dedication.attrib "">
+<!ENTITY % dedication.role.attrib "%role.attrib;">
+
+<!ENTITY % dedication.element "INCLUDE">
+<![%dedication.element;[
+<!ELEMENT dedication ((%sect.title.content;)?, (%legalnotice.mix;)+)>
+<!--end of dedication.element-->]]>
+
+<!ENTITY % dedication.attlist "INCLUDE">
+<![%dedication.attlist;[
+<!ATTLIST dedication
+ %status.attrib;
+ %common.attrib;
+ %dedication.role.attrib;
+ %local.dedication.attrib;
+>
+<!--end of dedication.attlist-->]]>
+<!--end of dedication.module-->]]>
+
+<!ENTITY % colophon.module "INCLUDE">
+<![ %colophon.module; [
+<!ENTITY % local.colophon.attrib "">
+<!ENTITY % colophon.role.attrib "%role.attrib;">
+
+<!ENTITY % colophon.element "INCLUDE">
+<![ %colophon.element; [
+<!ELEMENT colophon ((%sect.title.content;)?, (%textobject.mix;)+)>
+<!--end of colophon.element-->]]>
+
+<!ENTITY % colophon.attlist "INCLUDE">
+<![ %colophon.attlist; [
+<!ATTLIST colophon
+ %status.attrib;
+ %common.attrib;
+ %colophon.role.attrib;
+ %local.colophon.attrib;>
+<!--end of colophon.attlist-->]]>
+<!--end of colophon.module-->]]>
+
+<!ENTITY % toc.content.module "INCLUDE">
+<![%toc.content.module;[
+<!ENTITY % toc.module "INCLUDE">
+<![%toc.module;[
+<!ENTITY % local.toc.attrib "">
+<!ENTITY % toc.role.attrib "%role.attrib;">
+
+<!ENTITY % toc.element "INCLUDE">
+<![%toc.element;[
+<!ELEMENT toc ((%bookcomponent.title.content;)?, tocfront*,
+ (tocpart | tocchap)*, tocback*)>
+<!--end of toc.element-->]]>
+
+<!ENTITY % toc.attlist "INCLUDE">
+<![%toc.attlist;[
+<!ATTLIST toc
+ %pagenum.attrib;
+ %common.attrib;
+ %toc.role.attrib;
+ %local.toc.attrib;
+>
+<!--end of toc.attlist-->]]>
+<!--end of toc.module-->]]>
+
+<!ENTITY % tocfront.module "INCLUDE">
+<![%tocfront.module;[
+<!ENTITY % local.tocfront.attrib "">
+<!ENTITY % tocfront.role.attrib "%role.attrib;">
+
+<!ENTITY % tocfront.element "INCLUDE">
+<![%tocfront.element;[
+<!ELEMENT tocfront (%para.char.mix;)*>
+<!--end of tocfront.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocfront.attlist "INCLUDE">
+<![%tocfront.attlist;[
+<!ATTLIST tocfront
+ %label.attrib;
+ %linkend.attrib; %pagenum.attrib;
+ %common.attrib;
+ %tocfront.role.attrib;
+ %local.tocfront.attrib;
+>
+<!--end of tocfront.attlist-->]]>
+<!--end of tocfront.module-->]]>
+
+<!ENTITY % tocentry.module "INCLUDE">
+<![%tocentry.module;[
+<!ENTITY % local.tocentry.attrib "">
+<!ENTITY % tocentry.role.attrib "%role.attrib;">
+
+<!ENTITY % tocentry.element "INCLUDE">
+<![%tocentry.element;[
+<!ELEMENT tocentry (%para.char.mix;)*>
+<!--end of tocentry.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocentry.attlist "INCLUDE">
+<![%tocentry.attlist;[
+<!ATTLIST tocentry
+ %linkend.attrib; %pagenum.attrib;
+ %common.attrib;
+ %tocentry.role.attrib;
+ %local.tocentry.attrib;
+>
+<!--end of tocentry.attlist-->]]>
+<!--end of tocentry.module-->]]>
+
+<!ENTITY % tocpart.module "INCLUDE">
+<![%tocpart.module;[
+<!ENTITY % local.tocpart.attrib "">
+<!ENTITY % tocpart.role.attrib "%role.attrib;">
+
+<!ENTITY % tocpart.element "INCLUDE">
+<![%tocpart.element;[
+<!ELEMENT tocpart (tocentry+, tocchap*)>
+<!--end of tocpart.element-->]]>
+
+<!ENTITY % tocpart.attlist "INCLUDE">
+<![%tocpart.attlist;[
+<!ATTLIST tocpart
+ %common.attrib;
+ %tocpart.role.attrib;
+ %local.tocpart.attrib;
+>
+<!--end of tocpart.attlist-->]]>
+<!--end of tocpart.module-->]]>
+
+<!ENTITY % tocchap.module "INCLUDE">
+<![%tocchap.module;[
+<!ENTITY % local.tocchap.attrib "">
+<!ENTITY % tocchap.role.attrib "%role.attrib;">
+
+<!ENTITY % tocchap.element "INCLUDE">
+<![%tocchap.element;[
+<!ELEMENT tocchap (tocentry+, toclevel1*)>
+<!--end of tocchap.element-->]]>
+
+<!ENTITY % tocchap.attlist "INCLUDE">
+<![%tocchap.attlist;[
+<!ATTLIST tocchap
+ %label.attrib;
+ %common.attrib;
+ %tocchap.role.attrib;
+ %local.tocchap.attrib;
+>
+<!--end of tocchap.attlist-->]]>
+<!--end of tocchap.module-->]]>
+
+<!ENTITY % toclevel1.module "INCLUDE">
+<![%toclevel1.module;[
+<!ENTITY % local.toclevel1.attrib "">
+<!ENTITY % toclevel1.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel1.element "INCLUDE">
+<![%toclevel1.element;[
+<!ELEMENT toclevel1 (tocentry+, toclevel2*)>
+<!--end of toclevel1.element-->]]>
+
+<!ENTITY % toclevel1.attlist "INCLUDE">
+<![%toclevel1.attlist;[
+<!ATTLIST toclevel1
+ %common.attrib;
+ %toclevel1.role.attrib;
+ %local.toclevel1.attrib;
+>
+<!--end of toclevel1.attlist-->]]>
+<!--end of toclevel1.module-->]]>
+
+<!ENTITY % toclevel2.module "INCLUDE">
+<![%toclevel2.module;[
+<!ENTITY % local.toclevel2.attrib "">
+<!ENTITY % toclevel2.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel2.element "INCLUDE">
+<![%toclevel2.element;[
+<!ELEMENT toclevel2 (tocentry+, toclevel3*)>
+<!--end of toclevel2.element-->]]>
+
+<!ENTITY % toclevel2.attlist "INCLUDE">
+<![%toclevel2.attlist;[
+<!ATTLIST toclevel2
+ %common.attrib;
+ %toclevel2.role.attrib;
+ %local.toclevel2.attrib;
+>
+<!--end of toclevel2.attlist-->]]>
+<!--end of toclevel2.module-->]]>
+
+<!ENTITY % toclevel3.module "INCLUDE">
+<![%toclevel3.module;[
+<!ENTITY % local.toclevel3.attrib "">
+<!ENTITY % toclevel3.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel3.element "INCLUDE">
+<![%toclevel3.element;[
+<!ELEMENT toclevel3 (tocentry+, toclevel4*)>
+<!--end of toclevel3.element-->]]>
+
+<!ENTITY % toclevel3.attlist "INCLUDE">
+<![%toclevel3.attlist;[
+<!ATTLIST toclevel3
+ %common.attrib;
+ %toclevel3.role.attrib;
+ %local.toclevel3.attrib;
+>
+<!--end of toclevel3.attlist-->]]>
+<!--end of toclevel3.module-->]]>
+
+<!ENTITY % toclevel4.module "INCLUDE">
+<![%toclevel4.module;[
+<!ENTITY % local.toclevel4.attrib "">
+<!ENTITY % toclevel4.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel4.element "INCLUDE">
+<![%toclevel4.element;[
+<!ELEMENT toclevel4 (tocentry+, toclevel5*)>
+<!--end of toclevel4.element-->]]>
+
+<!ENTITY % toclevel4.attlist "INCLUDE">
+<![%toclevel4.attlist;[
+<!ATTLIST toclevel4
+ %common.attrib;
+ %toclevel4.role.attrib;
+ %local.toclevel4.attrib;
+>
+<!--end of toclevel4.attlist-->]]>
+<!--end of toclevel4.module-->]]>
+
+<!ENTITY % toclevel5.module "INCLUDE">
+<![%toclevel5.module;[
+<!ENTITY % local.toclevel5.attrib "">
+<!ENTITY % toclevel5.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel5.element "INCLUDE">
+<![%toclevel5.element;[
+<!ELEMENT toclevel5 (tocentry+)>
+<!--end of toclevel5.element-->]]>
+
+<!ENTITY % toclevel5.attlist "INCLUDE">
+<![%toclevel5.attlist;[
+<!ATTLIST toclevel5
+ %common.attrib;
+ %toclevel5.role.attrib;
+ %local.toclevel5.attrib;
+>
+<!--end of toclevel5.attlist-->]]>
+<!--end of toclevel5.module-->]]>
+
+<!ENTITY % tocback.module "INCLUDE">
+<![%tocback.module;[
+<!ENTITY % local.tocback.attrib "">
+<!ENTITY % tocback.role.attrib "%role.attrib;">
+
+<!ENTITY % tocback.element "INCLUDE">
+<![%tocback.element;[
+<!ELEMENT tocback (%para.char.mix;)*>
+<!--end of tocback.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocback.attlist "INCLUDE">
+<![%tocback.attlist;[
+<!ATTLIST tocback
+ %label.attrib;
+ %linkend.attrib; %pagenum.attrib;
+ %common.attrib;
+ %tocback.role.attrib;
+ %local.tocback.attrib;
+>
+<!--end of tocback.attlist-->]]>
+<!--end of tocback.module-->]]>
+<!--end of toc.content.module-->]]>
+
+<!ENTITY % lot.content.module "INCLUDE">
+<![%lot.content.module;[
+<!ENTITY % lot.module "INCLUDE">
+<![%lot.module;[
+<!ENTITY % local.lot.attrib "">
+<!ENTITY % lot.role.attrib "%role.attrib;">
+
+<!ENTITY % lot.element "INCLUDE">
+<![%lot.element;[
+<!ELEMENT lot ((%bookcomponent.title.content;)?, lotentry*)>
+<!--end of lot.element-->]]>
+
+<!ENTITY % lot.attlist "INCLUDE">
+<![%lot.attlist;[
+<!ATTLIST lot
+ %label.attrib;
+ %common.attrib;
+ %lot.role.attrib;
+ %local.lot.attrib;
+>
+<!--end of lot.attlist-->]]>
+<!--end of lot.module-->]]>
+
+<!ENTITY % lotentry.module "INCLUDE">
+<![%lotentry.module;[
+<!ENTITY % local.lotentry.attrib "">
+<!ENTITY % lotentry.role.attrib "%role.attrib;">
+
+<!ENTITY % lotentry.element "INCLUDE">
+<![%lotentry.element;[
+<!ELEMENT lotentry (%para.char.mix;)*>
+<!--end of lotentry.element-->]]>
+
+<!-- SrcCredit: Information about the source of the entry,
+ as for a list of illustrations -->
+<!-- linkend: to element that this entry represents-->
+<!ENTITY % lotentry.attlist "INCLUDE">
+<![%lotentry.attlist;[
+<!ATTLIST lotentry
+ srccredit CDATA #IMPLIED
+ %pagenum.attrib;
+ %common.attrib;
+ %linkend.attrib;
+ %lotentry.role.attrib;
+ %local.lotentry.attrib;
+>
+<!--end of lotentry.attlist-->]]>
+<!--end of lotentry.module-->]]>
+<!--end of lot.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Appendix, Chapter, Part, Preface, Reference, PartIntro ............... -->
+
+<!ENTITY % appendix.module "INCLUDE">
+<![%appendix.module;[
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+
+<!ENTITY % appendix.element "INCLUDE">
+<![%appendix.element;[
+<!ELEMENT appendix ((%bookcomponent.title.content;), tocchap?,
+ (%bookcomponent.content;))>
+<!--end of appendix.element-->]]>
+
+<!ENTITY % appendix.attlist "INCLUDE">
+<![%appendix.attlist;[
+<!ATTLIST appendix
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %appendix.role.attrib;
+ %local.appendix.attrib;
+>
+<!--end of appendix.attlist-->]]>
+<!--end of appendix.module-->]]>
+
+<!ENTITY % chapter.module "INCLUDE">
+<![%chapter.module;[
+<!ENTITY % local.chapter.attrib "">
+<!ENTITY % chapter.role.attrib "%role.attrib;">
+
+<!ENTITY % chapter.element "INCLUDE">
+<![%chapter.element;[
+<!ELEMENT chapter ((%bookcomponent.title.content;), tocchap?,
+ (%bookcomponent.content;), (index | glossary | bibliography)*)>
+<!--end of chapter.element-->]]>
+
+<!ENTITY % chapter.attlist "INCLUDE">
+<![%chapter.attlist;[
+<!ATTLIST chapter
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %chapter.role.attrib;
+ %local.chapter.attrib;
+>
+<!--end of chapter.attlist-->]]>
+<!--end of chapter.module-->]]>
+
+<!ENTITY % part.module "INCLUDE">
+<![%part.module;[
+
+<!-- Note that Part was to have its content model reduced in V4.0. This
+change will not be made after all. -->
+
+<!ENTITY % local.part.attrib "">
+<!ENTITY % part.role.attrib "%role.attrib;">
+
+<!ENTITY % part.element "INCLUDE">
+<![%part.element;[
+<!ELEMENT part ((%bookcomponent.title.content;), partintro?,
+ (%partcontent.mix;)+)>
+<!--end of part.element-->]]>
+
+<!ENTITY % part.attlist "INCLUDE">
+<![%part.attlist;[
+<!ATTLIST part
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %part.role.attrib;
+ %local.part.attrib;
+>
+<!--end of part.attlist-->]]>
+<!--ELEMENT PartIntro (defined below)-->
+<!--end of part.module-->]]>
+
+<!ENTITY % preface.module "INCLUDE">
+<![%preface.module;[
+<!ENTITY % local.preface.attrib "">
+<!ENTITY % preface.role.attrib "%role.attrib;">
+
+<!ENTITY % preface.element "INCLUDE">
+<![%preface.element;[
+<!ELEMENT preface ((%bookcomponent.title.content;),
+ (%bookcomponent.content;))>
+<!--end of preface.element-->]]>
+
+<!ENTITY % preface.attlist "INCLUDE">
+<![%preface.attlist;[
+<!ATTLIST preface
+ %status.attrib;
+ %common.attrib;
+ %preface.role.attrib;
+ %local.preface.attrib;
+>
+<!--end of preface.attlist-->]]>
+<!--end of preface.module-->]]>
+
+<!ENTITY % reference.module "INCLUDE">
+<![%reference.module;[
+<!ENTITY % local.reference.attrib "">
+<!ENTITY % reference.role.attrib "%role.attrib;">
+
+<!ENTITY % reference.element "INCLUDE">
+<![%reference.element;[
+<!ELEMENT reference ((%bookcomponent.title.content;), partintro?,
+ (%refentry.class;)+)>
+<!--end of reference.element-->]]>
+
+<!ENTITY % reference.attlist "INCLUDE">
+<![%reference.attlist;[
+<!ATTLIST reference
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %reference.role.attrib;
+ %local.reference.attrib;
+>
+<!--end of reference.attlist-->]]>
+<!--ELEMENT PartIntro (defined below)-->
+<!--end of reference.module-->]]>
+
+<!ENTITY % partintro.module "INCLUDE">
+<![%partintro.module;[
+<!ENTITY % local.partintro.attrib "">
+<!ENTITY % partintro.role.attrib "%role.attrib;">
+
+<!ENTITY % partintro.element "INCLUDE">
+<![%partintro.element;[
+<!ELEMENT partintro ((%div.title.content;)?, (%bookcomponent.content;))>
+<!--end of partintro.element-->]]>
+
+<!ENTITY % partintro.attlist "INCLUDE">
+<![%partintro.attlist;[
+<!ATTLIST partintro
+ %label.attrib;
+ %common.attrib;
+ %local.partintro.attrib;
+ %partintro.role.attrib;
+>
+<!--end of partintro.attlist-->]]>
+<!--end of partintro.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Other Info elements .................................................. -->
+
+<!ENTITY % otherinfo.module "INCLUDE">
+<![%otherinfo.module;[
+<!ENTITY % local.otherinfo.attrib "">
+<!ENTITY % otherinfo.role.attrib "%role.attrib;">
+
+
+<!ENTITY % docinfo.element "INCLUDE">
+<![%docinfo.element;[
+<!ELEMENT docinfo ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of docinfo.element-->]]>
+
+<!ENTITY % docinfo.attlist "INCLUDE">
+<![%docinfo.attlist;[
+<!ATTLIST docinfo
+ %common.attrib;
+ %otherinfo.role.attrib;
+ %local.otherinfo.attrib;
+>
+<!--end of docinfo.attlist-->]]>
+
+
+<!ENTITY % sect1info.element "INCLUDE">
+<![%sect1info.element;[
+<!ELEMENT sect1info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect1info.element-->]]>
+
+<!ENTITY % sect1info.attlist "INCLUDE">
+<![%sect1info.attlist;[
+<!ATTLIST sect1info
+ %common.attrib;
+ %otherinfo.role.attrib;
+ %local.otherinfo.attrib;
+>
+<!--end of sect1info.attlist-->]]>
+
+
+<!ENTITY % sect2info.element "INCLUDE">
+<![%sect2info.element;[
+<!ELEMENT sect2info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect2info.element-->]]>
+
+<!ENTITY % sect2info.attlist "INCLUDE">
+<![%sect2info.attlist;[
+<!ATTLIST sect2info
+ %common.attrib;
+ %otherinfo.role.attrib;
+ %local.otherinfo.attrib;
+>
+<!--end of sect2info.attlist-->]]>
+
+
+<!ENTITY % sect3info.element "INCLUDE">
+<![%sect3info.element;[
+<!ELEMENT sect3info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect3info.element-->]]>
+
+<!ENTITY % sect3info.attlist "INCLUDE">
+<![%sect3info.attlist;[
+<!ATTLIST sect3info
+ %common.attrib;
+ %otherinfo.role.attrib;
+ %local.otherinfo.attrib;
+>
+<!--end of sect3info.attlist-->]]>
+
+
+<!ENTITY % sect4info.element "INCLUDE">
+<![%sect4info.element;[
+<!ELEMENT sect4info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect4info.element-->]]>
+
+<!ENTITY % sect4info.attlist "INCLUDE">
+<![%sect4info.attlist;[
+<!ATTLIST sect4info
+ %common.attrib;
+ %otherinfo.role.attrib;
+ %local.otherinfo.attrib;
+>
+<!--end of sect4info.attlist-->]]>
+
+
+<!ENTITY % sect5info.element "INCLUDE">
+<![%sect5info.element;[
+<!ELEMENT sect5info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect5info.element-->]]>
+
+<!ENTITY % sect5info.attlist "INCLUDE">
+<![%sect5info.attlist;[
+<!ATTLIST sect5info
+ %common.attrib;
+ %otherinfo.role.attrib;
+ %local.otherinfo.attrib;
+>
+<!--end of sect5info.attlist-->]]>
+
+
+<!ENTITY % refsect1info.element "INCLUDE">
+<![%refsect1info.element;[
+<!ELEMENT refsect1info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of refsect1info.element-->]]>
+
+<!ENTITY % refsect1info.attlist "INCLUDE">
+<![%refsect1info.attlist;[
+<!ATTLIST refsect1info
+ %common.attrib;
+ %otherinfo.role.attrib;
+ %local.otherinfo.attrib;
+>
+<!--end of refsect1info.attlist-->]]>
+
+
+<!ENTITY % refsect2info.element "INCLUDE">
+<![%refsect2info.element;[
+<!ELEMENT refsect2info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of refsect2info.element-->]]>
+
+<!ENTITY % refsect2info.attlist "INCLUDE">
+<![%refsect2info.attlist;[
+<!ATTLIST refsect2info
+ %common.attrib;
+ %otherinfo.role.attrib;
+ %local.otherinfo.attrib;
+>
+<!--end of refsect2info.attlist-->]]>
+
+
+<!ENTITY % refsect3info.element "INCLUDE">
+<![%refsect3info.element;[
+<!ELEMENT refsect3info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of refsect3info.element-->]]>
+
+<!ENTITY % refsect3info.attlist "INCLUDE">
+<![%refsect3info.attlist;[
+<!ATTLIST refsect3info
+ %common.attrib;
+ %otherinfo.role.attrib;
+ %local.otherinfo.attrib;
+>
+<!--end of refsect3info.attlist-->]]>
+
+
+<!ENTITY % refsynopsisdivinfo.element "INCLUDE">
+<![%refsynopsisdivinfo.element;[
+<!ELEMENT refsynopsisdivinfo ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of refsynopsisdivinfo.element-->]]>
+
+<!ENTITY % refsynopsisdivinfo.attlist "INCLUDE">
+<![%refsynopsisdivinfo.attlist;[
+<!ATTLIST refsynopsisdivinfo
+ %common.attrib;
+ %otherinfo.role.attrib;
+ %local.otherinfo.attrib;
+>
+<!--end of refsynopsisdivinfo.attlist-->]]>
+<!--end of otherinfo.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Section (parallel to Sect*) ......................................... -->
+
+<!ENTITY % section.content.module "INCLUDE">
+<![ %section.content.module; [
+<!ENTITY % section.module "INCLUDE">
+<![ %section.module; [
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+
+<!ENTITY % section.element "INCLUDE">
+<![ %section.element; [
+<!ELEMENT section (sectioninfo?,
+ (%sect.title.content;),
+ (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)*|section*))
+ | (%refentry.class;)+|section+),
+ (%nav.class;)*)>
+<!--end of section.element-->]]>
+
+<!ENTITY % section.attlist "INCLUDE">
+<![ %section.attlist; [
+<!ATTLIST section
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %section.role.attrib;
+ %local.section.attrib;
+>
+<!--end of section.attlist-->]]>
+<!--end of section.module-->]]>
+
+<!ENTITY % sectioninfo.module "INCLUDE">
+<![ %sectioninfo.module; [
+<!ENTITY % sectioninfo.role.attrib "%role.attrib;">
+<!ENTITY % local.sectioninfo.attrib "">
+
+<!ENTITY % sectioninfo.element "INCLUDE">
+<![ %sectioninfo.element; [
+<!ELEMENT sectioninfo ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sectioninfo.element-->]]>
+
+<!ENTITY % sectioninfo.attlist "INCLUDE">
+<![ %sectioninfo.attlist; [
+<!ATTLIST sectioninfo
+ %common.attrib;
+ %sectioninfo.role.attrib;
+ %local.sectioninfo.attrib;
+>
+<!--end of sectioninfo.attlist-->]]>
+<!--end of sectioninfo.module-->]]>
+<!--end of section.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Sect1, Sect2, Sect3, Sect4, Sect5 .................................... -->
+
+<!ENTITY % sect1.module "INCLUDE">
+<![%sect1.module;[
+<!ENTITY % local.sect1.attrib "">
+<!ENTITY % sect1.role.attrib "%role.attrib;">
+
+<!ENTITY % sect1.element "INCLUDE">
+<![%sect1.element;[
+<!ELEMENT sect1 (sect1info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)* | sect2* | simplesect*))
+ | (%refentry.class;)+ | sect2+ | simplesect+), (%nav.class;)*)>
+<!--end of sect1.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect1.attlist "INCLUDE">
+<![%sect1.attlist;[
+<!ATTLIST sect1
+ renderas (sect2
+ |sect3
+ |sect4
+ |sect5) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect1.role.attrib;
+ %local.sect1.attrib;
+>
+<!--end of sect1.attlist-->]]>
+<!--end of sect1.module-->]]>
+
+<!ENTITY % sect2.module "INCLUDE">
+<![%sect2.module;[
+<!ENTITY % local.sect2.attrib "">
+<!ENTITY % sect2.role.attrib "%role.attrib;">
+
+<!ENTITY % sect2.element "INCLUDE">
+<![%sect2.element;[
+<!ELEMENT sect2 (sect2info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)* | sect3* | simplesect*))
+ | (%refentry.class;)+ | sect3+ | simplesect+), (%nav.class;)*)>
+<!--end of sect2.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect2.attlist "INCLUDE">
+<![%sect2.attlist;[
+<!ATTLIST sect2
+ renderas (sect1
+ |sect3
+ |sect4
+ |sect5) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect2.role.attrib;
+ %local.sect2.attrib;
+>
+<!--end of sect2.attlist-->]]>
+<!--end of sect2.module-->]]>
+
+<!ENTITY % sect3.module "INCLUDE">
+<![%sect3.module;[
+<!ENTITY % local.sect3.attrib "">
+<!ENTITY % sect3.role.attrib "%role.attrib;">
+
+<!ENTITY % sect3.element "INCLUDE">
+<![%sect3.element;[
+<!ELEMENT sect3 (sect3info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)* | sect4* | simplesect*))
+ | (%refentry.class;)+ | sect4+ | simplesect+), (%nav.class;)*)>
+<!--end of sect3.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect3.attlist "INCLUDE">
+<![%sect3.attlist;[
+<!ATTLIST sect3
+ renderas (sect1
+ |sect2
+ |sect4
+ |sect5) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect3.role.attrib;
+ %local.sect3.attrib;
+>
+<!--end of sect3.attlist-->]]>
+<!--end of sect3.module-->]]>
+
+<!ENTITY % sect4.module "INCLUDE">
+<![%sect4.module;[
+<!ENTITY % local.sect4.attrib "">
+<!ENTITY % sect4.role.attrib "%role.attrib;">
+
+<!ENTITY % sect4.element "INCLUDE">
+<![%sect4.element;[
+<!ELEMENT sect4 (sect4info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)* | sect5* | simplesect*))
+ | (%refentry.class;)+ | sect5+ | simplesect+), (%nav.class;)*)>
+<!--end of sect4.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect4.attlist "INCLUDE">
+<![%sect4.attlist;[
+<!ATTLIST sect4
+ renderas (sect1
+ |sect2
+ |sect3
+ |sect5) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect4.role.attrib;
+ %local.sect4.attrib;
+>
+<!--end of sect4.attlist-->]]>
+<!--end of sect4.module-->]]>
+
+<!ENTITY % sect5.module "INCLUDE">
+<![%sect5.module;[
+<!ENTITY % local.sect5.attrib "">
+<!ENTITY % sect5.role.attrib "%role.attrib;">
+
+<!ENTITY % sect5.element "INCLUDE">
+<![%sect5.element;[
+<!ELEMENT sect5 (sect5info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+, ((%refentry.class;)* | simplesect*))
+ | (%refentry.class;)+ | simplesect+), (%nav.class;)*)>
+<!--end of sect5.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect5.attlist "INCLUDE">
+<![%sect5.attlist;[
+<!ATTLIST sect5
+ renderas (sect1
+ |sect2
+ |sect3
+ |sect4) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect5.role.attrib;
+ %local.sect5.attrib;
+>
+<!--end of sect5.attlist-->]]>
+<!--end of sect5.module-->]]>
+
+<!ENTITY % simplesect.module "INCLUDE">
+<![%simplesect.module;[
+<!ENTITY % local.simplesect.attrib "">
+<!ENTITY % simplesect.role.attrib "%role.attrib;">
+
+<!ENTITY % simplesect.element "INCLUDE">
+<![%simplesect.element;[
+<!ELEMENT simplesect ((%sect.title.content;), (%divcomponent.mix;)+)>
+<!--end of simplesect.element-->]]>
+
+<!ENTITY % simplesect.attlist "INCLUDE">
+<![%simplesect.attlist;[
+<!ATTLIST simplesect
+ %common.attrib;
+ %simplesect.role.attrib;
+ %local.simplesect.attrib;
+>
+<!--end of simplesect.attlist-->]]>
+<!--end of simplesect.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Bibliography ......................................................... -->
+
+<!ENTITY % bibliography.content.module "INCLUDE">
+<![%bibliography.content.module;[
+<!ENTITY % bibliography.module "INCLUDE">
+<![%bibliography.module;[
+<!ENTITY % local.bibliography.attrib "">
+<!ENTITY % bibliography.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliography.element "INCLUDE">
+<![%bibliography.element;[
+<!ELEMENT bibliography ((%bookcomponent.title.content;)?,
+ (%component.mix;)*,
+ (bibliodiv+ | (biblioentry|bibliomixed)+))>
+<!--end of bibliography.element-->]]>
+
+<!ENTITY % bibliography.attlist "INCLUDE">
+<![%bibliography.attlist;[
+<!ATTLIST bibliography
+ %status.attrib;
+ %common.attrib;
+ %bibliography.role.attrib;
+ %local.bibliography.attrib;
+>
+<!--end of bibliography.attlist-->]]>
+<!--end of bibliography.module-->]]>
+
+<!ENTITY % bibliodiv.module "INCLUDE">
+<![%bibliodiv.module;[
+<!ENTITY % local.bibliodiv.attrib "">
+<!ENTITY % bibliodiv.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliodiv.element "INCLUDE">
+<![%bibliodiv.element;[
+<!ELEMENT bibliodiv ((%sect.title.content;)?, (%component.mix;)*,
+ (biblioentry|bibliomixed)+)>
+<!--end of bibliodiv.element-->]]>
+
+<!ENTITY % bibliodiv.attlist "INCLUDE">
+<![%bibliodiv.attlist;[
+<!ATTLIST bibliodiv
+ %status.attrib;
+ %common.attrib;
+ %bibliodiv.role.attrib;
+ %local.bibliodiv.attrib;
+>
+<!--end of bibliodiv.attlist-->]]>
+<!--end of bibliodiv.module-->]]>
+<!--end of bibliography.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Glossary ............................................................. -->
+
+<!ENTITY % glossary.content.module "INCLUDE">
+<![%glossary.content.module;[
+<!ENTITY % glossary.module "INCLUDE">
+<![%glossary.module;[
+<!ENTITY % local.glossary.attrib "">
+<!ENTITY % glossary.role.attrib "%role.attrib;">
+
+<!ENTITY % glossary.element "INCLUDE">
+<![%glossary.element;[
+<!ELEMENT glossary ((%bookcomponent.title.content;)?, (%component.mix;)*,
+ (glossdiv+ | glossentry+), bibliography?)>
+<!--end of glossary.element-->]]>
+
+<!ENTITY % glossary.attlist "INCLUDE">
+<![%glossary.attlist;[
+<!ATTLIST glossary
+ %status.attrib;
+ %common.attrib;
+ %glossary.role.attrib;
+ %local.glossary.attrib;
+>
+<!--end of glossary.attlist-->]]>
+<!--end of glossary.module-->]]>
+
+<!ENTITY % glossdiv.module "INCLUDE">
+<![%glossdiv.module;[
+<!ENTITY % local.glossdiv.attrib "">
+<!ENTITY % glossdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % glossdiv.element "INCLUDE">
+<![%glossdiv.element;[
+<!ELEMENT glossdiv ((%sect.title.content;), (%component.mix;)*,
+ glossentry+)>
+<!--end of glossdiv.element-->]]>
+
+<!ENTITY % glossdiv.attlist "INCLUDE">
+<![%glossdiv.attlist;[
+<!ATTLIST glossdiv
+ %status.attrib;
+ %common.attrib;
+ %glossdiv.role.attrib;
+ %local.glossdiv.attrib;
+>
+<!--end of glossdiv.attlist-->]]>
+<!--end of glossdiv.module-->]]>
+<!--end of glossary.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Index and SetIndex ................................................... -->
+
+<!ENTITY % index.content.module "INCLUDE">
+<![%index.content.module;[
+<!ENTITY % indexes.module "INCLUDE">
+<![%indexes.module;[
+<!ENTITY % local.indexes.attrib "">
+<!ENTITY % indexes.role.attrib "%role.attrib;">
+
+<!ENTITY % index.element "INCLUDE">
+<![%index.element;[
+<!ELEMENT index ((%bookcomponent.title.content;)?,
+ (%component.mix;)*, (indexdiv* | indexentry*))>
+<!--end of index.element-->]]>
+
+<!ENTITY % index.attlist "INCLUDE">
+<![%index.attlist;[
+<!ATTLIST index
+ %common.attrib;
+ %indexes.role.attrib;
+ %local.indexes.attrib;
+>
+<!--end of index.attlist-->]]>
+
+<!ENTITY % setindex.element "INCLUDE">
+<![%setindex.element;[
+<!ELEMENT setindex ((%bookcomponent.title.content;)?,
+ (%component.mix;)*, (indexdiv* | indexentry*))>
+<!--end of setindex.element-->]]>
+
+<!ENTITY % setindex.attlist "INCLUDE">
+<![%setindex.attlist;[
+<!ATTLIST setindex
+ %common.attrib;
+ %indexes.role.attrib;
+ %local.indexes.attrib;
+>
+<!--end of setindex.attlist-->]]>
+<!--end of indexes.module-->]]>
+
+<!ENTITY % indexdiv.module "INCLUDE">
+<![%indexdiv.module;[
+
+<!-- SegmentedList in this content is useful for marking up permuted
+ indices. -->
+
+<!ENTITY % local.indexdiv.attrib "">
+<!ENTITY % indexdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % indexdiv.element "INCLUDE">
+<![%indexdiv.element;[
+<!ELEMENT indexdiv ((%sect.title.content;)?, ((%indexdivcomponent.mix;)*,
+ (indexentry+ | segmentedlist)))>
+<!--end of indexdiv.element-->]]>
+
+<!ENTITY % indexdiv.attlist "INCLUDE">
+<![%indexdiv.attlist;[
+<!ATTLIST indexdiv
+ %common.attrib;
+ %indexdiv.role.attrib;
+ %local.indexdiv.attrib;
+>
+<!--end of indexdiv.attlist-->]]>
+<!--end of indexdiv.module-->]]>
+
+<!ENTITY % indexentry.module "INCLUDE">
+<![%indexentry.module;[
+<!-- Index entries appear in the index, not the text. -->
+
+<!ENTITY % local.indexentry.attrib "">
+<!ENTITY % indexentry.role.attrib "%role.attrib;">
+
+<!ENTITY % indexentry.element "INCLUDE">
+<![%indexentry.element;[
+<!ELEMENT indexentry (primaryie, (seeie|seealsoie)*,
+ (secondaryie, (seeie|seealsoie|tertiaryie)*)*)>
+<!--end of indexentry.element-->]]>
+
+<!ENTITY % indexentry.attlist "INCLUDE">
+<![%indexentry.attlist;[
+<!ATTLIST indexentry
+ %common.attrib;
+ %indexentry.role.attrib;
+ %local.indexentry.attrib;
+>
+<!--end of indexentry.attlist-->]]>
+<!--end of indexentry.module-->]]>
+
+<!ENTITY % primsecterie.module "INCLUDE">
+<![%primsecterie.module;[
+<!ENTITY % local.primsecterie.attrib "">
+<!ENTITY % primsecterie.role.attrib "%role.attrib;">
+
+<!ENTITY % primaryie.element "INCLUDE">
+<![%primaryie.element;[
+<!ELEMENT primaryie (%ndxterm.char.mix;)*>
+<!--end of primaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % primaryie.attlist "INCLUDE">
+<![%primaryie.attlist;[
+<!ATTLIST primaryie
+ %linkends.attrib; %common.attrib;
+ %primsecterie.role.attrib;
+ %local.primsecterie.attrib;
+>
+<!--end of primaryie.attlist-->]]>
+
+<!ENTITY % secondaryie.element "INCLUDE">
+<![%secondaryie.element;[
+<!ELEMENT secondaryie (%ndxterm.char.mix;)*>
+<!--end of secondaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % secondaryie.attlist "INCLUDE">
+<![%secondaryie.attlist;[
+<!ATTLIST secondaryie
+ %linkends.attrib; %common.attrib;
+ %primsecterie.role.attrib;
+ %local.primsecterie.attrib;
+>
+<!--end of secondaryie.attlist-->]]>
+
+<!ENTITY % tertiaryie.element "INCLUDE">
+<![%tertiaryie.element;[
+<!ELEMENT tertiaryie (%ndxterm.char.mix;)*>
+<!--end of tertiaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % tertiaryie.attlist "INCLUDE">
+<![%tertiaryie.attlist;[
+<!ATTLIST tertiaryie
+ %linkends.attrib; %common.attrib;
+ %primsecterie.role.attrib;
+ %local.primsecterie.attrib;
+>
+<!--end of tertiaryie.attlist-->]]>
+
+<!--end of primsecterie.module-->]]>
+
+<!ENTITY % seeie.module "INCLUDE">
+<![%seeie.module;[
+<!ENTITY % local.seeie.attrib "">
+<!ENTITY % seeie.role.attrib "%role.attrib;">
+
+<!ENTITY % seeie.element "INCLUDE">
+<![%seeie.element;[
+<!ELEMENT seeie (%ndxterm.char.mix;)*>
+<!--end of seeie.element-->]]>
+
+<!-- to IndexEntry to look up -->
+
+
+<!ENTITY % seeie.attlist "INCLUDE">
+<![%seeie.attlist;[
+<!ATTLIST seeie
+ %linkend.attrib; %common.attrib;
+ %seeie.role.attrib;
+ %local.seeie.attrib;
+>
+<!--end of seeie.attlist-->]]>
+<!--end of seeie.module-->]]>
+
+<!ENTITY % seealsoie.module "INCLUDE">
+<![%seealsoie.module;[
+<!ENTITY % local.seealsoie.attrib "">
+<!ENTITY % seealsoie.role.attrib "%role.attrib;">
+
+<!ENTITY % seealsoie.element "INCLUDE">
+<![%seealsoie.element;[
+<!ELEMENT seealsoie (%ndxterm.char.mix;)*>
+<!--end of seealsoie.element-->]]>
+
+<!-- to related IndexEntries -->
+
+
+<!ENTITY % seealsoie.attlist "INCLUDE">
+<![%seealsoie.attlist;[
+<!ATTLIST seealsoie
+ %linkends.attrib; %common.attrib;
+ %seealsoie.role.attrib;
+ %local.seealsoie.attrib;
+>
+<!--end of seealsoie.attlist-->]]>
+<!--end of seealsoie.module-->]]>
+<!--end of index.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- RefEntry ............................................................. -->
+
+<!ENTITY % refentry.content.module "INCLUDE">
+<![%refentry.content.module;[
+<!ENTITY % refentry.module "INCLUDE">
+<![%refentry.module;[
+<!ENTITY % local.refentry.attrib "">
+<!ENTITY % refentry.role.attrib "%role.attrib;">
+<!--FUTURE USE (V4.0):
+......................
+The DocInfo element will be split out into ChapterInfo, AppendixInfo,
+etc.
+......................
+-->
+
+<!ENTITY % refentry.element "INCLUDE">
+<![%refentry.element;[
+<!ELEMENT refentry ((%ndxterm.class;)*,
+ docinfo?, refmeta?, (comment|%link.char.class;)*,
+ refnamediv, refsynopsisdiv?, refsect1+)>
+<!--end of refentry.element-->]]>
+
+<!ENTITY % refentry.attlist "INCLUDE">
+<![%refentry.attlist;[
+<!ATTLIST refentry
+ %status.attrib;
+ %common.attrib;
+ %refentry.role.attrib;
+ %local.refentry.attrib;
+>
+<!--end of refentry.attlist-->]]>
+<!--end of refentry.module-->]]>
+
+<!ENTITY % refmeta.module "INCLUDE">
+<![%refmeta.module;[
+<!ENTITY % local.refmeta.attrib "">
+<!ENTITY % refmeta.role.attrib "%role.attrib;">
+
+<!ENTITY % refmeta.element "INCLUDE">
+<![%refmeta.element;[
+<!ELEMENT refmeta ((%ndxterm.class;)*,
+ refentrytitle, manvolnum?, refmiscinfo*,
+ (%ndxterm.class;)*)>
+<!--end of refmeta.element-->]]>
+
+<!ENTITY % refmeta.attlist "INCLUDE">
+<![%refmeta.attlist;[
+<!ATTLIST refmeta
+ %common.attrib;
+ %refmeta.role.attrib;
+ %local.refmeta.attrib;
+>
+<!--end of refmeta.attlist-->]]>
+<!--end of refmeta.module-->]]>
+
+<!ENTITY % refmiscinfo.module "INCLUDE">
+<![%refmiscinfo.module;[
+<!ENTITY % local.refmiscinfo.attrib "">
+<!ENTITY % refmiscinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refmiscinfo.element "INCLUDE">
+<![%refmiscinfo.element;[
+<!ELEMENT refmiscinfo (%docinfo.char.mix;)*>
+<!--end of refmiscinfo.element-->]]>
+
+<!-- Class: Freely assignable parameter; no default -->
+
+
+<!ENTITY % refmiscinfo.attlist "INCLUDE">
+<![%refmiscinfo.attlist;[
+<!ATTLIST refmiscinfo
+ class CDATA #IMPLIED
+ %common.attrib;
+ %refmiscinfo.role.attrib;
+ %local.refmiscinfo.attrib;
+>
+<!--end of refmiscinfo.attlist-->]]>
+<!--end of refmiscinfo.module-->]]>
+
+<!ENTITY % refnamediv.module "INCLUDE">
+<![%refnamediv.module;[
+<!ENTITY % local.refnamediv.attrib "">
+<!ENTITY % refnamediv.role.attrib "%role.attrib;">
+
+<!ENTITY % refnamediv.element "INCLUDE">
+<![%refnamediv.element;[
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+ (comment|%link.char.class;)*)>
+<!--end of refnamediv.element-->]]>
+
+<!ENTITY % refnamediv.attlist "INCLUDE">
+<![%refnamediv.attlist;[
+<!ATTLIST refnamediv
+ %common.attrib;
+ %refnamediv.role.attrib;
+ %local.refnamediv.attrib;
+>
+<!--end of refnamediv.attlist-->]]>
+<!--end of refnamediv.module-->]]>
+
+<!ENTITY % refdescriptor.module "INCLUDE">
+<![%refdescriptor.module;[
+<!ENTITY % local.refdescriptor.attrib "">
+<!ENTITY % refdescriptor.role.attrib "%role.attrib;">
+
+<!ENTITY % refdescriptor.element "INCLUDE">
+<![%refdescriptor.element;[
+<!ELEMENT refdescriptor (%refname.char.mix;)*>
+<!--end of refdescriptor.element-->]]>
+
+<!ENTITY % refdescriptor.attlist "INCLUDE">
+<![%refdescriptor.attlist;[
+<!ATTLIST refdescriptor
+ %common.attrib;
+ %refdescriptor.role.attrib;
+ %local.refdescriptor.attrib;
+>
+<!--end of refdescriptor.attlist-->]]>
+<!--end of refdescriptor.module-->]]>
+
+<!ENTITY % refname.module "INCLUDE">
+<![%refname.module;[
+<!ENTITY % local.refname.attrib "">
+<!ENTITY % refname.role.attrib "%role.attrib;">
+
+<!ENTITY % refname.element "INCLUDE">
+<![%refname.element;[
+<!ELEMENT refname (%refname.char.mix;)*>
+<!--end of refname.element-->]]>
+
+<!ENTITY % refname.attlist "INCLUDE">
+<![%refname.attlist;[
+<!ATTLIST refname
+ %common.attrib;
+ %refname.role.attrib;
+ %local.refname.attrib;
+>
+<!--end of refname.attlist-->]]>
+<!--end of refname.module-->]]>
+
+<!ENTITY % refpurpose.module "INCLUDE">
+<![%refpurpose.module;[
+<!ENTITY % local.refpurpose.attrib "">
+<!ENTITY % refpurpose.role.attrib "%role.attrib;">
+
+<!ENTITY % refpurpose.element "INCLUDE">
+<![%refpurpose.element;[
+<!ELEMENT refpurpose (%refinline.char.mix;)*>
+<!--end of refpurpose.element-->]]>
+
+<!ENTITY % refpurpose.attlist "INCLUDE">
+<![%refpurpose.attlist;[
+<!ATTLIST refpurpose
+ %common.attrib;
+ %refpurpose.role.attrib;
+ %local.refpurpose.attrib;
+>
+<!--end of refpurpose.attlist-->]]>
+<!--end of refpurpose.module-->]]>
+
+<!ENTITY % refclass.module "INCLUDE">
+<![%refclass.module;[
+<!ENTITY % local.refclass.attrib "">
+<!ENTITY % refclass.role.attrib "%role.attrib;">
+
+<!ENTITY % refclass.element "INCLUDE">
+<![%refclass.element;[
+<!ELEMENT refclass (%refclass.char.mix;)*>
+<!--end of refclass.element-->]]>
+
+<!ENTITY % refclass.attlist "INCLUDE">
+<![%refclass.attlist;[
+<!ATTLIST refclass
+ %common.attrib;
+ %refclass.role.attrib;
+ %local.refclass.attrib;
+>
+<!--end of refclass.attlist-->]]>
+<!--end of refclass.module-->]]>
+
+<!ENTITY % refsynopsisdiv.module "INCLUDE">
+<![%refsynopsisdiv.module;[
+<!ENTITY % local.refsynopsisdiv.attrib "">
+<!ENTITY % refsynopsisdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % refsynopsisdiv.element "INCLUDE">
+<![%refsynopsisdiv.element;[
+<!ELEMENT refsynopsisdiv (refsynopsisdivinfo?, (%refsect.title.content;)?,
+ (((%refcomponent.mix;)+, refsect2*) | (refsect2+)))>
+<!--end of refsynopsisdiv.element-->]]>
+
+<!ENTITY % refsynopsisdiv.attlist "INCLUDE">
+<![%refsynopsisdiv.attlist;[
+<!ATTLIST refsynopsisdiv
+ %common.attrib;
+ %refsynopsisdiv.role.attrib;
+ %local.refsynopsisdiv.attrib;
+>
+<!--end of refsynopsisdiv.attlist-->]]>
+<!--end of refsynopsisdiv.module-->]]>
+
+<!ENTITY % refsect1.module "INCLUDE">
+<![%refsect1.module;[
+<!ENTITY % local.refsect1.attrib "">
+<!ENTITY % refsect1.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect1.element "INCLUDE">
+<![%refsect1.element;[
+<!ELEMENT refsect1 (refsect1info?, (%refsect.title.content;),
+ (((%refcomponent.mix;)+, refsect2*) | refsect2+))>
+<!--end of refsect1.element-->]]>
+
+<!ENTITY % refsect1.attlist "INCLUDE">
+<![%refsect1.attlist;[
+<!ATTLIST refsect1
+ %status.attrib;
+ %common.attrib;
+ %refsect1.role.attrib;
+ %local.refsect1.attrib;
+>
+<!--end of refsect1.attlist-->]]>
+<!--end of refsect1.module-->]]>
+
+<!ENTITY % refsect2.module "INCLUDE">
+<![%refsect2.module;[
+<!ENTITY % local.refsect2.attrib "">
+<!ENTITY % refsect2.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect2.element "INCLUDE">
+<![%refsect2.element;[
+<!ELEMENT refsect2 (refsect2info?, (%refsect.title.content;),
+ (((%refcomponent.mix;)+, refsect3*) | refsect3+))>
+<!--end of refsect2.element-->]]>
+
+<!ENTITY % refsect2.attlist "INCLUDE">
+<![%refsect2.attlist;[
+<!ATTLIST refsect2
+ %status.attrib;
+ %common.attrib;
+ %refsect2.role.attrib;
+ %local.refsect2.attrib;
+>
+<!--end of refsect2.attlist-->]]>
+<!--end of refsect2.module-->]]>
+
+<!ENTITY % refsect3.module "INCLUDE">
+<![%refsect3.module;[
+<!ENTITY % local.refsect3.attrib "">
+<!ENTITY % refsect3.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect3.element "INCLUDE">
+<![%refsect3.element;[
+<!ELEMENT refsect3 (refsect3info?, (%refsect.title.content;),
+ (%refcomponent.mix;)+)>
+<!--end of refsect3.element-->]]>
+
+<!ENTITY % refsect3.attlist "INCLUDE">
+<![%refsect3.attlist;[
+<!ATTLIST refsect3
+ %status.attrib;
+ %common.attrib;
+ %refsect3.role.attrib;
+ %local.refsect3.attrib;
+>
+<!--end of refsect3.attlist-->]]>
+<!--end of refsect3.module-->]]>
+<!--end of refentry.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Article .............................................................. -->
+
+<!ENTITY % article.module "INCLUDE">
+<![%article.module;[
+<!-- An Article is a chapter-level, stand-alone document that is often,
+ but need not be, collected into a Book. -->
+<!--FUTURE USE (V4.0):
+......................
+The %nav.class; entity now allows ToC; ToCchap will be allowed instead.
+RefEntry will be removed from the main content of Article.
+......................
+-->
+
+<!--FUTURE USE (V4.0):
+......................
+The ArtHeader element will be renamed to ArticleInfo.
+......................
+-->
+
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+
+<!ENTITY % article.element "INCLUDE">
+<![%article.element;[
+<!ELEMENT article ((%div.title.content;)?, artheader?, tocchap?, lot*,
+ (%bookcomponent.content;),
+ ((%nav.class;) | (%appendix.class;) | ackno)*)>
+<!--end of article.element-->]]>
+
+<!-- Class: Indicates the type of a particular article;
+ all articles have the same structure and general purpose.
+ No default. -->
+<!-- ParentBook: ID of the enclosing Book -->
+
+
+<!ENTITY % article.attlist "INCLUDE">
+<![%article.attlist;[
+<!ATTLIST article
+ class (journalarticle
+ |productsheet
+ |whitepaper
+ |techreport
+ |faq) #IMPLIED
+ parentbook IDREF #IMPLIED
+ %status.attrib;
+ %common.attrib;
+ %article.role.attrib;
+ %local.article.attrib;
+>
+<!--end of article.attlist-->]]>
+<!--end of article.module-->]]>
+
+<!-- End of DocBk XML document hierarchy module V3.1.7 .................... -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/3.1.7/dbnotnx.mod b/tests/docbook/dtd/3.1.7/dbnotnx.mod
new file mode 100644
index 00000000..dc4399d6
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/dbnotnx.mod
@@ -0,0 +1,60 @@
+<!-- ====================================================================== -->
+<!-- DocBk XML Notations V3.1.7
+ Part of the DocBk XML V3.1.7 DTD
+ http://nwalsh.com/docbook/xml/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+ "BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+ | EPS | EQN | FAX | GIF | GIF87a | GIF89a
+ | JPG | JPEG | IGES | PCX
+ | PIC | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+ | linespecific
+ %local.notation.class;">
+
+<!NOTATION BMP PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF SYSTEM "DITROFF">
+<!NOTATION DVI SYSTEM "DVI">
+<!NOTATION EPS PUBLIC
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN SYSTEM "EQN">
+<!NOTATION FAX PUBLIC
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF SYSTEM "GIF">
+<!NOTATION GIF87a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+
+<!NOTATION GIF89a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG SYSTEM "JPG">
+<!NOTATION JPEG SYSTEM "JPG">
+<!NOTATION IGES PUBLIC
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC SYSTEM "PIC">
+<!NOTATION PS SYSTEM "PS">
+<!NOTATION SGML PUBLIC
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL SYSTEM "TBL">
+<!NOTATION TEX PUBLIC
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF SYSTEM "TIFF">
+<!NOTATION WMF PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG SYSTEM "WPG"> <!--WordPerfect Graphic format-->
+<!NOTATION linespecific SYSTEM "linespecific">
+
+<!-- End of DocBk XML notations module V3.1.7 ............................. -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/3.1.7/dbpoolx.mod b/tests/docbook/dtd/3.1.7/dbpoolx.mod
new file mode 100644
index 00000000..94da0f99
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/dbpoolx.mod
@@ -0,0 +1,7291 @@
+<!-- ====================================================================== -->
+<!-- DocBk XML Information Pool V3.1.7
+ Part of the DocBk XML V3.1.7 DTD
+ http://nwalsh.com/docbook/xml/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!-- ...................................................................... -->
+<!-- General-purpose semantics entities ................................... -->
+
+<!ENTITY % yesorno.attvals "CDATA">
+
+<!-- ...................................................................... -->
+<!-- Entities for module inclusions ....................................... -->
+
+<!ENTITY % dbpool.redecl.module "IGNORE">
+
+<!-- ...................................................................... -->
+<!-- Entities for element classes and mixtures ............................ -->
+
+<!-- "Ubiquitous" classes: ndxterm.class and beginpage -->
+
+<!ENTITY % local.ndxterm.class "">
+<!ENTITY % ndxterm.class
+ "indexterm %local.ndxterm.class;">
+
+<!-- Object-level classes ................................................. -->
+
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+ "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist
+ |simplelist|variablelist %local.list.class;">
+
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+ "caution|important|note|tip|warning %local.admon.class;">
+
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+ "literallayout|programlisting|programlistingco|screen
+ |screenco|screenshot %local.linespecific.class;">
+
+<!ENTITY % local.synop.class "">
+<!ENTITY % synop.class
+ "synopsis|cmdsynopsis|funcsynopsis %local.synop.class;">
+
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+ "formalpara|para|simpara %local.para.class;">
+
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+ "address|blockquote
+ |graphic|graphicco|mediaobject|mediaobjectco
+ |informalequation
+ |informalexample
+ |informalfigure
+ |informaltable %local.informal.class;">
+
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+ "equation|example|figure|table %local.formal.class;">
+
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+ "msgset|procedure|sidebar|qandaset %local.compound.class;">
+
+<!ENTITY % local.genobj.class "">
+<!ENTITY % genobj.class
+ "anchor|bridgehead|comment|highlights
+ %local.genobj.class;">
+
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+ "abstract|authorblurb|epigraph
+ %local.descobj.class;">
+
+<!-- Character-level classes .............................................. -->
+
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % xref.char.class
+ "footnoteref|xref %local.xref.char.class;">
+
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+ "abbrev|acronym|citation|citerefentry|citetitle|emphasis
+ |firstterm|foreignphrase|glossterm|footnote|phrase
+ |quote|trademark|wordasword %local.gen.char.class;">
+
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+ "link|olink|ulink %local.link.char.class;">
+
+<!ENTITY % local.tech.char.class "">
+<!--FUTURE USE (V4.0):
+......................
+MsgText will be removed from tech.char.class to a more appropriate
+parameter entity.
+......................
+-->
+<!ENTITY % tech.char.class
+ "action|application|classname|command|computeroutput
+ |database|email|envar|errorcode|errorname|errortype|filename
+ |function|guibutton|guiicon|guilabel|guimenu|guimenuitem
+ |guisubmenu|hardware|interface|interfacedefinition|keycap
+ |keycode|keycombo|keysym|literal|constant|markup|medialabel
+ |menuchoice|mousebutton|msgtext|option|optional|parameter
+ |prompt|property|replaceable|returnvalue|sgmltag|structfield
+ |structname|symbol|systemitem|token|type|userinput|varname
+ %local.tech.char.class;">
+
+<!ENTITY % local.base.char.class "">
+<!ENTITY % base.char.class
+ "anchor %local.base.char.class;">
+
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+ "author|authorinitials|corpauthor|modespec|othercredit
+ |productname|productnumber|revhistory
+ %local.docinfo.char.class;">
+
+<!ENTITY % local.other.char.class "">
+<!ENTITY % other.char.class
+ "comment|subscript|superscript %local.other.char.class;">
+
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+ "inlinegraphic|inlinemediaobject|inlineequation %local.inlineobj.char.class;">
+
+<!-- Redeclaration placeholder ............................................ -->
+
+<!-- For redeclaring entities that are declared after this point while
+ retaining their references to the entities that are declared before
+ this point -->
+
+<![%dbpool.redecl.module;[
+<!-- Defining rdbpool here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbpool "">
+%rdbpool;
+<!--end of dbpool.redecl.module-->]]>
+
+<!-- Object-level mixtures ................................................ -->
+
+<!--
+ list admn line synp para infm form cmpd gen desc
+Component mixture X X X X X X X X X X
+Sidebar mixture X X X X X X X a X
+Footnote mixture X X X X X
+Example mixture X X X X X
+Highlights mixture X X X
+Paragraph mixture X X X X
+Admonition mixture X X X X X X b c
+Figure mixture X X X
+Table entry mixture X X X X d
+Glossary def mixture X X X X X e
+Legal notice mixture X X X X f
+
+a. Just Procedure; not Sidebar itself or MsgSet.
+b. No MsgSet.
+c. No Highlights.
+d. Just Graphic; no other informal objects.
+e. No Anchor, BridgeHead, or Highlights.
+f. Just BlockQuote; no other informal objects.
+-->
+
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%genobj.class; |%descobj.class;
+ |%ndxterm.class; |beginpage
+ %local.component.mix;">
+
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |procedure
+ |%genobj.class;
+ |%ndxterm.class; |beginpage
+ %local.sidebar.mix;">
+
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % qandaset.mix
+ "%list.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |procedure
+ |%genobj.class;
+ |%ndxterm.class;
+ %local.qandaset.mix;">
+
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+ "%list.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ %local.footnote.mix;">
+
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+ "%list.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%ndxterm.class; |beginpage
+ %local.example.mix;">
+
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % highlights.mix
+ "%list.class; |%admon.class;
+ |%para.class;
+ |%ndxterm.class; |beginpage
+ %local.highlights.mix;">
+
+<!-- %synop.class; is already included in para.char.mix because synopses
+ used inside paragraph-like contexts are "inline" synopses -->
+<!-- %formal.class; is explicitly excluded from many contexts in which
+ paragraphs are used -->
+<!ENTITY % local.para.mix "">
+<!ENTITY % para.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%informal.class;
+ |%formal.class;
+ %local.para.mix;">
+
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+ "%list.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |procedure|sidebar
+ |anchor|bridgehead|comment
+ |%ndxterm.class; |beginpage
+ %local.admon.mix;">
+
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+ "%linespecific.class; |%synop.class;
+ |%informal.class;
+ |%ndxterm.class; |beginpage
+ %local.figure.mix;">
+
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |graphic|mediaobject
+ %local.tabentry.mix;">
+
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % glossdef.mix
+ "%list.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ |comment
+ |%ndxterm.class; |beginpage
+ %local.glossdef.mix;">
+
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ |%ndxterm.class; |beginpage
+ %local.legalnotice.mix;">
+
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.textobject.mix;">
+
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix
+ "videoobject|audioobject|imageobject %local.mediaobject.mix;">
+
+<!-- Character-level mixtures ............................................. -->
+
+<!--
+ #PCD xref word link cptr base dnfo othr inob (synop)
+para.char.mix X X X X X X X X X X
+title.char.mix X X X X X X X X X
+ndxterm.char.mix X X X X X X X X a
+cptr.char.mix X X X X X a
+smallcptr.char.mix X b a
+word.char.mix X c X X X a
+docinfo.char.mix X d b X a
+
+a. Just InlineGraphic; no InlineEquation.
+b. Just Replaceable; no other computer terms.
+c. Just Emphasis and Trademark; no other word elements.
+d. Just Acronym, Emphasis, and Trademark; no other word elements.
+-->
+
+<!-- Note that synop.class is not usually used for *.char.mixes,
+ but is used here because synopses used inside paragraph
+ contexts are "inline" synopses -->
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+ "#PCDATA
+ |%xref.char.class; |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class; |%docinfo.char.class;
+ |%other.char.class; |%inlineobj.char.class;
+ |%synop.class;
+ |%ndxterm.class; |beginpage
+ %local.para.char.mix;">
+
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+ "#PCDATA
+ |%xref.char.class; |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class; |%docinfo.char.class;
+ |%other.char.class; |%inlineobj.char.class;
+ |%ndxterm.class;
+ %local.title.char.mix;">
+
+<!ENTITY % local.ndxterm.char.mix "">
+<!ENTITY % ndxterm.char.mix
+ "#PCDATA
+ |%xref.char.class; |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class; |%docinfo.char.class;
+ |%other.char.class; |inlinegraphic|inlinemediaobject
+ %local.ndxterm.char.mix;">
+
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+ "#PCDATA
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class;
+ |%other.char.class; |inlinegraphic|inlinemediaobject
+ |%ndxterm.class; |beginpage
+ %local.cptr.char.mix;">
+
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+ "#PCDATA
+ |replaceable
+ |inlinegraphic|inlinemediaobject
+ |%ndxterm.class; |beginpage
+ %local.smallcptr.char.mix;">
+
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+ "#PCDATA
+ |acronym|emphasis|trademark
+ |%link.char.class;
+ |%base.char.class;
+ |%other.char.class; |inlinegraphic|inlinemediaobject
+ |%ndxterm.class; |beginpage
+ %local.word.char.mix;">
+
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+ "#PCDATA
+ |%link.char.class;
+ |emphasis|trademark
+ |replaceable
+ |%other.char.class; |inlinegraphic|inlinemediaobject
+ |%ndxterm.class;
+ %local.docinfo.char.mix;">
+<!--ENTITY % bibliocomponent.mix (see Bibliographic section, below)-->
+<!--ENTITY % person.ident.mix (see Bibliographic section, below)-->
+
+<!-- ...................................................................... -->
+<!-- Entities for content models .......................................... -->
+
+<!ENTITY % formalobject.title.content "title, titleabbrev?">
+
+<!ENTITY % equation.content "(graphic+|mediaobject+)">
+
+<!ENTITY % inlineequation.content "(graphic+|inlinemediaobject+)">
+
+<!ENTITY % programlisting.content "%para.char.mix; | co | lineannotation">
+
+<!ENTITY % screen.content "%para.char.mix; | co | lineannotation">
+
+<!-- ...................................................................... -->
+<!-- Entities for attributes and attribute components ..................... -->
+
+<!-- Effectivity attributes ............................................... -->
+
+
+<!-- Arch: Computer or chip architecture to which element applies; no
+ default -->
+
+<!ENTITY % arch.attrib
+ "arch CDATA #IMPLIED">
+
+
+<!-- Conformance: Standards conformance characteristics -->
+
+<!ENTITY % conformance.attrib
+ "conformance NMTOKENS #IMPLIED">
+
+
+<!-- OS: Operating system to which element applies; no default -->
+
+<!ENTITY % os.attrib
+ "os CDATA #IMPLIED">
+
+
+<!-- Revision: Editorial revision to which element belongs; no default -->
+
+<!ENTITY % revision.attrib
+ "revision CDATA #IMPLIED">
+
+
+<!-- UserLevel: Level of user experience to which element applies; no
+ default -->
+
+<!ENTITY % userlevel.attrib
+ "userlevel CDATA #IMPLIED">
+
+
+<!-- Vendor: Computer vendor to which element applies; no default -->
+
+<!ENTITY % vendor.attrib
+ "vendor CDATA #IMPLIED">
+
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % effectivity.attrib
+ "%arch.attrib;
+ %conformance.attrib;
+ %os.attrib;
+ %revision.attrib;
+ %userlevel.attrib;
+ %vendor.attrib;
+ %local.effectivity.attrib;"
+>
+
+<!-- Common attributes .................................................... -->
+
+
+<!-- Id: Unique identifier of element; no default -->
+
+<!ENTITY % id.attrib
+ "id ID #IMPLIED">
+
+
+<!-- Id: Unique identifier of element; a value must be supplied; no
+ default -->
+
+<!ENTITY % idreq.attrib
+ "id ID #REQUIRED">
+
+
+<!-- Lang: Indicator of language in which element is written, for
+ translation, character set management, etc.; no default -->
+
+<!ENTITY % lang.attrib
+ "lang CDATA #IMPLIED">
+
+
+<!-- Remap: Previous role of element before conversion; no default -->
+
+<!ENTITY % remap.attrib
+ "remap CDATA #IMPLIED">
+
+
+<!-- Role: New role of element in local environment; no default -->
+
+<!ENTITY % role.attrib
+ "role CDATA #IMPLIED">
+
+
+<!-- XRefLabel: Alternate labeling string for XRef text generation;
+ default is usually title or other appropriate label text already
+ contained in element -->
+
+<!ENTITY % xreflabel.attrib
+ "xreflabel CDATA #IMPLIED">
+
+
+<!-- RevisionFlag: Revision status of element; default is that element
+ wasn't revised -->
+
+<!ENTITY % revisionflag.attrib
+ "revisionflag (changed
+ |added
+ |deleted
+ |off) #IMPLIED">
+
+<!ENTITY % local.common.attrib "">
+
+<!-- Role is included explicitly on each element -->
+
+<!ENTITY % common.attrib
+ "%id.attrib;
+ %lang.attrib;
+ %remap.attrib;
+ %xreflabel.attrib;
+ %revisionflag.attrib;
+ %effectivity.attrib;
+ %local.common.attrib;"
+>
+
+
+<!-- Role is included explicitly on each element -->
+
+<!ENTITY % idreq.common.attrib
+ "%idreq.attrib;
+ %lang.attrib;
+ %remap.attrib;
+ %xreflabel.attrib;
+ %revisionflag.attrib;
+ %effectivity.attrib;
+ %local.common.attrib;"
+>
+
+<!-- Semi-common attributes and other attribute entities .................. -->
+
+<!ENTITY % local.graphics.attrib "">
+
+<!-- EntityRef: Name of an external entity containing the content
+ of the graphic -->
+<!-- FileRef: Filename, qualified by a pathname if desired,
+ designating the file containing the content of the graphic -->
+<!-- Format: Notation of the element content, if any -->
+<!-- SrcCredit: Information about the source of the Graphic -->
+<!-- Width: Same as CALS reprowid (desired width) -->
+<!-- Depth: Same as CALS reprodep (desired depth) -->
+<!-- Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ application-specific -->
+<!-- Scale: Conflation of CALS hscale and vscale -->
+<!-- Scalefit: Same as CALS scalefit -->
+
+<!ENTITY % graphics.attrib
+ "
+ entityref ENTITY #IMPLIED
+ fileref CDATA #IMPLIED
+ format (%notation.class;) #IMPLIED
+ srccredit CDATA #IMPLIED
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %local.graphics.attrib;"
+>
+
+<!ENTITY % local.keyaction.attrib "">
+
+<!-- Action: Key combination type; default is unspecified if one
+ child element, Simul if there is more than one; if value is
+ Other, the OtherAction attribute must have a nonempty value -->
+<!-- OtherAction: User-defined key combination type -->
+
+<!ENTITY % keyaction.attrib
+ "
+ action (click
+ |double-click
+ |press
+ |seq
+ |simul
+ |other) #IMPLIED
+ otheraction CDATA #IMPLIED
+ %local.keyaction.attrib;"
+>
+
+
+<!-- Label: Identifying number or string; default is usually the
+ appropriate number or string autogenerated by a formatter -->
+
+<!ENTITY % label.attrib
+ "label CDATA #IMPLIED">
+
+
+<!-- Format: whether element is assumed to contain significant white
+ space -->
+
+<!ENTITY % linespecific.attrib
+ "format NOTATION
+ (linespecific) 'linespecific'">
+
+
+<!-- Linkend: link to related information; no default -->
+
+<!ENTITY % linkend.attrib
+ "linkend IDREF #IMPLIED">
+
+
+<!-- Linkend: required link to related information -->
+
+<!ENTITY % linkendreq.attrib
+ "linkend IDREF #REQUIRED">
+
+
+<!-- Linkends: link to one or more sets of related information; no
+ default -->
+
+<!ENTITY % linkends.attrib
+ "linkends IDREFS #IMPLIED">
+
+
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+ "mark CDATA #IMPLIED
+ %local.mark.attrib;"
+>
+
+
+<!-- MoreInfo: whether element's content has an associated RefEntry -->
+
+<!ENTITY % moreinfo.attrib
+ "moreinfo (refentry|none) 'none'">
+
+
+<!-- Pagenum: number of page on which element appears; no default -->
+
+<!ENTITY % pagenum.attrib
+ "pagenum CDATA #IMPLIED">
+
+<!ENTITY % local.status.attrib "">
+
+<!-- Status: Editorial or publication status of the element
+ it applies to, such as "in review" or "approved for distribution" -->
+
+<!ENTITY % status.attrib
+ "status CDATA #IMPLIED
+ %local.status.attrib;"
+>
+
+
+<!-- Width: width of the longest line in the element to which it
+ pertains, in number of characters -->
+
+<!ENTITY % width.attrib
+ "width CDATA #IMPLIED">
+
+<!-- ...................................................................... -->
+<!-- Title elements ....................................................... -->
+
+<!ENTITY % title.module "INCLUDE">
+<![%title.module;[
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+
+<!ENTITY % title.element "INCLUDE">
+<![%title.element;[
+<!ELEMENT title (%title.char.mix;)*>
+<!--end of title.element-->]]>
+
+<!ENTITY % title.attlist "INCLUDE">
+<![%title.attlist;[
+<!ATTLIST title
+ %pagenum.attrib;
+ %common.attrib;
+ %title.role.attrib;
+ %local.title.attrib;
+>
+<!--end of title.attlist-->]]>
+<!--end of title.module-->]]>
+
+<!ENTITY % titleabbrev.module "INCLUDE">
+<![%titleabbrev.module;[
+<!ENTITY % local.titleabbrev.attrib "">
+<!ENTITY % titleabbrev.role.attrib "%role.attrib;">
+
+<!ENTITY % titleabbrev.element "INCLUDE">
+<![%titleabbrev.element;[
+<!ELEMENT titleabbrev (%title.char.mix;)*>
+<!--end of titleabbrev.element-->]]>
+
+<!ENTITY % titleabbrev.attlist "INCLUDE">
+<![%titleabbrev.attlist;[
+<!ATTLIST titleabbrev
+ %common.attrib;
+ %titleabbrev.role.attrib;
+ %local.titleabbrev.attrib;
+>
+<!--end of titleabbrev.attlist-->]]>
+<!--end of titleabbrev.module-->]]>
+
+<!ENTITY % subtitle.module "INCLUDE">
+<![%subtitle.module;[
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % subtitle.element "INCLUDE">
+<![%subtitle.element;[
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!--end of subtitle.element-->]]>
+
+<!ENTITY % subtitle.attlist "INCLUDE">
+<![%subtitle.attlist;[
+<!ATTLIST subtitle
+ %common.attrib;
+ %subtitle.role.attrib;
+ %local.subtitle.attrib;
+>
+<!--end of subtitle.attlist-->]]>
+<!--end of subtitle.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Bibliographic entities and elements .................................. -->
+
+<!-- The bibliographic elements are typically used in the document
+ hierarchy. They do not appear in content models of information
+ pool elements. See also the document information elements,
+ below. -->
+
+<!ENTITY % local.person.ident.mix "">
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new
+wrapper element created to allow association of those two elements with
+Author name information.
+......................
+-->
+<!ENTITY % person.ident.mix
+ "honorific|firstname|surname|lineage|othername|affiliation
+ |authorblurb|contrib %local.person.ident.mix;">
+
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+ "abbrev|abstract|address|artpagenums|author
+ |authorgroup|authorinitials|bibliomisc|biblioset
+ |collab|confgroup|contractnum|contractsponsor
+ |copyright|corpauthor|corpname|date|edition
+ |editor|invpartnumber|isbn|issn|issuenum|orgname
+ |othercredit|pagenums|printhistory|productname
+ |productnumber|pubdate|publisher|publishername
+ |pubsnumber|releaseinfo|revhistory|seriesvolnums
+ |subtitle|title|titleabbrev|volumenum|citetitle
+ |%person.ident.mix;
+ |%ndxterm.class;
+ %local.bibliocomponent.mix;">
+
+<!ENTITY % biblioentry.module "INCLUDE">
+<![%biblioentry.module;[
+<!ENTITY % local.biblioentry.attrib "">
+<!--FUTURE USE (V4.0):
+......................
+The ArtHeader element will be renamed to ArticleInfo.
+......................
+-->
+<!ENTITY % biblioentry.role.attrib "%role.attrib;">
+
+<!ENTITY % biblioentry.element "INCLUDE">
+<![%biblioentry.element;[
+<!ELEMENT biblioentry ((artheader | bookbiblio | seriesinfo
+ | (%bibliocomponent.mix;))+)>
+<!--end of biblioentry.element-->]]>
+
+<!ENTITY % biblioentry.attlist "INCLUDE">
+<![%biblioentry.attlist;[
+<!ATTLIST biblioentry
+ %common.attrib;
+ %biblioentry.role.attrib;
+ %local.biblioentry.attrib;
+>
+<!--end of biblioentry.attlist-->]]>
+<!--end of biblioentry.module-->]]>
+
+<!ENTITY % bibliomixed.module "INCLUDE">
+<![%bibliomixed.module;[
+<!ENTITY % local.bibliomixed.attrib "">
+<!ENTITY % bibliomixed.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliomixed.element "INCLUDE">
+<![%bibliomixed.element;[
+<!ELEMENT bibliomixed (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!--end of bibliomixed.element-->]]>
+
+<!ENTITY % bibliomixed.attlist "INCLUDE">
+<![%bibliomixed.attlist;[
+<!ATTLIST bibliomixed
+ %common.attrib;
+ %bibliomixed.role.attrib;
+ %local.bibliomixed.attrib;
+>
+<!--end of bibliomixed.attlist-->]]>
+<!--end of bibliomixed.module-->]]>
+
+<!ENTITY % bookbiblio.module "INCLUDE">
+<![%bookbiblio.module;[
+<!--FUTURE USE (V4.0):
+......................
+BookBiblio will be discarded.
+......................
+-->
+<!ENTITY % local.bookbiblio.attrib "">
+<!ENTITY % bookbiblio.role.attrib "%role.attrib;">
+
+<!ENTITY % bookbiblio.element "INCLUDE">
+<![%bookbiblio.element;[
+<!ELEMENT bookbiblio ((%bibliocomponent.mix; | seriesinfo)+)>
+<!--end of bookbiblio.element-->]]>
+
+<!ENTITY % bookbiblio.attlist "INCLUDE">
+<![%bookbiblio.attlist;[
+<!ATTLIST bookbiblio
+ %common.attrib;
+ %bookbiblio.role.attrib;
+ %local.bookbiblio.attrib;
+>
+<!--end of bookbiblio.attlist-->]]>
+<!--end of bookbiblio.module-->]]>
+
+<!ENTITY % seriesinfo.module "INCLUDE">
+<![%seriesinfo.module;[
+<!--FUTURE USE (V4.0):
+......................
+SeriesInfo *may* be discarded; it has become a special case of BiblioSet.
+......................
+-->
+<!ENTITY % local.seriesinfo.attrib "">
+<!ENTITY % seriesinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % seriesinfo.element "INCLUDE">
+<![%seriesinfo.element;[
+<!ELEMENT seriesinfo ((%bibliocomponent.mix;)+)>
+<!--end of seriesinfo.element-->]]>
+
+<!ENTITY % seriesinfo.attlist "INCLUDE">
+<![%seriesinfo.attlist;[
+<!ATTLIST seriesinfo
+ %common.attrib;
+ %seriesinfo.role.attrib;
+ %local.seriesinfo.attrib;
+>
+<!--end of seriesinfo.attlist-->]]>
+<!--end of seriesinfo.module-->]]>
+
+<!ENTITY % artheader.module "INCLUDE">
+<![%artheader.module;[
+<!--FUTURE USE (V4.0):
+......................
+BookBiblio will be discarded and will be removed from ArtHeader, which
+will be renamed to ArticleInfo.
+......................
+-->
+<!ENTITY % local.artheader.attrib "">
+<!ENTITY % artheader.role.attrib "%role.attrib;">
+
+<!ENTITY % artheader.element "INCLUDE">
+<![%artheader.element;[
+<!ELEMENT artheader ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;
+ | bookbiblio)+)>
+<!--end of artheader.element-->]]>
+
+<!ENTITY % artheader.attlist "INCLUDE">
+<![%artheader.attlist;[
+<!ATTLIST artheader
+ %common.attrib;
+ %artheader.role.attrib;
+ %local.artheader.attrib;
+>
+<!--end of artheader.attlist-->]]>
+<!--end of artheader.module-->]]>
+
+<!ENTITY % biblioset.module "INCLUDE">
+<![%biblioset.module;[
+<!ENTITY % local.biblioset.attrib "">
+<!ENTITY % biblioset.role.attrib "%role.attrib;">
+
+<!ENTITY % biblioset.element "INCLUDE">
+<![%biblioset.element;[
+<!ELEMENT biblioset ((%bibliocomponent.mix;)+)>
+<!--end of biblioset.element-->]]>
+
+<!-- Relation: Relationship of elements contained within BiblioSet -->
+
+
+<!ENTITY % biblioset.attlist "INCLUDE">
+<![%biblioset.attlist;[
+<!ATTLIST biblioset
+ relation CDATA #IMPLIED
+ %common.attrib;
+ %biblioset.role.attrib;
+ %local.biblioset.attrib;
+>
+<!--end of biblioset.attlist-->]]>
+<!--end of biblioset.module-->]]>
+
+<!ENTITY % bibliomset.module "INCLUDE">
+<![%bibliomset.module;[
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+
+<!ENTITY % bibliomset.element "INCLUDE">
+<![%bibliomset.element;[
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!--end of bibliomset.element-->]]>
+
+<!-- Relation: Relationship of elements contained within BiblioMSet -->
+
+
+<!ENTITY % bibliomset.attlist "INCLUDE">
+<![%bibliomset.attlist;[
+<!ATTLIST bibliomset
+ relation CDATA #IMPLIED
+ %bibliomset.role.attrib;
+ %common.attrib;
+ %local.bibliomset.attrib;
+>
+<!--end of bibliomset.attlist-->]]>
+<!--end of bibliomset.module-->]]>
+
+<!ENTITY % bibliomisc.module "INCLUDE">
+<![%bibliomisc.module;[
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliomisc.element "INCLUDE">
+<![%bibliomisc.element;[
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!--end of bibliomisc.element-->]]>
+
+<!ENTITY % bibliomisc.attlist "INCLUDE">
+<![%bibliomisc.attlist;[
+<!ATTLIST bibliomisc
+ %common.attrib;
+ %bibliomisc.role.attrib;
+ %local.bibliomisc.attrib;
+>
+<!--end of bibliomisc.attlist-->]]>
+<!--end of bibliomisc.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Subject, Keyword, and ITermSet elements .............................. -->
+
+<!ENTITY % subjectset.content.module "INCLUDE">
+<![%subjectset.content.module;[
+<!ENTITY % subjectset.module "INCLUDE">
+<![%subjectset.module;[
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+
+<!ENTITY % subjectset.element "INCLUDE">
+<![%subjectset.element;[
+<!ELEMENT subjectset (subject+)>
+<!--end of subjectset.element-->]]>
+
+<!-- Scheme: Controlled vocabulary employed in SubjectTerms -->
+
+
+<!ENTITY % subjectset.attlist "INCLUDE">
+<![%subjectset.attlist;[
+<!ATTLIST subjectset
+ scheme NMTOKEN #IMPLIED
+ %common.attrib;
+ %subjectset.role.attrib;
+ %local.subjectset.attrib;
+>
+<!--end of subjectset.attlist-->]]>
+<!--end of subjectset.module-->]]>
+
+<!ENTITY % subject.module "INCLUDE">
+<![%subject.module;[
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+
+<!ENTITY % subject.element "INCLUDE">
+<![%subject.element;[
+<!ELEMENT subject (subjectterm+)>
+<!--end of subject.element-->]]>
+
+<!-- Weight: Ranking of this group of SubjectTerms relative
+ to others, 0 is low, no highest value specified -->
+
+
+<!ENTITY % subject.attlist "INCLUDE">
+<![%subject.attlist;[
+<!ATTLIST subject
+ weight CDATA #IMPLIED
+ %common.attrib;
+ %subject.role.attrib;
+ %local.subject.attrib;
+>
+<!--end of subject.attlist-->]]>
+<!--end of subject.module-->]]>
+
+<!ENTITY % subjectterm.module "INCLUDE">
+<![%subjectterm.module;[
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+
+<!ENTITY % subjectterm.element "INCLUDE">
+<![%subjectterm.element;[
+<!ELEMENT subjectterm (#PCDATA)>
+<!--end of subjectterm.element-->]]>
+
+<!ENTITY % subjectterm.attlist "INCLUDE">
+<![%subjectterm.attlist;[
+<!ATTLIST subjectterm
+ %common.attrib;
+ %subjectterm.role.attrib;
+ %local.subjectterm.attrib;
+>
+<!--end of subjectterm.attlist-->]]>
+<!--end of subjectterm.module-->]]>
+<!--end of subjectset.content.module-->]]>
+
+<!ENTITY % keywordset.content.module "INCLUDE">
+<![%keywordset.content.module;[
+<!ENTITY % keywordset.module "INCLUDE">
+<![%keywordset.module;[
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+
+<!ENTITY % keywordset.element "INCLUDE">
+<![%keywordset.element;[
+<!ELEMENT keywordset (keyword+)>
+<!--end of keywordset.element-->]]>
+
+<!ENTITY % keywordset.attlist "INCLUDE">
+<![%keywordset.attlist;[
+<!ATTLIST keywordset
+ %common.attrib;
+ %keywordset.role.attrib;
+ %local.keywordset.attrib;
+>
+<!--end of keywordset.attlist-->]]>
+<!--end of keywordset.module-->]]>
+
+<!ENTITY % keyword.module "INCLUDE">
+<![%keyword.module;[
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+
+<!ENTITY % keyword.element "INCLUDE">
+<![%keyword.element;[
+<!ELEMENT keyword (#PCDATA)>
+<!--end of keyword.element-->]]>
+
+<!ENTITY % keyword.attlist "INCLUDE">
+<![%keyword.attlist;[
+<!ATTLIST keyword
+ %common.attrib;
+ %keyword.role.attrib;
+ %local.keyword.attrib;
+>
+<!--end of keyword.attlist-->]]>
+<!--end of keyword.module-->]]>
+<!--end of keywordset.content.module-->]]>
+
+<!ENTITY % itermset.module "INCLUDE">
+<![%itermset.module;[
+<!ENTITY % local.itermset.attrib "">
+<!ENTITY % itermset.role.attrib "%role.attrib;">
+
+<!ENTITY % itermset.element "INCLUDE">
+<![%itermset.element;[
+<!ELEMENT itermset (indexterm+)>
+<!--end of itermset.element-->]]>
+
+<!ENTITY % itermset.attlist "INCLUDE">
+<![%itermset.attlist;[
+<!ATTLIST itermset
+ %common.attrib;
+ %itermset.role.attrib;
+ %local.itermset.attrib;
+>
+<!--end of itermset.attlist-->]]>
+<!--end of itermset.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Compound (section-ish) elements ...................................... -->
+
+<!-- Message set ...................... -->
+
+<!ENTITY % msgset.content.module "INCLUDE">
+<![%msgset.content.module;[
+<!ENTITY % msgset.module "INCLUDE">
+<![%msgset.module;[
+<!ENTITY % local.msgset.attrib "">
+<!ENTITY % msgset.role.attrib "%role.attrib;">
+
+<!ENTITY % msgset.element "INCLUDE">
+<![%msgset.element;[
+<!ELEMENT msgset ((%formalobject.title.content;)?, msgentry+)>
+<!--end of msgset.element-->]]>
+
+<!ENTITY % msgset.attlist "INCLUDE">
+<![%msgset.attlist;[
+<!ATTLIST msgset
+ %common.attrib;
+ %msgset.role.attrib;
+ %local.msgset.attrib;
+>
+<!--end of msgset.attlist-->]]>
+<!--end of msgset.module-->]]>
+
+<!ENTITY % msgentry.module "INCLUDE">
+<![%msgentry.module;[
+<!ENTITY % local.msgentry.attrib "">
+<!ENTITY % msgentry.role.attrib "%role.attrib;">
+
+<!ENTITY % msgentry.element "INCLUDE">
+<![%msgentry.element;[
+<!ELEMENT msgentry (msg+, msginfo?, msgexplan*)>
+<!--end of msgentry.element-->]]>
+
+<!ENTITY % msgentry.attlist "INCLUDE">
+<![%msgentry.attlist;[
+<!ATTLIST msgentry
+ %common.attrib;
+ %msgentry.role.attrib;
+ %local.msgentry.attrib;
+>
+<!--end of msgentry.attlist-->]]>
+<!--end of msgentry.module-->]]>
+
+<!ENTITY % msg.module "INCLUDE">
+<![%msg.module;[
+<!ENTITY % local.msg.attrib "">
+<!ENTITY % msg.role.attrib "%role.attrib;">
+
+<!ENTITY % msg.element "INCLUDE">
+<![%msg.element;[
+<!ELEMENT msg (title?, msgmain, (msgsub | msgrel)*)>
+<!--end of msg.element-->]]>
+
+<!ENTITY % msg.attlist "INCLUDE">
+<![%msg.attlist;[
+<!ATTLIST msg
+ %common.attrib;
+ %msg.role.attrib;
+ %local.msg.attrib;
+>
+<!--end of msg.attlist-->]]>
+<!--end of msg.module-->]]>
+
+<!ENTITY % msgmain.module "INCLUDE">
+<![%msgmain.module;[
+<!ENTITY % local.msgmain.attrib "">
+<!ENTITY % msgmain.role.attrib "%role.attrib;">
+
+<!ENTITY % msgmain.element "INCLUDE">
+<![%msgmain.element;[
+<!ELEMENT msgmain (title?, msgtext)>
+<!--end of msgmain.element-->]]>
+
+<!ENTITY % msgmain.attlist "INCLUDE">
+<![%msgmain.attlist;[
+<!ATTLIST msgmain
+ %common.attrib;
+ %msgmain.role.attrib;
+ %local.msgmain.attrib;
+>
+<!--end of msgmain.attlist-->]]>
+<!--end of msgmain.module-->]]>
+
+<!ENTITY % msgsub.module "INCLUDE">
+<![%msgsub.module;[
+<!ENTITY % local.msgsub.attrib "">
+<!ENTITY % msgsub.role.attrib "%role.attrib;">
+
+<!ENTITY % msgsub.element "INCLUDE">
+<![%msgsub.element;[
+<!ELEMENT msgsub (title?, msgtext)>
+<!--end of msgsub.element-->]]>
+
+<!ENTITY % msgsub.attlist "INCLUDE">
+<![%msgsub.attlist;[
+<!ATTLIST msgsub
+ %common.attrib;
+ %msgsub.role.attrib;
+ %local.msgsub.attrib;
+>
+<!--end of msgsub.attlist-->]]>
+<!--end of msgsub.module-->]]>
+
+<!ENTITY % msgrel.module "INCLUDE">
+<![%msgrel.module;[
+<!ENTITY % local.msgrel.attrib "">
+<!ENTITY % msgrel.role.attrib "%role.attrib;">
+
+<!ENTITY % msgrel.element "INCLUDE">
+<![%msgrel.element;[
+<!ELEMENT msgrel (title?, msgtext)>
+<!--end of msgrel.element-->]]>
+
+<!ENTITY % msgrel.attlist "INCLUDE">
+<![%msgrel.attlist;[
+<!ATTLIST msgrel
+ %common.attrib;
+ %msgrel.role.attrib;
+ %local.msgrel.attrib;
+>
+<!--end of msgrel.attlist-->]]>
+<!--end of msgrel.module-->]]>
+
+<!--ELEMENT MsgText (defined in the Inlines section, below)-->
+
+<!ENTITY % msginfo.module "INCLUDE">
+<![%msginfo.module;[
+<!ENTITY % local.msginfo.attrib "">
+<!ENTITY % msginfo.role.attrib "%role.attrib;">
+
+<!ENTITY % msginfo.element "INCLUDE">
+<![%msginfo.element;[
+<!ELEMENT msginfo ((msglevel | msgorig | msgaud)*)>
+<!--end of msginfo.element-->]]>
+
+<!ENTITY % msginfo.attlist "INCLUDE">
+<![%msginfo.attlist;[
+<!ATTLIST msginfo
+ %common.attrib;
+ %msginfo.role.attrib;
+ %local.msginfo.attrib;
+>
+<!--end of msginfo.attlist-->]]>
+<!--end of msginfo.module-->]]>
+
+<!ENTITY % msglevel.module "INCLUDE">
+<![%msglevel.module;[
+<!ENTITY % local.msglevel.attrib "">
+<!ENTITY % msglevel.role.attrib "%role.attrib;">
+
+<!ENTITY % msglevel.element "INCLUDE">
+<![%msglevel.element;[
+<!ELEMENT msglevel (%smallcptr.char.mix;)*>
+<!--end of msglevel.element-->]]>
+
+<!ENTITY % msglevel.attlist "INCLUDE">
+<![%msglevel.attlist;[
+<!ATTLIST msglevel
+ %common.attrib;
+ %msglevel.role.attrib;
+ %local.msglevel.attrib;
+>
+<!--end of msglevel.attlist-->]]>
+<!--end of msglevel.module-->]]>
+
+<!ENTITY % msgorig.module "INCLUDE">
+<![%msgorig.module;[
+<!ENTITY % local.msgorig.attrib "">
+<!ENTITY % msgorig.role.attrib "%role.attrib;">
+
+<!ENTITY % msgorig.element "INCLUDE">
+<![%msgorig.element;[
+<!ELEMENT msgorig (%smallcptr.char.mix;)*>
+<!--end of msgorig.element-->]]>
+
+<!ENTITY % msgorig.attlist "INCLUDE">
+<![%msgorig.attlist;[
+<!ATTLIST msgorig
+ %common.attrib;
+ %msgorig.role.attrib;
+ %local.msgorig.attrib;
+>
+<!--end of msgorig.attlist-->]]>
+<!--end of msgorig.module-->]]>
+
+<!ENTITY % msgaud.module "INCLUDE">
+<![%msgaud.module;[
+<!ENTITY % local.msgaud.attrib "">
+<!ENTITY % msgaud.role.attrib "%role.attrib;">
+
+<!ENTITY % msgaud.element "INCLUDE">
+<![%msgaud.element;[
+<!ELEMENT msgaud (%para.char.mix;)*>
+<!--end of msgaud.element-->]]>
+
+<!ENTITY % msgaud.attlist "INCLUDE">
+<![%msgaud.attlist;[
+<!ATTLIST msgaud
+ %common.attrib;
+ %msgaud.role.attrib;
+ %local.msgaud.attrib;
+>
+<!--end of msgaud.attlist-->]]>
+<!--end of msgaud.module-->]]>
+
+<!ENTITY % msgexplan.module "INCLUDE">
+<![%msgexplan.module;[
+<!ENTITY % local.msgexplan.attrib "">
+<!ENTITY % msgexplan.role.attrib "%role.attrib;">
+
+<!ENTITY % msgexplan.element "INCLUDE">
+<![%msgexplan.element;[
+<!ELEMENT msgexplan (title?, (%component.mix;)+)>
+<!--end of msgexplan.element-->]]>
+
+<!ENTITY % msgexplan.attlist "INCLUDE">
+<![%msgexplan.attlist;[
+<!ATTLIST msgexplan
+ %common.attrib;
+ %msgexplan.role.attrib;
+ %local.msgexplan.attrib;
+>
+<!--end of msgexplan.attlist-->]]>
+<!--end of msgexplan.module-->]]>
+<!--end of msgset.content.module-->]]>
+
+<!-- QandASet ........................ -->
+<!ENTITY % qandset.content.module "INCLUDE">
+<![ %qandset.content.module; [
+<!ENTITY % qandset.module "INCLUDE">
+<![ %qandset.module; [
+<!ENTITY % local.qandset.attrib "">
+<!ENTITY % qandset.role.attrib "%role.attrib;">
+
+<!ENTITY % qandset.element "INCLUDE">
+<![ %qandset.element; [
+<!ELEMENT qandaset ((%formalobject.title.content;)?,
+ (%qandaset.mix;)*,
+ (qandadiv+|qandaentry+))>
+<!--end of qandset.element-->]]>
+
+<!ENTITY % qandset.attlist "INCLUDE">
+<![ %qandset.attlist; [
+<!ATTLIST qandaset
+ defaultlabel (qanda|number|none) #IMPLIED
+ %common.attrib;
+ %qandset.role.attrib;
+ %local.qandset.attrib;>
+<!--end of qandset.attlist-->]]>
+<!--end of qandset.module-->]]>
+
+<!ENTITY % qandadiv.module "INCLUDE">
+<![ %qandadiv.module; [
+<!ENTITY % local.qandadiv.attrib "">
+<!ENTITY % qandadiv.role.attrib "%role.attrib;">
+
+<!ENTITY % qandadiv.element "INCLUDE">
+<![ %qandadiv.element; [
+<!ELEMENT qandadiv ((%formalobject.title.content;)?,
+ (%qandaset.mix;)*,
+ (qandadiv+|qandaentry+))>
+<!--end of qandadiv.element-->]]>
+
+<!ENTITY % qandadiv.attlist "INCLUDE">
+<![ %qandadiv.attlist; [
+<!ATTLIST qandadiv
+ %common.attrib;
+ %qandadiv.role.attrib;
+ %local.qandadiv.attrib;>
+<!--end of qandadiv.attlist-->]]>
+<!--end of qandadiv.module-->]]>
+
+<!ENTITY % qandaentry.module "INCLUDE">
+<![ %qandaentry.module; [
+<!ENTITY % local.qandaentry.attrib "">
+<!ENTITY % qandaentry.role.attrib "%role.attrib;">
+
+<!ENTITY % qandaentry.element "INCLUDE">
+<![ %qandaentry.element; [
+<!ELEMENT qandaentry (question, answer*)>
+<!--end of qandaentry.element-->]]>
+
+<!ENTITY % qandaentry.attlist "INCLUDE">
+<![ %qandaentry.attlist; [
+<!ATTLIST qandaentry
+ %common.attrib;
+ %qandaentry.role.attrib;
+ %local.qandaentry.attrib;>
+<!--end of qandaentry.attlist-->]]>
+<!--end of qandaentry.module-->]]>
+
+<!ENTITY % question.module "INCLUDE">
+<![ %question.module; [
+<!ENTITY % local.question.attrib "">
+<!ENTITY % question.role.attrib "%role.attrib;">
+
+<!ENTITY % question.element "INCLUDE">
+<![ %question.element; [
+<!ELEMENT question (label?, (%qandaset.mix;)+)>
+<!--end of question.element-->]]>
+
+<!ENTITY % question.attlist "INCLUDE">
+<![ %question.attlist; [
+<!ATTLIST question
+ %common.attrib;
+ %question.role.attrib;
+ %local.question.attrib;
+>
+<!--end of question.attlist-->]]>
+<!--end of question.module-->]]>
+
+<!ENTITY % answer.module "INCLUDE">
+<![ %answer.module; [
+<!ENTITY % local.answer.attrib "">
+<!ENTITY % answer.role.attrib "%role.attrib;">
+
+<!ENTITY % answer.element "INCLUDE">
+<![ %answer.element; [
+<!ELEMENT answer (label?, (%qandaset.mix;)*, qandaentry*)>
+<!--end of answer.element-->]]>
+
+<!ENTITY % answer.attlist "INCLUDE">
+<![ %answer.attlist; [
+<!ATTLIST answer
+ %common.attrib;
+ %answer.role.attrib;
+ %local.answer.attrib;
+>
+<!--end of answer.attlist-->]]>
+<!--end of answer.module-->]]>
+
+<!ENTITY % label.module "INCLUDE">
+<![ %label.module; [
+<!ENTITY % local.label.attrib "">
+<!ENTITY % label.role.attrib "%role.attrib;">
+
+<!ENTITY % label.element "INCLUDE">
+<![ %label.element; [
+<!ELEMENT label (%word.char.mix;)*>
+<!--end of label.element-->]]>
+
+<!ENTITY % label.attlist "INCLUDE">
+<![ %label.attlist; [
+<!ATTLIST label
+ %common.attrib;
+ %label.role.attrib;
+ %local.label.attrib;
+>
+<!--end of label.attlist-->]]>
+<!--end of label.module-->]]>
+<!--end of qandset.content.module-->]]>
+
+<!-- Procedure ........................ -->
+
+<!ENTITY % procedure.content.module "INCLUDE">
+<![%procedure.content.module;[
+<!ENTITY % procedure.module "INCLUDE">
+<![%procedure.module;[
+<!ENTITY % local.procedure.attrib "">
+<!ENTITY % procedure.role.attrib "%role.attrib;">
+
+<!ENTITY % procedure.element "INCLUDE">
+<![%procedure.element;[
+<!ELEMENT procedure ((%formalobject.title.content;)?,
+ (%component.mix;)*, step+)>
+<!--end of procedure.element-->]]>
+
+<!ENTITY % procedure.attlist "INCLUDE">
+<![%procedure.attlist;[
+<!ATTLIST procedure
+ %common.attrib;
+ %procedure.role.attrib;
+ %local.procedure.attrib;
+>
+<!--end of procedure.attlist-->]]>
+<!--end of procedure.module-->]]>
+
+<!ENTITY % step.module "INCLUDE">
+<![%step.module;[
+<!ENTITY % local.step.attrib "">
+<!ENTITY % step.role.attrib "%role.attrib;">
+
+<!ENTITY % step.element "INCLUDE">
+<![%step.element;[
+<!ELEMENT step (title?, (((%component.mix;)+, (substeps,
+ (%component.mix;)*)?) | (substeps, (%component.mix;)*)))>
+<!--end of step.element-->]]>
+
+<!-- Performance: Whether the Step must be performed -->
+<!-- not #REQUIRED! -->
+
+
+<!ENTITY % step.attlist "INCLUDE">
+<![%step.attlist;[
+<!ATTLIST step
+ performance (optional
+ |required) "required"
+ %common.attrib;
+ %step.role.attrib;
+ %local.step.attrib;
+>
+<!--end of step.attlist-->]]>
+<!--end of step.module-->]]>
+
+<!ENTITY % substeps.module "INCLUDE">
+<![%substeps.module;[
+<!ENTITY % local.substeps.attrib "">
+<!ENTITY % substeps.role.attrib "%role.attrib;">
+
+<!ENTITY % substeps.element "INCLUDE">
+<![%substeps.element;[
+<!ELEMENT substeps (step+)>
+<!--end of substeps.element-->]]>
+
+<!-- Performance: whether entire set of substeps must be performed -->
+<!-- not #REQUIRED! -->
+
+
+<!ENTITY % substeps.attlist "INCLUDE">
+<![%substeps.attlist;[
+<!ATTLIST substeps
+ performance (optional
+ |required) "required"
+ %common.attrib;
+ %substeps.role.attrib;
+ %local.substeps.attrib;
+>
+<!--end of substeps.attlist-->]]>
+<!--end of substeps.module-->]]>
+<!--end of procedure.content.module-->]]>
+
+<!-- Sidebar .......................... -->
+
+<!ENTITY % sidebar.module "INCLUDE">
+<![%sidebar.module;[
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+
+<!ENTITY % sidebar.element "INCLUDE">
+<![%sidebar.element;[
+<!ELEMENT sidebar ((%formalobject.title.content;)?, (%sidebar.mix;)+)>
+<!--end of sidebar.element-->]]>
+
+<!ENTITY % sidebar.attlist "INCLUDE">
+<![%sidebar.attlist;[
+<!ATTLIST sidebar
+ %common.attrib;
+ %sidebar.role.attrib;
+ %local.sidebar.attrib;
+>
+<!--end of sidebar.attlist-->]]>
+<!--end of sidebar.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Paragraph-related elements ........................................... -->
+
+<!ENTITY % abstract.module "INCLUDE">
+<![%abstract.module;[
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+
+<!ENTITY % abstract.element "INCLUDE">
+<![%abstract.element;[
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!--end of abstract.element-->]]>
+
+<!ENTITY % abstract.attlist "INCLUDE">
+<![%abstract.attlist;[
+<!ATTLIST abstract
+ %common.attrib;
+ %abstract.role.attrib;
+ %local.abstract.attrib;
+>
+<!--end of abstract.attlist-->]]>
+<!--end of abstract.module-->]]>
+
+<!ENTITY % authorblurb.module "INCLUDE">
+<![%authorblurb.module;[
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+
+<!ENTITY % authorblurb.element "INCLUDE">
+<![%authorblurb.element;[
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!--end of authorblurb.element-->]]>
+
+<!ENTITY % authorblurb.attlist "INCLUDE">
+<![%authorblurb.attlist;[
+<!ATTLIST authorblurb
+ %common.attrib;
+ %authorblurb.role.attrib;
+ %local.authorblurb.attrib;
+>
+<!--end of authorblurb.attlist-->]]>
+<!--end of authorblurb.module-->]]>
+
+<!ENTITY % blockquote.module "INCLUDE">
+<![%blockquote.module;[
+<!--FUTURE USE (V4.0):
+......................
+Epigraph will be disallowed from appearing in BlockQuote.
+......................
+-->
+
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+
+<!ENTITY % blockquote.element "INCLUDE">
+<![%blockquote.element;[
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!--end of blockquote.element-->]]>
+
+<!ENTITY % blockquote.attlist "INCLUDE">
+<![%blockquote.attlist;[
+<!ATTLIST blockquote
+ %common.attrib;
+ %blockquote.role.attrib;
+ %local.blockquote.attrib;
+>
+<!--end of blockquote.attlist-->]]>
+<!--end of blockquote.module-->]]>
+
+<!ENTITY % attribution.module "INCLUDE">
+<![%attribution.module;[
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+
+<!ENTITY % attribution.element "INCLUDE">
+<![%attribution.element;[
+<!ELEMENT attribution (%para.char.mix;)*>
+<!--end of attribution.element-->]]>
+
+<!ENTITY % attribution.attlist "INCLUDE">
+<![%attribution.attlist;[
+<!ATTLIST attribution
+ %common.attrib;
+ %attribution.role.attrib;
+ %local.attribution.attrib;
+>
+<!--end of attribution.attlist-->]]>
+<!--end of attribution.module-->]]>
+
+<!ENTITY % bridgehead.module "INCLUDE">
+<![%bridgehead.module;[
+<!ENTITY % local.bridgehead.attrib "">
+<!ENTITY % bridgehead.role.attrib "%role.attrib;">
+
+<!ENTITY % bridgehead.element "INCLUDE">
+<![%bridgehead.element;[
+<!ELEMENT bridgehead (%title.char.mix;)*>
+<!--end of bridgehead.element-->]]>
+
+<!-- Renderas: Indicates the format in which the BridgeHead
+ should appear -->
+
+
+<!ENTITY % bridgehead.attlist "INCLUDE">
+<![%bridgehead.attlist;[
+<!ATTLIST bridgehead
+ renderas (other
+ |sect1
+ |sect2
+ |sect3
+ |sect4
+ |sect5) #IMPLIED
+ %common.attrib;
+ %bridgehead.role.attrib;
+ %local.bridgehead.attrib;
+>
+<!--end of bridgehead.attlist-->]]>
+<!--end of bridgehead.module-->]]>
+
+<!ENTITY % comment.module "INCLUDE">
+<![%comment.module;[
+<!--FUTURE USE (V4.0):
+......................
+Comment will be renamed to Remark and will be excluded from itself.
+......................
+-->
+<!ENTITY % local.comment.attrib "">
+<!ENTITY % comment.role.attrib "%role.attrib;">
+
+<!ENTITY % comment.element "INCLUDE">
+<![%comment.element;[
+<!ELEMENT comment (%para.char.mix;)*>
+<!--end of comment.element-->]]>
+
+<!ENTITY % comment.attlist "INCLUDE">
+<![%comment.attlist;[
+<!ATTLIST comment
+ %common.attrib;
+ %comment.role.attrib;
+ %local.comment.attrib;
+>
+<!--end of comment.attlist-->]]>
+<!--end of comment.module-->]]>
+
+<!ENTITY % epigraph.module "INCLUDE">
+<![%epigraph.module;[
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+
+<!ENTITY % epigraph.element "INCLUDE">
+<![%epigraph.element;[
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!--end of epigraph.element-->]]>
+
+<!ENTITY % epigraph.attlist "INCLUDE">
+<![%epigraph.attlist;[
+<!ATTLIST epigraph
+ %common.attrib;
+ %epigraph.role.attrib;
+ %local.epigraph.attrib;
+>
+<!--end of epigraph.attlist-->]]>
+<!--ELEMENT Attribution (defined above)-->
+<!--end of epigraph.module-->]]>
+
+<!ENTITY % footnote.module "INCLUDE">
+<![%footnote.module;[
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+
+<!ENTITY % footnote.element "INCLUDE">
+<![%footnote.element;[
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!--end of footnote.element-->]]>
+
+<!ENTITY % footnote.attlist "INCLUDE">
+<![%footnote.attlist;[
+<!ATTLIST footnote
+ %label.attrib;
+ %common.attrib;
+ %footnote.role.attrib;
+ %local.footnote.attrib;
+>
+<!--end of footnote.attlist-->]]>
+<!--end of footnote.module-->]]>
+
+<!ENTITY % highlights.module "INCLUDE">
+<![%highlights.module;[
+<!ENTITY % local.highlights.attrib "">
+<!ENTITY % highlights.role.attrib "%role.attrib;">
+
+<!ENTITY % highlights.element "INCLUDE">
+<![%highlights.element;[
+<!ELEMENT highlights ((%highlights.mix;)+)>
+<!--end of highlights.element-->]]>
+
+<!ENTITY % highlights.attlist "INCLUDE">
+<![%highlights.attlist;[
+<!ATTLIST highlights
+ %common.attrib;
+ %highlights.role.attrib;
+ %local.highlights.attrib;
+>
+<!--end of highlights.attlist-->]]>
+<!--end of highlights.module-->]]>
+
+<!ENTITY % formalpara.module "INCLUDE">
+<![%formalpara.module;[
+<!ENTITY % local.formalpara.attrib "">
+<!ENTITY % formalpara.role.attrib "%role.attrib;">
+
+<!ENTITY % formalpara.element "INCLUDE">
+<![%formalpara.element;[
+<!ELEMENT formalpara (title, (%ndxterm.class;)*, para)>
+<!--end of formalpara.element-->]]>
+
+<!ENTITY % formalpara.attlist "INCLUDE">
+<![%formalpara.attlist;[
+<!ATTLIST formalpara
+ %common.attrib;
+ %formalpara.role.attrib;
+ %local.formalpara.attrib;
+>
+<!--end of formalpara.attlist-->]]>
+<!--end of formalpara.module-->]]>
+
+<!ENTITY % para.module "INCLUDE">
+<![%para.module;[
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+
+<!ENTITY % para.element "INCLUDE">
+<![%para.element;[
+<!ELEMENT para (%para.char.mix; | %para.mix;)*>
+<!--end of para.element-->]]>
+
+<!ENTITY % para.attlist "INCLUDE">
+<![%para.attlist;[
+<!ATTLIST para
+ %common.attrib;
+ %para.role.attrib;
+ %local.para.attrib;
+>
+<!--end of para.attlist-->]]>
+<!--end of para.module-->]]>
+
+<!ENTITY % simpara.module "INCLUDE">
+<![%simpara.module;[
+<!ENTITY % local.simpara.attrib "">
+<!ENTITY % simpara.role.attrib "%role.attrib;">
+
+<!ENTITY % simpara.element "INCLUDE">
+<![%simpara.element;[
+<!ELEMENT simpara (%para.char.mix;)*>
+<!--end of simpara.element-->]]>
+
+<!ENTITY % simpara.attlist "INCLUDE">
+<![%simpara.attlist;[
+<!ATTLIST simpara
+ %common.attrib;
+ %simpara.role.attrib;
+ %local.simpara.attrib;
+>
+<!--end of simpara.attlist-->]]>
+<!--end of simpara.module-->]]>
+
+<!ENTITY % admon.module "INCLUDE">
+<![%admon.module;[
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+
+
+<!ENTITY % caution.element "INCLUDE">
+<![%caution.element;[
+<!ELEMENT caution (title?, (%admon.mix;)+)>
+<!--end of caution.element-->]]>
+
+<!ENTITY % caution.attlist "INCLUDE">
+<![%caution.attlist;[
+<!ATTLIST caution
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of caution.attlist-->]]>
+
+
+<!ENTITY % important.element "INCLUDE">
+<![%important.element;[
+<!ELEMENT important (title?, (%admon.mix;)+)>
+<!--end of important.element-->]]>
+
+<!ENTITY % important.attlist "INCLUDE">
+<![%important.attlist;[
+<!ATTLIST important
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of important.attlist-->]]>
+
+
+<!ENTITY % note.element "INCLUDE">
+<![%note.element;[
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!--end of note.element-->]]>
+
+<!ENTITY % note.attlist "INCLUDE">
+<![%note.attlist;[
+<!ATTLIST note
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of note.attlist-->]]>
+
+
+<!ENTITY % tip.element "INCLUDE">
+<![%tip.element;[
+<!ELEMENT tip (title?, (%admon.mix;)+)>
+<!--end of tip.element-->]]>
+
+<!ENTITY % tip.attlist "INCLUDE">
+<![%tip.attlist;[
+<!ATTLIST tip
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of tip.attlist-->]]>
+
+
+<!ENTITY % warning.element "INCLUDE">
+<![%warning.element;[
+<!ELEMENT warning (title?, (%admon.mix;)+)>
+<!--end of warning.element-->]]>
+
+<!ENTITY % warning.attlist "INCLUDE">
+<![%warning.attlist;[
+<!ATTLIST warning
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of warning.attlist-->]]>
+
+<!--end of admon.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Lists ................................................................ -->
+
+<!-- GlossList ........................ -->
+
+<!ENTITY % glosslist.module "INCLUDE">
+<![%glosslist.module;[
+<!ENTITY % local.glosslist.attrib "">
+<!ENTITY % glosslist.role.attrib "%role.attrib;">
+
+<!ENTITY % glosslist.element "INCLUDE">
+<![%glosslist.element;[
+<!ELEMENT glosslist (glossentry+)>
+<!--end of glosslist.element-->]]>
+
+<!ENTITY % glosslist.attlist "INCLUDE">
+<![%glosslist.attlist;[
+<!ATTLIST glosslist
+ %common.attrib;
+ %glosslist.role.attrib;
+ %local.glosslist.attrib;
+>
+<!--end of glosslist.attlist-->]]>
+<!--end of glosslist.module-->]]>
+
+<!ENTITY % glossentry.content.module "INCLUDE">
+<![%glossentry.content.module;[
+<!ENTITY % glossentry.module "INCLUDE">
+<![%glossentry.module;[
+<!ENTITY % local.glossentry.attrib "">
+<!ENTITY % glossentry.role.attrib "%role.attrib;">
+
+<!ENTITY % glossentry.element "INCLUDE">
+<![%glossentry.element;[
+<!ELEMENT glossentry (glossterm, acronym?, abbrev?,
+ (%ndxterm.class;)*,
+ revhistory?, (glosssee|glossdef+))>
+<!--end of glossentry.element-->]]>
+
+<!-- SortAs: String by which the GlossEntry is to be sorted
+ (alphabetized) in lieu of its proper content -->
+
+
+<!ENTITY % glossentry.attlist "INCLUDE">
+<![%glossentry.attlist;[
+<!ATTLIST glossentry
+ sortas CDATA #IMPLIED
+ %common.attrib;
+ %glossentry.role.attrib;
+ %local.glossentry.attrib;
+>
+<!--end of glossentry.attlist-->]]>
+<!--end of glossentry.module-->]]>
+
+<!--FUTURE USE (V4.0):
+......................
+GlossTerm will be excluded from itself. Also, GlossTerm *may* be split
+into an element that appears in a Glossary and an element that can
+appear in the main text.
+......................
+-->
+<!--ELEMENT GlossTerm (defined in the Inlines section, below)-->
+<!ENTITY % glossdef.module "INCLUDE">
+<![%glossdef.module;[
+<!ENTITY % local.glossdef.attrib "">
+<!ENTITY % glossdef.role.attrib "%role.attrib;">
+
+<!ENTITY % glossdef.element "INCLUDE">
+<![%glossdef.element;[
+<!ELEMENT glossdef ((%glossdef.mix;)+, glossseealso*)>
+<!--end of glossdef.element-->]]>
+<!--FUTURE USE (V4.0):
+......................
+The Subject attribute will be renamed Keyword.
+......................
+-->
+
+<!-- Subject: List of subjects; keywords for the definition -->
+
+
+<!ENTITY % glossdef.attlist "INCLUDE">
+<![%glossdef.attlist;[
+<!ATTLIST glossdef
+ subject CDATA #IMPLIED
+ %common.attrib;
+ %glossdef.role.attrib;
+ %local.glossdef.attrib;
+>
+<!--end of glossdef.attlist-->]]>
+<!--end of glossdef.module-->]]>
+
+<!ENTITY % glosssee.module "INCLUDE">
+<![%glosssee.module;[
+<!ENTITY % local.glosssee.attrib "">
+<!ENTITY % glosssee.role.attrib "%role.attrib;">
+
+<!ENTITY % glosssee.element "INCLUDE">
+<![%glosssee.element;[
+<!ELEMENT glosssee (%para.char.mix;)*>
+<!--end of glosssee.element-->]]>
+
+<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
+ should be displayed at the point of the GlossSee -->
+
+
+<!ENTITY % glosssee.attlist "INCLUDE">
+<![%glosssee.attlist;[
+<!ATTLIST glosssee
+ otherterm IDREF #IMPLIED
+ %common.attrib;
+ %glosssee.role.attrib;
+ %local.glosssee.attrib;
+>
+<!--end of glosssee.attlist-->]]>
+<!--end of glosssee.module-->]]>
+
+<!ENTITY % glossseealso.module "INCLUDE">
+<![%glossseealso.module;[
+<!ENTITY % local.glossseealso.attrib "">
+<!ENTITY % glossseealso.role.attrib "%role.attrib;">
+
+<!ENTITY % glossseealso.element "INCLUDE">
+<![%glossseealso.element;[
+<!ELEMENT glossseealso (%para.char.mix;)*>
+<!--end of glossseealso.element-->]]>
+
+<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
+ should be displayed at the point of the GlossSeeAlso -->
+
+
+<!ENTITY % glossseealso.attlist "INCLUDE">
+<![%glossseealso.attlist;[
+<!ATTLIST glossseealso
+ otherterm IDREF #IMPLIED
+ %common.attrib;
+ %glossseealso.role.attrib;
+ %local.glossseealso.attrib;
+>
+<!--end of glossseealso.attlist-->]]>
+<!--end of glossseealso.module-->]]>
+<!--end of glossentry.content.module-->]]>
+
+<!-- ItemizedList and OrderedList ..... -->
+
+<!ENTITY % itemizedlist.module "INCLUDE">
+<![%itemizedlist.module;[
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % itemizedlist.element "INCLUDE">
+<![%itemizedlist.element;[
+<!ELEMENT itemizedlist (listitem+)>
+<!--end of itemizedlist.element-->]]>
+
+<!-- Spacing: Whether the vertical space in the list should be
+ compressed -->
+<!-- Mark: Keyword, e.g., bullet, dash, checkbox, none;
+ list of keywords and defaults are implementation specific -->
+
+
+<!ENTITY % itemizedlist.attlist "INCLUDE">
+<![%itemizedlist.attlist;[
+<!ATTLIST itemizedlist spacing (normal
+ |compact) #IMPLIED
+ %mark.attrib;
+ %common.attrib;
+ %itemizedlist.role.attrib;
+ %local.itemizedlist.attrib;
+>
+<!--end of itemizedlist.attlist-->]]>
+<!--end of itemizedlist.module-->]]>
+
+<!ENTITY % orderedlist.module "INCLUDE">
+<![%orderedlist.module;[
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % orderedlist.element "INCLUDE">
+<![%orderedlist.element;[
+<!ELEMENT orderedlist (listitem+)>
+<!--end of orderedlist.element-->]]>
+
+<!-- Numeration: Style of ListItem numbered; default is expected
+ to be Arabic -->
+<!-- InheritNum: Specifies for a nested list that the numbering
+ of ListItems should include the number of the item
+ within which they are nested (e.g., 1a and 1b within 1,
+ rather than a and b) -->
+<!-- Continuation: Where list numbering begins afresh (Restarts,
+ the default) or continues that of the immediately preceding
+ list (Continues) -->
+<!-- Spacing: Whether the vertical space in the list should be
+ compressed -->
+
+
+<!ENTITY % orderedlist.attlist "INCLUDE">
+<![%orderedlist.attlist;[
+<!ATTLIST orderedlist
+ numeration (arabic
+ |upperalpha
+ |loweralpha
+ |upperroman
+ |lowerroman) #IMPLIED
+ inheritnum (inherit
+ |ignore) "ignore"
+ continuation (continues
+ |restarts) "restarts"
+ spacing (normal
+ |compact) #IMPLIED
+ %common.attrib;
+ %orderedlist.role.attrib;
+ %local.orderedlist.attrib;
+>
+<!--end of orderedlist.attlist-->]]>
+<!--end of orderedlist.module-->]]>
+
+<!ENTITY % listitem.module "INCLUDE">
+<![%listitem.module;[
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+
+<!ENTITY % listitem.element "INCLUDE">
+<![%listitem.element;[
+<!ELEMENT listitem ((%component.mix;)+)>
+<!--end of listitem.element-->]]>
+
+<!-- Override: Indicates the mark to be used for this ListItem
+ instead of the default mark or the mark specified by
+ the Mark attribute on the enclosing ItemizedList -->
+
+
+<!ENTITY % listitem.attlist "INCLUDE">
+<![%listitem.attlist;[
+<!ATTLIST listitem
+ override CDATA #IMPLIED
+ %common.attrib;
+ %listitem.role.attrib;
+ %local.listitem.attrib;
+>
+<!--end of listitem.attlist-->]]>
+<!--end of listitem.module-->]]>
+
+<!-- SegmentedList .................... -->
+<!ENTITY % segmentedlist.content.module "INCLUDE">
+<![%segmentedlist.content.module;[
+<!--FUTURE USE (V4.0):
+......................
+Two SegTitles will be required.
+......................
+-->
+<!ENTITY % segmentedlist.module "INCLUDE">
+<![%segmentedlist.module;[
+<!ENTITY % local.segmentedlist.attrib "">
+<!ENTITY % segmentedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % segmentedlist.element "INCLUDE">
+<![%segmentedlist.element;[
+<!ELEMENT segmentedlist ((%formalobject.title.content;)?, segtitle*,
+ seglistitem+)>
+<!--end of segmentedlist.element-->]]>
+
+<!ENTITY % segmentedlist.attlist "INCLUDE">
+<![%segmentedlist.attlist;[
+<!ATTLIST segmentedlist
+ %common.attrib;
+ %segmentedlist.role.attrib;
+ %local.segmentedlist.attrib;
+>
+<!--end of segmentedlist.attlist-->]]>
+<!--end of segmentedlist.module-->]]>
+
+<!ENTITY % segtitle.module "INCLUDE">
+<![%segtitle.module;[
+<!ENTITY % local.segtitle.attrib "">
+<!ENTITY % segtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % segtitle.element "INCLUDE">
+<![%segtitle.element;[
+<!ELEMENT segtitle (%title.char.mix;)*>
+<!--end of segtitle.element-->]]>
+
+<!ENTITY % segtitle.attlist "INCLUDE">
+<![%segtitle.attlist;[
+<!ATTLIST segtitle
+ %common.attrib;
+ %segtitle.role.attrib;
+ %local.segtitle.attrib;
+>
+<!--end of segtitle.attlist-->]]>
+<!--end of segtitle.module-->]]>
+
+<!ENTITY % seglistitem.module "INCLUDE">
+<![%seglistitem.module;[
+<!ENTITY % local.seglistitem.attrib "">
+<!ENTITY % seglistitem.role.attrib "%role.attrib;">
+
+<!ENTITY % seglistitem.element "INCLUDE">
+<![%seglistitem.element;[
+<!ELEMENT seglistitem (seg, seg+)>
+<!--end of seglistitem.element-->]]>
+
+<!ENTITY % seglistitem.attlist "INCLUDE">
+<![%seglistitem.attlist;[
+<!ATTLIST seglistitem
+ %common.attrib;
+ %seglistitem.role.attrib;
+ %local.seglistitem.attrib;
+>
+<!--end of seglistitem.attlist-->]]>
+<!--end of seglistitem.module-->]]>
+
+<!ENTITY % seg.module "INCLUDE">
+<![%seg.module;[
+<!ENTITY % local.seg.attrib "">
+<!ENTITY % seg.role.attrib "%role.attrib;">
+
+<!ENTITY % seg.element "INCLUDE">
+<![%seg.element;[
+<!ELEMENT seg (%para.char.mix;)*>
+<!--end of seg.element-->]]>
+
+<!ENTITY % seg.attlist "INCLUDE">
+<![%seg.attlist;[
+<!ATTLIST seg
+ %common.attrib;
+ %seg.role.attrib;
+ %local.seg.attrib;
+>
+<!--end of seg.attlist-->]]>
+<!--end of seg.module-->]]>
+<!--end of segmentedlist.content.module-->]]>
+
+<!-- SimpleList ....................... -->
+
+<!ENTITY % simplelist.content.module "INCLUDE">
+<![%simplelist.content.module;[
+<!ENTITY % simplelist.module "INCLUDE">
+<![%simplelist.module;[
+<!ENTITY % local.simplelist.attrib "">
+<!ENTITY % simplelist.role.attrib "%role.attrib;">
+
+<!ENTITY % simplelist.element "INCLUDE">
+<![%simplelist.element;[
+<!ELEMENT simplelist (member+)>
+<!--end of simplelist.element-->]]>
+
+<!-- Columns: The number of columns the array should contain -->
+<!-- Type: How the Members of the SimpleList should be
+ formatted: Inline (members separated with commas etc.
+ inline), Vert (top to bottom in n Columns), or Horiz (in
+ the direction of text flow) in n Columns. If Column
+ is 1 or implied, Type=Vert and Type=Horiz give the same
+ results. -->
+
+
+<!ENTITY % simplelist.attlist "INCLUDE">
+<![%simplelist.attlist;[
+<!ATTLIST simplelist
+ columns CDATA #IMPLIED
+ type (inline
+ |vert
+ |horiz) "vert"
+ %common.attrib;
+ %simplelist.role.attrib;
+ %local.simplelist.attrib;
+>
+<!--end of simplelist.attlist-->]]>
+<!--end of simplelist.module-->]]>
+
+<!ENTITY % member.module "INCLUDE">
+<![%member.module;[
+<!ENTITY % local.member.attrib "">
+<!ENTITY % member.role.attrib "%role.attrib;">
+
+<!ENTITY % member.element "INCLUDE">
+<![%member.element;[
+<!ELEMENT member (%para.char.mix;)*>
+<!--end of member.element-->]]>
+
+<!ENTITY % member.attlist "INCLUDE">
+<![%member.attlist;[
+<!ATTLIST member
+ %common.attrib;
+ %member.role.attrib;
+ %local.member.attrib;
+>
+<!--end of member.attlist-->]]>
+<!--end of member.module-->]]>
+<!--end of simplelist.content.module-->]]>
+
+<!-- VariableList ..................... -->
+
+<!ENTITY % variablelist.content.module "INCLUDE">
+<![%variablelist.content.module;[
+<!ENTITY % variablelist.module "INCLUDE">
+<![%variablelist.module;[
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+
+<!ENTITY % variablelist.element "INCLUDE">
+<![%variablelist.element;[
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!--end of variablelist.element-->]]>
+
+<!-- TermLength: Length beyond which the presentation engine
+ may consider the Term too long and select an alternate
+ presentation of the Term and, or, its associated ListItem. -->
+
+
+<!ENTITY % variablelist.attlist "INCLUDE">
+<![%variablelist.attlist;[
+<!ATTLIST variablelist
+ termlength CDATA #IMPLIED
+ %common.attrib;
+ %variablelist.role.attrib;
+ %local.variablelist.attrib;
+>
+<!--end of variablelist.attlist-->]]>
+<!--end of variablelist.module-->]]>
+
+<!ENTITY % varlistentry.module "INCLUDE">
+<![%varlistentry.module;[
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+
+<!ENTITY % varlistentry.element "INCLUDE">
+<![%varlistentry.element;[
+<!ELEMENT varlistentry (term+, listitem)>
+<!--end of varlistentry.element-->]]>
+
+<!ENTITY % varlistentry.attlist "INCLUDE">
+<![%varlistentry.attlist;[
+<!ATTLIST varlistentry
+ %common.attrib;
+ %varlistentry.role.attrib;
+ %local.varlistentry.attrib;
+>
+<!--end of varlistentry.attlist-->]]>
+<!--end of varlistentry.module-->]]>
+
+<!ENTITY % term.module "INCLUDE">
+<![%term.module;[
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+
+<!ENTITY % term.element "INCLUDE">
+<![%term.element;[
+<!ELEMENT term (%para.char.mix;)*>
+<!--end of term.element-->]]>
+
+<!ENTITY % term.attlist "INCLUDE">
+<![%term.attlist;[
+<!ATTLIST term
+ %common.attrib;
+ %term.role.attrib;
+ %local.term.attrib;
+>
+<!--end of term.attlist-->]]>
+<!--end of term.module-->]]>
+
+<!--ELEMENT ListItem (defined above)-->
+<!--end of variablelist.content.module-->]]>
+
+<!-- CalloutList ...................... -->
+
+<!ENTITY % calloutlist.content.module "INCLUDE">
+<![%calloutlist.content.module;[
+<!ENTITY % calloutlist.module "INCLUDE">
+<![%calloutlist.module;[
+<!ENTITY % local.calloutlist.attrib "">
+<!ENTITY % calloutlist.role.attrib "%role.attrib;">
+
+<!ENTITY % calloutlist.element "INCLUDE">
+<![%calloutlist.element;[
+<!ELEMENT calloutlist ((%formalobject.title.content;)?, callout+)>
+<!--end of calloutlist.element-->]]>
+
+<!ENTITY % calloutlist.attlist "INCLUDE">
+<![%calloutlist.attlist;[
+<!ATTLIST calloutlist
+ %common.attrib;
+ %calloutlist.role.attrib;
+ %local.calloutlist.attrib;
+>
+<!--end of calloutlist.attlist-->]]>
+<!--end of calloutlist.module-->]]>
+
+<!ENTITY % callout.module "INCLUDE">
+<![%callout.module;[
+<!ENTITY % local.callout.attrib "">
+<!ENTITY % callout.role.attrib "%role.attrib;">
+
+<!ENTITY % callout.element "INCLUDE">
+<![%callout.element;[
+<!ELEMENT callout ((%component.mix;)+)>
+<!--end of callout.element-->]]>
+
+<!-- AreaRefs: IDs of one or more Areas or AreaSets described
+ by this Callout -->
+
+
+<!ENTITY % callout.attlist "INCLUDE">
+<![%callout.attlist;[
+<!ATTLIST callout
+ arearefs IDREFS #REQUIRED
+ %common.attrib;
+ %callout.role.attrib;
+ %local.callout.attrib;
+>
+<!--end of callout.attlist-->]]>
+<!--end of callout.module-->]]>
+<!--end of calloutlist.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Objects .............................................................. -->
+
+<!-- Examples etc. .................... -->
+
+<!ENTITY % example.module "INCLUDE">
+<![%example.module;[
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+
+<!ENTITY % example.element "INCLUDE">
+<![%example.element;[
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!--end of example.element-->]]>
+
+<!ENTITY % example.attlist "INCLUDE">
+<![%example.attlist;[
+<!ATTLIST example
+ %label.attrib;
+ %width.attrib;
+ %common.attrib;
+ %example.role.attrib;
+ %local.example.attrib;
+>
+<!--end of example.attlist-->]]>
+<!--end of example.module-->]]>
+
+<!ENTITY % informalexample.module "INCLUDE">
+<![%informalexample.module;[
+<!ENTITY % local.informalexample.attrib "">
+<!ENTITY % informalexample.role.attrib "%role.attrib;">
+
+<!ENTITY % informalexample.element "INCLUDE">
+<![%informalexample.element;[
+<!ELEMENT informalexample ((%example.mix;)+)>
+<!--end of informalexample.element-->]]>
+
+<!ENTITY % informalexample.attlist "INCLUDE">
+<![%informalexample.attlist;[
+<!ATTLIST informalexample
+ %width.attrib;
+ %common.attrib;
+ %informalexample.role.attrib;
+ %local.informalexample.attrib;
+>
+<!--end of informalexample.attlist-->]]>
+<!--end of informalexample.module-->]]>
+
+<!ENTITY % programlistingco.module "INCLUDE">
+<![%programlistingco.module;[
+<!ENTITY % local.programlistingco.attrib "">
+<!ENTITY % programlistingco.role.attrib "%role.attrib;">
+
+<!ENTITY % programlistingco.element "INCLUDE">
+<![%programlistingco.element;[
+<!ELEMENT programlistingco (areaspec, programlisting, calloutlist*)>
+<!--end of programlistingco.element-->]]>
+
+<!ENTITY % programlistingco.attlist "INCLUDE">
+<![%programlistingco.attlist;[
+<!ATTLIST programlistingco
+ %common.attrib;
+ %programlistingco.role.attrib;
+ %local.programlistingco.attrib;
+>
+<!--end of programlistingco.attlist-->]]>
+<!--ELEMENT CalloutList (defined above in Lists)-->
+<!--end of informalexample.module-->]]>
+
+<!ENTITY % areaspec.content.module "INCLUDE">
+<![%areaspec.content.module;[
+<!ENTITY % areaspec.module "INCLUDE">
+<![%areaspec.module;[
+<!ENTITY % local.areaspec.attrib "">
+<!ENTITY % areaspec.role.attrib "%role.attrib;">
+
+<!ENTITY % areaspec.element "INCLUDE">
+<![%areaspec.element;[
+<!ELEMENT areaspec ((area|areaset)+)>
+<!--end of areaspec.element-->]]>
+
+<!-- Units: global unit of measure in which coordinates in
+ this spec are expressed:
+
+ - CALSPair "x1,y1 x2,y2": lower-left and upper-right
+ coordinates in a rectangle describing repro area in which
+ graphic is placed, where X and Y dimensions are each some
+ number 0..10000 (taken from CALS graphic attributes)
+
+ - LineColumn "line column": line number and column number
+ at which to start callout text in "linespecific" content
+
+ - LineRange "startline endline": whole lines from startline
+ to endline in "linespecific" content
+
+ - LineColumnPair "line1 col1 line2 col2": starting and ending
+ points of area in "linespecific" content that starts at
+ first position and ends at second position (including the
+ beginnings of any intervening lines)
+
+ - Other: directive to look at value of OtherUnits attribute
+ to get implementation-specific keyword
+
+ The default is implementation-specific; usually dependent on
+ the parent element (GraphicCO gets CALSPair, ProgramListingCO
+ and ScreenCO get LineColumn) -->
+<!-- OtherUnits: User-defined units -->
+
+
+<!ENTITY % areaspec.attlist "INCLUDE">
+<![%areaspec.attlist;[
+<!ATTLIST areaspec
+ units (calspair
+ |linecolumn
+ |linerange
+ |linecolumnpair
+ |other) #IMPLIED
+ otherunits NMTOKEN #IMPLIED
+ %common.attrib;
+ %areaspec.role.attrib;
+ %local.areaspec.attrib;
+>
+<!--end of areaspec.attlist-->]]>
+<!--end of areaspec.module-->]]>
+
+<!ENTITY % area.module "INCLUDE">
+<![%area.module;[
+<!ENTITY % local.area.attrib "">
+<!ENTITY % area.role.attrib "%role.attrib;">
+
+<!ENTITY % area.element "INCLUDE">
+<![%area.element;[
+<!ELEMENT area EMPTY>
+<!--end of area.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- to any related information -->
+<!-- Units: unit of measure in which coordinates in this
+ area are expressed; inherits from AreaSet and AreaSpec -->
+<!-- OtherUnits: User-defined units -->
+
+
+<!ENTITY % area.attlist "INCLUDE">
+<![%area.attlist;[
+<!ATTLIST area
+ %label.attrib;
+ %linkends.attrib;
+ units (calspair
+ |linecolumn
+ |linerange
+ |linecolumnpair
+ |other) #IMPLIED
+ otherunits NMTOKEN #IMPLIED
+ coords CDATA #REQUIRED
+ %idreq.common.attrib;
+ %area.role.attrib;
+ %local.area.attrib;
+>
+<!--end of area.attlist-->]]>
+<!--end of area.module-->]]>
+
+<!ENTITY % areaset.module "INCLUDE">
+<![%areaset.module;[
+<!ENTITY % local.areaset.attrib "">
+<!ENTITY % areaset.role.attrib "%role.attrib;">
+
+<!ENTITY % areaset.element "INCLUDE">
+<![%areaset.element;[
+<!ELEMENT areaset (area+)>
+<!--end of areaset.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- Units: unit of measure in which coordinates in this
+ area are expressed; inherits from AreaSpec -->
+
+
+<!ENTITY % areaset.attlist "INCLUDE">
+<![%areaset.attlist;[
+<!ATTLIST areaset
+ %label.attrib;
+ units (calspair
+ |linecolumn
+ |linerange
+ |linecolumnpair
+ |other) #IMPLIED
+ otherunits NMTOKEN #IMPLIED
+ coords CDATA #REQUIRED
+ %idreq.common.attrib;
+ %areaset.role.attrib;
+ %local.areaset.attrib;
+>
+<!--end of areaset.attlist-->]]>
+<!--end of areaset.module-->]]>
+<!--end of areaspec.content.module-->]]>
+
+<!ENTITY % programlisting.module "INCLUDE">
+<![%programlisting.module;[
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+
+<!ENTITY % programlisting.element "INCLUDE">
+<![%programlisting.element;[
+<!ELEMENT programlisting (%programlisting.content;)*>
+<!--end of programlisting.element-->]]>
+
+<!ENTITY % programlisting.attlist "INCLUDE">
+<![%programlisting.attlist;[
+<!ATTLIST programlisting
+ %width.attrib;
+ %linespecific.attrib;
+ %common.attrib;
+ %programlisting.role.attrib;
+ %local.programlisting.attrib;
+>
+<!--end of programlisting.attlist-->]]>
+<!--end of programlisting.module-->]]>
+
+<!ENTITY % literallayout.module "INCLUDE">
+<![%literallayout.module;[
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+
+<!ENTITY % literallayout.element "INCLUDE">
+<![%literallayout.element;[
+<!ELEMENT literallayout (%para.char.mix; | lineannotation)*>
+<!--end of literallayout.element-->]]>
+
+<!ENTITY % literallayout.attlist "INCLUDE">
+<![%literallayout.attlist;[
+<!ATTLIST literallayout
+ %width.attrib;
+ %linespecific.attrib;
+ class (monospaced|normal) "normal"
+ %common.attrib;
+ %literallayout.role.attrib;
+ %local.literallayout.attrib;
+>
+<!--end of literallayout.attlist-->]]>
+<!--ELEMENT LineAnnotation (defined in the Inlines section, below)-->
+<!--end of literallayout.module-->]]>
+
+<!ENTITY % screenco.module "INCLUDE">
+<![%screenco.module;[
+<!ENTITY % local.screenco.attrib "">
+<!ENTITY % screenco.role.attrib "%role.attrib;">
+
+<!ENTITY % screenco.element "INCLUDE">
+<![%screenco.element;[
+<!ELEMENT screenco (areaspec, screen, calloutlist*)>
+<!--end of screenco.element-->]]>
+
+<!ENTITY % screenco.attlist "INCLUDE">
+<![%screenco.attlist;[
+<!ATTLIST screenco
+ %common.attrib;
+ %screenco.role.attrib;
+ %local.screenco.attrib;
+>
+<!--end of screenco.attlist-->]]>
+<!--ELEMENT AreaSpec (defined above)-->
+<!--ELEMENT CalloutList (defined above in Lists)-->
+<!--end of screenco.module-->]]>
+
+<!ENTITY % screen.module "INCLUDE">
+<![%screen.module;[
+<!ENTITY % local.screen.attrib "">
+<!ENTITY % screen.role.attrib "%role.attrib;">
+
+<!ENTITY % screen.element "INCLUDE">
+<![%screen.element;[
+<!ELEMENT screen (%screen.content;)*>
+<!--end of screen.element-->]]>
+
+<!ENTITY % screen.attlist "INCLUDE">
+<![%screen.attlist;[
+<!ATTLIST screen
+ %width.attrib;
+ %linespecific.attrib;
+ %common.attrib;
+ %screen.role.attrib;
+ %local.screen.attrib;
+>
+<!--end of screen.attlist-->]]>
+<!--end of screen.module-->]]>
+
+<!ENTITY % screenshot.content.module "INCLUDE">
+<![%screenshot.content.module;[
+<!ENTITY % screenshot.module "INCLUDE">
+<![%screenshot.module;[
+<!ENTITY % local.screenshot.attrib "">
+<!ENTITY % screenshot.role.attrib "%role.attrib;">
+
+<!ENTITY % screenshot.element "INCLUDE">
+<![%screenshot.element;[
+<!ELEMENT screenshot (screeninfo?,
+ (graphic|graphicco
+ |mediaobject|mediaobjectco))>
+<!--end of screenshot.element-->]]>
+
+<!ENTITY % screenshot.attlist "INCLUDE">
+<![%screenshot.attlist;[
+<!ATTLIST screenshot
+ %common.attrib;
+ %screenshot.role.attrib;
+ %local.screenshot.attrib;
+>
+<!--end of screenshot.attlist-->]]>
+<!--end of screenshot.module-->]]>
+
+<!ENTITY % screeninfo.module "INCLUDE">
+<![%screeninfo.module;[
+<!ENTITY % local.screeninfo.attrib "">
+<!ENTITY % screeninfo.role.attrib "%role.attrib;">
+
+<!ENTITY % screeninfo.element "INCLUDE">
+<![%screeninfo.element;[
+<!ELEMENT screeninfo (%para.char.mix;)*>
+<!--end of screeninfo.element-->]]>
+
+<!ENTITY % screeninfo.attlist "INCLUDE">
+<![%screeninfo.attlist;[
+<!ATTLIST screeninfo
+ %common.attrib;
+ %screeninfo.role.attrib;
+ %local.screeninfo.attrib;
+>
+<!--end of screeninfo.attlist-->]]>
+<!--end of screeninfo.module-->]]>
+<!--end of screenshot.content.module-->]]>
+
+<!-- Figures etc. ..................... -->
+
+<!ENTITY % figure.module "INCLUDE">
+<![%figure.module;[
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+
+<!ENTITY % figure.element "INCLUDE">
+<![%figure.element;[
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+ %link.char.class;)+)>
+<!--end of figure.element-->]]>
+
+<!-- Float: Whether the Figure is supposed to be rendered
+ where convenient (yes (1) value) or at the place it occurs
+ in the text (no (0) value, the default) -->
+
+
+<!ENTITY % figure.attlist "INCLUDE">
+<![%figure.attlist;[
+<!ATTLIST figure
+ float %yesorno.attvals; '0'
+ pgwide %yesorno.attvals; #IMPLIED
+ %label.attrib;
+ %common.attrib;
+ %figure.role.attrib;
+ %local.figure.attrib;
+>
+<!--end of figure.attlist-->]]>
+<!--end of figure.module-->]]>
+
+<!ENTITY % informalfigure.module "INCLUDE">
+<![ %informalfigure.module; [
+<!ENTITY % local.informalfigure.attrib "">
+<!ENTITY % informalfigure.role.attrib "%role.attrib;">
+
+<!ENTITY % informalfigure.element "INCLUDE">
+<![ %informalfigure.element; [
+<!ELEMENT informalfigure ((%figure.mix; | %link.char.class;)+)>
+<!--end of informalfigure.element-->]]>
+
+<!ENTITY % informalfigure.attlist "INCLUDE">
+<![ %informalfigure.attlist; [
+<!--
+Float: Whether the Figure is supposed to be rendered
+where convenient (yes (1) value) or at the place it occurs
+in the text (no (0) value, the default)
+-->
+<!ATTLIST informalfigure
+ float %yesorno.attvals; "0"
+ pgwide %yesorno.attvals; #IMPLIED
+ %label.attrib;
+ %common.attrib;
+ %informalfigure.role.attrib;
+ %local.informalfigure.attrib;
+>
+<!--end of informalfigure.attlist-->]]>
+<!--end of informalfigure.module-->]]>
+
+<!ENTITY % graphicco.module "INCLUDE">
+<![%graphicco.module;[
+<!ENTITY % local.graphicco.attrib "">
+<!ENTITY % graphicco.role.attrib "%role.attrib;">
+
+<!ENTITY % graphicco.element "INCLUDE">
+<![%graphicco.element;[
+<!ELEMENT graphicco (areaspec, graphic, calloutlist*)>
+<!--end of graphicco.element-->]]>
+
+<!ENTITY % graphicco.attlist "INCLUDE">
+<![%graphicco.attlist;[
+<!ATTLIST graphicco
+ %common.attrib;
+ %graphicco.role.attrib;
+ %local.graphicco.attrib;
+>
+<!--end of graphicco.attlist-->]]>
+<!--ELEMENT AreaSpec (defined above in Examples)-->
+<!--ELEMENT CalloutList (defined above in Lists)-->
+<!--end of graphicco.module-->]]>
+
+<!-- Graphical data can be the content of Graphic, or you can reference
+ an external file either as an entity (Entitref) or a filename
+ (Fileref). -->
+
+<!ENTITY % graphic.module "INCLUDE">
+<![%graphic.module;[
+<!--FUTURE USE (V4.0):
+......................
+Graphic will be declared EMPTY. This change will require that end-tags
+be removed and that any embedded graphic content be stored outside the
+SGML source and pointed to from an Entityref or Fileref attribute.
+......................
+-->
+<!ENTITY % local.graphic.attrib "">
+<!ENTITY % graphic.role.attrib "%role.attrib;">
+
+<!ENTITY % graphic.element "INCLUDE">
+<![%graphic.element;[
+<!ELEMENT graphic EMPTY>
+<!--end of graphic.element-->]]>
+
+<!ENTITY % graphic.attlist "INCLUDE">
+<![%graphic.attlist;[
+<!ATTLIST graphic
+ %graphics.attrib;
+ %common.attrib;
+ %graphic.role.attrib;
+ %local.graphic.attrib;
+>
+<!--end of graphic.attlist-->]]>
+<!--end of graphic.module-->]]>
+
+<!ENTITY % inlinegraphic.module "INCLUDE">
+<![%inlinegraphic.module;[
+<!--FUTURE USE (V4.0):
+......................
+InlineGraphic will be declared EMPTY. This change will require that
+end-tags be removed and that any embedded graphic content be stored
+outside the SGML source and pointed to from an Entityref or Fileref
+attribute.
+......................
+-->
+<!ENTITY % local.inlinegraphic.attrib "">
+<!ENTITY % inlinegraphic.role.attrib "%role.attrib;">
+
+<!ENTITY % inlinegraphic.element "INCLUDE">
+<![%inlinegraphic.element;[
+<!ELEMENT inlinegraphic EMPTY>
+<!--end of inlinegraphic.element-->]]>
+
+<!ENTITY % inlinegraphic.attlist "INCLUDE">
+<![%inlinegraphic.attlist;[
+<!ATTLIST inlinegraphic
+ %graphics.attrib;
+ %common.attrib;
+ %inlinegraphic.role.attrib;
+ %local.inlinegraphic.attrib;
+>
+<!--end of inlinegraphic.attlist-->]]>
+<!--end of inlinegraphic.module-->]]>
+
+<!ENTITY % mediaobject.content.module "INCLUDE">
+<![ %mediaobject.content.module; [
+
+<!ENTITY % mediaobject.module "INCLUDE">
+<![ %mediaobject.module; [
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+
+<!ENTITY % mediaobject.element "INCLUDE">
+<![ %mediaobject.element; [
+<!ELEMENT mediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*,
+ caption?)>
+<!--end of mediaobject.element-->]]>
+
+<!ENTITY % mediaobject.attlist "INCLUDE">
+<![ %mediaobject.attlist; [
+<!ATTLIST mediaobject
+ %common.attrib;
+ %mediaobject.role.attrib;
+ %local.mediaobject.attrib;
+>
+<!--end of mediaobject.attlist-->]]>
+<!--end of mediaobject.module-->]]>
+
+<!ENTITY % inlinemediaobject.module "INCLUDE">
+<![ %inlinemediaobject.module; [
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+
+<!ENTITY % inlinemediaobject.element "INCLUDE">
+<![ %inlinemediaobject.element; [
+<!ELEMENT inlinemediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*)>
+<!--end of inlinemediaobject.element-->]]>
+
+<!ENTITY % inlinemediaobject.attlist "INCLUDE">
+<![ %inlinemediaobject.attlist; [
+<!ATTLIST inlinemediaobject
+ %common.attrib;
+ %inlinemediaobject.role.attrib;
+ %local.inlinemediaobject.attrib;
+>
+<!--end of inlinemediaobject.attlist-->]]>
+<!--end of inlinemediaobject.module-->]]>
+
+<!ENTITY % videoobject.module "INCLUDE">
+<![ %videoobject.module; [
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+
+<!ENTITY % videoobject.element "INCLUDE">
+<![ %videoobject.element; [
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!--end of videoobject.element-->]]>
+
+<!ENTITY % videoobject.attlist "INCLUDE">
+<![ %videoobject.attlist; [
+<!ATTLIST videoobject
+ %common.attrib;
+ %videoobject.role.attrib;
+ %local.videoobject.attrib;
+>
+<!--end of videoobject.attlist-->]]>
+<!--end of videoobject.module-->]]>
+
+<!ENTITY % audioobject.module "INCLUDE">
+<![ %audioobject.module; [
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+
+<!ENTITY % audioobject.element "INCLUDE">
+<![ %audioobject.element; [
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!--end of audioobject.element-->]]>
+
+<!ENTITY % audioobject.attlist "INCLUDE">
+<![ %audioobject.attlist; [
+<!ATTLIST audioobject
+ %common.attrib;
+ %audioobject.role.attrib;
+ %local.audioobject.attrib;
+>
+<!--end of audioobject.attlist-->]]>
+<!--end of audioobject.module-->]]>
+
+<!ENTITY % imageobject.module "INCLUDE">
+<![ %imageobject.module; [
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+
+<!ENTITY % imageobject.element "INCLUDE">
+<![ %imageobject.element; [
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!--end of imageobject.element-->]]>
+
+<!ENTITY % imageobject.attlist "INCLUDE">
+<![ %imageobject.attlist; [
+<!ATTLIST imageobject
+ %common.attrib;
+ %imageobject.role.attrib;
+ %local.imageobject.attrib;
+>
+<!--end of imageobject.attlist-->]]>
+<!--end of imageobject.module-->]]>
+
+<!ENTITY % textobject.module "INCLUDE">
+<![ %textobject.module; [
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+
+<!ENTITY % textobject.element "INCLUDE">
+<![ %textobject.element; [
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!--end of textobject.element-->]]>
+
+<!ENTITY % textobject.attlist "INCLUDE">
+<![ %textobject.attlist; [
+<!ATTLIST textobject
+ %common.attrib;
+ %textobject.role.attrib;
+ %local.textobject.attrib;
+>
+<!--end of textobject.attlist-->]]>
+<!--end of textobject.module-->]]>
+
+<!ENTITY % objectinfo.module "INCLUDE">
+<![ %objectinfo.module; [
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % objectinfo.element "INCLUDE">
+<![ %objectinfo.element; [
+<!ELEMENT objectinfo ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of objectinfo.element-->]]>
+
+<!ENTITY % objectinfo.attlist "INCLUDE">
+<![ %objectinfo.attlist; [
+<!ATTLIST objectinfo
+ %common.attrib;
+ %objectinfo.role.attrib;
+ %local.objectinfo.attrib;
+>
+<!--end of objectinfo.attlist-->]]>
+<!--end of objectinfo.module-->]]>
+
+<!--EntityRef: Name of an external entity containing the content
+ of the object data-->
+<!--FileRef: Filename, qualified by a pathname if desired,
+ designating the file containing the content of the object data-->
+<!--Format: Notation of the element content, if any-->
+<!--SrcCredit: Information about the source of the image-->
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+ "
+ entityref ENTITY #IMPLIED
+ fileref CDATA #IMPLIED
+ format (%notation.class;)
+ #IMPLIED
+ srccredit CDATA #IMPLIED
+ %local.objectdata.attrib;"
+>
+
+<!ENTITY % videodata.module "INCLUDE">
+<![ %videodata.module; [
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+
+<!ENTITY % videodata.element "INCLUDE">
+<![ %videodata.element; [
+<!ELEMENT videodata EMPTY>
+<!--end of videodata.element-->]]>
+
+<!ENTITY % videodata.attlist "INCLUDE">
+<![ %videodata.attlist; [
+
+<!--Width: Same as CALS reprowid (desired width)-->
+<!--Depth: Same as CALS reprodep (desired depth)-->
+<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ application-specific-->
+<!--Scale: Conflation of CALS hscale and vscale-->
+<!--Scalefit: Same as CALS scalefit-->
+<!ATTLIST videodata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %videodata.role.attrib;
+ %local.videodata.attrib;
+>
+<!--end of videodata.attlist-->]]>
+<!--end of videodata.module-->]]>
+
+<!ENTITY % audiodata.module "INCLUDE">
+<![ %audiodata.module; [
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+
+<!ENTITY % audiodata.element "INCLUDE">
+<![ %audiodata.element; [
+<!ELEMENT audiodata EMPTY>
+<!--end of audiodata.element-->]]>
+
+<!ENTITY % audiodata.attlist "INCLUDE">
+<![ %audiodata.attlist; [
+<!ATTLIST audiodata
+ %common.attrib;
+ %objectdata.attrib;
+ %local.audiodata.attrib;
+ %audiodata.role.attrib;
+>
+<!--end of audiodata.attlist-->]]>
+<!--end of audiodata.module-->]]>
+
+<!ENTITY % imagedata.module "INCLUDE">
+<![ %imagedata.module; [
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+
+<!ENTITY % imagedata.element "INCLUDE">
+<![ %imagedata.element; [
+<!ELEMENT imagedata EMPTY>
+<!--end of imagedata.element-->]]>
+
+<!ENTITY % imagedata.attlist "INCLUDE">
+<![ %imagedata.attlist; [
+
+<!--Width: Same as CALS reprowid (desired width)-->
+<!--Depth: Same as CALS reprodep (desired depth)-->
+<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ application-specific-->
+<!--Scale: Conflation of CALS hscale and vscale-->
+<!--Scalefit: Same as CALS scalefit-->
+<!ATTLIST imagedata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %local.imagedata.attrib;
+ %imagedata.role.attrib;
+>
+<!--end of imagedata.attlist-->]]>
+<!--end of imagedata.module-->]]>
+
+<!ENTITY % caption.module "INCLUDE">
+<![ %caption.module; [
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+
+<!ENTITY % caption.element "INCLUDE">
+<![ %caption.element; [
+<!ELEMENT caption (%textobject.mix;)*>
+<!--end of caption.element-->]]>
+
+<!ENTITY % caption.attlist "INCLUDE">
+<![ %caption.attlist; [
+<!ATTLIST caption
+ %common.attrib;
+ %local.caption.attrib;
+ %caption.role.attrib;
+>
+<!--end of caption.attlist-->]]>
+<!--end of caption.module-->]]>
+
+<!ENTITY % mediaobjectco.module "INCLUDE">
+<![ %mediaobjectco.module; [
+<!ENTITY % local.mediaobjectco.attrib "">
+<!ENTITY % mediaobjectco.role.attrib "%role.attrib;">
+
+<!ENTITY % mediaobjectco.element "INCLUDE">
+<![ %mediaobjectco.element; [
+<!ELEMENT mediaobjectco (objectinfo?, imageobjectco,
+ (imageobjectco|textobject)*)>
+<!--end of mediaobjectco.element-->]]>
+
+<!ENTITY % mediaobjectco.attlist "INCLUDE">
+<![ %mediaobjectco.attlist; [
+<!ATTLIST mediaobjectco
+ %common.attrib;
+ %mediaobjectco.role.attrib;
+ %local.mediaobjectco.attrib;
+>
+<!--end of mediaobjectco.attlist-->]]>
+<!--end of mediaobjectco.module-->]]>
+
+<!ENTITY % imageobjectco.module "INCLUDE">
+<![ %imageobjectco.module; [
+<!ENTITY % local.imageobjectco.attrib "">
+<!ENTITY % imageobjectco.role.attrib "%role.attrib;">
+
+<!ENTITY % imageobjectco.element "INCLUDE">
+<![ %imageobjectco.element; [
+<!ELEMENT imageobjectco (areaspec, imageobject, calloutlist*)>
+<!--end of imageobjectco.element-->]]>
+
+<!ENTITY % imageobjectco.attlist "INCLUDE">
+<![ %imageobjectco.attlist; [
+<!ATTLIST imageobjectco
+ %common.attrib;
+ %imageobjectco.role.attrib;
+ %local.imageobjectco.attrib;
+>
+<!--end of imageobjectco.attlist-->]]>
+<!--end of imageobjectco.module-->]]>
+<!--end of mediaobject.content.module-->]]>
+
+<!-- Equations ........................ -->
+
+<!ENTITY % equation.module "INCLUDE">
+<![%equation.module;[
+<!ENTITY % local.equation.attrib "">
+<!ENTITY % equation.role.attrib "%role.attrib;">
+
+<!ENTITY % equation.element "INCLUDE">
+<![%equation.element;[
+<!ELEMENT equation ((%formalobject.title.content;)?, (informalequation |
+ (alt?, %equation.content;)))>
+<!--end of equation.element-->]]>
+
+<!ENTITY % equation.attlist "INCLUDE">
+<![%equation.attlist;[
+<!ATTLIST equation
+ %label.attrib;
+ %common.attrib;
+ %equation.role.attrib;
+ %local.equation.attrib;
+>
+<!--end of equation.attlist-->]]>
+<!--end of equation.module-->]]>
+
+<!ENTITY % informalequation.module "INCLUDE">
+<![%informalequation.module;[
+<!ENTITY % local.informalequation.attrib "">
+<!ENTITY % informalequation.role.attrib "%role.attrib;">
+
+<!ENTITY % informalequation.element "INCLUDE">
+<![%informalequation.element;[
+<!ELEMENT informalequation (alt?, %equation.content;)>
+<!--end of informalequation.element-->]]>
+
+<!ENTITY % informalequation.attlist "INCLUDE">
+<![%informalequation.attlist;[
+<!ATTLIST informalequation
+ %common.attrib;
+ %informalequation.role.attrib;
+ %local.informalequation.attrib;
+>
+<!--end of informalequation.attlist-->]]>
+<!--end of informalequation.module-->]]>
+
+<!ENTITY % inlineequation.module "INCLUDE">
+<![%inlineequation.module;[
+<!ENTITY % local.inlineequation.attrib "">
+<!ENTITY % inlineequation.role.attrib "%role.attrib;">
+
+<!ENTITY % inlineequation.element "INCLUDE">
+<![%inlineequation.element;[
+<!ELEMENT inlineequation (alt?, %inlineequation.content;)>
+<!--end of inlineequation.element-->]]>
+
+<!ENTITY % inlineequation.attlist "INCLUDE">
+<![%inlineequation.attlist;[
+<!ATTLIST inlineequation
+ %common.attrib;
+ %inlineequation.role.attrib;
+ %local.inlineequation.attrib;
+>
+<!--end of inlineequation.attlist-->]]>
+<!--end of inlineequation.module-->]]>
+
+<!ENTITY % alt.module "INCLUDE">
+<![%alt.module;[
+<!ENTITY % local.alt.attrib "">
+<!ENTITY % alt.role.attrib "%role.attrib;">
+
+<!ENTITY % alt.element "INCLUDE">
+<![%alt.element;[
+<!ELEMENT alt (#PCDATA)>
+<!--end of alt.element-->]]>
+
+<!ENTITY % alt.attlist "INCLUDE">
+<![%alt.attlist;[
+<!ATTLIST alt
+ %common.attrib;
+ %alt.role.attrib;
+ %local.alt.attrib;
+>
+<!--end of alt.attlist-->]]>
+<!--end of alt.module-->]]>
+
+<!-- Tables ........................... -->
+
+<!ENTITY % table.module "INCLUDE">
+<![%table.module;[
+
+<!-- Choose a table model. CALS is off by default, so the default -->
+<!-- is now the SGML Open Exchange table model. -->
+
+<!ENTITY % cals.table.module "INCLUDE">
+<![%cals.table.module;[
+<!ENTITY % exchange.table.module "IGNORE">
+]]>
+<!ENTITY % exchange.table.module "INCLUDE">
+
+<!ENTITY % tables.role.attrib "%role.attrib;">
+
+<![%cals.table.module;[
+<!-- Add label and role attributes to table and informaltable -->
+<!ENTITY % bodyatt "%label.attrib;">
+
+<!-- Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
+ EntryTbl, and Entry (and InformalTable element). -->
+<!ENTITY % secur
+ "%common.attrib;
+ %tables.role.attrib;">
+
+<!ENTITY % common.table.attribs
+ "%bodyatt;
+ %secur;">
+
+<!-- Content model for Table. -->
+<!ENTITY % tbl.table.mdl
+ "((%formalobject.title.content;), (%ndxterm.class;)*,
+ (graphic+|mediaobject+|tgroup+))">
+
+<!-- Allow either objects or inlines; beware of REs between elements. -->
+<!ENTITY % tbl.entry.mdl "%para.char.mix; | %tabentry.mix;">
+
+<!-- Reference SGML Open Exchange Table Model -->
+<!ENTITY % tablemodel
+ PUBLIC "-//Norman Walsh//DTD CALS Table Model XML V3.1.7//EN"
+ "calstblx.dtd">
+]]>
+
+<![%exchange.table.module;[
+<!-- Add common attributes and the Label attribute to Table and -->
+<!-- InformalTable. -->
+<!ENTITY % bodyatt
+ "%common.attrib;
+ %label.attrib;
+ %tables.role.attrib;">
+
+<!ENTITY % common.table.attribs
+ "%bodyatt;">
+
+<!-- Add common attributes to TGroup, ColSpec, TBody, THead, Row, Entry -->
+
+<!ENTITY % tbl.tgroup.att "%common.attrib;">
+<!ENTITY % tbl.colspec.att "%common.attrib;">
+<!ENTITY % tbl.tbody.att "%common.attrib;">
+<!ENTITY % tbl.thead.att "%common.attrib;">
+<!ENTITY % tbl.row.att "%common.attrib;">
+<!ENTITY % tbl.entry.att "%common.attrib;">
+
+<!-- Content model for Table. -->
+<!ENTITY % tbl.table.mdl
+ "((%formalobject.title.content;),
+ (%ndxterm.class;)*,
+ (graphic+|tgroup+))">
+
+<!-- Allow either objects or inlines; beware of REs between elements. -->
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+
+<!ENTITY % tablemodel
+ PUBLIC "-//Norman Walsh//DTD Exchange Table Model 19960430 XML V3.1.7//EN"
+ "soextblx.dtd">
+]]>
+
+%tablemodel;
+
+<!--end of table.module-->]]>
+
+<!ENTITY % informaltable.module "INCLUDE">
+<![%informaltable.module;[
+
+<!-- Note that InformalTable is dependent on some of the entity
+ declarations that customize Table. -->
+
+<!ENTITY % local.informaltable.attrib "">
+
+<!ENTITY % informaltable.element "INCLUDE">
+<![%informaltable.element;[
+<!ELEMENT informaltable (graphic+|mediaobject+|tgroup+)>
+<!--end of informaltable.element-->]]>
+
+<!-- Frame, Colsep, and Rowsep must be repeated because
+ they are not in entities in the table module. -->
+<!-- includes TabStyle, ToCentry, ShortEntry,
+ Orient, PgWide -->
+<!-- includes Label -->
+<!-- includes common attributes -->
+
+
+<!ENTITY % informaltable.attlist "INCLUDE">
+<![%informaltable.attlist;[
+<!ATTLIST informaltable
+ frame (top
+ |bottom
+ |topbot
+ |all
+ |sides
+ |none) #IMPLIED
+ colsep %yesorno.attvals; #IMPLIED
+ rowsep %yesorno.attvals; #IMPLIED
+ %common.table.attribs;
+ %tbl.table.att;
+ %local.informaltable.attrib;
+>
+<!--end of informaltable.attlist-->]]>
+<!--end of informaltable.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Synopses ............................................................. -->
+
+<!-- Synopsis ......................... -->
+
+<!ENTITY % synopsis.module "INCLUDE">
+<![%synopsis.module;[
+<!ENTITY % local.synopsis.attrib "">
+<!ENTITY % synopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % synopsis.element "INCLUDE">
+<![%synopsis.element;[
+<!ELEMENT synopsis (%para.char.mix; | graphic | mediaobject | lineannotation)*>
+<!--end of synopsis.element-->]]>
+
+<!ENTITY % synopsis.attlist "INCLUDE">
+<![%synopsis.attlist;[
+<!ATTLIST synopsis
+ %label.attrib;
+ %linespecific.attrib;
+ %common.attrib;
+ %synopsis.role.attrib;
+ %local.synopsis.attrib;
+>
+<!--end of synopsis.attlist-->]]>
+
+<!--ELEMENT LineAnnotation (defined in the Inlines section, below)-->
+<!--end of synopsis.module-->]]>
+
+<!-- CmdSynopsis ...................... -->
+
+<!ENTITY % cmdsynopsis.content.module "INCLUDE">
+<![%cmdsynopsis.content.module;[
+<!ENTITY % cmdsynopsis.module "INCLUDE">
+<![%cmdsynopsis.module;[
+<!ENTITY % local.cmdsynopsis.attrib "">
+<!ENTITY % cmdsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % cmdsynopsis.element "INCLUDE">
+<![%cmdsynopsis.element;[
+<!ELEMENT cmdsynopsis ((command | arg | group | sbr)+, synopfragment*)>
+<!--end of cmdsynopsis.element-->]]>
+
+<!-- Sepchar: Character that should separate command and all
+ top-level arguments; alternate value might be e.g., &Delta; -->
+
+
+<!ENTITY % cmdsynopsis.attlist "INCLUDE">
+<![%cmdsynopsis.attlist;[
+<!ATTLIST cmdsynopsis
+ %label.attrib;
+ sepchar CDATA " "
+ cmdlength CDATA #IMPLIED
+ %common.attrib;
+ %cmdsynopsis.role.attrib;
+ %local.cmdsynopsis.attrib;
+>
+<!--end of cmdsynopsis.attlist-->]]>
+<!--end of cmdsynopsis.module-->]]>
+
+<!ENTITY % arg.module "INCLUDE">
+<![%arg.module;[
+<!ENTITY % local.arg.attrib "">
+<!ENTITY % arg.role.attrib "%role.attrib;">
+
+<!ENTITY % arg.element "INCLUDE">
+<![%arg.element;[
+<!ELEMENT arg (#PCDATA
+ | arg
+ | group
+ | option
+ | synopfragmentref
+ | replaceable
+ | sbr)*>
+<!--end of arg.element-->]]>
+
+<!-- Choice: Whether Arg must be supplied: Opt (optional to
+ supply, e.g. [arg]; the default), Req (required to supply,
+ e.g. {arg}), or Plain (required to supply, e.g. arg) -->
+<!-- Rep: whether Arg is repeatable: Norepeat (e.g. arg without
+ ellipsis; the default), or Repeat (e.g. arg...) -->
+
+
+<!ENTITY % arg.attlist "INCLUDE">
+<![%arg.attlist;[
+<!ATTLIST arg
+ choice (opt
+ |req
+ |plain) 'opt'
+ rep (norepeat
+ |repeat) 'norepeat'
+ %common.attrib;
+ %arg.role.attrib;
+ %local.arg.attrib;
+>
+<!--end of arg.attlist-->]]>
+<!--end of arg.module-->]]>
+
+<!ENTITY % group.module "INCLUDE">
+<![%group.module;[
+<!--FUTURE USE (V4.0):
+......................
+The OptMult and ReqMult values for the Choice attribute on Group will be
+removed. Use the Rep attribute instead to indicate that the choice is
+repeatable.
+......................
+-->
+
+<!ENTITY % local.group.attrib "">
+<!ENTITY % group.role.attrib "%role.attrib;">
+
+<!ENTITY % group.element "INCLUDE">
+<![%group.element;[
+<!ELEMENT group ((arg | group | option | synopfragmentref
+ | replaceable | sbr)+)>
+<!--end of group.element-->]]>
+
+<!-- Choice: Whether Group must be supplied: Opt (optional to
+ supply, e.g. [g1|g2|g3]; the default), Req (required to
+ supply, e.g. {g1|g2|g3}), Plain (required to supply,
+ e.g. g1|g2|g3), OptMult (can supply zero or more, e.g.
+ [[g1|g2|g3]]), or ReqMult (must supply one or more, e.g.
+ {{g1|g2|g3}}) -->
+<!-- Rep: whether Group is repeatable: Norepeat (e.g. group
+ without ellipsis; the default), or Repeat (e.g. group...) -->
+
+
+<!ENTITY % group.attlist "INCLUDE">
+<![%group.attlist;[
+<!ATTLIST group
+ choice (opt
+ |req
+ |plain
+ |optmult
+ |reqmult) 'opt'
+ rep (norepeat
+ |repeat) 'norepeat'
+ %common.attrib;
+ %group.role.attrib;
+ %local.group.attrib;
+>
+<!--end of group.attlist-->]]>
+<!--end of group.module-->]]>
+
+<!ENTITY % sbr.module "INCLUDE">
+<![%sbr.module;[
+<!ENTITY % local.sbr.attrib "">
+<!-- Synopsis break -->
+<!ENTITY % sbr.role.attrib "%role.attrib;">
+
+<!ENTITY % sbr.element "INCLUDE">
+<![%sbr.element;[
+<!ELEMENT sbr EMPTY>
+<!--end of sbr.element-->]]>
+
+<!ENTITY % sbr.attlist "INCLUDE">
+<![%sbr.attlist;[
+<!ATTLIST sbr
+ %common.attrib;
+ %sbr.role.attrib;
+ %local.sbr.attrib;
+>
+<!--end of sbr.attlist-->]]>
+<!--end of sbr.module-->]]>
+
+<!ENTITY % synopfragmentref.module "INCLUDE">
+<![%synopfragmentref.module;[
+<!ENTITY % local.synopfragmentref.attrib "">
+<!ENTITY % synopfragmentref.role.attrib "%role.attrib;">
+
+<!ENTITY % synopfragmentref.element "INCLUDE">
+<![%synopfragmentref.element;[
+<!ELEMENT synopfragmentref (#PCDATA)>
+<!--end of synopfragmentref.element-->]]>
+
+<!-- to SynopFragment of complex synopsis
+ material for separate referencing -->
+
+
+<!ENTITY % synopfragmentref.attlist "INCLUDE">
+<![%synopfragmentref.attlist;[
+<!ATTLIST synopfragmentref
+ %linkendreq.attrib; %common.attrib;
+ %synopfragmentref.role.attrib;
+ %local.synopfragmentref.attrib;
+>
+<!--end of synopfragmentref.attlist-->]]>
+<!--end of synopfragmentref.module-->]]>
+
+<!ENTITY % synopfragment.module "INCLUDE">
+<![%synopfragment.module;[
+<!ENTITY % local.synopfragment.attrib "">
+<!ENTITY % synopfragment.role.attrib "%role.attrib;">
+
+<!ENTITY % synopfragment.element "INCLUDE">
+<![%synopfragment.element;[
+<!ELEMENT synopfragment ((arg | group)+)>
+<!--end of synopfragment.element-->]]>
+
+<!ENTITY % synopfragment.attlist "INCLUDE">
+<![%synopfragment.attlist;[
+<!ATTLIST synopfragment
+ %idreq.common.attrib;
+ %synopfragment.role.attrib;
+ %local.synopfragment.attrib;
+>
+<!--end of synopfragment.attlist-->]]>
+<!--end of synopfragment.module-->]]>
+
+<!--ELEMENT Command (defined in the Inlines section, below)-->
+<!--ELEMENT Option (defined in the Inlines section, below)-->
+<!--ELEMENT Replaceable (defined in the Inlines section, below)-->
+<!--end of cmdsynopsis.content.module-->]]>
+
+<!-- FuncSynopsis ..................... -->
+
+<!ENTITY % funcsynopsis.content.module "INCLUDE">
+<![%funcsynopsis.content.module;[
+<!ENTITY % funcsynopsis.module "INCLUDE">
+<![%funcsynopsis.module;[
+<!--FUTURE USE (V4.0):
+......................
+The content model group starting with FuncDef will not be available; you
+will have to use FuncPrototype. Also, you will be able to have a
+mixture of FuncPrototypes and FuncSynopsisInfos (this is not
+backwards-incompatible all by itself).
+
+<!ELEMENT funcsynopsis ((funcsynopsisinfo|funcprototype)+)>
+......................
+-->
+
+<!ENTITY % local.funcsynopsis.attrib "">
+<!ENTITY % funcsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % funcsynopsis.element "INCLUDE">
+<![%funcsynopsis.element;[
+<!ELEMENT funcsynopsis (funcsynopsisinfo?, (funcprototype+ |
+ (funcdef, (void | varargs | paramdef+))+), funcsynopsisinfo?)>
+<!--end of funcsynopsis.element-->]]>
+
+<!ENTITY % funcsynopsis.attlist "INCLUDE">
+<![%funcsynopsis.attlist;[
+<!ATTLIST funcsynopsis
+ %label.attrib;
+ %common.attrib;
+ %funcsynopsis.role.attrib;
+ %local.funcsynopsis.attrib;
+>
+<!--end of funcsynopsis.attlist-->]]>
+<!--end of funcsynopsis.module-->]]>
+
+<!ENTITY % funcsynopsisinfo.module "INCLUDE">
+<![%funcsynopsisinfo.module;[
+<!ENTITY % local.funcsynopsisinfo.attrib "">
+<!ENTITY % funcsynopsisinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % funcsynopsisinfo.element "INCLUDE">
+<![%funcsynopsisinfo.element;[
+<!ELEMENT funcsynopsisinfo (%cptr.char.mix; | lineannotation)*>
+<!--end of funcsynopsisinfo.element-->]]>
+
+<!ENTITY % funcsynopsisinfo.attlist "INCLUDE">
+<![%funcsynopsisinfo.attlist;[
+<!ATTLIST funcsynopsisinfo
+ %linespecific.attrib;
+ %common.attrib;
+ %funcsynopsisinfo.role.attrib;
+ %local.funcsynopsisinfo.attrib;
+>
+<!--end of funcsynopsisinfo.attlist-->]]>
+<!--end of funcsynopsisinfo.module-->]]>
+
+<!ENTITY % funcprototype.module "INCLUDE">
+<![%funcprototype.module;[
+<!ENTITY % local.funcprototype.attrib "">
+<!ENTITY % funcprototype.role.attrib "%role.attrib;">
+
+<!ENTITY % funcprototype.element "INCLUDE">
+<![%funcprototype.element;[
+<!ELEMENT funcprototype (funcdef, (void | varargs | paramdef+))>
+<!--end of funcprototype.element-->]]>
+
+<!ENTITY % funcprototype.attlist "INCLUDE">
+<![%funcprototype.attlist;[
+<!ATTLIST funcprototype
+ %common.attrib;
+ %funcprototype.role.attrib;
+ %local.funcprototype.attrib;
+>
+<!--end of funcprototype.attlist-->]]>
+<!--end of funcprototype.module-->]]>
+
+<!ENTITY % funcdef.module "INCLUDE">
+<![%funcdef.module;[
+<!ENTITY % local.funcdef.attrib "">
+<!ENTITY % funcdef.role.attrib "%role.attrib;">
+
+<!ENTITY % funcdef.element "INCLUDE">
+<![%funcdef.element;[
+<!ELEMENT funcdef (#PCDATA
+ | replaceable
+ | function)*>
+<!--end of funcdef.element-->]]>
+
+<!ENTITY % funcdef.attlist "INCLUDE">
+<![%funcdef.attlist;[
+<!ATTLIST funcdef
+ %common.attrib;
+ %funcdef.role.attrib;
+ %local.funcdef.attrib;
+>
+<!--end of funcdef.attlist-->]]>
+<!--end of funcdef.module-->]]>
+
+<!ENTITY % void.module "INCLUDE">
+<![%void.module;[
+<!ENTITY % local.void.attrib "">
+<!ENTITY % void.role.attrib "%role.attrib;">
+
+<!ENTITY % void.element "INCLUDE">
+<![%void.element;[
+<!ELEMENT void EMPTY>
+<!--end of void.element-->]]>
+
+<!ENTITY % void.attlist "INCLUDE">
+<![%void.attlist;[
+<!ATTLIST void
+ %common.attrib;
+ %void.role.attrib;
+ %local.void.attrib;
+>
+<!--end of void.attlist-->]]>
+<!--end of void.module-->]]>
+
+<!ENTITY % varargs.module "INCLUDE">
+<![%varargs.module;[
+<!ENTITY % local.varargs.attrib "">
+<!ENTITY % varargs.role.attrib "%role.attrib;">
+
+<!ENTITY % varargs.element "INCLUDE">
+<![%varargs.element;[
+<!ELEMENT varargs EMPTY>
+<!--end of varargs.element-->]]>
+
+<!ENTITY % varargs.attlist "INCLUDE">
+<![%varargs.attlist;[
+<!ATTLIST varargs
+ %common.attrib;
+ %varargs.role.attrib;
+ %local.varargs.attrib;
+>
+<!--end of varargs.attlist-->]]>
+<!--end of varargs.module-->]]>
+
+<!-- Processing assumes that only one Parameter will appear in a
+ ParamDef, and that FuncParams will be used at most once, for
+ providing information on the "inner parameters" for parameters that
+ are pointers to functions. -->
+
+<!ENTITY % paramdef.module "INCLUDE">
+<![%paramdef.module;[
+<!ENTITY % local.paramdef.attrib "">
+<!ENTITY % paramdef.role.attrib "%role.attrib;">
+
+<!ENTITY % paramdef.element "INCLUDE">
+<![%paramdef.element;[
+<!ELEMENT paramdef (#PCDATA
+ | replaceable
+ | parameter
+ | funcparams)*>
+<!--end of paramdef.element-->]]>
+
+<!ENTITY % paramdef.attlist "INCLUDE">
+<![%paramdef.attlist;[
+<!ATTLIST paramdef
+ %common.attrib;
+ %paramdef.role.attrib;
+ %local.paramdef.attrib;
+>
+<!--end of paramdef.attlist-->]]>
+<!--end of paramdef.module-->]]>
+
+<!ENTITY % funcparams.module "INCLUDE">
+<![%funcparams.module;[
+<!ENTITY % local.funcparams.attrib "">
+<!ENTITY % funcparams.role.attrib "%role.attrib;">
+
+<!ENTITY % funcparams.element "INCLUDE">
+<![%funcparams.element;[
+<!ELEMENT funcparams (%cptr.char.mix;)*>
+<!--end of funcparams.element-->]]>
+
+<!ENTITY % funcparams.attlist "INCLUDE">
+<![%funcparams.attlist;[
+<!ATTLIST funcparams
+ %common.attrib;
+ %funcparams.role.attrib;
+ %local.funcparams.attrib;
+>
+<!--end of funcparams.attlist-->]]>
+<!--end of funcparams.module-->]]>
+
+<!--ELEMENT LineAnnotation (defined in the Inlines section, below)-->
+<!--ELEMENT Replaceable (defined in the Inlines section, below)-->
+<!--ELEMENT Function (defined in the Inlines section, below)-->
+<!--ELEMENT Parameter (defined in the Inlines section, below)-->
+<!--end of funcsynopsis.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Document information entities and elements ........................... -->
+
+<!-- The document information elements include some elements that are
+ currently used only in the document hierarchy module. They are
+ defined here so that they will be available for use in customized
+ document hierarchies. -->
+
+<!-- .................................. -->
+
+<!ENTITY % docinfo.content.module "INCLUDE">
+<![%docinfo.content.module;[
+
+<!-- Ackno ............................ -->
+
+<!ENTITY % ackno.module "INCLUDE">
+<![%ackno.module;[
+<!ENTITY % local.ackno.attrib "">
+<!ENTITY % ackno.role.attrib "%role.attrib;">
+
+<!ENTITY % ackno.element "INCLUDE">
+<![%ackno.element;[
+<!ELEMENT ackno (%docinfo.char.mix;)*>
+<!--end of ackno.element-->]]>
+
+<!ENTITY % ackno.attlist "INCLUDE">
+<![%ackno.attlist;[
+<!ATTLIST ackno
+ %common.attrib;
+ %ackno.role.attrib;
+ %local.ackno.attrib;
+>
+<!--end of ackno.attlist-->]]>
+<!--end of ackno.module-->]]>
+
+<!-- Address .......................... -->
+
+<!ENTITY % address.content.module "INCLUDE">
+<![%address.content.module;[
+<!ENTITY % address.module "INCLUDE">
+<![%address.module;[
+<!ENTITY % local.address.attrib "">
+<!ENTITY % address.role.attrib "%role.attrib;">
+
+<!ENTITY % address.element "INCLUDE">
+<![%address.element;[
+<!ELEMENT address (#PCDATA|%person.ident.mix;
+ |street|pob|postcode|city|state|country|phone
+ |fax|email|otheraddr)*>
+<!--end of address.element-->]]>
+
+<!ENTITY % address.attlist "INCLUDE">
+<![%address.attlist;[
+<!ATTLIST address
+ %linespecific.attrib;
+ %common.attrib;
+ %address.role.attrib;
+ %local.address.attrib;
+>
+<!--end of address.attlist-->]]>
+<!--end of address.module-->]]>
+
+ <!ENTITY % street.module "INCLUDE">
+ <![%street.module;[
+ <!ENTITY % local.street.attrib "">
+ <!ENTITY % street.role.attrib "%role.attrib;">
+
+<!ENTITY % street.element "INCLUDE">
+<![%street.element;[
+<!ELEMENT street (%docinfo.char.mix;)*>
+<!--end of street.element-->]]>
+
+<!ENTITY % street.attlist "INCLUDE">
+<![%street.attlist;[
+<!ATTLIST street
+ %common.attrib;
+ %street.role.attrib;
+ %local.street.attrib;
+>
+<!--end of street.attlist-->]]>
+ <!--end of street.module-->]]>
+
+ <!ENTITY % pob.module "INCLUDE">
+ <![%pob.module;[
+ <!ENTITY % local.pob.attrib "">
+ <!ENTITY % pob.role.attrib "%role.attrib;">
+
+<!ENTITY % pob.element "INCLUDE">
+<![%pob.element;[
+<!ELEMENT pob (%docinfo.char.mix;)*>
+<!--end of pob.element-->]]>
+
+<!ENTITY % pob.attlist "INCLUDE">
+<![%pob.attlist;[
+<!ATTLIST pob
+ %common.attrib;
+ %pob.role.attrib;
+ %local.pob.attrib;
+>
+<!--end of pob.attlist-->]]>
+ <!--end of pob.module-->]]>
+
+ <!ENTITY % postcode.module "INCLUDE">
+ <![%postcode.module;[
+ <!ENTITY % local.postcode.attrib "">
+ <!ENTITY % postcode.role.attrib "%role.attrib;">
+
+<!ENTITY % postcode.element "INCLUDE">
+<![%postcode.element;[
+<!ELEMENT postcode (%docinfo.char.mix;)*>
+<!--end of postcode.element-->]]>
+
+<!ENTITY % postcode.attlist "INCLUDE">
+<![%postcode.attlist;[
+<!ATTLIST postcode
+ %common.attrib;
+ %postcode.role.attrib;
+ %local.postcode.attrib;
+>
+<!--end of postcode.attlist-->]]>
+ <!--end of postcode.module-->]]>
+
+ <!ENTITY % city.module "INCLUDE">
+ <![%city.module;[
+ <!ENTITY % local.city.attrib "">
+ <!ENTITY % city.role.attrib "%role.attrib;">
+
+<!ENTITY % city.element "INCLUDE">
+<![%city.element;[
+<!ELEMENT city (%docinfo.char.mix;)*>
+<!--end of city.element-->]]>
+
+<!ENTITY % city.attlist "INCLUDE">
+<![%city.attlist;[
+<!ATTLIST city
+ %common.attrib;
+ %city.role.attrib;
+ %local.city.attrib;
+>
+<!--end of city.attlist-->]]>
+ <!--end of city.module-->]]>
+
+ <!ENTITY % state.module "INCLUDE">
+ <![%state.module;[
+ <!ENTITY % local.state.attrib "">
+ <!ENTITY % state.role.attrib "%role.attrib;">
+
+<!ENTITY % state.element "INCLUDE">
+<![%state.element;[
+<!ELEMENT state (%docinfo.char.mix;)*>
+<!--end of state.element-->]]>
+
+<!ENTITY % state.attlist "INCLUDE">
+<![%state.attlist;[
+<!ATTLIST state
+ %common.attrib;
+ %state.role.attrib;
+ %local.state.attrib;
+>
+<!--end of state.attlist-->]]>
+ <!--end of state.module-->]]>
+
+ <!ENTITY % country.module "INCLUDE">
+ <![%country.module;[
+ <!ENTITY % local.country.attrib "">
+ <!ENTITY % country.role.attrib "%role.attrib;">
+
+<!ENTITY % country.element "INCLUDE">
+<![%country.element;[
+<!ELEMENT country (%docinfo.char.mix;)*>
+<!--end of country.element-->]]>
+
+<!ENTITY % country.attlist "INCLUDE">
+<![%country.attlist;[
+<!ATTLIST country
+ %common.attrib;
+ %country.role.attrib;
+ %local.country.attrib;
+>
+<!--end of country.attlist-->]]>
+ <!--end of country.module-->]]>
+
+ <!ENTITY % phone.module "INCLUDE">
+ <![%phone.module;[
+ <!ENTITY % local.phone.attrib "">
+ <!ENTITY % phone.role.attrib "%role.attrib;">
+
+<!ENTITY % phone.element "INCLUDE">
+<![%phone.element;[
+<!ELEMENT phone (%docinfo.char.mix;)*>
+<!--end of phone.element-->]]>
+
+<!ENTITY % phone.attlist "INCLUDE">
+<![%phone.attlist;[
+<!ATTLIST phone
+ %common.attrib;
+ %phone.role.attrib;
+ %local.phone.attrib;
+>
+<!--end of phone.attlist-->]]>
+ <!--end of phone.module-->]]>
+
+ <!ENTITY % fax.module "INCLUDE">
+ <![%fax.module;[
+ <!ENTITY % local.fax.attrib "">
+ <!ENTITY % fax.role.attrib "%role.attrib;">
+
+<!ENTITY % fax.element "INCLUDE">
+<![%fax.element;[
+<!ELEMENT fax (%docinfo.char.mix;)*>
+<!--end of fax.element-->]]>
+
+<!ENTITY % fax.attlist "INCLUDE">
+<![%fax.attlist;[
+<!ATTLIST fax
+ %common.attrib;
+ %fax.role.attrib;
+ %local.fax.attrib;
+>
+<!--end of fax.attlist-->]]>
+ <!--end of fax.module-->]]>
+
+ <!--ELEMENT Email (defined in the Inlines section, below)-->
+
+ <!ENTITY % otheraddr.module "INCLUDE">
+ <![%otheraddr.module;[
+ <!ENTITY % local.otheraddr.attrib "">
+ <!ENTITY % otheraddr.role.attrib "%role.attrib;">
+
+<!ENTITY % otheraddr.element "INCLUDE">
+<![%otheraddr.element;[
+<!ELEMENT otheraddr (%docinfo.char.mix;)*>
+<!--end of otheraddr.element-->]]>
+
+<!ENTITY % otheraddr.attlist "INCLUDE">
+<![%otheraddr.attlist;[
+<!ATTLIST otheraddr
+ %common.attrib;
+ %otheraddr.role.attrib;
+ %local.otheraddr.attrib;
+>
+<!--end of otheraddr.attlist-->]]>
+ <!--end of otheraddr.module-->]]>
+<!--end of address.content.module-->]]>
+
+<!-- Affiliation ...................... -->
+
+<!ENTITY % affiliation.content.module "INCLUDE">
+<![%affiliation.content.module;[
+<!ENTITY % affiliation.module "INCLUDE">
+<![%affiliation.module;[
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+
+<!ENTITY % affiliation.element "INCLUDE">
+<![%affiliation.element;[
+<!ELEMENT affiliation (shortaffil?, jobtitle*, orgname?, orgdiv*,
+ address*)>
+<!--end of affiliation.element-->]]>
+
+<!ENTITY % affiliation.attlist "INCLUDE">
+<![%affiliation.attlist;[
+<!ATTLIST affiliation
+ %common.attrib;
+ %affiliation.role.attrib;
+ %local.affiliation.attrib;
+>
+<!--end of affiliation.attlist-->]]>
+<!--end of affiliation.module-->]]>
+
+ <!ENTITY % shortaffil.module "INCLUDE">
+ <![%shortaffil.module;[
+ <!ENTITY % local.shortaffil.attrib "">
+ <!ENTITY % shortaffil.role.attrib "%role.attrib;">
+
+<!ENTITY % shortaffil.element "INCLUDE">
+<![%shortaffil.element;[
+<!ELEMENT shortaffil (%docinfo.char.mix;)*>
+<!--end of shortaffil.element-->]]>
+
+<!ENTITY % shortaffil.attlist "INCLUDE">
+<![%shortaffil.attlist;[
+<!ATTLIST shortaffil
+ %common.attrib;
+ %shortaffil.role.attrib;
+ %local.shortaffil.attrib;
+>
+<!--end of shortaffil.attlist-->]]>
+ <!--end of shortaffil.module-->]]>
+
+ <!ENTITY % jobtitle.module "INCLUDE">
+ <![%jobtitle.module;[
+ <!ENTITY % local.jobtitle.attrib "">
+ <!ENTITY % jobtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % jobtitle.element "INCLUDE">
+<![%jobtitle.element;[
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!--end of jobtitle.element-->]]>
+
+<!ENTITY % jobtitle.attlist "INCLUDE">
+<![%jobtitle.attlist;[
+<!ATTLIST jobtitle
+ %common.attrib;
+ %jobtitle.role.attrib;
+ %local.jobtitle.attrib;
+>
+<!--end of jobtitle.attlist-->]]>
+ <!--end of jobtitle.module-->]]>
+
+ <!--ELEMENT OrgName (defined elsewhere in this section)-->
+
+ <!ENTITY % orgdiv.module "INCLUDE">
+ <![%orgdiv.module;[
+ <!ENTITY % local.orgdiv.attrib "">
+ <!ENTITY % orgdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % orgdiv.element "INCLUDE">
+<![%orgdiv.element;[
+<!ELEMENT orgdiv (%docinfo.char.mix;)*>
+<!--end of orgdiv.element-->]]>
+
+<!ENTITY % orgdiv.attlist "INCLUDE">
+<![%orgdiv.attlist;[
+<!ATTLIST orgdiv
+ %common.attrib;
+ %orgdiv.role.attrib;
+ %local.orgdiv.attrib;
+>
+<!--end of orgdiv.attlist-->]]>
+ <!--end of orgdiv.module-->]]>
+
+ <!--ELEMENT Address (defined elsewhere in this section)-->
+<!--end of affiliation.content.module-->]]>
+
+<!-- ArtPageNums ...................... -->
+
+<!ENTITY % artpagenums.module "INCLUDE">
+<![%artpagenums.module;[
+<!ENTITY % local.artpagenums.attrib "">
+<!ENTITY % artpagenums.role.attrib "%role.attrib;">
+
+<!ENTITY % artpagenums.element "INCLUDE">
+<![%artpagenums.element;[
+<!ELEMENT artpagenums (%docinfo.char.mix;)*>
+<!--end of artpagenums.element-->]]>
+
+<!ENTITY % artpagenums.attlist "INCLUDE">
+<![%artpagenums.attlist;[
+<!ATTLIST artpagenums
+ %common.attrib;
+ %artpagenums.role.attrib;
+ %local.artpagenums.attrib;
+>
+<!--end of artpagenums.attlist-->]]>
+<!--end of artpagenums.module-->]]>
+
+<!-- Author ........................... -->
+
+<!ENTITY % author.module "INCLUDE">
+<![%author.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new
+wrapper element created to allow association of those two elements with
+Author name information.
+......................
+-->
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+
+<!ENTITY % author.element "INCLUDE">
+<![%author.element;[
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!--end of author.element-->]]>
+
+<!ENTITY % author.attlist "INCLUDE">
+<![%author.attlist;[
+<!ATTLIST author
+ %common.attrib;
+ %author.role.attrib;
+ %local.author.attrib;
+>
+<!--end of author.attlist-->]]>
+<!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of author.module-->]]>
+
+<!-- AuthorGroup ...................... -->
+
+<!ENTITY % authorgroup.content.module "INCLUDE">
+<![%authorgroup.content.module;[
+<!ENTITY % authorgroup.module "INCLUDE">
+<![%authorgroup.module;[
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+
+<!ENTITY % authorgroup.element "INCLUDE">
+<![%authorgroup.element;[
+<!ELEMENT authorgroup ((author|editor|collab|corpauthor|othercredit)+)>
+<!--end of authorgroup.element-->]]>
+
+<!ENTITY % authorgroup.attlist "INCLUDE">
+<![%authorgroup.attlist;[
+<!ATTLIST authorgroup
+ %common.attrib;
+ %authorgroup.role.attrib;
+ %local.authorgroup.attrib;
+>
+<!--end of authorgroup.attlist-->]]>
+<!--end of authorgroup.module-->]]>
+
+ <!--ELEMENT Author (defined elsewhere in this section)-->
+ <!--ELEMENT Editor (defined elsewhere in this section)-->
+
+ <!ENTITY % collab.content.module "INCLUDE">
+ <![%collab.content.module;[
+ <!ENTITY % collab.module "INCLUDE">
+ <![%collab.module;[
+ <!ENTITY % local.collab.attrib "">
+ <!ENTITY % collab.role.attrib "%role.attrib;">
+
+<!ENTITY % collab.element "INCLUDE">
+<![%collab.element;[
+<!ELEMENT collab (collabname, affiliation*)>
+<!--end of collab.element-->]]>
+
+<!ENTITY % collab.attlist "INCLUDE">
+<![%collab.attlist;[
+<!ATTLIST collab
+ %common.attrib;
+ %collab.role.attrib;
+ %local.collab.attrib;
+>
+<!--end of collab.attlist-->]]>
+ <!--end of collab.module-->]]>
+
+ <!ENTITY % collabname.module "INCLUDE">
+ <![%collabname.module;[
+ <!ENTITY % local.collabname.attrib "">
+ <!ENTITY % collabname.role.attrib "%role.attrib;">
+
+<!ENTITY % collabname.element "INCLUDE">
+<![%collabname.element;[
+<!ELEMENT collabname (%docinfo.char.mix;)*>
+<!--end of collabname.element-->]]>
+
+<!ENTITY % collabname.attlist "INCLUDE">
+<![%collabname.attlist;[
+<!ATTLIST collabname
+ %common.attrib;
+ %collabname.role.attrib;
+ %local.collabname.attrib;
+>
+<!--end of collabname.attlist-->]]>
+ <!--end of collabname.module-->]]>
+
+ <!--ELEMENT Affiliation (defined elsewhere in this section)-->
+ <!--end of collab.content.module-->]]>
+
+ <!--ELEMENT CorpAuthor (defined elsewhere in this section)-->
+ <!--ELEMENT OtherCredit (defined elsewhere in this section)-->
+
+<!--end of authorgroup.content.module-->]]>
+
+<!-- AuthorInitials ................... -->
+
+<!ENTITY % authorinitials.module "INCLUDE">
+<![%authorinitials.module;[
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+
+<!ENTITY % authorinitials.element "INCLUDE">
+<![%authorinitials.element;[
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!--end of authorinitials.element-->]]>
+
+<!ENTITY % authorinitials.attlist "INCLUDE">
+<![%authorinitials.attlist;[
+<!ATTLIST authorinitials
+ %common.attrib;
+ %authorinitials.role.attrib;
+ %local.authorinitials.attrib;
+>
+<!--end of authorinitials.attlist-->]]>
+<!--end of authorinitials.module-->]]>
+
+<!-- ConfGroup ........................ -->
+
+<!ENTITY % confgroup.content.module "INCLUDE">
+<![%confgroup.content.module;[
+<!ENTITY % confgroup.module "INCLUDE">
+<![%confgroup.module;[
+<!ENTITY % local.confgroup.attrib "">
+<!ENTITY % confgroup.role.attrib "%role.attrib;">
+
+<!ENTITY % confgroup.element "INCLUDE">
+<![%confgroup.element;[
+<!ELEMENT confgroup ((confdates|conftitle|confnum|address|confsponsor)*)>
+<!--end of confgroup.element-->]]>
+
+<!ENTITY % confgroup.attlist "INCLUDE">
+<![%confgroup.attlist;[
+<!ATTLIST confgroup
+ %common.attrib;
+ %confgroup.role.attrib;
+ %local.confgroup.attrib;
+>
+<!--end of confgroup.attlist-->]]>
+<!--end of confgroup.module-->]]>
+
+ <!ENTITY % confdates.module "INCLUDE">
+ <![%confdates.module;[
+ <!ENTITY % local.confdates.attrib "">
+ <!ENTITY % confdates.role.attrib "%role.attrib;">
+
+<!ENTITY % confdates.element "INCLUDE">
+<![%confdates.element;[
+<!ELEMENT confdates (%docinfo.char.mix;)*>
+<!--end of confdates.element-->]]>
+
+<!ENTITY % confdates.attlist "INCLUDE">
+<![%confdates.attlist;[
+<!ATTLIST confdates
+ %common.attrib;
+ %confdates.role.attrib;
+ %local.confdates.attrib;
+>
+<!--end of confdates.attlist-->]]>
+ <!--end of confdates.module-->]]>
+
+ <!ENTITY % conftitle.module "INCLUDE">
+ <![%conftitle.module;[
+ <!ENTITY % local.conftitle.attrib "">
+ <!ENTITY % conftitle.role.attrib "%role.attrib;">
+
+<!ENTITY % conftitle.element "INCLUDE">
+<![%conftitle.element;[
+<!ELEMENT conftitle (%docinfo.char.mix;)*>
+<!--end of conftitle.element-->]]>
+
+<!ENTITY % conftitle.attlist "INCLUDE">
+<![%conftitle.attlist;[
+<!ATTLIST conftitle
+ %common.attrib;
+ %conftitle.role.attrib;
+ %local.conftitle.attrib;
+>
+<!--end of conftitle.attlist-->]]>
+ <!--end of conftitle.module-->]]>
+
+ <!ENTITY % confnum.module "INCLUDE">
+ <![%confnum.module;[
+ <!ENTITY % local.confnum.attrib "">
+ <!ENTITY % confnum.role.attrib "%role.attrib;">
+
+<!ENTITY % confnum.element "INCLUDE">
+<![%confnum.element;[
+<!ELEMENT confnum (%docinfo.char.mix;)*>
+<!--end of confnum.element-->]]>
+
+<!ENTITY % confnum.attlist "INCLUDE">
+<![%confnum.attlist;[
+<!ATTLIST confnum
+ %common.attrib;
+ %confnum.role.attrib;
+ %local.confnum.attrib;
+>
+<!--end of confnum.attlist-->]]>
+ <!--end of confnum.module-->]]>
+
+ <!--ELEMENT Address (defined elsewhere in this section)-->
+
+ <!ENTITY % confsponsor.module "INCLUDE">
+ <![%confsponsor.module;[
+ <!ENTITY % local.confsponsor.attrib "">
+ <!ENTITY % confsponsor.role.attrib "%role.attrib;">
+
+<!ENTITY % confsponsor.element "INCLUDE">
+<![%confsponsor.element;[
+<!ELEMENT confsponsor (%docinfo.char.mix;)*>
+<!--end of confsponsor.element-->]]>
+
+<!ENTITY % confsponsor.attlist "INCLUDE">
+<![%confsponsor.attlist;[
+<!ATTLIST confsponsor
+ %common.attrib;
+ %confsponsor.role.attrib;
+ %local.confsponsor.attrib;
+>
+<!--end of confsponsor.attlist-->]]>
+ <!--end of confsponsor.module-->]]>
+<!--end of confgroup.content.module-->]]>
+
+<!-- ContractNum ...................... -->
+
+<!ENTITY % contractnum.module "INCLUDE">
+<![%contractnum.module;[
+<!ENTITY % local.contractnum.attrib "">
+<!ENTITY % contractnum.role.attrib "%role.attrib;">
+
+<!ENTITY % contractnum.element "INCLUDE">
+<![%contractnum.element;[
+<!ELEMENT contractnum (%docinfo.char.mix;)*>
+<!--end of contractnum.element-->]]>
+
+<!ENTITY % contractnum.attlist "INCLUDE">
+<![%contractnum.attlist;[
+<!ATTLIST contractnum
+ %common.attrib;
+ %contractnum.role.attrib;
+ %local.contractnum.attrib;
+>
+<!--end of contractnum.attlist-->]]>
+<!--end of contractnum.module-->]]>
+
+<!-- ContractSponsor .................. -->
+
+<!ENTITY % contractsponsor.module "INCLUDE">
+<![%contractsponsor.module;[
+<!ENTITY % local.contractsponsor.attrib "">
+<!ENTITY % contractsponsor.role.attrib "%role.attrib;">
+
+<!ENTITY % contractsponsor.element "INCLUDE">
+<![%contractsponsor.element;[
+<!ELEMENT contractsponsor (%docinfo.char.mix;)*>
+<!--end of contractsponsor.element-->]]>
+
+<!ENTITY % contractsponsor.attlist "INCLUDE">
+<![%contractsponsor.attlist;[
+<!ATTLIST contractsponsor
+ %common.attrib;
+ %contractsponsor.role.attrib;
+ %local.contractsponsor.attrib;
+>
+<!--end of contractsponsor.attlist-->]]>
+<!--end of contractsponsor.module-->]]>
+
+<!-- Copyright ........................ -->
+
+<!ENTITY % copyright.content.module "INCLUDE">
+<![%copyright.content.module;[
+<!ENTITY % copyright.module "INCLUDE">
+<![%copyright.module;[
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+
+<!ENTITY % copyright.element "INCLUDE">
+<![%copyright.element;[
+<!ELEMENT copyright (year+, holder*)>
+<!--end of copyright.element-->]]>
+
+<!ENTITY % copyright.attlist "INCLUDE">
+<![%copyright.attlist;[
+<!ATTLIST copyright
+ %common.attrib;
+ %copyright.role.attrib;
+ %local.copyright.attrib;
+>
+<!--end of copyright.attlist-->]]>
+<!--end of copyright.module-->]]>
+
+ <!ENTITY % year.module "INCLUDE">
+ <![%year.module;[
+ <!ENTITY % local.year.attrib "">
+ <!ENTITY % year.role.attrib "%role.attrib;">
+
+<!ENTITY % year.element "INCLUDE">
+<![%year.element;[
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!--end of year.element-->]]>
+
+<!ENTITY % year.attlist "INCLUDE">
+<![%year.attlist;[
+<!ATTLIST year
+ %common.attrib;
+ %year.role.attrib;
+ %local.year.attrib;
+>
+<!--end of year.attlist-->]]>
+ <!--end of year.module-->]]>
+
+ <!ENTITY % holder.module "INCLUDE">
+ <![%holder.module;[
+ <!ENTITY % local.holder.attrib "">
+ <!ENTITY % holder.role.attrib "%role.attrib;">
+
+<!ENTITY % holder.element "INCLUDE">
+<![%holder.element;[
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!--end of holder.element-->]]>
+
+<!ENTITY % holder.attlist "INCLUDE">
+<![%holder.attlist;[
+<!ATTLIST holder
+ %common.attrib;
+ %holder.role.attrib;
+ %local.holder.attrib;
+>
+<!--end of holder.attlist-->]]>
+ <!--end of holder.module-->]]>
+<!--end of copyright.content.module-->]]>
+
+<!-- CorpAuthor ....................... -->
+
+<!ENTITY % corpauthor.module "INCLUDE">
+<![%corpauthor.module;[
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+
+<!ENTITY % corpauthor.element "INCLUDE">
+<![%corpauthor.element;[
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!--end of corpauthor.element-->]]>
+
+<!ENTITY % corpauthor.attlist "INCLUDE">
+<![%corpauthor.attlist;[
+<!ATTLIST corpauthor
+ %common.attrib;
+ %corpauthor.role.attrib;
+ %local.corpauthor.attrib;
+>
+<!--end of corpauthor.attlist-->]]>
+<!--end of corpauthor.module-->]]>
+
+<!-- CorpName ......................... -->
+
+<!ENTITY % corpname.module "INCLUDE">
+<![%corpname.module;[
+<!ENTITY % local.corpname.attrib "">
+
+<!ENTITY % corpname.element "INCLUDE">
+<![%corpname.element;[
+<!ELEMENT corpname (%docinfo.char.mix;)*>
+<!--end of corpname.element-->]]>
+<!ENTITY % corpname.role.attrib "%role.attrib;">
+
+<!ENTITY % corpname.attlist "INCLUDE">
+<![%corpname.attlist;[
+<!ATTLIST corpname
+ %common.attrib;
+ %corpname.role.attrib;
+ %local.corpname.attrib;
+>
+<!--end of corpname.attlist-->]]>
+<!--end of corpname.module-->]]>
+
+<!-- Date ............................. -->
+
+<!ENTITY % date.module "INCLUDE">
+<![%date.module;[
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+
+<!ENTITY % date.element "INCLUDE">
+<![%date.element;[
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!--end of date.element-->]]>
+
+<!ENTITY % date.attlist "INCLUDE">
+<![%date.attlist;[
+<!ATTLIST date
+ %common.attrib;
+ %date.role.attrib;
+ %local.date.attrib;
+>
+<!--end of date.attlist-->]]>
+<!--end of date.module-->]]>
+
+<!-- Edition .......................... -->
+
+<!ENTITY % edition.module "INCLUDE">
+<![%edition.module;[
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+
+<!ENTITY % edition.element "INCLUDE">
+<![%edition.element;[
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!--end of edition.element-->]]>
+
+<!ENTITY % edition.attlist "INCLUDE">
+<![%edition.attlist;[
+<!ATTLIST edition
+ %common.attrib;
+ %edition.role.attrib;
+ %local.edition.attrib;
+>
+<!--end of edition.attlist-->]]>
+<!--end of edition.module-->]]>
+
+<!-- Editor ........................... -->
+
+<!ENTITY % editor.module "INCLUDE">
+<![%editor.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new
+wrapper element created to allow association of those two elements with
+Editor name information.
+......................
+-->
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+
+<!ENTITY % editor.element "INCLUDE">
+<![%editor.element;[
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!--end of editor.element-->]]>
+
+<!ENTITY % editor.attlist "INCLUDE">
+<![%editor.attlist;[
+<!ATTLIST editor
+ %common.attrib;
+ %editor.role.attrib;
+ %local.editor.attrib;
+>
+<!--end of editor.attlist-->]]>
+ <!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of editor.module-->]]>
+
+<!-- ISBN ............................. -->
+
+<!ENTITY % isbn.module "INCLUDE">
+<![%isbn.module;[
+<!ENTITY % local.isbn.attrib "">
+<!ENTITY % isbn.role.attrib "%role.attrib;">
+
+<!ENTITY % isbn.element "INCLUDE">
+<![%isbn.element;[
+<!ELEMENT isbn (%docinfo.char.mix;)*>
+<!--end of isbn.element-->]]>
+
+<!ENTITY % isbn.attlist "INCLUDE">
+<![%isbn.attlist;[
+<!ATTLIST isbn
+ %common.attrib;
+ %isbn.role.attrib;
+ %local.isbn.attrib;
+>
+<!--end of isbn.attlist-->]]>
+<!--end of isbn.module-->]]>
+
+<!-- ISSN ............................. -->
+
+<!ENTITY % issn.module "INCLUDE">
+<![%issn.module;[
+<!ENTITY % local.issn.attrib "">
+<!ENTITY % issn.role.attrib "%role.attrib;">
+
+<!ENTITY % issn.element "INCLUDE">
+<![%issn.element;[
+<!ELEMENT issn (%docinfo.char.mix;)*>
+<!--end of issn.element-->]]>
+
+<!ENTITY % issn.attlist "INCLUDE">
+<![%issn.attlist;[
+<!ATTLIST issn
+ %common.attrib;
+ %issn.role.attrib;
+ %local.issn.attrib;
+>
+<!--end of issn.attlist-->]]>
+<!--end of issn.module-->]]>
+
+<!-- InvPartNumber .................... -->
+
+<!ENTITY % invpartnumber.module "INCLUDE">
+<![%invpartnumber.module;[
+<!ENTITY % local.invpartnumber.attrib "">
+<!ENTITY % invpartnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % invpartnumber.element "INCLUDE">
+<![%invpartnumber.element;[
+<!ELEMENT invpartnumber (%docinfo.char.mix;)*>
+<!--end of invpartnumber.element-->]]>
+
+<!ENTITY % invpartnumber.attlist "INCLUDE">
+<![%invpartnumber.attlist;[
+<!ATTLIST invpartnumber
+ %common.attrib;
+ %invpartnumber.role.attrib;
+ %local.invpartnumber.attrib;
+>
+<!--end of invpartnumber.attlist-->]]>
+<!--end of invpartnumber.module-->]]>
+
+<!-- IssueNum ......................... -->
+
+<!ENTITY % issuenum.module "INCLUDE">
+<![%issuenum.module;[
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+
+<!ENTITY % issuenum.element "INCLUDE">
+<![%issuenum.element;[
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!--end of issuenum.element-->]]>
+
+<!ENTITY % issuenum.attlist "INCLUDE">
+<![%issuenum.attlist;[
+<!ATTLIST issuenum
+ %common.attrib;
+ %issuenum.role.attrib;
+ %local.issuenum.attrib;
+>
+<!--end of issuenum.attlist-->]]>
+<!--end of issuenum.module-->]]>
+
+<!-- LegalNotice ...................... -->
+
+<!ENTITY % legalnotice.module "INCLUDE">
+<![%legalnotice.module;[
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+
+<!ENTITY % legalnotice.element "INCLUDE">
+<![%legalnotice.element;[
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!--end of legalnotice.element-->]]>
+
+<!ENTITY % legalnotice.attlist "INCLUDE">
+<![%legalnotice.attlist;[
+<!ATTLIST legalnotice
+ %common.attrib;
+ %legalnotice.role.attrib;
+ %local.legalnotice.attrib;
+>
+<!--end of legalnotice.attlist-->]]>
+<!--end of legalnotice.module-->]]>
+
+<!-- ModeSpec ......................... -->
+
+<!ENTITY % modespec.module "INCLUDE">
+<![%modespec.module;[
+<!ENTITY % local.modespec.attrib "">
+<!ENTITY % modespec.role.attrib "%role.attrib;">
+
+<!ENTITY % modespec.element "INCLUDE">
+<![%modespec.element;[
+<!ELEMENT modespec (%docinfo.char.mix;)*>
+<!--end of modespec.element-->]]>
+
+<!-- Application: Type of action required for completion
+ of the links to which the ModeSpec is relevant (e.g.,
+ retrieval query) -->
+
+
+<!ENTITY % modespec.attlist "INCLUDE">
+<![%modespec.attlist;[
+<!ATTLIST modespec
+ application NOTATION
+ (%notation.class;) #IMPLIED
+ %common.attrib;
+ %modespec.role.attrib;
+ %local.modespec.attrib;
+>
+<!--end of modespec.attlist-->]]>
+<!--end of modespec.module-->]]>
+
+<!-- OrgName .......................... -->
+
+<!ENTITY % orgname.module "INCLUDE">
+<![%orgname.module;[
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+
+<!ENTITY % orgname.element "INCLUDE">
+<![%orgname.element;[
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!--end of orgname.element-->]]>
+
+<!ENTITY % orgname.attlist "INCLUDE">
+<![%orgname.attlist;[
+<!ATTLIST orgname
+ %common.attrib;
+ %orgname.role.attrib;
+ %local.orgname.attrib;
+>
+<!--end of orgname.attlist-->]]>
+<!--end of orgname.module-->]]>
+
+<!-- OtherCredit ...................... -->
+
+<!ENTITY % othercredit.module "INCLUDE">
+<![%othercredit.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new
+wrapper element created to allow association of those two elements with
+OtherCredit name information.
+......................
+-->
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+
+<!ENTITY % othercredit.element "INCLUDE">
+<![%othercredit.element;[
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!--end of othercredit.element-->]]>
+
+<!ENTITY % othercredit.attlist "INCLUDE">
+<![%othercredit.attlist;[
+<!ATTLIST othercredit
+ %common.attrib;
+ %othercredit.role.attrib;
+ %local.othercredit.attrib;
+>
+<!--end of othercredit.attlist-->]]>
+ <!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of othercredit.module-->]]>
+
+<!-- PageNums ......................... -->
+
+<!ENTITY % pagenums.module "INCLUDE">
+<![%pagenums.module;[
+<!ENTITY % local.pagenums.attrib "">
+<!ENTITY % pagenums.role.attrib "%role.attrib;">
+
+<!ENTITY % pagenums.element "INCLUDE">
+<![%pagenums.element;[
+<!ELEMENT pagenums (%docinfo.char.mix;)*>
+<!--end of pagenums.element-->]]>
+
+<!ENTITY % pagenums.attlist "INCLUDE">
+<![%pagenums.attlist;[
+<!ATTLIST pagenums
+ %common.attrib;
+ %pagenums.role.attrib;
+ %local.pagenums.attrib;
+>
+<!--end of pagenums.attlist-->]]>
+<!--end of pagenums.module-->]]>
+
+<!-- Personal identity elements ....... -->
+
+<!-- These elements are used only within Author, Editor, and
+OtherCredit. -->
+
+<!ENTITY % person.ident.module "INCLUDE">
+<![%person.ident.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and
+a new wrapper element created to allow association of those two elements
+with Contrib name information.
+......................
+-->
+ <!ENTITY % contrib.module "INCLUDE">
+ <![%contrib.module;[
+ <!ENTITY % local.contrib.attrib "">
+ <!ENTITY % contrib.role.attrib "%role.attrib;">
+
+<!ENTITY % contrib.element "INCLUDE">
+<![%contrib.element;[
+<!ELEMENT contrib (%docinfo.char.mix;)*>
+<!--end of contrib.element-->]]>
+
+<!ENTITY % contrib.attlist "INCLUDE">
+<![%contrib.attlist;[
+<!ATTLIST contrib
+ %common.attrib;
+ %contrib.role.attrib;
+ %local.contrib.attrib;
+>
+<!--end of contrib.attlist-->]]>
+ <!--end of contrib.module-->]]>
+
+ <!ENTITY % firstname.module "INCLUDE">
+ <![%firstname.module;[
+ <!ENTITY % local.firstname.attrib "">
+ <!ENTITY % firstname.role.attrib "%role.attrib;">
+
+<!ENTITY % firstname.element "INCLUDE">
+<![%firstname.element;[
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!--end of firstname.element-->]]>
+
+<!ENTITY % firstname.attlist "INCLUDE">
+<![%firstname.attlist;[
+<!ATTLIST firstname
+ %common.attrib;
+ %firstname.role.attrib;
+ %local.firstname.attrib;
+>
+<!--end of firstname.attlist-->]]>
+ <!--end of firstname.module-->]]>
+
+ <!ENTITY % honorific.module "INCLUDE">
+ <![%honorific.module;[
+ <!ENTITY % local.honorific.attrib "">
+ <!ENTITY % honorific.role.attrib "%role.attrib;">
+
+<!ENTITY % honorific.element "INCLUDE">
+<![%honorific.element;[
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!--end of honorific.element-->]]>
+
+<!ENTITY % honorific.attlist "INCLUDE">
+<![%honorific.attlist;[
+<!ATTLIST honorific
+ %common.attrib;
+ %honorific.role.attrib;
+ %local.honorific.attrib;
+>
+<!--end of honorific.attlist-->]]>
+ <!--end of honorific.module-->]]>
+
+ <!ENTITY % lineage.module "INCLUDE">
+ <![%lineage.module;[
+ <!ENTITY % local.lineage.attrib "">
+ <!ENTITY % lineage.role.attrib "%role.attrib;">
+
+<!ENTITY % lineage.element "INCLUDE">
+<![%lineage.element;[
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!--end of lineage.element-->]]>
+
+<!ENTITY % lineage.attlist "INCLUDE">
+<![%lineage.attlist;[
+<!ATTLIST lineage
+ %common.attrib;
+ %lineage.role.attrib;
+ %local.lineage.attrib;
+>
+<!--end of lineage.attlist-->]]>
+ <!--end of lineage.module-->]]>
+
+ <!ENTITY % othername.module "INCLUDE">
+ <![%othername.module;[
+ <!ENTITY % local.othername.attrib "">
+ <!ENTITY % othername.role.attrib "%role.attrib;">
+
+<!ENTITY % othername.element "INCLUDE">
+<![%othername.element;[
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!--end of othername.element-->]]>
+
+<!ENTITY % othername.attlist "INCLUDE">
+<![%othername.attlist;[
+<!ATTLIST othername
+ %common.attrib;
+ %othername.role.attrib;
+ %local.othername.attrib;
+>
+<!--end of othername.attlist-->]]>
+ <!--end of othername.module-->]]>
+
+ <!ENTITY % surname.module "INCLUDE">
+ <![%surname.module;[
+ <!ENTITY % local.surname.attrib "">
+ <!ENTITY % surname.role.attrib "%role.attrib;">
+
+<!ENTITY % surname.element "INCLUDE">
+<![%surname.element;[
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!--end of surname.element-->]]>
+
+<!ENTITY % surname.attlist "INCLUDE">
+<![%surname.attlist;[
+<!ATTLIST surname
+ %common.attrib;
+ %surname.role.attrib;
+ %local.surname.attrib;
+>
+<!--end of surname.attlist-->]]>
+ <!--end of surname.module-->]]>
+<!--end of person.ident.module-->]]>
+
+<!-- PrintHistory ..................... -->
+
+<!ENTITY % printhistory.module "INCLUDE">
+<![%printhistory.module;[
+<!ENTITY % local.printhistory.attrib "">
+<!ENTITY % printhistory.role.attrib "%role.attrib;">
+
+<!ENTITY % printhistory.element "INCLUDE">
+<![%printhistory.element;[
+<!ELEMENT printhistory ((%para.class;)+)>
+<!--end of printhistory.element-->]]>
+
+<!ENTITY % printhistory.attlist "INCLUDE">
+<![%printhistory.attlist;[
+<!ATTLIST printhistory
+ %common.attrib;
+ %printhistory.role.attrib;
+ %local.printhistory.attrib;
+>
+<!--end of printhistory.attlist-->]]>
+<!--end of printhistory.module-->]]>
+
+<!-- ProductName ...................... -->
+
+<!ENTITY % productname.module "INCLUDE">
+<![%productname.module;[
+<!ENTITY % local.productname.attrib "">
+<!ENTITY % productname.role.attrib "%role.attrib;">
+
+<!ENTITY % productname.element "INCLUDE">
+<![%productname.element;[
+<!ELEMENT productname (%para.char.mix;)*>
+<!--end of productname.element-->]]>
+
+<!-- Class: More precisely identifies the item the element names -->
+
+
+<!ENTITY % productname.attlist "INCLUDE">
+<![%productname.attlist;[
+<!ATTLIST productname
+ class (service
+ |trade
+ |registered
+ |copyright) 'trade'
+ %common.attrib;
+ %productname.role.attrib;
+ %local.productname.attrib;
+>
+<!--end of productname.attlist-->]]>
+<!--end of productname.module-->]]>
+
+<!-- ProductNumber .................... -->
+
+<!ENTITY % productnumber.module "INCLUDE">
+<![%productnumber.module;[
+<!ENTITY % local.productnumber.attrib "">
+<!ENTITY % productnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % productnumber.element "INCLUDE">
+<![%productnumber.element;[
+<!ELEMENT productnumber (%docinfo.char.mix;)*>
+<!--end of productnumber.element-->]]>
+
+<!ENTITY % productnumber.attlist "INCLUDE">
+<![%productnumber.attlist;[
+<!ATTLIST productnumber
+ %common.attrib;
+ %productnumber.role.attrib;
+ %local.productnumber.attrib;
+>
+<!--end of productnumber.attlist-->]]>
+<!--end of productnumber.module-->]]>
+
+<!-- PubDate .......................... -->
+
+<!ENTITY % pubdate.module "INCLUDE">
+<![%pubdate.module;[
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+
+<!ENTITY % pubdate.element "INCLUDE">
+<![%pubdate.element;[
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!--end of pubdate.element-->]]>
+
+<!ENTITY % pubdate.attlist "INCLUDE">
+<![%pubdate.attlist;[
+<!ATTLIST pubdate
+ %common.attrib;
+ %pubdate.role.attrib;
+ %local.pubdate.attrib;
+>
+<!--end of pubdate.attlist-->]]>
+<!--end of pubdate.module-->]]>
+
+<!-- Publisher ........................ -->
+
+<!ENTITY % publisher.content.module "INCLUDE">
+<![%publisher.content.module;[
+<!ENTITY % publisher.module "INCLUDE">
+<![%publisher.module;[
+<!ENTITY % local.publisher.attrib "">
+<!ENTITY % publisher.role.attrib "%role.attrib;">
+
+<!ENTITY % publisher.element "INCLUDE">
+<![%publisher.element;[
+<!ELEMENT publisher (publishername, address*)>
+<!--end of publisher.element-->]]>
+
+<!ENTITY % publisher.attlist "INCLUDE">
+<![%publisher.attlist;[
+<!ATTLIST publisher
+ %common.attrib;
+ %publisher.role.attrib;
+ %local.publisher.attrib;
+>
+<!--end of publisher.attlist-->]]>
+<!--end of publisher.module-->]]>
+
+ <!ENTITY % publishername.module "INCLUDE">
+ <![%publishername.module;[
+ <!ENTITY % local.publishername.attrib "">
+ <!ENTITY % publishername.role.attrib "%role.attrib;">
+
+<!ENTITY % publishername.element "INCLUDE">
+<![%publishername.element;[
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!--end of publishername.element-->]]>
+
+<!ENTITY % publishername.attlist "INCLUDE">
+<![%publishername.attlist;[
+<!ATTLIST publishername
+ %common.attrib;
+ %publishername.role.attrib;
+ %local.publishername.attrib;
+>
+<!--end of publishername.attlist-->]]>
+ <!--end of publishername.module-->]]>
+
+ <!--ELEMENT Address (defined elsewhere in this section)-->
+<!--end of publisher.content.module-->]]>
+
+<!-- PubsNumber ....................... -->
+
+<!ENTITY % pubsnumber.module "INCLUDE">
+<![%pubsnumber.module;[
+<!ENTITY % local.pubsnumber.attrib "">
+<!ENTITY % pubsnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % pubsnumber.element "INCLUDE">
+<![%pubsnumber.element;[
+<!ELEMENT pubsnumber (%docinfo.char.mix;)*>
+<!--end of pubsnumber.element-->]]>
+
+<!ENTITY % pubsnumber.attlist "INCLUDE">
+<![%pubsnumber.attlist;[
+<!ATTLIST pubsnumber
+ %common.attrib;
+ %pubsnumber.role.attrib;
+ %local.pubsnumber.attrib;
+>
+<!--end of pubsnumber.attlist-->]]>
+<!--end of pubsnumber.module-->]]>
+
+<!-- ReleaseInfo ...................... -->
+
+<!ENTITY % releaseinfo.module "INCLUDE">
+<![%releaseinfo.module;[
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % releaseinfo.element "INCLUDE">
+<![%releaseinfo.element;[
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!--end of releaseinfo.element-->]]>
+
+<!ENTITY % releaseinfo.attlist "INCLUDE">
+<![%releaseinfo.attlist;[
+<!ATTLIST releaseinfo
+ %common.attrib;
+ %releaseinfo.role.attrib;
+ %local.releaseinfo.attrib;
+>
+<!--end of releaseinfo.attlist-->]]>
+<!--end of releaseinfo.module-->]]>
+
+<!-- RevHistory ....................... -->
+
+<!ENTITY % revhistory.content.module "INCLUDE">
+<![%revhistory.content.module;[
+<!ENTITY % revhistory.module "INCLUDE">
+<![%revhistory.module;[
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+
+<!ENTITY % revhistory.element "INCLUDE">
+<![%revhistory.element;[
+<!ELEMENT revhistory (revision+)>
+<!--end of revhistory.element-->]]>
+
+<!ENTITY % revhistory.attlist "INCLUDE">
+<![%revhistory.attlist;[
+<!ATTLIST revhistory
+ %common.attrib;
+ %revhistory.role.attrib;
+ %local.revhistory.attrib;
+>
+<!--end of revhistory.attlist-->]]>
+<!--end of revhistory.module-->]]>
+
+ <!ENTITY % revision.module "INCLUDE">
+ <![%revision.module;[
+ <!ENTITY % local.revision.attrib "">
+ <!ENTITY % revision.role.attrib "%role.attrib;">
+
+<!ENTITY % revision.element "INCLUDE">
+<![%revision.element;[
+<!ELEMENT revision (revnumber, date, authorinitials*, revremark?)>
+<!--end of revision.element-->]]>
+
+<!ENTITY % revision.attlist "INCLUDE">
+<![%revision.attlist;[
+<!ATTLIST revision
+ %common.attrib;
+ %revision.role.attrib;
+ %local.revision.attrib;
+>
+<!--end of revision.attlist-->]]>
+ <!--end of revision.module-->]]>
+
+ <!ENTITY % revnumber.module "INCLUDE">
+ <![%revnumber.module;[
+ <!ENTITY % local.revnumber.attrib "">
+ <!ENTITY % revnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % revnumber.element "INCLUDE">
+<![%revnumber.element;[
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!--end of revnumber.element-->]]>
+
+<!ENTITY % revnumber.attlist "INCLUDE">
+<![%revnumber.attlist;[
+<!ATTLIST revnumber
+ %common.attrib;
+ %revnumber.role.attrib;
+ %local.revnumber.attrib;
+>
+<!--end of revnumber.attlist-->]]>
+ <!--end of revnumber.module-->]]>
+
+ <!--ELEMENT Date (defined elsewhere in this section)-->
+ <!--ELEMENT AuthorInitials (defined elsewhere in this section)-->
+
+ <!ENTITY % revremark.module "INCLUDE">
+ <![%revremark.module;[
+ <!ENTITY % local.revremark.attrib "">
+ <!ENTITY % revremark.role.attrib "%role.attrib;">
+
+<!ENTITY % revremark.element "INCLUDE">
+<![%revremark.element;[
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!--end of revremark.element-->]]>
+
+<!ENTITY % revremark.attlist "INCLUDE">
+<![%revremark.attlist;[
+<!ATTLIST revremark
+ %common.attrib;
+ %revremark.role.attrib;
+ %local.revremark.attrib;
+>
+<!--end of revremark.attlist-->]]>
+ <!--end of revremark.module-->]]>
+<!--end of revhistory.content.module-->]]>
+
+<!-- SeriesVolNums .................... -->
+
+<!ENTITY % seriesvolnums.module "INCLUDE">
+<![%seriesvolnums.module;[
+<!ENTITY % local.seriesvolnums.attrib "">
+<!ENTITY % seriesvolnums.role.attrib "%role.attrib;">
+
+<!ENTITY % seriesvolnums.element "INCLUDE">
+<![%seriesvolnums.element;[
+<!ELEMENT seriesvolnums (%docinfo.char.mix;)*>
+<!--end of seriesvolnums.element-->]]>
+
+<!ENTITY % seriesvolnums.attlist "INCLUDE">
+<![%seriesvolnums.attlist;[
+<!ATTLIST seriesvolnums
+ %common.attrib;
+ %seriesvolnums.role.attrib;
+ %local.seriesvolnums.attrib;
+>
+<!--end of seriesvolnums.attlist-->]]>
+<!--end of seriesvolnums.module-->]]>
+
+<!-- VolumeNum ........................ -->
+
+<!ENTITY % volumenum.module "INCLUDE">
+<![%volumenum.module;[
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+
+<!ENTITY % volumenum.element "INCLUDE">
+<![%volumenum.element;[
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!--end of volumenum.element-->]]>
+
+<!ENTITY % volumenum.attlist "INCLUDE">
+<![%volumenum.attlist;[
+<!ATTLIST volumenum
+ %common.attrib;
+ %volumenum.role.attrib;
+ %local.volumenum.attrib;
+>
+<!--end of volumenum.attlist-->]]>
+<!--end of volumenum.module-->]]>
+
+<!-- .................................. -->
+
+<!--end of docinfo.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Inline, link, and ubiquitous elements ................................ -->
+
+<!-- Technical and computer terms ......................................... -->
+
+<!ENTITY % accel.module "INCLUDE">
+<![%accel.module;[
+<!ENTITY % local.accel.attrib "">
+<!ENTITY % accel.role.attrib "%role.attrib;">
+
+<!ENTITY % accel.element "INCLUDE">
+<![%accel.element;[
+<!ELEMENT accel (%smallcptr.char.mix;)*>
+<!--end of accel.element-->]]>
+
+<!ENTITY % accel.attlist "INCLUDE">
+<![%accel.attlist;[
+<!ATTLIST accel
+ %common.attrib;
+ %accel.role.attrib;
+ %local.accel.attrib;
+>
+<!--end of accel.attlist-->]]>
+<!--end of accel.module-->]]>
+
+<!ENTITY % action.module "INCLUDE">
+<![%action.module;[
+<!--FUTURE USE (V4.0):
+......................
+Action will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.action.attrib "">
+<!ENTITY % action.role.attrib "%role.attrib;">
+
+<!ENTITY % action.element "INCLUDE">
+<![%action.element;[
+<!ELEMENT action (%cptr.char.mix;)*>
+<!--end of action.element-->]]>
+
+<!ENTITY % action.attlist "INCLUDE">
+<![%action.attlist;[
+<!ATTLIST action
+ %moreinfo.attrib;
+ %common.attrib;
+ %action.role.attrib;
+ %local.action.attrib;
+>
+<!--end of action.attlist-->]]>
+<!--end of action.module-->]]>
+
+<!ENTITY % application.module "INCLUDE">
+<![%application.module;[
+<!ENTITY % local.application.attrib "">
+<!ENTITY % application.role.attrib "%role.attrib;">
+
+<!ENTITY % application.element "INCLUDE">
+<![%application.element;[
+<!ELEMENT application (%para.char.mix;)*>
+<!--end of application.element-->]]>
+
+<!ENTITY % application.attlist "INCLUDE">
+<![%application.attlist;[
+<!ATTLIST application
+ class (hardware
+ |software) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %application.role.attrib;
+ %local.application.attrib;
+>
+<!--end of application.attlist-->]]>
+<!--end of application.module-->]]>
+
+<!ENTITY % classname.module "INCLUDE">
+<![%classname.module;[
+<!ENTITY % local.classname.attrib "">
+<!ENTITY % classname.role.attrib "%role.attrib;">
+
+<!ENTITY % classname.element "INCLUDE">
+<![%classname.element;[
+<!ELEMENT classname (%smallcptr.char.mix;)*>
+<!--end of classname.element-->]]>
+
+<!ENTITY % classname.attlist "INCLUDE">
+<![%classname.attlist;[
+<!ATTLIST classname
+ %common.attrib;
+ %classname.role.attrib;
+ %local.classname.attrib;
+>
+<!--end of classname.attlist-->]]>
+<!--end of classname.module-->]]>
+
+<!ENTITY % co.module "INCLUDE">
+<![%co.module;[
+<!ENTITY % local.co.attrib "">
+<!-- CO is a callout area of the LineColumn unit type (a single character
+ position); the position is directly indicated by the location of CO. -->
+<!ENTITY % co.role.attrib "%role.attrib;">
+
+<!ENTITY % co.element "INCLUDE">
+<![%co.element;[
+<!ELEMENT co EMPTY>
+<!--end of co.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- to any related information -->
+
+
+<!ENTITY % co.attlist "INCLUDE">
+<![%co.attlist;[
+<!ATTLIST co
+ %label.attrib;
+ %linkends.attrib;
+ %idreq.common.attrib;
+ %co.role.attrib;
+ %local.co.attrib;
+>
+<!--end of co.attlist-->]]>
+<!--end of co.module-->]]>
+
+<!ENTITY % command.module "INCLUDE">
+<![%command.module;[
+<!--FUTURE USE (V4.0):
+......................
+Command will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+
+<!ENTITY % command.element "INCLUDE">
+<![%command.element;[
+<!ELEMENT command (%cptr.char.mix;)*>
+<!--end of command.element-->]]>
+
+<!ENTITY % command.attlist "INCLUDE">
+<![%command.attlist;[
+<!ATTLIST command
+ %moreinfo.attrib;
+ %common.attrib;
+ %command.role.attrib;
+ %local.command.attrib;
+>
+<!--end of command.attlist-->]]>
+<!--end of command.module-->]]>
+
+<!ENTITY % computeroutput.module "INCLUDE">
+<![%computeroutput.module;[
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+
+<!ENTITY % computeroutput.element "INCLUDE">
+<![%computeroutput.element;[
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!--end of computeroutput.element-->]]>
+
+<!ENTITY % computeroutput.attlist "INCLUDE">
+<![%computeroutput.attlist;[
+<!ATTLIST computeroutput
+ %moreinfo.attrib;
+ %common.attrib;
+ %computeroutput.role.attrib;
+ %local.computeroutput.attrib;
+>
+<!--end of computeroutput.attlist-->]]>
+<!--end of computeroutput.module-->]]>
+
+<!ENTITY % database.module "INCLUDE">
+<![%database.module;[
+<!--FUTURE USE (V4.0):
+......................
+Database will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.database.attrib "">
+<!ENTITY % database.role.attrib "%role.attrib;">
+
+<!ENTITY % database.element "INCLUDE">
+<![%database.element;[
+<!ELEMENT database (%cptr.char.mix;)*>
+<!--end of database.element-->]]>
+
+<!-- Class: Type of database the element names; no default -->
+
+
+<!ENTITY % database.attlist "INCLUDE">
+<![%database.attlist;[
+<!ATTLIST database
+ class (name
+ |table
+ |field
+ |key1
+ |key2
+ |record) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %database.role.attrib;
+ %local.database.attrib;
+>
+<!--end of database.attlist-->]]>
+<!--end of database.module-->]]>
+
+<!ENTITY % email.module "INCLUDE">
+<![%email.module;[
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+
+<!ENTITY % email.element "INCLUDE">
+<![%email.element;[
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!--end of email.element-->]]>
+
+<!ENTITY % email.attlist "INCLUDE">
+<![%email.attlist;[
+<!ATTLIST email
+ %common.attrib;
+ %email.role.attrib;
+ %local.email.attrib;
+>
+<!--end of email.attlist-->]]>
+<!--end of email.module-->]]>
+
+<!ENTITY % envar.module "INCLUDE">
+<![%envar.module;[
+<!ENTITY % local.envar.attrib "">
+<!ENTITY % envar.role.attrib "%role.attrib;">
+
+<!ENTITY % envar.element "INCLUDE">
+<![%envar.element;[
+<!ELEMENT envar (%smallcptr.char.mix;)*>
+<!--end of envar.element-->]]>
+
+<!ENTITY % envar.attlist "INCLUDE">
+<![%envar.attlist;[
+<!ATTLIST envar
+ %common.attrib;
+ %envar.role.attrib;
+ %local.envar.attrib;
+>
+<!--end of envar.attlist-->]]>
+<!--end of envar.module-->]]>
+
+
+<!ENTITY % errorcode.module "INCLUDE">
+<![%errorcode.module;[
+<!ENTITY % local.errorcode.attrib "">
+<!ENTITY % errorcode.role.attrib "%role.attrib;">
+
+<!ENTITY % errorcode.element "INCLUDE">
+<![%errorcode.element;[
+<!ELEMENT errorcode (%smallcptr.char.mix;)*>
+<!--end of errorcode.element-->]]>
+
+<!ENTITY % errorcode.attlist "INCLUDE">
+<![%errorcode.attlist;[
+<!ATTLIST errorcode
+ %moreinfo.attrib;
+ %common.attrib;
+ %errorcode.role.attrib;
+ %local.errorcode.attrib;
+>
+<!--end of errorcode.attlist-->]]>
+<!--end of errorcode.module-->]]>
+
+<!ENTITY % errorname.module "INCLUDE">
+<![%errorname.module;[
+<!ENTITY % local.errorname.attrib "">
+<!ENTITY % errorname.role.attrib "%role.attrib;">
+
+<!ENTITY % errorname.element "INCLUDE">
+<![%errorname.element;[
+<!ELEMENT errorname (%smallcptr.char.mix;)*>
+<!--end of errorname.element-->]]>
+
+<!ENTITY % errorname.attlist "INCLUDE">
+<![%errorname.attlist;[
+<!ATTLIST errorname
+ %common.attrib;
+ %errorname.role.attrib;
+ %local.errorname.attrib;
+>
+<!--end of errorname.attlist-->]]>
+<!--end of errorname.module-->]]>
+
+<!ENTITY % errortype.module "INCLUDE">
+<![%errortype.module;[
+<!ENTITY % local.errortype.attrib "">
+<!ENTITY % errortype.role.attrib "%role.attrib;">
+
+<!ENTITY % errortype.element "INCLUDE">
+<![%errortype.element;[
+<!ELEMENT errortype (%smallcptr.char.mix;)*>
+<!--end of errortype.element-->]]>
+
+<!ENTITY % errortype.attlist "INCLUDE">
+<![%errortype.attlist;[
+<!ATTLIST errortype
+ %common.attrib;
+ %errortype.role.attrib;
+ %local.errortype.attrib;
+>
+<!--end of errortype.attlist-->]]>
+<!--end of errortype.module-->]]>
+
+<!ENTITY % filename.module "INCLUDE">
+<![%filename.module;[
+<!--FUTURE USE (V4.0):
+......................
+Filename will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+
+<!ENTITY % filename.element "INCLUDE">
+<![%filename.element;[
+<!ELEMENT filename (%cptr.char.mix;)*>
+<!--end of filename.element-->]]>
+
+<!-- Class: Type of filename the element names; no default -->
+<!-- Path: Search path (possibly system-specific) in which
+ file can be found -->
+
+
+<!ENTITY % filename.attlist "INCLUDE">
+<![%filename.attlist;[
+<!ATTLIST filename
+ class (headerfile
+ |symlink
+ |directory) #IMPLIED
+ path CDATA #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %filename.role.attrib;
+ %local.filename.attrib;
+>
+<!--end of filename.attlist-->]]>
+<!--end of filename.module-->]]>
+
+<!ENTITY % function.module "INCLUDE">
+<![%function.module;[
+<!ENTITY % local.function.attrib "">
+<!ENTITY % function.role.attrib "%role.attrib;">
+
+<!ENTITY % function.element "INCLUDE">
+<![%function.element;[
+<!ELEMENT function (%cptr.char.mix;)*>
+<!--end of function.element-->]]>
+
+<!ENTITY % function.attlist "INCLUDE">
+<![%function.attlist;[
+<!ATTLIST function
+ %moreinfo.attrib;
+ %common.attrib;
+ %function.role.attrib;
+ %local.function.attrib;
+>
+<!--end of function.attlist-->]]>
+<!--end of function.module-->]]>
+
+<!ENTITY % guibutton.module "INCLUDE">
+<![%guibutton.module;[
+<!ENTITY % local.guibutton.attrib "">
+<!ENTITY % guibutton.role.attrib "%role.attrib;">
+
+<!ENTITY % guibutton.element "INCLUDE">
+<![%guibutton.element;[
+<!ELEMENT guibutton (%smallcptr.char.mix;|accel)*>
+<!--end of guibutton.element-->]]>
+
+<!ENTITY % guibutton.attlist "INCLUDE">
+<![%guibutton.attlist;[
+<!ATTLIST guibutton
+ %moreinfo.attrib;
+ %common.attrib;
+ %guibutton.role.attrib;
+ %local.guibutton.attrib;
+>
+<!--end of guibutton.attlist-->]]>
+<!--end of guibutton.module-->]]>
+
+<!ENTITY % guiicon.module "INCLUDE">
+<![%guiicon.module;[
+<!ENTITY % local.guiicon.attrib "">
+<!ENTITY % guiicon.role.attrib "%role.attrib;">
+
+<!ENTITY % guiicon.element "INCLUDE">
+<![%guiicon.element;[
+<!ELEMENT guiicon (%smallcptr.char.mix;|accel)*>
+<!--end of guiicon.element-->]]>
+
+<!ENTITY % guiicon.attlist "INCLUDE">
+<![%guiicon.attlist;[
+<!ATTLIST guiicon
+ %moreinfo.attrib;
+ %common.attrib;
+ %guiicon.role.attrib;
+ %local.guiicon.attrib;
+>
+<!--end of guiicon.attlist-->]]>
+<!--end of guiicon.module-->]]>
+
+<!ENTITY % guilabel.module "INCLUDE">
+<![%guilabel.module;[
+<!ENTITY % local.guilabel.attrib "">
+<!ENTITY % guilabel.role.attrib "%role.attrib;">
+
+<!ENTITY % guilabel.element "INCLUDE">
+<![%guilabel.element;[
+<!ELEMENT guilabel (%smallcptr.char.mix;|accel)*>
+<!--end of guilabel.element-->]]>
+
+<!ENTITY % guilabel.attlist "INCLUDE">
+<![%guilabel.attlist;[
+<!ATTLIST guilabel
+ %moreinfo.attrib;
+ %common.attrib;
+ %guilabel.role.attrib;
+ %local.guilabel.attrib;
+>
+<!--end of guilabel.attlist-->]]>
+<!--end of guilabel.module-->]]>
+
+<!ENTITY % guimenu.module "INCLUDE">
+<![%guimenu.module;[
+<!ENTITY % local.guimenu.attrib "">
+<!ENTITY % guimenu.role.attrib "%role.attrib;">
+
+<!ENTITY % guimenu.element "INCLUDE">
+<![%guimenu.element;[
+<!ELEMENT guimenu (%smallcptr.char.mix;|accel)*>
+<!--end of guimenu.element-->]]>
+
+<!ENTITY % guimenu.attlist "INCLUDE">
+<![%guimenu.attlist;[
+<!ATTLIST guimenu
+ %moreinfo.attrib;
+ %common.attrib;
+ %guimenu.role.attrib;
+ %local.guimenu.attrib;
+>
+<!--end of guimenu.attlist-->]]>
+<!--end of guimenu.module-->]]>
+
+<!ENTITY % guimenuitem.module "INCLUDE">
+<![%guimenuitem.module;[
+<!ENTITY % local.guimenuitem.attrib "">
+<!ENTITY % guimenuitem.role.attrib "%role.attrib;">
+
+<!ENTITY % guimenuitem.element "INCLUDE">
+<![%guimenuitem.element;[
+<!ELEMENT guimenuitem (%smallcptr.char.mix;|accel)*>
+<!--end of guimenuitem.element-->]]>
+
+<!ENTITY % guimenuitem.attlist "INCLUDE">
+<![%guimenuitem.attlist;[
+<!ATTLIST guimenuitem
+ %moreinfo.attrib;
+ %common.attrib;
+ %guimenuitem.role.attrib;
+ %local.guimenuitem.attrib;
+>
+<!--end of guimenuitem.attlist-->]]>
+<!--end of guimenuitem.module-->]]>
+
+<!ENTITY % guisubmenu.module "INCLUDE">
+<![%guisubmenu.module;[
+<!ENTITY % local.guisubmenu.attrib "">
+<!ENTITY % guisubmenu.role.attrib "%role.attrib;">
+
+<!ENTITY % guisubmenu.element "INCLUDE">
+<![%guisubmenu.element;[
+<!ELEMENT guisubmenu (%smallcptr.char.mix;|accel)*>
+<!--end of guisubmenu.element-->]]>
+
+<!ENTITY % guisubmenu.attlist "INCLUDE">
+<![%guisubmenu.attlist;[
+<!ATTLIST guisubmenu
+ %moreinfo.attrib;
+ %common.attrib;
+ %guisubmenu.role.attrib;
+ %local.guisubmenu.attrib;
+>
+<!--end of guisubmenu.attlist-->]]>
+<!--end of guisubmenu.module-->]]>
+
+<!ENTITY % hardware.module "INCLUDE">
+<![%hardware.module;[
+<!--FUTURE USE (V4.0):
+......................
+Hardware will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.hardware.attrib "">
+<!ENTITY % hardware.role.attrib "%role.attrib;">
+
+<!ENTITY % hardware.element "INCLUDE">
+<![%hardware.element;[
+<!ELEMENT hardware (%cptr.char.mix;)*>
+<!--end of hardware.element-->]]>
+
+<!ENTITY % hardware.attlist "INCLUDE">
+<![%hardware.attlist;[
+<!ATTLIST hardware
+ %moreinfo.attrib;
+ %common.attrib;
+ %hardware.role.attrib;
+ %local.hardware.attrib;
+>
+<!--end of hardware.attlist-->]]>
+<!--end of hardware.module-->]]>
+
+<!ENTITY % interface.module "INCLUDE">
+<![%interface.module;[
+<!--FUTURE USE (V4.0):
+......................
+Interface will no longer have a Class attribute; if you want to subclass
+interface information, use GUIButton, GUIIcon, GUILabel, GUIMenu,
+GUIMenuItem, or GUISubmenu, or use a Role value on Interface. Also,
+Interface will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.interface.attrib "">
+<!ENTITY % interface.role.attrib "%role.attrib;">
+
+<!ENTITY % interface.element "INCLUDE">
+<![%interface.element;[
+<!ELEMENT interface (%cptr.char.mix;|accel)*>
+<!--end of interface.element-->]]>
+
+<!-- Class: Type of the Interface item; no default -->
+
+
+<!ENTITY % interface.attlist "INCLUDE">
+<![%interface.attlist;[
+<!ATTLIST interface
+ class (button
+ |icon
+ |menu
+ |menuitem) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %interface.role.attrib;
+ %local.interface.attrib;
+>
+<!--end of interface.attlist-->]]>
+<!--end of interface.module-->]]>
+
+<!ENTITY % interfacedefinition.module "INCLUDE">
+<![%interfacedefinition.module;[
+<!--FUTURE USE (V4.0):
+......................
+InterfaceDefinition will be discarded.
+......................
+-->
+<!ENTITY % local.interfacedefinition.attrib "">
+<!ENTITY % interfacedefinition.role.attrib "%role.attrib;">
+
+<!ENTITY % interfacedefinition.element "INCLUDE">
+<![%interfacedefinition.element;[
+<!ELEMENT interfacedefinition (%cptr.char.mix;)*>
+<!--end of interfacedefinition.element-->]]>
+
+<!ENTITY % interfacedefinition.attlist "INCLUDE">
+<![%interfacedefinition.attlist;[
+<!ATTLIST interfacedefinition
+ %moreinfo.attrib;
+ %common.attrib;
+ %interfacedefinition.role.attrib;
+ %local.interfacedefinition.attrib;
+>
+<!--end of interfacedefinition.attlist-->]]>
+<!--end of interfacedefinition.module-->]]>
+
+<!ENTITY % keycap.module "INCLUDE">
+<![%keycap.module;[
+<!--FUTURE USE (V4.0):
+......................
+KeyCap will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.keycap.attrib "">
+<!ENTITY % keycap.role.attrib "%role.attrib;">
+
+<!ENTITY % keycap.element "INCLUDE">
+<![%keycap.element;[
+<!ELEMENT keycap (%cptr.char.mix;)*>
+<!--end of keycap.element-->]]>
+
+<!ENTITY % keycap.attlist "INCLUDE">
+<![%keycap.attlist;[
+<!ATTLIST keycap
+ %moreinfo.attrib;
+ %common.attrib;
+ %keycap.role.attrib;
+ %local.keycap.attrib;
+>
+<!--end of keycap.attlist-->]]>
+<!--end of keycap.module-->]]>
+
+<!ENTITY % keycode.module "INCLUDE">
+<![%keycode.module;[
+<!ENTITY % local.keycode.attrib "">
+<!ENTITY % keycode.role.attrib "%role.attrib;">
+
+<!ENTITY % keycode.element "INCLUDE">
+<![%keycode.element;[
+<!ELEMENT keycode (%smallcptr.char.mix;)*>
+<!--end of keycode.element-->]]>
+
+<!ENTITY % keycode.attlist "INCLUDE">
+<![%keycode.attlist;[
+<!ATTLIST keycode
+ %common.attrib;
+ %keycode.role.attrib;
+ %local.keycode.attrib;
+>
+<!--end of keycode.attlist-->]]>
+<!--end of keycode.module-->]]>
+
+<!ENTITY % keycombo.module "INCLUDE">
+<![%keycombo.module;[
+<!ENTITY % local.keycombo.attrib "">
+<!ENTITY % keycombo.role.attrib "%role.attrib;">
+
+<!ENTITY % keycombo.element "INCLUDE">
+<![%keycombo.element;[
+<!ELEMENT keycombo ((keycap|keycombo|keysym|mousebutton)+)>
+<!--end of keycombo.element-->]]>
+
+<!ENTITY % keycombo.attlist "INCLUDE">
+<![%keycombo.attlist;[
+<!ATTLIST keycombo
+ %keyaction.attrib;
+ %moreinfo.attrib;
+ %common.attrib;
+ %keycombo.role.attrib;
+ %local.keycombo.attrib;
+>
+<!--end of keycombo.attlist-->]]>
+<!--end of keycombo.module-->]]>
+
+<!ENTITY % keysym.module "INCLUDE">
+<![%keysym.module;[
+<!ENTITY % local.keysym.attrib "">
+<!ENTITY % keysysm.role.attrib "%role.attrib;">
+
+<!ENTITY % keysym.element "INCLUDE">
+<![%keysym.element;[
+<!ELEMENT keysym (%smallcptr.char.mix;)*>
+<!--end of keysym.element-->]]>
+
+<!ENTITY % keysym.attlist "INCLUDE">
+<![%keysym.attlist;[
+<!ATTLIST keysym
+ %common.attrib;
+ %keysysm.role.attrib;
+ %local.keysym.attrib;
+>
+<!--end of keysym.attlist-->]]>
+<!--end of keysym.module-->]]>
+
+<!ENTITY % lineannotation.module "INCLUDE">
+<![%lineannotation.module;[
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+
+<!ENTITY % lineannotation.element "INCLUDE">
+<![%lineannotation.element;[
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!--end of lineannotation.element-->]]>
+
+<!ENTITY % lineannotation.attlist "INCLUDE">
+<![%lineannotation.attlist;[
+<!ATTLIST lineannotation
+ %common.attrib;
+ %lineannotation.role.attrib;
+ %local.lineannotation.attrib;
+>
+<!--end of lineannotation.attlist-->]]>
+<!--end of lineannotation.module-->]]>
+
+<!ENTITY % literal.module "INCLUDE">
+<![%literal.module;[
+<!--FUTURE USE (V4.0):
+......................
+Literal will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+
+<!ENTITY % literal.element "INCLUDE">
+<![%literal.element;[
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!--end of literal.element-->]]>
+
+<!ENTITY % literal.attlist "INCLUDE">
+<![%literal.attlist;[
+<!ATTLIST literal
+ %moreinfo.attrib;
+ %common.attrib;
+ %literal.role.attrib;
+ %local.literal.attrib;
+>
+<!--end of literal.attlist-->]]>
+<!--end of literal.module-->]]>
+
+<!ENTITY % constant.module "INCLUDE">
+<![ %constant.module; [
+<!ENTITY % local.constant.attrib "">
+<!ENTITY % constant.role.attrib "%role.attrib;">
+
+<!ENTITY % constant.element "INCLUDE">
+<![ %constant.element; [
+<!ELEMENT constant (%smallcptr.char.mix;)*>
+<!--end of constant.element-->]]>
+
+<!ENTITY % constant.attlist "INCLUDE">
+<![ %constant.attlist; [
+<!ATTLIST constant
+ %common.attrib;
+ %constant.role.attrib;
+ %local.constant.attrib;
+ class (limit) #IMPLIED
+>
+<!--end of constant.attlist-->]]>
+<!--end of constant.module-->]]>
+
+<!ENTITY % varname.module "INCLUDE">
+<![ %varname.module; [
+<!ENTITY % local.varname.attrib "">
+<!ENTITY % varname.role.attrib "%role.attrib;">
+
+<!ENTITY % varname.element "INCLUDE">
+<![ %varname.element; [
+<!ELEMENT varname (%smallcptr.char.mix;)*>
+<!--end of varname.element-->]]>
+
+<!ENTITY % varname.attlist "INCLUDE">
+<![ %varname.attlist; [
+<!ATTLIST varname
+ %common.attrib;
+ %varname.role.attrib;
+ %local.varname.attrib;
+>
+<!--end of varname.attlist-->]]>
+<!--end of varname.module-->]]>
+
+<!ENTITY % markup.module "INCLUDE">
+<![%markup.module;[
+<!ENTITY % local.markup.attrib "">
+<!ENTITY % markup.role.attrib "%role.attrib;">
+
+<!ENTITY % markup.element "INCLUDE">
+<![%markup.element;[
+<!ELEMENT markup (%smallcptr.char.mix;)*>
+<!--end of markup.element-->]]>
+
+<!ENTITY % markup.attlist "INCLUDE">
+<![%markup.attlist;[
+<!ATTLIST markup
+ %common.attrib;
+ %markup.role.attrib;
+ %local.markup.attrib;
+>
+<!--end of markup.attlist-->]]>
+<!--end of markup.module-->]]>
+
+<!ENTITY % medialabel.module "INCLUDE">
+<![%medialabel.module;[
+<!ENTITY % local.medialabel.attrib "">
+<!ENTITY % medialabel.role.attrib "%role.attrib;">
+
+<!ENTITY % medialabel.element "INCLUDE">
+<![%medialabel.element;[
+<!ELEMENT medialabel (%smallcptr.char.mix;)*>
+<!--end of medialabel.element-->]]>
+
+<!-- Class: Type of medium named by the element; no default -->
+
+
+<!ENTITY % medialabel.attlist "INCLUDE">
+<![%medialabel.attlist;[
+<!ATTLIST medialabel
+ class (cartridge
+ |cdrom
+ |disk
+ |tape) #IMPLIED
+ %common.attrib;
+ %medialabel.role.attrib;
+ %local.medialabel.attrib;
+>
+<!--end of medialabel.attlist-->]]>
+<!--end of medialabel.module-->]]>
+
+<!ENTITY % menuchoice.content.module "INCLUDE">
+<![%menuchoice.content.module;[
+<!ENTITY % menuchoice.module "INCLUDE">
+<![%menuchoice.module;[
+<!ENTITY % local.menuchoice.attrib "">
+<!ENTITY % menuchoice.role.attrib "%role.attrib;">
+
+<!ENTITY % menuchoice.element "INCLUDE">
+<![%menuchoice.element;[
+<!ELEMENT menuchoice (shortcut?, (guibutton|guiicon|guilabel
+ |guimenu|guimenuitem|guisubmenu|interface)+)>
+<!--end of menuchoice.element-->]]>
+
+<!ENTITY % menuchoice.attlist "INCLUDE">
+<![%menuchoice.attlist;[
+<!ATTLIST menuchoice
+ %moreinfo.attrib;
+ %common.attrib;
+ %menuchoice.role.attrib;
+ %local.menuchoice.attrib;
+>
+<!--end of menuchoice.attlist-->]]>
+<!--end of menuchoice.module-->]]>
+
+<!ENTITY % shortcut.module "INCLUDE">
+<![%shortcut.module;[
+<!-- See also KeyCombo -->
+<!ENTITY % local.shortcut.attrib "">
+<!ENTITY % shortcut.role.attrib "%role.attrib;">
+
+<!ENTITY % shortcut.element "INCLUDE">
+<![%shortcut.element;[
+<!ELEMENT shortcut ((keycap|keycombo|keysym|mousebutton)+)>
+<!--end of shortcut.element-->]]>
+
+<!ENTITY % shortcut.attlist "INCLUDE">
+<![%shortcut.attlist;[
+<!ATTLIST shortcut
+ %keyaction.attrib;
+ %moreinfo.attrib;
+ %common.attrib;
+ %shortcut.role.attrib;
+ %local.shortcut.attrib;
+>
+<!--end of shortcut.attlist-->]]>
+<!--end of shortcut.module-->]]>
+<!--end of menuchoice.content.module-->]]>
+
+<!ENTITY % mousebutton.module "INCLUDE">
+<![%mousebutton.module;[
+<!ENTITY % local.mousebutton.attrib "">
+<!ENTITY % mousebutton.role.attrib "%role.attrib;">
+
+<!ENTITY % mousebutton.element "INCLUDE">
+<![%mousebutton.element;[
+<!ELEMENT mousebutton (%smallcptr.char.mix;)*>
+<!--end of mousebutton.element-->]]>
+
+<!ENTITY % mousebutton.attlist "INCLUDE">
+<![%mousebutton.attlist;[
+<!ATTLIST mousebutton
+ %moreinfo.attrib;
+ %common.attrib;
+ %mousebutton.role.attrib;
+ %local.mousebutton.attrib;
+>
+<!--end of mousebutton.attlist-->]]>
+<!--end of mousebutton.module-->]]>
+
+<!ENTITY % msgtext.module "INCLUDE">
+<![%msgtext.module;[
+<!ENTITY % local.msgtext.attrib "">
+<!ENTITY % msgtext.role.attrib "%role.attrib;">
+
+<!ENTITY % msgtext.element "INCLUDE">
+<![%msgtext.element;[
+<!ELEMENT msgtext ((%component.mix;)+)>
+<!--end of msgtext.element-->]]>
+
+<!ENTITY % msgtext.attlist "INCLUDE">
+<![%msgtext.attlist;[
+<!ATTLIST msgtext
+ %common.attrib;
+ %msgtext.role.attrib;
+ %local.msgtext.attrib;
+>
+<!--end of msgtext.attlist-->]]>
+<!--end of msgtext.module-->]]>
+
+<!ENTITY % option.module "INCLUDE">
+<![%option.module;[
+<!--FUTURE USE (V4.0):
+......................
+Option will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+
+<!ENTITY % option.element "INCLUDE">
+<![%option.element;[
+<!ELEMENT option (%cptr.char.mix;)*>
+<!--end of option.element-->]]>
+
+<!ENTITY % option.attlist "INCLUDE">
+<![%option.attlist;[
+<!ATTLIST option
+ %common.attrib;
+ %option.role.attrib;
+ %local.option.attrib;
+>
+<!--end of option.attlist-->]]>
+<!--end of option.module-->]]>
+
+<!ENTITY % optional.module "INCLUDE">
+<![%optional.module;[
+<!ENTITY % local.optional.attrib "">
+<!ENTITY % optional.role.attrib "%role.attrib;">
+
+<!ENTITY % optional.element "INCLUDE">
+<![%optional.element;[
+<!ELEMENT optional (%cptr.char.mix;)*>
+<!--end of optional.element-->]]>
+
+<!ENTITY % optional.attlist "INCLUDE">
+<![%optional.attlist;[
+<!ATTLIST optional
+ %common.attrib;
+ %optional.role.attrib;
+ %local.optional.attrib;
+>
+<!--end of optional.attlist-->]]>
+<!--end of optional.module-->]]>
+
+<!ENTITY % parameter.module "INCLUDE">
+<![%parameter.module;[
+<!--FUTURE USE (V4.0):
+......................
+Parameter will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.parameter.attrib "">
+<!ENTITY % parameter.role.attrib "%role.attrib;">
+
+<!ENTITY % parameter.element "INCLUDE">
+<![%parameter.element;[
+<!ELEMENT parameter (%cptr.char.mix;)*>
+<!--end of parameter.element-->]]>
+
+<!-- Class: Type of the Parameter; no default -->
+
+
+<!ENTITY % parameter.attlist "INCLUDE">
+<![%parameter.attlist;[
+<!ATTLIST parameter
+ class (command
+ |function
+ |option) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %parameter.role.attrib;
+ %local.parameter.attrib;
+>
+<!--end of parameter.attlist-->]]>
+<!--end of parameter.module-->]]>
+
+<!ENTITY % prompt.module "INCLUDE">
+<![%prompt.module;[
+<!ENTITY % local.prompt.attrib "">
+<!ENTITY % prompt.role.attrib "%role.attrib;">
+
+<!ENTITY % prompt.element "INCLUDE">
+<![%prompt.element;[
+<!ELEMENT prompt (%smallcptr.char.mix;)*>
+<!--end of prompt.element-->]]>
+
+<!ENTITY % prompt.attlist "INCLUDE">
+<![%prompt.attlist;[
+<!ATTLIST prompt
+ %moreinfo.attrib;
+ %common.attrib;
+ %prompt.role.attrib;
+ %local.prompt.attrib;
+>
+<!--end of prompt.attlist-->]]>
+<!--end of prompt.module-->]]>
+
+<!ENTITY % property.module "INCLUDE">
+<![%property.module;[
+<!--FUTURE USE (V4.0):
+......................
+Property will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.property.attrib "">
+<!ENTITY % property.role.attrib "%role.attrib;">
+
+<!ENTITY % property.element "INCLUDE">
+<![%property.element;[
+<!ELEMENT property (%cptr.char.mix;)*>
+<!--end of property.element-->]]>
+
+<!ENTITY % property.attlist "INCLUDE">
+<![%property.attlist;[
+<!ATTLIST property
+ %moreinfo.attrib;
+ %common.attrib;
+ %property.role.attrib;
+ %local.property.attrib;
+>
+<!--end of property.attlist-->]]>
+<!--end of property.module-->]]>
+
+<!ENTITY % replaceable.module "INCLUDE">
+<![%replaceable.module;[
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+
+<!ENTITY % replaceable.element "INCLUDE">
+<![%replaceable.element;[
+<!ELEMENT replaceable (#PCDATA
+ | %link.char.class;
+ | optional
+ | %base.char.class;
+ | %other.char.class;
+ | inlinegraphic
+ | inlinemediaobject)*>
+<!--end of replaceable.element-->]]>
+
+<!-- Class: Type of information the element represents; no
+ default -->
+
+
+<!ENTITY % replaceable.attlist "INCLUDE">
+<![%replaceable.attlist;[
+<!ATTLIST replaceable
+ class (command
+ |function
+ |option
+ |parameter) #IMPLIED
+ %common.attrib;
+ %replaceable.role.attrib;
+ %local.replaceable.attrib;
+>
+<!--end of replaceable.attlist-->]]>
+<!--end of replaceable.module-->]]>
+
+<!ENTITY % returnvalue.module "INCLUDE">
+<![%returnvalue.module;[
+<!ENTITY % local.returnvalue.attrib "">
+<!ENTITY % returnvalue.role.attrib "%role.attrib;">
+
+<!ENTITY % returnvalue.element "INCLUDE">
+<![%returnvalue.element;[
+<!ELEMENT returnvalue (%smallcptr.char.mix;)*>
+<!--end of returnvalue.element-->]]>
+
+<!ENTITY % returnvalue.attlist "INCLUDE">
+<![%returnvalue.attlist;[
+<!ATTLIST returnvalue
+ %common.attrib;
+ %returnvalue.role.attrib;
+ %local.returnvalue.attrib;
+>
+<!--end of returnvalue.attlist-->]]>
+<!--end of returnvalue.module-->]]>
+
+<!ENTITY % sgmltag.module "INCLUDE">
+<![%sgmltag.module;[
+<!ENTITY % local.sgmltag.attrib "">
+<!ENTITY % sgmltag.role.attrib "%role.attrib;">
+
+<!ENTITY % sgmltag.element "INCLUDE">
+<![%sgmltag.element;[
+<!ELEMENT sgmltag (%smallcptr.char.mix;)*>
+<!--end of sgmltag.element-->]]>
+
+<!-- Class: Type of SGML construct the element names; no default -->
+
+
+<!ENTITY % sgmltag.attlist "INCLUDE">
+<![%sgmltag.attlist;[
+<!ATTLIST sgmltag
+ class (attribute
+ |attvalue
+ |element
+ |endtag
+ |genentity
+ |numcharref
+ |paramentity
+ |pi
+ |starttag
+ |sgmlcomment) #IMPLIED
+ %common.attrib;
+ %sgmltag.role.attrib;
+ %local.sgmltag.attrib;
+>
+<!--end of sgmltag.attlist-->]]>
+<!--end of sgmltag.module-->]]>
+
+<!ENTITY % structfield.module "INCLUDE">
+<![%structfield.module;[
+<!ENTITY % local.structfield.attrib "">
+<!ENTITY % structfield.role.attrib "%role.attrib;">
+
+<!ENTITY % structfield.element "INCLUDE">
+<![%structfield.element;[
+<!ELEMENT structfield (%smallcptr.char.mix;)*>
+<!--end of structfield.element-->]]>
+
+<!ENTITY % structfield.attlist "INCLUDE">
+<![%structfield.attlist;[
+<!ATTLIST structfield
+ %common.attrib;
+ %structfield.role.attrib;
+ %local.structfield.attrib;
+>
+<!--end of structfield.attlist-->]]>
+<!--end of structfield.module-->]]>
+
+<!ENTITY % structname.module "INCLUDE">
+<![%structname.module;[
+<!ENTITY % local.structname.attrib "">
+<!ENTITY % structname.role.attrib "%role.attrib;">
+
+<!ENTITY % structname.element "INCLUDE">
+<![%structname.element;[
+<!ELEMENT structname (%smallcptr.char.mix;)*>
+<!--end of structname.element-->]]>
+
+<!ENTITY % structname.attlist "INCLUDE">
+<![%structname.attlist;[
+<!ATTLIST structname
+ %common.attrib;
+ %structname.role.attrib;
+ %local.structname.attrib;
+>
+<!--end of structname.attlist-->]]>
+<!--end of structname.module-->]]>
+
+<!ENTITY % symbol.module "INCLUDE">
+<![%symbol.module;[
+<!ENTITY % local.symbol.attrib "">
+<!ENTITY % symbol.role.attrib "%role.attrib;">
+
+<!ENTITY % symbol.element "INCLUDE">
+<![%symbol.element;[
+<!ELEMENT symbol (%smallcptr.char.mix;)*>
+<!--end of symbol.element-->]]>
+
+<!-- Class: Type of symbol; no default -->
+
+
+<!ENTITY % symbol.attlist "INCLUDE">
+<![%symbol.attlist;[
+<!ATTLIST symbol
+ class (limit) #IMPLIED
+ %common.attrib;
+ %symbol.role.attrib;
+ %local.symbol.attrib;
+>
+<!--end of symbol.attlist-->]]>
+<!--end of symbol.module-->]]>
+
+<!ENTITY % systemitem.module "INCLUDE">
+<![%systemitem.module;[
+<!--FUTURE USE (V4.0):
+......................
+SystemItem will have its content constrained to smallcptr.char.mix.
+......................
+-->
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+
+<!ENTITY % systemitem.element "INCLUDE">
+<![%systemitem.element;[
+<!ELEMENT systemitem (%cptr.char.mix; | acronym)*>
+<!--end of systemitem.element-->]]>
+<!--FUTURE USE (V4.0):
+......................
+The EnvironVar and Prompt values of Class will be eliminated;
+use the EnVar and Prompt elements new in 3.0 instead.
+......................
+-->
+
+<!-- Class: Type of system item the element names; no default -->
+
+
+<!ENTITY % systemitem.attlist "INCLUDE">
+<![%systemitem.attlist;[
+<!ATTLIST systemitem
+ class (constant
+ |environvar
+ |macro
+ |osname
+ |prompt
+ |resource
+ |systemname) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %systemitem.role.attrib;
+ %local.systemitem.attrib;
+>
+<!--end of systemitem.attlist-->]]>
+<!--end of systemitem.module-->]]>
+
+
+<!ENTITY % token.module "INCLUDE">
+<![%token.module;[
+<!ENTITY % local.token.attrib "">
+<!ENTITY % token.role.attrib "%role.attrib;">
+
+<!ENTITY % token.element "INCLUDE">
+<![%token.element;[
+<!ELEMENT token (%smallcptr.char.mix;)*>
+<!--end of token.element-->]]>
+
+<!ENTITY % token.attlist "INCLUDE">
+<![%token.attlist;[
+<!ATTLIST token
+ %common.attrib;
+ %token.role.attrib;
+ %local.token.attrib;
+>
+<!--end of token.attlist-->]]>
+<!--end of token.module-->]]>
+
+<!ENTITY % type.module "INCLUDE">
+<![%type.module;[
+<!ENTITY % local.type.attrib "">
+<!ENTITY % type.role.attrib "%role.attrib;">
+
+<!ENTITY % type.element "INCLUDE">
+<![%type.element;[
+<!ELEMENT type (%smallcptr.char.mix;)*>
+<!--end of type.element-->]]>
+
+<!ENTITY % type.attlist "INCLUDE">
+<![%type.attlist;[
+<!ATTLIST type
+ %common.attrib;
+ %type.role.attrib;
+ %local.type.attrib;
+>
+<!--end of type.attlist-->]]>
+<!--end of type.module-->]]>
+
+<!ENTITY % userinput.module "INCLUDE">
+<![%userinput.module;[
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+
+<!ENTITY % userinput.element "INCLUDE">
+<![%userinput.element;[
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!--end of userinput.element-->]]>
+
+<!ENTITY % userinput.attlist "INCLUDE">
+<![%userinput.attlist;[
+<!ATTLIST userinput
+ %moreinfo.attrib;
+ %common.attrib;
+ %userinput.role.attrib;
+ %local.userinput.attrib;
+>
+<!--end of userinput.attlist-->]]>
+<!--end of userinput.module-->]]>
+
+<!-- General words and phrases ............................................ -->
+
+<!ENTITY % abbrev.module "INCLUDE">
+<![%abbrev.module;[
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+
+<!ENTITY % abbrev.element "INCLUDE">
+<![%abbrev.element;[
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!--end of abbrev.element-->]]>
+
+<!ENTITY % abbrev.attlist "INCLUDE">
+<![%abbrev.attlist;[
+<!ATTLIST abbrev
+ %common.attrib;
+ %abbrev.role.attrib;
+ %local.abbrev.attrib;
+>
+<!--end of abbrev.attlist-->]]>
+<!--end of abbrev.module-->]]>
+
+<!ENTITY % acronym.module "INCLUDE">
+<![%acronym.module;[
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+
+<!ENTITY % acronym.element "INCLUDE">
+<![%acronym.element;[
+<!ELEMENT acronym (%word.char.mix;)*>
+<!--end of acronym.element-->]]>
+
+<!ENTITY % acronym.attlist "INCLUDE">
+<![%acronym.attlist;[
+<!ATTLIST acronym
+ %common.attrib;
+ %acronym.role.attrib;
+ %local.acronym.attrib;
+>
+<!--end of acronym.attlist-->]]>
+<!--end of acronym.module-->]]>
+
+<!ENTITY % citation.module "INCLUDE">
+<![%citation.module;[
+<!ENTITY % local.citation.attrib "">
+<!ENTITY % citation.role.attrib "%role.attrib;">
+
+<!ENTITY % citation.element "INCLUDE">
+<![%citation.element;[
+<!ELEMENT citation (%para.char.mix;)*>
+<!--end of citation.element-->]]>
+
+<!ENTITY % citation.attlist "INCLUDE">
+<![%citation.attlist;[
+<!ATTLIST citation
+ %common.attrib;
+ %citation.role.attrib;
+ %local.citation.attrib;
+>
+<!--end of citation.attlist-->]]>
+<!--end of citation.module-->]]>
+
+<!ENTITY % citerefentry.module "INCLUDE">
+<![%citerefentry.module;[
+<!ENTITY % local.citerefentry.attrib "">
+<!ENTITY % citerefentry.role.attrib "%role.attrib;">
+
+<!ENTITY % citerefentry.element "INCLUDE">
+<![%citerefentry.element;[
+<!ELEMENT citerefentry (refentrytitle, manvolnum?)>
+<!--end of citerefentry.element-->]]>
+
+<!ENTITY % citerefentry.attlist "INCLUDE">
+<![%citerefentry.attlist;[
+<!ATTLIST citerefentry
+ %common.attrib;
+ %citerefentry.role.attrib;
+ %local.citerefentry.attrib;
+>
+<!--end of citerefentry.attlist-->]]>
+<!--end of citerefentry.module-->]]>
+
+<!ENTITY % refentrytitle.module "INCLUDE">
+<![%refentrytitle.module;[
+<!ENTITY % local.refentrytitle.attrib "">
+<!ENTITY % refentrytitle.role.attrib "%role.attrib;">
+
+<!ENTITY % refentrytitle.element "INCLUDE">
+<![%refentrytitle.element;[
+<!ELEMENT refentrytitle (%para.char.mix;)*>
+<!--end of refentrytitle.element-->]]>
+
+<!ENTITY % refentrytitle.attlist "INCLUDE">
+<![%refentrytitle.attlist;[
+<!ATTLIST refentrytitle
+ %common.attrib;
+ %refentrytitle.role.attrib;
+ %local.refentrytitle.attrib;
+>
+<!--end of refentrytitle.attlist-->]]>
+<!--end of refentrytitle.module-->]]>
+
+<!ENTITY % manvolnum.module "INCLUDE">
+<![%manvolnum.module;[
+<!ENTITY % local.manvolnum.attrib "">
+<!ENTITY % namvolnum.role.attrib "%role.attrib;">
+
+<!ENTITY % manvolnum.element "INCLUDE">
+<![%manvolnum.element;[
+<!ELEMENT manvolnum (%word.char.mix;)*>
+<!--end of manvolnum.element-->]]>
+
+<!ENTITY % manvolnum.attlist "INCLUDE">
+<![%manvolnum.attlist;[
+<!ATTLIST manvolnum
+ %common.attrib;
+ %namvolnum.role.attrib;
+ %local.manvolnum.attrib;
+>
+<!--end of manvolnum.attlist-->]]>
+<!--end of manvolnum.module-->]]>
+
+<!ENTITY % citetitle.module "INCLUDE">
+<![%citetitle.module;[
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+
+<!ENTITY % citetitle.element "INCLUDE">
+<![%citetitle.element;[
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!--end of citetitle.element-->]]>
+
+<!-- Pubwork: Genre of published work cited; no default -->
+
+
+<!ENTITY % citetitle.attlist "INCLUDE">
+<![%citetitle.attlist;[
+<!ATTLIST citetitle
+ pubwork (article
+ |book
+ |chapter
+ |part
+ |refentry
+ |section
+ |journal
+ |series
+ |set
+ |manuscript) #IMPLIED
+ %common.attrib;
+ %citetitle.role.attrib;
+ %local.citetitle.attrib;
+>
+<!--end of citetitle.attlist-->]]>
+<!--end of citetitle.module-->]]>
+
+<!ENTITY % emphasis.module "INCLUDE">
+<![%emphasis.module;[
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+
+<!ENTITY % emphasis.element "INCLUDE">
+<![%emphasis.element;[
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!--end of emphasis.element-->]]>
+
+<!ENTITY % emphasis.attlist "INCLUDE">
+<![%emphasis.attlist;[
+<!ATTLIST emphasis
+ %common.attrib;
+ %emphasis.role.attrib;
+ %local.emphasis.attrib;
+>
+<!--end of emphasis.attlist-->]]>
+<!--end of emphasis.module-->]]>
+
+<!ENTITY % firstterm.module "INCLUDE">
+<![%firstterm.module;[
+<!ENTITY % local.firstterm.attrib "">
+<!ENTITY % firstterm.role.attrib "%role.attrib;">
+
+<!ENTITY % firstterm.element "INCLUDE">
+<![%firstterm.element;[
+<!ELEMENT firstterm (%word.char.mix;)*>
+<!--end of firstterm.element-->]]>
+
+<!-- to GlossEntry or other explanation -->
+
+
+<!ENTITY % firstterm.attlist "INCLUDE">
+<![%firstterm.attlist;[
+<!ATTLIST firstterm
+ %linkend.attrib; %common.attrib;
+ %firstterm.role.attrib;
+ %local.firstterm.attrib;
+>
+<!--end of firstterm.attlist-->]]>
+<!--end of firstterm.module-->]]>
+
+<!ENTITY % foreignphrase.module "INCLUDE">
+<![%foreignphrase.module;[
+<!ENTITY % local.foreignphrase.attrib "">
+<!ENTITY % foreignphrase.role.attrib "%role.attrib;">
+
+<!ENTITY % foreignphrase.element "INCLUDE">
+<![%foreignphrase.element;[
+<!ELEMENT foreignphrase (%para.char.mix;)*>
+<!--end of foreignphrase.element-->]]>
+
+<!ENTITY % foreignphrase.attlist "INCLUDE">
+<![%foreignphrase.attlist;[
+<!ATTLIST foreignphrase
+ %common.attrib;
+ %foreignphrase.role.attrib;
+ %local.foreignphrase.attrib;
+>
+<!--end of foreignphrase.attlist-->]]>
+<!--end of foreignphrase.module-->]]>
+
+<!ENTITY % glossterm.module "INCLUDE">
+<![%glossterm.module;[
+<!ENTITY % local.glossterm.attrib "">
+<!ENTITY % glossterm.role.attrib "%role.attrib;">
+
+<!ENTITY % glossterm.element "INCLUDE">
+<![%glossterm.element;[
+<!ELEMENT glossterm (%para.char.mix;)*>
+<!--end of glossterm.element-->]]>
+
+<!-- to GlossEntry if Glossterm used in text -->
+<!-- BaseForm: Provides the form of GlossTerm to be used
+ for indexing -->
+
+
+<!ENTITY % glossterm.attlist "INCLUDE">
+<![%glossterm.attlist;[
+<!ATTLIST glossterm
+ %linkend.attrib; baseform CDATA #IMPLIED
+ %common.attrib;
+ %glossterm.role.attrib;
+ %local.glossterm.attrib;
+>
+<!--end of glossterm.attlist-->]]>
+<!--end of glossterm.module-->]]>
+
+<!ENTITY % phrase.module "INCLUDE">
+<![%phrase.module;[
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+
+<!ENTITY % phrase.element "INCLUDE">
+<![%phrase.element;[
+<!ELEMENT phrase (%para.char.mix;)*>
+<!--end of phrase.element-->]]>
+
+<!ENTITY % phrase.attlist "INCLUDE">
+<![%phrase.attlist;[
+<!ATTLIST phrase
+ %common.attrib;
+ %phrase.role.attrib;
+ %local.phrase.attrib;
+>
+<!--end of phrase.attlist-->]]>
+<!--end of phrase.module-->]]>
+
+<!ENTITY % quote.module "INCLUDE">
+<![%quote.module;[
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+
+<!ENTITY % quote.element "INCLUDE">
+<![%quote.element;[
+<!ELEMENT quote (%para.char.mix;)*>
+<!--end of quote.element-->]]>
+
+<!ENTITY % quote.attlist "INCLUDE">
+<![%quote.attlist;[
+<!ATTLIST quote
+ %common.attrib;
+ %quote.role.attrib;
+ %local.quote.attrib;
+>
+<!--end of quote.attlist-->]]>
+<!--end of quote.module-->]]>
+
+<!ENTITY % ssscript.module "INCLUDE">
+<![%ssscript.module;[
+<!ENTITY % local.ssscript.attrib "">
+<!ENTITY % ssscript.role.attrib "%role.attrib;">
+
+<!ENTITY % subscript.element "INCLUDE">
+<![%subscript.element;[
+<!ELEMENT subscript (#PCDATA
+ | %link.char.class;
+ | emphasis
+ | replaceable
+ | symbol
+ | inlinegraphic
+ | inlinemediaobject
+ | %base.char.class;
+ | %other.char.class;)*>
+<!--end of subscript.element-->]]>
+
+<!ENTITY % subscript.attlist "INCLUDE">
+<![%subscript.attlist;[
+<!ATTLIST subscript
+ %common.attrib;
+ %ssscript.role.attrib;
+ %local.ssscript.attrib;
+>
+<!--end of subscript.attlist-->]]>
+
+<!ENTITY % superscript.element "INCLUDE">
+<![%superscript.element;[
+<!ELEMENT superscript (#PCDATA
+ | %link.char.class;
+ | emphasis
+ | replaceable
+ | symbol
+ | inlinegraphic
+ | inlinemediaobject
+ | %base.char.class;
+ | %other.char.class;)*>
+<!--end of superscript.element-->]]>
+
+<!ENTITY % superscript.attlist "INCLUDE">
+<![%superscript.attlist;[
+<!ATTLIST superscript
+ %common.attrib;
+ %ssscript.role.attrib;
+ %local.ssscript.attrib;
+>
+<!--end of superscript.attlist-->]]>
+<!--end of ssscript.module-->]]>
+
+<!ENTITY % trademark.module "INCLUDE">
+<![%trademark.module;[
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+
+<!ENTITY % trademark.element "INCLUDE">
+<![%trademark.element;[
+<!ELEMENT trademark (#PCDATA
+ | %link.char.class;
+ | %tech.char.class;
+ | %base.char.class;
+ | %other.char.class;
+ | inlinegraphic
+ | inlinemediaobject
+ | emphasis)*>
+<!--end of trademark.element-->]]>
+
+<!-- Class: More precisely identifies the item the element names -->
+
+
+<!ENTITY % trademark.attlist "INCLUDE">
+<![%trademark.attlist;[
+<!ATTLIST trademark
+ class (service
+ |trade
+ |registered
+ |copyright) 'trade'
+ %common.attrib;
+ %trademark.role.attrib;
+ %local.trademark.attrib;
+>
+<!--end of trademark.attlist-->]]>
+<!--end of trademark.module-->]]>
+
+<!ENTITY % wordasword.module "INCLUDE">
+<![%wordasword.module;[
+<!ENTITY % local.wordasword.attrib "">
+<!ENTITY % wordasword.role.attrib "%role.attrib;">
+
+<!ENTITY % wordasword.element "INCLUDE">
+<![%wordasword.element;[
+<!ELEMENT wordasword (%word.char.mix;)*>
+<!--end of wordasword.element-->]]>
+
+<!ENTITY % wordasword.attlist "INCLUDE">
+<![%wordasword.attlist;[
+<!ATTLIST wordasword
+ %common.attrib;
+ %wordasword.role.attrib;
+ %local.wordasword.attrib;
+>
+<!--end of wordasword.attlist-->]]>
+<!--end of wordasword.module-->]]>
+
+<!-- Links and cross-references ........................................... -->
+
+<!ENTITY % link.module "INCLUDE">
+<![%link.module;[
+<!--FUTURE USE (V4.0):
+......................
+All link elements will be excluded from themselves and each other.
+......................
+-->
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+
+<!ENTITY % link.element "INCLUDE">
+<![%link.element;[
+<!ELEMENT link (%para.char.mix;)*>
+<!--end of link.element-->]]>
+
+<!-- Endterm: ID of element containing text that is to be
+ fetched from elsewhere in the document to appear as
+ the content of this element -->
+<!-- to linked-to object -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % link.attlist "INCLUDE">
+<![%link.attlist;[
+<!ATTLIST link
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; type CDATA #IMPLIED
+ %common.attrib;
+ %link.role.attrib;
+ %local.link.attrib;
+>
+<!--end of link.attlist-->]]>
+<!--end of link.module-->]]>
+
+<!ENTITY % olink.module "INCLUDE">
+<![%olink.module;[
+<!ENTITY % local.olink.attrib "">
+<!ENTITY % olink.role.attrib "%role.attrib;">
+
+<!ENTITY % olink.element "INCLUDE">
+<![%olink.element;[
+<!ELEMENT olink (%para.char.mix;)*>
+<!--end of olink.element-->]]>
+
+<!-- TargetDocEnt: Name of an entity to be the target of the link -->
+<!-- LinkMode: ID of a ModeSpec containing instructions for
+ operating on the entity named by TargetDocEnt -->
+<!-- LocalInfo: Information that may be passed to ModeSpec -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % olink.attlist "INCLUDE">
+<![%olink.attlist;[
+<!ATTLIST olink
+ targetdocent ENTITY #IMPLIED
+ linkmode IDREF #IMPLIED
+ localinfo CDATA #IMPLIED
+ type CDATA #IMPLIED
+ %common.attrib;
+ %olink.role.attrib;
+ %local.olink.attrib;
+>
+<!--end of olink.attlist-->]]>
+<!--end of olink.module-->]]>
+
+<!ENTITY % ulink.module "INCLUDE">
+<![%ulink.module;[
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+
+<!ENTITY % ulink.element "INCLUDE">
+<![%ulink.element;[
+<!ELEMENT ulink (%para.char.mix;)*>
+<!--end of ulink.element-->]]>
+
+<!-- URL: uniform resource locator; the target of the ULink -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % ulink.attlist "INCLUDE">
+<![%ulink.attlist;[
+<!ATTLIST ulink
+ url CDATA #REQUIRED
+ type CDATA #IMPLIED
+ %common.attrib;
+ %ulink.role.attrib;
+ %local.ulink.attrib;
+>
+<!--end of ulink.attlist-->]]>
+<!--end of ulink.module-->]]>
+
+<!ENTITY % footnoteref.module "INCLUDE">
+<![%footnoteref.module;[
+<!ENTITY % local.footnoteref.attrib "">
+<!ENTITY % footnoteref.role.attrib "%role.attrib;">
+
+<!ENTITY % footnoteref.element "INCLUDE">
+<![%footnoteref.element;[
+<!ELEMENT footnoteref EMPTY>
+<!--end of footnoteref.element-->]]>
+
+<!-- to footnote content supplied elsewhere -->
+
+
+<!ENTITY % footnoteref.attlist "INCLUDE">
+<![%footnoteref.attlist;[
+<!ATTLIST footnoteref
+ %linkendreq.attrib; %label.attrib;
+ %common.attrib;
+ %footnoteref.role.attrib;
+ %local.footnoteref.attrib;
+>
+<!--end of footnoteref.attlist-->]]>
+<!--end of footnoteref.module-->]]>
+
+<!ENTITY % xref.module "INCLUDE">
+<![%xref.module;[
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+
+<!ENTITY % xref.element "INCLUDE">
+<![%xref.element;[
+<!ELEMENT xref EMPTY>
+<!--end of xref.element-->]]>
+
+<!-- Endterm: ID of element containing text that is to be
+ fetched from elsewhere in the document to appear as
+ the content of this element -->
+<!-- to linked-to object -->
+
+
+<!ENTITY % xref.attlist "INCLUDE">
+<![%xref.attlist;[
+<!ATTLIST xref
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; %common.attrib;
+ %xref.role.attrib;
+ %local.xref.attrib;
+>
+<!--end of xref.attlist-->]]>
+<!--end of xref.module-->]]>
+
+<!-- Ubiquitous elements .................................................. -->
+
+<!ENTITY % anchor.module "INCLUDE">
+<![%anchor.module;[
+<!ENTITY % local.anchor.attrib "">
+<!ENTITY % anchor.role.attrib "%role.attrib;">
+
+<!ENTITY % anchor.element "INCLUDE">
+<![%anchor.element;[
+<!ELEMENT anchor EMPTY>
+<!--end of anchor.element-->]]>
+
+<!-- required -->
+<!-- replaces Lang -->
+
+
+<!ENTITY % anchor.attlist "INCLUDE">
+<![%anchor.attlist;[
+<!ATTLIST anchor
+ %idreq.attrib; %pagenum.attrib; %remap.attrib;
+ %xreflabel.attrib;
+ %revisionflag.attrib;
+ %effectivity.attrib;
+ %anchor.role.attrib;
+ %local.anchor.attrib;
+>
+<!--end of anchor.attlist-->]]>
+<!--end of anchor.module-->]]>
+
+<!ENTITY % beginpage.module "INCLUDE">
+<![%beginpage.module;[
+<!ENTITY % local.beginpage.attrib "">
+<!ENTITY % beginpage.role.attrib "%role.attrib;">
+
+<!ENTITY % beginpage.element "INCLUDE">
+<![%beginpage.element;[
+<!ELEMENT beginpage EMPTY>
+<!--end of beginpage.element-->]]>
+
+<!-- PageNum: Number of page that begins at this point -->
+
+
+<!ENTITY % beginpage.attlist "INCLUDE">
+<![%beginpage.attlist;[
+<!ATTLIST beginpage
+ %pagenum.attrib;
+ %common.attrib;
+ %beginpage.role.attrib;
+ %local.beginpage.attrib;
+>
+<!--end of beginpage.attlist-->]]>
+<!--end of beginpage.module-->]]>
+
+<!-- IndexTerms appear in the text flow for generating or linking an
+ index. -->
+
+<!ENTITY % indexterm.content.module "INCLUDE">
+<![%indexterm.content.module;[
+<!ENTITY % indexterm.module "INCLUDE">
+<![%indexterm.module;[
+<!ENTITY % local.indexterm.attrib "">
+<!ENTITY % indexterm.role.attrib "%role.attrib;">
+
+<!ENTITY % indexterm.element "INCLUDE">
+<![%indexterm.element;[
+<!ELEMENT indexterm (primary, ((secondary, ((tertiary, (see|seealso+)?)
+ | see | seealso+)?) | see | seealso+)?)>
+<!--end of indexterm.element-->]]>
+
+<!-- Scope: Indicates which generated indices the IndexTerm
+ should appear in: Global (whole document set), Local (this
+ document only), or All (both) -->
+<!-- Significance: Whether this IndexTerm is the most pertinent
+ of its series (Preferred) or not (Normal, the default) -->
+<!-- Class: Indicates type of IndexTerm; default is Singular,
+ or EndOfRange if StartRef is supplied; StartOfRange value
+ must be supplied explicitly on starts of ranges -->
+<!-- StartRef: ID of the IndexTerm that starts the indexing
+ range ended by this IndexTerm -->
+<!-- Zone: IDs of the elements to which the IndexTerm applies,
+ and indicates that the IndexTerm applies to those entire
+ elements rather than the point at which the IndexTerm
+ occurs -->
+
+
+<!ENTITY % indexterm.attlist "INCLUDE">
+<![%indexterm.attlist;[
+<!ATTLIST indexterm
+ %pagenum.attrib;
+ scope (all
+ |global
+ |local) #IMPLIED
+ significance (preferred
+ |normal) "normal"
+ class (singular
+ |startofrange
+ |endofrange) #IMPLIED
+ startref IDREF #IMPLIED
+ zone IDREFS #IMPLIED
+ %common.attrib;
+ %indexterm.role.attrib;
+ %local.indexterm.attrib;
+>
+<!--end of indexterm.attlist-->]]>
+<!--end of indexterm.module-->]]>
+
+<!ENTITY % primsecter.module "INCLUDE">
+<![%primsecter.module;[
+<!ENTITY % local.primsecter.attrib "">
+<!ENTITY % primsecter.role.attrib "%role.attrib;">
+
+
+<!ENTITY % primary.element "INCLUDE">
+<![%primary.element;[
+<!ELEMENT primary (%ndxterm.char.mix;)*>
+<!--end of primary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+ "fourteen" for an element containing "14" -->
+
+<!ENTITY % primary.attlist "INCLUDE">
+<![%primary.attlist;[
+<!ATTLIST primary
+ sortas CDATA #IMPLIED
+ %common.attrib;
+ %primsecter.role.attrib;
+ %local.primsecter.attrib;
+>
+<!--end of primary.attlist-->]]>
+
+
+<!ENTITY % secondary.element "INCLUDE">
+<![%secondary.element;[
+<!ELEMENT secondary (%ndxterm.char.mix;)*>
+<!--end of secondary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+ "fourteen" for an element containing "14" -->
+
+<!ENTITY % secondary.attlist "INCLUDE">
+<![%secondary.attlist;[
+<!ATTLIST secondary
+ sortas CDATA #IMPLIED
+ %common.attrib;
+ %primsecter.role.attrib;
+ %local.primsecter.attrib;
+>
+<!--end of secondary.attlist-->]]>
+
+
+<!ENTITY % tertiary.element "INCLUDE">
+<![%tertiary.element;[
+<!ELEMENT tertiary (%ndxterm.char.mix;)*>
+<!--end of tertiary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+ "fourteen" for an element containing "14" -->
+
+<!ENTITY % tertiary.attlist "INCLUDE">
+<![%tertiary.attlist;[
+<!ATTLIST tertiary
+ sortas CDATA #IMPLIED
+ %common.attrib;
+ %primsecter.role.attrib;
+ %local.primsecter.attrib;
+>
+<!--end of tertiary.attlist-->]]>
+
+<!--end of primsecter.module-->]]>
+
+<!ENTITY % seeseealso.module "INCLUDE">
+<![%seeseealso.module;[
+<!ENTITY % local.seeseealso.attrib "">
+<!ENTITY % seeseealso.role.attrib "%role.attrib;">
+
+<!ENTITY % see.element "INCLUDE">
+<![%see.element;[
+<!ELEMENT see (%ndxterm.char.mix;)*>
+<!--end of see.element-->]]>
+
+<!ENTITY % see.attlist "INCLUDE">
+<![%see.attlist;[
+<!ATTLIST see
+ %common.attrib;
+ %seeseealso.role.attrib;
+ %local.seeseealso.attrib;
+>
+<!--end of see.attlist-->]]>
+
+<!ENTITY % seealso.element "INCLUDE">
+<![%seealso.element;[
+<!ELEMENT seealso (%ndxterm.char.mix;)*>
+<!--end of seealso.element-->]]>
+
+<!ENTITY % seealso.attlist "INCLUDE">
+<![%seealso.attlist;[
+<!ATTLIST seealso
+ %common.attrib;
+ %seeseealso.role.attrib;
+ %local.seeseealso.attrib;
+>
+<!--end of seealso.attlist-->]]>
+<!--end of seeseealso.module-->]]>
+<!--end of indexterm.content.module-->]]>
+
+<!-- End of DocBk XML information pool module V3.1.7 ...................... -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/3.1.7/dbtblcals.dtd b/tests/docbook/dtd/3.1.7/dbtblcals.dtd
new file mode 100644
index 00000000..5a3a7888
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/dbtblcals.dtd
@@ -0,0 +1,5 @@
+<!ENTITY % cals.table.module "INCLUDE">
+
+<!ENTITY % docbook SYSTEM "docbookx.dtd">
+%docbook;
+
diff --git a/tests/docbook/dtd/3.1.7/dbtblxchg.dtd b/tests/docbook/dtd/3.1.7/dbtblxchg.dtd
new file mode 100644
index 00000000..c667349e
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/dbtblxchg.dtd
@@ -0,0 +1,5 @@
+<!ENTITY % cals.table.module "IGNORE">
+
+<!ENTITY % docbook SYSTEM "docbookx.dtd">
+%docbook;
+
diff --git a/tests/docbook/dtd/3.1.7/docbookx.dtd b/tests/docbook/dtd/3.1.7/docbookx.dtd
new file mode 100644
index 00000000..5d4d929f
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/docbookx.dtd
@@ -0,0 +1,69 @@
+<!-- ====================================================================== -->
+<!-- DocBk XML V3.1.7 DTD
+ Copyright (C) 1998, 1999 Norman Walsh
+ http://nwalsh.com/docbook/xml/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!-- ...................................................................... -->
+<!-- Notation declarations ................................................ -->
+
+<!ENTITY % dbnotn.module "INCLUDE">
+<![%dbnotn.module;[
+<!ENTITY % dbnotn PUBLIC
+"-//Norman Walsh//ENTITIES DocBk XML Notations V3.1.7//EN"
+"dbnotnx.mod">
+%dbnotn;
+]]>
+
+<!-- ...................................................................... -->
+<!-- ISO character entity sets ............................................ -->
+
+<!ENTITY % dbcent.module "INCLUDE">
+<![%dbcent.module;[
+<!ENTITY % dbcent PUBLIC
+"-//Norman Walsh//ENTITIES DocBk XML Character Entities V3.1.7//EN"
+"dbcentx.mod">
+%dbcent;
+]]>
+
+<!-- ...................................................................... -->
+<!-- DTD modules .......................................................... -->
+
+<!-- Information pool .............. -->
+
+<!ENTITY % dbpool PUBLIC
+"-//Norman Walsh//ELEMENTS DocBk XML Information Pool V3.1.7//EN"
+"dbpoolx.mod">
+%dbpool;
+
+<!-- Redeclaration placeholder ..... -->
+
+<!ENTITY % intermod.redecl.module "IGNORE">
+<![%intermod.redecl.module;[
+<!-- Defining rdbmods here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbmods "">
+%rdbmods;
+<!--end of intermod.redecl.module-->]]>
+
+<!-- Document hierarchy ............ -->
+
+<!ENTITY % dbhier PUBLIC
+"-//Norman Walsh//ELEMENTS DocBk XML Document Hierarchy V3.1.7//EN"
+"dbhierx.mod">
+%dbhier;
+<!-- ...................................................................... -->
+<!-- Other general entities ............................................... -->
+
+<!ENTITY % dbgenent PUBLIC
+"-//Norman Walsh//ENTITIES DocBk XML Additional General Entities V3.1.7//EN"
+"dbgenent.ent">
+%dbgenent;
+
+<!-- End of DocBk XML DTD V3.1.7 .......................................... -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/3.1.7/ent/ChangeLog b/tests/docbook/dtd/3.1.7/ent/ChangeLog
new file mode 100644
index 00000000..29e3970b
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/ChangeLog
@@ -0,0 +1,9 @@
+1999-03-31 Norman Walsh <ndw@nwalsh.com>
+
+ * iso-num.ent: Removed declarations for lt and amp. They're predefined in XML and the decls. were causing IE5 to choke
+
+1999-01-31 Norman Walsh <ndw@nwalsh.com>
+
+ * iso-amsa.ent, iso-amsb.ent, iso-amsc.ent, iso-amsn.ent, iso-amso.ent, iso-amsr.ent, iso-box.ent, iso-cyr1.ent, iso-cyr2.ent, iso-dia.ent, iso-grk1.ent, iso-grk2.ent, iso-grk3.ent, iso-grk4.ent, iso-lat1.ent, iso-lat2.ent, iso-num.ent, iso-pub.ent, iso-tech.ent:
+ New file.
+
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-amsa.ent b/tests/docbook/dtd/3.1.7/ent/iso-amsa.ent
new file mode 100644
index 00000000..56a6193d
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-amsa.ent
@@ -0,0 +1,61 @@
+<!-- iso-amsa.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY cularr "&#x21B6;"> <!-- ANTICLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY curarr "&#x21B7;"> <!-- CLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY dArr "&#x21D3;"> <!-- DOWNWARDS DOUBLE ARROW -->
+<!ENTITY darr2 "&#x21CA;"> <!-- DOWNWARDS PAIRED ARROWS -->
+<!ENTITY dharl "&#x21C3;"> <!-- DOWNWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY dharr "&#x21C2;"> <!-- DOWNWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY lAarr "&#x21DA;"> <!-- LEFTWARDS TRIPLE ARROW -->
+<!ENTITY Larr "&#x219E;"> <!-- LEFTWARDS TWO HEADED ARROW -->
+<!ENTITY larr2 "&#x21C7;"> <!-- LEFTWARDS PAIRED ARROWS -->
+<!ENTITY larrhk "&#x21A9;"> <!-- LEFTWARDS ARROW WITH HOOK -->
+<!ENTITY larrlp "&#x21AB;"> <!-- LEFTWARDS ARROW WITH LOOP -->
+<!ENTITY larrtl "&#x21A2;"> <!-- LEFTWARDS ARROW WITH TAIL -->
+<!ENTITY lhard "&#x21BD;"> <!-- LEFTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY lharu "&#x21BC;"> <!-- LEFTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY hArr "&#x21D4;"> <!-- -->
+<!ENTITY harr "&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY lrarr2 "&#x21C6;"> <!-- LEFTWARDS ARROW OVER RIGHTWARDS ARROW -->
+<!ENTITY rlarr2 "&#x21C4;"> <!-- RIGHTWARDS ARROW OVER LEFTWARDS ARROW -->
+<!ENTITY harrw "&#x21AD;"> <!-- LEFT RIGHT WAVE ARROW -->
+<!ENTITY rlhar2 "&#x21CC;"> <!-- RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON -->
+<!ENTITY lrhar2 "&#x21CB;"> <!-- LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON -->
+<!ENTITY lsh "&#x21B0;"> <!-- UPWARDS ARROW WITH TIP LEFTWARDS -->
+<!ENTITY map "&#x21A6;"> <!-- RIGHTWARDS ARROW FROM BAR -->
+<!ENTITY mumap "&#x22B8;"> <!-- MULTIMAP -->
+<!ENTITY nearr "&#x2197;"> <!-- NORTH EAST ARROW -->
+<!ENTITY nlArr "&#x21CD;"> <!-- LEFTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nlarr "&#x219A;"> <!-- LEFTWARDS ARROW WITH STROKE -->
+<!ENTITY nhArr "&#x21CE;"> <!-- LEFT RIGHT DOUBLE ARROW WITH STROKE -->
+<!ENTITY nharr "&#x21AE;"> <!-- LEFT RIGHT ARROW WITH STROKE -->
+<!ENTITY nrarr "&#x219B;"> <!-- RIGHTWARDS ARROW WITH STROKE -->
+<!ENTITY nrArr "&#x21CF;"> <!-- RIGHTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nwarr "&#x2196;"> <!-- NORTH WEST ARROW -->
+<!ENTITY olarr "&#x21BA;"> <!-- ANTICLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY orarr "&#x21BB;"> <!-- CLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY rAarr "&#x21DB;"> <!-- RIGHTWARDS TRIPLE ARROW -->
+<!ENTITY Rarr "&#x21A0;"> <!-- RIGHTWARDS TWO HEADED ARROW -->
+<!ENTITY rarr2 "&#x21C9;"> <!-- RIGHTWARDS PAIRED ARROWS -->
+<!ENTITY rarrhk "&#x21AA;"> <!-- RIGHTWARDS ARROW WITH HOOK -->
+<!ENTITY rarrlp "&#x21AC;"> <!-- RIGHTWARDS ARROW WITH LOOP -->
+<!ENTITY rarrtl "&#x21A3;"> <!-- RIGHTWARDS ARROW WITH TAIL -->
+<!ENTITY rarrw "&#x219D;"> <!-- RIGHTWARDS SQUIGGLE ARROW -->
+<!ENTITY rhard "&#x21C1;"> <!-- RIGHTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY rharu "&#x21C0;"> <!-- RIGHTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY rsh "&#x21B1;"> <!-- UPWARDS ARROW WITH TIP RIGHTWARDS -->
+<!ENTITY drarr "&#x2198;"> <!-- SOUTH EAST ARROW -->
+<!ENTITY dlarr "&#x2199;"> <!-- SOUTH WEST ARROW -->
+<!ENTITY uArr "&#x21D1;"> <!-- UPWARDS DOUBLE ARROW -->
+<!ENTITY uarr2 "&#x21C8;"> <!-- UPWARDS PAIRED ARROWS -->
+<!ENTITY vArr "&#x21D5;"> <!-- UP DOWN DOUBLE ARROW -->
+<!ENTITY varr "&#x2195;"> <!-- UP DOWN ARROW -->
+<!ENTITY uharl "&#x21BF;"> <!-- UPWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY uharr "&#x21BE;"> <!-- UPWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY xlArr "&#xE200;"> <!-- -->
+<!ENTITY xhArr "&#xE202;"> <!-- -->
+<!ENTITY xharr "&#xE203;"> <!-- -->
+<!ENTITY xrArr "&#xE204;"> <!-- -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-amsb.ent b/tests/docbook/dtd/3.1.7/ent/iso-amsb.ent
new file mode 100644
index 00000000..091c2b0a
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-amsb.ent
@@ -0,0 +1,47 @@
+<!-- iso-amsb.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY amalg "&#xE251;"> <!-- -->
+<!ENTITY Barwed "&#x2306;"> <!-- PERSPECTIVE -->
+<!ENTITY barwed "&#x22BC;"> <!-- NAND -->
+<!ENTITY Cap "&#x22D2;"> <!-- DOUBLE INTERSECTION -->
+<!ENTITY Cup "&#x22D3;"> <!-- DOUBLE UNION -->
+<!ENTITY cuvee "&#x22CE;"> <!-- CURLY LOGICAL OR -->
+<!ENTITY cuwed "&#x22CF;"> <!-- CURLY LOGICAL AND -->
+<!ENTITY diam "&#x22C4;"> <!-- DIAMOND OPERATOR -->
+<!ENTITY divonx "&#x22C7;"> <!-- DIVISION TIMES -->
+<!ENTITY intcal "&#x22BA;"> <!-- INTERCALATE -->
+<!ENTITY lthree "&#x22CB;"> <!-- LEFT SEMIDIRECT PRODUCT -->
+<!ENTITY ltimes "&#x22C9;"> <!-- LEFT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY minusb "&#x229F;"> <!-- SQUARED MINUS -->
+<!ENTITY oast "&#x229B;"> <!-- CIRCLED ASTERISK OPERATOR -->
+<!ENTITY ocir "&#x229A;"> <!-- CIRCLED RING OPERATOR -->
+<!ENTITY odash "&#x229D;"> <!-- CIRCLED DASH -->
+<!ENTITY odot "&#x2299;"> <!-- CIRCLED DOT OPERATOR -->
+<!ENTITY ominus "&#x2296;"> <!-- CIRCLED MINUS -->
+<!ENTITY oplus "&#x2295;"> <!-- CIRCLED PLUS -->
+<!ENTITY osol "&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY otimes "&#x2297;"> <!-- CIRCLED TIMES -->
+<!ENTITY plusb "&#x229E;"> <!-- SQUARED PLUS -->
+<!ENTITY plusdo "&#x2214;"> <!-- DOT PLUS -->
+<!ENTITY rthree "&#x22CC;"> <!-- RIGHT SEMIDIRECT PRODUCT -->
+<!ENTITY rtimes "&#x22CA;"> <!-- RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY sdot "&#x22C5;"> <!-- DOT OPERATOR -->
+<!ENTITY sdotb "&#x22A1;"> <!-- SQUARED DOT OPERATOR -->
+<!ENTITY setmn "&#x2216;"> <!-- SET MINUS -->
+<!ENTITY sqcap "&#x2293;"> <!-- SQUARE CAP -->
+<!ENTITY sqcup "&#x2294;"> <!-- SQUARE CUP -->
+<!ENTITY ssetmn "&#xE844;"> <!-- -->
+<!ENTITY sstarf "&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY timesb "&#x22A0;"> <!-- SQUARED TIMES -->
+<!ENTITY top "&#x22A4;"> <!-- DOWN TACK -->
+<!ENTITY uplus "&#x228E;"> <!-- MULTISET UNION -->
+<!ENTITY wreath "&#x2240;"> <!-- WREATH PRODUCT -->
+<!ENTITY xcirc "&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY xdtri "&#x25BD;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY xutri "&#x25B3;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY coprod "&#x2210;"> <!-- N-ARY COPRODUCT -->
+<!ENTITY prod "&#x220F;"> <!-- N-ARY PRODUCT -->
+<!ENTITY sum "&#x2211;"> <!-- N-ARY SUMMATION -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-amsc.ent b/tests/docbook/dtd/3.1.7/ent/iso-amsc.ent
new file mode 100644
index 00000000..2127b8b8
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-amsc.ent
@@ -0,0 +1,15 @@
+<!-- iso-amsc.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY rceil "&#x2309;"> <!-- RIGHT CEILING -->
+<!ENTITY rfloor "&#x230B;"> <!-- RIGHT FLOOR -->
+<!ENTITY rpargt "&#xE291;"> <!-- -->
+<!ENTITY urcorn "&#x231D;"> <!-- TOP RIGHT CORNER -->
+<!ENTITY drcorn "&#x231F;"> <!-- BOTTOM RIGHT CORNER -->
+<!ENTITY lceil "&#x2308;"> <!-- LEFT CEILING -->
+<!ENTITY lfloor "&#x230A;"> <!-- LEFT FLOOR -->
+<!-- lpargt Unknown unicode character -->
+<!ENTITY ulcorn "&#x231C;"> <!-- TOP LEFT CORNER -->
+<!ENTITY dlcorn "&#x231E;"> <!-- BOTTOM LEFT CORNER -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-amsn.ent b/tests/docbook/dtd/3.1.7/ent/iso-amsn.ent
new file mode 100644
index 00000000..91daadba
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-amsn.ent
@@ -0,0 +1,64 @@
+<!-- iso-amsn.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY gnap "&#xE411;"> <!-- -->
+<!ENTITY gne "&#x2269;"> <!-- -->
+<!ENTITY gnE "&#x2269;"> <!-- -->
+<!ENTITY gnsim "&#x22E7;"> <!-- GREATER-THAN BUT NOT EQUIVALENT TO -->
+<!ENTITY gvnE "&#xE2A1;"> <!-- -->
+<!ENTITY lnap "&#xE2A2;"> <!-- -->
+<!ENTITY lnE "&#x2268;"> <!-- -->
+<!ENTITY lne "&#x2268;"> <!-- -->
+<!ENTITY lnsim "&#x22E6;"> <!-- -->
+<!ENTITY lvnE "&#xE2A4;"> <!-- -->
+<!ENTITY nap "&#x2249;"> <!-- NOT ALMOST EQUAL TO -->
+<!ENTITY ncong "&#x2247;"> <!-- NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO -->
+<!ENTITY nequiv "&#x2262;"> <!-- NOT IDENTICAL TO -->
+<!ENTITY ngE "&#x2271;"> <!-- -->
+<!ENTITY nge "&#xE2A6;"> <!-- -->
+<!ENTITY nges "&#x2271;"> <!-- -->
+<!ENTITY ngt "&#x226F;"> <!-- NOT GREATER-THAN -->
+<!ENTITY nle "&#xE2A7;"> <!-- -->
+<!ENTITY nlE "&#x2270;"> <!-- -->
+<!ENTITY nles "&#x2270;"> <!-- -->
+<!ENTITY nlt "&#x226E;"> <!-- NOT LESS-THAN -->
+<!ENTITY nltri "&#x22EA;"> <!-- NOT NORMAL SUBGROUP OF -->
+<!ENTITY nltrie "&#x22EC;"> <!-- NOT NORMAL SUBGROUP OF OR EQUAL TO -->
+<!ENTITY nmid "&#x2224;"> <!-- DOES NOT DIVIDE -->
+<!ENTITY npar "&#x2226;"> <!-- NOT PARALLEL TO -->
+<!ENTITY npr "&#x2280;"> <!-- DOES NOT PRECEDE -->
+<!ENTITY npre "&#xE412;"> <!-- -->
+<!ENTITY nrtri "&#x22EB;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP -->
+<!ENTITY nrtrie "&#x22ED;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL -->
+<!ENTITY nsc "&#x2281;"> <!-- DOES NOT SUCCEED -->
+<!ENTITY nsce "&#xE413;"> <!-- -->
+<!ENTITY nsim "&#x2241;"> <!-- -->
+<!ENTITY nsime "&#x2244;"> <!-- -->
+<!ENTITY nsmid "&#xE2AA;"> <!-- -->
+<!ENTITY nspar "&#xE2AB;"> <!-- -->
+<!ENTITY nsub "&#x2284;"> <!-- NOT A SUBSET OF -->
+<!ENTITY nsube "&#x2288;"> <!-- -->
+<!ENTITY nsubE "&#x2288;"> <!-- -->
+<!ENTITY nsup "&#x2285;"> <!-- NOT A SUPERSET OF -->
+<!ENTITY nsupE "&#x2289;"> <!-- -->
+<!ENTITY nsupe "&#x2289;"> <!-- -->
+<!ENTITY nvdash "&#x22AC;"> <!-- DOES NOT PROVE -->
+<!ENTITY nvDash "&#x22AD;"> <!-- NOT TRUE -->
+<!ENTITY nVDash "&#x22AF;"> <!-- NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -->
+<!ENTITY nVdash "&#x22AE;"> <!-- DOES NOT FORCE -->
+<!ENTITY prnap "&#x22E8;"> <!-- -->
+<!ENTITY prnE "&#xE2B3;"> <!-- -->
+<!ENTITY prnsim "&#x22E8;"> <!-- -->
+<!ENTITY scnap "&#x22E9;"> <!-- -->
+<!ENTITY scnE "&#xE2B5;"> <!-- -->
+<!ENTITY scnsim "&#x22E9;"> <!-- -->
+<!ENTITY subne "&#x228A;"> <!-- -->
+<!ENTITY subnE "&#x228A;"> <!-- -->
+<!ENTITY supne "&#x228B;"> <!-- -->
+<!ENTITY supnE "&#x228B;"> <!-- -->
+<!ENTITY vsubnE "&#xE2B8;"> <!-- -->
+<!ENTITY vsubne "&#xE2B9;"> <!-- -->
+<!ENTITY vsupne "&#xE2BA;"> <!-- -->
+<!ENTITY vsupnE "&#xE2BB;"> <!-- -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-amso.ent b/tests/docbook/dtd/3.1.7/ent/iso-amso.ent
new file mode 100644
index 00000000..49192518
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-amso.ent
@@ -0,0 +1,24 @@
+<!-- iso-amso.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY ang "&#x2220;"> <!-- ANGLE -->
+<!ENTITY angmsd "&#x2221;"> <!-- MEASURED ANGLE -->
+<!ENTITY beth "&#x2136;"> <!-- BET SYMBOL -->
+<!ENTITY bprime "&#x2035;"> <!-- REVERSED PRIME -->
+<!ENTITY comp "&#x2201;"> <!-- COMPLEMENT -->
+<!ENTITY daleth "&#x2138;"> <!-- DALET SYMBOL -->
+<!ENTITY ell "&#x2113;"> <!-- SCRIPT SMALL L -->
+<!ENTITY empty "&#xE2D3;"> <!-- -->
+<!ENTITY gimel "&#x2137;"> <!-- GIMEL SYMBOL -->
+<!ENTITY image "&#x2111;"> <!-- BLACK-LETTER CAPITAL I -->
+<!ENTITY inodot "&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!-- jnodot Unknown unicode character -->
+<!ENTITY nexist "&#x2204;"> <!-- THERE DOES NOT EXIST -->
+<!ENTITY oS "&#xE41D;"> <!-- -->
+<!ENTITY planck "&#x210F;"> <!-- PLANCK CONSTANT OVER TWO PI -->
+<!ENTITY real "&#x211C;"> <!-- BLACK-LETTER CAPITAL R -->
+<!ENTITY sbsol "&#xFE68;"> <!-- SMALL REVERSE SOLIDUS -->
+<!-- vprime Unknown unicode character -->
+<!ENTITY weierp "&#x2118;"> <!-- SCRIPT CAPITAL P -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-amsr.ent b/tests/docbook/dtd/3.1.7/ent/iso-amsr.ent
new file mode 100644
index 00000000..21eb29e9
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-amsr.ent
@@ -0,0 +1,89 @@
+<!-- iso-amsr.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY ape "&#x224A;"> <!-- -->
+<!ENTITY asymp "&#x224D;"> <!-- EQUIVALENT TO -->
+<!ENTITY bcong "&#x224C;"> <!-- ALL EQUAL TO -->
+<!ENTITY bepsi "&#xE420;"> <!-- -->
+<!ENTITY bowtie "&#x22C8;"> <!-- -->
+<!ENTITY bsim "&#x223D;"> <!-- -->
+<!ENTITY bsime "&#x22CD;"> <!-- -->
+<!ENTITY bump "&#x224E;"> <!-- -->
+<!ENTITY bumpe "&#x224F;"> <!-- -->
+<!ENTITY cire "&#x2257;"> <!-- -->
+<!ENTITY colone "&#x2254;"> <!-- -->
+<!ENTITY cuepr "&#x22DE;"> <!-- -->
+<!ENTITY cuesc "&#x22DF;"> <!-- -->
+<!ENTITY cupre "&#x227C;"> <!-- -->
+<!ENTITY dashv "&#x22A3;"> <!-- -->
+<!ENTITY ecir "&#x2256;"> <!-- -->
+<!ENTITY ecolon "&#x2255;"> <!-- -->
+<!ENTITY eDot "&#x2251;"> <!-- -->
+<!ENTITY esdot "&#x2250;"> <!-- -->
+<!ENTITY efDot "&#x2252;"> <!-- -->
+<!ENTITY egs "&#x22DD;"> <!-- -->
+<!ENTITY els "&#x22DC;"> <!-- -->
+<!ENTITY erDot "&#x2253;"> <!-- -->
+<!ENTITY fork "&#x22D4;"> <!-- -->
+<!ENTITY frown "&#x2322;"> <!-- -->
+<!ENTITY gap "&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY gsdot "&#x22D7;"> <!-- -->
+<!ENTITY gE "&#x2267;"> <!-- -->
+<!ENTITY gel "&#x22DB;"> <!-- -->
+<!ENTITY gEl "&#x22DB;"> <!-- -->
+<!ENTITY ges "&#xE421;"> <!-- -->
+<!ENTITY Gg "&#x22D9;"> <!-- VERY MUCH GREATER-THAN -->
+<!ENTITY gl "&#x2277;"> <!-- -->
+<!ENTITY gsim "&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY Gt "&#x226B;"> <!-- MUCH GREATER-THAN -->
+<!ENTITY lap "&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY ldot "&#x22D6;"> <!-- -->
+<!ENTITY lE "&#x2266;"> <!-- -->
+<!ENTITY lEg "&#x22DA;"> <!-- -->
+<!ENTITY leg "&#x22DA;"> <!-- -->
+<!ENTITY les "&#xE425;"> <!-- -->
+<!ENTITY lg "&#x2276;"> <!-- LESS-THAN OR GREATER-THAN -->
+<!ENTITY Ll "&#x22D8;"> <!-- -->
+<!ENTITY lsim "&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY Lt "&#x226A;"> <!-- MUCH LESS-THAN -->
+<!ENTITY ltrie "&#x22B4;"> <!-- -->
+<!ENTITY mid "&#x2223;"> <!-- -->
+<!ENTITY models "&#x22A7;"> <!-- MODELS -->
+<!ENTITY pr "&#x227A;"> <!-- -->
+<!ENTITY prap "&#x227E;"> <!-- -->
+<!ENTITY pre "&#x227C;"> <!-- -->
+<!ENTITY prsim "&#x227E;"> <!-- -->
+<!ENTITY rtrie "&#x22B5;"> <!-- -->
+<!-- samalg Unknown unicode character -->
+<!ENTITY sc "&#x227B;"> <!-- -->
+<!ENTITY scap "&#x227F;"> <!-- -->
+<!ENTITY sccue "&#x227D;"> <!-- -->
+<!ENTITY sce "&#x227D;"> <!-- -->
+<!ENTITY scsim "&#x227F;"> <!-- -->
+<!ENTITY sfrown "&#xE426;"> <!-- -->
+<!ENTITY smid "&#xE301;"> <!-- -->
+<!ENTITY smile "&#x2323;"> <!-- -->
+<!ENTITY spar "&#xE302;"> <!-- -->
+<!ENTITY sqsub "&#x228F;"> <!-- -->
+<!ENTITY sqsube "&#x2291;"> <!-- -->
+<!ENTITY sqsup "&#x2290;"> <!-- -->
+<!ENTITY sqsupe "&#x2292;"> <!-- -->
+<!ENTITY ssmile "&#xE303;"> <!-- -->
+<!ENTITY Sub "&#x22D0;"> <!-- -->
+<!ENTITY subE "&#x2286;"> <!-- -->
+<!ENTITY Sup "&#x22D1;"> <!-- -->
+<!ENTITY supE "&#x2287;"> <!-- -->
+<!ENTITY thkap "&#xE306;"> <!-- -->
+<!ENTITY thksim "&#xE429;"> <!-- -->
+<!ENTITY trie "&#x225C;"> <!-- -->
+<!ENTITY twixt "&#x226C;"> <!-- BETWEEN -->
+<!ENTITY vdash "&#x22A2;"> <!-- -->
+<!ENTITY Vdash "&#x22A9;"> <!-- -->
+<!ENTITY vDash "&#x22A8;"> <!-- -->
+<!ENTITY veebar "&#x22BB;"> <!-- -->
+<!ENTITY vltri "&#x22B2;"> <!-- -->
+<!ENTITY vprop "&#x221D;"> <!-- -->
+<!ENTITY vrtri "&#x22B3;"> <!-- -->
+<!ENTITY Vvdash "&#x22AA;"> <!-- -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-box.ent b/tests/docbook/dtd/3.1.7/ent/iso-box.ent
new file mode 100644
index 00000000..c93f6c7c
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-box.ent
@@ -0,0 +1,45 @@
+<!-- iso-box.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY boxh "&#x2500;"> <!-- BOX DRAWINGS LIGHT HORIZONTAL -->
+<!ENTITY boxv "&#x2502;"> <!-- BOX DRAWINGS LIGHT VERTICAL -->
+<!ENTITY boxur "&#x2514;"> <!-- BOX DRAWINGS LIGHT UP AND RIGHT -->
+<!ENTITY boxul "&#x2518;"> <!-- BOX DRAWINGS LIGHT UP AND LEFT -->
+<!ENTITY boxdl "&#x2510;"> <!-- BOX DRAWINGS LIGHT DOWN AND LEFT -->
+<!ENTITY boxdr "&#x250C;"> <!-- BOX DRAWINGS LIGHT DOWN AND RIGHT -->
+<!ENTITY boxvr "&#x251C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND RIGHT -->
+<!ENTITY boxhu "&#x2534;"> <!-- BOX DRAWINGS LIGHT UP AND HORIZONTAL -->
+<!ENTITY boxvl "&#x2524;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND LEFT -->
+<!ENTITY boxhd "&#x252C;"> <!-- BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -->
+<!ENTITY boxvh "&#x253C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -->
+<!ENTITY boxvR "&#x255E;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxhU "&#x2567;"> <!-- BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvL "&#x2561;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxhD "&#x2564;"> <!-- BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvH "&#x256A;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxH "&#x2550;"> <!-- BOX DRAWINGS DOUBLE HORIZONTAL -->
+<!ENTITY boxV "&#x2551;"> <!-- BOX DRAWINGS DOUBLE VERTICAL -->
+<!ENTITY boxUR "&#x2558;"> <!-- BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxUL "&#x255B;"> <!-- BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDL "&#x2555;"> <!-- BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDR "&#x2552;"> <!-- BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxVR "&#x255F;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxHU "&#x2568;"> <!-- BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVL "&#x2562;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxHD "&#x2565;"> <!-- BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVH "&#x256B;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVr "&#x2560;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -->
+<!ENTITY boxHu "&#x2569;"> <!-- BOX DRAWINGS DOUBLE UP AND HORIZONTAL -->
+<!ENTITY boxVl "&#x2563;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND LEFT -->
+<!ENTITY boxHd "&#x2566;"> <!-- BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -->
+<!ENTITY boxVh "&#x256C;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -->
+<!ENTITY boxuR "&#x2559;"> <!-- BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUl "&#x255C;"> <!-- BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxdL "&#x2556;"> <!-- BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxDr "&#x2553;"> <!-- BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUr "&#x255A;"> <!-- BOX DRAWINGS DOUBLE UP AND RIGHT -->
+<!ENTITY boxuL "&#x255D;"> <!-- BOX DRAWINGS DOUBLE UP AND LEFT -->
+<!ENTITY boxDl "&#x2557;"> <!-- BOX DRAWINGS DOUBLE DOWN AND LEFT -->
+<!ENTITY boxdR "&#x2554;"> <!-- BOX DRAWINGS DOUBLE DOWN AND RIGHT -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-cyr1.ent b/tests/docbook/dtd/3.1.7/ent/iso-cyr1.ent
new file mode 100644
index 00000000..c730d280
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-cyr1.ent
@@ -0,0 +1,72 @@
+<!-- iso-cyr1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY acy "&#x0430;"> <!-- CYRILLIC SMALL LETTER A -->
+<!ENTITY Acy "&#x0410;"> <!-- CYRILLIC CAPITAL LETTER A -->
+<!ENTITY bcy "&#x0431;"> <!-- CYRILLIC SMALL LETTER BE -->
+<!ENTITY Bcy "&#x0411;"> <!-- CYRILLIC CAPITAL LETTER BE -->
+<!ENTITY vcy "&#x0432;"> <!-- CYRILLIC SMALL LETTER VE -->
+<!ENTITY Vcy "&#x0412;"> <!-- CYRILLIC CAPITAL LETTER VE -->
+<!ENTITY gcy "&#x0433;"> <!-- CYRILLIC SMALL LETTER GHE -->
+<!ENTITY Gcy "&#x0413;"> <!-- CYRILLIC CAPITAL LETTER GHE -->
+<!ENTITY dcy "&#x0434;"> <!-- CYRILLIC SMALL LETTER DE -->
+<!ENTITY Dcy "&#x0414;"> <!-- CYRILLIC CAPITAL LETTER DE -->
+<!ENTITY iecy "&#x0435;"> <!-- CYRILLIC SMALL LETTER IE -->
+<!ENTITY IEcy "&#x0415;"> <!-- CYRILLIC CAPITAL LETTER IE -->
+<!ENTITY iocy "&#x0451;"> <!-- CYRILLIC SMALL LETTER IO -->
+<!ENTITY IOcy "&#x0401;"> <!-- CYRILLIC CAPITAL LETTER IO -->
+<!ENTITY zhcy "&#x0436;"> <!-- CYRILLIC SMALL LETTER ZHE -->
+<!ENTITY ZHcy "&#x0416;"> <!-- CYRILLIC CAPITAL LETTER ZHE -->
+<!ENTITY zcy "&#x0437;"> <!-- CYRILLIC SMALL LETTER ZE -->
+<!ENTITY Zcy "&#x0417;"> <!-- CYRILLIC CAPITAL LETTER ZE -->
+<!ENTITY icy "&#x0438;"> <!-- CYRILLIC SMALL LETTER I -->
+<!ENTITY Icy "&#x0418;"> <!-- CYRILLIC CAPITAL LETTER I -->
+<!ENTITY jcy "&#x0439;"> <!-- CYRILLIC SMALL LETTER SHORT I -->
+<!ENTITY Jcy "&#x0419;"> <!-- CYRILLIC CAPITAL LETTER SHORT I -->
+<!ENTITY kcy "&#x043A;"> <!-- CYRILLIC SMALL LETTER KA -->
+<!ENTITY Kcy "&#x041A;"> <!-- CYRILLIC CAPITAL LETTER KA -->
+<!ENTITY lcy "&#x043B;"> <!-- CYRILLIC SMALL LETTER EL -->
+<!ENTITY Lcy "&#x041B;"> <!-- CYRILLIC CAPITAL LETTER EL -->
+<!ENTITY mcy "&#x043C;"> <!-- CYRILLIC SMALL LETTER EM -->
+<!ENTITY Mcy "&#x041C;"> <!-- CYRILLIC CAPITAL LETTER EM -->
+<!ENTITY ncy "&#x043D;"> <!-- CYRILLIC SMALL LETTER EN -->
+<!ENTITY Ncy "&#x041D;"> <!-- CYRILLIC CAPITAL LETTER EN -->
+<!ENTITY ocy "&#x043E;"> <!-- CYRILLIC SMALL LETTER O -->
+<!ENTITY Ocy "&#x041E;"> <!-- CYRILLIC CAPITAL LETTER O -->
+<!ENTITY pcy "&#x043F;"> <!-- CYRILLIC SMALL LETTER PE -->
+<!ENTITY Pcy "&#x041F;"> <!-- CYRILLIC CAPITAL LETTER PE -->
+<!ENTITY rcy "&#x0440;"> <!-- CYRILLIC SMALL LETTER ER -->
+<!ENTITY Rcy "&#x0420;"> <!-- CYRILLIC CAPITAL LETTER ER -->
+<!ENTITY scy "&#x0441;"> <!-- CYRILLIC SMALL LETTER ES -->
+<!ENTITY Scy "&#x0421;"> <!-- CYRILLIC CAPITAL LETTER ES -->
+<!ENTITY tcy "&#x0442;"> <!-- CYRILLIC SMALL LETTER TE -->
+<!ENTITY Tcy "&#x0422;"> <!-- CYRILLIC CAPITAL LETTER TE -->
+<!ENTITY ucy "&#x0443;"> <!-- CYRILLIC SMALL LETTER U -->
+<!ENTITY Ucy "&#x0423;"> <!-- CYRILLIC CAPITAL LETTER U -->
+<!ENTITY fcy "&#x0444;"> <!-- CYRILLIC SMALL LETTER EF -->
+<!ENTITY Fcy "&#x0424;"> <!-- CYRILLIC CAPITAL LETTER EF -->
+<!ENTITY khcy "&#x0445;"> <!-- CYRILLIC SMALL LETTER HA -->
+<!ENTITY KHcy "&#x0425;"> <!-- CYRILLIC CAPITAL LETTER HA -->
+<!ENTITY tscy "&#x0446;"> <!-- CYRILLIC SMALL LETTER TSE -->
+<!ENTITY TScy "&#x0426;"> <!-- CYRILLIC CAPITAL LETTER TSE -->
+<!ENTITY chcy "&#x0447;"> <!-- CYRILLIC SMALL LETTER CHE -->
+<!ENTITY CHcy "&#x0427;"> <!-- CYRILLIC CAPITAL LETTER CHE -->
+<!ENTITY shcy "&#x0448;"> <!-- CYRILLIC SMALL LETTER SHA -->
+<!ENTITY SHcy "&#x0428;"> <!-- CYRILLIC CAPITAL LETTER SHA -->
+<!ENTITY shchcy "&#x0449;"> <!-- CYRILLIC SMALL LETTER SHCHA -->
+<!ENTITY SHCHcy "&#x0429;"> <!-- CYRILLIC CAPITAL LETTER SHCHA -->
+<!ENTITY hardcy "&#x044A;"> <!-- CYRILLIC SMALL LETTER HARD SIGN -->
+<!ENTITY HARDcy "&#x042A;"> <!-- CYRILLIC CAPITAL LETTER HARD SIGN -->
+<!ENTITY ycy "&#x044B;"> <!-- CYRILLIC SMALL LETTER YERU -->
+<!ENTITY Ycy "&#x042B;"> <!-- CYRILLIC CAPITAL LETTER YERU -->
+<!ENTITY softcy "&#x044C;"> <!-- CYRILLIC SMALL LETTER SOFT SIGN -->
+<!ENTITY SOFTcy "&#x042C;"> <!-- CYRILLIC CAPITAL LETTER SOFT SIGN -->
+<!ENTITY ecy "&#x044D;"> <!-- CYRILLIC SMALL LETTER E -->
+<!ENTITY Ecy "&#x042D;"> <!-- CYRILLIC CAPITAL LETTER E -->
+<!ENTITY yucy "&#x044E;"> <!-- CYRILLIC SMALL LETTER YU -->
+<!ENTITY YUcy "&#x042E;"> <!-- CYRILLIC CAPITAL LETTER YU -->
+<!ENTITY yacy "&#x044F;"> <!-- CYRILLIC SMALL LETTER YA -->
+<!ENTITY YAcy "&#x042F;"> <!-- CYRILLIC CAPITAL LETTER YA -->
+<!ENTITY numero "&#x2116;"> <!-- NUMERO SIGN -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-cyr2.ent b/tests/docbook/dtd/3.1.7/ent/iso-cyr2.ent
new file mode 100644
index 00000000..dc94d234
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-cyr2.ent
@@ -0,0 +1,31 @@
+<!-- iso-cyr2.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY djcy "&#x0452;"> <!-- CYRILLIC SMALL LETTER DJE -->
+<!ENTITY DJcy "&#x0402;"> <!-- CYRILLIC CAPITAL LETTER DJE -->
+<!ENTITY gjcy "&#x0453;"> <!-- CYRILLIC SMALL LETTER GJE -->
+<!ENTITY GJcy "&#x0403;"> <!-- CYRILLIC CAPITAL LETTER GJE -->
+<!ENTITY jukcy "&#x0454;"> <!-- CYRILLIC SMALL LETTER UKRAINIAN IE -->
+<!ENTITY Jukcy "&#x0404;"> <!-- CYRILLIC CAPITAL LETTER UKRAINIAN IE -->
+<!ENTITY dscy "&#x0455;"> <!-- CYRILLIC SMALL LETTER DZE -->
+<!ENTITY DScy "&#x0405;"> <!-- CYRILLIC CAPITAL LETTER DZE -->
+<!ENTITY iukcy "&#x0456;"> <!-- CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY Iukcy "&#x0406;"> <!-- CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY yicy "&#x0457;"> <!-- CYRILLIC SMALL LETTER YI -->
+<!ENTITY YIcy "&#x0407;"> <!-- CYRILLIC CAPITAL LETTER YI -->
+<!ENTITY jsercy "&#x0458;"> <!-- CYRILLIC SMALL LETTER JE -->
+<!ENTITY Jsercy "&#x0408;"> <!-- CYRILLIC CAPITAL LETTER JE -->
+<!ENTITY ljcy "&#x0459;"> <!-- CYRILLIC SMALL LETTER LJE -->
+<!ENTITY LJcy "&#x0409;"> <!-- CYRILLIC CAPITAL LETTER LJE -->
+<!ENTITY njcy "&#x045A;"> <!-- CYRILLIC SMALL LETTER NJE -->
+<!ENTITY NJcy "&#x040A;"> <!-- CYRILLIC CAPITAL LETTER NJE -->
+<!ENTITY tshcy "&#x045B;"> <!-- CYRILLIC SMALL LETTER TSHE -->
+<!ENTITY TSHcy "&#x040B;"> <!-- CYRILLIC CAPITAL LETTER TSHE -->
+<!ENTITY kjcy "&#x045C;"> <!-- CYRILLIC SMALL LETTER KJE -->
+<!ENTITY KJcy "&#x040C;"> <!-- CYRILLIC CAPITAL LETTER KJE -->
+<!ENTITY ubrcy "&#x045E;"> <!-- CYRILLIC SMALL LETTER SHORT U -->
+<!ENTITY Ubrcy "&#x040E;"> <!-- CYRILLIC CAPITAL LETTER SHORT U -->
+<!ENTITY dzcy "&#x045F;"> <!-- CYRILLIC SMALL LETTER DZHE -->
+<!ENTITY DZcy "&#x040F;"> <!-- CYRILLIC CAPITAL LETTER DZHE -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-dia.ent b/tests/docbook/dtd/3.1.7/ent/iso-dia.ent
new file mode 100644
index 00000000..23921eed
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-dia.ent
@@ -0,0 +1,19 @@
+<!-- iso-dia.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY acute "&#x00B4;"> <!-- ACUTE ACCENT -->
+<!ENTITY breve "&#x02D8;"> <!-- BREVE -->
+<!ENTITY caron "&#x02C7;"> <!-- CARON -->
+<!ENTITY cedil "&#x00B8;"> <!-- CEDILLA -->
+<!ENTITY circ "&#x2218;"> <!-- RING OPERATOR -->
+<!ENTITY dblac "&#x02DD;"> <!-- DOUBLE ACUTE ACCENT -->
+<!ENTITY die "&#x00A8;"> <!-- -->
+<!ENTITY dot "&#x02D9;"> <!-- DOT ABOVE -->
+<!ENTITY grave "&#x0060;"> <!-- GRAVE ACCENT -->
+<!ENTITY macr "&#x00AF;"> <!-- MACRON -->
+<!ENTITY ogon "&#x02DB;"> <!-- OGONEK -->
+<!ENTITY ring "&#x02DA;"> <!-- RING ABOVE -->
+<!ENTITY tilde "&#x007E;"> <!-- TILDE -->
+<!ENTITY uml "&#x00A8;"> <!-- -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-grk1.ent b/tests/docbook/dtd/3.1.7/ent/iso-grk1.ent
new file mode 100644
index 00000000..fc7d1601
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-grk1.ent
@@ -0,0 +1,54 @@
+<!-- iso-grk1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY agr "&#x03B1;"> <!-- -->
+<!ENTITY Agr "&#x0391;"> <!-- GREEK CAPITAL LETTER ALPHA -->
+<!ENTITY bgr "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY Bgr "&#x0392;"> <!-- GREEK CAPITAL LETTER BETA -->
+<!ENTITY ggr "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Ggr "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY dgr "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Dgr "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY egr "&#x03B5;"> <!-- -->
+<!ENTITY Egr "&#x0395;"> <!-- GREEK CAPITAL LETTER EPSILON -->
+<!ENTITY zgr "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY Zgr "&#x0396;"> <!-- GREEK CAPITAL LETTER ZETA -->
+<!ENTITY eegr "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY EEgr "&#x0397;"> <!-- GREEK CAPITAL LETTER ETA -->
+<!ENTITY thgr "&#x03B8;"> <!-- -->
+<!ENTITY THgr "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY igr "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY Igr "&#x0399;"> <!-- GREEK CAPITAL LETTER IOTA -->
+<!ENTITY kgr "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY Kgr "&#x039A;"> <!-- GREEK CAPITAL LETTER KAPPA -->
+<!ENTITY lgr "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lgr "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mgr "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY Mgr "&#x039C;"> <!-- GREEK CAPITAL LETTER MU -->
+<!ENTITY ngr "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY Ngr "&#x039D;"> <!-- GREEK CAPITAL LETTER NU -->
+<!ENTITY xgr "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xgr "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY ogr "&#x03BF;"> <!-- GREEK SMALL LETTER OMICRON -->
+<!ENTITY Ogr "&#x039F;"> <!-- GREEK CAPITAL LETTER OMICRON -->
+<!ENTITY pgr "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY Pgr "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rgr "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY Rgr "&#x03A1;"> <!-- GREEK CAPITAL LETTER RHO -->
+<!ENTITY sgr "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sgr "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sfgr "&#x03C2;"> <!-- -->
+<!ENTITY tgr "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY Tgr "&#x03A4;"> <!-- GREEK CAPITAL LETTER TAU -->
+<!ENTITY ugr "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Ugr "&#x03A5;"> <!-- -->
+<!ENTITY phgr "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY PHgr "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY khgr "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY KHgr "&#x03A7;"> <!-- GREEK CAPITAL LETTER CHI -->
+<!ENTITY psgr "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY PSgr "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY ohgr "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY OHgr "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-grk2.ent b/tests/docbook/dtd/3.1.7/ent/iso-grk2.ent
new file mode 100644
index 00000000..aae08bb4
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-grk2.ent
@@ -0,0 +1,25 @@
+<!-- iso-grk2.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacgr "&#x03AC;"> <!-- GREEK SMALL LETTER ALPHA WITH TONOS -->
+<!ENTITY Aacgr "&#x0386;"> <!-- GREEK CAPITAL LETTER ALPHA WITH TONOS -->
+<!ENTITY eacgr "&#x03AD;"> <!-- GREEK SMALL LETTER EPSILON WITH TONOS -->
+<!ENTITY Eacgr "&#x0388;"> <!-- GREEK CAPITAL LETTER EPSILON WITH TONOS -->
+<!ENTITY eeacgr "&#x03AE;"> <!-- GREEK SMALL LETTER ETA WITH TONOS -->
+<!ENTITY EEacgr "&#x0389;"> <!-- GREEK CAPITAL LETTER ETA WITH TONOS -->
+<!ENTITY idigr "&#x03CA;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY Idigr "&#x03AA;"> <!-- GREEK CAPITAL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY iacgr "&#x03AF;"> <!-- GREEK SMALL LETTER IOTA WITH TONOS -->
+<!ENTITY Iacgr "&#x038A;"> <!-- GREEK CAPITAL LETTER IOTA WITH TONOS -->
+<!ENTITY idiagr "&#x0390;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -->
+<!ENTITY oacgr "&#x03CC;"> <!-- GREEK SMALL LETTER OMICRON WITH TONOS -->
+<!ENTITY Oacgr "&#x038C;"> <!-- GREEK CAPITAL LETTER OMICRON WITH TONOS -->
+<!ENTITY udigr "&#x03CB;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY Udigr "&#x03AB;"> <!-- GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY uacgr "&#x03CD;"> <!-- GREEK SMALL LETTER UPSILON WITH TONOS -->
+<!ENTITY Uacgr "&#x038E;"> <!-- GREEK CAPITAL LETTER UPSILON WITH TONOS -->
+<!ENTITY udiagr "&#x03B0;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -->
+<!ENTITY ohacgr "&#x03CE;"> <!-- GREEK SMALL LETTER OMEGA WITH TONOS -->
+<!ENTITY OHacgr "&#x038F;"> <!-- GREEK CAPITAL LETTER OMEGA WITH TONOS -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-grk3.ent b/tests/docbook/dtd/3.1.7/ent/iso-grk3.ent
new file mode 100644
index 00000000..a126ad38
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-grk3.ent
@@ -0,0 +1,48 @@
+<!-- iso-grk3.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY alpha "&#x03B1;"> <!-- -->
+<!ENTITY beta "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY gamma "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Gamma "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY gammad "&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY delta "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Delta "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY epsi "&#x220A;"> <!-- -->
+<!ENTITY epsiv "&#x03B5;"> <!-- -->
+<!ENTITY epsis "&#x220A;"> <!-- -->
+<!ENTITY zeta "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY eta "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY thetas "&#x03B8;"> <!-- -->
+<!ENTITY Theta "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY thetav "&#x03D1;"> <!-- -->
+<!ENTITY iota "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY kappa "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY kappav "&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY lambda "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lambda "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mu "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY nu "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY xi "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xi "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY pi "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY piv "&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY Pi "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rho "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY rhov "&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY sigma "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sigma "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sigmav "&#x03C2;"> <!-- -->
+<!ENTITY tau "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY upsi "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Upsi "&#x03D2;"> <!-- -->
+<!ENTITY phis "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY Phi "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY phiv "&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY chi "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY psi "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY Psi "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY omega "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY Omega "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-grk4.ent b/tests/docbook/dtd/3.1.7/ent/iso-grk4.ent
new file mode 100644
index 00000000..36aede02
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-grk4.ent
@@ -0,0 +1,48 @@
+<!-- iso-grk4.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY b.alpha "&#x03B1;"> <!-- -->
+<!ENTITY b.beta "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY b.gamma "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY b.Gamma "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY b.gammad "&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY b.delta "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY b.Delta "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY b.epsi "&#x03B5;"> <!-- -->
+<!ENTITY b.epsiv "&#x03B5;"> <!-- -->
+<!ENTITY b.epsis "&#x03B5;"> <!-- -->
+<!ENTITY b.zeta "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY b.eta "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY b.thetas "&#x03B8;"> <!-- -->
+<!ENTITY b.Theta "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY b.thetav "&#x03D1;"> <!-- -->
+<!ENTITY b.iota "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY b.kappa "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY b.kappav "&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY b.lambda "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY b.Lambda "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY b.mu "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY b.nu "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY b.xi "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY b.Xi "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY b.pi "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY b.Pi "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY b.piv "&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY b.rho "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY b.rhov "&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY b.sigma "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY b.Sigma "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY b.sigmav "&#x03C2;"> <!-- -->
+<!ENTITY b.tau "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY b.upsi "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY b.Upsi "&#x03D2;"> <!-- -->
+<!ENTITY b.phis "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY b.Phi "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY b.phiv "&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY b.chi "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY b.psi "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY b.Psi "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY b.omega "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY b.Omega "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-lat1.ent b/tests/docbook/dtd/3.1.7/ent/iso-lat1.ent
new file mode 100644
index 00000000..1252fe10
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-lat1.ent
@@ -0,0 +1,67 @@
+<!-- iso-lat1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacute "&#x00E1;"> <!-- LATIN SMALL LETTER A WITH ACUTE -->
+<!ENTITY Aacute "&#x00C1;"> <!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+<!ENTITY acirc "&#x00E2;"> <!-- LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY Acirc "&#x00C2;"> <!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY agrave "&#x00E0;"> <!-- LATIN SMALL LETTER A WITH GRAVE -->
+<!ENTITY Agrave "&#x00C0;"> <!-- LATIN CAPITAL LETTER A WITH GRAVE -->
+<!ENTITY aring "&#x00E5;"> <!-- LATIN SMALL LETTER A WITH RING ABOVE -->
+<!ENTITY Aring "&#x00C5;"> <!-- LATIN CAPITAL LETTER A WITH RING ABOVE -->
+<!ENTITY atilde "&#x00E3;"> <!-- LATIN SMALL LETTER A WITH TILDE -->
+<!ENTITY Atilde "&#x00C3;"> <!-- LATIN CAPITAL LETTER A WITH TILDE -->
+<!ENTITY auml "&#x00E4;"> <!-- LATIN SMALL LETTER A WITH DIAERESIS -->
+<!ENTITY Auml "&#x00C4;"> <!-- LATIN CAPITAL LETTER A WITH DIAERESIS -->
+<!ENTITY aelig "&#x00E6;"> <!-- LATIN SMALL LETTER AE -->
+<!ENTITY AElig "&#x00C6;"> <!-- LATIN CAPITAL LETTER AE -->
+<!ENTITY ccedil "&#x00E7;"> <!-- LATIN SMALL LETTER C WITH CEDILLA -->
+<!ENTITY Ccedil "&#x00C7;"> <!-- LATIN CAPITAL LETTER C WITH CEDILLA -->
+<!ENTITY eth "&#x00D0;"> <!-- LATIN SMALL LETTER ETH -->
+<!ENTITY ETH "&#x00F0;"> <!-- LATIN CAPITAL LETTER ETH -->
+<!ENTITY eacute "&#x00E9;"> <!-- LATIN SMALL LETTER E WITH ACUTE -->
+<!ENTITY Eacute "&#x00C9;"> <!-- LATIN CAPITAL LETTER E WITH ACUTE -->
+<!ENTITY ecirc "&#x00EA;"> <!-- LATIN SMALL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY Ecirc "&#x00CA;"> <!-- LATIN CAPITAL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY egrave "&#x00E8;"> <!-- LATIN SMALL LETTER E WITH GRAVE -->
+<!ENTITY Egrave "&#x00C8;"> <!-- LATIN CAPITAL LETTER E WITH GRAVE -->
+<!ENTITY euml "&#x00EB;"> <!-- LATIN SMALL LETTER E WITH DIAERESIS -->
+<!ENTITY Euml "&#x00CB;"> <!-- LATIN CAPITAL LETTER E WITH DIAERESIS -->
+<!ENTITY iacute "&#x00ED;"> <!-- LATIN SMALL LETTER I WITH ACUTE -->
+<!ENTITY Iacute "&#x00CD;"> <!-- LATIN CAPITAL LETTER I WITH ACUTE -->
+<!ENTITY icirc "&#x00EE;"> <!-- LATIN SMALL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY Icirc "&#x00CE;"> <!-- LATIN CAPITAL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY igrave "&#x00EC;"> <!-- LATIN SMALL LETTER I WITH GRAVE -->
+<!ENTITY Igrave "&#x00CC;"> <!-- LATIN CAPITAL LETTER I WITH GRAVE -->
+<!ENTITY iuml "&#x00EF;"> <!-- LATIN SMALL LETTER I WITH DIAERESIS -->
+<!ENTITY Iuml "&#x00CF;"> <!-- LATIN CAPITAL LETTER I WITH DIAERESIS -->
+<!ENTITY ntilde "&#x00F1;"> <!-- LATIN SMALL LETTER N WITH TILDE -->
+<!ENTITY Ntilde "&#x00D1;"> <!-- LATIN CAPITAL LETTER N WITH TILDE -->
+<!ENTITY oacute "&#x00F3;"> <!-- LATIN SMALL LETTER O WITH ACUTE -->
+<!ENTITY Oacute "&#x00D3;"> <!-- LATIN CAPITAL LETTER O WITH ACUTE -->
+<!ENTITY ocirc "&#x00F4;"> <!-- LATIN SMALL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY Ocirc "&#x00D4;"> <!-- LATIN CAPITAL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY ograve "&#x00F2;"> <!-- LATIN SMALL LETTER O WITH GRAVE -->
+<!ENTITY Ograve "&#x00D2;"> <!-- LATIN CAPITAL LETTER O WITH GRAVE -->
+<!ENTITY oslash "&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY Oslash "&#x00D8;"> <!-- LATIN CAPITAL LETTER O WITH STROKE -->
+<!ENTITY otilde "&#x00F5;"> <!-- LATIN SMALL LETTER O WITH TILDE -->
+<!ENTITY Otilde "&#x00D5;"> <!-- LATIN CAPITAL LETTER O WITH TILDE -->
+<!ENTITY ouml "&#x00F6;"> <!-- LATIN SMALL LETTER O WITH DIAERESIS -->
+<!ENTITY Ouml "&#x00D6;"> <!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
+<!ENTITY szlig "&#x00DF;"> <!-- LATIN SMALL LETTER SHARP S -->
+<!ENTITY thorn "&#x00FE;"> <!-- LATIN SMALL LETTER THORN -->
+<!ENTITY THORN "&#x00DE;"> <!-- LATIN CAPITAL LETTER THORN -->
+<!ENTITY uacute "&#x00FA;"> <!-- LATIN SMALL LETTER U WITH ACUTE -->
+<!ENTITY Uacute "&#x00DA;"> <!-- LATIN CAPITAL LETTER U WITH ACUTE -->
+<!ENTITY ucirc "&#x00DB;"> <!-- LATIN SMALL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY Ucirc "&#x00FB;"> <!-- LATIN CAPITAL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY ugrave "&#x00F9;"> <!-- LATIN SMALL LETTER U WITH GRAVE -->
+<!ENTITY Ugrave "&#x00D9;"> <!-- LATIN CAPITAL LETTER U WITH GRAVE -->
+<!ENTITY uuml "&#x00FC;"> <!-- LATIN SMALL LETTER U WITH DIAERESIS -->
+<!ENTITY Uuml "&#x00DC;"> <!-- LATIN CAPITAL LETTER U WITH DIAERESIS -->
+<!ENTITY yacute "&#x00FD;"> <!-- LATIN SMALL LETTER Y WITH ACUTE -->
+<!ENTITY Yacute "&#x00DD;"> <!-- LATIN CAPITAL LETTER Y WITH ACUTE -->
+<!ENTITY yuml "&#x00FF;"> <!-- LATIN SMALL LETTER Y WITH DIAERESIS -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-lat2.ent b/tests/docbook/dtd/3.1.7/ent/iso-lat2.ent
new file mode 100644
index 00000000..4b0122e1
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-lat2.ent
@@ -0,0 +1,126 @@
+<!-- iso-lat2.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY abreve "&#x0103;"> <!-- LATIN SMALL LETTER A WITH BREVE -->
+<!ENTITY Abreve "&#x0102;"> <!-- LATIN CAPITAL LETTER A WITH BREVE -->
+<!ENTITY amacr "&#x0101;"> <!-- LATIN SMALL LETTER A WITH MACRON -->
+<!ENTITY Amacr "&#x0100;"> <!-- LATIN CAPITAL LETTER A WITH MACRON -->
+<!ENTITY aogon "&#x0105;"> <!-- LATIN SMALL LETTER A WITH OGONEK -->
+<!ENTITY Aogon "&#x0104;"> <!-- LATIN CAPITAL LETTER A WITH OGONEK -->
+<!ENTITY cacute "&#x0107;"> <!-- LATIN SMALL LETTER C WITH ACUTE -->
+<!ENTITY Cacute "&#x0106;"> <!-- LATIN CAPITAL LETTER C WITH ACUTE -->
+<!ENTITY ccaron "&#x010D;"> <!-- LATIN SMALL LETTER C WITH CARON -->
+<!ENTITY Ccaron "&#x010C;"> <!-- LATIN CAPITAL LETTER C WITH CARON -->
+<!ENTITY ccirc "&#x0109;"> <!-- LATIN SMALL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY Ccirc "&#x0108;"> <!-- LATIN CAPITAL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY cdot "&#x22C5;"> <!-- DOT OPERATOR -->
+<!ENTITY Cdot "&#x010A;"> <!-- LATIN CAPITAL LETTER C WITH DOT ABOVE -->
+<!ENTITY dcaron "&#x010F;"> <!-- LATIN SMALL LETTER D WITH CARON -->
+<!ENTITY Dcaron "&#x010E;"> <!-- LATIN CAPITAL LETTER D WITH CARON -->
+<!ENTITY dstrok "&#x0111;"> <!-- LATIN SMALL LETTER D WITH STROKE -->
+<!ENTITY Dstrok "&#x0110;"> <!-- LATIN CAPITAL LETTER D WITH STROKE -->
+<!ENTITY ecaron "&#x011B;"> <!-- LATIN SMALL LETTER E WITH CARON -->
+<!ENTITY Ecaron "&#x011A;"> <!-- LATIN CAPITAL LETTER E WITH CARON -->
+<!ENTITY edot "&#x0117;"> <!-- LATIN SMALL LETTER E WITH DOT ABOVE -->
+<!ENTITY Edot "&#x0116;"> <!-- LATIN CAPITAL LETTER E WITH DOT ABOVE -->
+<!ENTITY emacr "&#x0113;"> <!-- LATIN SMALL LETTER E WITH MACRON -->
+<!ENTITY Emacr "&#x0112;"> <!-- LATIN CAPITAL LETTER E WITH MACRON -->
+<!ENTITY eogon "&#x0119;"> <!-- LATIN SMALL LETTER E WITH OGONEK -->
+<!ENTITY Eogon "&#x0118;"> <!-- LATIN CAPITAL LETTER E WITH OGONEK -->
+<!ENTITY gacute "&#x01F5;"> <!-- LATIN SMALL LETTER G WITH ACUTE -->
+<!ENTITY gbreve "&#x011F;"> <!-- LATIN SMALL LETTER G WITH BREVE -->
+<!ENTITY Gbreve "&#x011E;"> <!-- LATIN CAPITAL LETTER G WITH BREVE -->
+<!ENTITY Gcedil "&#x0122;"> <!-- LATIN CAPITAL LETTER G WITH CEDILLA -->
+<!ENTITY gcirc "&#x011D;"> <!-- LATIN SMALL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY Gcirc "&#x011C;"> <!-- LATIN CAPITAL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY gdot "&#x0121;"> <!-- LATIN SMALL LETTER G WITH DOT ABOVE -->
+<!ENTITY Gdot "&#x0120;"> <!-- LATIN CAPITAL LETTER G WITH DOT ABOVE -->
+<!ENTITY hcirc "&#x0125;"> <!-- LATIN SMALL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY Hcirc "&#x0124;"> <!-- LATIN CAPITAL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY hstrok "&#x0127;"> <!-- LATIN SMALL LETTER H WITH STROKE -->
+<!ENTITY Hstrok "&#x0126;"> <!-- LATIN CAPITAL LETTER H WITH STROKE -->
+<!ENTITY Idot "&#x0130;"> <!-- LATIN CAPITAL LETTER I WITH DOT ABOVE -->
+<!ENTITY Imacr "&#x012A;"> <!-- LATIN CAPITAL LETTER I WITH MACRON -->
+<!ENTITY imacr "&#x012B;"> <!-- LATIN SMALL LETTER I WITH MACRON -->
+<!ENTITY ijlig "&#x0133;"> <!-- LATIN SMALL LIGATURE IJ -->
+<!ENTITY IJlig "&#x0132;"> <!-- LATIN CAPITAL LIGATURE IJ -->
+<!ENTITY inodot "&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!ENTITY iogon "&#x012F;"> <!-- LATIN SMALL LETTER I WITH OGONEK -->
+<!ENTITY Iogon "&#x012E;"> <!-- LATIN CAPITAL LETTER I WITH OGONEK -->
+<!ENTITY itilde "&#x0129;"> <!-- LATIN SMALL LETTER I WITH TILDE -->
+<!ENTITY Itilde "&#x0128;"> <!-- LATIN CAPITAL LETTER I WITH TILDE -->
+<!ENTITY jcirc "&#x0135;"> <!-- LATIN SMALL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY Jcirc "&#x0134;"> <!-- LATIN CAPITAL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY kcedil "&#x0137;"> <!-- LATIN SMALL LETTER K WITH CEDILLA -->
+<!ENTITY Kcedil "&#x0136;"> <!-- LATIN CAPITAL LETTER K WITH CEDILLA -->
+<!ENTITY kgreen "&#x0138;"> <!-- LATIN SMALL LETTER KRA -->
+<!ENTITY lacute "&#x013A;"> <!-- LATIN SMALL LETTER L WITH ACUTE -->
+<!ENTITY Lacute "&#x0139;"> <!-- LATIN CAPITAL LETTER L WITH ACUTE -->
+<!ENTITY lcaron "&#x013E;"> <!-- LATIN SMALL LETTER L WITH CARON -->
+<!ENTITY Lcaron "&#x013D;"> <!-- LATIN CAPITAL LETTER L WITH CARON -->
+<!ENTITY lcedil "&#x013C;"> <!-- LATIN SMALL LETTER L WITH CEDILLA -->
+<!ENTITY Lcedil "&#x013B;"> <!-- LATIN CAPITAL LETTER L WITH CEDILLA -->
+<!ENTITY lmidot "&#x0140;"> <!-- LATIN SMALL LETTER L WITH MIDDLE DOT -->
+<!ENTITY Lmidot "&#x013F;"> <!-- LATIN CAPITAL LETTER L WITH MIDDLE DOT -->
+<!ENTITY lstrok "&#x0142;"> <!-- LATIN SMALL LETTER L WITH STROKE -->
+<!ENTITY Lstrok "&#x0141;"> <!-- LATIN CAPITAL LETTER L WITH STROKE -->
+<!ENTITY nacute "&#x0144;"> <!-- LATIN SMALL LETTER N WITH ACUTE -->
+<!ENTITY Nacute "&#x0143;"> <!-- LATIN CAPITAL LETTER N WITH ACUTE -->
+<!ENTITY eng "&#x014B;"> <!-- LATIN SMALL LETTER ENG -->
+<!ENTITY ENG "&#x014A;"> <!-- LATIN CAPITAL LETTER ENG -->
+<!ENTITY napos "&#x0149;"> <!-- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -->
+<!ENTITY ncaron "&#x0148;"> <!-- LATIN SMALL LETTER N WITH CARON -->
+<!ENTITY Ncaron "&#x0147;"> <!-- LATIN CAPITAL LETTER N WITH CARON -->
+<!ENTITY ncedil "&#x0146;"> <!-- LATIN SMALL LETTER N WITH CEDILLA -->
+<!ENTITY Ncedil "&#x0145;"> <!-- LATIN CAPITAL LETTER N WITH CEDILLA -->
+<!ENTITY odblac "&#x0151;"> <!-- LATIN SMALL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Odblac "&#x0150;"> <!-- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Omacr "&#x014C;"> <!-- LATIN CAPITAL LETTER O WITH MACRON -->
+<!ENTITY omacr "&#x014D;"> <!-- LATIN SMALL LETTER O WITH MACRON -->
+<!ENTITY oelig "&#x0153;"> <!-- LATIN SMALL LIGATURE OE -->
+<!ENTITY OElig "&#x0152;"> <!-- LATIN CAPITAL LIGATURE OE -->
+<!ENTITY racute "&#x0155;"> <!-- LATIN SMALL LETTER R WITH ACUTE -->
+<!ENTITY Racute "&#x0154;"> <!-- LATIN CAPITAL LETTER R WITH ACUTE -->
+<!ENTITY rcaron "&#x0159;"> <!-- LATIN SMALL LETTER R WITH CARON -->
+<!ENTITY Rcaron "&#x0158;"> <!-- LATIN CAPITAL LETTER R WITH CARON -->
+<!ENTITY rcedil "&#x0157;"> <!-- LATIN SMALL LETTER R WITH CEDILLA -->
+<!ENTITY Rcedil "&#x0156;"> <!-- LATIN CAPITAL LETTER R WITH CEDILLA -->
+<!ENTITY sacute "&#x015B;"> <!-- LATIN SMALL LETTER S WITH ACUTE -->
+<!ENTITY Sacute "&#x015A;"> <!-- LATIN CAPITAL LETTER S WITH ACUTE -->
+<!ENTITY scaron "&#x0161;"> <!-- LATIN SMALL LETTER S WITH CARON -->
+<!ENTITY Scaron "&#x0160;"> <!-- LATIN CAPITAL LETTER S WITH CARON -->
+<!ENTITY scedil "&#x015F;"> <!-- LATIN SMALL LETTER S WITH CEDILLA -->
+<!ENTITY Scedil "&#x015E;"> <!-- LATIN CAPITAL LETTER S WITH CEDILLA -->
+<!ENTITY scirc "&#x015D;"> <!-- LATIN SMALL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY Scirc "&#x015C;"> <!-- LATIN CAPITAL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY tcaron "&#x0165;"> <!-- LATIN SMALL LETTER T WITH CARON -->
+<!ENTITY Tcaron "&#x0164;"> <!-- LATIN CAPITAL LETTER T WITH CARON -->
+<!ENTITY tcedil "&#x0163;"> <!-- LATIN SMALL LETTER T WITH CEDILLA -->
+<!ENTITY Tcedil "&#x0162;"> <!-- LATIN CAPITAL LETTER T WITH CEDILLA -->
+<!ENTITY tstrok "&#x0167;"> <!-- LATIN SMALL LETTER T WITH STROKE -->
+<!ENTITY Tstrok "&#x0166;"> <!-- LATIN CAPITAL LETTER T WITH STROKE -->
+<!ENTITY ubreve "&#x016D;"> <!-- LATIN SMALL LETTER U WITH BREVE -->
+<!ENTITY Ubreve "&#x016C;"> <!-- LATIN CAPITAL LETTER U WITH BREVE -->
+<!ENTITY udblac "&#x0171;"> <!-- LATIN SMALL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY Udblac "&#x0170;"> <!-- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY umacr "&#x016B;"> <!-- LATIN SMALL LETTER U WITH MACRON -->
+<!ENTITY Umacr "&#x016A;"> <!-- LATIN CAPITAL LETTER U WITH MACRON -->
+<!ENTITY uogon "&#x0173;"> <!-- LATIN SMALL LETTER U WITH OGONEK -->
+<!ENTITY Uogon "&#x0172;"> <!-- LATIN CAPITAL LETTER U WITH OGONEK -->
+<!ENTITY uring "&#x016F;"> <!-- LATIN SMALL LETTER U WITH RING ABOVE -->
+<!ENTITY Uring "&#x016E;"> <!-- LATIN CAPITAL LETTER U WITH RING ABOVE -->
+<!ENTITY utilde "&#x0169;"> <!-- LATIN SMALL LETTER U WITH TILDE -->
+<!ENTITY Utilde "&#x0168;"> <!-- LATIN CAPITAL LETTER U WITH TILDE -->
+<!ENTITY wcirc "&#x0175;"> <!-- LATIN SMALL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY Wcirc "&#x0174;"> <!-- LATIN CAPITAL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY ycirc "&#x0177;"> <!-- LATIN SMALL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Ycirc "&#x0176;"> <!-- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Yuml "&#x0178;"> <!-- LATIN CAPITAL LETTER Y WITH DIAERESIS -->
+<!ENTITY zacute "&#x017A;"> <!-- LATIN SMALL LETTER Z WITH ACUTE -->
+<!ENTITY Zacute "&#x0179;"> <!-- LATIN CAPITAL LETTER Z WITH ACUTE -->
+<!ENTITY zcaron "&#x017E;"> <!-- LATIN SMALL LETTER Z WITH CARON -->
+<!ENTITY Zcaron "&#x017D;"> <!-- LATIN CAPITAL LETTER Z WITH CARON -->
+<!ENTITY zdot "&#x017C;"> <!-- LATIN SMALL LETTER Z WITH DOT ABOVE -->
+<!ENTITY Zdot "&#x017B;"> <!-- LATIN CAPITAL LETTER Z WITH DOT ABOVE -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-num.ent b/tests/docbook/dtd/3.1.7/ent/iso-num.ent
new file mode 100644
index 00000000..43bed833
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-num.ent
@@ -0,0 +1,81 @@
+<!-- iso-num.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY half "&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac12 "&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac14 "&#x00BC;"> <!-- VULGAR FRACTION ONE QUARTER -->
+<!ENTITY frac34 "&#x00BE;"> <!-- VULGAR FRACTION THREE QUARTERS -->
+<!ENTITY frac18 "&#x215B;"> <!-- -->
+<!ENTITY frac38 "&#x215C;"> <!-- -->
+<!ENTITY frac58 "&#x215D;"> <!-- -->
+<!ENTITY frac78 "&#x215E;"> <!-- -->
+<!ENTITY sup1 "&#x00B9;"> <!-- SUPERSCRIPT ONE -->
+<!ENTITY sup2 "&#x00B2;"> <!-- SUPERSCRIPT TWO -->
+<!ENTITY sup3 "&#x00B3;"> <!-- SUPERSCRIPT THREE -->
+<!ENTITY plus "&#x002B;"> <!-- PLUS SIGN -->
+<!ENTITY plusmn "&#x00B1;"> <!-- PLUS-MINUS SIGN -->
+<!-- predeclared in XML <!ENTITY lt "&#x003C;"--> <!-- LESS-THAN SIGN -->
+<!ENTITY equals "&#x003D;"> <!-- EQUALS SIGN -->
+<!ENTITY gt "&#x003E;"> <!-- GREATER-THAN SIGN -->
+<!ENTITY divide "&#x00F7;"> <!-- DIVISION SIGN -->
+<!ENTITY times "&#x00D7;"> <!-- MULTIPLICATION SIGN -->
+<!ENTITY curren "&#x00A4;"> <!-- CURRENCY SIGN -->
+<!ENTITY pound "&#x00A3;"> <!-- POUND SIGN -->
+<!ENTITY dollar "&#x0024;"> <!-- DOLLAR SIGN -->
+<!ENTITY cent "&#x00A2;"> <!-- CENT SIGN -->
+<!ENTITY yen "&#x00A5;"> <!-- YEN SIGN -->
+<!ENTITY num "&#x0023;"> <!-- NUMBER SIGN -->
+<!ENTITY percnt "&#x0025;"> <!-- PERCENT SIGN -->
+<!-- predeclared in XML <!ENTITY amp "&#x0026;"--> <!-- AMPERSAND -->
+<!ENTITY ast "&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY commat "&#x0040;"> <!-- COMMERCIAL AT -->
+<!ENTITY lsqb "&#x005B;"> <!-- LEFT SQUARE BRACKET -->
+<!ENTITY bsol "&#x005C;"> <!-- REVERSE SOLIDUS -->
+<!ENTITY rsqb "&#x005D;"> <!-- RIGHT SQUARE BRACKET -->
+<!ENTITY lcub "&#x007B;"> <!-- LEFT CURLY BRACKET -->
+<!ENTITY horbar "&#x2015;"> <!-- HORIZONTAL BAR -->
+<!ENTITY verbar "&#x007C;"> <!-- VERTICAL LINE -->
+<!ENTITY rcub "&#x007D;"> <!-- RIGHT CURLY BRACKET -->
+<!ENTITY micro "&#x00B5;"> <!-- MICRO SIGN -->
+<!ENTITY ohm "&#x2126;"> <!-- OHM SIGN -->
+<!ENTITY deg "&#x00B0;"> <!-- DEGREE SIGN -->
+<!ENTITY ordm "&#x00BA;"> <!-- MASCULINE ORDINAL INDICATOR -->
+<!ENTITY ordf "&#x00AA;"> <!-- FEMININE ORDINAL INDICATOR -->
+<!ENTITY sect "&#x00A7;"> <!-- SECTION SIGN -->
+<!ENTITY para "&#x00B6;"> <!-- PILCROW SIGN -->
+<!ENTITY middot "&#x00B7;"> <!-- MIDDLE DOT -->
+<!ENTITY larr "&#x2190;"> <!-- LEFTWARDS DOUBLE ARROW -->
+<!ENTITY rarr "&#x2192;"> <!-- RIGHTWARDS DOUBLE ARROW -->
+<!ENTITY uarr "&#x2191;"> <!-- UPWARDS ARROW -->
+<!ENTITY darr "&#x2193;"> <!-- DOWNWARDS ARROW -->
+<!ENTITY copy "&#x00A9;"> <!-- COPYRIGHT SIGN -->
+<!ENTITY reg "&#x00AF;"> <!-- MACRON -->
+<!ENTITY trade "&#x2122;"> <!-- TRADE MARK SIGN -->
+<!ENTITY brvbar "&#x00A6;"> <!-- BROKEN BAR -->
+<!ENTITY not "&#x00AC;"> <!-- NOT SIGN -->
+<!ENTITY sung "&#x2669;"> <!-- -->
+<!ENTITY excl "&#x0021;"> <!-- EXCLAMATION MARK -->
+<!ENTITY iexcl "&#x00A1;"> <!-- INVERTED EXCLAMATION MARK -->
+<!ENTITY quot "&#x0022;"> <!-- QUOTATION MARK -->
+<!ENTITY apos "&#x0027;"> <!-- APOSTROPHE -->
+<!ENTITY lpar "&#x0028;"> <!-- LEFT PARENTHESIS -->
+<!ENTITY rpar "&#x0029;"> <!-- RIGHT PARENTHESIS -->
+<!ENTITY comma "&#x002C;"> <!-- COMMA -->
+<!ENTITY lowbar "&#x005F;"> <!-- LOW LINE -->
+<!ENTITY hyphen "&#xE4F8;"> <!-- -->
+<!ENTITY period "&#x002E;"> <!-- FULL STOP -->
+<!ENTITY sol "&#x002F;"> <!-- SOLIDUS -->
+<!ENTITY colon "&#x003A;"> <!-- COLON -->
+<!ENTITY semi "&#x003B;"> <!-- SEMICOLON -->
+<!ENTITY quest "&#x003F;"> <!-- QUESTION MARK -->
+<!ENTITY iquest "&#x00BF;"> <!-- INVERTED QUESTION MARK -->
+<!ENTITY laquo "&#x00AB;"> <!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY raquo "&#x00BB;"> <!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY lsquo "&#x2018;"> <!-- -->
+<!ENTITY rsquo "&#x2019;"> <!-- RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY ldquo "&#x201C;"> <!-- -->
+<!ENTITY rdquo "&#x201D;"> <!-- RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY nbsp "&#x00A0;"> <!-- NO-BREAK SPACE -->
+<!ENTITY shy "&#x00AD;"> <!-- SOFT HYPHEN -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-pub.ent b/tests/docbook/dtd/3.1.7/ent/iso-pub.ent
new file mode 100644
index 00000000..addb01e9
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-pub.ent
@@ -0,0 +1,90 @@
+<!-- iso-pub.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY emsp "&#x2003;"> <!-- EM SPACE -->
+<!ENTITY ensp "&#x2002;"> <!-- EN SPACE -->
+<!ENTITY emsp13 "&#x2004;"> <!-- THREE-PER-EM SPACE -->
+<!ENTITY emsp14 "&#x2005;"> <!-- FOUR-PER-EM SPACE -->
+<!ENTITY numsp "&#x2007;"> <!-- FIGURE SPACE -->
+<!ENTITY puncsp "&#x2008;"> <!-- PUNCTUATION SPACE -->
+<!ENTITY thinsp "&#x2009;"> <!-- THIN SPACE -->
+<!ENTITY hairsp "&#x200A;"> <!-- HAIR SPACE -->
+<!ENTITY mdash "&#x2014;"> <!-- EM DASH -->
+<!ENTITY ndash "&#x2013;"> <!-- EN DASH -->
+<!ENTITY dash "&#x2010;"> <!-- HYPHEN -->
+<!ENTITY blank "&#x2423;"> <!-- OPEN BOX -->
+<!ENTITY hellip "&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY nldr "&#x2025;"> <!-- TWO DOT LEADER -->
+<!ENTITY frac13 "&#x2153;"> <!-- VULGAR FRACTION ONE THIRD -->
+<!ENTITY frac23 "&#x2154;"> <!-- VULGAR FRACTION TWO THIRDS -->
+<!ENTITY frac15 "&#x2155;"> <!-- VULGAR FRACTION ONE FIFTH -->
+<!ENTITY frac25 "&#x2156;"> <!-- VULGAR FRACTION TWO FIFTHS -->
+<!ENTITY frac35 "&#x2157;"> <!-- VULGAR FRACTION THREE FIFTHS -->
+<!ENTITY frac45 "&#x2158;"> <!-- VULGAR FRACTION FOUR FIFTHS -->
+<!ENTITY frac16 "&#x2159;"> <!-- VULGAR FRACTION ONE SIXTH -->
+<!ENTITY frac56 "&#x215A;"> <!-- VULGAR FRACTION FIVE SIXTHS -->
+<!ENTITY incare "&#x2105;"> <!-- CARE OF -->
+<!ENTITY block "&#x2588;"> <!-- FULL BLOCK -->
+<!ENTITY uhblk "&#x2580;"> <!-- UPPER HALF BLOCK -->
+<!ENTITY lhblk "&#x2584;"> <!-- LOWER HALF BLOCK -->
+<!ENTITY blk14 "&#x2591;"> <!-- LIGHT SHADE -->
+<!ENTITY blk12 "&#x2592;"> <!-- MEDIUM SHADE -->
+<!ENTITY blk34 "&#x2593;"> <!-- DARK SHADE -->
+<!ENTITY marker "&#x25AE;"> <!-- BLACK VERTICAL RECTANGLE -->
+<!ENTITY cir "&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY squ "&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY rect "&#x25AD;"> <!-- WHITE RECTANGLE -->
+<!ENTITY utri "&#x25B5;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY dtri "&#x25BF;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY star "&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY bull "&#x2022;"> <!-- BULLET -->
+<!ENTITY squf "&#x25AA;"> <!-- -->
+<!ENTITY utrif "&#x25B4;"> <!-- BLACK UP-POINTING TRIANGLE -->
+<!ENTITY dtrif "&#x25BE;"> <!-- BLACK DOWN-POINTING TRIANGLE -->
+<!ENTITY ltrif "&#x25C2;"> <!-- BLACK LEFT-POINTING TRIANGLE -->
+<!ENTITY rtrif "&#x25B8;"> <!-- BLACK RIGHT-POINTING TRIANGLE -->
+<!ENTITY clubs "&#x2663;"> <!-- BLACK CLUB SUIT -->
+<!ENTITY diams "&#x2666;"> <!-- BLACK DIAMOND SUIT -->
+<!ENTITY hearts "&#x2665;"> <!-- BLACK HEART SUIT -->
+<!ENTITY spades "&#x2660;"> <!-- BLACK SPADE SUIT -->
+<!ENTITY malt "&#x2720;"> <!-- MALTESE CROSS -->
+<!ENTITY dagger "&#x2020;"> <!-- DAGGER -->
+<!ENTITY Dagger "&#x2021;"> <!-- DOUBLE DAGGER -->
+<!ENTITY check "&#x2713;"> <!-- CHECK MARK -->
+<!ENTITY cross "&#x2717;"> <!-- BALLOT X -->
+<!ENTITY sharp "&#x266F;"> <!-- MUSIC SHARP SIGN -->
+<!ENTITY flat "&#x266D;"> <!-- MUSIC FLAT SIGN -->
+<!ENTITY male "&#x2642;"> <!-- MALE SIGN -->
+<!ENTITY female "&#x2640;"> <!-- -->
+<!ENTITY phone "&#x260E;"> <!-- TELEPHONE SIGN -->
+<!ENTITY telrec "&#x2315;"> <!-- TELEPHONE RECORDER -->
+<!ENTITY copysr "&#x2117;"> <!-- SOUND RECORDING COPYRIGHT -->
+<!ENTITY caret "&#x2041;"> <!-- CARET -->
+<!ENTITY lsquor "&#x201A;"> <!-- SINGLE LOW-9 QUOTATION MARK -->
+<!ENTITY ldquor "&#x201E;"> <!-- DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY fflig "&#xFB00;"> <!-- -->
+<!ENTITY filig "&#xFB01;"> <!-- -->
+<!-- fjlig Unknown unicode character -->
+<!ENTITY ffilig "&#xFB03;"> <!-- -->
+<!ENTITY ffllig "&#xFB04;"> <!-- -->
+<!ENTITY fllig "&#xFB02;"> <!-- -->
+<!ENTITY mldr "&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY rdquor "&#x201C;"> <!-- -->
+<!ENTITY rsquor "&#x2018;"> <!-- -->
+<!ENTITY vellip "&#x22EE;"> <!-- -->
+<!ENTITY hybull "&#x2043;"> <!-- HYPHEN BULLET -->
+<!ENTITY loz "&#x25CA;"> <!-- LOZENGE -->
+<!ENTITY lozf "&#x2726;"> <!-- -->
+<!ENTITY ltri "&#x25C3;"> <!-- WHITE LEFT-POINTING TRIANGLE -->
+<!ENTITY rtri "&#x25B9;"> <!-- WHITE RIGHT-POINTING TRIANGLE -->
+<!ENTITY starf "&#x2605;"> <!-- BLACK STAR -->
+<!ENTITY natur "&#x266E;"> <!-- MUSIC NATURAL SIGN -->
+<!ENTITY rx "&#x211E;"> <!-- PRESCRIPTION TAKE -->
+<!ENTITY sext "&#x2736;"> <!-- SIX POINTED BLACK STAR -->
+<!ENTITY target "&#x2316;"> <!-- POSITION INDICATOR -->
+<!ENTITY dlcrop "&#x230D;"> <!-- BOTTOM LEFT CROP -->
+<!ENTITY drcrop "&#x230C;"> <!-- BOTTOM RIGHT CROP -->
+<!ENTITY ulcrop "&#x230F;"> <!-- TOP LEFT CROP -->
+<!ENTITY urcrop "&#x230E;"> <!-- TOP RIGHT CROP -->
diff --git a/tests/docbook/dtd/3.1.7/ent/iso-tech.ent b/tests/docbook/dtd/3.1.7/ent/iso-tech.ent
new file mode 100644
index 00000000..f4b90721
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/ent/iso-tech.ent
@@ -0,0 +1,67 @@
+<!-- iso-tech.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aleph "&#x2135;"> <!-- ALEF SYMBOL -->
+<!ENTITY and "&#x2227;"> <!-- -->
+<!ENTITY ang90 "&#x221F;"> <!-- RIGHT ANGLE -->
+<!ENTITY angsph "&#x2222;"> <!-- -->
+<!ENTITY ap "&#x2248;"> <!-- -->
+<!ENTITY becaus "&#x2235;"> <!-- BECAUSE -->
+<!ENTITY bottom "&#x22A5;"> <!-- -->
+<!ENTITY cap "&#x2229;"> <!-- -->
+<!ENTITY cong "&#x2245;"> <!-- -->
+<!ENTITY conint "&#x222E;"> <!-- -->
+<!ENTITY cup "&#x222A;"> <!-- -->
+<!ENTITY equiv "&#x2261;"> <!-- -->
+<!ENTITY exist "&#x2203;"> <!-- -->
+<!ENTITY forall "&#x2200;"> <!-- -->
+<!ENTITY fnof "&#x0192;"> <!-- LATIN SMALL LETTER F WITH HOOK -->
+<!ENTITY ge "&#x2265;"> <!-- GREATER-THAN OR EQUAL TO -->
+<!ENTITY iff "&#xE365;"> <!-- -->
+<!ENTITY infin "&#x221E;"> <!-- -->
+<!ENTITY int "&#x222B;"> <!-- -->
+<!ENTITY isin "&#x220A;"> <!-- -->
+<!ENTITY lang "&#x3008;"> <!-- -->
+<!ENTITY lArr "&#x21D0;"> <!-- LEFTWARDS ARROW -->
+<!ENTITY le "&#x2264;"> <!-- -->
+<!ENTITY minus "&#x2212;"> <!-- MINUS SIGN -->
+<!ENTITY mnplus "&#x2213;"> <!-- -->
+<!ENTITY nabla "&#x2207;"> <!-- NABLA -->
+<!ENTITY ne "&#x2260;"> <!-- -->
+<!ENTITY ni "&#x220D;"> <!-- -->
+<!ENTITY or "&#x2228;"> <!-- -->
+<!ENTITY par "&#x2225;"> <!-- PARALLEL TO -->
+<!ENTITY part "&#x2202;"> <!-- -->
+<!ENTITY permil "&#x2030;"> <!-- PER MILLE SIGN -->
+<!ENTITY perp "&#x22A5;"> <!-- -->
+<!ENTITY prime "&#x2032;"> <!-- PRIME -->
+<!ENTITY Prime "&#x2033;"> <!-- DOUBLE PRIME -->
+<!ENTITY prop "&#x221D;"> <!-- -->
+<!ENTITY radic "&#x221A;"> <!-- -->
+<!ENTITY rang "&#x3009;"> <!-- -->
+<!ENTITY rArr "&#x21D2;"> <!-- RIGHTWARDS ARROW -->
+<!ENTITY sim "&#x223C;"> <!-- -->
+<!ENTITY sime "&#x2243;"> <!-- -->
+<!ENTITY square "&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY sub "&#x2282;"> <!-- -->
+<!ENTITY sube "&#x2286;"> <!-- -->
+<!ENTITY sup "&#x2283;"> <!-- -->
+<!ENTITY supe "&#x2287;"> <!-- -->
+<!ENTITY there4 "&#x2234;"> <!-- -->
+<!ENTITY Verbar "&#x2016;"> <!-- DOUBLE VERTICAL LINE -->
+<!ENTITY angst "&#x212B;"> <!-- ANGSTROM SIGN -->
+<!ENTITY bernou "&#x212C;"> <!-- SCRIPT CAPITAL B -->
+<!ENTITY compfn "&#x2218;"> <!-- RING OPERATOR -->
+<!ENTITY Dot "&#x0308;"> <!-- -->
+<!ENTITY DotDot "&#x20DC;"> <!-- COMBINING FOUR DOTS ABOVE -->
+<!ENTITY hamilt "&#x210B;"> <!-- SCRIPT CAPITAL H -->
+<!ENTITY lagran "&#x2112;"> <!-- SCRIPT CAPITAL L -->
+<!ENTITY lowast "&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY notin "&#x2209;"> <!-- -->
+<!ENTITY order "&#x2134;"> <!-- SCRIPT SMALL O -->
+<!ENTITY phmmat "&#x2133;"> <!-- SCRIPT CAPITAL M -->
+<!ENTITY tdot "&#x20DB;"> <!-- COMBINING THREE DOTS ABOVE -->
+<!ENTITY tprime "&#x2034;"> <!-- TRIPLE PRIME -->
+<!ENTITY wedgeq "&#x2259;"> <!-- ESTIMATES -->
diff --git a/tests/docbook/dtd/3.1.7/soextblx.dtd b/tests/docbook/dtd/3.1.7/soextblx.dtd
new file mode 100644
index 00000000..fe535add
--- /dev/null
+++ b/tests/docbook/dtd/3.1.7/soextblx.dtd
@@ -0,0 +1,307 @@
+<!-- XML EXCHANGE TABLE MODEL DECLARATION MODULE -->
+
+<!-- This set of declarations defines the XML version of the Exchange
+ Table Model as of the date shown in the Formal Public Identifier
+ (FPI) for this entity.
+
+ This set of declarations may be referred to using a public external
+ entity declaration and reference as shown in the following three
+ lines:
+
+ <!ENTITY % calstblx
+ PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN">
+ %calstblx;
+
+ If various parameter entities used within this set of declarations
+ are to be given non-default values, the appropriate declarations
+ should be given before calling in this package (i.e., before the
+ "%calstblx;" reference).
+-->
+
+<!-- The motivation for this XML version of the Exchange Table Model
+ is simply to create an XML version of the SGML Exchange Table
+ Model. By design, no effort has been made to "improve" the model.
+
+ This XML version incorporates the logical bare minimum changes
+ necessary to make the Exchange Table Model a valid XML DTD.
+-->
+
+<!-- The XML version of the Exchange Table Model differs from
+ the SGML version in the following ways:
+
+ The following parameter entities have been removed:
+
+ - tbl.table.excep, tbl.hdft.excep, tbl.row.excep, tbl.entry.excep
+ There are no exceptions in XML. The following normative statement
+ is made in lieu of exceptions: the exchange table model explicitly
+ forbids a table from occurring within another table. If the
+ content model of an entry includes a table element, then this
+ cannot be enforced by the DTD, but it is a deviation from the
+ exchange table model to include a table within a table.
+
+ - tbl.hdft.name, tbl.hdft.mdl, tbl.hdft.excep, tbl.hdft.att
+ The motivation for these elements was to change the table
+ header/footer elements. Since XML does not allow element declarations
+ to contain name groups, and the exchange table model does not
+ allow a table to contain footers, the continued presence of these
+ attributes seems unnecessary.
+
+ The following parameter entity has been added:
+
+ - tbl.thead.att
+ This entity parameterizes the attributes on thead. It replaces
+ the tbl.hdft.att parameter entity.
+
+ Other miscellaneous changes:
+
+ - Tag ommission indicators have been removed
+ - Comments have been removed from declarations
+ - NUMBER attributes have been changed to NMTOKEN
+ - NUTOKEN attributes have been to changed to NMTOKEN
+ - Removed the grouping characters around the content model
+ parameter entry for the 'entry' element. This is necessary
+ so that an entry can contain #PCDATA and be defined as an
+ optional, repeatable OR group beginning with #PCDATA.
+-->
+
+<!-- This entity includes a set of element and attribute declarations
+ that partially defines the Exchange table model. However, the model
+ is not well-defined without the accompanying natural language
+ description of the semantics (meanings) of these various elements,
+ attributes, and attribute values. The semantic writeup, also available
+ from SGML Open, should be used in conjunction with this entity.
+-->
+
+<!-- In order to use the Exchange table model, various parameter entity
+ declarations are required. A brief description is as follows:
+
+ ENTITY NAME WHERE USED WHAT IT IS
+
+ %yesorno In ATTLIST of: An attribute declared value
+ almost all elements for a "boolean" attribute
+
+ %paracon In content model of: The "text" (logical content)
+ <entry> of the model group for <entry>
+
+ %titles In content model of: The "title" part of the model
+ table element group for the table element
+
+ %tbl.table.name In declaration of: The name of the "table"
+ table element element
+
+ %tbl.table-titles.mdl In content model of: The model group for the title
+ table elements part of the content model for
+ table element
+
+ %tbl.table.mdl In content model of: The model group for the content
+ table elements model for table element,
+ often (and by default) defined
+ in terms of %tbl.table-titles.mdl
+ and tgroup
+
+ %tbl.table.att In ATTLIST of: Additional attributes on the
+ table element table element
+
+ %bodyatt In ATTLIST of: Additional attributes on the
+ table element table element (for backward
+ compatibility with the SGML
+ model)
+
+ %tbl.tgroup.mdl In content model of: The model group for the content
+ <tgroup> model for <tgroup>
+
+ %tbl.tgroup.att In ATTLIST of: Additional attributes on the
+ <tgroup> <tgroup> element
+
+ %tbl.thead.att In ATTLIST of: Additional attributes on the
+ <thead> <thead> element
+
+ %tbl.tbody.att In ATTLIST of: Additional attributes on the
+ <tbody> <tbody> element
+
+ %tbl.colspec.att In ATTLIST of: Additional attributes on the
+ <colspec> <colspec> element
+
+ %tbl.row.mdl In content model of: The model group for the content
+ <row> model for <row>
+
+ %tbl.row.att In ATTLIST of: Additional attributes on the
+ <row> <row> element
+
+ %tbl.entry.mdl In content model of: The model group for the content
+ <entry> model for <entry>
+
+ %tbl.entry.att In ATTLIST of: Additional attributes on the
+ <entry> <entry> element
+
+ This set of declarations will use the default definitions shown below
+ for any of these parameter entities that are not declared before this
+ set of declarations is referenced.
+-->
+
+<!-- These definitions are not directly related to the table model, but are
+ used in the default CALS table model and may be defined elsewhere (and
+ prior to the inclusion of this table module) in the referencing DTD. -->
+
+<!ENTITY % yesorno 'NMTOKEN'> <!-- no if zero(s), yes if any other value -->
+<!ENTITY % titles 'title?'>
+<!ENTITY % paracon '#PCDATA'> <!-- default for use in entry content -->
+
+<!--
+The parameter entities as defined below change and simplify the CALS table
+model as published (as part of the Example DTD) in MIL-HDBK-28001. The
+resulting simplified DTD has support from the SGML Open vendors and is
+therefore more interoperable among different systems.
+
+These following declarations provide the Exchange default definitions
+for these entities. However, these entities can be redefined (by giving
+the appropriate parameter entity declaration(s) prior to the reference
+to this Table Model declaration set entity) to fit the needs of the
+current application.
+
+Note, however, that changes may have significant effect on the ability to
+interchange table information. These changes may manifest themselves
+in useability, presentation, and possible structure information degradation.
+-->
+
+<!ENTITY % tbl.table.name "table">
+<!ENTITY % tbl.table-titles.mdl "%titles;,">
+<!ENTITY % tbl.table-main.mdl "tgroup+">
+<!ENTITY % tbl.table.mdl "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
+<!ENTITY % tbl.table.att "
+ pgwide %yesorno; #IMPLIED ">
+<!ENTITY % bodyatt "">
+<!ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody">
+<!ENTITY % tbl.tgroup.att "">
+<!ENTITY % tbl.thead.att "">
+<!ENTITY % tbl.tbody.att "">
+<!ENTITY % tbl.colspec.att "">
+<!ENTITY % tbl.row.mdl "entry+">
+<!ENTITY % tbl.row.att "">
+<!ENTITY % tbl.entry.mdl "(%paracon;)*">
+<!ENTITY % tbl.entry.att "">
+
+<!-- ===== Element and attribute declarations follow. ===== -->
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.table.name "table"
+ ENTITY % tbl.table-titles.mdl "%titles;,"
+ ENTITY % tbl.table.mdl "%tbl.table-titles; tgroup+"
+ ENTITY % tbl.table.att "
+ pgwide %yesorno; #IMPLIED "
+-->
+
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+
+<!ATTLIST %tbl.table.name;
+ frame (top|bottom|topbot|all|sides|none) #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ %tbl.table.att;
+ %bodyatt;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody"
+ ENTITY % tbl.tgroup.att ""
+-->
+
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+
+<!ATTLIST tgroup
+ cols NMTOKEN #REQUIRED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ %tbl.tgroup.att;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.colspec.att ""
+-->
+
+<!ELEMENT colspec EMPTY >
+
+<!ATTLIST colspec
+ colnum NMTOKEN #IMPLIED
+ colname NMTOKEN #IMPLIED
+ colwidth CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ %tbl.colspec.att;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.thead.att ""
+-->
+
+<!ELEMENT thead (row+)>
+
+<!ATTLIST thead
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.thead.att;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.tbody.att ""
+-->
+
+<!ELEMENT tbody (row+)>
+
+<!ATTLIST tbody
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.tbody.att;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.row.mdl "entry+"
+ ENTITY % tbl.row.att ""
+-->
+
+<!ELEMENT row (%tbl.row.mdl;)>
+
+<!ATTLIST row
+ rowsep %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.row.att;
+>
+
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % paracon "#PCDATA"
+ ENTITY % tbl.entry.mdl "(%paracon;)*"
+ ENTITY % tbl.entry.att ""
+-->
+
+<!ELEMENT entry %tbl.entry.mdl;>
+
+<!ATTLIST entry
+ colname NMTOKEN #IMPLIED
+ namest NMTOKEN #IMPLIED
+ nameend NMTOKEN #IMPLIED
+ morerows NMTOKEN #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.entry.att;
+>
diff --git a/tests/docbook/dtd/4.0/40chg.txt b/tests/docbook/dtd/4.0/40chg.txt
new file mode 100644
index 00000000..844efca8
--- /dev/null
+++ b/tests/docbook/dtd/4.0/40chg.txt
@@ -0,0 +1,51 @@
+18 May 2000
+
+Changes from DocBook V3.1 to DocBook XML V4.0:
+
+Global:
+
+- Broad changes required for XML compatibility
+- Added a *provisional* set of character entities based on the ISO
+ entity sets. The DocBook TC is not willing to accept the long-term
+ responsibility for defining and maintaining these sets. The TC
+ will ask OASIS to form a new TC for this purpose.
+
+Markup:
+
+- RFE 17: Added a common attribute 'Condition' for generic effectivity
+- RFE 38: The nav.class elements (ToC|LoT|Index|Glossary|Bibliography) are
+ now allowed at the beginning and end of components and sections
+- RFE 58: The 'optmult' and 'reqmult' attribute values have been
+ removed from Group
+- RFE 65: Added several class attribute values to Filename and SystemItem
+ at the request of the Linux community
+- RFE 73: Removed BookBiblio and SeriesInfo
+- RFE 81: Added SidebarInfo to Sidebar
+- RFE 87: Added 'xmlpi' and 'emptytag' as class values of SGMLTag
+- RFE 92: Added 'CO' to Synopsis and LiteralLayout
+- RFE 99: Added SimpleMsgEntry as an alternative to MsgEntry in order
+ to provide a simpler MsgSet construct
+- RFE 103: Added RevDescription as an alternative to RevRemark in
+ RevHistory; this allows longer descriptive text in a revision
+- RFE 104: Added 'Specification' to the list of document classes on Article
+- RFE 108: Allow admonitions in Answers
+- RFE 110: Allow a RevHistory on QandAEntry
+- RFE 115: Allow optional Title on OrderedList and ItemizedList
+- RFE 116: Added LineNumbering attribute to linespecific environments for
+ presentation of line numbers
+- Added a common attribute 'Security' for effectivity
+- Added synopsis markup for modern programming languages (e.g, object
+ oriented languages like Java, C++, and IDL)
+- Renamed DocInfo to PrefaceInfo, ChapterInfo, AppendixInfo, etc.
+
+Other:
+
+- RFE 88: Added PEs to include/ignore dbnotn.mod and dbcent.mod
+- RFE 102: Fixed some outstanding namecase problems
+- RFE 105: Added PNG notation
+- RFE 106: Removed some odd *.content PEs that interfered with
+ customization layers
+- RFE 109: Added FPI to content of dbgenent.mod (for consistency)
+- RFE 111: Added the Euro symbol
+- Fixed bug in cals-tbl.dtd; a model group was used for the element
+ declaration, but the attlist declaration used "Table" literally.
diff --git a/tests/docbook/dtd/4.0/Makefile.am b/tests/docbook/dtd/4.0/Makefile.am
new file mode 100644
index 00000000..f845f6c8
--- /dev/null
+++ b/tests/docbook/dtd/4.0/Makefile.am
@@ -0,0 +1,10 @@
+## Process this file with automake to produce Makefile.in
+
+EXTRA_DIST = \
+ 40chg.txt calstblx.dtd dbcentx.mod dbgenent.ent dbhierx.mod \
+ dbnotnx.mod dbpoolx.mod docbookx.dtd readme.txt soextblx.dtd \
+ ent/iso-amsa.ent ent/iso-amsb.ent ent/iso-amsc.ent ent/iso-amsn.ent \
+ ent/iso-amso.ent ent/iso-amsr.ent ent/iso-box.ent ent/iso-cyr1.ent \
+ ent/iso-cyr2.ent ent/iso-dia.ent ent/iso-grk1.ent ent/iso-grk2.ent \
+ ent/iso-grk3.ent ent/iso-grk4.ent ent/iso-lat1.ent ent/iso-lat2.ent \
+ ent/iso-num.ent ent/iso-pub.ent ent/iso-tech.ent
diff --git a/tests/docbook/dtd/4.0/calstblx.dtd b/tests/docbook/dtd/4.0/calstblx.dtd
new file mode 100755
index 00000000..023e6c55
--- /dev/null
+++ b/tests/docbook/dtd/4.0/calstblx.dtd
@@ -0,0 +1,199 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML CALS Table Model V4.0 .................................... -->
+<!-- File calstblx.mod .................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh and the Organization for the Advancement
+ of Structured Information Standards (OASIS).
+
+ This DTD is based on the CALS Table Model
+ PUBLIC "-//USA-DOD//DTD Table Model 951010//EN"
+
+ $Id$
+
+ Permission to use, copy, modify and distribute the DocBook XML DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook XML DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the definitions for the CALS Table Model
+ converted to XML.
+-->
+
+<!-- These definitions are not directly related to the table model, but are
+ used in the default CALS table model and are usually defined elsewhere
+ (and prior to the inclusion of this table module) in a CALS DTD. -->
+
+<!ENTITY % bodyatt "">
+<!ENTITY % secur "">
+
+<!-- no if zero(s),
+ yes if any other digits value -->
+
+<!ENTITY % yesorno 'CDATA'>
+<!ENTITY % titles 'title?'>
+
+<!-- default for use in entry content -->
+
+<!ENTITY % paracon '#PCDATA'>
+
+<!--
+The parameter entities as defined below provide the CALS table model
+as published (as part of the Example DTD) in MIL-HDBK-28001.
+
+These following declarations provide the CALS-compliant default definitions
+for these entities. However, these entities can and should be redefined
+(by giving the appropriate parameter entity declaration(s) prior to the
+reference to this Table Model declaration set entity) to fit the needs
+of the current application.
+-->
+
+<!ENTITY % tbl.table.name "(table|chart)">
+<!ENTITY % tbl.table-titles.mdl "%titles;,">
+<!ENTITY % tbl.table-main.mdl "(tgroup+|graphic+)">
+<!ENTITY % tbl.table.mdl "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
+<!ENTITY % tbl.table.att '
+ tabstyle CDATA #IMPLIED
+ tocentry %yesorno; #IMPLIED
+ shortentry %yesorno; #IMPLIED
+ orient (port|land) #IMPLIED
+ pgwide %yesorno; #IMPLIED '>
+<!ENTITY % tbl.tgroup.mdl "colspec*,spanspec*,thead?,tfoot?,tbody">
+<!ENTITY % tbl.tgroup.att '
+ tgroupstyle CDATA #IMPLIED '>
+<!ENTITY % tbl.hdft.mdl "colspec*,row+">
+<!ENTITY % tbl.row.mdl "(entry|entrytbl)+">
+<!ENTITY % tbl.entrytbl.mdl "colspec*,spanspec*,thead?,tbody">
+<!ENTITY % tbl.entry.mdl "(para|warning|caution|note|legend|%paracon;)*">
+<!-- ===== Element and attribute declarations follow. ===== -->
+
+<!ELEMENT table (%tbl.table.mdl;)>
+
+<!ATTLIST table
+ frame (top|bottom|topbot|all|sides|none) #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ %tbl.table.att;
+ %bodyatt;
+ %secur;
+>
+
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+
+<!ATTLIST tgroup
+ cols CDATA #REQUIRED
+ %tbl.tgroup.att;
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ %secur;
+>
+
+<!ELEMENT colspec EMPTY >
+
+<!ATTLIST colspec
+ colnum CDATA #IMPLIED
+ colname CDATA #IMPLIED
+ colwidth CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+>
+
+<!ELEMENT spanspec EMPTY >
+
+<!ATTLIST spanspec
+ namest CDATA #REQUIRED
+ nameend CDATA #REQUIRED
+ spanname CDATA #REQUIRED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+>
+
+<!ELEMENT thead (%tbl.hdft.mdl;)>
+<!ATTLIST thead
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!ELEMENT tfoot (%tbl.hdft.mdl;)>
+<!ATTLIST tfoot
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!ELEMENT tbody (row+)>
+
+<!ATTLIST tbody
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!ELEMENT row (%tbl.row.mdl;)>
+
+<!ATTLIST row
+ rowsep %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!ELEMENT entrytbl (%tbl.entrytbl.mdl;)>
+
+<!ATTLIST entrytbl
+ cols CDATA #REQUIRED
+ %tbl.tgroup.att;
+ colname CDATA #IMPLIED
+ spanname CDATA #IMPLIED
+ namest CDATA #IMPLIED
+ nameend CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ %secur;
+>
+
+<!ELEMENT entry (%tbl.entry.mdl;)*>
+
+<!ATTLIST entry
+ colname CDATA #IMPLIED
+ namest CDATA #IMPLIED
+ nameend CDATA #IMPLIED
+ spanname CDATA #IMPLIED
+ morerows CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ rotate %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!-- End of DocBook XML CALS Table Model V4.0 ............................. -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/4.0/dbcentx.mod b/tests/docbook/dtd/4.0/dbcentx.mod
new file mode 100755
index 00000000..ab34da38
--- /dev/null
+++ b/tests/docbook/dtd/4.0/dbcentx.mod
@@ -0,0 +1,204 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML character entities module V4.0 ........................... -->
+<!-- File dbcentx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, and the Organization for the Advancement
+ of Structured Information Standards (OASIS).
+
+ $Id$
+
+ Permission to use, copy, modify and distribute the DocBook XML DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook XML DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the entity declarations for the standard ISO
+ entity sets used by DocBook.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbcent PUBLIC
+ "-//OASIS//ENTITIES DocBook XML Character Entities V4.0//EN"
+ "dbcentx.mod">
+ %dbcent;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+
+<!-- ...................................................................... -->
+
+<!ENTITY % ISOamsa.module "INCLUDE">
+<![%ISOamsa.module;[
+<!ENTITY % ISOamsa PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
+"ent/iso-amsa.ent">
+%ISOamsa;
+<!--end of ISOamsa.module-->]]>
+
+<!ENTITY % ISOamsb.module "INCLUDE">
+<![%ISOamsb.module;[
+<!ENTITY % ISOamsb PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
+"ent/iso-amsb.ent">
+%ISOamsb;
+<!--end of ISOamsb.module-->]]>
+
+<!ENTITY % ISOamsc.module "INCLUDE">
+<![%ISOamsc.module;[
+<!ENTITY % ISOamsc PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
+"ent/iso-amsc.ent">
+%ISOamsc;
+<!--end of ISOamsc.module-->]]>
+
+<!ENTITY % ISOamsn.module "INCLUDE">
+<![%ISOamsn.module;[
+<!ENTITY % ISOamsn PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
+"ent/iso-amsn.ent">
+%ISOamsn;
+<!--end of ISOamsn.module-->]]>
+
+<!ENTITY % ISOamso.module "INCLUDE">
+<![%ISOamso.module;[
+<!ENTITY % ISOamso PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
+"ent/iso-amso.ent">
+%ISOamso;
+<!--end of ISOamso.module-->]]>
+
+<!ENTITY % ISOamsr.module "INCLUDE">
+<![%ISOamsr.module;[
+<!ENTITY % ISOamsr PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
+"ent/iso-amsr.ent">
+%ISOamsr;
+<!--end of ISOamsr.module-->]]>
+
+<!ENTITY % ISObox.module "INCLUDE">
+<![%ISObox.module;[
+<!ENTITY % ISObox PUBLIC
+"ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
+"ent/iso-box.ent">
+%ISObox;
+<!--end of ISObox.module-->]]>
+
+<!ENTITY % ISOcyr1.module "INCLUDE">
+<![%ISOcyr1.module;[
+<!ENTITY % ISOcyr1 PUBLIC
+"ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
+"ent/iso-cyr1.ent">
+%ISOcyr1;
+<!--end of ISOcyr1.module-->]]>
+
+<!ENTITY % ISOcyr2.module "INCLUDE">
+<![%ISOcyr2.module;[
+<!ENTITY % ISOcyr2 PUBLIC
+"ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
+"ent/iso-cyr2.ent">
+%ISOcyr2;
+<!--end of ISOcyr2.module-->]]>
+
+<!ENTITY % ISOdia.module "INCLUDE">
+<![%ISOdia.module;[
+<!ENTITY % ISOdia PUBLIC
+"ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
+"ent/iso-dia.ent">
+%ISOdia;
+<!--end of ISOdia.module-->]]>
+
+<!ENTITY % ISOgrk1.module "INCLUDE">
+<![%ISOgrk1.module;[
+<!ENTITY % ISOgrk1 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
+"ent/iso-grk1.ent">
+%ISOgrk1;
+<!--end of ISOgrk1.module-->]]>
+
+<!ENTITY % ISOgrk2.module "INCLUDE">
+<![%ISOgrk2.module;[
+<!ENTITY % ISOgrk2 PUBLIC
+"ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
+"ent/iso-grk2.ent">
+%ISOgrk2;
+<!--end of ISOgrk2.module-->]]>
+
+<!ENTITY % ISOgrk3.module "INCLUDE">
+<![%ISOgrk3.module;[
+<!ENTITY % ISOgrk3 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
+"ent/iso-grk3.ent">
+%ISOgrk3;
+<!--end of ISOgrk3.module-->]]>
+
+<!ENTITY % ISOgrk4.module "INCLUDE">
+<![%ISOgrk4.module;[
+<!ENTITY % ISOgrk4 PUBLIC
+"ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
+"ent/iso-grk4.ent">
+%ISOgrk4;
+<!--end of ISOgrk4.module-->]]>
+
+<!ENTITY % ISOlat1.module "INCLUDE">
+<![%ISOlat1.module;[
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+<!--end of ISOlat1.module-->]]>
+
+<!ENTITY % ISOlat2.module "INCLUDE">
+<![%ISOlat2.module;[
+<!ENTITY % ISOlat2 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
+"ent/iso-lat2.ent">
+%ISOlat2;
+<!--end of ISOlat2.module-->]]>
+
+<!ENTITY % ISOnum.module "INCLUDE">
+<![%ISOnum.module;[
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+<!--end of ISOnum.module-->]]>
+
+<!ENTITY % ISOpub.module "INCLUDE">
+<![%ISOpub.module;[
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+<!--end of ISOpub.module-->]]>
+
+<!ENTITY % ISOtech.module "INCLUDE">
+<![%ISOtech.module;[
+<!ENTITY % ISOtech PUBLIC
+"ISO 8879:1986//ENTITIES General Technical//EN//XML"
+"ent/iso-tech.ent">
+%ISOtech;
+<!--end of ISOtech.module-->]]>
+
+<!-- End of DocBook XML character entity sets module V4.0 ................. -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/4.0/dbhierx.mod b/tests/docbook/dtd/4.0/dbhierx.mod
new file mode 100755
index 00000000..27779d9e
--- /dev/null
+++ b/tests/docbook/dtd/4.0/dbhierx.mod
@@ -0,0 +1,2086 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML document hierarchy module V4.0 ........................... -->
+<!-- File dbhierx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, and the Organization for the Advancement
+ of Structured Information Standards (OASIS).
+
+ $Id$
+
+ Permission to use, copy, modify and distribute the DocBook XML DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook XML DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the definitions for the overall document
+ hierarchies of DocBook documents. It covers computer documentation
+ manuals and manual fragments, as well as reference entries (such as
+ man pages) and technical journals or anthologies containing
+ articles.
+
+ This module depends on the DocBook information pool module. All
+ elements and entities referenced but not defined here are assumed
+ to be defined in the information pool module.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbhier PUBLIC
+ "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.0//EN"
+ "dbhierx.mod">
+ %dbhier;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+
+<!-- ...................................................................... -->
+<!-- Entities for module inclusions ....................................... -->
+
+<!ENTITY % dbhier.redecl.module "IGNORE">
+<!ENTITY % dbhier.redecl2.module "IGNORE">
+
+<!-- ...................................................................... -->
+<!-- Entities for element classes ......................................... -->
+
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class "appendix %local.appendix.class;">
+
+<!ENTITY % local.article.class "">
+<!ENTITY % article.class "article %local.article.class;">
+
+<!ENTITY % local.book.class "">
+<!ENTITY % book.class "book %local.book.class;">
+
+<!ENTITY % local.chapter.class "">
+<!ENTITY % chapter.class "chapter %local.chapter.class;">
+
+<!ENTITY % local.index.class "">
+<!ENTITY % index.class "index|setindex %local.index.class;">
+
+<!ENTITY % local.refentry.class "">
+<!ENTITY % refentry.class "refentry %local.refentry.class;">
+
+<!ENTITY % local.nav.class "">
+<!ENTITY % nav.class "toc|lot|index|glossary|bibliography
+ %local.nav.class;">
+
+<!-- Redeclaration placeholder ............................................ -->
+
+<!-- For redeclaring entities that are declared after this point while
+ retaining their references to the entities that are declared before
+ this point -->
+
+<![%dbhier.redecl.module;[
+<!-- Defining rdbhier here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbhier "">
+%rdbhier;
+<!--end of dbhier.redecl.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Entities for element mixtures ........................................ -->
+
+<!-- The DocBook TC may produce an official forms module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % forms.hook "">
+
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%genobj.class; |%descobj.class;
+ |%ndxterm.class; |beginpage
+ %forms.hook;
+ %local.divcomponent.mix;">
+
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%genobj.class; |%descobj.class;
+ |%ndxterm.class; |beginpage
+ %local.refcomponent.mix;">
+
+<!ENTITY % local.indexdivcomponent.mix "">
+<!ENTITY % indexdivcomponent.mix
+ "itemizedlist|orderedlist|variablelist|simplelist
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |anchor|remark
+ |%link.char.class;
+ |beginpage
+ %local.indexdivcomponent.mix;">
+
+<!ENTITY % local.refname.char.mix "">
+<!ENTITY % refname.char.mix
+ "#PCDATA
+ |%tech.char.class;
+ %local.refname.char.mix;">
+
+<!ENTITY % local.partcontent.mix "">
+<!ENTITY % partcontent.mix
+ "%appendix.class;|%chapter.class;|%nav.class;|%article.class;
+ |preface|%refentry.class;|reference %local.partcontent.mix;">
+
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+ "#PCDATA
+ |%xref.char.class; |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class; |%docinfo.char.class;
+ |%other.char.class;
+ |%ndxterm.class; |beginpage
+ %local.refinline.char.mix;">
+
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % refclass.char.mix
+ "#PCDATA
+ |application
+ %local.refclass.char.mix;">
+
+<!-- Redeclaration placeholder 2 .......................................... -->
+
+<!-- For redeclaring entities that are declared after this point while
+ retaining their references to the entities that are declared before
+ this point -->
+
+<![%dbhier.redecl2.module;[
+<!-- Defining rdbhier2 here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbhier2 "">
+%rdbhier2;
+<!--end of dbhier.redecl2.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Entities for content models .......................................... -->
+
+<!ENTITY % div.title.content
+ "title, subtitle?, titleabbrev?">
+
+<!ENTITY % bookcomponent.title.content
+ "title, subtitle?, titleabbrev?">
+
+<!ENTITY % sect.title.content
+ "title, subtitle?, titleabbrev?">
+
+<!ENTITY % refsect.title.content
+ "title, subtitle?, titleabbrev?">
+
+<!ENTITY % bookcomponent.content
+ "((%divcomponent.mix;)+,
+ (sect1*|(%refentry.class;)*|simplesect*|section*))
+ | (sect1+|(%refentry.class;)+|simplesect+|section+)">
+
+<!-- ...................................................................... -->
+<!-- Set and SetInfo ...................................................... -->
+
+<!ENTITY % set.content.module "INCLUDE">
+<![%set.content.module;[
+<!ENTITY % set.module "INCLUDE">
+<![%set.module;[
+<!ENTITY % local.set.attrib "">
+<!ENTITY % set.role.attrib "%role.attrib;">
+
+<!ENTITY % set.element "INCLUDE">
+<![%set.element;[
+<!ELEMENT set ((%div.title.content;)?, setinfo?, toc?, (%book.class;)+,
+ setindex?)>
+<!--end of set.element-->]]>
+
+<!-- FPI: SGML formal public identifier -->
+
+
+<!ENTITY % set.attlist "INCLUDE">
+<![%set.attlist;[
+<!ATTLIST set
+ fpi CDATA #IMPLIED
+ %status.attrib;
+ %common.attrib;
+ %set.role.attrib;
+ %local.set.attrib;
+>
+<!--end of set.attlist-->]]>
+<!--end of set.module-->]]>
+
+<!ENTITY % setinfo.module "INCLUDE">
+<![%setinfo.module;[
+<!ENTITY % local.setinfo.attrib "">
+<!ENTITY % setinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % setinfo.element "INCLUDE">
+<![%setinfo.element;[
+<!ELEMENT setinfo ((graphic | mediaobject
+ | legalnotice | modespec | subjectset
+ | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of setinfo.element-->]]>
+
+<!-- Contents: IDs of the ToC, Books, and SetIndex that comprise
+ the set, in the order of their appearance -->
+
+
+<!ENTITY % setinfo.attlist "INCLUDE">
+<![%setinfo.attlist;[
+<!ATTLIST setinfo
+ contents IDREFS #IMPLIED
+ %common.attrib;
+ %setinfo.role.attrib;
+ %local.setinfo.attrib;
+>
+<!--end of setinfo.attlist-->]]>
+<!--end of setinfo.module-->]]>
+<!--end of set.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Book and BookInfo .................................................... -->
+
+<!ENTITY % book.content.module "INCLUDE">
+<![%book.content.module;[
+<!ENTITY % book.module "INCLUDE">
+<![%book.module;[
+<!--FUTURE USE (V4.0):
+......................
+The %article.class; entity *may* be removed from the Book content model.
+(Article may be made part of a new top-level document hierarchy.)
+......................
+-->
+
+<!ENTITY % local.book.attrib "">
+<!ENTITY % book.role.attrib "%role.attrib;">
+
+<!ENTITY % book.element "INCLUDE">
+<![%book.element;[
+<!ELEMENT book ((%div.title.content;)?, bookinfo?,
+ (dedication | toc | lot
+ | glossary | bibliography | preface
+ | %chapter.class; | reference | part
+ | %article.class;
+ | %appendix.class;
+ | %index.class;
+ | colophon)*)>
+<!--end of book.element-->]]>
+
+<!-- FPI: SGML formal public identifier -->
+
+
+<!ENTITY % book.attlist "INCLUDE">
+<![%book.attlist;[
+<!ATTLIST book fpi CDATA #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %book.role.attrib;
+ %local.book.attrib;
+>
+<!--end of book.attlist-->]]>
+<!--end of book.module-->]]>
+
+<!ENTITY % bookinfo.module "INCLUDE">
+<![%bookinfo.module;[
+<!ENTITY % local.bookinfo.attrib "">
+<!ENTITY % bookinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % bookinfo.element "INCLUDE">
+<![%bookinfo.element;[
+<!ELEMENT bookinfo ((graphic | mediaobject
+ | legalnotice | modespec | subjectset
+ | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of bookinfo.element-->]]>
+
+<!-- Contents: IDs of the ToC, LoTs, Prefaces, Parts, Chapters,
+ Appendixes, References, GLossary, Bibliography, and indexes
+ comprising the Book, in the order of their appearance -->
+
+
+<!ENTITY % bookinfo.attlist "INCLUDE">
+<![%bookinfo.attlist;[
+<!ATTLIST bookinfo
+ contents IDREFS #IMPLIED
+ %common.attrib;
+ %bookinfo.role.attrib;
+ %local.bookinfo.attrib;
+>
+<!--end of bookinfo.attlist-->]]>
+<!--end of bookinfo.module-->]]>
+<!--end of book.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Dedication, ToC, and LoT ............................................. -->
+
+<!ENTITY % dedication.module "INCLUDE">
+<![%dedication.module;[
+<!ENTITY % local.dedication.attrib "">
+<!ENTITY % dedication.role.attrib "%role.attrib;">
+
+<!ENTITY % dedication.element "INCLUDE">
+<![%dedication.element;[
+<!ELEMENT dedication ((%sect.title.content;)?, (%legalnotice.mix;)+)>
+<!--end of dedication.element-->]]>
+
+<!ENTITY % dedication.attlist "INCLUDE">
+<![%dedication.attlist;[
+<!ATTLIST dedication
+ %status.attrib;
+ %common.attrib;
+ %dedication.role.attrib;
+ %local.dedication.attrib;
+>
+<!--end of dedication.attlist-->]]>
+<!--end of dedication.module-->]]>
+
+<!ENTITY % colophon.module "INCLUDE">
+<![ %colophon.module; [
+<!ENTITY % local.colophon.attrib "">
+<!ENTITY % colophon.role.attrib "%role.attrib;">
+
+<!ENTITY % colophon.element "INCLUDE">
+<![ %colophon.element; [
+<!ELEMENT colophon ((%sect.title.content;)?, (%textobject.mix;)+)>
+<!--end of colophon.element-->]]>
+
+<!ENTITY % colophon.attlist "INCLUDE">
+<![ %colophon.attlist; [
+<!ATTLIST colophon
+ %status.attrib;
+ %common.attrib;
+ %colophon.role.attrib;
+ %local.colophon.attrib;>
+<!--end of colophon.attlist-->]]>
+<!--end of colophon.module-->]]>
+
+<!ENTITY % toc.content.module "INCLUDE">
+<![%toc.content.module;[
+<!ENTITY % toc.module "INCLUDE">
+<![%toc.module;[
+<!ENTITY % local.toc.attrib "">
+<!ENTITY % toc.role.attrib "%role.attrib;">
+
+<!ENTITY % toc.element "INCLUDE">
+<![%toc.element;[
+<!ELEMENT toc ((%bookcomponent.title.content;)?, tocfront*,
+ (tocpart | tocchap)*, tocback*)>
+<!--end of toc.element-->]]>
+
+<!ENTITY % toc.attlist "INCLUDE">
+<![%toc.attlist;[
+<!ATTLIST toc
+ %pagenum.attrib;
+ %common.attrib;
+ %toc.role.attrib;
+ %local.toc.attrib;
+>
+<!--end of toc.attlist-->]]>
+<!--end of toc.module-->]]>
+
+<!ENTITY % tocfront.module "INCLUDE">
+<![%tocfront.module;[
+<!ENTITY % local.tocfront.attrib "">
+<!ENTITY % tocfront.role.attrib "%role.attrib;">
+
+<!ENTITY % tocfront.element "INCLUDE">
+<![%tocfront.element;[
+<!ELEMENT tocfront (%para.char.mix;)*>
+<!--end of tocfront.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocfront.attlist "INCLUDE">
+<![%tocfront.attlist;[
+<!ATTLIST tocfront
+ %label.attrib;
+ %linkend.attrib; %pagenum.attrib;
+ %common.attrib;
+ %tocfront.role.attrib;
+ %local.tocfront.attrib;
+>
+<!--end of tocfront.attlist-->]]>
+<!--end of tocfront.module-->]]>
+
+<!ENTITY % tocentry.module "INCLUDE">
+<![%tocentry.module;[
+<!ENTITY % local.tocentry.attrib "">
+<!ENTITY % tocentry.role.attrib "%role.attrib;">
+
+<!ENTITY % tocentry.element "INCLUDE">
+<![%tocentry.element;[
+<!ELEMENT tocentry (%para.char.mix;)*>
+<!--end of tocentry.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocentry.attlist "INCLUDE">
+<![%tocentry.attlist;[
+<!ATTLIST tocentry
+ %linkend.attrib; %pagenum.attrib;
+ %common.attrib;
+ %tocentry.role.attrib;
+ %local.tocentry.attrib;
+>
+<!--end of tocentry.attlist-->]]>
+<!--end of tocentry.module-->]]>
+
+<!ENTITY % tocpart.module "INCLUDE">
+<![%tocpart.module;[
+<!ENTITY % local.tocpart.attrib "">
+<!ENTITY % tocpart.role.attrib "%role.attrib;">
+
+<!ENTITY % tocpart.element "INCLUDE">
+<![%tocpart.element;[
+<!ELEMENT tocpart (tocentry+, tocchap*)>
+<!--end of tocpart.element-->]]>
+
+<!ENTITY % tocpart.attlist "INCLUDE">
+<![%tocpart.attlist;[
+<!ATTLIST tocpart
+ %common.attrib;
+ %tocpart.role.attrib;
+ %local.tocpart.attrib;
+>
+<!--end of tocpart.attlist-->]]>
+<!--end of tocpart.module-->]]>
+
+<!ENTITY % tocchap.module "INCLUDE">
+<![%tocchap.module;[
+<!ENTITY % local.tocchap.attrib "">
+<!ENTITY % tocchap.role.attrib "%role.attrib;">
+
+<!ENTITY % tocchap.element "INCLUDE">
+<![%tocchap.element;[
+<!ELEMENT tocchap (tocentry+, toclevel1*)>
+<!--end of tocchap.element-->]]>
+
+<!ENTITY % tocchap.attlist "INCLUDE">
+<![%tocchap.attlist;[
+<!ATTLIST tocchap
+ %label.attrib;
+ %common.attrib;
+ %tocchap.role.attrib;
+ %local.tocchap.attrib;
+>
+<!--end of tocchap.attlist-->]]>
+<!--end of tocchap.module-->]]>
+
+<!ENTITY % toclevel1.module "INCLUDE">
+<![%toclevel1.module;[
+<!ENTITY % local.toclevel1.attrib "">
+<!ENTITY % toclevel1.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel1.element "INCLUDE">
+<![%toclevel1.element;[
+<!ELEMENT toclevel1 (tocentry+, toclevel2*)>
+<!--end of toclevel1.element-->]]>
+
+<!ENTITY % toclevel1.attlist "INCLUDE">
+<![%toclevel1.attlist;[
+<!ATTLIST toclevel1
+ %common.attrib;
+ %toclevel1.role.attrib;
+ %local.toclevel1.attrib;
+>
+<!--end of toclevel1.attlist-->]]>
+<!--end of toclevel1.module-->]]>
+
+<!ENTITY % toclevel2.module "INCLUDE">
+<![%toclevel2.module;[
+<!ENTITY % local.toclevel2.attrib "">
+<!ENTITY % toclevel2.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel2.element "INCLUDE">
+<![%toclevel2.element;[
+<!ELEMENT toclevel2 (tocentry+, toclevel3*)>
+<!--end of toclevel2.element-->]]>
+
+<!ENTITY % toclevel2.attlist "INCLUDE">
+<![%toclevel2.attlist;[
+<!ATTLIST toclevel2
+ %common.attrib;
+ %toclevel2.role.attrib;
+ %local.toclevel2.attrib;
+>
+<!--end of toclevel2.attlist-->]]>
+<!--end of toclevel2.module-->]]>
+
+<!ENTITY % toclevel3.module "INCLUDE">
+<![%toclevel3.module;[
+<!ENTITY % local.toclevel3.attrib "">
+<!ENTITY % toclevel3.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel3.element "INCLUDE">
+<![%toclevel3.element;[
+<!ELEMENT toclevel3 (tocentry+, toclevel4*)>
+<!--end of toclevel3.element-->]]>
+
+<!ENTITY % toclevel3.attlist "INCLUDE">
+<![%toclevel3.attlist;[
+<!ATTLIST toclevel3
+ %common.attrib;
+ %toclevel3.role.attrib;
+ %local.toclevel3.attrib;
+>
+<!--end of toclevel3.attlist-->]]>
+<!--end of toclevel3.module-->]]>
+
+<!ENTITY % toclevel4.module "INCLUDE">
+<![%toclevel4.module;[
+<!ENTITY % local.toclevel4.attrib "">
+<!ENTITY % toclevel4.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel4.element "INCLUDE">
+<![%toclevel4.element;[
+<!ELEMENT toclevel4 (tocentry+, toclevel5*)>
+<!--end of toclevel4.element-->]]>
+
+<!ENTITY % toclevel4.attlist "INCLUDE">
+<![%toclevel4.attlist;[
+<!ATTLIST toclevel4
+ %common.attrib;
+ %toclevel4.role.attrib;
+ %local.toclevel4.attrib;
+>
+<!--end of toclevel4.attlist-->]]>
+<!--end of toclevel4.module-->]]>
+
+<!ENTITY % toclevel5.module "INCLUDE">
+<![%toclevel5.module;[
+<!ENTITY % local.toclevel5.attrib "">
+<!ENTITY % toclevel5.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel5.element "INCLUDE">
+<![%toclevel5.element;[
+<!ELEMENT toclevel5 (tocentry+)>
+<!--end of toclevel5.element-->]]>
+
+<!ENTITY % toclevel5.attlist "INCLUDE">
+<![%toclevel5.attlist;[
+<!ATTLIST toclevel5
+ %common.attrib;
+ %toclevel5.role.attrib;
+ %local.toclevel5.attrib;
+>
+<!--end of toclevel5.attlist-->]]>
+<!--end of toclevel5.module-->]]>
+
+<!ENTITY % tocback.module "INCLUDE">
+<![%tocback.module;[
+<!ENTITY % local.tocback.attrib "">
+<!ENTITY % tocback.role.attrib "%role.attrib;">
+
+<!ENTITY % tocback.element "INCLUDE">
+<![%tocback.element;[
+<!ELEMENT tocback (%para.char.mix;)*>
+<!--end of tocback.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocback.attlist "INCLUDE">
+<![%tocback.attlist;[
+<!ATTLIST tocback
+ %label.attrib;
+ %linkend.attrib; %pagenum.attrib;
+ %common.attrib;
+ %tocback.role.attrib;
+ %local.tocback.attrib;
+>
+<!--end of tocback.attlist-->]]>
+<!--end of tocback.module-->]]>
+<!--end of toc.content.module-->]]>
+
+<!ENTITY % lot.content.module "INCLUDE">
+<![%lot.content.module;[
+<!ENTITY % lot.module "INCLUDE">
+<![%lot.module;[
+<!ENTITY % local.lot.attrib "">
+<!ENTITY % lot.role.attrib "%role.attrib;">
+
+<!ENTITY % lot.element "INCLUDE">
+<![%lot.element;[
+<!ELEMENT lot ((%bookcomponent.title.content;)?, lotentry*)>
+<!--end of lot.element-->]]>
+
+<!ENTITY % lot.attlist "INCLUDE">
+<![%lot.attlist;[
+<!ATTLIST lot
+ %label.attrib;
+ %common.attrib;
+ %lot.role.attrib;
+ %local.lot.attrib;
+>
+<!--end of lot.attlist-->]]>
+<!--end of lot.module-->]]>
+
+<!ENTITY % lotentry.module "INCLUDE">
+<![%lotentry.module;[
+<!ENTITY % local.lotentry.attrib "">
+<!ENTITY % lotentry.role.attrib "%role.attrib;">
+
+<!ENTITY % lotentry.element "INCLUDE">
+<![%lotentry.element;[
+<!ELEMENT lotentry (%para.char.mix;)*>
+<!--end of lotentry.element-->]]>
+
+<!-- SrcCredit: Information about the source of the entry,
+ as for a list of illustrations -->
+<!-- linkend: to element that this entry represents-->
+<!ENTITY % lotentry.attlist "INCLUDE">
+<![%lotentry.attlist;[
+<!ATTLIST lotentry
+ srccredit CDATA #IMPLIED
+ %pagenum.attrib;
+ %common.attrib;
+ %linkend.attrib;
+ %lotentry.role.attrib;
+ %local.lotentry.attrib;
+>
+<!--end of lotentry.attlist-->]]>
+<!--end of lotentry.module-->]]>
+<!--end of lot.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Appendix, Chapter, Part, Preface, Reference, PartIntro ............... -->
+
+<!ENTITY % appendix.module "INCLUDE">
+<![%appendix.module;[
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+
+<!ENTITY % appendix.element "INCLUDE">
+<![%appendix.element;[
+<!ELEMENT appendix (appendixinfo?,
+ (%bookcomponent.title.content;),
+ (%nav.class;)*,
+ tocchap?,
+ (%bookcomponent.content;),
+ (%nav.class;)*)>
+<!--end of appendix.element-->]]>
+
+<!ENTITY % appendix.attlist "INCLUDE">
+<![%appendix.attlist;[
+<!ATTLIST appendix
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %appendix.role.attrib;
+ %local.appendix.attrib;
+>
+<!--end of appendix.attlist-->]]>
+<!--end of appendix.module-->]]>
+
+<!ENTITY % chapter.module "INCLUDE">
+<![%chapter.module;[
+<!ENTITY % local.chapter.attrib "">
+<!ENTITY % chapter.role.attrib "%role.attrib;">
+
+<!ENTITY % chapter.element "INCLUDE">
+<![%chapter.element;[
+<!ELEMENT chapter (chapterinfo?,
+ (%bookcomponent.title.content;),
+ (%nav.class;)*,
+ tocchap?,
+ (%bookcomponent.content;),
+ (%nav.class;)*)>
+<!--end of chapter.element-->]]>
+
+<!ENTITY % chapter.attlist "INCLUDE">
+<![%chapter.attlist;[
+<!ATTLIST chapter
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %chapter.role.attrib;
+ %local.chapter.attrib;
+>
+<!--end of chapter.attlist-->]]>
+<!--end of chapter.module-->]]>
+
+<!ENTITY % part.module "INCLUDE">
+<![%part.module;[
+
+<!-- Note that Part was to have its content model reduced in V4.0. This
+change will not be made after all. -->
+
+<!ENTITY % local.part.attrib "">
+<!ENTITY % part.role.attrib "%role.attrib;">
+
+<!ENTITY % part.element "INCLUDE">
+<![%part.element;[
+<!ELEMENT part (partinfo?, (%bookcomponent.title.content;), partintro?,
+ (%partcontent.mix;)+)>
+<!--end of part.element-->]]>
+
+<!ENTITY % part.attlist "INCLUDE">
+<![%part.attlist;[
+<!ATTLIST part
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %part.role.attrib;
+ %local.part.attrib;
+>
+<!--end of part.attlist-->]]>
+<!--ELEMENT PartIntro (defined below)-->
+<!--end of part.module-->]]>
+
+<!ENTITY % preface.module "INCLUDE">
+<![%preface.module;[
+<!ENTITY % local.preface.attrib "">
+<!ENTITY % preface.role.attrib "%role.attrib;">
+
+<!ENTITY % preface.element "INCLUDE">
+<![%preface.element;[
+<!ELEMENT preface (prefaceinfo?,
+ (%bookcomponent.title.content;),
+ (%nav.class;)*,
+ tocchap?,
+ (%bookcomponent.content;),
+ (%nav.class;)*)>
+<!--end of preface.element-->]]>
+
+<!ENTITY % preface.attlist "INCLUDE">
+<![%preface.attlist;[
+<!ATTLIST preface
+ %status.attrib;
+ %common.attrib;
+ %preface.role.attrib;
+ %local.preface.attrib;
+>
+<!--end of preface.attlist-->]]>
+<!--end of preface.module-->]]>
+
+<!ENTITY % reference.module "INCLUDE">
+<![%reference.module;[
+<!ENTITY % local.reference.attrib "">
+<!ENTITY % reference.role.attrib "%role.attrib;">
+
+<!ENTITY % reference.element "INCLUDE">
+<![%reference.element;[
+<!ELEMENT reference (referenceinfo?,
+ (%bookcomponent.title.content;), partintro?,
+ (%refentry.class;)+)>
+<!--end of reference.element-->]]>
+
+<!ENTITY % reference.attlist "INCLUDE">
+<![%reference.attlist;[
+<!ATTLIST reference
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %reference.role.attrib;
+ %local.reference.attrib;
+>
+<!--end of reference.attlist-->]]>
+<!--ELEMENT PartIntro (defined below)-->
+<!--end of reference.module-->]]>
+
+<!ENTITY % partintro.module "INCLUDE">
+<![%partintro.module;[
+<!ENTITY % local.partintro.attrib "">
+<!ENTITY % partintro.role.attrib "%role.attrib;">
+
+<!ENTITY % partintro.element "INCLUDE">
+<![%partintro.element;[
+<!ELEMENT partintro ((%div.title.content;)?, (%bookcomponent.content;))>
+<!--end of partintro.element-->]]>
+
+<!ENTITY % partintro.attlist "INCLUDE">
+<![%partintro.attlist;[
+<!ATTLIST partintro
+ %label.attrib;
+ %common.attrib;
+ %local.partintro.attrib;
+ %partintro.role.attrib;
+>
+<!--end of partintro.attlist-->]]>
+<!--end of partintro.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Other Info elements .................................................. -->
+
+<!ENTITY % appendixinfo.module "INCLUDE">
+<![ %appendixinfo.module; [
+<!ENTITY % local.appendixinfo.attrib "">
+<!ENTITY % appendixinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % appendixinfo.element "INCLUDE">
+<![ %appendixinfo.element; [
+<!ELEMENT appendixinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of appendixinfo.element-->]]>
+
+<!ENTITY % appendixinfo.attlist "INCLUDE">
+<![ %appendixinfo.attlist; [
+<!ATTLIST appendixinfo
+ %common.attrib;
+ %appendixinfo.role.attrib;
+ %local.appendixinfo.attrib;
+>
+<!--end of appendixinfo.attlist-->]]>
+<!--end of appendixinfo.module-->]]>
+
+<!ENTITY % bibliographyinfo.module "INCLUDE">
+<![ %bibliographyinfo.module; [
+<!ENTITY % local.bibliographyinfo.attrib "">
+<!ENTITY % bibliographyinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliographyinfo.element "INCLUDE">
+<![ %bibliographyinfo.element; [
+<!ELEMENT bibliographyinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of bibliographyinfo.element-->]]>
+
+<!ENTITY % bibliographyinfo.attlist "INCLUDE">
+<![ %bibliographyinfo.attlist; [
+<!ATTLIST bibliographyinfo
+ %common.attrib;
+ %bibliographyinfo.role.attrib;
+ %local.bibliographyinfo.attrib;
+>
+<!--end of bibliographyinfo.attlist-->]]>
+<!--end of bibliographyinfo.module-->]]>
+
+<!ENTITY % chapterinfo.module "INCLUDE">
+<![ %chapterinfo.module; [
+<!ENTITY % local.chapterinfo.attrib "">
+<!ENTITY % chapterinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % chapterinfo.element "INCLUDE">
+<![ %chapterinfo.element; [
+<!ELEMENT chapterinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of chapterinfo.element-->]]>
+
+<!ENTITY % chapterinfo.attlist "INCLUDE">
+<![ %chapterinfo.attlist; [
+<!ATTLIST chapterinfo
+ %common.attrib;
+ %chapterinfo.role.attrib;
+ %local.chapterinfo.attrib;
+>
+<!--end of chapterinfo.attlist-->]]>
+<!--end of chapterinfo.module-->]]>
+
+<!ENTITY % glossaryinfo.module "INCLUDE">
+<![ %glossaryinfo.module; [
+<!ENTITY % local.glossaryinfo.attrib "">
+<!ENTITY % glossaryinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % glossaryinfo.element "INCLUDE">
+<![ %glossaryinfo.element; [
+<!ELEMENT glossaryinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of glossaryinfo.element-->]]>
+
+<!ENTITY % glossaryinfo.attlist "INCLUDE">
+<![ %glossaryinfo.attlist; [
+<!ATTLIST glossaryinfo
+ %common.attrib;
+ %glossaryinfo.role.attrib;
+ %local.glossaryinfo.attrib;
+>
+<!--end of glossaryinfo.attlist-->]]>
+<!--end of glossaryinfo.module-->]]>
+
+<!ENTITY % indexinfo.module "INCLUDE">
+<![ %indexinfo.module; [
+<!ENTITY % local.indexinfo.attrib "">
+<!ENTITY % indexinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % indexinfo.element "INCLUDE">
+<![ %indexinfo.element; [
+<!ELEMENT indexinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of indexinfo.element-->]]>
+
+<!ENTITY % indexinfo.attlist "INCLUDE">
+<![ %indexinfo.attlist; [
+<!ATTLIST indexinfo
+ %common.attrib;
+ %indexinfo.role.attrib;
+ %local.indexinfo.attrib;
+>
+<!--end of indexinfo.attlist-->]]>
+<!--end of indexinfo.module-->]]>
+
+<!ENTITY % setindexinfo.module "INCLUDE">
+<![ %setindexinfo.module; [
+<!ENTITY % local.setindexinfo.attrib "">
+<!ENTITY % setindexinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % setindexinfo.element "INCLUDE">
+<![ %setindexinfo.element; [
+<!ELEMENT setindexinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of setindexinfo.element-->]]>
+
+<!ENTITY % setindexinfo.attlist "INCLUDE">
+<![ %setindexinfo.attlist; [
+<!ATTLIST setindexinfo
+ %common.attrib;
+ %setindexinfo.role.attrib;
+ %local.setindexinfo.attrib;
+>
+<!--end of setindexinfo.attlist-->]]>
+<!--end of setindexinfo.module-->]]>
+
+<!ENTITY % partinfo.module "INCLUDE">
+<![ %partinfo.module; [
+<!ENTITY % local.partinfo.attrib "">
+<!ENTITY % partinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % partinfo.element "INCLUDE">
+<![ %partinfo.element; [
+<!ELEMENT partinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of partinfo.element-->]]>
+
+<!ENTITY % partinfo.attlist "INCLUDE">
+<![ %partinfo.attlist; [
+<!ATTLIST partinfo
+ %common.attrib;
+ %partinfo.role.attrib;
+ %local.partinfo.attrib;
+>
+<!--end of partinfo.attlist-->]]>
+<!--end of partinfo.module-->]]>
+
+<!ENTITY % prefaceinfo.module "INCLUDE">
+<![ %prefaceinfo.module; [
+<!ENTITY % local.prefaceinfo.attrib "">
+<!ENTITY % prefaceinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % prefaceinfo.element "INCLUDE">
+<![ %prefaceinfo.element; [
+<!ELEMENT prefaceinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of prefaceinfo.element-->]]>
+
+<!ENTITY % prefaceinfo.attlist "INCLUDE">
+<![ %prefaceinfo.attlist; [
+<!ATTLIST prefaceinfo
+ %common.attrib;
+ %prefaceinfo.role.attrib;
+ %local.prefaceinfo.attrib;
+>
+<!--end of prefaceinfo.attlist-->]]>
+<!--end of prefaceinfo.module-->]]>
+
+<!ENTITY % refentryinfo.module "INCLUDE">
+<![ %refentryinfo.module; [
+<!ENTITY % local.refentryinfo.attrib "">
+<!ENTITY % refentryinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refentryinfo.element "INCLUDE">
+<![ %refentryinfo.element; [
+<!ELEMENT refentryinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of refentryinfo.element-->]]>
+
+<!ENTITY % refentryinfo.attlist "INCLUDE">
+<![ %refentryinfo.attlist; [
+<!ATTLIST refentryinfo
+ %common.attrib;
+ %refentryinfo.role.attrib;
+ %local.refentryinfo.attrib;
+>
+<!--end of refentryinfo.attlist-->]]>
+<!--end of refentryinfo.module-->]]>
+
+<!ENTITY % refsect1info.module "INCLUDE">
+<![ %refsect1info.module; [
+<!ENTITY % local.refsect1info.attrib "">
+<!ENTITY % refsect1info.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect1info.element "INCLUDE">
+<![ %refsect1info.element; [
+<!ELEMENT refsect1info ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of refsect1info.element-->]]>
+
+<!ENTITY % refsect1info.attlist "INCLUDE">
+<![ %refsect1info.attlist; [
+<!ATTLIST refsect1info
+ %common.attrib;
+ %refsect1info.role.attrib;
+ %local.refsect1info.attrib;
+>
+<!--end of refsect1info.attlist-->]]>
+<!--end of refsect1info.module-->]]>
+
+<!ENTITY % refsect2info.module "INCLUDE">
+<![ %refsect2info.module; [
+<!ENTITY % local.refsect2info.attrib "">
+<!ENTITY % refsect2info.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect2info.element "INCLUDE">
+<![ %refsect2info.element; [
+<!ELEMENT refsect2info ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of refsect2info.element-->]]>
+
+<!ENTITY % refsect2info.attlist "INCLUDE">
+<![ %refsect2info.attlist; [
+<!ATTLIST refsect2info
+ %common.attrib;
+ %refsect2info.role.attrib;
+ %local.refsect2info.attrib;
+>
+<!--end of refsect2info.attlist-->]]>
+<!--end of refsect2info.module-->]]>
+
+<!ENTITY % refsect3info.module "INCLUDE">
+<![ %refsect3info.module; [
+<!ENTITY % local.refsect3info.attrib "">
+<!ENTITY % refsect3info.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect3info.element "INCLUDE">
+<![ %refsect3info.element; [
+<!ELEMENT refsect3info ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of refsect3info.element-->]]>
+
+<!ENTITY % refsect3info.attlist "INCLUDE">
+<![ %refsect3info.attlist; [
+<!ATTLIST refsect3info
+ %common.attrib;
+ %refsect3info.role.attrib;
+ %local.refsect3info.attrib;
+>
+<!--end of refsect3info.attlist-->]]>
+<!--end of refsect3info.module-->]]>
+
+<!ENTITY % refsynopsisdivinfo.module "INCLUDE">
+<![ %refsynopsisdivinfo.module; [
+<!ENTITY % local.refsynopsisdivinfo.attrib "">
+<!ENTITY % refsynopsisdivinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refsynopsisdivinfo.element "INCLUDE">
+<![ %refsynopsisdivinfo.element; [
+<!ELEMENT refsynopsisdivinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of refsynopsisdivinfo.element-->]]>
+
+<!ENTITY % refsynopsisdivinfo.attlist "INCLUDE">
+<![ %refsynopsisdivinfo.attlist; [
+<!ATTLIST refsynopsisdivinfo
+ %common.attrib;
+ %refsynopsisdivinfo.role.attrib;
+ %local.refsynopsisdivinfo.attrib;
+>
+<!--end of refsynopsisdivinfo.attlist-->]]>
+<!--end of refsynopsisdivinfo.module-->]]>
+
+<!ENTITY % referenceinfo.module "INCLUDE">
+<![ %referenceinfo.module; [
+<!ENTITY % local.referenceinfo.attrib "">
+<!ENTITY % referenceinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % referenceinfo.element "INCLUDE">
+<![ %referenceinfo.element; [
+<!ELEMENT referenceinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of referenceinfo.element-->]]>
+
+<!ENTITY % referenceinfo.attlist "INCLUDE">
+<![ %referenceinfo.attlist; [
+<!ATTLIST referenceinfo
+ %common.attrib;
+ %referenceinfo.role.attrib;
+ %local.referenceinfo.attrib;
+>
+<!--end of referenceinfo.attlist-->]]>
+<!--end of referenceinfo.module-->]]>
+
+<!ENTITY % local.sect1info.attrib "">
+<!ENTITY % sect1info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect1info.element "INCLUDE">
+<![%sect1info.element;[
+<!ELEMENT sect1info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect1info.element-->]]>
+
+<!ENTITY % sect1info.attlist "INCLUDE">
+<![%sect1info.attlist;[
+<!ATTLIST sect1info
+ %common.attrib;
+ %sect1info.role.attrib;
+ %local.sect1info.attrib;
+>
+<!--end of sect1info.attlist-->]]>
+
+<!ENTITY % local.sect2info.attrib "">
+<!ENTITY % sect2info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect2info.element "INCLUDE">
+<![%sect2info.element;[
+<!ELEMENT sect2info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect2info.element-->]]>
+
+<!ENTITY % sect2info.attlist "INCLUDE">
+<![%sect2info.attlist;[
+<!ATTLIST sect2info
+ %common.attrib;
+ %sect2info.role.attrib;
+ %local.sect2info.attrib;
+>
+<!--end of sect2info.attlist-->]]>
+
+<!ENTITY % local.sect3info.attrib "">
+<!ENTITY % sect3info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect3info.element "INCLUDE">
+<![%sect3info.element;[
+<!ELEMENT sect3info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect3info.element-->]]>
+
+<!ENTITY % sect3info.attlist "INCLUDE">
+<![%sect3info.attlist;[
+<!ATTLIST sect3info
+ %common.attrib;
+ %sect3info.role.attrib;
+ %local.sect3info.attrib;
+>
+<!--end of sect3info.attlist-->]]>
+
+<!ENTITY % local.sect4info.attrib "">
+<!ENTITY % sect4info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect4info.element "INCLUDE">
+<![%sect4info.element;[
+<!ELEMENT sect4info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect4info.element-->]]>
+
+<!ENTITY % sect4info.attlist "INCLUDE">
+<![%sect4info.attlist;[
+<!ATTLIST sect4info
+ %common.attrib;
+ %sect4info.role.attrib;
+ %local.sect4info.attrib;
+>
+<!--end of sect4info.attlist-->]]>
+
+<!ENTITY % local.sect5info.attrib "">
+<!ENTITY % sect5info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect5info.element "INCLUDE">
+<![%sect5info.element;[
+<!ELEMENT sect5info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect5info.element-->]]>
+
+<!ENTITY % sect5info.attlist "INCLUDE">
+<![%sect5info.attlist;[
+<!ATTLIST sect5info
+ %common.attrib;
+ %sect5info.role.attrib;
+ %local.sect5info.attrib;
+>
+<!--end of sect5info.attlist-->]]>
+
+<!-- ...................................................................... -->
+<!-- Section (parallel to Sect*) ......................................... -->
+
+<!ENTITY % section.content.module "INCLUDE">
+<![ %section.content.module; [
+<!ENTITY % section.module "INCLUDE">
+<![ %section.module; [
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+
+<!ENTITY % section.element "INCLUDE">
+<![ %section.element; [
+<!ELEMENT section (sectioninfo?,
+ (%sect.title.content;),
+ (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)*|section*))
+ | (%refentry.class;)+|section+),
+ (%nav.class;)*)>
+<!--end of section.element-->]]>
+
+<!ENTITY % section.attlist "INCLUDE">
+<![ %section.attlist; [
+<!ATTLIST section
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %section.role.attrib;
+ %local.section.attrib;
+>
+<!--end of section.attlist-->]]>
+<!--end of section.module-->]]>
+
+<!ENTITY % sectioninfo.module "INCLUDE">
+<![ %sectioninfo.module; [
+<!ENTITY % sectioninfo.role.attrib "%role.attrib;">
+<!ENTITY % local.sectioninfo.attrib "">
+
+<!ENTITY % sectioninfo.element "INCLUDE">
+<![ %sectioninfo.element; [
+<!ELEMENT sectioninfo ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sectioninfo.element-->]]>
+
+<!ENTITY % sectioninfo.attlist "INCLUDE">
+<![ %sectioninfo.attlist; [
+<!ATTLIST sectioninfo
+ %common.attrib;
+ %sectioninfo.role.attrib;
+ %local.sectioninfo.attrib;
+>
+<!--end of sectioninfo.attlist-->]]>
+<!--end of sectioninfo.module-->]]>
+<!--end of section.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Sect1, Sect2, Sect3, Sect4, Sect5 .................................... -->
+
+<!ENTITY % sect1.module "INCLUDE">
+<![%sect1.module;[
+<!ENTITY % local.sect1.attrib "">
+<!ENTITY % sect1.role.attrib "%role.attrib;">
+
+<!ENTITY % sect1.element "INCLUDE">
+<![%sect1.element;[
+<!ELEMENT sect1 (sect1info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)* | sect2* | simplesect*))
+ | (%refentry.class;)+ | sect2+ | simplesect+), (%nav.class;)*)>
+<!--end of sect1.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect1.attlist "INCLUDE">
+<![%sect1.attlist;[
+<!ATTLIST sect1
+ renderas (sect2
+ |sect3
+ |sect4
+ |sect5) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect1.role.attrib;
+ %local.sect1.attrib;
+>
+<!--end of sect1.attlist-->]]>
+<!--end of sect1.module-->]]>
+
+<!ENTITY % sect2.module "INCLUDE">
+<![%sect2.module;[
+<!ENTITY % local.sect2.attrib "">
+<!ENTITY % sect2.role.attrib "%role.attrib;">
+
+<!ENTITY % sect2.element "INCLUDE">
+<![%sect2.element;[
+<!ELEMENT sect2 (sect2info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)* | sect3* | simplesect*))
+ | (%refentry.class;)+ | sect3+ | simplesect+), (%nav.class;)*)>
+<!--end of sect2.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect2.attlist "INCLUDE">
+<![%sect2.attlist;[
+<!ATTLIST sect2
+ renderas (sect1
+ |sect3
+ |sect4
+ |sect5) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect2.role.attrib;
+ %local.sect2.attrib;
+>
+<!--end of sect2.attlist-->]]>
+<!--end of sect2.module-->]]>
+
+<!ENTITY % sect3.module "INCLUDE">
+<![%sect3.module;[
+<!ENTITY % local.sect3.attrib "">
+<!ENTITY % sect3.role.attrib "%role.attrib;">
+
+<!ENTITY % sect3.element "INCLUDE">
+<![%sect3.element;[
+<!ELEMENT sect3 (sect3info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)* | sect4* | simplesect*))
+ | (%refentry.class;)+ | sect4+ | simplesect+), (%nav.class;)*)>
+<!--end of sect3.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect3.attlist "INCLUDE">
+<![%sect3.attlist;[
+<!ATTLIST sect3
+ renderas (sect1
+ |sect2
+ |sect4
+ |sect5) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect3.role.attrib;
+ %local.sect3.attrib;
+>
+<!--end of sect3.attlist-->]]>
+<!--end of sect3.module-->]]>
+
+<!ENTITY % sect4.module "INCLUDE">
+<![%sect4.module;[
+<!ENTITY % local.sect4.attrib "">
+<!ENTITY % sect4.role.attrib "%role.attrib;">
+
+<!ENTITY % sect4.element "INCLUDE">
+<![%sect4.element;[
+<!ELEMENT sect4 (sect4info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)* | sect5* | simplesect*))
+ | (%refentry.class;)+ | sect5+ | simplesect+), (%nav.class;)*)>
+<!--end of sect4.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect4.attlist "INCLUDE">
+<![%sect4.attlist;[
+<!ATTLIST sect4
+ renderas (sect1
+ |sect2
+ |sect3
+ |sect5) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect4.role.attrib;
+ %local.sect4.attrib;
+>
+<!--end of sect4.attlist-->]]>
+<!--end of sect4.module-->]]>
+
+<!ENTITY % sect5.module "INCLUDE">
+<![%sect5.module;[
+<!ENTITY % local.sect5.attrib "">
+<!ENTITY % sect5.role.attrib "%role.attrib;">
+
+<!ENTITY % sect5.element "INCLUDE">
+<![%sect5.element;[
+<!ELEMENT sect5 (sect5info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+, ((%refentry.class;)* | simplesect*))
+ | (%refentry.class;)+ | simplesect+), (%nav.class;)*)>
+<!--end of sect5.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect5.attlist "INCLUDE">
+<![%sect5.attlist;[
+<!ATTLIST sect5
+ renderas (sect1
+ |sect2
+ |sect3
+ |sect4) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect5.role.attrib;
+ %local.sect5.attrib;
+>
+<!--end of sect5.attlist-->]]>
+<!--end of sect5.module-->]]>
+
+<!ENTITY % simplesect.module "INCLUDE">
+<![%simplesect.module;[
+<!ENTITY % local.simplesect.attrib "">
+<!ENTITY % simplesect.role.attrib "%role.attrib;">
+
+<!ENTITY % simplesect.element "INCLUDE">
+<![%simplesect.element;[
+<!ELEMENT simplesect ((%sect.title.content;), (%divcomponent.mix;)+)>
+<!--end of simplesect.element-->]]>
+
+<!ENTITY % simplesect.attlist "INCLUDE">
+<![%simplesect.attlist;[
+<!ATTLIST simplesect
+ %common.attrib;
+ %simplesect.role.attrib;
+ %local.simplesect.attrib;
+>
+<!--end of simplesect.attlist-->]]>
+<!--end of simplesect.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Bibliography ......................................................... -->
+
+<!ENTITY % bibliography.content.module "INCLUDE">
+<![%bibliography.content.module;[
+<!ENTITY % bibliography.module "INCLUDE">
+<![%bibliography.module;[
+<!ENTITY % local.bibliography.attrib "">
+<!ENTITY % bibliography.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliography.element "INCLUDE">
+<![%bibliography.element;[
+<!ELEMENT bibliography (bibliographyinfo?,
+ (%bookcomponent.title.content;)?,
+ (%component.mix;)*,
+ (bibliodiv+ | (biblioentry|bibliomixed)+))>
+<!--end of bibliography.element-->]]>
+
+<!ENTITY % bibliography.attlist "INCLUDE">
+<![%bibliography.attlist;[
+<!ATTLIST bibliography
+ %status.attrib;
+ %common.attrib;
+ %bibliography.role.attrib;
+ %local.bibliography.attrib;
+>
+<!--end of bibliography.attlist-->]]>
+<!--end of bibliography.module-->]]>
+
+<!ENTITY % bibliodiv.module "INCLUDE">
+<![%bibliodiv.module;[
+<!ENTITY % local.bibliodiv.attrib "">
+<!ENTITY % bibliodiv.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliodiv.element "INCLUDE">
+<![%bibliodiv.element;[
+<!ELEMENT bibliodiv ((%sect.title.content;)?, (%component.mix;)*,
+ (biblioentry|bibliomixed)+)>
+<!--end of bibliodiv.element-->]]>
+
+<!ENTITY % bibliodiv.attlist "INCLUDE">
+<![%bibliodiv.attlist;[
+<!ATTLIST bibliodiv
+ %status.attrib;
+ %common.attrib;
+ %bibliodiv.role.attrib;
+ %local.bibliodiv.attrib;
+>
+<!--end of bibliodiv.attlist-->]]>
+<!--end of bibliodiv.module-->]]>
+<!--end of bibliography.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Glossary ............................................................. -->
+
+<!ENTITY % glossary.content.module "INCLUDE">
+<![%glossary.content.module;[
+<!ENTITY % glossary.module "INCLUDE">
+<![%glossary.module;[
+<!ENTITY % local.glossary.attrib "">
+<!ENTITY % glossary.role.attrib "%role.attrib;">
+
+<!ENTITY % glossary.element "INCLUDE">
+<![%glossary.element;[
+<!ELEMENT glossary (glossaryinfo?,
+ (%bookcomponent.title.content;)?,
+ (%component.mix;)*,
+ (glossdiv+ | glossentry+), bibliography?)>
+<!--end of glossary.element-->]]>
+
+<!ENTITY % glossary.attlist "INCLUDE">
+<![%glossary.attlist;[
+<!ATTLIST glossary
+ %status.attrib;
+ %common.attrib;
+ %glossary.role.attrib;
+ %local.glossary.attrib;
+>
+<!--end of glossary.attlist-->]]>
+<!--end of glossary.module-->]]>
+
+<!ENTITY % glossdiv.module "INCLUDE">
+<![%glossdiv.module;[
+<!ENTITY % local.glossdiv.attrib "">
+<!ENTITY % glossdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % glossdiv.element "INCLUDE">
+<![%glossdiv.element;[
+<!ELEMENT glossdiv ((%sect.title.content;), (%component.mix;)*,
+ glossentry+)>
+<!--end of glossdiv.element-->]]>
+
+<!ENTITY % glossdiv.attlist "INCLUDE">
+<![%glossdiv.attlist;[
+<!ATTLIST glossdiv
+ %status.attrib;
+ %common.attrib;
+ %glossdiv.role.attrib;
+ %local.glossdiv.attrib;
+>
+<!--end of glossdiv.attlist-->]]>
+<!--end of glossdiv.module-->]]>
+<!--end of glossary.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Index and SetIndex ................................................... -->
+
+<!ENTITY % index.content.module "INCLUDE">
+<![%index.content.module;[
+<!ENTITY % indexes.module "INCLUDE">
+<![%indexes.module;[
+<!ENTITY % local.indexes.attrib "">
+<!ENTITY % indexes.role.attrib "%role.attrib;">
+
+<!ENTITY % index.element "INCLUDE">
+<![%index.element;[
+<!ELEMENT index (indexinfo?,
+ (%bookcomponent.title.content;)?,
+ (%component.mix;)*,
+ (indexdiv* | indexentry*))>
+<!--end of index.element-->]]>
+
+<!ENTITY % index.attlist "INCLUDE">
+<![%index.attlist;[
+<!ATTLIST index
+ %common.attrib;
+ %indexes.role.attrib;
+ %local.indexes.attrib;
+>
+<!--end of index.attlist-->]]>
+
+<!ENTITY % setindex.element "INCLUDE">
+<![%setindex.element;[
+<!ELEMENT setindex (setindexinfo?,
+ (%bookcomponent.title.content;)?,
+ (%component.mix;)*, (indexdiv* | indexentry*))>
+<!--end of setindex.element-->]]>
+
+<!ENTITY % setindex.attlist "INCLUDE">
+<![%setindex.attlist;[
+<!ATTLIST setindex
+ %common.attrib;
+ %indexes.role.attrib;
+ %local.indexes.attrib;
+>
+<!--end of setindex.attlist-->]]>
+<!--end of indexes.module-->]]>
+
+<!ENTITY % indexdiv.module "INCLUDE">
+<![%indexdiv.module;[
+
+<!-- SegmentedList in this content is useful for marking up permuted
+ indices. -->
+
+<!ENTITY % local.indexdiv.attrib "">
+<!ENTITY % indexdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % indexdiv.element "INCLUDE">
+<![%indexdiv.element;[
+<!ELEMENT indexdiv ((%sect.title.content;)?, ((%indexdivcomponent.mix;)*,
+ (indexentry+ | segmentedlist)))>
+<!--end of indexdiv.element-->]]>
+
+<!ENTITY % indexdiv.attlist "INCLUDE">
+<![%indexdiv.attlist;[
+<!ATTLIST indexdiv
+ %common.attrib;
+ %indexdiv.role.attrib;
+ %local.indexdiv.attrib;
+>
+<!--end of indexdiv.attlist-->]]>
+<!--end of indexdiv.module-->]]>
+
+<!ENTITY % indexentry.module "INCLUDE">
+<![%indexentry.module;[
+<!-- Index entries appear in the index, not the text. -->
+
+<!ENTITY % local.indexentry.attrib "">
+<!ENTITY % indexentry.role.attrib "%role.attrib;">
+
+<!ENTITY % indexentry.element "INCLUDE">
+<![%indexentry.element;[
+<!ELEMENT indexentry (primaryie, (seeie|seealsoie)*,
+ (secondaryie, (seeie|seealsoie|tertiaryie)*)*)>
+<!--end of indexentry.element-->]]>
+
+<!ENTITY % indexentry.attlist "INCLUDE">
+<![%indexentry.attlist;[
+<!ATTLIST indexentry
+ %common.attrib;
+ %indexentry.role.attrib;
+ %local.indexentry.attrib;
+>
+<!--end of indexentry.attlist-->]]>
+<!--end of indexentry.module-->]]>
+
+<!ENTITY % primsecterie.module "INCLUDE">
+<![%primsecterie.module;[
+<!ENTITY % local.primsecterie.attrib "">
+<!ENTITY % primsecterie.role.attrib "%role.attrib;">
+
+<!ENTITY % primaryie.element "INCLUDE">
+<![%primaryie.element;[
+<!ELEMENT primaryie (%ndxterm.char.mix;)*>
+<!--end of primaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % primaryie.attlist "INCLUDE">
+<![%primaryie.attlist;[
+<!ATTLIST primaryie
+ %linkends.attrib; %common.attrib;
+ %primsecterie.role.attrib;
+ %local.primsecterie.attrib;
+>
+<!--end of primaryie.attlist-->]]>
+
+<!ENTITY % secondaryie.element "INCLUDE">
+<![%secondaryie.element;[
+<!ELEMENT secondaryie (%ndxterm.char.mix;)*>
+<!--end of secondaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % secondaryie.attlist "INCLUDE">
+<![%secondaryie.attlist;[
+<!ATTLIST secondaryie
+ %linkends.attrib; %common.attrib;
+ %primsecterie.role.attrib;
+ %local.primsecterie.attrib;
+>
+<!--end of secondaryie.attlist-->]]>
+
+<!ENTITY % tertiaryie.element "INCLUDE">
+<![%tertiaryie.element;[
+<!ELEMENT tertiaryie (%ndxterm.char.mix;)*>
+<!--end of tertiaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % tertiaryie.attlist "INCLUDE">
+<![%tertiaryie.attlist;[
+<!ATTLIST tertiaryie
+ %linkends.attrib; %common.attrib;
+ %primsecterie.role.attrib;
+ %local.primsecterie.attrib;
+>
+<!--end of tertiaryie.attlist-->]]>
+
+<!--end of primsecterie.module-->]]>
+
+<!ENTITY % seeie.module "INCLUDE">
+<![%seeie.module;[
+<!ENTITY % local.seeie.attrib "">
+<!ENTITY % seeie.role.attrib "%role.attrib;">
+
+<!ENTITY % seeie.element "INCLUDE">
+<![%seeie.element;[
+<!ELEMENT seeie (%ndxterm.char.mix;)*>
+<!--end of seeie.element-->]]>
+
+<!-- to IndexEntry to look up -->
+
+
+<!ENTITY % seeie.attlist "INCLUDE">
+<![%seeie.attlist;[
+<!ATTLIST seeie
+ %linkend.attrib; %common.attrib;
+ %seeie.role.attrib;
+ %local.seeie.attrib;
+>
+<!--end of seeie.attlist-->]]>
+<!--end of seeie.module-->]]>
+
+<!ENTITY % seealsoie.module "INCLUDE">
+<![%seealsoie.module;[
+<!ENTITY % local.seealsoie.attrib "">
+<!ENTITY % seealsoie.role.attrib "%role.attrib;">
+
+<!ENTITY % seealsoie.element "INCLUDE">
+<![%seealsoie.element;[
+<!ELEMENT seealsoie (%ndxterm.char.mix;)*>
+<!--end of seealsoie.element-->]]>
+
+<!-- to related IndexEntries -->
+
+
+<!ENTITY % seealsoie.attlist "INCLUDE">
+<![%seealsoie.attlist;[
+<!ATTLIST seealsoie
+ %linkends.attrib; %common.attrib;
+ %seealsoie.role.attrib;
+ %local.seealsoie.attrib;
+>
+<!--end of seealsoie.attlist-->]]>
+<!--end of seealsoie.module-->]]>
+<!--end of index.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- RefEntry ............................................................. -->
+
+<!ENTITY % refentry.content.module "INCLUDE">
+<![%refentry.content.module;[
+<!ENTITY % refentry.module "INCLUDE">
+<![%refentry.module;[
+<!ENTITY % local.refentry.attrib "">
+<!ENTITY % refentry.role.attrib "%role.attrib;">
+
+<!ENTITY % refentry.element "INCLUDE">
+<![%refentry.element;[
+<!ELEMENT refentry ((%ndxterm.class;)*,
+ refentryinfo?, refmeta?, (remark|%link.char.class;)*,
+ refnamediv, refsynopsisdiv?, refsect1+)>
+<!--end of refentry.element-->]]>
+
+<!ENTITY % refentry.attlist "INCLUDE">
+<![%refentry.attlist;[
+<!ATTLIST refentry
+ %status.attrib;
+ %common.attrib;
+ %refentry.role.attrib;
+ %local.refentry.attrib;
+>
+<!--end of refentry.attlist-->]]>
+<!--end of refentry.module-->]]>
+
+<!ENTITY % refmeta.module "INCLUDE">
+<![%refmeta.module;[
+<!ENTITY % local.refmeta.attrib "">
+<!ENTITY % refmeta.role.attrib "%role.attrib;">
+
+<!ENTITY % refmeta.element "INCLUDE">
+<![%refmeta.element;[
+<!ELEMENT refmeta ((%ndxterm.class;)*,
+ refentrytitle, manvolnum?, refmiscinfo*,
+ (%ndxterm.class;)*)>
+<!--end of refmeta.element-->]]>
+
+<!ENTITY % refmeta.attlist "INCLUDE">
+<![%refmeta.attlist;[
+<!ATTLIST refmeta
+ %common.attrib;
+ %refmeta.role.attrib;
+ %local.refmeta.attrib;
+>
+<!--end of refmeta.attlist-->]]>
+<!--end of refmeta.module-->]]>
+
+<!ENTITY % refmiscinfo.module "INCLUDE">
+<![%refmiscinfo.module;[
+<!ENTITY % local.refmiscinfo.attrib "">
+<!ENTITY % refmiscinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refmiscinfo.element "INCLUDE">
+<![%refmiscinfo.element;[
+<!ELEMENT refmiscinfo (%docinfo.char.mix;)*>
+<!--end of refmiscinfo.element-->]]>
+
+<!-- Class: Freely assignable parameter; no default -->
+
+
+<!ENTITY % refmiscinfo.attlist "INCLUDE">
+<![%refmiscinfo.attlist;[
+<!ATTLIST refmiscinfo
+ class CDATA #IMPLIED
+ %common.attrib;
+ %refmiscinfo.role.attrib;
+ %local.refmiscinfo.attrib;
+>
+<!--end of refmiscinfo.attlist-->]]>
+<!--end of refmiscinfo.module-->]]>
+
+<!ENTITY % refnamediv.module "INCLUDE">
+<![%refnamediv.module;[
+<!ENTITY % local.refnamediv.attrib "">
+<!ENTITY % refnamediv.role.attrib "%role.attrib;">
+
+<!ENTITY % refnamediv.element "INCLUDE">
+<![%refnamediv.element;[
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+ (remark|%link.char.class;)*)>
+<!--end of refnamediv.element-->]]>
+
+<!ENTITY % refnamediv.attlist "INCLUDE">
+<![%refnamediv.attlist;[
+<!ATTLIST refnamediv
+ %common.attrib;
+ %refnamediv.role.attrib;
+ %local.refnamediv.attrib;
+>
+<!--end of refnamediv.attlist-->]]>
+<!--end of refnamediv.module-->]]>
+
+<!ENTITY % refdescriptor.module "INCLUDE">
+<![%refdescriptor.module;[
+<!ENTITY % local.refdescriptor.attrib "">
+<!ENTITY % refdescriptor.role.attrib "%role.attrib;">
+
+<!ENTITY % refdescriptor.element "INCLUDE">
+<![%refdescriptor.element;[
+<!ELEMENT refdescriptor (%refname.char.mix;)*>
+<!--end of refdescriptor.element-->]]>
+
+<!ENTITY % refdescriptor.attlist "INCLUDE">
+<![%refdescriptor.attlist;[
+<!ATTLIST refdescriptor
+ %common.attrib;
+ %refdescriptor.role.attrib;
+ %local.refdescriptor.attrib;
+>
+<!--end of refdescriptor.attlist-->]]>
+<!--end of refdescriptor.module-->]]>
+
+<!ENTITY % refname.module "INCLUDE">
+<![%refname.module;[
+<!ENTITY % local.refname.attrib "">
+<!ENTITY % refname.role.attrib "%role.attrib;">
+
+<!ENTITY % refname.element "INCLUDE">
+<![%refname.element;[
+<!ELEMENT refname (%refname.char.mix;)*>
+<!--end of refname.element-->]]>
+
+<!ENTITY % refname.attlist "INCLUDE">
+<![%refname.attlist;[
+<!ATTLIST refname
+ %common.attrib;
+ %refname.role.attrib;
+ %local.refname.attrib;
+>
+<!--end of refname.attlist-->]]>
+<!--end of refname.module-->]]>
+
+<!ENTITY % refpurpose.module "INCLUDE">
+<![%refpurpose.module;[
+<!ENTITY % local.refpurpose.attrib "">
+<!ENTITY % refpurpose.role.attrib "%role.attrib;">
+
+<!ENTITY % refpurpose.element "INCLUDE">
+<![%refpurpose.element;[
+<!ELEMENT refpurpose (%refinline.char.mix;)*>
+<!--end of refpurpose.element-->]]>
+
+<!ENTITY % refpurpose.attlist "INCLUDE">
+<![%refpurpose.attlist;[
+<!ATTLIST refpurpose
+ %common.attrib;
+ %refpurpose.role.attrib;
+ %local.refpurpose.attrib;
+>
+<!--end of refpurpose.attlist-->]]>
+<!--end of refpurpose.module-->]]>
+
+<!ENTITY % refclass.module "INCLUDE">
+<![%refclass.module;[
+<!ENTITY % local.refclass.attrib "">
+<!ENTITY % refclass.role.attrib "%role.attrib;">
+
+<!ENTITY % refclass.element "INCLUDE">
+<![%refclass.element;[
+<!ELEMENT refclass (%refclass.char.mix;)*>
+<!--end of refclass.element-->]]>
+
+<!ENTITY % refclass.attlist "INCLUDE">
+<![%refclass.attlist;[
+<!ATTLIST refclass
+ %common.attrib;
+ %refclass.role.attrib;
+ %local.refclass.attrib;
+>
+<!--end of refclass.attlist-->]]>
+<!--end of refclass.module-->]]>
+
+<!ENTITY % refsynopsisdiv.module "INCLUDE">
+<![%refsynopsisdiv.module;[
+<!ENTITY % local.refsynopsisdiv.attrib "">
+<!ENTITY % refsynopsisdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % refsynopsisdiv.element "INCLUDE">
+<![%refsynopsisdiv.element;[
+<!ELEMENT refsynopsisdiv (refsynopsisdivinfo?, (%refsect.title.content;)?,
+ (((%refcomponent.mix;)+, refsect2*) | (refsect2+)))>
+<!--end of refsynopsisdiv.element-->]]>
+
+<!ENTITY % refsynopsisdiv.attlist "INCLUDE">
+<![%refsynopsisdiv.attlist;[
+<!ATTLIST refsynopsisdiv
+ %common.attrib;
+ %refsynopsisdiv.role.attrib;
+ %local.refsynopsisdiv.attrib;
+>
+<!--end of refsynopsisdiv.attlist-->]]>
+<!--end of refsynopsisdiv.module-->]]>
+
+<!ENTITY % refsect1.module "INCLUDE">
+<![%refsect1.module;[
+<!ENTITY % local.refsect1.attrib "">
+<!ENTITY % refsect1.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect1.element "INCLUDE">
+<![%refsect1.element;[
+<!ELEMENT refsect1 (refsect1info?, (%refsect.title.content;),
+ (((%refcomponent.mix;)+, refsect2*) | refsect2+))>
+<!--end of refsect1.element-->]]>
+
+<!ENTITY % refsect1.attlist "INCLUDE">
+<![%refsect1.attlist;[
+<!ATTLIST refsect1
+ %status.attrib;
+ %common.attrib;
+ %refsect1.role.attrib;
+ %local.refsect1.attrib;
+>
+<!--end of refsect1.attlist-->]]>
+<!--end of refsect1.module-->]]>
+
+<!ENTITY % refsect2.module "INCLUDE">
+<![%refsect2.module;[
+<!ENTITY % local.refsect2.attrib "">
+<!ENTITY % refsect2.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect2.element "INCLUDE">
+<![%refsect2.element;[
+<!ELEMENT refsect2 (refsect2info?, (%refsect.title.content;),
+ (((%refcomponent.mix;)+, refsect3*) | refsect3+))>
+<!--end of refsect2.element-->]]>
+
+<!ENTITY % refsect2.attlist "INCLUDE">
+<![%refsect2.attlist;[
+<!ATTLIST refsect2
+ %status.attrib;
+ %common.attrib;
+ %refsect2.role.attrib;
+ %local.refsect2.attrib;
+>
+<!--end of refsect2.attlist-->]]>
+<!--end of refsect2.module-->]]>
+
+<!ENTITY % refsect3.module "INCLUDE">
+<![%refsect3.module;[
+<!ENTITY % local.refsect3.attrib "">
+<!ENTITY % refsect3.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect3.element "INCLUDE">
+<![%refsect3.element;[
+<!ELEMENT refsect3 (refsect3info?, (%refsect.title.content;),
+ (%refcomponent.mix;)+)>
+<!--end of refsect3.element-->]]>
+
+<!ENTITY % refsect3.attlist "INCLUDE">
+<![%refsect3.attlist;[
+<!ATTLIST refsect3
+ %status.attrib;
+ %common.attrib;
+ %refsect3.role.attrib;
+ %local.refsect3.attrib;
+>
+<!--end of refsect3.attlist-->]]>
+<!--end of refsect3.module-->]]>
+<!--end of refentry.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Article .............................................................. -->
+
+<!ENTITY % article.module "INCLUDE">
+<![%article.module;[
+<!-- An Article is a chapter-level, stand-alone document that is often,
+ but need not be, collected into a Book. -->
+<!--FUTURE USE (V4.0):
+......................
+The %nav.class; entity now allows ToC; ToCchap will be allowed instead.
+RefEntry will be removed from the main content of Article.
+......................
+-->
+
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+
+<!ENTITY % article.element "INCLUDE">
+<![%article.element;[
+<!ELEMENT article ((%div.title.content;)?, articleinfo?, tocchap?, lot*,
+ (%bookcomponent.content;),
+ ((%nav.class;) | (%appendix.class;) | ackno)*)>
+<!--end of article.element-->]]>
+
+<!-- Class: Indicates the type of a particular article;
+ all articles have the same structure and general purpose.
+ No default. -->
+<!-- ParentBook: ID of the enclosing Book -->
+
+
+<!ENTITY % article.attlist "INCLUDE">
+<![%article.attlist;[
+<!ATTLIST article
+ class (journalarticle
+ |productsheet
+ |whitepaper
+ |techreport
+ |specification
+ |faq) #IMPLIED
+ parentbook IDREF #IMPLIED
+ %status.attrib;
+ %common.attrib;
+ %article.role.attrib;
+ %local.article.attrib;
+>
+<!--end of article.attlist-->]]>
+<!--end of article.module-->]]>
+
+<!-- End of DocBook XML document hierarchy module V4.0 .................... -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/4.0/dbnotnx.mod b/tests/docbook/dtd/4.0/dbnotnx.mod
new file mode 100755
index 00000000..d183a066
--- /dev/null
+++ b/tests/docbook/dtd/4.0/dbnotnx.mod
@@ -0,0 +1,97 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML notations module V4.0 .................................... -->
+<!-- File dbnotnx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, and the Organization for the Advancement
+ of Structured Information Standards (OASIS).
+
+ $Id$
+
+ Permission to use, copy, modify and distribute the DocBook XML DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the entity declarations for the standard ISO
+ entity sets used by DocBook.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbnotn PUBLIC
+ "-//OASIS//ENTITIES DocBook XML Notations V4.0//EN"
+ "dbnotnx.mod">
+ %dbnotn;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+ "BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+ | EPS | EQN | FAX | GIF | GIF87a | GIF89a
+ | JPG | JPEG | IGES | PCX
+ | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+ | linespecific
+ %local.notation.class;">
+
+<!NOTATION BMP PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF SYSTEM "DITROFF">
+<!NOTATION DVI SYSTEM "DVI">
+<!NOTATION EPS PUBLIC
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN SYSTEM "EQN">
+<!NOTATION FAX PUBLIC
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF SYSTEM "GIF">
+<!NOTATION GIF87a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+
+<!NOTATION GIF89a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG SYSTEM "JPG">
+<!NOTATION JPEG SYSTEM "JPG">
+<!NOTATION IGES PUBLIC
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC SYSTEM "PIC">
+<!NOTATION PNG SYSTEM "http://www.w3.org/TR/REC-png">
+<!NOTATION PS SYSTEM "PS">
+<!NOTATION SGML PUBLIC
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL SYSTEM "TBL">
+<!NOTATION TEX PUBLIC
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF SYSTEM "TIFF">
+<!NOTATION WMF PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG SYSTEM "WPG"> <!--WordPerfect Graphic format-->
+<!NOTATION linespecific SYSTEM "linespecific">
+
+<!-- End of DocBook XML notations module V4.0 ............................. -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/4.0/dbpoolx.mod b/tests/docbook/dtd/4.0/dbpoolx.mod
new file mode 100755
index 00000000..a13afdba
--- /dev/null
+++ b/tests/docbook/dtd/4.0/dbpoolx.mod
@@ -0,0 +1,7573 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML information pool module V4.0 ............................. -->
+<!-- File dbpoolx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh and the Organization for the Advancement
+ of Structured Information Standards (OASIS).
+
+ $Id$
+
+ Permission to use, copy, modify and distribute the DocBook XML DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook XML DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the definitions for the objects, inline
+ elements, and so on that are available to be used as the main
+ content of DocBook documents. Some elements are useful for general
+ publishing, and others are useful specifically for computer
+ documentation.
+
+ This module has the following dependencies on other modules:
+
+ o It assumes that a %notation.class; entity is defined by the
+ driver file or other high-level module. This entity is
+ referenced in the NOTATION attributes for the graphic-related and
+ ModeSpec elements.
+
+ o It assumes that an appropriately parameterized table module is
+ available for use with the table-related elements.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbpool PUBLIC
+ "-//OASIS//ELEMENTS DocBook XML Information Pool V4.0//EN"
+ "dbpoolx.mod">
+ %dbpool;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+
+<!-- ...................................................................... -->
+<!-- General-purpose semantics entities ................................... -->
+
+<!ENTITY % yesorno.attvals "CDATA">
+
+<!-- ...................................................................... -->
+<!-- Entities for module inclusions ....................................... -->
+
+<!ENTITY % dbpool.redecl.module "IGNORE">
+
+<!-- ...................................................................... -->
+<!-- Entities for element classes and mixtures ............................ -->
+
+<!-- "Ubiquitous" classes: ndxterm.class and beginpage -->
+
+<!ENTITY % local.ndxterm.class "">
+<!ENTITY % ndxterm.class
+ "indexterm %local.ndxterm.class;">
+
+<!-- Object-level classes ................................................. -->
+
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+ "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist
+ |simplelist|variablelist %local.list.class;">
+
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+ "caution|important|note|tip|warning %local.admon.class;">
+
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+ "literallayout|programlisting|programlistingco|screen
+ |screenco|screenshot %local.linespecific.class;">
+
+<!ENTITY % local.method.synop.class "">
+<!ENTITY % method.synop.class
+ "constructorsynopsis
+ |destructorsynopsis
+ |methodsynopsis %local.method.synop.class;">
+
+<!ENTITY % local.synop.class "">
+<!ENTITY % synop.class
+ "synopsis|cmdsynopsis|funcsynopsis
+ |classsynopsis|fieldsynopsis
+ |%method.synop.class; %local.synop.class;">
+
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+ "formalpara|para|simpara %local.para.class;">
+
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+ "address|blockquote
+ |graphic|graphicco|mediaobject|mediaobjectco
+ |informalequation
+ |informalexample
+ |informalfigure
+ |informaltable %local.informal.class;">
+
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+ "equation|example|figure|table %local.formal.class;">
+
+<!-- The DocBook TC may produce an official EBNF module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % ebnf.block.hook "">
+
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+ "msgset|procedure|sidebar|qandaset
+ %ebnf.block.hook;
+ %local.compound.class;">
+
+<!ENTITY % local.genobj.class "">
+<!ENTITY % genobj.class
+ "anchor|bridgehead|remark|highlights
+ %local.genobj.class;">
+
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+ "abstract|authorblurb|epigraph
+ %local.descobj.class;">
+
+<!-- Character-level classes .............................................. -->
+
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % xref.char.class
+ "footnoteref|xref %local.xref.char.class;">
+
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+ "abbrev|acronym|citation|citerefentry|citetitle|emphasis
+ |firstterm|foreignphrase|glossterm|footnote|phrase
+ |quote|trademark|wordasword %local.gen.char.class;">
+
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+ "link|olink|ulink %local.link.char.class;">
+
+<!-- The DocBook TC may produce an official EBNF module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % ebnf.inline.hook "">
+
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+ "action|application
+ |classname|methodname|interfacename|exceptionname
+ |ooclass|oointerface|ooexception
+ |command|computeroutput
+ |database|email|envar|errorcode|errorname|errortype|filename
+ |function|guibutton|guiicon|guilabel|guimenu|guimenuitem
+ |guisubmenu|hardware|interface|keycap
+ |keycode|keycombo|keysym|literal|constant|markup|medialabel
+ |menuchoice|mousebutton|option|optional|parameter
+ |prompt|property|replaceable|returnvalue|sgmltag|structfield
+ |structname|symbol|systemitem|token|type|userinput|varname
+ %ebnf.inline.hook;
+ %local.tech.char.class;">
+
+<!ENTITY % local.base.char.class "">
+<!ENTITY % base.char.class
+ "anchor %local.base.char.class;">
+
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+ "author|authorinitials|corpauthor|modespec|othercredit
+ |productname|productnumber|revhistory
+ %local.docinfo.char.class;">
+
+<!ENTITY % local.other.char.class "">
+<!ENTITY % other.char.class
+ "remark|subscript|superscript %local.other.char.class;">
+
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+ "inlinegraphic|inlinemediaobject|inlineequation %local.inlineobj.char.class;">
+
+<!-- Redeclaration placeholder ............................................ -->
+
+<!-- For redeclaring entities that are declared after this point while
+ retaining their references to the entities that are declared before
+ this point -->
+
+<![%dbpool.redecl.module;[
+<!-- Defining rdbpool here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbpool "">
+%rdbpool;
+<!--end of dbpool.redecl.module-->]]>
+
+<!-- Object-level mixtures ................................................ -->
+
+<!--
+ list admn line synp para infm form cmpd gen desc
+Component mixture X X X X X X X X X X
+Sidebar mixture X X X X X X X a X
+Footnote mixture X X X X X
+Example mixture X X X X X
+Highlights mixture X X X
+Paragraph mixture X X X X
+Admonition mixture X X X X X X b c
+Figure mixture X X X
+Table entry mixture X X X X d
+Glossary def mixture X X X X X e
+Legal notice mixture X X X X f
+
+a. Just Procedure; not Sidebar itself or MsgSet.
+b. No MsgSet.
+c. No Highlights.
+d. Just Graphic; no other informal objects.
+e. No Anchor, BridgeHead, or Highlights.
+f. Just BlockQuote; no other informal objects.
+-->
+
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%genobj.class; |%descobj.class;
+ |%ndxterm.class; |beginpage
+ %local.component.mix;">
+
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |procedure
+ |%genobj.class;
+ |%ndxterm.class; |beginpage
+ %local.sidebar.mix;">
+
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % qandaset.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |procedure
+ |%genobj.class;
+ |%ndxterm.class;
+ %local.qandaset.mix;">
+
+<!ENTITY % local.revdescription.mix "">
+<!ENTITY % revdescription.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |procedure
+ |%genobj.class;
+ |%ndxterm.class;
+ %local.revdescription.mix;">
+
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+ "%list.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ %local.footnote.mix;">
+
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+ "%list.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%ndxterm.class; |beginpage
+ %local.example.mix;">
+
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % highlights.mix
+ "%list.class; |%admon.class;
+ |%para.class;
+ |%ndxterm.class;
+ %local.highlights.mix;">
+
+<!-- %formal.class; is explicitly excluded from many contexts in which
+ paragraphs are used -->
+<!ENTITY % local.para.mix "">
+<!ENTITY % para.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%informal.class;
+ |%formal.class;
+ %local.para.mix;">
+
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+ "%list.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |procedure|sidebar
+ |anchor|bridgehead|remark
+ |%ndxterm.class; |beginpage
+ %local.admon.mix;">
+
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+ "%linespecific.class; |%synop.class;
+ |%informal.class;
+ |%ndxterm.class; |beginpage
+ %local.figure.mix;">
+
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |graphic|mediaobject
+ %local.tabentry.mix;">
+
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % glossdef.mix
+ "%list.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ |remark
+ |%ndxterm.class; |beginpage
+ %local.glossdef.mix;">
+
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ |%ndxterm.class; |beginpage
+ %local.legalnotice.mix;">
+
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.textobject.mix;">
+
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix
+ "videoobject|audioobject|imageobject %local.mediaobject.mix;">
+
+<!-- Character-level mixtures ............................................. -->
+
+<!--
+ #PCD xref word link cptr base dnfo othr inob (synop)
+para.char.mix X X X X X X X X X
+title.char.mix X X X X X X X X X
+ndxterm.char.mix X X X X X X X X a
+cptr.char.mix X X X X X a
+smallcptr.char.mix X b a
+word.char.mix X c X X X a
+docinfo.char.mix X d X b X a
+
+a. Just InlineGraphic; no InlineEquation.
+b. Just Replaceable; no other computer terms.
+c. Just Emphasis and Trademark; no other word elements.
+d. Just Acronym, Emphasis, and Trademark; no other word elements.
+-->
+
+<!-- The DocBook TC may produce an official forms module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % forminlines.hook "">
+
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+ "#PCDATA
+ |%xref.char.class; |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class; |%docinfo.char.class;
+ |%other.char.class; |%inlineobj.char.class;
+ |%synop.class;
+ |%ndxterm.class; |beginpage
+ %forminlines.hook;
+ %local.para.char.mix;">
+
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+ "#PCDATA
+ |%xref.char.class; |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class; |%docinfo.char.class;
+ |%other.char.class; |%inlineobj.char.class;
+ |%ndxterm.class;
+ %local.title.char.mix;">
+
+<!ENTITY % local.ndxterm.char.mix "">
+<!ENTITY % ndxterm.char.mix
+ "#PCDATA
+ |%xref.char.class; |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class; |%docinfo.char.class;
+ |%other.char.class; |inlinegraphic|inlinemediaobject
+ %local.ndxterm.char.mix;">
+
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+ "#PCDATA
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class;
+ |%other.char.class; |inlinegraphic|inlinemediaobject
+ |%ndxterm.class; |beginpage
+ %local.cptr.char.mix;">
+
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+ "#PCDATA
+ |replaceable
+ |inlinegraphic|inlinemediaobject
+ |%ndxterm.class; |beginpage
+ %local.smallcptr.char.mix;">
+
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+ "#PCDATA
+ |acronym|emphasis|trademark
+ |%link.char.class;
+ |%base.char.class;
+ |%other.char.class; |inlinegraphic|inlinemediaobject
+ |%ndxterm.class; |beginpage
+ %local.word.char.mix;">
+
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+ "#PCDATA
+ |%link.char.class;
+ |emphasis|trademark
+ |replaceable
+ |%other.char.class; |inlinegraphic|inlinemediaobject
+ |%ndxterm.class;
+ %local.docinfo.char.mix;">
+<!--ENTITY % bibliocomponent.mix (see Bibliographic section, below)-->
+<!--ENTITY % person.ident.mix (see Bibliographic section, below)-->
+
+<!-- ...................................................................... -->
+<!-- Entities for content models .......................................... -->
+
+<!ENTITY % formalobject.title.content "title, titleabbrev?">
+
+<!-- ...................................................................... -->
+<!-- Entities for attributes and attribute components ..................... -->
+
+<!-- Effectivity attributes ............................................... -->
+
+
+<!-- Arch: Computer or chip architecture to which element applies; no
+ default -->
+
+<!ENTITY % arch.attrib
+ "arch CDATA #IMPLIED">
+
+<!-- Condition: General-purpose effectivity attribute -->
+
+<!ENTITY % condition.attrib
+ "condition CDATA #IMPLIED">
+
+<!-- Conformance: Standards conformance characteristics -->
+
+<!ENTITY % conformance.attrib
+ "conformance NMTOKENS #IMPLIED">
+
+
+<!-- OS: Operating system to which element applies; no default -->
+
+<!ENTITY % os.attrib
+ "os CDATA #IMPLIED">
+
+
+<!-- Revision: Editorial revision to which element belongs; no default -->
+
+<!ENTITY % revision.attrib
+ "revision CDATA #IMPLIED">
+
+<!-- Security: Security classification; no default -->
+
+<!ENTITY % security.attrib
+ "security CDATA #IMPLIED">
+
+<!-- UserLevel: Level of user experience to which element applies; no
+ default -->
+
+<!ENTITY % userlevel.attrib
+ "userlevel CDATA #IMPLIED">
+
+
+<!-- Vendor: Computer vendor to which element applies; no default -->
+
+<!ENTITY % vendor.attrib
+ "vendor CDATA #IMPLIED">
+
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % effectivity.attrib
+ "%arch.attrib;
+ %condition.attrib;
+ %conformance.attrib;
+ %os.attrib;
+ %revision.attrib;
+ %security.attrib;
+ %userlevel.attrib;
+ %vendor.attrib;
+ %local.effectivity.attrib;"
+>
+
+<!-- Common attributes .................................................... -->
+
+
+<!-- Id: Unique identifier of element; no default -->
+
+<!ENTITY % id.attrib
+ "id ID #IMPLIED">
+
+
+<!-- Id: Unique identifier of element; a value must be supplied; no
+ default -->
+
+<!ENTITY % idreq.attrib
+ "id ID #REQUIRED">
+
+
+<!-- Lang: Indicator of language in which element is written, for
+ translation, character set management, etc.; no default -->
+
+<!ENTITY % lang.attrib
+ "lang CDATA #IMPLIED">
+
+
+<!-- Remap: Previous role of element before conversion; no default -->
+
+<!ENTITY % remap.attrib
+ "remap CDATA #IMPLIED">
+
+
+<!-- Role: New role of element in local environment; no default -->
+
+<!ENTITY % role.attrib
+ "role CDATA #IMPLIED">
+
+
+<!-- XRefLabel: Alternate labeling string for XRef text generation;
+ default is usually title or other appropriate label text already
+ contained in element -->
+
+<!ENTITY % xreflabel.attrib
+ "xreflabel CDATA #IMPLIED">
+
+
+<!-- RevisionFlag: Revision status of element; default is that element
+ wasn't revised -->
+
+<!ENTITY % revisionflag.attrib
+ "revisionflag (changed
+ |added
+ |deleted
+ |off) #IMPLIED">
+
+<!ENTITY % local.common.attrib "">
+
+<!-- Role is included explicitly on each element -->
+
+<!ENTITY % common.attrib
+ "%id.attrib;
+ %lang.attrib;
+ %remap.attrib;
+ %xreflabel.attrib;
+ %revisionflag.attrib;
+ %effectivity.attrib;
+ %local.common.attrib;"
+>
+
+
+<!-- Role is included explicitly on each element -->
+
+<!ENTITY % idreq.common.attrib
+ "%idreq.attrib;
+ %lang.attrib;
+ %remap.attrib;
+ %xreflabel.attrib;
+ %revisionflag.attrib;
+ %effectivity.attrib;
+ %local.common.attrib;"
+>
+
+<!-- Semi-common attributes and other attribute entities .................. -->
+
+<!ENTITY % local.graphics.attrib "">
+
+<!-- EntityRef: Name of an external entity containing the content
+ of the graphic -->
+<!-- FileRef: Filename, qualified by a pathname if desired,
+ designating the file containing the content of the graphic -->
+<!-- Format: Notation of the element content, if any -->
+<!-- SrcCredit: Information about the source of the Graphic -->
+<!-- Width: Same as CALS reprowid (desired width) -->
+<!-- Depth: Same as CALS reprodep (desired depth) -->
+<!-- Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ application-specific -->
+<!-- Scale: Conflation of CALS hscale and vscale -->
+<!-- Scalefit: Same as CALS scalefit -->
+
+<!ENTITY % graphics.attrib
+ "
+ entityref ENTITY #IMPLIED
+ fileref CDATA #IMPLIED
+ format (%notation.class;) #IMPLIED
+ srccredit CDATA #IMPLIED
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %local.graphics.attrib;"
+>
+
+<!ENTITY % local.keyaction.attrib "">
+
+<!-- Action: Key combination type; default is unspecified if one
+ child element, Simul if there is more than one; if value is
+ Other, the OtherAction attribute must have a nonempty value -->
+<!-- OtherAction: User-defined key combination type -->
+
+<!ENTITY % keyaction.attrib
+ "
+ action (click
+ |double-click
+ |press
+ |seq
+ |simul
+ |other) #IMPLIED
+ otheraction CDATA #IMPLIED
+ %local.keyaction.attrib;"
+>
+
+
+<!-- Label: Identifying number or string; default is usually the
+ appropriate number or string autogenerated by a formatter -->
+
+<!ENTITY % label.attrib
+ "label CDATA #IMPLIED">
+
+
+<!-- Format: whether element is assumed to contain significant white
+ space -->
+
+<!ENTITY % linespecific.attrib
+ "format NOTATION
+ (linespecific) 'linespecific'
+ linenumbering (numbered|unnumbered) #IMPLIED">
+
+
+<!-- Linkend: link to related information; no default -->
+
+<!ENTITY % linkend.attrib
+ "linkend IDREF #IMPLIED">
+
+
+<!-- Linkend: required link to related information -->
+
+<!ENTITY % linkendreq.attrib
+ "linkend IDREF #REQUIRED">
+
+
+<!-- Linkends: link to one or more sets of related information; no
+ default -->
+
+<!ENTITY % linkends.attrib
+ "linkends IDREFS #IMPLIED">
+
+
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+ "mark CDATA #IMPLIED
+ %local.mark.attrib;"
+>
+
+
+<!-- MoreInfo: whether element's content has an associated RefEntry -->
+
+<!ENTITY % moreinfo.attrib
+ "moreinfo (refentry|none) 'none'">
+
+
+<!-- Pagenum: number of page on which element appears; no default -->
+
+<!ENTITY % pagenum.attrib
+ "pagenum CDATA #IMPLIED">
+
+<!ENTITY % local.status.attrib "">
+
+<!-- Status: Editorial or publication status of the element
+ it applies to, such as "in review" or "approved for distribution" -->
+
+<!ENTITY % status.attrib
+ "status CDATA #IMPLIED
+ %local.status.attrib;"
+>
+
+
+<!-- Width: width of the longest line in the element to which it
+ pertains, in number of characters -->
+
+<!ENTITY % width.attrib
+ "width CDATA #IMPLIED">
+
+<!-- ...................................................................... -->
+<!-- Title elements ....................................................... -->
+
+<!ENTITY % title.module "INCLUDE">
+<![%title.module;[
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+
+<!ENTITY % title.element "INCLUDE">
+<![%title.element;[
+<!ELEMENT title (%title.char.mix;)*>
+<!--end of title.element-->]]>
+
+<!ENTITY % title.attlist "INCLUDE">
+<![%title.attlist;[
+<!ATTLIST title
+ %pagenum.attrib;
+ %common.attrib;
+ %title.role.attrib;
+ %local.title.attrib;
+>
+<!--end of title.attlist-->]]>
+<!--end of title.module-->]]>
+
+<!ENTITY % titleabbrev.module "INCLUDE">
+<![%titleabbrev.module;[
+<!ENTITY % local.titleabbrev.attrib "">
+<!ENTITY % titleabbrev.role.attrib "%role.attrib;">
+
+<!ENTITY % titleabbrev.element "INCLUDE">
+<![%titleabbrev.element;[
+<!ELEMENT titleabbrev (%title.char.mix;)*>
+<!--end of titleabbrev.element-->]]>
+
+<!ENTITY % titleabbrev.attlist "INCLUDE">
+<![%titleabbrev.attlist;[
+<!ATTLIST titleabbrev
+ %common.attrib;
+ %titleabbrev.role.attrib;
+ %local.titleabbrev.attrib;
+>
+<!--end of titleabbrev.attlist-->]]>
+<!--end of titleabbrev.module-->]]>
+
+<!ENTITY % subtitle.module "INCLUDE">
+<![%subtitle.module;[
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % subtitle.element "INCLUDE">
+<![%subtitle.element;[
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!--end of subtitle.element-->]]>
+
+<!ENTITY % subtitle.attlist "INCLUDE">
+<![%subtitle.attlist;[
+<!ATTLIST subtitle
+ %common.attrib;
+ %subtitle.role.attrib;
+ %local.subtitle.attrib;
+>
+<!--end of subtitle.attlist-->]]>
+<!--end of subtitle.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Bibliographic entities and elements .................................. -->
+
+<!-- The bibliographic elements are typically used in the document
+ hierarchy. They do not appear in content models of information
+ pool elements. See also the document information elements,
+ below. -->
+
+<!ENTITY % local.person.ident.mix "">
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new
+wrapper element created to allow association of those two elements with
+Author name information.
+......................
+-->
+<!ENTITY % person.ident.mix
+ "honorific|firstname|surname|lineage|othername|affiliation
+ |authorblurb|contrib %local.person.ident.mix;">
+
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+ "abbrev|abstract|address|artpagenums|author
+ |authorgroup|authorinitials|bibliomisc|biblioset
+ |collab|confgroup|contractnum|contractsponsor
+ |copyright|corpauthor|corpname|date|edition
+ |editor|invpartnumber|isbn|issn|issuenum|orgname
+ |othercredit|pagenums|printhistory|productname
+ |productnumber|pubdate|publisher|publishername
+ |pubsnumber|releaseinfo|revhistory|seriesvolnums
+ |subtitle|title|titleabbrev|volumenum|citetitle
+ |%person.ident.mix;
+ |%ndxterm.class;
+ %local.bibliocomponent.mix;">
+
+<!ENTITY % biblioentry.module "INCLUDE">
+<![%biblioentry.module;[
+<!ENTITY % local.biblioentry.attrib "">
+<!ENTITY % biblioentry.role.attrib "%role.attrib;">
+
+<!ENTITY % biblioentry.element "INCLUDE">
+<![%biblioentry.element;[
+<!ELEMENT biblioentry ((articleinfo | (%bibliocomponent.mix;))+)>
+<!--end of biblioentry.element-->]]>
+
+<!ENTITY % biblioentry.attlist "INCLUDE">
+<![%biblioentry.attlist;[
+<!ATTLIST biblioentry
+ %common.attrib;
+ %biblioentry.role.attrib;
+ %local.biblioentry.attrib;
+>
+<!--end of biblioentry.attlist-->]]>
+<!--end of biblioentry.module-->]]>
+
+<!ENTITY % bibliomixed.module "INCLUDE">
+<![%bibliomixed.module;[
+<!ENTITY % local.bibliomixed.attrib "">
+<!ENTITY % bibliomixed.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliomixed.element "INCLUDE">
+<![%bibliomixed.element;[
+<!ELEMENT bibliomixed (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!--end of bibliomixed.element-->]]>
+
+<!ENTITY % bibliomixed.attlist "INCLUDE">
+<![%bibliomixed.attlist;[
+<!ATTLIST bibliomixed
+ %common.attrib;
+ %bibliomixed.role.attrib;
+ %local.bibliomixed.attrib;
+>
+<!--end of bibliomixed.attlist-->]]>
+<!--end of bibliomixed.module-->]]>
+
+<!ENTITY % articleinfo.module "INCLUDE">
+<![%articleinfo.module;[
+<!ENTITY % local.articleinfo.attrib "">
+<!ENTITY % articleinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % articleinfo.element "INCLUDE">
+<![%articleinfo.element;[
+<!ELEMENT articleinfo ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of articleinfo.element-->]]>
+
+<!ENTITY % articleinfo.attlist "INCLUDE">
+<![%articleinfo.attlist;[
+<!ATTLIST articleinfo
+ %common.attrib;
+ %articleinfo.role.attrib;
+ %local.articleinfo.attrib;
+>
+<!--end of articleinfo.attlist-->]]>
+<!--end of articleinfo.module-->]]>
+
+<!ENTITY % biblioset.module "INCLUDE">
+<![%biblioset.module;[
+<!ENTITY % local.biblioset.attrib "">
+<!ENTITY % biblioset.role.attrib "%role.attrib;">
+
+<!ENTITY % biblioset.element "INCLUDE">
+<![%biblioset.element;[
+<!ELEMENT biblioset ((%bibliocomponent.mix;)+)>
+<!--end of biblioset.element-->]]>
+
+<!-- Relation: Relationship of elements contained within BiblioSet -->
+
+
+<!ENTITY % biblioset.attlist "INCLUDE">
+<![%biblioset.attlist;[
+<!ATTLIST biblioset
+ relation CDATA #IMPLIED
+ %common.attrib;
+ %biblioset.role.attrib;
+ %local.biblioset.attrib;
+>
+<!--end of biblioset.attlist-->]]>
+<!--end of biblioset.module-->]]>
+
+<!ENTITY % bibliomset.module "INCLUDE">
+<![%bibliomset.module;[
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+
+<!ENTITY % bibliomset.element "INCLUDE">
+<![%bibliomset.element;[
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!--end of bibliomset.element-->]]>
+
+<!-- Relation: Relationship of elements contained within BiblioMSet -->
+
+
+<!ENTITY % bibliomset.attlist "INCLUDE">
+<![%bibliomset.attlist;[
+<!ATTLIST bibliomset
+ relation CDATA #IMPLIED
+ %bibliomset.role.attrib;
+ %common.attrib;
+ %local.bibliomset.attrib;
+>
+<!--end of bibliomset.attlist-->]]>
+<!--end of bibliomset.module-->]]>
+
+<!ENTITY % bibliomisc.module "INCLUDE">
+<![%bibliomisc.module;[
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliomisc.element "INCLUDE">
+<![%bibliomisc.element;[
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!--end of bibliomisc.element-->]]>
+
+<!ENTITY % bibliomisc.attlist "INCLUDE">
+<![%bibliomisc.attlist;[
+<!ATTLIST bibliomisc
+ %common.attrib;
+ %bibliomisc.role.attrib;
+ %local.bibliomisc.attrib;
+>
+<!--end of bibliomisc.attlist-->]]>
+<!--end of bibliomisc.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Subject, Keyword, and ITermSet elements .............................. -->
+
+<!ENTITY % subjectset.content.module "INCLUDE">
+<![%subjectset.content.module;[
+<!ENTITY % subjectset.module "INCLUDE">
+<![%subjectset.module;[
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+
+<!ENTITY % subjectset.element "INCLUDE">
+<![%subjectset.element;[
+<!ELEMENT subjectset (subject+)>
+<!--end of subjectset.element-->]]>
+
+<!-- Scheme: Controlled vocabulary employed in SubjectTerms -->
+
+
+<!ENTITY % subjectset.attlist "INCLUDE">
+<![%subjectset.attlist;[
+<!ATTLIST subjectset
+ scheme NMTOKEN #IMPLIED
+ %common.attrib;
+ %subjectset.role.attrib;
+ %local.subjectset.attrib;
+>
+<!--end of subjectset.attlist-->]]>
+<!--end of subjectset.module-->]]>
+
+<!ENTITY % subject.module "INCLUDE">
+<![%subject.module;[
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+
+<!ENTITY % subject.element "INCLUDE">
+<![%subject.element;[
+<!ELEMENT subject (subjectterm+)>
+<!--end of subject.element-->]]>
+
+<!-- Weight: Ranking of this group of SubjectTerms relative
+ to others, 0 is low, no highest value specified -->
+
+
+<!ENTITY % subject.attlist "INCLUDE">
+<![%subject.attlist;[
+<!ATTLIST subject
+ weight CDATA #IMPLIED
+ %common.attrib;
+ %subject.role.attrib;
+ %local.subject.attrib;
+>
+<!--end of subject.attlist-->]]>
+<!--end of subject.module-->]]>
+
+<!ENTITY % subjectterm.module "INCLUDE">
+<![%subjectterm.module;[
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+
+<!ENTITY % subjectterm.element "INCLUDE">
+<![%subjectterm.element;[
+<!ELEMENT subjectterm (#PCDATA)>
+<!--end of subjectterm.element-->]]>
+
+<!ENTITY % subjectterm.attlist "INCLUDE">
+<![%subjectterm.attlist;[
+<!ATTLIST subjectterm
+ %common.attrib;
+ %subjectterm.role.attrib;
+ %local.subjectterm.attrib;
+>
+<!--end of subjectterm.attlist-->]]>
+<!--end of subjectterm.module-->]]>
+<!--end of subjectset.content.module-->]]>
+
+<!ENTITY % keywordset.content.module "INCLUDE">
+<![%keywordset.content.module;[
+<!ENTITY % keywordset.module "INCLUDE">
+<![%keywordset.module;[
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+
+<!ENTITY % keywordset.element "INCLUDE">
+<![%keywordset.element;[
+<!ELEMENT keywordset (keyword+)>
+<!--end of keywordset.element-->]]>
+
+<!ENTITY % keywordset.attlist "INCLUDE">
+<![%keywordset.attlist;[
+<!ATTLIST keywordset
+ %common.attrib;
+ %keywordset.role.attrib;
+ %local.keywordset.attrib;
+>
+<!--end of keywordset.attlist-->]]>
+<!--end of keywordset.module-->]]>
+
+<!ENTITY % keyword.module "INCLUDE">
+<![%keyword.module;[
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+
+<!ENTITY % keyword.element "INCLUDE">
+<![%keyword.element;[
+<!ELEMENT keyword (#PCDATA)>
+<!--end of keyword.element-->]]>
+
+<!ENTITY % keyword.attlist "INCLUDE">
+<![%keyword.attlist;[
+<!ATTLIST keyword
+ %common.attrib;
+ %keyword.role.attrib;
+ %local.keyword.attrib;
+>
+<!--end of keyword.attlist-->]]>
+<!--end of keyword.module-->]]>
+<!--end of keywordset.content.module-->]]>
+
+<!ENTITY % itermset.module "INCLUDE">
+<![%itermset.module;[
+<!ENTITY % local.itermset.attrib "">
+<!ENTITY % itermset.role.attrib "%role.attrib;">
+
+<!ENTITY % itermset.element "INCLUDE">
+<![%itermset.element;[
+<!ELEMENT itermset (indexterm+)>
+<!--end of itermset.element-->]]>
+
+<!ENTITY % itermset.attlist "INCLUDE">
+<![%itermset.attlist;[
+<!ATTLIST itermset
+ %common.attrib;
+ %itermset.role.attrib;
+ %local.itermset.attrib;
+>
+<!--end of itermset.attlist-->]]>
+<!--end of itermset.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Compound (section-ish) elements ...................................... -->
+
+<!-- Message set ...................... -->
+
+<!ENTITY % msgset.content.module "INCLUDE">
+<![%msgset.content.module;[
+<!ENTITY % msgset.module "INCLUDE">
+<![%msgset.module;[
+<!ENTITY % local.msgset.attrib "">
+<!ENTITY % msgset.role.attrib "%role.attrib;">
+
+<!ENTITY % msgset.element "INCLUDE">
+<![%msgset.element;[
+<!ELEMENT msgset ((%formalobject.title.content;)?, (msgentry+|simplemsgentry+))>
+<!--end of msgset.element-->]]>
+
+<!ENTITY % msgset.attlist "INCLUDE">
+<![%msgset.attlist;[
+<!ATTLIST msgset
+ %common.attrib;
+ %msgset.role.attrib;
+ %local.msgset.attrib;
+>
+<!--end of msgset.attlist-->]]>
+<!--end of msgset.module-->]]>
+
+<!ENTITY % msgentry.module "INCLUDE">
+<![%msgentry.module;[
+<!ENTITY % local.msgentry.attrib "">
+<!ENTITY % msgentry.role.attrib "%role.attrib;">
+
+<!ENTITY % msgentry.element "INCLUDE">
+<![%msgentry.element;[
+<!ELEMENT msgentry (msg+, msginfo?, msgexplan*)>
+<!--end of msgentry.element-->]]>
+
+<!ENTITY % msgentry.attlist "INCLUDE">
+<![%msgentry.attlist;[
+<!ATTLIST msgentry
+ %common.attrib;
+ %msgentry.role.attrib;
+ %local.msgentry.attrib;
+>
+<!--end of msgentry.attlist-->]]>
+<!--end of msgentry.module-->]]>
+
+<!ENTITY % simplemsgentry.module "INCLUDE">
+<![ %simplemsgentry.module; [
+<!ENTITY % local.simplemsgentry.attrib "">
+<!ENTITY % simplemsgentry.role.attrib "%role.attrib;">
+
+<!ENTITY % simplemsgentry.element "INCLUDE">
+<![ %simplemsgentry.element; [
+<!ELEMENT simplemsgentry (msgtext, msgexplan)>
+<!--end of simplemsgentry.element-->]]>
+
+<!ENTITY % simplemsgentry.attlist "INCLUDE">
+<![ %simplemsgentry.attlist; [
+<!ATTLIST simplemsgentry
+ %common.attrib;
+ %simplemsgentry.role.attrib;
+ %local.simplemsgentry.attrib;
+ audience CDATA #IMPLIED
+ level CDATA #IMPLIED
+ origin CDATA #IMPLIED
+>
+<!--end of simplemsgentry.attlist-->]]>
+<!--end of simplemsgentry.module-->]]>
+
+<!ENTITY % msg.module "INCLUDE">
+<![%msg.module;[
+<!ENTITY % local.msg.attrib "">
+<!ENTITY % msg.role.attrib "%role.attrib;">
+
+<!ENTITY % msg.element "INCLUDE">
+<![%msg.element;[
+<!ELEMENT msg (title?, msgmain, (msgsub | msgrel)*)>
+<!--end of msg.element-->]]>
+
+<!ENTITY % msg.attlist "INCLUDE">
+<![%msg.attlist;[
+<!ATTLIST msg
+ %common.attrib;
+ %msg.role.attrib;
+ %local.msg.attrib;
+>
+<!--end of msg.attlist-->]]>
+<!--end of msg.module-->]]>
+
+<!ENTITY % msgmain.module "INCLUDE">
+<![%msgmain.module;[
+<!ENTITY % local.msgmain.attrib "">
+<!ENTITY % msgmain.role.attrib "%role.attrib;">
+
+<!ENTITY % msgmain.element "INCLUDE">
+<![%msgmain.element;[
+<!ELEMENT msgmain (title?, msgtext)>
+<!--end of msgmain.element-->]]>
+
+<!ENTITY % msgmain.attlist "INCLUDE">
+<![%msgmain.attlist;[
+<!ATTLIST msgmain
+ %common.attrib;
+ %msgmain.role.attrib;
+ %local.msgmain.attrib;
+>
+<!--end of msgmain.attlist-->]]>
+<!--end of msgmain.module-->]]>
+
+<!ENTITY % msgsub.module "INCLUDE">
+<![%msgsub.module;[
+<!ENTITY % local.msgsub.attrib "">
+<!ENTITY % msgsub.role.attrib "%role.attrib;">
+
+<!ENTITY % msgsub.element "INCLUDE">
+<![%msgsub.element;[
+<!ELEMENT msgsub (title?, msgtext)>
+<!--end of msgsub.element-->]]>
+
+<!ENTITY % msgsub.attlist "INCLUDE">
+<![%msgsub.attlist;[
+<!ATTLIST msgsub
+ %common.attrib;
+ %msgsub.role.attrib;
+ %local.msgsub.attrib;
+>
+<!--end of msgsub.attlist-->]]>
+<!--end of msgsub.module-->]]>
+
+<!ENTITY % msgrel.module "INCLUDE">
+<![%msgrel.module;[
+<!ENTITY % local.msgrel.attrib "">
+<!ENTITY % msgrel.role.attrib "%role.attrib;">
+
+<!ENTITY % msgrel.element "INCLUDE">
+<![%msgrel.element;[
+<!ELEMENT msgrel (title?, msgtext)>
+<!--end of msgrel.element-->]]>
+
+<!ENTITY % msgrel.attlist "INCLUDE">
+<![%msgrel.attlist;[
+<!ATTLIST msgrel
+ %common.attrib;
+ %msgrel.role.attrib;
+ %local.msgrel.attrib;
+>
+<!--end of msgrel.attlist-->]]>
+<!--end of msgrel.module-->]]>
+
+<!-- MsgText (defined in the Inlines section, below)-->
+
+<!ENTITY % msginfo.module "INCLUDE">
+<![%msginfo.module;[
+<!ENTITY % local.msginfo.attrib "">
+<!ENTITY % msginfo.role.attrib "%role.attrib;">
+
+<!ENTITY % msginfo.element "INCLUDE">
+<![%msginfo.element;[
+<!ELEMENT msginfo ((msglevel | msgorig | msgaud)*)>
+<!--end of msginfo.element-->]]>
+
+<!ENTITY % msginfo.attlist "INCLUDE">
+<![%msginfo.attlist;[
+<!ATTLIST msginfo
+ %common.attrib;
+ %msginfo.role.attrib;
+ %local.msginfo.attrib;
+>
+<!--end of msginfo.attlist-->]]>
+<!--end of msginfo.module-->]]>
+
+<!ENTITY % msglevel.module "INCLUDE">
+<![%msglevel.module;[
+<!ENTITY % local.msglevel.attrib "">
+<!ENTITY % msglevel.role.attrib "%role.attrib;">
+
+<!ENTITY % msglevel.element "INCLUDE">
+<![%msglevel.element;[
+<!ELEMENT msglevel (%smallcptr.char.mix;)*>
+<!--end of msglevel.element-->]]>
+
+<!ENTITY % msglevel.attlist "INCLUDE">
+<![%msglevel.attlist;[
+<!ATTLIST msglevel
+ %common.attrib;
+ %msglevel.role.attrib;
+ %local.msglevel.attrib;
+>
+<!--end of msglevel.attlist-->]]>
+<!--end of msglevel.module-->]]>
+
+<!ENTITY % msgorig.module "INCLUDE">
+<![%msgorig.module;[
+<!ENTITY % local.msgorig.attrib "">
+<!ENTITY % msgorig.role.attrib "%role.attrib;">
+
+<!ENTITY % msgorig.element "INCLUDE">
+<![%msgorig.element;[
+<!ELEMENT msgorig (%smallcptr.char.mix;)*>
+<!--end of msgorig.element-->]]>
+
+<!ENTITY % msgorig.attlist "INCLUDE">
+<![%msgorig.attlist;[
+<!ATTLIST msgorig
+ %common.attrib;
+ %msgorig.role.attrib;
+ %local.msgorig.attrib;
+>
+<!--end of msgorig.attlist-->]]>
+<!--end of msgorig.module-->]]>
+
+<!ENTITY % msgaud.module "INCLUDE">
+<![%msgaud.module;[
+<!ENTITY % local.msgaud.attrib "">
+<!ENTITY % msgaud.role.attrib "%role.attrib;">
+
+<!ENTITY % msgaud.element "INCLUDE">
+<![%msgaud.element;[
+<!ELEMENT msgaud (%para.char.mix;)*>
+<!--end of msgaud.element-->]]>
+
+<!ENTITY % msgaud.attlist "INCLUDE">
+<![%msgaud.attlist;[
+<!ATTLIST msgaud
+ %common.attrib;
+ %msgaud.role.attrib;
+ %local.msgaud.attrib;
+>
+<!--end of msgaud.attlist-->]]>
+<!--end of msgaud.module-->]]>
+
+<!ENTITY % msgexplan.module "INCLUDE">
+<![%msgexplan.module;[
+<!ENTITY % local.msgexplan.attrib "">
+<!ENTITY % msgexplan.role.attrib "%role.attrib;">
+
+<!ENTITY % msgexplan.element "INCLUDE">
+<![%msgexplan.element;[
+<!ELEMENT msgexplan (title?, (%component.mix;)+)>
+<!--end of msgexplan.element-->]]>
+
+<!ENTITY % msgexplan.attlist "INCLUDE">
+<![%msgexplan.attlist;[
+<!ATTLIST msgexplan
+ %common.attrib;
+ %msgexplan.role.attrib;
+ %local.msgexplan.attrib;
+>
+<!--end of msgexplan.attlist-->]]>
+<!--end of msgexplan.module-->]]>
+<!--end of msgset.content.module-->]]>
+
+<!-- QandASet ........................ -->
+<!ENTITY % qandset.content.module "INCLUDE">
+<![ %qandset.content.module; [
+<!ENTITY % qandset.module "INCLUDE">
+<![ %qandset.module; [
+<!ENTITY % local.qandset.attrib "">
+<!ENTITY % qandset.role.attrib "%role.attrib;">
+
+<!ENTITY % qandset.element "INCLUDE">
+<![ %qandset.element; [
+<!ELEMENT qandaset ((%formalobject.title.content;)?,
+ (%qandaset.mix;)*,
+ (qandadiv+|qandaentry+))>
+<!--end of qandset.element-->]]>
+
+<!ENTITY % qandset.attlist "INCLUDE">
+<![ %qandset.attlist; [
+<!ATTLIST qandaset
+ defaultlabel (qanda|number|none) #IMPLIED
+ %common.attrib;
+ %qandset.role.attrib;
+ %local.qandset.attrib;>
+<!--end of qandset.attlist-->]]>
+<!--end of qandset.module-->]]>
+
+<!ENTITY % qandadiv.module "INCLUDE">
+<![ %qandadiv.module; [
+<!ENTITY % local.qandadiv.attrib "">
+<!ENTITY % qandadiv.role.attrib "%role.attrib;">
+
+<!ENTITY % qandadiv.element "INCLUDE">
+<![ %qandadiv.element; [
+<!ELEMENT qandadiv ((%formalobject.title.content;)?,
+ (%qandaset.mix;)*,
+ (qandadiv+|qandaentry+))>
+<!--end of qandadiv.element-->]]>
+
+<!ENTITY % qandadiv.attlist "INCLUDE">
+<![ %qandadiv.attlist; [
+<!ATTLIST qandadiv
+ %common.attrib;
+ %qandadiv.role.attrib;
+ %local.qandadiv.attrib;>
+<!--end of qandadiv.attlist-->]]>
+<!--end of qandadiv.module-->]]>
+
+<!ENTITY % qandaentry.module "INCLUDE">
+<![ %qandaentry.module; [
+<!ENTITY % local.qandaentry.attrib "">
+<!ENTITY % qandaentry.role.attrib "%role.attrib;">
+
+<!ENTITY % qandaentry.element "INCLUDE">
+<![ %qandaentry.element; [
+<!ELEMENT qandaentry (revhistory?, question, answer*)>
+<!--end of qandaentry.element-->]]>
+
+<!ENTITY % qandaentry.attlist "INCLUDE">
+<![ %qandaentry.attlist; [
+<!ATTLIST qandaentry
+ %common.attrib;
+ %qandaentry.role.attrib;
+ %local.qandaentry.attrib;>
+<!--end of qandaentry.attlist-->]]>
+<!--end of qandaentry.module-->]]>
+
+<!ENTITY % question.module "INCLUDE">
+<![ %question.module; [
+<!ENTITY % local.question.attrib "">
+<!ENTITY % question.role.attrib "%role.attrib;">
+
+<!ENTITY % question.element "INCLUDE">
+<![ %question.element; [
+<!ELEMENT question (label?, (%qandaset.mix;)+)>
+<!--end of question.element-->]]>
+
+<!ENTITY % question.attlist "INCLUDE">
+<![ %question.attlist; [
+<!ATTLIST question
+ %common.attrib;
+ %question.role.attrib;
+ %local.question.attrib;
+>
+<!--end of question.attlist-->]]>
+<!--end of question.module-->]]>
+
+<!ENTITY % answer.module "INCLUDE">
+<![ %answer.module; [
+<!ENTITY % local.answer.attrib "">
+<!ENTITY % answer.role.attrib "%role.attrib;">
+
+<!ENTITY % answer.element "INCLUDE">
+<![ %answer.element; [
+<!ELEMENT answer (label?, (%qandaset.mix;)*, qandaentry*)>
+<!--end of answer.element-->]]>
+
+<!ENTITY % answer.attlist "INCLUDE">
+<![ %answer.attlist; [
+<!ATTLIST answer
+ %common.attrib;
+ %answer.role.attrib;
+ %local.answer.attrib;
+>
+<!--end of answer.attlist-->]]>
+<!--end of answer.module-->]]>
+
+<!ENTITY % label.module "INCLUDE">
+<![ %label.module; [
+<!ENTITY % local.label.attrib "">
+<!ENTITY % label.role.attrib "%role.attrib;">
+
+<!ENTITY % label.element "INCLUDE">
+<![ %label.element; [
+<!ELEMENT label (%word.char.mix;)*>
+<!--end of label.element-->]]>
+
+<!ENTITY % label.attlist "INCLUDE">
+<![ %label.attlist; [
+<!ATTLIST label
+ %common.attrib;
+ %label.role.attrib;
+ %local.label.attrib;
+>
+<!--end of label.attlist-->]]>
+<!--end of label.module-->]]>
+<!--end of qandset.content.module-->]]>
+
+<!-- Procedure ........................ -->
+
+<!ENTITY % procedure.content.module "INCLUDE">
+<![%procedure.content.module;[
+<!ENTITY % procedure.module "INCLUDE">
+<![%procedure.module;[
+<!ENTITY % local.procedure.attrib "">
+<!ENTITY % procedure.role.attrib "%role.attrib;">
+
+<!ENTITY % procedure.element "INCLUDE">
+<![%procedure.element;[
+<!ELEMENT procedure ((%formalobject.title.content;)?,
+ (%component.mix;)*, step+)>
+<!--end of procedure.element-->]]>
+
+<!ENTITY % procedure.attlist "INCLUDE">
+<![%procedure.attlist;[
+<!ATTLIST procedure
+ %common.attrib;
+ %procedure.role.attrib;
+ %local.procedure.attrib;
+>
+<!--end of procedure.attlist-->]]>
+<!--end of procedure.module-->]]>
+
+<!ENTITY % step.module "INCLUDE">
+<![%step.module;[
+<!ENTITY % local.step.attrib "">
+<!ENTITY % step.role.attrib "%role.attrib;">
+
+<!ENTITY % step.element "INCLUDE">
+<![%step.element;[
+<!ELEMENT step (title?, (((%component.mix;)+, (substeps,
+ (%component.mix;)*)?) | (substeps, (%component.mix;)*)))>
+<!--end of step.element-->]]>
+
+<!-- Performance: Whether the Step must be performed -->
+<!-- not #REQUIRED! -->
+
+
+<!ENTITY % step.attlist "INCLUDE">
+<![%step.attlist;[
+<!ATTLIST step
+ performance (optional
+ |required) "required"
+ %common.attrib;
+ %step.role.attrib;
+ %local.step.attrib;
+>
+<!--end of step.attlist-->]]>
+<!--end of step.module-->]]>
+
+<!ENTITY % substeps.module "INCLUDE">
+<![%substeps.module;[
+<!ENTITY % local.substeps.attrib "">
+<!ENTITY % substeps.role.attrib "%role.attrib;">
+
+<!ENTITY % substeps.element "INCLUDE">
+<![%substeps.element;[
+<!ELEMENT substeps (step+)>
+<!--end of substeps.element-->]]>
+
+<!-- Performance: whether entire set of substeps must be performed -->
+<!-- not #REQUIRED! -->
+
+
+<!ENTITY % substeps.attlist "INCLUDE">
+<![%substeps.attlist;[
+<!ATTLIST substeps
+ performance (optional
+ |required) "required"
+ %common.attrib;
+ %substeps.role.attrib;
+ %local.substeps.attrib;
+>
+<!--end of substeps.attlist-->]]>
+<!--end of substeps.module-->]]>
+<!--end of procedure.content.module-->]]>
+
+<!-- Sidebar .......................... -->
+
+<!ENTITY % sidebar.content.model "INCLUDE">
+<![ %sidebar.content.model; [
+
+<!ENTITY % sidebarinfo.module "INCLUDE">
+<![ %sidebarinfo.module; [
+<!ENTITY % local.sidebarinfo.attrib "">
+<!ENTITY % sidebarinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % sidebarinfo.element "INCLUDE">
+<![ %sidebarinfo.element; [
+<!ELEMENT sidebarinfo ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sidebarinfo.element-->]]>
+
+<!ENTITY % sidebarinfo.attlist "INCLUDE">
+<![ %sidebarinfo.attlist; [
+<!ATTLIST sidebarinfo
+ %common.attrib;
+ %sidebarinfo.role.attrib;
+ %local.sidebarinfo.attrib;
+>
+<!--end of sidebarinfo.attlist-->]]>
+<!--end of sidebarinfo.module-->]]>
+
+<!ENTITY % sidebar.module "INCLUDE">
+<![%sidebar.module;[
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+
+<!ENTITY % sidebar.element "INCLUDE">
+<![%sidebar.element;[
+<!ELEMENT sidebar (sidebarinfo?,
+ (%formalobject.title.content;)?,
+ (%sidebar.mix;)+)>
+<!--end of sidebar.element-->]]>
+
+<!ENTITY % sidebar.attlist "INCLUDE">
+<![%sidebar.attlist;[
+<!ATTLIST sidebar
+ %common.attrib;
+ %sidebar.role.attrib;
+ %local.sidebar.attrib;
+>
+<!--end of sidebar.attlist-->]]>
+<!--end of sidebar.module-->]]>
+<!--end of sidebar.content.model-->]]>
+
+<!-- ...................................................................... -->
+<!-- Paragraph-related elements ........................................... -->
+
+<!ENTITY % abstract.module "INCLUDE">
+<![%abstract.module;[
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+
+<!ENTITY % abstract.element "INCLUDE">
+<![%abstract.element;[
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!--end of abstract.element-->]]>
+
+<!ENTITY % abstract.attlist "INCLUDE">
+<![%abstract.attlist;[
+<!ATTLIST abstract
+ %common.attrib;
+ %abstract.role.attrib;
+ %local.abstract.attrib;
+>
+<!--end of abstract.attlist-->]]>
+<!--end of abstract.module-->]]>
+
+<!ENTITY % authorblurb.module "INCLUDE">
+<![%authorblurb.module;[
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+
+<!ENTITY % authorblurb.element "INCLUDE">
+<![%authorblurb.element;[
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!--end of authorblurb.element-->]]>
+
+<!ENTITY % authorblurb.attlist "INCLUDE">
+<![%authorblurb.attlist;[
+<!ATTLIST authorblurb
+ %common.attrib;
+ %authorblurb.role.attrib;
+ %local.authorblurb.attrib;
+>
+<!--end of authorblurb.attlist-->]]>
+<!--end of authorblurb.module-->]]>
+
+<!ENTITY % blockquote.module "INCLUDE">
+<![%blockquote.module;[
+<!--FUTURE USE (V4.0):
+......................
+Epigraph will be disallowed from appearing in BlockQuote.
+......................
+-->
+
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+
+<!ENTITY % blockquote.element "INCLUDE">
+<![%blockquote.element;[
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!--end of blockquote.element-->]]>
+
+<!ENTITY % blockquote.attlist "INCLUDE">
+<![%blockquote.attlist;[
+<!ATTLIST blockquote
+ %common.attrib;
+ %blockquote.role.attrib;
+ %local.blockquote.attrib;
+>
+<!--end of blockquote.attlist-->]]>
+<!--end of blockquote.module-->]]>
+
+<!ENTITY % attribution.module "INCLUDE">
+<![%attribution.module;[
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+
+<!ENTITY % attribution.element "INCLUDE">
+<![%attribution.element;[
+<!ELEMENT attribution (%para.char.mix;)*>
+<!--end of attribution.element-->]]>
+
+<!ENTITY % attribution.attlist "INCLUDE">
+<![%attribution.attlist;[
+<!ATTLIST attribution
+ %common.attrib;
+ %attribution.role.attrib;
+ %local.attribution.attrib;
+>
+<!--end of attribution.attlist-->]]>
+<!--end of attribution.module-->]]>
+
+<!ENTITY % bridgehead.module "INCLUDE">
+<![%bridgehead.module;[
+<!ENTITY % local.bridgehead.attrib "">
+<!ENTITY % bridgehead.role.attrib "%role.attrib;">
+
+<!ENTITY % bridgehead.element "INCLUDE">
+<![%bridgehead.element;[
+<!ELEMENT bridgehead (%title.char.mix;)*>
+<!--end of bridgehead.element-->]]>
+
+<!-- Renderas: Indicates the format in which the BridgeHead
+ should appear -->
+
+
+<!ENTITY % bridgehead.attlist "INCLUDE">
+<![%bridgehead.attlist;[
+<!ATTLIST bridgehead
+ renderas (other
+ |sect1
+ |sect2
+ |sect3
+ |sect4
+ |sect5) #IMPLIED
+ %common.attrib;
+ %bridgehead.role.attrib;
+ %local.bridgehead.attrib;
+>
+<!--end of bridgehead.attlist-->]]>
+<!--end of bridgehead.module-->]]>
+
+<!ENTITY % remark.module "INCLUDE">
+<![%remark.module;[
+<!ENTITY % local.remark.attrib "">
+<!ENTITY % remark.role.attrib "%role.attrib;">
+
+<!ENTITY % remark.element "INCLUDE">
+<![%remark.element;[
+<!ELEMENT remark (%para.char.mix;)*>
+<!--end of remark.element-->]]>
+
+<!ENTITY % remark.attlist "INCLUDE">
+<![%remark.attlist;[
+<!ATTLIST remark
+ %common.attrib;
+ %remark.role.attrib;
+ %local.remark.attrib;
+>
+<!--end of remark.attlist-->]]>
+<!--end of remark.module-->]]>
+
+<!ENTITY % epigraph.module "INCLUDE">
+<![%epigraph.module;[
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+
+<!ENTITY % epigraph.element "INCLUDE">
+<![%epigraph.element;[
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!--end of epigraph.element-->]]>
+
+<!ENTITY % epigraph.attlist "INCLUDE">
+<![%epigraph.attlist;[
+<!ATTLIST epigraph
+ %common.attrib;
+ %epigraph.role.attrib;
+ %local.epigraph.attrib;
+>
+<!--end of epigraph.attlist-->]]>
+<!-- Attribution (defined above)-->
+<!--end of epigraph.module-->]]>
+
+<!ENTITY % footnote.module "INCLUDE">
+<![%footnote.module;[
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+
+<!ENTITY % footnote.element "INCLUDE">
+<![%footnote.element;[
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!--end of footnote.element-->]]>
+
+<!ENTITY % footnote.attlist "INCLUDE">
+<![%footnote.attlist;[
+<!ATTLIST footnote
+ %label.attrib;
+ %common.attrib;
+ %footnote.role.attrib;
+ %local.footnote.attrib;
+>
+<!--end of footnote.attlist-->]]>
+<!--end of footnote.module-->]]>
+
+<!ENTITY % highlights.module "INCLUDE">
+<![%highlights.module;[
+<!ENTITY % local.highlights.attrib "">
+<!ENTITY % highlights.role.attrib "%role.attrib;">
+
+<!ENTITY % highlights.element "INCLUDE">
+<![%highlights.element;[
+<!ELEMENT highlights ((%highlights.mix;)+)>
+<!--end of highlights.element-->]]>
+
+<!ENTITY % highlights.attlist "INCLUDE">
+<![%highlights.attlist;[
+<!ATTLIST highlights
+ %common.attrib;
+ %highlights.role.attrib;
+ %local.highlights.attrib;
+>
+<!--end of highlights.attlist-->]]>
+<!--end of highlights.module-->]]>
+
+<!ENTITY % formalpara.module "INCLUDE">
+<![%formalpara.module;[
+<!ENTITY % local.formalpara.attrib "">
+<!ENTITY % formalpara.role.attrib "%role.attrib;">
+
+<!ENTITY % formalpara.element "INCLUDE">
+<![%formalpara.element;[
+<!ELEMENT formalpara (title, (%ndxterm.class;)*, para)>
+<!--end of formalpara.element-->]]>
+
+<!ENTITY % formalpara.attlist "INCLUDE">
+<![%formalpara.attlist;[
+<!ATTLIST formalpara
+ %common.attrib;
+ %formalpara.role.attrib;
+ %local.formalpara.attrib;
+>
+<!--end of formalpara.attlist-->]]>
+<!--end of formalpara.module-->]]>
+
+<!ENTITY % para.module "INCLUDE">
+<![%para.module;[
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+
+<!ENTITY % para.element "INCLUDE">
+<![%para.element;[
+<!ELEMENT para (%para.char.mix; | %para.mix;)*>
+<!--end of para.element-->]]>
+
+<!ENTITY % para.attlist "INCLUDE">
+<![%para.attlist;[
+<!ATTLIST para
+ %common.attrib;
+ %para.role.attrib;
+ %local.para.attrib;
+>
+<!--end of para.attlist-->]]>
+<!--end of para.module-->]]>
+
+<!ENTITY % simpara.module "INCLUDE">
+<![%simpara.module;[
+<!ENTITY % local.simpara.attrib "">
+<!ENTITY % simpara.role.attrib "%role.attrib;">
+
+<!ENTITY % simpara.element "INCLUDE">
+<![%simpara.element;[
+<!ELEMENT simpara (%para.char.mix;)*>
+<!--end of simpara.element-->]]>
+
+<!ENTITY % simpara.attlist "INCLUDE">
+<![%simpara.attlist;[
+<!ATTLIST simpara
+ %common.attrib;
+ %simpara.role.attrib;
+ %local.simpara.attrib;
+>
+<!--end of simpara.attlist-->]]>
+<!--end of simpara.module-->]]>
+
+<!ENTITY % admon.module "INCLUDE">
+<![%admon.module;[
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+
+
+<!ENTITY % caution.element "INCLUDE">
+<![%caution.element;[
+<!ELEMENT caution (title?, (%admon.mix;)+)>
+<!--end of caution.element-->]]>
+
+<!ENTITY % caution.attlist "INCLUDE">
+<![%caution.attlist;[
+<!ATTLIST caution
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of caution.attlist-->]]>
+
+
+<!ENTITY % important.element "INCLUDE">
+<![%important.element;[
+<!ELEMENT important (title?, (%admon.mix;)+)>
+<!--end of important.element-->]]>
+
+<!ENTITY % important.attlist "INCLUDE">
+<![%important.attlist;[
+<!ATTLIST important
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of important.attlist-->]]>
+
+
+<!ENTITY % note.element "INCLUDE">
+<![%note.element;[
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!--end of note.element-->]]>
+
+<!ENTITY % note.attlist "INCLUDE">
+<![%note.attlist;[
+<!ATTLIST note
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of note.attlist-->]]>
+
+
+<!ENTITY % tip.element "INCLUDE">
+<![%tip.element;[
+<!ELEMENT tip (title?, (%admon.mix;)+)>
+<!--end of tip.element-->]]>
+
+<!ENTITY % tip.attlist "INCLUDE">
+<![%tip.attlist;[
+<!ATTLIST tip
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of tip.attlist-->]]>
+
+
+<!ENTITY % warning.element "INCLUDE">
+<![%warning.element;[
+<!ELEMENT warning (title?, (%admon.mix;)+)>
+<!--end of warning.element-->]]>
+
+<!ENTITY % warning.attlist "INCLUDE">
+<![%warning.attlist;[
+<!ATTLIST warning
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of warning.attlist-->]]>
+
+<!--end of admon.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Lists ................................................................ -->
+
+<!-- GlossList ........................ -->
+
+<!ENTITY % glosslist.module "INCLUDE">
+<![%glosslist.module;[
+<!ENTITY % local.glosslist.attrib "">
+<!ENTITY % glosslist.role.attrib "%role.attrib;">
+
+<!ENTITY % glosslist.element "INCLUDE">
+<![%glosslist.element;[
+<!ELEMENT glosslist (glossentry+)>
+<!--end of glosslist.element-->]]>
+
+<!ENTITY % glosslist.attlist "INCLUDE">
+<![%glosslist.attlist;[
+<!ATTLIST glosslist
+ %common.attrib;
+ %glosslist.role.attrib;
+ %local.glosslist.attrib;
+>
+<!--end of glosslist.attlist-->]]>
+<!--end of glosslist.module-->]]>
+
+<!ENTITY % glossentry.content.module "INCLUDE">
+<![%glossentry.content.module;[
+<!ENTITY % glossentry.module "INCLUDE">
+<![%glossentry.module;[
+<!ENTITY % local.glossentry.attrib "">
+<!ENTITY % glossentry.role.attrib "%role.attrib;">
+
+<!ENTITY % glossentry.element "INCLUDE">
+<![%glossentry.element;[
+<!ELEMENT glossentry (glossterm, acronym?, abbrev?,
+ (%ndxterm.class;)*,
+ revhistory?, (glosssee|glossdef+))>
+<!--end of glossentry.element-->]]>
+
+<!-- SortAs: String by which the GlossEntry is to be sorted
+ (alphabetized) in lieu of its proper content -->
+
+
+<!ENTITY % glossentry.attlist "INCLUDE">
+<![%glossentry.attlist;[
+<!ATTLIST glossentry
+ sortas CDATA #IMPLIED
+ %common.attrib;
+ %glossentry.role.attrib;
+ %local.glossentry.attrib;
+>
+<!--end of glossentry.attlist-->]]>
+<!--end of glossentry.module-->]]>
+
+<!--FUTURE USE (V4.0):
+......................
+GlossTerm will be excluded from itself. Also, GlossTerm *may* be split
+into an element that appears in a Glossary and an element that can
+appear in the main text.
+......................
+-->
+<!-- GlossTerm (defined in the Inlines section, below)-->
+<!ENTITY % glossdef.module "INCLUDE">
+<![%glossdef.module;[
+<!ENTITY % local.glossdef.attrib "">
+<!ENTITY % glossdef.role.attrib "%role.attrib;">
+
+<!ENTITY % glossdef.element "INCLUDE">
+<![%glossdef.element;[
+<!ELEMENT glossdef ((%glossdef.mix;)+, glossseealso*)>
+<!--end of glossdef.element-->]]>
+<!--FUTURE USE (V4.0):
+......................
+The Subject attribute will be renamed Keyword.
+......................
+-->
+
+<!-- Subject: List of subjects; keywords for the definition -->
+
+
+<!ENTITY % glossdef.attlist "INCLUDE">
+<![%glossdef.attlist;[
+<!ATTLIST glossdef
+ subject CDATA #IMPLIED
+ %common.attrib;
+ %glossdef.role.attrib;
+ %local.glossdef.attrib;
+>
+<!--end of glossdef.attlist-->]]>
+<!--end of glossdef.module-->]]>
+
+<!ENTITY % glosssee.module "INCLUDE">
+<![%glosssee.module;[
+<!ENTITY % local.glosssee.attrib "">
+<!ENTITY % glosssee.role.attrib "%role.attrib;">
+
+<!ENTITY % glosssee.element "INCLUDE">
+<![%glosssee.element;[
+<!ELEMENT glosssee (%para.char.mix;)*>
+<!--end of glosssee.element-->]]>
+
+<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
+ should be displayed at the point of the GlossSee -->
+
+
+<!ENTITY % glosssee.attlist "INCLUDE">
+<![%glosssee.attlist;[
+<!ATTLIST glosssee
+ otherterm IDREF #IMPLIED
+ %common.attrib;
+ %glosssee.role.attrib;
+ %local.glosssee.attrib;
+>
+<!--end of glosssee.attlist-->]]>
+<!--end of glosssee.module-->]]>
+
+<!ENTITY % glossseealso.module "INCLUDE">
+<![%glossseealso.module;[
+<!ENTITY % local.glossseealso.attrib "">
+<!ENTITY % glossseealso.role.attrib "%role.attrib;">
+
+<!ENTITY % glossseealso.element "INCLUDE">
+<![%glossseealso.element;[
+<!ELEMENT glossseealso (%para.char.mix;)*>
+<!--end of glossseealso.element-->]]>
+
+<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
+ should be displayed at the point of the GlossSeeAlso -->
+
+
+<!ENTITY % glossseealso.attlist "INCLUDE">
+<![%glossseealso.attlist;[
+<!ATTLIST glossseealso
+ otherterm IDREF #IMPLIED
+ %common.attrib;
+ %glossseealso.role.attrib;
+ %local.glossseealso.attrib;
+>
+<!--end of glossseealso.attlist-->]]>
+<!--end of glossseealso.module-->]]>
+<!--end of glossentry.content.module-->]]>
+
+<!-- ItemizedList and OrderedList ..... -->
+
+<!ENTITY % itemizedlist.module "INCLUDE">
+<![%itemizedlist.module;[
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % itemizedlist.element "INCLUDE">
+<![%itemizedlist.element;[
+<!ELEMENT itemizedlist ((%formalobject.title.content;)?, listitem+)>
+<!--end of itemizedlist.element-->]]>
+
+<!-- Spacing: Whether the vertical space in the list should be
+ compressed -->
+<!-- Mark: Keyword, e.g., bullet, dash, checkbox, none;
+ list of keywords and defaults are implementation specific -->
+
+
+<!ENTITY % itemizedlist.attlist "INCLUDE">
+<![%itemizedlist.attlist;[
+<!ATTLIST itemizedlist spacing (normal
+ |compact) #IMPLIED
+ %mark.attrib;
+ %common.attrib;
+ %itemizedlist.role.attrib;
+ %local.itemizedlist.attrib;
+>
+<!--end of itemizedlist.attlist-->]]>
+<!--end of itemizedlist.module-->]]>
+
+<!ENTITY % orderedlist.module "INCLUDE">
+<![%orderedlist.module;[
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % orderedlist.element "INCLUDE">
+<![%orderedlist.element;[
+<!ELEMENT orderedlist ((%formalobject.title.content;)?, listitem+)>
+<!--end of orderedlist.element-->]]>
+
+<!-- Numeration: Style of ListItem numbered; default is expected
+ to be Arabic -->
+<!-- InheritNum: Specifies for a nested list that the numbering
+ of ListItems should include the number of the item
+ within which they are nested (e.g., 1a and 1b within 1,
+ rather than a and b) -->
+<!-- Continuation: Where list numbering begins afresh (Restarts,
+ the default) or continues that of the immediately preceding
+ list (Continues) -->
+<!-- Spacing: Whether the vertical space in the list should be
+ compressed -->
+
+
+<!ENTITY % orderedlist.attlist "INCLUDE">
+<![%orderedlist.attlist;[
+<!ATTLIST orderedlist
+ numeration (arabic
+ |upperalpha
+ |loweralpha
+ |upperroman
+ |lowerroman) #IMPLIED
+ inheritnum (inherit
+ |ignore) "ignore"
+ continuation (continues
+ |restarts) "restarts"
+ spacing (normal
+ |compact) #IMPLIED
+ %common.attrib;
+ %orderedlist.role.attrib;
+ %local.orderedlist.attrib;
+>
+<!--end of orderedlist.attlist-->]]>
+<!--end of orderedlist.module-->]]>
+
+<!ENTITY % listitem.module "INCLUDE">
+<![%listitem.module;[
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+
+<!ENTITY % listitem.element "INCLUDE">
+<![%listitem.element;[
+<!ELEMENT listitem ((%component.mix;)+)>
+<!--end of listitem.element-->]]>
+
+<!-- Override: Indicates the mark to be used for this ListItem
+ instead of the default mark or the mark specified by
+ the Mark attribute on the enclosing ItemizedList -->
+
+
+<!ENTITY % listitem.attlist "INCLUDE">
+<![%listitem.attlist;[
+<!ATTLIST listitem
+ override CDATA #IMPLIED
+ %common.attrib;
+ %listitem.role.attrib;
+ %local.listitem.attrib;
+>
+<!--end of listitem.attlist-->]]>
+<!--end of listitem.module-->]]>
+
+<!-- SegmentedList .................... -->
+<!ENTITY % segmentedlist.content.module "INCLUDE">
+<![%segmentedlist.content.module;[
+<!ENTITY % segmentedlist.module "INCLUDE">
+<![%segmentedlist.module;[
+<!ENTITY % local.segmentedlist.attrib "">
+<!ENTITY % segmentedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % segmentedlist.element "INCLUDE">
+<![%segmentedlist.element;[
+<!ELEMENT segmentedlist ((%formalobject.title.content;)?,
+ segtitle, segtitle+,
+ seglistitem+)>
+<!--end of segmentedlist.element-->]]>
+
+<!ENTITY % segmentedlist.attlist "INCLUDE">
+<![%segmentedlist.attlist;[
+<!ATTLIST segmentedlist
+ %common.attrib;
+ %segmentedlist.role.attrib;
+ %local.segmentedlist.attrib;
+>
+<!--end of segmentedlist.attlist-->]]>
+<!--end of segmentedlist.module-->]]>
+
+<!ENTITY % segtitle.module "INCLUDE">
+<![%segtitle.module;[
+<!ENTITY % local.segtitle.attrib "">
+<!ENTITY % segtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % segtitle.element "INCLUDE">
+<![%segtitle.element;[
+<!ELEMENT segtitle (%title.char.mix;)*>
+<!--end of segtitle.element-->]]>
+
+<!ENTITY % segtitle.attlist "INCLUDE">
+<![%segtitle.attlist;[
+<!ATTLIST segtitle
+ %common.attrib;
+ %segtitle.role.attrib;
+ %local.segtitle.attrib;
+>
+<!--end of segtitle.attlist-->]]>
+<!--end of segtitle.module-->]]>
+
+<!ENTITY % seglistitem.module "INCLUDE">
+<![%seglistitem.module;[
+<!ENTITY % local.seglistitem.attrib "">
+<!ENTITY % seglistitem.role.attrib "%role.attrib;">
+
+<!ENTITY % seglistitem.element "INCLUDE">
+<![%seglistitem.element;[
+<!ELEMENT seglistitem (seg, seg+)>
+<!--end of seglistitem.element-->]]>
+
+<!ENTITY % seglistitem.attlist "INCLUDE">
+<![%seglistitem.attlist;[
+<!ATTLIST seglistitem
+ %common.attrib;
+ %seglistitem.role.attrib;
+ %local.seglistitem.attrib;
+>
+<!--end of seglistitem.attlist-->]]>
+<!--end of seglistitem.module-->]]>
+
+<!ENTITY % seg.module "INCLUDE">
+<![%seg.module;[
+<!ENTITY % local.seg.attrib "">
+<!ENTITY % seg.role.attrib "%role.attrib;">
+
+<!ENTITY % seg.element "INCLUDE">
+<![%seg.element;[
+<!ELEMENT seg (%para.char.mix;)*>
+<!--end of seg.element-->]]>
+
+<!ENTITY % seg.attlist "INCLUDE">
+<![%seg.attlist;[
+<!ATTLIST seg
+ %common.attrib;
+ %seg.role.attrib;
+ %local.seg.attrib;
+>
+<!--end of seg.attlist-->]]>
+<!--end of seg.module-->]]>
+<!--end of segmentedlist.content.module-->]]>
+
+<!-- SimpleList ....................... -->
+
+<!ENTITY % simplelist.content.module "INCLUDE">
+<![%simplelist.content.module;[
+<!ENTITY % simplelist.module "INCLUDE">
+<![%simplelist.module;[
+<!ENTITY % local.simplelist.attrib "">
+<!ENTITY % simplelist.role.attrib "%role.attrib;">
+
+<!ENTITY % simplelist.element "INCLUDE">
+<![%simplelist.element;[
+<!ELEMENT simplelist (member+)>
+<!--end of simplelist.element-->]]>
+
+<!-- Columns: The number of columns the array should contain -->
+<!-- Type: How the Members of the SimpleList should be
+ formatted: Inline (members separated with commas etc.
+ inline), Vert (top to bottom in n Columns), or Horiz (in
+ the direction of text flow) in n Columns. If Column
+ is 1 or implied, Type=Vert and Type=Horiz give the same
+ results. -->
+
+
+<!ENTITY % simplelist.attlist "INCLUDE">
+<![%simplelist.attlist;[
+<!ATTLIST simplelist
+ columns CDATA #IMPLIED
+ type (inline
+ |vert
+ |horiz) "vert"
+ %common.attrib;
+ %simplelist.role.attrib;
+ %local.simplelist.attrib;
+>
+<!--end of simplelist.attlist-->]]>
+<!--end of simplelist.module-->]]>
+
+<!ENTITY % member.module "INCLUDE">
+<![%member.module;[
+<!ENTITY % local.member.attrib "">
+<!ENTITY % member.role.attrib "%role.attrib;">
+
+<!ENTITY % member.element "INCLUDE">
+<![%member.element;[
+<!ELEMENT member (%para.char.mix;)*>
+<!--end of member.element-->]]>
+
+<!ENTITY % member.attlist "INCLUDE">
+<![%member.attlist;[
+<!ATTLIST member
+ %common.attrib;
+ %member.role.attrib;
+ %local.member.attrib;
+>
+<!--end of member.attlist-->]]>
+<!--end of member.module-->]]>
+<!--end of simplelist.content.module-->]]>
+
+<!-- VariableList ..................... -->
+
+<!ENTITY % variablelist.content.module "INCLUDE">
+<![%variablelist.content.module;[
+<!ENTITY % variablelist.module "INCLUDE">
+<![%variablelist.module;[
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+
+<!ENTITY % variablelist.element "INCLUDE">
+<![%variablelist.element;[
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!--end of variablelist.element-->]]>
+
+<!-- TermLength: Length beyond which the presentation engine
+ may consider the Term too long and select an alternate
+ presentation of the Term and, or, its associated ListItem. -->
+
+
+<!ENTITY % variablelist.attlist "INCLUDE">
+<![%variablelist.attlist;[
+<!ATTLIST variablelist
+ termlength CDATA #IMPLIED
+ %common.attrib;
+ %variablelist.role.attrib;
+ %local.variablelist.attrib;
+>
+<!--end of variablelist.attlist-->]]>
+<!--end of variablelist.module-->]]>
+
+<!ENTITY % varlistentry.module "INCLUDE">
+<![%varlistentry.module;[
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+
+<!ENTITY % varlistentry.element "INCLUDE">
+<![%varlistentry.element;[
+<!ELEMENT varlistentry (term+, listitem)>
+<!--end of varlistentry.element-->]]>
+
+<!ENTITY % varlistentry.attlist "INCLUDE">
+<![%varlistentry.attlist;[
+<!ATTLIST varlistentry
+ %common.attrib;
+ %varlistentry.role.attrib;
+ %local.varlistentry.attrib;
+>
+<!--end of varlistentry.attlist-->]]>
+<!--end of varlistentry.module-->]]>
+
+<!ENTITY % term.module "INCLUDE">
+<![%term.module;[
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+
+<!ENTITY % term.element "INCLUDE">
+<![%term.element;[
+<!ELEMENT term (%para.char.mix;)*>
+<!--end of term.element-->]]>
+
+<!ENTITY % term.attlist "INCLUDE">
+<![%term.attlist;[
+<!ATTLIST term
+ %common.attrib;
+ %term.role.attrib;
+ %local.term.attrib;
+>
+<!--end of term.attlist-->]]>
+<!--end of term.module-->]]>
+
+<!-- ListItem (defined above)-->
+<!--end of variablelist.content.module-->]]>
+
+<!-- CalloutList ...................... -->
+
+<!ENTITY % calloutlist.content.module "INCLUDE">
+<![%calloutlist.content.module;[
+<!ENTITY % calloutlist.module "INCLUDE">
+<![%calloutlist.module;[
+<!ENTITY % local.calloutlist.attrib "">
+<!ENTITY % calloutlist.role.attrib "%role.attrib;">
+
+<!ENTITY % calloutlist.element "INCLUDE">
+<![%calloutlist.element;[
+<!ELEMENT calloutlist ((%formalobject.title.content;)?, callout+)>
+<!--end of calloutlist.element-->]]>
+
+<!ENTITY % calloutlist.attlist "INCLUDE">
+<![%calloutlist.attlist;[
+<!ATTLIST calloutlist
+ %common.attrib;
+ %calloutlist.role.attrib;
+ %local.calloutlist.attrib;
+>
+<!--end of calloutlist.attlist-->]]>
+<!--end of calloutlist.module-->]]>
+
+<!ENTITY % callout.module "INCLUDE">
+<![%callout.module;[
+<!ENTITY % local.callout.attrib "">
+<!ENTITY % callout.role.attrib "%role.attrib;">
+
+<!ENTITY % callout.element "INCLUDE">
+<![%callout.element;[
+<!ELEMENT callout ((%component.mix;)+)>
+<!--end of callout.element-->]]>
+
+<!-- AreaRefs: IDs of one or more Areas or AreaSets described
+ by this Callout -->
+
+
+<!ENTITY % callout.attlist "INCLUDE">
+<![%callout.attlist;[
+<!ATTLIST callout
+ arearefs IDREFS #REQUIRED
+ %common.attrib;
+ %callout.role.attrib;
+ %local.callout.attrib;
+>
+<!--end of callout.attlist-->]]>
+<!--end of callout.module-->]]>
+<!--end of calloutlist.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Objects .............................................................. -->
+
+<!-- Examples etc. .................... -->
+
+<!ENTITY % example.module "INCLUDE">
+<![%example.module;[
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+
+<!ENTITY % example.element "INCLUDE">
+<![%example.element;[
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!--end of example.element-->]]>
+
+<!ENTITY % example.attlist "INCLUDE">
+<![%example.attlist;[
+<!ATTLIST example
+ %label.attrib;
+ %width.attrib;
+ %common.attrib;
+ %example.role.attrib;
+ %local.example.attrib;
+>
+<!--end of example.attlist-->]]>
+<!--end of example.module-->]]>
+
+<!ENTITY % informalexample.module "INCLUDE">
+<![%informalexample.module;[
+<!ENTITY % local.informalexample.attrib "">
+<!ENTITY % informalexample.role.attrib "%role.attrib;">
+
+<!ENTITY % informalexample.element "INCLUDE">
+<![%informalexample.element;[
+<!ELEMENT informalexample ((%example.mix;)+)>
+<!--end of informalexample.element-->]]>
+
+<!ENTITY % informalexample.attlist "INCLUDE">
+<![%informalexample.attlist;[
+<!ATTLIST informalexample
+ %width.attrib;
+ %common.attrib;
+ %informalexample.role.attrib;
+ %local.informalexample.attrib;
+>
+<!--end of informalexample.attlist-->]]>
+<!--end of informalexample.module-->]]>
+
+<!ENTITY % programlistingco.module "INCLUDE">
+<![%programlistingco.module;[
+<!ENTITY % local.programlistingco.attrib "">
+<!ENTITY % programlistingco.role.attrib "%role.attrib;">
+
+<!ENTITY % programlistingco.element "INCLUDE">
+<![%programlistingco.element;[
+<!ELEMENT programlistingco (areaspec, programlisting, calloutlist*)>
+<!--end of programlistingco.element-->]]>
+
+<!ENTITY % programlistingco.attlist "INCLUDE">
+<![%programlistingco.attlist;[
+<!ATTLIST programlistingco
+ %common.attrib;
+ %programlistingco.role.attrib;
+ %local.programlistingco.attrib;
+>
+<!--end of programlistingco.attlist-->]]>
+<!-- CalloutList (defined above in Lists)-->
+<!--end of informalexample.module-->]]>
+
+<!ENTITY % areaspec.content.module "INCLUDE">
+<![%areaspec.content.module;[
+<!ENTITY % areaspec.module "INCLUDE">
+<![%areaspec.module;[
+<!ENTITY % local.areaspec.attrib "">
+<!ENTITY % areaspec.role.attrib "%role.attrib;">
+
+<!ENTITY % areaspec.element "INCLUDE">
+<![%areaspec.element;[
+<!ELEMENT areaspec ((area|areaset)+)>
+<!--end of areaspec.element-->]]>
+
+<!-- Units: global unit of measure in which coordinates in
+ this spec are expressed:
+
+ - CALSPair "x1,y1 x2,y2": lower-left and upper-right
+ coordinates in a rectangle describing repro area in which
+ graphic is placed, where X and Y dimensions are each some
+ number 0..10000 (taken from CALS graphic attributes)
+
+ - LineColumn "line column": line number and column number
+ at which to start callout text in "linespecific" content
+
+ - LineRange "startline endline": whole lines from startline
+ to endline in "linespecific" content
+
+ - LineColumnPair "line1 col1 line2 col2": starting and ending
+ points of area in "linespecific" content that starts at
+ first position and ends at second position (including the
+ beginnings of any intervening lines)
+
+ - Other: directive to look at value of OtherUnits attribute
+ to get implementation-specific keyword
+
+ The default is implementation-specific; usually dependent on
+ the parent element (GraphicCO gets CALSPair, ProgramListingCO
+ and ScreenCO get LineColumn) -->
+<!-- OtherUnits: User-defined units -->
+
+
+<!ENTITY % areaspec.attlist "INCLUDE">
+<![%areaspec.attlist;[
+<!ATTLIST areaspec
+ units (calspair
+ |linecolumn
+ |linerange
+ |linecolumnpair
+ |other) #IMPLIED
+ otherunits NMTOKEN #IMPLIED
+ %common.attrib;
+ %areaspec.role.attrib;
+ %local.areaspec.attrib;
+>
+<!--end of areaspec.attlist-->]]>
+<!--end of areaspec.module-->]]>
+
+<!ENTITY % area.module "INCLUDE">
+<![%area.module;[
+<!ENTITY % local.area.attrib "">
+<!ENTITY % area.role.attrib "%role.attrib;">
+
+<!ENTITY % area.element "INCLUDE">
+<![%area.element;[
+<!ELEMENT area EMPTY>
+<!--end of area.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- to any related information -->
+<!-- Units: unit of measure in which coordinates in this
+ area are expressed; inherits from AreaSet and AreaSpec -->
+<!-- OtherUnits: User-defined units -->
+
+
+<!ENTITY % area.attlist "INCLUDE">
+<![%area.attlist;[
+<!ATTLIST area
+ %label.attrib;
+ %linkends.attrib;
+ units (calspair
+ |linecolumn
+ |linerange
+ |linecolumnpair
+ |other) #IMPLIED
+ otherunits NMTOKEN #IMPLIED
+ coords CDATA #REQUIRED
+ %idreq.common.attrib;
+ %area.role.attrib;
+ %local.area.attrib;
+>
+<!--end of area.attlist-->]]>
+<!--end of area.module-->]]>
+
+<!ENTITY % areaset.module "INCLUDE">
+<![%areaset.module;[
+<!ENTITY % local.areaset.attrib "">
+<!ENTITY % areaset.role.attrib "%role.attrib;">
+
+<!ENTITY % areaset.element "INCLUDE">
+<![%areaset.element;[
+<!ELEMENT areaset (area+)>
+<!--end of areaset.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- Units: unit of measure in which coordinates in this
+ area are expressed; inherits from AreaSpec -->
+
+
+<!ENTITY % areaset.attlist "INCLUDE">
+<![%areaset.attlist;[
+<!ATTLIST areaset
+ %label.attrib;
+ units (calspair
+ |linecolumn
+ |linerange
+ |linecolumnpair
+ |other) #IMPLIED
+ otherunits NMTOKEN #IMPLIED
+ coords CDATA #REQUIRED
+ %idreq.common.attrib;
+ %areaset.role.attrib;
+ %local.areaset.attrib;
+>
+<!--end of areaset.attlist-->]]>
+<!--end of areaset.module-->]]>
+<!--end of areaspec.content.module-->]]>
+
+<!ENTITY % programlisting.module "INCLUDE">
+<![%programlisting.module;[
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+
+<!ENTITY % programlisting.element "INCLUDE">
+<![%programlisting.element;[
+<!ELEMENT programlisting (%para.char.mix; | co | lineannotation)*>
+<!--end of programlisting.element-->]]>
+
+<!ENTITY % programlisting.attlist "INCLUDE">
+<![%programlisting.attlist;[
+<!ATTLIST programlisting
+ %width.attrib;
+ %linespecific.attrib;
+ %common.attrib;
+ %programlisting.role.attrib;
+ %local.programlisting.attrib;
+>
+<!--end of programlisting.attlist-->]]>
+<!--end of programlisting.module-->]]>
+
+<!ENTITY % literallayout.module "INCLUDE">
+<![%literallayout.module;[
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+
+<!ENTITY % literallayout.element "INCLUDE">
+<![%literallayout.element;[
+<!ELEMENT literallayout (%para.char.mix; | lineannotation | co)*>
+<!--end of literallayout.element-->]]>
+
+<!ENTITY % literallayout.attlist "INCLUDE">
+<![%literallayout.attlist;[
+<!ATTLIST literallayout
+ %width.attrib;
+ %linespecific.attrib;
+ class (monospaced|normal) "normal"
+ %common.attrib;
+ %literallayout.role.attrib;
+ %local.literallayout.attrib;
+>
+<!--end of literallayout.attlist-->]]>
+<!-- LineAnnotation (defined in the Inlines section, below)-->
+<!--end of literallayout.module-->]]>
+
+<!ENTITY % screenco.module "INCLUDE">
+<![%screenco.module;[
+<!ENTITY % local.screenco.attrib "">
+<!ENTITY % screenco.role.attrib "%role.attrib;">
+
+<!ENTITY % screenco.element "INCLUDE">
+<![%screenco.element;[
+<!ELEMENT screenco (areaspec, screen, calloutlist*)>
+<!--end of screenco.element-->]]>
+
+<!ENTITY % screenco.attlist "INCLUDE">
+<![%screenco.attlist;[
+<!ATTLIST screenco
+ %common.attrib;
+ %screenco.role.attrib;
+ %local.screenco.attrib;
+>
+<!--end of screenco.attlist-->]]>
+<!-- AreaSpec (defined above)-->
+<!-- CalloutList (defined above in Lists)-->
+<!--end of screenco.module-->]]>
+
+<!ENTITY % screen.module "INCLUDE">
+<![%screen.module;[
+<!ENTITY % local.screen.attrib "">
+<!ENTITY % screen.role.attrib "%role.attrib;">
+
+<!ENTITY % screen.element "INCLUDE">
+<![%screen.element;[
+<!ELEMENT screen (%para.char.mix; | co | lineannotation)*>
+<!--end of screen.element-->]]>
+
+<!ENTITY % screen.attlist "INCLUDE">
+<![%screen.attlist;[
+<!ATTLIST screen
+ %width.attrib;
+ %linespecific.attrib;
+ %common.attrib;
+ %screen.role.attrib;
+ %local.screen.attrib;
+>
+<!--end of screen.attlist-->]]>
+<!--end of screen.module-->]]>
+
+<!ENTITY % screenshot.content.module "INCLUDE">
+<![%screenshot.content.module;[
+<!ENTITY % screenshot.module "INCLUDE">
+<![%screenshot.module;[
+<!ENTITY % local.screenshot.attrib "">
+<!ENTITY % screenshot.role.attrib "%role.attrib;">
+
+<!ENTITY % screenshot.element "INCLUDE">
+<![%screenshot.element;[
+<!ELEMENT screenshot (screeninfo?,
+ (graphic|graphicco
+ |mediaobject|mediaobjectco))>
+<!--end of screenshot.element-->]]>
+
+<!ENTITY % screenshot.attlist "INCLUDE">
+<![%screenshot.attlist;[
+<!ATTLIST screenshot
+ %common.attrib;
+ %screenshot.role.attrib;
+ %local.screenshot.attrib;
+>
+<!--end of screenshot.attlist-->]]>
+<!--end of screenshot.module-->]]>
+
+<!ENTITY % screeninfo.module "INCLUDE">
+<![%screeninfo.module;[
+<!ENTITY % local.screeninfo.attrib "">
+<!ENTITY % screeninfo.role.attrib "%role.attrib;">
+
+<!ENTITY % screeninfo.element "INCLUDE">
+<![%screeninfo.element;[
+<!ELEMENT screeninfo (%para.char.mix;)*>
+<!--end of screeninfo.element-->]]>
+
+<!ENTITY % screeninfo.attlist "INCLUDE">
+<![%screeninfo.attlist;[
+<!ATTLIST screeninfo
+ %common.attrib;
+ %screeninfo.role.attrib;
+ %local.screeninfo.attrib;
+>
+<!--end of screeninfo.attlist-->]]>
+<!--end of screeninfo.module-->]]>
+<!--end of screenshot.content.module-->]]>
+
+<!-- Figures etc. ..................... -->
+
+<!ENTITY % figure.module "INCLUDE">
+<![%figure.module;[
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+
+<!ENTITY % figure.element "INCLUDE">
+<![%figure.element;[
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+ %link.char.class;)+)>
+<!--end of figure.element-->]]>
+
+<!-- Float: Whether the Figure is supposed to be rendered
+ where convenient (yes (1) value) or at the place it occurs
+ in the text (no (0) value, the default) -->
+
+
+<!ENTITY % figure.attlist "INCLUDE">
+<![%figure.attlist;[
+<!ATTLIST figure
+ float %yesorno.attvals; '0'
+ pgwide %yesorno.attvals; #IMPLIED
+ %label.attrib;
+ %common.attrib;
+ %figure.role.attrib;
+ %local.figure.attrib;
+>
+<!--end of figure.attlist-->]]>
+<!--end of figure.module-->]]>
+
+<!ENTITY % informalfigure.module "INCLUDE">
+<![ %informalfigure.module; [
+<!ENTITY % local.informalfigure.attrib "">
+<!ENTITY % informalfigure.role.attrib "%role.attrib;">
+
+<!ENTITY % informalfigure.element "INCLUDE">
+<![ %informalfigure.element; [
+<!ELEMENT informalfigure ((%figure.mix; | %link.char.class;)+)>
+<!--end of informalfigure.element-->]]>
+
+<!ENTITY % informalfigure.attlist "INCLUDE">
+<![ %informalfigure.attlist; [
+<!--
+Float: Whether the Figure is supposed to be rendered
+where convenient (yes (1) value) or at the place it occurs
+in the text (no (0) value, the default)
+-->
+<!ATTLIST informalfigure
+ float %yesorno.attvals; "0"
+ pgwide %yesorno.attvals; #IMPLIED
+ %label.attrib;
+ %common.attrib;
+ %informalfigure.role.attrib;
+ %local.informalfigure.attrib;
+>
+<!--end of informalfigure.attlist-->]]>
+<!--end of informalfigure.module-->]]>
+
+<!ENTITY % graphicco.module "INCLUDE">
+<![%graphicco.module;[
+<!ENTITY % local.graphicco.attrib "">
+<!ENTITY % graphicco.role.attrib "%role.attrib;">
+
+<!ENTITY % graphicco.element "INCLUDE">
+<![%graphicco.element;[
+<!ELEMENT graphicco (areaspec, graphic, calloutlist*)>
+<!--end of graphicco.element-->]]>
+
+<!ENTITY % graphicco.attlist "INCLUDE">
+<![%graphicco.attlist;[
+<!ATTLIST graphicco
+ %common.attrib;
+ %graphicco.role.attrib;
+ %local.graphicco.attrib;
+>
+<!--end of graphicco.attlist-->]]>
+<!-- AreaSpec (defined above in Examples)-->
+<!-- CalloutList (defined above in Lists)-->
+<!--end of graphicco.module-->]]>
+
+<!-- Graphical data can be the content of Graphic, or you can reference
+ an external file either as an entity (Entitref) or a filename
+ (Fileref). -->
+
+<!ENTITY % graphic.module "INCLUDE">
+<![%graphic.module;[
+<!ENTITY % local.graphic.attrib "">
+<!ENTITY % graphic.role.attrib "%role.attrib;">
+
+<!ENTITY % graphic.element "INCLUDE">
+<![%graphic.element;[
+<!ELEMENT graphic EMPTY>
+<!--end of graphic.element-->]]>
+
+<!ENTITY % graphic.attlist "INCLUDE">
+<![%graphic.attlist;[
+<!ATTLIST graphic
+ %graphics.attrib;
+ %common.attrib;
+ %graphic.role.attrib;
+ %local.graphic.attrib;
+>
+<!--end of graphic.attlist-->]]>
+<!--end of graphic.module-->]]>
+
+<!ENTITY % inlinegraphic.module "INCLUDE">
+<![%inlinegraphic.module;[
+<!ENTITY % local.inlinegraphic.attrib "">
+<!ENTITY % inlinegraphic.role.attrib "%role.attrib;">
+
+<!ENTITY % inlinegraphic.element "INCLUDE">
+<![%inlinegraphic.element;[
+<!ELEMENT inlinegraphic EMPTY>
+<!--end of inlinegraphic.element-->]]>
+
+<!ENTITY % inlinegraphic.attlist "INCLUDE">
+<![%inlinegraphic.attlist;[
+<!ATTLIST inlinegraphic
+ %graphics.attrib;
+ %common.attrib;
+ %inlinegraphic.role.attrib;
+ %local.inlinegraphic.attrib;
+>
+<!--end of inlinegraphic.attlist-->]]>
+<!--end of inlinegraphic.module-->]]>
+
+<!ENTITY % mediaobject.content.module "INCLUDE">
+<![ %mediaobject.content.module; [
+
+<!ENTITY % mediaobject.module "INCLUDE">
+<![ %mediaobject.module; [
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+
+<!ENTITY % mediaobject.element "INCLUDE">
+<![ %mediaobject.element; [
+<!ELEMENT mediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*,
+ caption?)>
+<!--end of mediaobject.element-->]]>
+
+<!ENTITY % mediaobject.attlist "INCLUDE">
+<![ %mediaobject.attlist; [
+<!ATTLIST mediaobject
+ %common.attrib;
+ %mediaobject.role.attrib;
+ %local.mediaobject.attrib;
+>
+<!--end of mediaobject.attlist-->]]>
+<!--end of mediaobject.module-->]]>
+
+<!ENTITY % inlinemediaobject.module "INCLUDE">
+<![ %inlinemediaobject.module; [
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+
+<!ENTITY % inlinemediaobject.element "INCLUDE">
+<![ %inlinemediaobject.element; [
+<!ELEMENT inlinemediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*)>
+<!--end of inlinemediaobject.element-->]]>
+
+<!ENTITY % inlinemediaobject.attlist "INCLUDE">
+<![ %inlinemediaobject.attlist; [
+<!ATTLIST inlinemediaobject
+ %common.attrib;
+ %inlinemediaobject.role.attrib;
+ %local.inlinemediaobject.attrib;
+>
+<!--end of inlinemediaobject.attlist-->]]>
+<!--end of inlinemediaobject.module-->]]>
+
+<!ENTITY % videoobject.module "INCLUDE">
+<![ %videoobject.module; [
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+
+<!ENTITY % videoobject.element "INCLUDE">
+<![ %videoobject.element; [
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!--end of videoobject.element-->]]>
+
+<!ENTITY % videoobject.attlist "INCLUDE">
+<![ %videoobject.attlist; [
+<!ATTLIST videoobject
+ %common.attrib;
+ %videoobject.role.attrib;
+ %local.videoobject.attrib;
+>
+<!--end of videoobject.attlist-->]]>
+<!--end of videoobject.module-->]]>
+
+<!ENTITY % audioobject.module "INCLUDE">
+<![ %audioobject.module; [
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+
+<!ENTITY % audioobject.element "INCLUDE">
+<![ %audioobject.element; [
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!--end of audioobject.element-->]]>
+
+<!ENTITY % audioobject.attlist "INCLUDE">
+<![ %audioobject.attlist; [
+<!ATTLIST audioobject
+ %common.attrib;
+ %audioobject.role.attrib;
+ %local.audioobject.attrib;
+>
+<!--end of audioobject.attlist-->]]>
+<!--end of audioobject.module-->]]>
+
+<!ENTITY % imageobject.module "INCLUDE">
+<![ %imageobject.module; [
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+
+<!ENTITY % imageobject.element "INCLUDE">
+<![ %imageobject.element; [
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!--end of imageobject.element-->]]>
+
+<!ENTITY % imageobject.attlist "INCLUDE">
+<![ %imageobject.attlist; [
+<!ATTLIST imageobject
+ %common.attrib;
+ %imageobject.role.attrib;
+ %local.imageobject.attrib;
+>
+<!--end of imageobject.attlist-->]]>
+<!--end of imageobject.module-->]]>
+
+<!ENTITY % textobject.module "INCLUDE">
+<![ %textobject.module; [
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+
+<!ENTITY % textobject.element "INCLUDE">
+<![ %textobject.element; [
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!--end of textobject.element-->]]>
+
+<!ENTITY % textobject.attlist "INCLUDE">
+<![ %textobject.attlist; [
+<!ATTLIST textobject
+ %common.attrib;
+ %textobject.role.attrib;
+ %local.textobject.attrib;
+>
+<!--end of textobject.attlist-->]]>
+<!--end of textobject.module-->]]>
+
+<!ENTITY % objectinfo.module "INCLUDE">
+<![ %objectinfo.module; [
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % objectinfo.element "INCLUDE">
+<![ %objectinfo.element; [
+<!ELEMENT objectinfo ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of objectinfo.element-->]]>
+
+<!ENTITY % objectinfo.attlist "INCLUDE">
+<![ %objectinfo.attlist; [
+<!ATTLIST objectinfo
+ %common.attrib;
+ %objectinfo.role.attrib;
+ %local.objectinfo.attrib;
+>
+<!--end of objectinfo.attlist-->]]>
+<!--end of objectinfo.module-->]]>
+
+<!--EntityRef: Name of an external entity containing the content
+ of the object data-->
+<!--FileRef: Filename, qualified by a pathname if desired,
+ designating the file containing the content of the object data-->
+<!--Format: Notation of the element content, if any-->
+<!--SrcCredit: Information about the source of the image-->
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+ "
+ entityref ENTITY #IMPLIED
+ fileref CDATA #IMPLIED
+ format (%notation.class;)
+ #IMPLIED
+ srccredit CDATA #IMPLIED
+ %local.objectdata.attrib;"
+>
+
+<!ENTITY % videodata.module "INCLUDE">
+<![ %videodata.module; [
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+
+<!ENTITY % videodata.element "INCLUDE">
+<![ %videodata.element; [
+<!ELEMENT videodata EMPTY>
+<!--end of videodata.element-->]]>
+
+<!ENTITY % videodata.attlist "INCLUDE">
+<![ %videodata.attlist; [
+
+<!--Width: Same as CALS reprowid (desired width)-->
+<!--Depth: Same as CALS reprodep (desired depth)-->
+<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ application-specific-->
+<!--Scale: Conflation of CALS hscale and vscale-->
+<!--Scalefit: Same as CALS scalefit-->
+<!ATTLIST videodata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %videodata.role.attrib;
+ %local.videodata.attrib;
+>
+<!--end of videodata.attlist-->]]>
+<!--end of videodata.module-->]]>
+
+<!ENTITY % audiodata.module "INCLUDE">
+<![ %audiodata.module; [
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+
+<!ENTITY % audiodata.element "INCLUDE">
+<![ %audiodata.element; [
+<!ELEMENT audiodata EMPTY>
+<!--end of audiodata.element-->]]>
+
+<!ENTITY % audiodata.attlist "INCLUDE">
+<![ %audiodata.attlist; [
+<!ATTLIST audiodata
+ %common.attrib;
+ %objectdata.attrib;
+ %local.audiodata.attrib;
+ %audiodata.role.attrib;
+>
+<!--end of audiodata.attlist-->]]>
+<!--end of audiodata.module-->]]>
+
+<!ENTITY % imagedata.module "INCLUDE">
+<![ %imagedata.module; [
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+
+<!ENTITY % imagedata.element "INCLUDE">
+<![ %imagedata.element; [
+<!ELEMENT imagedata EMPTY>
+<!--end of imagedata.element-->]]>
+
+<!ENTITY % imagedata.attlist "INCLUDE">
+<![ %imagedata.attlist; [
+
+<!--Width: Same as CALS reprowid (desired width)-->
+<!--Depth: Same as CALS reprodep (desired depth)-->
+<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ application-specific-->
+<!--Scale: Conflation of CALS hscale and vscale-->
+<!--Scalefit: Same as CALS scalefit-->
+<!ATTLIST imagedata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %local.imagedata.attrib;
+ %imagedata.role.attrib;
+>
+<!--end of imagedata.attlist-->]]>
+<!--end of imagedata.module-->]]>
+
+<!ENTITY % caption.module "INCLUDE">
+<![ %caption.module; [
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+
+<!ENTITY % caption.element "INCLUDE">
+<![ %caption.element; [
+<!ELEMENT caption (%textobject.mix;)*>
+<!--end of caption.element-->]]>
+
+<!ENTITY % caption.attlist "INCLUDE">
+<![ %caption.attlist; [
+<!ATTLIST caption
+ %common.attrib;
+ %local.caption.attrib;
+ %caption.role.attrib;
+>
+<!--end of caption.attlist-->]]>
+<!--end of caption.module-->]]>
+
+<!ENTITY % mediaobjectco.module "INCLUDE">
+<![ %mediaobjectco.module; [
+<!ENTITY % local.mediaobjectco.attrib "">
+<!ENTITY % mediaobjectco.role.attrib "%role.attrib;">
+
+<!ENTITY % mediaobjectco.element "INCLUDE">
+<![ %mediaobjectco.element; [
+<!ELEMENT mediaobjectco (objectinfo?, imageobjectco,
+ (imageobjectco|textobject)*)>
+<!--end of mediaobjectco.element-->]]>
+
+<!ENTITY % mediaobjectco.attlist "INCLUDE">
+<![ %mediaobjectco.attlist; [
+<!ATTLIST mediaobjectco
+ %common.attrib;
+ %mediaobjectco.role.attrib;
+ %local.mediaobjectco.attrib;
+>
+<!--end of mediaobjectco.attlist-->]]>
+<!--end of mediaobjectco.module-->]]>
+
+<!ENTITY % imageobjectco.module "INCLUDE">
+<![ %imageobjectco.module; [
+<!ENTITY % local.imageobjectco.attrib "">
+<!ENTITY % imageobjectco.role.attrib "%role.attrib;">
+
+<!ENTITY % imageobjectco.element "INCLUDE">
+<![ %imageobjectco.element; [
+<!ELEMENT imageobjectco (areaspec, imageobject, calloutlist*)>
+<!--end of imageobjectco.element-->]]>
+
+<!ENTITY % imageobjectco.attlist "INCLUDE">
+<![ %imageobjectco.attlist; [
+<!ATTLIST imageobjectco
+ %common.attrib;
+ %imageobjectco.role.attrib;
+ %local.imageobjectco.attrib;
+>
+<!--end of imageobjectco.attlist-->]]>
+<!--end of imageobjectco.module-->]]>
+<!--end of mediaobject.content.module-->]]>
+
+<!-- Equations ........................ -->
+
+<!-- This PE provides a mechanism for replacing equation content, -->
+<!-- perhaps adding a new or different model (e.g., MathML) -->
+<!ENTITY % equation.content "(alt?, (graphic+|mediaobject+))">
+<!ENTITY % inlineequation.content "(alt?, (graphic+|inlinemediaobject+))">
+
+<!ENTITY % equation.module "INCLUDE">
+<![%equation.module;[
+<!ENTITY % local.equation.attrib "">
+<!ENTITY % equation.role.attrib "%role.attrib;">
+
+<!ENTITY % equation.element "INCLUDE">
+<![%equation.element;[
+<!ELEMENT equation ((%formalobject.title.content;)?, (informalequation |
+ %equation.content;))>
+<!--end of equation.element-->]]>
+
+<!ENTITY % equation.attlist "INCLUDE">
+<![%equation.attlist;[
+<!ATTLIST equation
+ %label.attrib;
+ %common.attrib;
+ %equation.role.attrib;
+ %local.equation.attrib;
+>
+<!--end of equation.attlist-->]]>
+<!--end of equation.module-->]]>
+
+<!ENTITY % informalequation.module "INCLUDE">
+<![%informalequation.module;[
+<!ENTITY % local.informalequation.attrib "">
+<!ENTITY % informalequation.role.attrib "%role.attrib;">
+
+<!ENTITY % informalequation.element "INCLUDE">
+<![%informalequation.element;[
+<!ELEMENT informalequation (%equation.content;) >
+<!--end of informalequation.element-->]]>
+
+<!ENTITY % informalequation.attlist "INCLUDE">
+<![%informalequation.attlist;[
+<!ATTLIST informalequation
+ %common.attrib;
+ %informalequation.role.attrib;
+ %local.informalequation.attrib;
+>
+<!--end of informalequation.attlist-->]]>
+<!--end of informalequation.module-->]]>
+
+<!ENTITY % inlineequation.module "INCLUDE">
+<![%inlineequation.module;[
+<!ENTITY % local.inlineequation.attrib "">
+<!ENTITY % inlineequation.role.attrib "%role.attrib;">
+
+<!ENTITY % inlineequation.element "INCLUDE">
+<![%inlineequation.element;[
+<!ELEMENT inlineequation (%inlineequation.content;)>
+<!--end of inlineequation.element-->]]>
+
+<!ENTITY % inlineequation.attlist "INCLUDE">
+<![%inlineequation.attlist;[
+<!ATTLIST inlineequation
+ %common.attrib;
+ %inlineequation.role.attrib;
+ %local.inlineequation.attrib;
+>
+<!--end of inlineequation.attlist-->]]>
+<!--end of inlineequation.module-->]]>
+
+<!ENTITY % alt.module "INCLUDE">
+<![%alt.module;[
+<!ENTITY % local.alt.attrib "">
+<!ENTITY % alt.role.attrib "%role.attrib;">
+
+<!ENTITY % alt.element "INCLUDE">
+<![%alt.element;[
+<!ELEMENT alt (#PCDATA)>
+<!--end of alt.element-->]]>
+
+<!ENTITY % alt.attlist "INCLUDE">
+<![%alt.attlist;[
+<!ATTLIST alt
+ %common.attrib;
+ %alt.role.attrib;
+ %local.alt.attrib;
+>
+<!--end of alt.attlist-->]]>
+<!--end of alt.module-->]]>
+
+<!-- Tables ........................... -->
+
+<!ENTITY % table.module "INCLUDE">
+<![%table.module;[
+
+<!-- Choose a table model. CALS is off by default, so the default -->
+<!-- is now the SGML Open Exchange table model. -->
+
+<!ENTITY % cals.table.module "INCLUDE">
+<![%cals.table.module;[
+<!ENTITY % exchange.table.module "IGNORE">
+]]>
+<!ENTITY % exchange.table.module "INCLUDE">
+
+<!ENTITY % tables.role.attrib "%role.attrib;">
+
+<![%cals.table.module;[
+<!-- Add label and role attributes to table and informaltable -->
+<!ENTITY % bodyatt "%label.attrib;">
+
+<!-- Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
+ EntryTbl, and Entry (and InformalTable element). -->
+<!ENTITY % secur
+ "%common.attrib;
+ %tables.role.attrib;">
+
+<!ENTITY % common.table.attribs
+ "%bodyatt;
+ %secur;">
+
+<!-- Content model for Table. -->
+<!ENTITY % tbl.table.mdl
+ "((%formalobject.title.content;), (%ndxterm.class;)*,
+ (graphic+|mediaobject+|tgroup+))">
+
+<!-- Allow either objects or inlines; beware of REs between elements. -->
+<!ENTITY % tbl.entry.mdl "%para.char.mix; | %tabentry.mix;">
+
+<!-- Reference SGML Open Exchange Table Model -->
+<!ENTITY % tablemodel
+ PUBLIC "-//Norman Walsh//DTD CALS Table Model XML V3.1.7//EN"
+ "calstblx.dtd">
+]]>
+
+<![%exchange.table.module;[
+<!-- Add common attributes and the Label attribute to Table and -->
+<!-- InformalTable. -->
+<!ENTITY % bodyatt
+ "%common.attrib;
+ %label.attrib;
+ %tables.role.attrib;">
+
+<!ENTITY % common.table.attribs
+ "%bodyatt;">
+
+<!-- Add common attributes to TGroup, ColSpec, TBody, THead, Row, Entry -->
+
+<!ENTITY % tbl.tgroup.att "%common.attrib;">
+<!ENTITY % tbl.colspec.att "%common.attrib;">
+<!ENTITY % tbl.tbody.att "%common.attrib;">
+<!ENTITY % tbl.thead.att "%common.attrib;">
+<!ENTITY % tbl.row.att "%common.attrib;">
+<!ENTITY % tbl.entry.att "%common.attrib;">
+
+<!-- Content model for Table. -->
+<!ENTITY % tbl.table.mdl
+ "((%formalobject.title.content;),
+ (%ndxterm.class;)*,
+ (graphic+|tgroup+))">
+
+<!-- Allow either objects or inlines; beware of REs between elements. -->
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+
+<!ENTITY % tablemodel
+ PUBLIC "-//Norman Walsh//DTD Exchange Table Model 19960430 XML V3.1.7//EN"
+ "soextblx.dtd">
+]]>
+
+%tablemodel;
+
+<!--end of table.module-->]]>
+
+<!ENTITY % informaltable.module "INCLUDE">
+<![%informaltable.module;[
+
+<!-- Note that InformalTable is dependent on some of the entity
+ declarations that customize Table. -->
+
+<!ENTITY % local.informaltable.attrib "">
+
+<!ENTITY % informaltable.element "INCLUDE">
+<![%informaltable.element;[
+<!ELEMENT informaltable (graphic+|mediaobject+|tgroup+)>
+<!--end of informaltable.element-->]]>
+
+<!-- Frame, Colsep, and Rowsep must be repeated because
+ they are not in entities in the table module. -->
+<!-- includes TabStyle, ToCentry, ShortEntry,
+ Orient, PgWide -->
+<!-- includes Label -->
+<!-- includes common attributes -->
+
+
+<!ENTITY % informaltable.attlist "INCLUDE">
+<![%informaltable.attlist;[
+<!ATTLIST informaltable
+ frame (top
+ |bottom
+ |topbot
+ |all
+ |sides
+ |none) #IMPLIED
+ colsep %yesorno.attvals; #IMPLIED
+ rowsep %yesorno.attvals; #IMPLIED
+ %common.table.attribs;
+ %tbl.table.att;
+ %local.informaltable.attrib;
+>
+<!--end of informaltable.attlist-->]]>
+<!--end of informaltable.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Synopses ............................................................. -->
+
+<!-- Synopsis ......................... -->
+
+<!ENTITY % synopsis.module "INCLUDE">
+<![%synopsis.module;[
+<!ENTITY % local.synopsis.attrib "">
+<!ENTITY % synopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % synopsis.element "INCLUDE">
+<![%synopsis.element;[
+<!ELEMENT synopsis (%para.char.mix; | graphic | mediaobject | lineannotation | co)*>
+<!--end of synopsis.element-->]]>
+
+<!ENTITY % synopsis.attlist "INCLUDE">
+<![%synopsis.attlist;[
+<!ATTLIST synopsis
+ %label.attrib;
+ %linespecific.attrib;
+ %common.attrib;
+ %synopsis.role.attrib;
+ %local.synopsis.attrib;
+>
+<!--end of synopsis.attlist-->]]>
+
+<!-- LineAnnotation (defined in the Inlines section, below)-->
+<!--end of synopsis.module-->]]>
+
+<!-- CmdSynopsis ...................... -->
+
+<!ENTITY % cmdsynopsis.content.module "INCLUDE">
+<![%cmdsynopsis.content.module;[
+<!ENTITY % cmdsynopsis.module "INCLUDE">
+<![%cmdsynopsis.module;[
+<!ENTITY % local.cmdsynopsis.attrib "">
+<!ENTITY % cmdsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % cmdsynopsis.element "INCLUDE">
+<![%cmdsynopsis.element;[
+<!ELEMENT cmdsynopsis ((command | arg | group | sbr)+, synopfragment*)>
+<!--end of cmdsynopsis.element-->]]>
+
+<!-- Sepchar: Character that should separate command and all
+ top-level arguments; alternate value might be e.g., &Delta; -->
+
+
+<!ENTITY % cmdsynopsis.attlist "INCLUDE">
+<![%cmdsynopsis.attlist;[
+<!ATTLIST cmdsynopsis
+ %label.attrib;
+ sepchar CDATA " "
+ cmdlength CDATA #IMPLIED
+ %common.attrib;
+ %cmdsynopsis.role.attrib;
+ %local.cmdsynopsis.attrib;
+>
+<!--end of cmdsynopsis.attlist-->]]>
+<!--end of cmdsynopsis.module-->]]>
+
+<!ENTITY % arg.module "INCLUDE">
+<![%arg.module;[
+<!ENTITY % local.arg.attrib "">
+<!ENTITY % arg.role.attrib "%role.attrib;">
+
+<!ENTITY % arg.element "INCLUDE">
+<![%arg.element;[
+<!ELEMENT arg (#PCDATA
+ | arg
+ | group
+ | option
+ | synopfragmentref
+ | replaceable
+ | sbr)*>
+<!--end of arg.element-->]]>
+
+<!-- Choice: Whether Arg must be supplied: Opt (optional to
+ supply, e.g. [arg]; the default), Req (required to supply,
+ e.g. {arg}), or Plain (required to supply, e.g. arg) -->
+<!-- Rep: whether Arg is repeatable: Norepeat (e.g. arg without
+ ellipsis; the default), or Repeat (e.g. arg...) -->
+
+
+<!ENTITY % arg.attlist "INCLUDE">
+<![%arg.attlist;[
+<!ATTLIST arg
+ choice (opt
+ |req
+ |plain) 'opt'
+ rep (norepeat
+ |repeat) 'norepeat'
+ %common.attrib;
+ %arg.role.attrib;
+ %local.arg.attrib;
+>
+<!--end of arg.attlist-->]]>
+<!--end of arg.module-->]]>
+
+<!ENTITY % group.module "INCLUDE">
+<![%group.module;[
+
+<!ENTITY % local.group.attrib "">
+<!ENTITY % group.role.attrib "%role.attrib;">
+
+<!ENTITY % group.element "INCLUDE">
+<![%group.element;[
+<!ELEMENT group ((arg | group | option | synopfragmentref
+ | replaceable | sbr)+)>
+<!--end of group.element-->]]>
+
+<!-- Choice: Whether Group must be supplied: Opt (optional to
+ supply, e.g. [g1|g2|g3]; the default), Req (required to
+ supply, e.g. {g1|g2|g3}), Plain (required to supply,
+ e.g. g1|g2|g3), OptMult (can supply zero or more, e.g.
+ [[g1|g2|g3]]), or ReqMult (must supply one or more, e.g.
+ {{g1|g2|g3}}) -->
+<!-- Rep: whether Group is repeatable: Norepeat (e.g. group
+ without ellipsis; the default), or Repeat (e.g. group...) -->
+
+
+<!ENTITY % group.attlist "INCLUDE">
+<![%group.attlist;[
+<!ATTLIST group
+ choice (opt
+ |req
+ |plain) 'opt'
+ rep (norepeat
+ |repeat) 'norepeat'
+ %common.attrib;
+ %group.role.attrib;
+ %local.group.attrib;
+>
+<!--end of group.attlist-->]]>
+<!--end of group.module-->]]>
+
+<!ENTITY % sbr.module "INCLUDE">
+<![%sbr.module;[
+<!ENTITY % local.sbr.attrib "">
+<!-- Synopsis break -->
+<!ENTITY % sbr.role.attrib "%role.attrib;">
+
+<!ENTITY % sbr.element "INCLUDE">
+<![%sbr.element;[
+<!ELEMENT sbr EMPTY>
+<!--end of sbr.element-->]]>
+
+<!ENTITY % sbr.attlist "INCLUDE">
+<![%sbr.attlist;[
+<!ATTLIST sbr
+ %common.attrib;
+ %sbr.role.attrib;
+ %local.sbr.attrib;
+>
+<!--end of sbr.attlist-->]]>
+<!--end of sbr.module-->]]>
+
+<!ENTITY % synopfragmentref.module "INCLUDE">
+<![%synopfragmentref.module;[
+<!ENTITY % local.synopfragmentref.attrib "">
+<!ENTITY % synopfragmentref.role.attrib "%role.attrib;">
+
+<!ENTITY % synopfragmentref.element "INCLUDE">
+<![%synopfragmentref.element;[
+<!ELEMENT synopfragmentref (#PCDATA)>
+<!--end of synopfragmentref.element-->]]>
+
+<!-- to SynopFragment of complex synopsis
+ material for separate referencing -->
+
+
+<!ENTITY % synopfragmentref.attlist "INCLUDE">
+<![%synopfragmentref.attlist;[
+<!ATTLIST synopfragmentref
+ %linkendreq.attrib; %common.attrib;
+ %synopfragmentref.role.attrib;
+ %local.synopfragmentref.attrib;
+>
+<!--end of synopfragmentref.attlist-->]]>
+<!--end of synopfragmentref.module-->]]>
+
+<!ENTITY % synopfragment.module "INCLUDE">
+<![%synopfragment.module;[
+<!ENTITY % local.synopfragment.attrib "">
+<!ENTITY % synopfragment.role.attrib "%role.attrib;">
+
+<!ENTITY % synopfragment.element "INCLUDE">
+<![%synopfragment.element;[
+<!ELEMENT synopfragment ((arg | group)+)>
+<!--end of synopfragment.element-->]]>
+
+<!ENTITY % synopfragment.attlist "INCLUDE">
+<![%synopfragment.attlist;[
+<!ATTLIST synopfragment
+ %idreq.common.attrib;
+ %synopfragment.role.attrib;
+ %local.synopfragment.attrib;
+>
+<!--end of synopfragment.attlist-->]]>
+<!--end of synopfragment.module-->]]>
+
+<!-- Command (defined in the Inlines section, below)-->
+<!-- Option (defined in the Inlines section, below)-->
+<!-- Replaceable (defined in the Inlines section, below)-->
+<!--end of cmdsynopsis.content.module-->]]>
+
+<!-- FuncSynopsis ..................... -->
+
+<!ENTITY % funcsynopsis.content.module "INCLUDE">
+<![%funcsynopsis.content.module;[
+<!ENTITY % funcsynopsis.module "INCLUDE">
+<![%funcsynopsis.module;[
+
+<!ENTITY % local.funcsynopsis.attrib "">
+<!ENTITY % funcsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % funcsynopsis.element "INCLUDE">
+<![%funcsynopsis.element;[
+<!ELEMENT funcsynopsis ((funcsynopsisinfo | funcprototype)+)>
+<!--end of funcsynopsis.element-->]]>
+
+<!ENTITY % funcsynopsis.attlist "INCLUDE">
+<![%funcsynopsis.attlist;[
+<!ATTLIST funcsynopsis
+ %label.attrib;
+ %common.attrib;
+ %funcsynopsis.role.attrib;
+ %local.funcsynopsis.attrib;
+>
+<!--end of funcsynopsis.attlist-->]]>
+<!--end of funcsynopsis.module-->]]>
+
+<!ENTITY % funcsynopsisinfo.module "INCLUDE">
+<![%funcsynopsisinfo.module;[
+<!ENTITY % local.funcsynopsisinfo.attrib "">
+<!ENTITY % funcsynopsisinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % funcsynopsisinfo.element "INCLUDE">
+<![%funcsynopsisinfo.element;[
+<!ELEMENT funcsynopsisinfo (%cptr.char.mix; | lineannotation)*>
+<!--end of funcsynopsisinfo.element-->]]>
+
+<!ENTITY % funcsynopsisinfo.attlist "INCLUDE">
+<![%funcsynopsisinfo.attlist;[
+<!ATTLIST funcsynopsisinfo
+ %linespecific.attrib;
+ %common.attrib;
+ %funcsynopsisinfo.role.attrib;
+ %local.funcsynopsisinfo.attrib;
+>
+<!--end of funcsynopsisinfo.attlist-->]]>
+<!--end of funcsynopsisinfo.module-->]]>
+
+<!ENTITY % funcprototype.module "INCLUDE">
+<![%funcprototype.module;[
+<!ENTITY % local.funcprototype.attrib "">
+<!ENTITY % funcprototype.role.attrib "%role.attrib;">
+
+<!ENTITY % funcprototype.element "INCLUDE">
+<![%funcprototype.element;[
+<!ELEMENT funcprototype (funcdef, (void | varargs | paramdef+))>
+<!--end of funcprototype.element-->]]>
+
+<!ENTITY % funcprototype.attlist "INCLUDE">
+<![%funcprototype.attlist;[
+<!ATTLIST funcprototype
+ %common.attrib;
+ %funcprototype.role.attrib;
+ %local.funcprototype.attrib;
+>
+<!--end of funcprototype.attlist-->]]>
+<!--end of funcprototype.module-->]]>
+
+<!ENTITY % funcdef.module "INCLUDE">
+<![%funcdef.module;[
+<!ENTITY % local.funcdef.attrib "">
+<!ENTITY % funcdef.role.attrib "%role.attrib;">
+
+<!ENTITY % funcdef.element "INCLUDE">
+<![%funcdef.element;[
+<!ELEMENT funcdef (#PCDATA
+ | replaceable
+ | function)*>
+<!--end of funcdef.element-->]]>
+
+<!ENTITY % funcdef.attlist "INCLUDE">
+<![%funcdef.attlist;[
+<!ATTLIST funcdef
+ %common.attrib;
+ %funcdef.role.attrib;
+ %local.funcdef.attrib;
+>
+<!--end of funcdef.attlist-->]]>
+<!--end of funcdef.module-->]]>
+
+<!ENTITY % void.module "INCLUDE">
+<![%void.module;[
+<!ENTITY % local.void.attrib "">
+<!ENTITY % void.role.attrib "%role.attrib;">
+
+<!ENTITY % void.element "INCLUDE">
+<![%void.element;[
+<!ELEMENT void EMPTY>
+<!--end of void.element-->]]>
+
+<!ENTITY % void.attlist "INCLUDE">
+<![%void.attlist;[
+<!ATTLIST void
+ %common.attrib;
+ %void.role.attrib;
+ %local.void.attrib;
+>
+<!--end of void.attlist-->]]>
+<!--end of void.module-->]]>
+
+<!ENTITY % varargs.module "INCLUDE">
+<![%varargs.module;[
+<!ENTITY % local.varargs.attrib "">
+<!ENTITY % varargs.role.attrib "%role.attrib;">
+
+<!ENTITY % varargs.element "INCLUDE">
+<![%varargs.element;[
+<!ELEMENT varargs EMPTY>
+<!--end of varargs.element-->]]>
+
+<!ENTITY % varargs.attlist "INCLUDE">
+<![%varargs.attlist;[
+<!ATTLIST varargs
+ %common.attrib;
+ %varargs.role.attrib;
+ %local.varargs.attrib;
+>
+<!--end of varargs.attlist-->]]>
+<!--end of varargs.module-->]]>
+
+<!-- Processing assumes that only one Parameter will appear in a
+ ParamDef, and that FuncParams will be used at most once, for
+ providing information on the "inner parameters" for parameters that
+ are pointers to functions. -->
+
+<!ENTITY % paramdef.module "INCLUDE">
+<![%paramdef.module;[
+<!ENTITY % local.paramdef.attrib "">
+<!ENTITY % paramdef.role.attrib "%role.attrib;">
+
+<!ENTITY % paramdef.element "INCLUDE">
+<![%paramdef.element;[
+<!ELEMENT paramdef (#PCDATA
+ | replaceable
+ | parameter
+ | funcparams)*>
+<!--end of paramdef.element-->]]>
+
+<!ENTITY % paramdef.attlist "INCLUDE">
+<![%paramdef.attlist;[
+<!ATTLIST paramdef
+ %common.attrib;
+ %paramdef.role.attrib;
+ %local.paramdef.attrib;
+>
+<!--end of paramdef.attlist-->]]>
+<!--end of paramdef.module-->]]>
+
+<!ENTITY % funcparams.module "INCLUDE">
+<![%funcparams.module;[
+<!ENTITY % local.funcparams.attrib "">
+<!ENTITY % funcparams.role.attrib "%role.attrib;">
+
+<!ENTITY % funcparams.element "INCLUDE">
+<![%funcparams.element;[
+<!ELEMENT funcparams (%cptr.char.mix;)*>
+<!--end of funcparams.element-->]]>
+
+<!ENTITY % funcparams.attlist "INCLUDE">
+<![%funcparams.attlist;[
+<!ATTLIST funcparams
+ %common.attrib;
+ %funcparams.role.attrib;
+ %local.funcparams.attrib;
+>
+<!--end of funcparams.attlist-->]]>
+<!--end of funcparams.module-->]]>
+
+<!-- LineAnnotation (defined in the Inlines section, below)-->
+<!-- Replaceable (defined in the Inlines section, below)-->
+<!-- Function (defined in the Inlines section, below)-->
+<!-- Parameter (defined in the Inlines section, below)-->
+<!--end of funcsynopsis.content.module-->]]>
+
+<!-- ClassSynopsis ..................... -->
+
+<!ENTITY % classsynopsis.content.module "INCLUDE">
+<![%classsynopsis.content.module;[
+
+<!ENTITY % classsynopsis.module "INCLUDE">
+<![%classsynopsis.module;[
+<!ENTITY % local.classsynopsis.attrib "">
+<!ENTITY % classsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % classsynopsis.element "INCLUDE">
+<![%classsynopsis.element;[
+<!ELEMENT classsynopsis ((ooclass|oointerface|ooexception)+,
+ (classsynopsisinfo
+ |fieldsynopsis|%method.synop.class;)*)>
+<!--end of classsynopsis.element-->]]>
+
+<!ENTITY % classsynopsis.attlist "INCLUDE">
+<![%classsynopsis.attlist;[
+<!ATTLIST classsynopsis
+ %common.attrib;
+ %classsynopsis.role.attrib;
+ %local.classsynopsis.attrib;
+ language CDATA #IMPLIED
+ class (class|interface) "class"
+>
+<!--end of classsynopsis.attlist-->]]>
+<!--end of classsynopsis.module-->]]>
+
+<!ENTITY % classsynopsisinfo.module "INCLUDE">
+<![ %classsynopsisinfo.module; [
+<!ENTITY % local.classsynopsisinfo.attrib "">
+<!ENTITY % classsynopsisinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % classsynopsisinfo.element "INCLUDE">
+<![ %classsynopsisinfo.element; [
+<!ELEMENT classsynopsisinfo (%cptr.char.mix; | lineannotation)*>
+<!--end of classsynopsisinfo.element-->]]>
+
+<!ENTITY % classsynopsisinfo.attlist "INCLUDE">
+<![ %classsynopsisinfo.attlist; [
+<!ATTLIST classsynopsisinfo
+ %linespecific.attrib;
+ %common.attrib;
+ %classsynopsisinfo.role.attrib;
+ %local.classsynopsisinfo.attrib;
+>
+<!--end of classsynopsisinfo.attlist-->]]>
+<!--end of classsynopsisinfo.module-->]]>
+
+<!ENTITY % ooclass.module "INCLUDE">
+<![%ooclass.module;[
+<!ENTITY % local.ooclass.attrib "">
+<!ENTITY % ooclass.role.attrib "%role.attrib;">
+
+<!ENTITY % ooclass.element "INCLUDE">
+<![%ooclass.element;[
+<!ELEMENT ooclass (modifier*, classname)>
+<!--end of ooclass.element-->]]>
+
+<!ENTITY % ooclass.attlist "INCLUDE">
+<![%ooclass.attlist;[
+<!ATTLIST ooclass
+ %common.attrib;
+ %ooclass.role.attrib;
+ %local.ooclass.attrib;
+>
+<!--end of ooclass.attlist-->]]>
+<!--end of ooclass.module-->]]>
+
+<!ENTITY % oointerface.module "INCLUDE">
+<![%oointerface.module;[
+<!ENTITY % local.oointerface.attrib "">
+<!ENTITY % oointerface.role.attrib "%role.attrib;">
+
+<!ENTITY % oointerface.element "INCLUDE">
+<![%oointerface.element;[
+<!ELEMENT oointerface (modifier*, interfacename)>
+<!--end of oointerface.element-->]]>
+
+<!ENTITY % oointerface.attlist "INCLUDE">
+<![%oointerface.attlist;[
+<!ATTLIST oointerface
+ %common.attrib;
+ %oointerface.role.attrib;
+ %local.oointerface.attrib;
+>
+<!--end of oointerface.attlist-->]]>
+<!--end of oointerface.module-->]]>
+
+<!ENTITY % ooexception.module "INCLUDE">
+<![%ooexception.module;[
+<!ENTITY % local.ooexception.attrib "">
+<!ENTITY % ooexception.role.attrib "%role.attrib;">
+
+<!ENTITY % ooexception.element "INCLUDE">
+<![%ooexception.element;[
+<!ELEMENT ooexception (modifier*, exceptionname)>
+<!--end of ooexception.element-->]]>
+
+<!ENTITY % ooexception.attlist "INCLUDE">
+<![%ooexception.attlist;[
+<!ATTLIST ooexception
+ %common.attrib;
+ %ooexception.role.attrib;
+ %local.ooexception.attrib;
+>
+<!--end of ooexception.attlist-->]]>
+<!--end of ooexception.module-->]]>
+
+<!ENTITY % modifier.module "INCLUDE">
+<![%modifier.module;[
+<!ENTITY % local.modifier.attrib "">
+<!ENTITY % modifier.role.attrib "%role.attrib;">
+
+<!ENTITY % modifier.element "INCLUDE">
+<![%modifier.element;[
+<!ELEMENT modifier (%smallcptr.char.mix;)*>
+<!--end of modifier.element-->]]>
+
+<!ENTITY % modifier.attlist "INCLUDE">
+<![%modifier.attlist;[
+<!ATTLIST modifier
+ %common.attrib;
+ %modifier.role.attrib;
+ %local.modifier.attrib;
+>
+<!--end of modifier.attlist-->]]>
+<!--end of modifier.module-->]]>
+
+<!ENTITY % interfacename.module "INCLUDE">
+<![%interfacename.module;[
+<!ENTITY % local.interfacename.attrib "">
+<!ENTITY % interfacename.role.attrib "%role.attrib;">
+
+<!ENTITY % interfacename.element "INCLUDE">
+<![%interfacename.element;[
+<!ELEMENT interfacename (%smallcptr.char.mix;)*>
+<!--end of interfacename.element-->]]>
+
+<!ENTITY % interfacename.attlist "INCLUDE">
+<![%interfacename.attlist;[
+<!ATTLIST interfacename
+ %common.attrib;
+ %interfacename.role.attrib;
+ %local.interfacename.attrib;
+>
+<!--end of interfacename.attlist-->]]>
+<!--end of interfacename.module-->]]>
+
+<!ENTITY % exceptionname.module "INCLUDE">
+<![%exceptionname.module;[
+<!ENTITY % local.exceptionname.attrib "">
+<!ENTITY % exceptionname.role.attrib "%role.attrib;">
+
+<!ENTITY % exceptionname.element "INCLUDE">
+<![%exceptionname.element;[
+<!ELEMENT exceptionname (%smallcptr.char.mix;)*>
+<!--end of exceptionname.element-->]]>
+
+<!ENTITY % exceptionname.attlist "INCLUDE">
+<![%exceptionname.attlist;[
+<!ATTLIST exceptionname
+ %common.attrib;
+ %exceptionname.role.attrib;
+ %local.exceptionname.attrib;
+>
+<!--end of exceptionname.attlist-->]]>
+<!--end of exceptionname.module-->]]>
+
+<!ENTITY % fieldsynopsis.module "INCLUDE">
+<![%fieldsynopsis.module;[
+<!ENTITY % local.fieldsynopsis.attrib "">
+<!ENTITY % fieldsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % fieldsynopsis.element "INCLUDE">
+<![%fieldsynopsis.element;[
+<!ELEMENT fieldsynopsis (modifier*, type?, varname, initializer?)>
+<!--end of fieldsynopsis.element-->]]>
+
+<!ENTITY % fieldsynopsis.attlist "INCLUDE">
+<![%fieldsynopsis.attlist;[
+<!ATTLIST fieldsynopsis
+ %common.attrib;
+ %fieldsynopsis.role.attrib;
+ %local.fieldsynopsis.attrib;
+>
+<!--end of fieldsynopsis.attlist-->]]>
+<!--end of fieldsynopsis.module-->]]>
+
+<!ENTITY % initializer.module "INCLUDE">
+<![%initializer.module;[
+<!ENTITY % local.initializer.attrib "">
+<!ENTITY % initializer.role.attrib "%role.attrib;">
+
+<!ENTITY % initializer.element "INCLUDE">
+<![%initializer.element;[
+<!ELEMENT initializer (%smallcptr.char.mix;)*>
+<!--end of initializer.element-->]]>
+
+<!ENTITY % initializer.attlist "INCLUDE">
+<![%initializer.attlist;[
+<!ATTLIST initializer
+ %common.attrib;
+ %initializer.role.attrib;
+ %local.initializer.attrib;
+>
+<!--end of initializer.attlist-->]]>
+<!--end of initializer.module-->]]>
+
+<!ENTITY % constructorsynopsis.module "INCLUDE">
+<![%constructorsynopsis.module;[
+<!ENTITY % local.constructorsynopsis.attrib "">
+<!ENTITY % constructorsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % constructorsynopsis.element "INCLUDE">
+<![%constructorsynopsis.element;[
+<!ELEMENT constructorsynopsis (modifier*,
+ methodname?,
+ (methodparam+|void),
+ exceptionname*)>
+<!--end of constructorsynopsis.element-->]]>
+
+<!ENTITY % constructorsynopsis.attlist "INCLUDE">
+<![%constructorsynopsis.attlist;[
+<!ATTLIST constructorsynopsis
+ %common.attrib;
+ %constructorsynopsis.role.attrib;
+ %local.constructorsynopsis.attrib;
+>
+<!--end of constructorsynopsis.attlist-->]]>
+<!--end of constructorsynopsis.module-->]]>
+
+<!ENTITY % destructorsynopsis.module "INCLUDE">
+<![%destructorsynopsis.module;[
+<!ENTITY % local.destructorsynopsis.attrib "">
+<!ENTITY % destructorsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % destructorsynopsis.element "INCLUDE">
+<![%destructorsynopsis.element;[
+<!ELEMENT destructorsynopsis (modifier*,
+ methodname?,
+ (methodparam+|void),
+ exceptionname*)>
+<!--end of destructorsynopsis.element-->]]>
+
+<!ENTITY % destructorsynopsis.attlist "INCLUDE">
+<![%destructorsynopsis.attlist;[
+<!ATTLIST destructorsynopsis
+ %common.attrib;
+ %destructorsynopsis.role.attrib;
+ %local.destructorsynopsis.attrib;
+>
+<!--end of destructorsynopsis.attlist-->]]>
+<!--end of destructorsynopsis.module-->]]>
+
+<!ENTITY % methodsynopsis.module "INCLUDE">
+<![%methodsynopsis.module;[
+<!ENTITY % local.methodsynopsis.attrib "">
+<!ENTITY % methodsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % methodsynopsis.element "INCLUDE">
+<![%methodsynopsis.element;[
+<!ELEMENT methodsynopsis (modifier*,
+ (type|void)?,
+ methodname,
+ (methodparam+|void),
+ exceptionname*,
+ modifier*)>
+<!--end of methodsynopsis.element-->]]>
+
+<!ENTITY % methodsynopsis.attlist "INCLUDE">
+<![%methodsynopsis.attlist;[
+<!ATTLIST methodsynopsis
+ %common.attrib;
+ %methodsynopsis.role.attrib;
+ %local.methodsynopsis.attrib;
+>
+<!--end of methodsynopsis.attlist-->]]>
+<!--end of methodsynopsis.module-->]]>
+
+<!ENTITY % methodname.module "INCLUDE">
+<![%methodname.module;[
+<!ENTITY % local.methodname.attrib "">
+<!ENTITY % methodname.role.attrib "%role.attrib;">
+
+<!ENTITY % methodname.element "INCLUDE">
+<![%methodname.element;[
+<!ELEMENT methodname (%smallcptr.char.mix;)*>
+<!--end of methodname.element-->]]>
+
+<!ENTITY % methodname.attlist "INCLUDE">
+<![%methodname.attlist;[
+<!ATTLIST methodname
+ %common.attrib;
+ %methodname.role.attrib;
+ %local.methodname.attrib;
+>
+<!--end of methodname.attlist-->]]>
+<!--end of methodname.module-->]]>
+
+<!ENTITY % methodparam.module "INCLUDE">
+<![%methodparam.module;[
+<!ENTITY % local.methodparam.attrib "">
+<!ENTITY % methodparam.role.attrib "%role.attrib;">
+
+<!ENTITY % methodparam.element "INCLUDE">
+<![%methodparam.element;[
+<!ELEMENT methodparam (modifier*,
+ type?,
+ ((parameter,initializer?)|funcparams),
+ modifier*)>
+<!--end of methodparam.element-->]]>
+
+<!ENTITY % methodparam.attlist "INCLUDE">
+<![%methodparam.attlist;[
+<!ATTLIST methodparam
+ %common.attrib;
+ %methodparam.role.attrib;
+ %local.methodparam.attrib;
+ choice (opt
+ |req
+ |plain) "req"
+ rep (norepeat
+ |repeat) "norepeat"
+>
+<!--end of methodparam.attlist-->]]>
+<!--end of methodparam.module-->]]>
+<!--end of classsynopsis.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Document information entities and elements ........................... -->
+
+<!-- The document information elements include some elements that are
+ currently used only in the document hierarchy module. They are
+ defined here so that they will be available for use in customized
+ document hierarchies. -->
+
+<!-- .................................. -->
+
+<!ENTITY % docinfo.content.module "INCLUDE">
+<![%docinfo.content.module;[
+
+<!-- Ackno ............................ -->
+
+<!ENTITY % ackno.module "INCLUDE">
+<![%ackno.module;[
+<!ENTITY % local.ackno.attrib "">
+<!ENTITY % ackno.role.attrib "%role.attrib;">
+
+<!ENTITY % ackno.element "INCLUDE">
+<![%ackno.element;[
+<!ELEMENT ackno (%docinfo.char.mix;)*>
+<!--end of ackno.element-->]]>
+
+<!ENTITY % ackno.attlist "INCLUDE">
+<![%ackno.attlist;[
+<!ATTLIST ackno
+ %common.attrib;
+ %ackno.role.attrib;
+ %local.ackno.attrib;
+>
+<!--end of ackno.attlist-->]]>
+<!--end of ackno.module-->]]>
+
+<!-- Address .......................... -->
+
+<!ENTITY % address.content.module "INCLUDE">
+<![%address.content.module;[
+<!ENTITY % address.module "INCLUDE">
+<![%address.module;[
+<!ENTITY % local.address.attrib "">
+<!ENTITY % address.role.attrib "%role.attrib;">
+
+<!ENTITY % address.element "INCLUDE">
+<![%address.element;[
+<!ELEMENT address (#PCDATA|%person.ident.mix;
+ |street|pob|postcode|city|state|country|phone
+ |fax|email|otheraddr)*>
+<!--end of address.element-->]]>
+
+<!ENTITY % address.attlist "INCLUDE">
+<![%address.attlist;[
+<!ATTLIST address
+ %linespecific.attrib;
+ %common.attrib;
+ %address.role.attrib;
+ %local.address.attrib;
+>
+<!--end of address.attlist-->]]>
+<!--end of address.module-->]]>
+
+ <!ENTITY % street.module "INCLUDE">
+ <![%street.module;[
+ <!ENTITY % local.street.attrib "">
+ <!ENTITY % street.role.attrib "%role.attrib;">
+
+<!ENTITY % street.element "INCLUDE">
+<![%street.element;[
+<!ELEMENT street (%docinfo.char.mix;)*>
+<!--end of street.element-->]]>
+
+<!ENTITY % street.attlist "INCLUDE">
+<![%street.attlist;[
+<!ATTLIST street
+ %common.attrib;
+ %street.role.attrib;
+ %local.street.attrib;
+>
+<!--end of street.attlist-->]]>
+ <!--end of street.module-->]]>
+
+ <!ENTITY % pob.module "INCLUDE">
+ <![%pob.module;[
+ <!ENTITY % local.pob.attrib "">
+ <!ENTITY % pob.role.attrib "%role.attrib;">
+
+<!ENTITY % pob.element "INCLUDE">
+<![%pob.element;[
+<!ELEMENT pob (%docinfo.char.mix;)*>
+<!--end of pob.element-->]]>
+
+<!ENTITY % pob.attlist "INCLUDE">
+<![%pob.attlist;[
+<!ATTLIST pob
+ %common.attrib;
+ %pob.role.attrib;
+ %local.pob.attrib;
+>
+<!--end of pob.attlist-->]]>
+ <!--end of pob.module-->]]>
+
+ <!ENTITY % postcode.module "INCLUDE">
+ <![%postcode.module;[
+ <!ENTITY % local.postcode.attrib "">
+ <!ENTITY % postcode.role.attrib "%role.attrib;">
+
+<!ENTITY % postcode.element "INCLUDE">
+<![%postcode.element;[
+<!ELEMENT postcode (%docinfo.char.mix;)*>
+<!--end of postcode.element-->]]>
+
+<!ENTITY % postcode.attlist "INCLUDE">
+<![%postcode.attlist;[
+<!ATTLIST postcode
+ %common.attrib;
+ %postcode.role.attrib;
+ %local.postcode.attrib;
+>
+<!--end of postcode.attlist-->]]>
+ <!--end of postcode.module-->]]>
+
+ <!ENTITY % city.module "INCLUDE">
+ <![%city.module;[
+ <!ENTITY % local.city.attrib "">
+ <!ENTITY % city.role.attrib "%role.attrib;">
+
+<!ENTITY % city.element "INCLUDE">
+<![%city.element;[
+<!ELEMENT city (%docinfo.char.mix;)*>
+<!--end of city.element-->]]>
+
+<!ENTITY % city.attlist "INCLUDE">
+<![%city.attlist;[
+<!ATTLIST city
+ %common.attrib;
+ %city.role.attrib;
+ %local.city.attrib;
+>
+<!--end of city.attlist-->]]>
+ <!--end of city.module-->]]>
+
+ <!ENTITY % state.module "INCLUDE">
+ <![%state.module;[
+ <!ENTITY % local.state.attrib "">
+ <!ENTITY % state.role.attrib "%role.attrib;">
+
+<!ENTITY % state.element "INCLUDE">
+<![%state.element;[
+<!ELEMENT state (%docinfo.char.mix;)*>
+<!--end of state.element-->]]>
+
+<!ENTITY % state.attlist "INCLUDE">
+<![%state.attlist;[
+<!ATTLIST state
+ %common.attrib;
+ %state.role.attrib;
+ %local.state.attrib;
+>
+<!--end of state.attlist-->]]>
+ <!--end of state.module-->]]>
+
+ <!ENTITY % country.module "INCLUDE">
+ <![%country.module;[
+ <!ENTITY % local.country.attrib "">
+ <!ENTITY % country.role.attrib "%role.attrib;">
+
+<!ENTITY % country.element "INCLUDE">
+<![%country.element;[
+<!ELEMENT country (%docinfo.char.mix;)*>
+<!--end of country.element-->]]>
+
+<!ENTITY % country.attlist "INCLUDE">
+<![%country.attlist;[
+<!ATTLIST country
+ %common.attrib;
+ %country.role.attrib;
+ %local.country.attrib;
+>
+<!--end of country.attlist-->]]>
+ <!--end of country.module-->]]>
+
+ <!ENTITY % phone.module "INCLUDE">
+ <![%phone.module;[
+ <!ENTITY % local.phone.attrib "">
+ <!ENTITY % phone.role.attrib "%role.attrib;">
+
+<!ENTITY % phone.element "INCLUDE">
+<![%phone.element;[
+<!ELEMENT phone (%docinfo.char.mix;)*>
+<!--end of phone.element-->]]>
+
+<!ENTITY % phone.attlist "INCLUDE">
+<![%phone.attlist;[
+<!ATTLIST phone
+ %common.attrib;
+ %phone.role.attrib;
+ %local.phone.attrib;
+>
+<!--end of phone.attlist-->]]>
+ <!--end of phone.module-->]]>
+
+ <!ENTITY % fax.module "INCLUDE">
+ <![%fax.module;[
+ <!ENTITY % local.fax.attrib "">
+ <!ENTITY % fax.role.attrib "%role.attrib;">
+
+<!ENTITY % fax.element "INCLUDE">
+<![%fax.element;[
+<!ELEMENT fax (%docinfo.char.mix;)*>
+<!--end of fax.element-->]]>
+
+<!ENTITY % fax.attlist "INCLUDE">
+<![%fax.attlist;[
+<!ATTLIST fax
+ %common.attrib;
+ %fax.role.attrib;
+ %local.fax.attrib;
+>
+<!--end of fax.attlist-->]]>
+ <!--end of fax.module-->]]>
+
+ <!-- Email (defined in the Inlines section, below)-->
+
+ <!ENTITY % otheraddr.module "INCLUDE">
+ <![%otheraddr.module;[
+ <!ENTITY % local.otheraddr.attrib "">
+ <!ENTITY % otheraddr.role.attrib "%role.attrib;">
+
+<!ENTITY % otheraddr.element "INCLUDE">
+<![%otheraddr.element;[
+<!ELEMENT otheraddr (%docinfo.char.mix;)*>
+<!--end of otheraddr.element-->]]>
+
+<!ENTITY % otheraddr.attlist "INCLUDE">
+<![%otheraddr.attlist;[
+<!ATTLIST otheraddr
+ %common.attrib;
+ %otheraddr.role.attrib;
+ %local.otheraddr.attrib;
+>
+<!--end of otheraddr.attlist-->]]>
+ <!--end of otheraddr.module-->]]>
+<!--end of address.content.module-->]]>
+
+<!-- Affiliation ...................... -->
+
+<!ENTITY % affiliation.content.module "INCLUDE">
+<![%affiliation.content.module;[
+<!ENTITY % affiliation.module "INCLUDE">
+<![%affiliation.module;[
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+
+<!ENTITY % affiliation.element "INCLUDE">
+<![%affiliation.element;[
+<!ELEMENT affiliation (shortaffil?, jobtitle*, orgname?, orgdiv*,
+ address*)>
+<!--end of affiliation.element-->]]>
+
+<!ENTITY % affiliation.attlist "INCLUDE">
+<![%affiliation.attlist;[
+<!ATTLIST affiliation
+ %common.attrib;
+ %affiliation.role.attrib;
+ %local.affiliation.attrib;
+>
+<!--end of affiliation.attlist-->]]>
+<!--end of affiliation.module-->]]>
+
+ <!ENTITY % shortaffil.module "INCLUDE">
+ <![%shortaffil.module;[
+ <!ENTITY % local.shortaffil.attrib "">
+ <!ENTITY % shortaffil.role.attrib "%role.attrib;">
+
+<!ENTITY % shortaffil.element "INCLUDE">
+<![%shortaffil.element;[
+<!ELEMENT shortaffil (%docinfo.char.mix;)*>
+<!--end of shortaffil.element-->]]>
+
+<!ENTITY % shortaffil.attlist "INCLUDE">
+<![%shortaffil.attlist;[
+<!ATTLIST shortaffil
+ %common.attrib;
+ %shortaffil.role.attrib;
+ %local.shortaffil.attrib;
+>
+<!--end of shortaffil.attlist-->]]>
+ <!--end of shortaffil.module-->]]>
+
+ <!ENTITY % jobtitle.module "INCLUDE">
+ <![%jobtitle.module;[
+ <!ENTITY % local.jobtitle.attrib "">
+ <!ENTITY % jobtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % jobtitle.element "INCLUDE">
+<![%jobtitle.element;[
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!--end of jobtitle.element-->]]>
+
+<!ENTITY % jobtitle.attlist "INCLUDE">
+<![%jobtitle.attlist;[
+<!ATTLIST jobtitle
+ %common.attrib;
+ %jobtitle.role.attrib;
+ %local.jobtitle.attrib;
+>
+<!--end of jobtitle.attlist-->]]>
+ <!--end of jobtitle.module-->]]>
+
+ <!-- OrgName (defined elsewhere in this section)-->
+
+ <!ENTITY % orgdiv.module "INCLUDE">
+ <![%orgdiv.module;[
+ <!ENTITY % local.orgdiv.attrib "">
+ <!ENTITY % orgdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % orgdiv.element "INCLUDE">
+<![%orgdiv.element;[
+<!ELEMENT orgdiv (%docinfo.char.mix;)*>
+<!--end of orgdiv.element-->]]>
+
+<!ENTITY % orgdiv.attlist "INCLUDE">
+<![%orgdiv.attlist;[
+<!ATTLIST orgdiv
+ %common.attrib;
+ %orgdiv.role.attrib;
+ %local.orgdiv.attrib;
+>
+<!--end of orgdiv.attlist-->]]>
+ <!--end of orgdiv.module-->]]>
+
+ <!-- Address (defined elsewhere in this section)-->
+<!--end of affiliation.content.module-->]]>
+
+<!-- ArtPageNums ...................... -->
+
+<!ENTITY % artpagenums.module "INCLUDE">
+<![%artpagenums.module;[
+<!ENTITY % local.artpagenums.attrib "">
+<!ENTITY % artpagenums.role.attrib "%role.attrib;">
+
+<!ENTITY % artpagenums.element "INCLUDE">
+<![%artpagenums.element;[
+<!ELEMENT artpagenums (%docinfo.char.mix;)*>
+<!--end of artpagenums.element-->]]>
+
+<!ENTITY % artpagenums.attlist "INCLUDE">
+<![%artpagenums.attlist;[
+<!ATTLIST artpagenums
+ %common.attrib;
+ %artpagenums.role.attrib;
+ %local.artpagenums.attrib;
+>
+<!--end of artpagenums.attlist-->]]>
+<!--end of artpagenums.module-->]]>
+
+<!-- Author ........................... -->
+
+<!ENTITY % author.module "INCLUDE">
+<![%author.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new
+wrapper element created to allow association of those two elements with
+Author name information.
+......................
+-->
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+
+<!ENTITY % author.element "INCLUDE">
+<![%author.element;[
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!--end of author.element-->]]>
+
+<!ENTITY % author.attlist "INCLUDE">
+<![%author.attlist;[
+<!ATTLIST author
+ %common.attrib;
+ %author.role.attrib;
+ %local.author.attrib;
+>
+<!--end of author.attlist-->]]>
+<!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of author.module-->]]>
+
+<!-- AuthorGroup ...................... -->
+
+<!ENTITY % authorgroup.content.module "INCLUDE">
+<![%authorgroup.content.module;[
+<!ENTITY % authorgroup.module "INCLUDE">
+<![%authorgroup.module;[
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+
+<!ENTITY % authorgroup.element "INCLUDE">
+<![%authorgroup.element;[
+<!ELEMENT authorgroup ((author|editor|collab|corpauthor|othercredit)+)>
+<!--end of authorgroup.element-->]]>
+
+<!ENTITY % authorgroup.attlist "INCLUDE">
+<![%authorgroup.attlist;[
+<!ATTLIST authorgroup
+ %common.attrib;
+ %authorgroup.role.attrib;
+ %local.authorgroup.attrib;
+>
+<!--end of authorgroup.attlist-->]]>
+<!--end of authorgroup.module-->]]>
+
+ <!-- Author (defined elsewhere in this section)-->
+ <!-- Editor (defined elsewhere in this section)-->
+
+ <!ENTITY % collab.content.module "INCLUDE">
+ <![%collab.content.module;[
+ <!ENTITY % collab.module "INCLUDE">
+ <![%collab.module;[
+ <!ENTITY % local.collab.attrib "">
+ <!ENTITY % collab.role.attrib "%role.attrib;">
+
+<!ENTITY % collab.element "INCLUDE">
+<![%collab.element;[
+<!ELEMENT collab (collabname, affiliation*)>
+<!--end of collab.element-->]]>
+
+<!ENTITY % collab.attlist "INCLUDE">
+<![%collab.attlist;[
+<!ATTLIST collab
+ %common.attrib;
+ %collab.role.attrib;
+ %local.collab.attrib;
+>
+<!--end of collab.attlist-->]]>
+ <!--end of collab.module-->]]>
+
+ <!ENTITY % collabname.module "INCLUDE">
+ <![%collabname.module;[
+ <!ENTITY % local.collabname.attrib "">
+ <!ENTITY % collabname.role.attrib "%role.attrib;">
+
+<!ENTITY % collabname.element "INCLUDE">
+<![%collabname.element;[
+<!ELEMENT collabname (%docinfo.char.mix;)*>
+<!--end of collabname.element-->]]>
+
+<!ENTITY % collabname.attlist "INCLUDE">
+<![%collabname.attlist;[
+<!ATTLIST collabname
+ %common.attrib;
+ %collabname.role.attrib;
+ %local.collabname.attrib;
+>
+<!--end of collabname.attlist-->]]>
+ <!--end of collabname.module-->]]>
+
+ <!-- Affiliation (defined elsewhere in this section)-->
+ <!--end of collab.content.module-->]]>
+
+ <!-- CorpAuthor (defined elsewhere in this section)-->
+ <!-- OtherCredit (defined elsewhere in this section)-->
+
+<!--end of authorgroup.content.module-->]]>
+
+<!-- AuthorInitials ................... -->
+
+<!ENTITY % authorinitials.module "INCLUDE">
+<![%authorinitials.module;[
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+
+<!ENTITY % authorinitials.element "INCLUDE">
+<![%authorinitials.element;[
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!--end of authorinitials.element-->]]>
+
+<!ENTITY % authorinitials.attlist "INCLUDE">
+<![%authorinitials.attlist;[
+<!ATTLIST authorinitials
+ %common.attrib;
+ %authorinitials.role.attrib;
+ %local.authorinitials.attrib;
+>
+<!--end of authorinitials.attlist-->]]>
+<!--end of authorinitials.module-->]]>
+
+<!-- ConfGroup ........................ -->
+
+<!ENTITY % confgroup.content.module "INCLUDE">
+<![%confgroup.content.module;[
+<!ENTITY % confgroup.module "INCLUDE">
+<![%confgroup.module;[
+<!ENTITY % local.confgroup.attrib "">
+<!ENTITY % confgroup.role.attrib "%role.attrib;">
+
+<!ENTITY % confgroup.element "INCLUDE">
+<![%confgroup.element;[
+<!ELEMENT confgroup ((confdates|conftitle|confnum|address|confsponsor)*)>
+<!--end of confgroup.element-->]]>
+
+<!ENTITY % confgroup.attlist "INCLUDE">
+<![%confgroup.attlist;[
+<!ATTLIST confgroup
+ %common.attrib;
+ %confgroup.role.attrib;
+ %local.confgroup.attrib;
+>
+<!--end of confgroup.attlist-->]]>
+<!--end of confgroup.module-->]]>
+
+ <!ENTITY % confdates.module "INCLUDE">
+ <![%confdates.module;[
+ <!ENTITY % local.confdates.attrib "">
+ <!ENTITY % confdates.role.attrib "%role.attrib;">
+
+<!ENTITY % confdates.element "INCLUDE">
+<![%confdates.element;[
+<!ELEMENT confdates (%docinfo.char.mix;)*>
+<!--end of confdates.element-->]]>
+
+<!ENTITY % confdates.attlist "INCLUDE">
+<![%confdates.attlist;[
+<!ATTLIST confdates
+ %common.attrib;
+ %confdates.role.attrib;
+ %local.confdates.attrib;
+>
+<!--end of confdates.attlist-->]]>
+ <!--end of confdates.module-->]]>
+
+ <!ENTITY % conftitle.module "INCLUDE">
+ <![%conftitle.module;[
+ <!ENTITY % local.conftitle.attrib "">
+ <!ENTITY % conftitle.role.attrib "%role.attrib;">
+
+<!ENTITY % conftitle.element "INCLUDE">
+<![%conftitle.element;[
+<!ELEMENT conftitle (%docinfo.char.mix;)*>
+<!--end of conftitle.element-->]]>
+
+<!ENTITY % conftitle.attlist "INCLUDE">
+<![%conftitle.attlist;[
+<!ATTLIST conftitle
+ %common.attrib;
+ %conftitle.role.attrib;
+ %local.conftitle.attrib;
+>
+<!--end of conftitle.attlist-->]]>
+ <!--end of conftitle.module-->]]>
+
+ <!ENTITY % confnum.module "INCLUDE">
+ <![%confnum.module;[
+ <!ENTITY % local.confnum.attrib "">
+ <!ENTITY % confnum.role.attrib "%role.attrib;">
+
+<!ENTITY % confnum.element "INCLUDE">
+<![%confnum.element;[
+<!ELEMENT confnum (%docinfo.char.mix;)*>
+<!--end of confnum.element-->]]>
+
+<!ENTITY % confnum.attlist "INCLUDE">
+<![%confnum.attlist;[
+<!ATTLIST confnum
+ %common.attrib;
+ %confnum.role.attrib;
+ %local.confnum.attrib;
+>
+<!--end of confnum.attlist-->]]>
+ <!--end of confnum.module-->]]>
+
+ <!-- Address (defined elsewhere in this section)-->
+
+ <!ENTITY % confsponsor.module "INCLUDE">
+ <![%confsponsor.module;[
+ <!ENTITY % local.confsponsor.attrib "">
+ <!ENTITY % confsponsor.role.attrib "%role.attrib;">
+
+<!ENTITY % confsponsor.element "INCLUDE">
+<![%confsponsor.element;[
+<!ELEMENT confsponsor (%docinfo.char.mix;)*>
+<!--end of confsponsor.element-->]]>
+
+<!ENTITY % confsponsor.attlist "INCLUDE">
+<![%confsponsor.attlist;[
+<!ATTLIST confsponsor
+ %common.attrib;
+ %confsponsor.role.attrib;
+ %local.confsponsor.attrib;
+>
+<!--end of confsponsor.attlist-->]]>
+ <!--end of confsponsor.module-->]]>
+<!--end of confgroup.content.module-->]]>
+
+<!-- ContractNum ...................... -->
+
+<!ENTITY % contractnum.module "INCLUDE">
+<![%contractnum.module;[
+<!ENTITY % local.contractnum.attrib "">
+<!ENTITY % contractnum.role.attrib "%role.attrib;">
+
+<!ENTITY % contractnum.element "INCLUDE">
+<![%contractnum.element;[
+<!ELEMENT contractnum (%docinfo.char.mix;)*>
+<!--end of contractnum.element-->]]>
+
+<!ENTITY % contractnum.attlist "INCLUDE">
+<![%contractnum.attlist;[
+<!ATTLIST contractnum
+ %common.attrib;
+ %contractnum.role.attrib;
+ %local.contractnum.attrib;
+>
+<!--end of contractnum.attlist-->]]>
+<!--end of contractnum.module-->]]>
+
+<!-- ContractSponsor .................. -->
+
+<!ENTITY % contractsponsor.module "INCLUDE">
+<![%contractsponsor.module;[
+<!ENTITY % local.contractsponsor.attrib "">
+<!ENTITY % contractsponsor.role.attrib "%role.attrib;">
+
+<!ENTITY % contractsponsor.element "INCLUDE">
+<![%contractsponsor.element;[
+<!ELEMENT contractsponsor (%docinfo.char.mix;)*>
+<!--end of contractsponsor.element-->]]>
+
+<!ENTITY % contractsponsor.attlist "INCLUDE">
+<![%contractsponsor.attlist;[
+<!ATTLIST contractsponsor
+ %common.attrib;
+ %contractsponsor.role.attrib;
+ %local.contractsponsor.attrib;
+>
+<!--end of contractsponsor.attlist-->]]>
+<!--end of contractsponsor.module-->]]>
+
+<!-- Copyright ........................ -->
+
+<!ENTITY % copyright.content.module "INCLUDE">
+<![%copyright.content.module;[
+<!ENTITY % copyright.module "INCLUDE">
+<![%copyright.module;[
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+
+<!ENTITY % copyright.element "INCLUDE">
+<![%copyright.element;[
+<!ELEMENT copyright (year+, holder*)>
+<!--end of copyright.element-->]]>
+
+<!ENTITY % copyright.attlist "INCLUDE">
+<![%copyright.attlist;[
+<!ATTLIST copyright
+ %common.attrib;
+ %copyright.role.attrib;
+ %local.copyright.attrib;
+>
+<!--end of copyright.attlist-->]]>
+<!--end of copyright.module-->]]>
+
+ <!ENTITY % year.module "INCLUDE">
+ <![%year.module;[
+ <!ENTITY % local.year.attrib "">
+ <!ENTITY % year.role.attrib "%role.attrib;">
+
+<!ENTITY % year.element "INCLUDE">
+<![%year.element;[
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!--end of year.element-->]]>
+
+<!ENTITY % year.attlist "INCLUDE">
+<![%year.attlist;[
+<!ATTLIST year
+ %common.attrib;
+ %year.role.attrib;
+ %local.year.attrib;
+>
+<!--end of year.attlist-->]]>
+ <!--end of year.module-->]]>
+
+ <!ENTITY % holder.module "INCLUDE">
+ <![%holder.module;[
+ <!ENTITY % local.holder.attrib "">
+ <!ENTITY % holder.role.attrib "%role.attrib;">
+
+<!ENTITY % holder.element "INCLUDE">
+<![%holder.element;[
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!--end of holder.element-->]]>
+
+<!ENTITY % holder.attlist "INCLUDE">
+<![%holder.attlist;[
+<!ATTLIST holder
+ %common.attrib;
+ %holder.role.attrib;
+ %local.holder.attrib;
+>
+<!--end of holder.attlist-->]]>
+ <!--end of holder.module-->]]>
+<!--end of copyright.content.module-->]]>
+
+<!-- CorpAuthor ....................... -->
+
+<!ENTITY % corpauthor.module "INCLUDE">
+<![%corpauthor.module;[
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+
+<!ENTITY % corpauthor.element "INCLUDE">
+<![%corpauthor.element;[
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!--end of corpauthor.element-->]]>
+
+<!ENTITY % corpauthor.attlist "INCLUDE">
+<![%corpauthor.attlist;[
+<!ATTLIST corpauthor
+ %common.attrib;
+ %corpauthor.role.attrib;
+ %local.corpauthor.attrib;
+>
+<!--end of corpauthor.attlist-->]]>
+<!--end of corpauthor.module-->]]>
+
+<!-- CorpName ......................... -->
+
+<!ENTITY % corpname.module "INCLUDE">
+<![%corpname.module;[
+<!ENTITY % local.corpname.attrib "">
+
+<!ENTITY % corpname.element "INCLUDE">
+<![%corpname.element;[
+<!ELEMENT corpname (%docinfo.char.mix;)*>
+<!--end of corpname.element-->]]>
+<!ENTITY % corpname.role.attrib "%role.attrib;">
+
+<!ENTITY % corpname.attlist "INCLUDE">
+<![%corpname.attlist;[
+<!ATTLIST corpname
+ %common.attrib;
+ %corpname.role.attrib;
+ %local.corpname.attrib;
+>
+<!--end of corpname.attlist-->]]>
+<!--end of corpname.module-->]]>
+
+<!-- Date ............................. -->
+
+<!ENTITY % date.module "INCLUDE">
+<![%date.module;[
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+
+<!ENTITY % date.element "INCLUDE">
+<![%date.element;[
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!--end of date.element-->]]>
+
+<!ENTITY % date.attlist "INCLUDE">
+<![%date.attlist;[
+<!ATTLIST date
+ %common.attrib;
+ %date.role.attrib;
+ %local.date.attrib;
+>
+<!--end of date.attlist-->]]>
+<!--end of date.module-->]]>
+
+<!-- Edition .......................... -->
+
+<!ENTITY % edition.module "INCLUDE">
+<![%edition.module;[
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+
+<!ENTITY % edition.element "INCLUDE">
+<![%edition.element;[
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!--end of edition.element-->]]>
+
+<!ENTITY % edition.attlist "INCLUDE">
+<![%edition.attlist;[
+<!ATTLIST edition
+ %common.attrib;
+ %edition.role.attrib;
+ %local.edition.attrib;
+>
+<!--end of edition.attlist-->]]>
+<!--end of edition.module-->]]>
+
+<!-- Editor ........................... -->
+
+<!ENTITY % editor.module "INCLUDE">
+<![%editor.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new
+wrapper element created to allow association of those two elements with
+Editor name information.
+......................
+-->
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+
+<!ENTITY % editor.element "INCLUDE">
+<![%editor.element;[
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!--end of editor.element-->]]>
+
+<!ENTITY % editor.attlist "INCLUDE">
+<![%editor.attlist;[
+<!ATTLIST editor
+ %common.attrib;
+ %editor.role.attrib;
+ %local.editor.attrib;
+>
+<!--end of editor.attlist-->]]>
+ <!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of editor.module-->]]>
+
+<!-- ISBN ............................. -->
+
+<!ENTITY % isbn.module "INCLUDE">
+<![%isbn.module;[
+<!ENTITY % local.isbn.attrib "">
+<!ENTITY % isbn.role.attrib "%role.attrib;">
+
+<!ENTITY % isbn.element "INCLUDE">
+<![%isbn.element;[
+<!ELEMENT isbn (%docinfo.char.mix;)*>
+<!--end of isbn.element-->]]>
+
+<!ENTITY % isbn.attlist "INCLUDE">
+<![%isbn.attlist;[
+<!ATTLIST isbn
+ %common.attrib;
+ %isbn.role.attrib;
+ %local.isbn.attrib;
+>
+<!--end of isbn.attlist-->]]>
+<!--end of isbn.module-->]]>
+
+<!-- ISSN ............................. -->
+
+<!ENTITY % issn.module "INCLUDE">
+<![%issn.module;[
+<!ENTITY % local.issn.attrib "">
+<!ENTITY % issn.role.attrib "%role.attrib;">
+
+<!ENTITY % issn.element "INCLUDE">
+<![%issn.element;[
+<!ELEMENT issn (%docinfo.char.mix;)*>
+<!--end of issn.element-->]]>
+
+<!ENTITY % issn.attlist "INCLUDE">
+<![%issn.attlist;[
+<!ATTLIST issn
+ %common.attrib;
+ %issn.role.attrib;
+ %local.issn.attrib;
+>
+<!--end of issn.attlist-->]]>
+<!--end of issn.module-->]]>
+
+<!-- InvPartNumber .................... -->
+
+<!ENTITY % invpartnumber.module "INCLUDE">
+<![%invpartnumber.module;[
+<!ENTITY % local.invpartnumber.attrib "">
+<!ENTITY % invpartnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % invpartnumber.element "INCLUDE">
+<![%invpartnumber.element;[
+<!ELEMENT invpartnumber (%docinfo.char.mix;)*>
+<!--end of invpartnumber.element-->]]>
+
+<!ENTITY % invpartnumber.attlist "INCLUDE">
+<![%invpartnumber.attlist;[
+<!ATTLIST invpartnumber
+ %common.attrib;
+ %invpartnumber.role.attrib;
+ %local.invpartnumber.attrib;
+>
+<!--end of invpartnumber.attlist-->]]>
+<!--end of invpartnumber.module-->]]>
+
+<!-- IssueNum ......................... -->
+
+<!ENTITY % issuenum.module "INCLUDE">
+<![%issuenum.module;[
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+
+<!ENTITY % issuenum.element "INCLUDE">
+<![%issuenum.element;[
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!--end of issuenum.element-->]]>
+
+<!ENTITY % issuenum.attlist "INCLUDE">
+<![%issuenum.attlist;[
+<!ATTLIST issuenum
+ %common.attrib;
+ %issuenum.role.attrib;
+ %local.issuenum.attrib;
+>
+<!--end of issuenum.attlist-->]]>
+<!--end of issuenum.module-->]]>
+
+<!-- LegalNotice ...................... -->
+
+<!ENTITY % legalnotice.module "INCLUDE">
+<![%legalnotice.module;[
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+
+<!ENTITY % legalnotice.element "INCLUDE">
+<![%legalnotice.element;[
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!--end of legalnotice.element-->]]>
+
+<!ENTITY % legalnotice.attlist "INCLUDE">
+<![%legalnotice.attlist;[
+<!ATTLIST legalnotice
+ %common.attrib;
+ %legalnotice.role.attrib;
+ %local.legalnotice.attrib;
+>
+<!--end of legalnotice.attlist-->]]>
+<!--end of legalnotice.module-->]]>
+
+<!-- ModeSpec ......................... -->
+
+<!ENTITY % modespec.module "INCLUDE">
+<![%modespec.module;[
+<!ENTITY % local.modespec.attrib "">
+<!ENTITY % modespec.role.attrib "%role.attrib;">
+
+<!ENTITY % modespec.element "INCLUDE">
+<![%modespec.element;[
+<!ELEMENT modespec (%docinfo.char.mix;)*>
+<!--end of modespec.element-->]]>
+
+<!-- Application: Type of action required for completion
+ of the links to which the ModeSpec is relevant (e.g.,
+ retrieval query) -->
+
+
+<!ENTITY % modespec.attlist "INCLUDE">
+<![%modespec.attlist;[
+<!ATTLIST modespec
+ application NOTATION
+ (%notation.class;) #IMPLIED
+ %common.attrib;
+ %modespec.role.attrib;
+ %local.modespec.attrib;
+>
+<!--end of modespec.attlist-->]]>
+<!--end of modespec.module-->]]>
+
+<!-- OrgName .......................... -->
+
+<!ENTITY % orgname.module "INCLUDE">
+<![%orgname.module;[
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+
+<!ENTITY % orgname.element "INCLUDE">
+<![%orgname.element;[
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!--end of orgname.element-->]]>
+
+<!ENTITY % orgname.attlist "INCLUDE">
+<![%orgname.attlist;[
+<!ATTLIST orgname
+ %common.attrib;
+ %orgname.role.attrib;
+ %local.orgname.attrib;
+>
+<!--end of orgname.attlist-->]]>
+<!--end of orgname.module-->]]>
+
+<!-- OtherCredit ...................... -->
+
+<!ENTITY % othercredit.module "INCLUDE">
+<![%othercredit.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and a new
+wrapper element created to allow association of those two elements with
+OtherCredit name information.
+......................
+-->
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+
+<!ENTITY % othercredit.element "INCLUDE">
+<![%othercredit.element;[
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!--end of othercredit.element-->]]>
+
+<!ENTITY % othercredit.attlist "INCLUDE">
+<![%othercredit.attlist;[
+<!ATTLIST othercredit
+ %common.attrib;
+ %othercredit.role.attrib;
+ %local.othercredit.attrib;
+>
+<!--end of othercredit.attlist-->]]>
+ <!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of othercredit.module-->]]>
+
+<!-- PageNums ......................... -->
+
+<!ENTITY % pagenums.module "INCLUDE">
+<![%pagenums.module;[
+<!ENTITY % local.pagenums.attrib "">
+<!ENTITY % pagenums.role.attrib "%role.attrib;">
+
+<!ENTITY % pagenums.element "INCLUDE">
+<![%pagenums.element;[
+<!ELEMENT pagenums (%docinfo.char.mix;)*>
+<!--end of pagenums.element-->]]>
+
+<!ENTITY % pagenums.attlist "INCLUDE">
+<![%pagenums.attlist;[
+<!ATTLIST pagenums
+ %common.attrib;
+ %pagenums.role.attrib;
+ %local.pagenums.attrib;
+>
+<!--end of pagenums.attlist-->]]>
+<!--end of pagenums.module-->]]>
+
+<!-- Personal identity elements ....... -->
+
+<!-- These elements are used only within Author, Editor, and
+OtherCredit. -->
+
+<!ENTITY % person.ident.module "INCLUDE">
+<![%person.ident.module;[
+<!--FUTURE USE (V4.0):
+......................
+AuthorBlurb and Affiliation will be removed from %person.ident.mix; and
+a new wrapper element created to allow association of those two elements
+with Contrib name information.
+......................
+-->
+ <!ENTITY % contrib.module "INCLUDE">
+ <![%contrib.module;[
+ <!ENTITY % local.contrib.attrib "">
+ <!ENTITY % contrib.role.attrib "%role.attrib;">
+
+<!ENTITY % contrib.element "INCLUDE">
+<![%contrib.element;[
+<!ELEMENT contrib (%docinfo.char.mix;)*>
+<!--end of contrib.element-->]]>
+
+<!ENTITY % contrib.attlist "INCLUDE">
+<![%contrib.attlist;[
+<!ATTLIST contrib
+ %common.attrib;
+ %contrib.role.attrib;
+ %local.contrib.attrib;
+>
+<!--end of contrib.attlist-->]]>
+ <!--end of contrib.module-->]]>
+
+ <!ENTITY % firstname.module "INCLUDE">
+ <![%firstname.module;[
+ <!ENTITY % local.firstname.attrib "">
+ <!ENTITY % firstname.role.attrib "%role.attrib;">
+
+<!ENTITY % firstname.element "INCLUDE">
+<![%firstname.element;[
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!--end of firstname.element-->]]>
+
+<!ENTITY % firstname.attlist "INCLUDE">
+<![%firstname.attlist;[
+<!ATTLIST firstname
+ %common.attrib;
+ %firstname.role.attrib;
+ %local.firstname.attrib;
+>
+<!--end of firstname.attlist-->]]>
+ <!--end of firstname.module-->]]>
+
+ <!ENTITY % honorific.module "INCLUDE">
+ <![%honorific.module;[
+ <!ENTITY % local.honorific.attrib "">
+ <!ENTITY % honorific.role.attrib "%role.attrib;">
+
+<!ENTITY % honorific.element "INCLUDE">
+<![%honorific.element;[
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!--end of honorific.element-->]]>
+
+<!ENTITY % honorific.attlist "INCLUDE">
+<![%honorific.attlist;[
+<!ATTLIST honorific
+ %common.attrib;
+ %honorific.role.attrib;
+ %local.honorific.attrib;
+>
+<!--end of honorific.attlist-->]]>
+ <!--end of honorific.module-->]]>
+
+ <!ENTITY % lineage.module "INCLUDE">
+ <![%lineage.module;[
+ <!ENTITY % local.lineage.attrib "">
+ <!ENTITY % lineage.role.attrib "%role.attrib;">
+
+<!ENTITY % lineage.element "INCLUDE">
+<![%lineage.element;[
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!--end of lineage.element-->]]>
+
+<!ENTITY % lineage.attlist "INCLUDE">
+<![%lineage.attlist;[
+<!ATTLIST lineage
+ %common.attrib;
+ %lineage.role.attrib;
+ %local.lineage.attrib;
+>
+<!--end of lineage.attlist-->]]>
+ <!--end of lineage.module-->]]>
+
+ <!ENTITY % othername.module "INCLUDE">
+ <![%othername.module;[
+ <!ENTITY % local.othername.attrib "">
+ <!ENTITY % othername.role.attrib "%role.attrib;">
+
+<!ENTITY % othername.element "INCLUDE">
+<![%othername.element;[
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!--end of othername.element-->]]>
+
+<!ENTITY % othername.attlist "INCLUDE">
+<![%othername.attlist;[
+<!ATTLIST othername
+ %common.attrib;
+ %othername.role.attrib;
+ %local.othername.attrib;
+>
+<!--end of othername.attlist-->]]>
+ <!--end of othername.module-->]]>
+
+ <!ENTITY % surname.module "INCLUDE">
+ <![%surname.module;[
+ <!ENTITY % local.surname.attrib "">
+ <!ENTITY % surname.role.attrib "%role.attrib;">
+
+<!ENTITY % surname.element "INCLUDE">
+<![%surname.element;[
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!--end of surname.element-->]]>
+
+<!ENTITY % surname.attlist "INCLUDE">
+<![%surname.attlist;[
+<!ATTLIST surname
+ %common.attrib;
+ %surname.role.attrib;
+ %local.surname.attrib;
+>
+<!--end of surname.attlist-->]]>
+ <!--end of surname.module-->]]>
+<!--end of person.ident.module-->]]>
+
+<!-- PrintHistory ..................... -->
+
+<!ENTITY % printhistory.module "INCLUDE">
+<![%printhistory.module;[
+<!ENTITY % local.printhistory.attrib "">
+<!ENTITY % printhistory.role.attrib "%role.attrib;">
+
+<!ENTITY % printhistory.element "INCLUDE">
+<![%printhistory.element;[
+<!ELEMENT printhistory ((%para.class;)+)>
+<!--end of printhistory.element-->]]>
+
+<!ENTITY % printhistory.attlist "INCLUDE">
+<![%printhistory.attlist;[
+<!ATTLIST printhistory
+ %common.attrib;
+ %printhistory.role.attrib;
+ %local.printhistory.attrib;
+>
+<!--end of printhistory.attlist-->]]>
+<!--end of printhistory.module-->]]>
+
+<!-- ProductName ...................... -->
+
+<!ENTITY % productname.module "INCLUDE">
+<![%productname.module;[
+<!ENTITY % local.productname.attrib "">
+<!ENTITY % productname.role.attrib "%role.attrib;">
+
+<!ENTITY % productname.element "INCLUDE">
+<![%productname.element;[
+<!ELEMENT productname (%para.char.mix;)*>
+<!--end of productname.element-->]]>
+
+<!-- Class: More precisely identifies the item the element names -->
+
+
+<!ENTITY % productname.attlist "INCLUDE">
+<![%productname.attlist;[
+<!ATTLIST productname
+ class (service
+ |trade
+ |registered
+ |copyright) 'trade'
+ %common.attrib;
+ %productname.role.attrib;
+ %local.productname.attrib;
+>
+<!--end of productname.attlist-->]]>
+<!--end of productname.module-->]]>
+
+<!-- ProductNumber .................... -->
+
+<!ENTITY % productnumber.module "INCLUDE">
+<![%productnumber.module;[
+<!ENTITY % local.productnumber.attrib "">
+<!ENTITY % productnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % productnumber.element "INCLUDE">
+<![%productnumber.element;[
+<!ELEMENT productnumber (%docinfo.char.mix;)*>
+<!--end of productnumber.element-->]]>
+
+<!ENTITY % productnumber.attlist "INCLUDE">
+<![%productnumber.attlist;[
+<!ATTLIST productnumber
+ %common.attrib;
+ %productnumber.role.attrib;
+ %local.productnumber.attrib;
+>
+<!--end of productnumber.attlist-->]]>
+<!--end of productnumber.module-->]]>
+
+<!-- PubDate .......................... -->
+
+<!ENTITY % pubdate.module "INCLUDE">
+<![%pubdate.module;[
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+
+<!ENTITY % pubdate.element "INCLUDE">
+<![%pubdate.element;[
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!--end of pubdate.element-->]]>
+
+<!ENTITY % pubdate.attlist "INCLUDE">
+<![%pubdate.attlist;[
+<!ATTLIST pubdate
+ %common.attrib;
+ %pubdate.role.attrib;
+ %local.pubdate.attrib;
+>
+<!--end of pubdate.attlist-->]]>
+<!--end of pubdate.module-->]]>
+
+<!-- Publisher ........................ -->
+
+<!ENTITY % publisher.content.module "INCLUDE">
+<![%publisher.content.module;[
+<!ENTITY % publisher.module "INCLUDE">
+<![%publisher.module;[
+<!ENTITY % local.publisher.attrib "">
+<!ENTITY % publisher.role.attrib "%role.attrib;">
+
+<!ENTITY % publisher.element "INCLUDE">
+<![%publisher.element;[
+<!ELEMENT publisher (publishername, address*)>
+<!--end of publisher.element-->]]>
+
+<!ENTITY % publisher.attlist "INCLUDE">
+<![%publisher.attlist;[
+<!ATTLIST publisher
+ %common.attrib;
+ %publisher.role.attrib;
+ %local.publisher.attrib;
+>
+<!--end of publisher.attlist-->]]>
+<!--end of publisher.module-->]]>
+
+ <!ENTITY % publishername.module "INCLUDE">
+ <![%publishername.module;[
+ <!ENTITY % local.publishername.attrib "">
+ <!ENTITY % publishername.role.attrib "%role.attrib;">
+
+<!ENTITY % publishername.element "INCLUDE">
+<![%publishername.element;[
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!--end of publishername.element-->]]>
+
+<!ENTITY % publishername.attlist "INCLUDE">
+<![%publishername.attlist;[
+<!ATTLIST publishername
+ %common.attrib;
+ %publishername.role.attrib;
+ %local.publishername.attrib;
+>
+<!--end of publishername.attlist-->]]>
+ <!--end of publishername.module-->]]>
+
+ <!-- Address (defined elsewhere in this section)-->
+<!--end of publisher.content.module-->]]>
+
+<!-- PubsNumber ....................... -->
+
+<!ENTITY % pubsnumber.module "INCLUDE">
+<![%pubsnumber.module;[
+<!ENTITY % local.pubsnumber.attrib "">
+<!ENTITY % pubsnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % pubsnumber.element "INCLUDE">
+<![%pubsnumber.element;[
+<!ELEMENT pubsnumber (%docinfo.char.mix;)*>
+<!--end of pubsnumber.element-->]]>
+
+<!ENTITY % pubsnumber.attlist "INCLUDE">
+<![%pubsnumber.attlist;[
+<!ATTLIST pubsnumber
+ %common.attrib;
+ %pubsnumber.role.attrib;
+ %local.pubsnumber.attrib;
+>
+<!--end of pubsnumber.attlist-->]]>
+<!--end of pubsnumber.module-->]]>
+
+<!-- ReleaseInfo ...................... -->
+
+<!ENTITY % releaseinfo.module "INCLUDE">
+<![%releaseinfo.module;[
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % releaseinfo.element "INCLUDE">
+<![%releaseinfo.element;[
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!--end of releaseinfo.element-->]]>
+
+<!ENTITY % releaseinfo.attlist "INCLUDE">
+<![%releaseinfo.attlist;[
+<!ATTLIST releaseinfo
+ %common.attrib;
+ %releaseinfo.role.attrib;
+ %local.releaseinfo.attrib;
+>
+<!--end of releaseinfo.attlist-->]]>
+<!--end of releaseinfo.module-->]]>
+
+<!-- RevHistory ....................... -->
+
+<!ENTITY % revhistory.content.module "INCLUDE">
+<![%revhistory.content.module;[
+<!ENTITY % revhistory.module "INCLUDE">
+<![%revhistory.module;[
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+
+<!ENTITY % revhistory.element "INCLUDE">
+<![%revhistory.element;[
+<!ELEMENT revhistory (revision+)>
+<!--end of revhistory.element-->]]>
+
+<!ENTITY % revhistory.attlist "INCLUDE">
+<![%revhistory.attlist;[
+<!ATTLIST revhistory
+ %common.attrib;
+ %revhistory.role.attrib;
+ %local.revhistory.attrib;
+>
+<!--end of revhistory.attlist-->]]>
+<!--end of revhistory.module-->]]>
+
+<!ENTITY % revision.module "INCLUDE">
+<![%revision.module;[
+<!ENTITY % local.revision.attrib "">
+<!ENTITY % revision.role.attrib "%role.attrib;">
+
+<!ENTITY % revision.element "INCLUDE">
+<![%revision.element;[
+<!ELEMENT revision (revnumber, date, authorinitials*,
+ (revremark|revdescription)?)>
+<!--end of revision.element-->]]>
+
+<!ENTITY % revision.attlist "INCLUDE">
+<![%revision.attlist;[
+<!ATTLIST revision
+ %common.attrib;
+ %revision.role.attrib;
+ %local.revision.attrib;
+>
+<!--end of revision.attlist-->]]>
+<!--end of revision.module-->]]>
+
+<!ENTITY % revnumber.module "INCLUDE">
+<![%revnumber.module;[
+<!ENTITY % local.revnumber.attrib "">
+<!ENTITY % revnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % revnumber.element "INCLUDE">
+<![%revnumber.element;[
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!--end of revnumber.element-->]]>
+
+<!ENTITY % revnumber.attlist "INCLUDE">
+<![%revnumber.attlist;[
+<!ATTLIST revnumber
+ %common.attrib;
+ %revnumber.role.attrib;
+ %local.revnumber.attrib;
+>
+<!--end of revnumber.attlist-->]]>
+<!--end of revnumber.module-->]]>
+
+<!-- Date (defined elsewhere in this section)-->
+<!-- AuthorInitials (defined elsewhere in this section)-->
+
+<!ENTITY % revremark.module "INCLUDE">
+<![%revremark.module;[
+<!ENTITY % local.revremark.attrib "">
+<!ENTITY % revremark.role.attrib "%role.attrib;">
+
+<!ENTITY % revremark.element "INCLUDE">
+<![%revremark.element;[
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!--end of revremark.element-->]]>
+
+<!ENTITY % revremark.attlist "INCLUDE">
+<![%revremark.attlist;[
+<!ATTLIST revremark
+ %common.attrib;
+ %revremark.role.attrib;
+ %local.revremark.attrib;
+>
+<!--end of revremark.attlist-->]]>
+<!--end of revremark.module-->]]>
+
+<!ENTITY % revdescription.module "INCLUDE">
+<![ %revdescription.module; [
+<!ENTITY % local.revdescription.attrib "">
+<!ENTITY % revdescription.role.attrib "%role.attrib;">
+
+<!ENTITY % revdescription.element "INCLUDE">
+<![ %revdescription.element; [
+<!ELEMENT revdescription ((%revdescription.mix;)+)>
+<!--end of revdescription.element-->]]>
+
+<!ENTITY % revdescription.attlist "INCLUDE">
+<![ %revdescription.attlist; [
+<!ATTLIST revdescription
+ %common.attrib;
+ %revdescription.role.attrib;
+ %local.revdescription.attrib;
+>
+<!--end of revdescription.attlist-->]]>
+<!--end of revdescription.module-->]]>
+<!--end of revhistory.content.module-->]]>
+
+<!-- SeriesVolNums .................... -->
+
+<!ENTITY % seriesvolnums.module "INCLUDE">
+<![%seriesvolnums.module;[
+<!ENTITY % local.seriesvolnums.attrib "">
+<!ENTITY % seriesvolnums.role.attrib "%role.attrib;">
+
+<!ENTITY % seriesvolnums.element "INCLUDE">
+<![%seriesvolnums.element;[
+<!ELEMENT seriesvolnums (%docinfo.char.mix;)*>
+<!--end of seriesvolnums.element-->]]>
+
+<!ENTITY % seriesvolnums.attlist "INCLUDE">
+<![%seriesvolnums.attlist;[
+<!ATTLIST seriesvolnums
+ %common.attrib;
+ %seriesvolnums.role.attrib;
+ %local.seriesvolnums.attrib;
+>
+<!--end of seriesvolnums.attlist-->]]>
+<!--end of seriesvolnums.module-->]]>
+
+<!-- VolumeNum ........................ -->
+
+<!ENTITY % volumenum.module "INCLUDE">
+<![%volumenum.module;[
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+
+<!ENTITY % volumenum.element "INCLUDE">
+<![%volumenum.element;[
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!--end of volumenum.element-->]]>
+
+<!ENTITY % volumenum.attlist "INCLUDE">
+<![%volumenum.attlist;[
+<!ATTLIST volumenum
+ %common.attrib;
+ %volumenum.role.attrib;
+ %local.volumenum.attrib;
+>
+<!--end of volumenum.attlist-->]]>
+<!--end of volumenum.module-->]]>
+
+<!-- .................................. -->
+
+<!--end of docinfo.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Inline, link, and ubiquitous elements ................................ -->
+
+<!-- Technical and computer terms ......................................... -->
+
+<!ENTITY % accel.module "INCLUDE">
+<![%accel.module;[
+<!ENTITY % local.accel.attrib "">
+<!ENTITY % accel.role.attrib "%role.attrib;">
+
+<!ENTITY % accel.element "INCLUDE">
+<![%accel.element;[
+<!ELEMENT accel (%smallcptr.char.mix;)*>
+<!--end of accel.element-->]]>
+
+<!ENTITY % accel.attlist "INCLUDE">
+<![%accel.attlist;[
+<!ATTLIST accel
+ %common.attrib;
+ %accel.role.attrib;
+ %local.accel.attrib;
+>
+<!--end of accel.attlist-->]]>
+<!--end of accel.module-->]]>
+
+<!ENTITY % action.module "INCLUDE">
+<![%action.module;[
+<!ENTITY % local.action.attrib "">
+<!ENTITY % action.role.attrib "%role.attrib;">
+
+<!ENTITY % action.element "INCLUDE">
+<![%action.element;[
+<!ELEMENT action (%smallcptr.char.mix;)*>
+<!--end of action.element-->]]>
+
+<!ENTITY % action.attlist "INCLUDE">
+<![%action.attlist;[
+<!ATTLIST action
+ %moreinfo.attrib;
+ %common.attrib;
+ %action.role.attrib;
+ %local.action.attrib;
+>
+<!--end of action.attlist-->]]>
+<!--end of action.module-->]]>
+
+<!ENTITY % application.module "INCLUDE">
+<![%application.module;[
+<!ENTITY % local.application.attrib "">
+<!ENTITY % application.role.attrib "%role.attrib;">
+
+<!ENTITY % application.element "INCLUDE">
+<![%application.element;[
+<!ELEMENT application (%para.char.mix;)*>
+<!--end of application.element-->]]>
+
+<!ENTITY % application.attlist "INCLUDE">
+<![%application.attlist;[
+<!ATTLIST application
+ class (hardware
+ |software) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %application.role.attrib;
+ %local.application.attrib;
+>
+<!--end of application.attlist-->]]>
+<!--end of application.module-->]]>
+
+<!ENTITY % classname.module "INCLUDE">
+<![%classname.module;[
+<!ENTITY % local.classname.attrib "">
+<!ENTITY % classname.role.attrib "%role.attrib;">
+
+<!ENTITY % classname.element "INCLUDE">
+<![%classname.element;[
+<!ELEMENT classname (%smallcptr.char.mix;)*>
+<!--end of classname.element-->]]>
+
+<!ENTITY % classname.attlist "INCLUDE">
+<![%classname.attlist;[
+<!ATTLIST classname
+ %common.attrib;
+ %classname.role.attrib;
+ %local.classname.attrib;
+>
+<!--end of classname.attlist-->]]>
+<!--end of classname.module-->]]>
+
+<!ENTITY % co.module "INCLUDE">
+<![%co.module;[
+<!ENTITY % local.co.attrib "">
+<!-- CO is a callout area of the LineColumn unit type (a single character
+ position); the position is directly indicated by the location of CO. -->
+<!ENTITY % co.role.attrib "%role.attrib;">
+
+<!ENTITY % co.element "INCLUDE">
+<![%co.element;[
+<!ELEMENT co EMPTY>
+<!--end of co.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- to any related information -->
+
+
+<!ENTITY % co.attlist "INCLUDE">
+<![%co.attlist;[
+<!ATTLIST co
+ %label.attrib;
+ %linkends.attrib;
+ %idreq.common.attrib;
+ %co.role.attrib;
+ %local.co.attrib;
+>
+<!--end of co.attlist-->]]>
+<!--end of co.module-->]]>
+
+<!ENTITY % command.module "INCLUDE">
+<![%command.module;[
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+
+<!ENTITY % command.element "INCLUDE">
+<![%command.element;[
+<!ELEMENT command (%cptr.char.mix;)*>
+<!--end of command.element-->]]>
+
+<!ENTITY % command.attlist "INCLUDE">
+<![%command.attlist;[
+<!ATTLIST command
+ %moreinfo.attrib;
+ %common.attrib;
+ %command.role.attrib;
+ %local.command.attrib;
+>
+<!--end of command.attlist-->]]>
+<!--end of command.module-->]]>
+
+<!ENTITY % computeroutput.module "INCLUDE">
+<![%computeroutput.module;[
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+
+<!ENTITY % computeroutput.element "INCLUDE">
+<![%computeroutput.element;[
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!--end of computeroutput.element-->]]>
+
+<!ENTITY % computeroutput.attlist "INCLUDE">
+<![%computeroutput.attlist;[
+<!ATTLIST computeroutput
+ %moreinfo.attrib;
+ %common.attrib;
+ %computeroutput.role.attrib;
+ %local.computeroutput.attrib;
+>
+<!--end of computeroutput.attlist-->]]>
+<!--end of computeroutput.module-->]]>
+
+<!ENTITY % database.module "INCLUDE">
+<![%database.module;[
+<!ENTITY % local.database.attrib "">
+<!ENTITY % database.role.attrib "%role.attrib;">
+
+<!ENTITY % database.element "INCLUDE">
+<![%database.element;[
+<!ELEMENT database (%smallcptr.char.mix;)*>
+<!--end of database.element-->]]>
+
+<!-- Class: Type of database the element names; no default -->
+
+
+<!ENTITY % database.attlist "INCLUDE">
+<![%database.attlist;[
+<!ATTLIST database
+ class (name
+ |table
+ |field
+ |key1
+ |key2
+ |record) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %database.role.attrib;
+ %local.database.attrib;
+>
+<!--end of database.attlist-->]]>
+<!--end of database.module-->]]>
+
+<!ENTITY % email.module "INCLUDE">
+<![%email.module;[
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+
+<!ENTITY % email.element "INCLUDE">
+<![%email.element;[
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!--end of email.element-->]]>
+
+<!ENTITY % email.attlist "INCLUDE">
+<![%email.attlist;[
+<!ATTLIST email
+ %common.attrib;
+ %email.role.attrib;
+ %local.email.attrib;
+>
+<!--end of email.attlist-->]]>
+<!--end of email.module-->]]>
+
+<!ENTITY % envar.module "INCLUDE">
+<![%envar.module;[
+<!ENTITY % local.envar.attrib "">
+<!ENTITY % envar.role.attrib "%role.attrib;">
+
+<!ENTITY % envar.element "INCLUDE">
+<![%envar.element;[
+<!ELEMENT envar (%smallcptr.char.mix;)*>
+<!--end of envar.element-->]]>
+
+<!ENTITY % envar.attlist "INCLUDE">
+<![%envar.attlist;[
+<!ATTLIST envar
+ %common.attrib;
+ %envar.role.attrib;
+ %local.envar.attrib;
+>
+<!--end of envar.attlist-->]]>
+<!--end of envar.module-->]]>
+
+
+<!ENTITY % errorcode.module "INCLUDE">
+<![%errorcode.module;[
+<!ENTITY % local.errorcode.attrib "">
+<!ENTITY % errorcode.role.attrib "%role.attrib;">
+
+<!ENTITY % errorcode.element "INCLUDE">
+<![%errorcode.element;[
+<!ELEMENT errorcode (%smallcptr.char.mix;)*>
+<!--end of errorcode.element-->]]>
+
+<!ENTITY % errorcode.attlist "INCLUDE">
+<![%errorcode.attlist;[
+<!ATTLIST errorcode
+ %moreinfo.attrib;
+ %common.attrib;
+ %errorcode.role.attrib;
+ %local.errorcode.attrib;
+>
+<!--end of errorcode.attlist-->]]>
+<!--end of errorcode.module-->]]>
+
+<!ENTITY % errorname.module "INCLUDE">
+<![%errorname.module;[
+<!ENTITY % local.errorname.attrib "">
+<!ENTITY % errorname.role.attrib "%role.attrib;">
+
+<!ENTITY % errorname.element "INCLUDE">
+<![%errorname.element;[
+<!ELEMENT errorname (%smallcptr.char.mix;)*>
+<!--end of errorname.element-->]]>
+
+<!ENTITY % errorname.attlist "INCLUDE">
+<![%errorname.attlist;[
+<!ATTLIST errorname
+ %common.attrib;
+ %errorname.role.attrib;
+ %local.errorname.attrib;
+>
+<!--end of errorname.attlist-->]]>
+<!--end of errorname.module-->]]>
+
+<!ENTITY % errortype.module "INCLUDE">
+<![%errortype.module;[
+<!ENTITY % local.errortype.attrib "">
+<!ENTITY % errortype.role.attrib "%role.attrib;">
+
+<!ENTITY % errortype.element "INCLUDE">
+<![%errortype.element;[
+<!ELEMENT errortype (%smallcptr.char.mix;)*>
+<!--end of errortype.element-->]]>
+
+<!ENTITY % errortype.attlist "INCLUDE">
+<![%errortype.attlist;[
+<!ATTLIST errortype
+ %common.attrib;
+ %errortype.role.attrib;
+ %local.errortype.attrib;
+>
+<!--end of errortype.attlist-->]]>
+<!--end of errortype.module-->]]>
+
+<!ENTITY % filename.module "INCLUDE">
+<![%filename.module;[
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+
+<!ENTITY % filename.element "INCLUDE">
+<![%filename.element;[
+<!ELEMENT filename (%smallcptr.char.mix;)*>
+<!--end of filename.element-->]]>
+
+<!-- Class: Type of filename the element names; no default -->
+<!-- Path: Search path (possibly system-specific) in which
+ file can be found -->
+
+
+<!ENTITY % filename.attlist "INCLUDE">
+<![%filename.attlist;[
+<!ATTLIST filename
+ class (headerfile
+ |devicefile
+ |libraryfile
+ |directory
+ |symlink) #IMPLIED
+ path CDATA #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %filename.role.attrib;
+ %local.filename.attrib;
+>
+<!--end of filename.attlist-->]]>
+<!--end of filename.module-->]]>
+
+<!ENTITY % function.module "INCLUDE">
+<![%function.module;[
+<!ENTITY % local.function.attrib "">
+<!ENTITY % function.role.attrib "%role.attrib;">
+
+<!ENTITY % function.element "INCLUDE">
+<![%function.element;[
+<!ELEMENT function (%cptr.char.mix;)*>
+<!--end of function.element-->]]>
+
+<!ENTITY % function.attlist "INCLUDE">
+<![%function.attlist;[
+<!ATTLIST function
+ %moreinfo.attrib;
+ %common.attrib;
+ %function.role.attrib;
+ %local.function.attrib;
+>
+<!--end of function.attlist-->]]>
+<!--end of function.module-->]]>
+
+<!ENTITY % guibutton.module "INCLUDE">
+<![%guibutton.module;[
+<!ENTITY % local.guibutton.attrib "">
+<!ENTITY % guibutton.role.attrib "%role.attrib;">
+
+<!ENTITY % guibutton.element "INCLUDE">
+<![%guibutton.element;[
+<!ELEMENT guibutton (%smallcptr.char.mix;|accel)*>
+<!--end of guibutton.element-->]]>
+
+<!ENTITY % guibutton.attlist "INCLUDE">
+<![%guibutton.attlist;[
+<!ATTLIST guibutton
+ %moreinfo.attrib;
+ %common.attrib;
+ %guibutton.role.attrib;
+ %local.guibutton.attrib;
+>
+<!--end of guibutton.attlist-->]]>
+<!--end of guibutton.module-->]]>
+
+<!ENTITY % guiicon.module "INCLUDE">
+<![%guiicon.module;[
+<!ENTITY % local.guiicon.attrib "">
+<!ENTITY % guiicon.role.attrib "%role.attrib;">
+
+<!ENTITY % guiicon.element "INCLUDE">
+<![%guiicon.element;[
+<!ELEMENT guiicon (%smallcptr.char.mix;|accel)*>
+<!--end of guiicon.element-->]]>
+
+<!ENTITY % guiicon.attlist "INCLUDE">
+<![%guiicon.attlist;[
+<!ATTLIST guiicon
+ %moreinfo.attrib;
+ %common.attrib;
+ %guiicon.role.attrib;
+ %local.guiicon.attrib;
+>
+<!--end of guiicon.attlist-->]]>
+<!--end of guiicon.module-->]]>
+
+<!ENTITY % guilabel.module "INCLUDE">
+<![%guilabel.module;[
+<!ENTITY % local.guilabel.attrib "">
+<!ENTITY % guilabel.role.attrib "%role.attrib;">
+
+<!ENTITY % guilabel.element "INCLUDE">
+<![%guilabel.element;[
+<!ELEMENT guilabel (%smallcptr.char.mix;|accel)*>
+<!--end of guilabel.element-->]]>
+
+<!ENTITY % guilabel.attlist "INCLUDE">
+<![%guilabel.attlist;[
+<!ATTLIST guilabel
+ %moreinfo.attrib;
+ %common.attrib;
+ %guilabel.role.attrib;
+ %local.guilabel.attrib;
+>
+<!--end of guilabel.attlist-->]]>
+<!--end of guilabel.module-->]]>
+
+<!ENTITY % guimenu.module "INCLUDE">
+<![%guimenu.module;[
+<!ENTITY % local.guimenu.attrib "">
+<!ENTITY % guimenu.role.attrib "%role.attrib;">
+
+<!ENTITY % guimenu.element "INCLUDE">
+<![%guimenu.element;[
+<!ELEMENT guimenu (%smallcptr.char.mix;|accel)*>
+<!--end of guimenu.element-->]]>
+
+<!ENTITY % guimenu.attlist "INCLUDE">
+<![%guimenu.attlist;[
+<!ATTLIST guimenu
+ %moreinfo.attrib;
+ %common.attrib;
+ %guimenu.role.attrib;
+ %local.guimenu.attrib;
+>
+<!--end of guimenu.attlist-->]]>
+<!--end of guimenu.module-->]]>
+
+<!ENTITY % guimenuitem.module "INCLUDE">
+<![%guimenuitem.module;[
+<!ENTITY % local.guimenuitem.attrib "">
+<!ENTITY % guimenuitem.role.attrib "%role.attrib;">
+
+<!ENTITY % guimenuitem.element "INCLUDE">
+<![%guimenuitem.element;[
+<!ELEMENT guimenuitem (%smallcptr.char.mix;|accel)*>
+<!--end of guimenuitem.element-->]]>
+
+<!ENTITY % guimenuitem.attlist "INCLUDE">
+<![%guimenuitem.attlist;[
+<!ATTLIST guimenuitem
+ %moreinfo.attrib;
+ %common.attrib;
+ %guimenuitem.role.attrib;
+ %local.guimenuitem.attrib;
+>
+<!--end of guimenuitem.attlist-->]]>
+<!--end of guimenuitem.module-->]]>
+
+<!ENTITY % guisubmenu.module "INCLUDE">
+<![%guisubmenu.module;[
+<!ENTITY % local.guisubmenu.attrib "">
+<!ENTITY % guisubmenu.role.attrib "%role.attrib;">
+
+<!ENTITY % guisubmenu.element "INCLUDE">
+<![%guisubmenu.element;[
+<!ELEMENT guisubmenu (%smallcptr.char.mix;|accel)*>
+<!--end of guisubmenu.element-->]]>
+
+<!ENTITY % guisubmenu.attlist "INCLUDE">
+<![%guisubmenu.attlist;[
+<!ATTLIST guisubmenu
+ %moreinfo.attrib;
+ %common.attrib;
+ %guisubmenu.role.attrib;
+ %local.guisubmenu.attrib;
+>
+<!--end of guisubmenu.attlist-->]]>
+<!--end of guisubmenu.module-->]]>
+
+<!ENTITY % hardware.module "INCLUDE">
+<![%hardware.module;[
+<!ENTITY % local.hardware.attrib "">
+<!ENTITY % hardware.role.attrib "%role.attrib;">
+
+<!ENTITY % hardware.element "INCLUDE">
+<![%hardware.element;[
+<!ELEMENT hardware (%smallcptr.char.mix;)*>
+<!--end of hardware.element-->]]>
+
+<!ENTITY % hardware.attlist "INCLUDE">
+<![%hardware.attlist;[
+<!ATTLIST hardware
+ %moreinfo.attrib;
+ %common.attrib;
+ %hardware.role.attrib;
+ %local.hardware.attrib;
+>
+<!--end of hardware.attlist-->]]>
+<!--end of hardware.module-->]]>
+
+<!ENTITY % interface.module "INCLUDE">
+<![%interface.module;[
+<!ENTITY % local.interface.attrib "">
+<!ENTITY % interface.role.attrib "%role.attrib;">
+
+<!ENTITY % interface.element "INCLUDE">
+<![%interface.element;[
+<!ELEMENT interface (%smallcptr.char.mix;|accel)*>
+<!--end of interface.element-->]]>
+
+<!-- Class: Type of the Interface item; no default -->
+
+
+<!ENTITY % interface.attlist "INCLUDE">
+<![%interface.attlist;[
+<!ATTLIST interface
+ %moreinfo.attrib;
+ %common.attrib;
+ %interface.role.attrib;
+ %local.interface.attrib;
+>
+<!--end of interface.attlist-->]]>
+<!--end of interface.module-->]]>
+
+<!ENTITY % keycap.module "INCLUDE">
+<![%keycap.module;[
+<!ENTITY % local.keycap.attrib "">
+<!ENTITY % keycap.role.attrib "%role.attrib;">
+
+<!ENTITY % keycap.element "INCLUDE">
+<![%keycap.element;[
+<!ELEMENT keycap (%smallcptr.char.mix;)*>
+<!--end of keycap.element-->]]>
+
+<!ENTITY % keycap.attlist "INCLUDE">
+<![%keycap.attlist;[
+<!ATTLIST keycap
+ %moreinfo.attrib;
+ %common.attrib;
+ %keycap.role.attrib;
+ %local.keycap.attrib;
+>
+<!--end of keycap.attlist-->]]>
+<!--end of keycap.module-->]]>
+
+<!ENTITY % keycode.module "INCLUDE">
+<![%keycode.module;[
+<!ENTITY % local.keycode.attrib "">
+<!ENTITY % keycode.role.attrib "%role.attrib;">
+
+<!ENTITY % keycode.element "INCLUDE">
+<![%keycode.element;[
+<!ELEMENT keycode (%smallcptr.char.mix;)*>
+<!--end of keycode.element-->]]>
+
+<!ENTITY % keycode.attlist "INCLUDE">
+<![%keycode.attlist;[
+<!ATTLIST keycode
+ %common.attrib;
+ %keycode.role.attrib;
+ %local.keycode.attrib;
+>
+<!--end of keycode.attlist-->]]>
+<!--end of keycode.module-->]]>
+
+<!ENTITY % keycombo.module "INCLUDE">
+<![%keycombo.module;[
+<!ENTITY % local.keycombo.attrib "">
+<!ENTITY % keycombo.role.attrib "%role.attrib;">
+
+<!ENTITY % keycombo.element "INCLUDE">
+<![%keycombo.element;[
+<!ELEMENT keycombo ((keycap|keycombo|keysym|mousebutton)+)>
+<!--end of keycombo.element-->]]>
+
+<!ENTITY % keycombo.attlist "INCLUDE">
+<![%keycombo.attlist;[
+<!ATTLIST keycombo
+ %keyaction.attrib;
+ %moreinfo.attrib;
+ %common.attrib;
+ %keycombo.role.attrib;
+ %local.keycombo.attrib;
+>
+<!--end of keycombo.attlist-->]]>
+<!--end of keycombo.module-->]]>
+
+<!ENTITY % keysym.module "INCLUDE">
+<![%keysym.module;[
+<!ENTITY % local.keysym.attrib "">
+<!ENTITY % keysysm.role.attrib "%role.attrib;">
+
+<!ENTITY % keysym.element "INCLUDE">
+<![%keysym.element;[
+<!ELEMENT keysym (%smallcptr.char.mix;)*>
+<!--end of keysym.element-->]]>
+
+<!ENTITY % keysym.attlist "INCLUDE">
+<![%keysym.attlist;[
+<!ATTLIST keysym
+ %common.attrib;
+ %keysysm.role.attrib;
+ %local.keysym.attrib;
+>
+<!--end of keysym.attlist-->]]>
+<!--end of keysym.module-->]]>
+
+<!ENTITY % lineannotation.module "INCLUDE">
+<![%lineannotation.module;[
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+
+<!ENTITY % lineannotation.element "INCLUDE">
+<![%lineannotation.element;[
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!--end of lineannotation.element-->]]>
+
+<!ENTITY % lineannotation.attlist "INCLUDE">
+<![%lineannotation.attlist;[
+<!ATTLIST lineannotation
+ %common.attrib;
+ %lineannotation.role.attrib;
+ %local.lineannotation.attrib;
+>
+<!--end of lineannotation.attlist-->]]>
+<!--end of lineannotation.module-->]]>
+
+<!ENTITY % literal.module "INCLUDE">
+<![%literal.module;[
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+
+<!ENTITY % literal.element "INCLUDE">
+<![%literal.element;[
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!--end of literal.element-->]]>
+
+<!ENTITY % literal.attlist "INCLUDE">
+<![%literal.attlist;[
+<!ATTLIST literal
+ %moreinfo.attrib;
+ %common.attrib;
+ %literal.role.attrib;
+ %local.literal.attrib;
+>
+<!--end of literal.attlist-->]]>
+<!--end of literal.module-->]]>
+
+<!ENTITY % constant.module "INCLUDE">
+<![ %constant.module; [
+<!ENTITY % local.constant.attrib "">
+<!ENTITY % constant.role.attrib "%role.attrib;">
+
+<!ENTITY % constant.element "INCLUDE">
+<![ %constant.element; [
+<!ELEMENT constant (%smallcptr.char.mix;)*>
+<!--end of constant.element-->]]>
+
+<!ENTITY % constant.attlist "INCLUDE">
+<![ %constant.attlist; [
+<!ATTLIST constant
+ %common.attrib;
+ %constant.role.attrib;
+ %local.constant.attrib;
+ class (limit) #IMPLIED
+>
+<!--end of constant.attlist-->]]>
+<!--end of constant.module-->]]>
+
+<!ENTITY % varname.module "INCLUDE">
+<![ %varname.module; [
+<!ENTITY % local.varname.attrib "">
+<!ENTITY % varname.role.attrib "%role.attrib;">
+
+<!ENTITY % varname.element "INCLUDE">
+<![ %varname.element; [
+<!ELEMENT varname (%smallcptr.char.mix;)*>
+<!--end of varname.element-->]]>
+
+<!ENTITY % varname.attlist "INCLUDE">
+<![ %varname.attlist; [
+<!ATTLIST varname
+ %common.attrib;
+ %varname.role.attrib;
+ %local.varname.attrib;
+>
+<!--end of varname.attlist-->]]>
+<!--end of varname.module-->]]>
+
+<!ENTITY % markup.module "INCLUDE">
+<![%markup.module;[
+<!ENTITY % local.markup.attrib "">
+<!ENTITY % markup.role.attrib "%role.attrib;">
+
+<!ENTITY % markup.element "INCLUDE">
+<![%markup.element;[
+<!ELEMENT markup (%smallcptr.char.mix;)*>
+<!--end of markup.element-->]]>
+
+<!ENTITY % markup.attlist "INCLUDE">
+<![%markup.attlist;[
+<!ATTLIST markup
+ %common.attrib;
+ %markup.role.attrib;
+ %local.markup.attrib;
+>
+<!--end of markup.attlist-->]]>
+<!--end of markup.module-->]]>
+
+<!ENTITY % medialabel.module "INCLUDE">
+<![%medialabel.module;[
+<!ENTITY % local.medialabel.attrib "">
+<!ENTITY % medialabel.role.attrib "%role.attrib;">
+
+<!ENTITY % medialabel.element "INCLUDE">
+<![%medialabel.element;[
+<!ELEMENT medialabel (%smallcptr.char.mix;)*>
+<!--end of medialabel.element-->]]>
+
+<!-- Class: Type of medium named by the element; no default -->
+
+
+<!ENTITY % medialabel.attlist "INCLUDE">
+<![%medialabel.attlist;[
+<!ATTLIST medialabel
+ class (cartridge
+ |cdrom
+ |disk
+ |tape) #IMPLIED
+ %common.attrib;
+ %medialabel.role.attrib;
+ %local.medialabel.attrib;
+>
+<!--end of medialabel.attlist-->]]>
+<!--end of medialabel.module-->]]>
+
+<!ENTITY % menuchoice.content.module "INCLUDE">
+<![%menuchoice.content.module;[
+<!ENTITY % menuchoice.module "INCLUDE">
+<![%menuchoice.module;[
+<!ENTITY % local.menuchoice.attrib "">
+<!ENTITY % menuchoice.role.attrib "%role.attrib;">
+
+<!ENTITY % menuchoice.element "INCLUDE">
+<![%menuchoice.element;[
+<!ELEMENT menuchoice (shortcut?, (guibutton|guiicon|guilabel
+ |guimenu|guimenuitem|guisubmenu|interface)+)>
+<!--end of menuchoice.element-->]]>
+
+<!ENTITY % menuchoice.attlist "INCLUDE">
+<![%menuchoice.attlist;[
+<!ATTLIST menuchoice
+ %moreinfo.attrib;
+ %common.attrib;
+ %menuchoice.role.attrib;
+ %local.menuchoice.attrib;
+>
+<!--end of menuchoice.attlist-->]]>
+<!--end of menuchoice.module-->]]>
+
+<!ENTITY % shortcut.module "INCLUDE">
+<![%shortcut.module;[
+<!-- See also KeyCombo -->
+<!ENTITY % local.shortcut.attrib "">
+<!ENTITY % shortcut.role.attrib "%role.attrib;">
+
+<!ENTITY % shortcut.element "INCLUDE">
+<![%shortcut.element;[
+<!ELEMENT shortcut ((keycap|keycombo|keysym|mousebutton)+)>
+<!--end of shortcut.element-->]]>
+
+<!ENTITY % shortcut.attlist "INCLUDE">
+<![%shortcut.attlist;[
+<!ATTLIST shortcut
+ %keyaction.attrib;
+ %moreinfo.attrib;
+ %common.attrib;
+ %shortcut.role.attrib;
+ %local.shortcut.attrib;
+>
+<!--end of shortcut.attlist-->]]>
+<!--end of shortcut.module-->]]>
+<!--end of menuchoice.content.module-->]]>
+
+<!ENTITY % mousebutton.module "INCLUDE">
+<![%mousebutton.module;[
+<!ENTITY % local.mousebutton.attrib "">
+<!ENTITY % mousebutton.role.attrib "%role.attrib;">
+
+<!ENTITY % mousebutton.element "INCLUDE">
+<![%mousebutton.element;[
+<!ELEMENT mousebutton (%smallcptr.char.mix;)*>
+<!--end of mousebutton.element-->]]>
+
+<!ENTITY % mousebutton.attlist "INCLUDE">
+<![%mousebutton.attlist;[
+<!ATTLIST mousebutton
+ %moreinfo.attrib;
+ %common.attrib;
+ %mousebutton.role.attrib;
+ %local.mousebutton.attrib;
+>
+<!--end of mousebutton.attlist-->]]>
+<!--end of mousebutton.module-->]]>
+
+<!ENTITY % msgtext.module "INCLUDE">
+<![%msgtext.module;[
+<!ENTITY % local.msgtext.attrib "">
+<!ENTITY % msgtext.role.attrib "%role.attrib;">
+
+<!ENTITY % msgtext.element "INCLUDE">
+<![%msgtext.element;[
+<!ELEMENT msgtext ((%component.mix;)+)>
+<!--end of msgtext.element-->]]>
+
+<!ENTITY % msgtext.attlist "INCLUDE">
+<![%msgtext.attlist;[
+<!ATTLIST msgtext
+ %common.attrib;
+ %msgtext.role.attrib;
+ %local.msgtext.attrib;
+>
+<!--end of msgtext.attlist-->]]>
+<!--end of msgtext.module-->]]>
+
+<!ENTITY % option.module "INCLUDE">
+<![%option.module;[
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+
+<!ENTITY % option.element "INCLUDE">
+<![%option.element;[
+<!ELEMENT option (%smallcptr.char.mix;)*>
+<!--end of option.element-->]]>
+
+<!ENTITY % option.attlist "INCLUDE">
+<![%option.attlist;[
+<!ATTLIST option
+ %common.attrib;
+ %option.role.attrib;
+ %local.option.attrib;
+>
+<!--end of option.attlist-->]]>
+<!--end of option.module-->]]>
+
+<!ENTITY % optional.module "INCLUDE">
+<![%optional.module;[
+<!ENTITY % local.optional.attrib "">
+<!ENTITY % optional.role.attrib "%role.attrib;">
+
+<!ENTITY % optional.element "INCLUDE">
+<![%optional.element;[
+<!ELEMENT optional (%cptr.char.mix;)*>
+<!--end of optional.element-->]]>
+
+<!ENTITY % optional.attlist "INCLUDE">
+<![%optional.attlist;[
+<!ATTLIST optional
+ %common.attrib;
+ %optional.role.attrib;
+ %local.optional.attrib;
+>
+<!--end of optional.attlist-->]]>
+<!--end of optional.module-->]]>
+
+<!ENTITY % parameter.module "INCLUDE">
+<![%parameter.module;[
+<!ENTITY % local.parameter.attrib "">
+<!ENTITY % parameter.role.attrib "%role.attrib;">
+
+<!ENTITY % parameter.element "INCLUDE">
+<![%parameter.element;[
+<!ELEMENT parameter (%smallcptr.char.mix;)*>
+<!--end of parameter.element-->]]>
+
+<!-- Class: Type of the Parameter; no default -->
+
+
+<!ENTITY % parameter.attlist "INCLUDE">
+<![%parameter.attlist;[
+<!ATTLIST parameter
+ class (command
+ |function
+ |option) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %parameter.role.attrib;
+ %local.parameter.attrib;
+>
+<!--end of parameter.attlist-->]]>
+<!--end of parameter.module-->]]>
+
+<!ENTITY % prompt.module "INCLUDE">
+<![%prompt.module;[
+<!ENTITY % local.prompt.attrib "">
+<!ENTITY % prompt.role.attrib "%role.attrib;">
+
+<!ENTITY % prompt.element "INCLUDE">
+<![%prompt.element;[
+<!ELEMENT prompt (%smallcptr.char.mix;)*>
+<!--end of prompt.element-->]]>
+
+<!ENTITY % prompt.attlist "INCLUDE">
+<![%prompt.attlist;[
+<!ATTLIST prompt
+ %moreinfo.attrib;
+ %common.attrib;
+ %prompt.role.attrib;
+ %local.prompt.attrib;
+>
+<!--end of prompt.attlist-->]]>
+<!--end of prompt.module-->]]>
+
+<!ENTITY % property.module "INCLUDE">
+<![%property.module;[
+<!ENTITY % local.property.attrib "">
+<!ENTITY % property.role.attrib "%role.attrib;">
+
+<!ENTITY % property.element "INCLUDE">
+<![%property.element;[
+<!ELEMENT property (%smallcptr.char.mix;)*>
+<!--end of property.element-->]]>
+
+<!ENTITY % property.attlist "INCLUDE">
+<![%property.attlist;[
+<!ATTLIST property
+ %moreinfo.attrib;
+ %common.attrib;
+ %property.role.attrib;
+ %local.property.attrib;
+>
+<!--end of property.attlist-->]]>
+<!--end of property.module-->]]>
+
+<!ENTITY % replaceable.module "INCLUDE">
+<![%replaceable.module;[
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+
+<!ENTITY % replaceable.element "INCLUDE">
+<![%replaceable.element;[
+<!ELEMENT replaceable (#PCDATA
+ | %link.char.class;
+ | optional
+ | %base.char.class;
+ | %other.char.class;
+ | inlinegraphic
+ | inlinemediaobject)*>
+<!--end of replaceable.element-->]]>
+
+<!-- Class: Type of information the element represents; no
+ default -->
+
+
+<!ENTITY % replaceable.attlist "INCLUDE">
+<![%replaceable.attlist;[
+<!ATTLIST replaceable
+ class (command
+ |function
+ |option
+ |parameter) #IMPLIED
+ %common.attrib;
+ %replaceable.role.attrib;
+ %local.replaceable.attrib;
+>
+<!--end of replaceable.attlist-->]]>
+<!--end of replaceable.module-->]]>
+
+<!ENTITY % returnvalue.module "INCLUDE">
+<![%returnvalue.module;[
+<!ENTITY % local.returnvalue.attrib "">
+<!ENTITY % returnvalue.role.attrib "%role.attrib;">
+
+<!ENTITY % returnvalue.element "INCLUDE">
+<![%returnvalue.element;[
+<!ELEMENT returnvalue (%smallcptr.char.mix;)*>
+<!--end of returnvalue.element-->]]>
+
+<!ENTITY % returnvalue.attlist "INCLUDE">
+<![%returnvalue.attlist;[
+<!ATTLIST returnvalue
+ %common.attrib;
+ %returnvalue.role.attrib;
+ %local.returnvalue.attrib;
+>
+<!--end of returnvalue.attlist-->]]>
+<!--end of returnvalue.module-->]]>
+
+<!ENTITY % sgmltag.module "INCLUDE">
+<![%sgmltag.module;[
+<!ENTITY % local.sgmltag.attrib "">
+<!ENTITY % sgmltag.role.attrib "%role.attrib;">
+
+<!ENTITY % sgmltag.element "INCLUDE">
+<![%sgmltag.element;[
+<!ELEMENT sgmltag (%smallcptr.char.mix;)*>
+<!--end of sgmltag.element-->]]>
+
+<!-- Class: Type of SGML construct the element names; no default -->
+
+
+<!ENTITY % sgmltag.attlist "INCLUDE">
+<![%sgmltag.attlist;[
+<!ATTLIST sgmltag
+ class (attribute
+ |attvalue
+ |element
+ |endtag
+ |emptytag
+ |genentity
+ |numcharref
+ |paramentity
+ |pi
+ |xmlpi
+ |starttag
+ |sgmlcomment) #IMPLIED
+ %common.attrib;
+ %sgmltag.role.attrib;
+ %local.sgmltag.attrib;
+>
+<!--end of sgmltag.attlist-->]]>
+<!--end of sgmltag.module-->]]>
+
+<!ENTITY % structfield.module "INCLUDE">
+<![%structfield.module;[
+<!ENTITY % local.structfield.attrib "">
+<!ENTITY % structfield.role.attrib "%role.attrib;">
+
+<!ENTITY % structfield.element "INCLUDE">
+<![%structfield.element;[
+<!ELEMENT structfield (%smallcptr.char.mix;)*>
+<!--end of structfield.element-->]]>
+
+<!ENTITY % structfield.attlist "INCLUDE">
+<![%structfield.attlist;[
+<!ATTLIST structfield
+ %common.attrib;
+ %structfield.role.attrib;
+ %local.structfield.attrib;
+>
+<!--end of structfield.attlist-->]]>
+<!--end of structfield.module-->]]>
+
+<!ENTITY % structname.module "INCLUDE">
+<![%structname.module;[
+<!ENTITY % local.structname.attrib "">
+<!ENTITY % structname.role.attrib "%role.attrib;">
+
+<!ENTITY % structname.element "INCLUDE">
+<![%structname.element;[
+<!ELEMENT structname (%smallcptr.char.mix;)*>
+<!--end of structname.element-->]]>
+
+<!ENTITY % structname.attlist "INCLUDE">
+<![%structname.attlist;[
+<!ATTLIST structname
+ %common.attrib;
+ %structname.role.attrib;
+ %local.structname.attrib;
+>
+<!--end of structname.attlist-->]]>
+<!--end of structname.module-->]]>
+
+<!ENTITY % symbol.module "INCLUDE">
+<![%symbol.module;[
+<!ENTITY % local.symbol.attrib "">
+<!ENTITY % symbol.role.attrib "%role.attrib;">
+
+<!ENTITY % symbol.element "INCLUDE">
+<![%symbol.element;[
+<!ELEMENT symbol (%smallcptr.char.mix;)*>
+<!--end of symbol.element-->]]>
+
+<!-- Class: Type of symbol; no default -->
+
+
+<!ENTITY % symbol.attlist "INCLUDE">
+<![%symbol.attlist;[
+<!ATTLIST symbol
+ class (limit) #IMPLIED
+ %common.attrib;
+ %symbol.role.attrib;
+ %local.symbol.attrib;
+>
+<!--end of symbol.attlist-->]]>
+<!--end of symbol.module-->]]>
+
+<!ENTITY % systemitem.module "INCLUDE">
+<![%systemitem.module;[
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+
+<!ENTITY % systemitem.element "INCLUDE">
+<![%systemitem.element;[
+<!ELEMENT systemitem (%smallcptr.char.mix; | acronym)*>
+<!--end of systemitem.element-->]]>
+
+<!-- Class: Type of system item the element names; no default -->
+
+<!ENTITY % systemitem.attlist "INCLUDE">
+<![%systemitem.attlist;[
+<!ATTLIST systemitem
+ class (constant
+ |groupname
+ |library
+ |macro
+ |osname
+ |resource
+ |systemname
+ |username) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %systemitem.role.attrib;
+ %local.systemitem.attrib;
+>
+<!--end of systemitem.attlist-->]]>
+<!--end of systemitem.module-->]]>
+
+
+<!ENTITY % token.module "INCLUDE">
+<![%token.module;[
+<!ENTITY % local.token.attrib "">
+<!ENTITY % token.role.attrib "%role.attrib;">
+
+<!ENTITY % token.element "INCLUDE">
+<![%token.element;[
+<!ELEMENT token (%smallcptr.char.mix;)*>
+<!--end of token.element-->]]>
+
+<!ENTITY % token.attlist "INCLUDE">
+<![%token.attlist;[
+<!ATTLIST token
+ %common.attrib;
+ %token.role.attrib;
+ %local.token.attrib;
+>
+<!--end of token.attlist-->]]>
+<!--end of token.module-->]]>
+
+<!ENTITY % type.module "INCLUDE">
+<![%type.module;[
+<!ENTITY % local.type.attrib "">
+<!ENTITY % type.role.attrib "%role.attrib;">
+
+<!ENTITY % type.element "INCLUDE">
+<![%type.element;[
+<!ELEMENT type (%smallcptr.char.mix;)*>
+<!--end of type.element-->]]>
+
+<!ENTITY % type.attlist "INCLUDE">
+<![%type.attlist;[
+<!ATTLIST type
+ %common.attrib;
+ %type.role.attrib;
+ %local.type.attrib;
+>
+<!--end of type.attlist-->]]>
+<!--end of type.module-->]]>
+
+<!ENTITY % userinput.module "INCLUDE">
+<![%userinput.module;[
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+
+<!ENTITY % userinput.element "INCLUDE">
+<![%userinput.element;[
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!--end of userinput.element-->]]>
+
+<!ENTITY % userinput.attlist "INCLUDE">
+<![%userinput.attlist;[
+<!ATTLIST userinput
+ %moreinfo.attrib;
+ %common.attrib;
+ %userinput.role.attrib;
+ %local.userinput.attrib;
+>
+<!--end of userinput.attlist-->]]>
+<!--end of userinput.module-->]]>
+
+<!-- General words and phrases ............................................ -->
+
+<!ENTITY % abbrev.module "INCLUDE">
+<![%abbrev.module;[
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+
+<!ENTITY % abbrev.element "INCLUDE">
+<![%abbrev.element;[
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!--end of abbrev.element-->]]>
+
+<!ENTITY % abbrev.attlist "INCLUDE">
+<![%abbrev.attlist;[
+<!ATTLIST abbrev
+ %common.attrib;
+ %abbrev.role.attrib;
+ %local.abbrev.attrib;
+>
+<!--end of abbrev.attlist-->]]>
+<!--end of abbrev.module-->]]>
+
+<!ENTITY % acronym.module "INCLUDE">
+<![%acronym.module;[
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+
+<!ENTITY % acronym.element "INCLUDE">
+<![%acronym.element;[
+<!ELEMENT acronym (%word.char.mix;)*>
+<!--end of acronym.element-->]]>
+
+<!ENTITY % acronym.attlist "INCLUDE">
+<![%acronym.attlist;[
+<!ATTLIST acronym
+ %common.attrib;
+ %acronym.role.attrib;
+ %local.acronym.attrib;
+>
+<!--end of acronym.attlist-->]]>
+<!--end of acronym.module-->]]>
+
+<!ENTITY % citation.module "INCLUDE">
+<![%citation.module;[
+<!ENTITY % local.citation.attrib "">
+<!ENTITY % citation.role.attrib "%role.attrib;">
+
+<!ENTITY % citation.element "INCLUDE">
+<![%citation.element;[
+<!ELEMENT citation (%para.char.mix;)*>
+<!--end of citation.element-->]]>
+
+<!ENTITY % citation.attlist "INCLUDE">
+<![%citation.attlist;[
+<!ATTLIST citation
+ %common.attrib;
+ %citation.role.attrib;
+ %local.citation.attrib;
+>
+<!--end of citation.attlist-->]]>
+<!--end of citation.module-->]]>
+
+<!ENTITY % citerefentry.module "INCLUDE">
+<![%citerefentry.module;[
+<!ENTITY % local.citerefentry.attrib "">
+<!ENTITY % citerefentry.role.attrib "%role.attrib;">
+
+<!ENTITY % citerefentry.element "INCLUDE">
+<![%citerefentry.element;[
+<!ELEMENT citerefentry (refentrytitle, manvolnum?)>
+<!--end of citerefentry.element-->]]>
+
+<!ENTITY % citerefentry.attlist "INCLUDE">
+<![%citerefentry.attlist;[
+<!ATTLIST citerefentry
+ %common.attrib;
+ %citerefentry.role.attrib;
+ %local.citerefentry.attrib;
+>
+<!--end of citerefentry.attlist-->]]>
+<!--end of citerefentry.module-->]]>
+
+<!ENTITY % refentrytitle.module "INCLUDE">
+<![%refentrytitle.module;[
+<!ENTITY % local.refentrytitle.attrib "">
+<!ENTITY % refentrytitle.role.attrib "%role.attrib;">
+
+<!ENTITY % refentrytitle.element "INCLUDE">
+<![%refentrytitle.element;[
+<!ELEMENT refentrytitle (%para.char.mix;)*>
+<!--end of refentrytitle.element-->]]>
+
+<!ENTITY % refentrytitle.attlist "INCLUDE">
+<![%refentrytitle.attlist;[
+<!ATTLIST refentrytitle
+ %common.attrib;
+ %refentrytitle.role.attrib;
+ %local.refentrytitle.attrib;
+>
+<!--end of refentrytitle.attlist-->]]>
+<!--end of refentrytitle.module-->]]>
+
+<!ENTITY % manvolnum.module "INCLUDE">
+<![%manvolnum.module;[
+<!ENTITY % local.manvolnum.attrib "">
+<!ENTITY % namvolnum.role.attrib "%role.attrib;">
+
+<!ENTITY % manvolnum.element "INCLUDE">
+<![%manvolnum.element;[
+<!ELEMENT manvolnum (%word.char.mix;)*>
+<!--end of manvolnum.element-->]]>
+
+<!ENTITY % manvolnum.attlist "INCLUDE">
+<![%manvolnum.attlist;[
+<!ATTLIST manvolnum
+ %common.attrib;
+ %namvolnum.role.attrib;
+ %local.manvolnum.attrib;
+>
+<!--end of manvolnum.attlist-->]]>
+<!--end of manvolnum.module-->]]>
+
+<!ENTITY % citetitle.module "INCLUDE">
+<![%citetitle.module;[
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+
+<!ENTITY % citetitle.element "INCLUDE">
+<![%citetitle.element;[
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!--end of citetitle.element-->]]>
+
+<!-- Pubwork: Genre of published work cited; no default -->
+
+
+<!ENTITY % citetitle.attlist "INCLUDE">
+<![%citetitle.attlist;[
+<!ATTLIST citetitle
+ pubwork (article
+ |book
+ |chapter
+ |part
+ |refentry
+ |section
+ |journal
+ |series
+ |set
+ |manuscript) #IMPLIED
+ %common.attrib;
+ %citetitle.role.attrib;
+ %local.citetitle.attrib;
+>
+<!--end of citetitle.attlist-->]]>
+<!--end of citetitle.module-->]]>
+
+<!ENTITY % emphasis.module "INCLUDE">
+<![%emphasis.module;[
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+
+<!ENTITY % emphasis.element "INCLUDE">
+<![%emphasis.element;[
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!--end of emphasis.element-->]]>
+
+<!ENTITY % emphasis.attlist "INCLUDE">
+<![%emphasis.attlist;[
+<!ATTLIST emphasis
+ %common.attrib;
+ %emphasis.role.attrib;
+ %local.emphasis.attrib;
+>
+<!--end of emphasis.attlist-->]]>
+<!--end of emphasis.module-->]]>
+
+<!ENTITY % firstterm.module "INCLUDE">
+<![%firstterm.module;[
+<!ENTITY % local.firstterm.attrib "">
+<!ENTITY % firstterm.role.attrib "%role.attrib;">
+
+<!ENTITY % firstterm.element "INCLUDE">
+<![%firstterm.element;[
+<!ELEMENT firstterm (%word.char.mix;)*>
+<!--end of firstterm.element-->]]>
+
+<!-- to GlossEntry or other explanation -->
+
+
+<!ENTITY % firstterm.attlist "INCLUDE">
+<![%firstterm.attlist;[
+<!ATTLIST firstterm
+ %linkend.attrib; %common.attrib;
+ %firstterm.role.attrib;
+ %local.firstterm.attrib;
+>
+<!--end of firstterm.attlist-->]]>
+<!--end of firstterm.module-->]]>
+
+<!ENTITY % foreignphrase.module "INCLUDE">
+<![%foreignphrase.module;[
+<!ENTITY % local.foreignphrase.attrib "">
+<!ENTITY % foreignphrase.role.attrib "%role.attrib;">
+
+<!ENTITY % foreignphrase.element "INCLUDE">
+<![%foreignphrase.element;[
+<!ELEMENT foreignphrase (%para.char.mix;)*>
+<!--end of foreignphrase.element-->]]>
+
+<!ENTITY % foreignphrase.attlist "INCLUDE">
+<![%foreignphrase.attlist;[
+<!ATTLIST foreignphrase
+ %common.attrib;
+ %foreignphrase.role.attrib;
+ %local.foreignphrase.attrib;
+>
+<!--end of foreignphrase.attlist-->]]>
+<!--end of foreignphrase.module-->]]>
+
+<!ENTITY % glossterm.module "INCLUDE">
+<![%glossterm.module;[
+<!ENTITY % local.glossterm.attrib "">
+<!ENTITY % glossterm.role.attrib "%role.attrib;">
+
+<!ENTITY % glossterm.element "INCLUDE">
+<![%glossterm.element;[
+<!ELEMENT glossterm (%para.char.mix;)*>
+<!--end of glossterm.element-->]]>
+
+<!-- to GlossEntry if Glossterm used in text -->
+<!-- BaseForm: Provides the form of GlossTerm to be used
+ for indexing -->
+
+
+<!ENTITY % glossterm.attlist "INCLUDE">
+<![%glossterm.attlist;[
+<!ATTLIST glossterm
+ %linkend.attrib; baseform CDATA #IMPLIED
+ %common.attrib;
+ %glossterm.role.attrib;
+ %local.glossterm.attrib;
+>
+<!--end of glossterm.attlist-->]]>
+<!--end of glossterm.module-->]]>
+
+<!ENTITY % phrase.module "INCLUDE">
+<![%phrase.module;[
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+
+<!ENTITY % phrase.element "INCLUDE">
+<![%phrase.element;[
+<!ELEMENT phrase (%para.char.mix;)*>
+<!--end of phrase.element-->]]>
+
+<!ENTITY % phrase.attlist "INCLUDE">
+<![%phrase.attlist;[
+<!ATTLIST phrase
+ %common.attrib;
+ %phrase.role.attrib;
+ %local.phrase.attrib;
+>
+<!--end of phrase.attlist-->]]>
+<!--end of phrase.module-->]]>
+
+<!ENTITY % quote.module "INCLUDE">
+<![%quote.module;[
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+
+<!ENTITY % quote.element "INCLUDE">
+<![%quote.element;[
+<!ELEMENT quote (%para.char.mix;)*>
+<!--end of quote.element-->]]>
+
+<!ENTITY % quote.attlist "INCLUDE">
+<![%quote.attlist;[
+<!ATTLIST quote
+ %common.attrib;
+ %quote.role.attrib;
+ %local.quote.attrib;
+>
+<!--end of quote.attlist-->]]>
+<!--end of quote.module-->]]>
+
+<!ENTITY % ssscript.module "INCLUDE">
+<![%ssscript.module;[
+<!ENTITY % local.ssscript.attrib "">
+<!ENTITY % ssscript.role.attrib "%role.attrib;">
+
+<!ENTITY % subscript.element "INCLUDE">
+<![%subscript.element;[
+<!ELEMENT subscript (#PCDATA
+ | %link.char.class;
+ | emphasis
+ | replaceable
+ | symbol
+ | inlinegraphic
+ | inlinemediaobject
+ | %base.char.class;
+ | %other.char.class;)*>
+<!--end of subscript.element-->]]>
+
+<!ENTITY % subscript.attlist "INCLUDE">
+<![%subscript.attlist;[
+<!ATTLIST subscript
+ %common.attrib;
+ %ssscript.role.attrib;
+ %local.ssscript.attrib;
+>
+<!--end of subscript.attlist-->]]>
+
+<!ENTITY % superscript.element "INCLUDE">
+<![%superscript.element;[
+<!ELEMENT superscript (#PCDATA
+ | %link.char.class;
+ | emphasis
+ | replaceable
+ | symbol
+ | inlinegraphic
+ | inlinemediaobject
+ | %base.char.class;
+ | %other.char.class;)*>
+<!--end of superscript.element-->]]>
+
+<!ENTITY % superscript.attlist "INCLUDE">
+<![%superscript.attlist;[
+<!ATTLIST superscript
+ %common.attrib;
+ %ssscript.role.attrib;
+ %local.ssscript.attrib;
+>
+<!--end of superscript.attlist-->]]>
+<!--end of ssscript.module-->]]>
+
+<!ENTITY % trademark.module "INCLUDE">
+<![%trademark.module;[
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+
+<!ENTITY % trademark.element "INCLUDE">
+<![%trademark.element;[
+<!ELEMENT trademark (#PCDATA
+ | %link.char.class;
+ | %tech.char.class;
+ | %base.char.class;
+ | %other.char.class;
+ | inlinegraphic
+ | inlinemediaobject
+ | emphasis)*>
+<!--end of trademark.element-->]]>
+
+<!-- Class: More precisely identifies the item the element names -->
+
+
+<!ENTITY % trademark.attlist "INCLUDE">
+<![%trademark.attlist;[
+<!ATTLIST trademark
+ class (service
+ |trade
+ |registered
+ |copyright) 'trade'
+ %common.attrib;
+ %trademark.role.attrib;
+ %local.trademark.attrib;
+>
+<!--end of trademark.attlist-->]]>
+<!--end of trademark.module-->]]>
+
+<!ENTITY % wordasword.module "INCLUDE">
+<![%wordasword.module;[
+<!ENTITY % local.wordasword.attrib "">
+<!ENTITY % wordasword.role.attrib "%role.attrib;">
+
+<!ENTITY % wordasword.element "INCLUDE">
+<![%wordasword.element;[
+<!ELEMENT wordasword (%word.char.mix;)*>
+<!--end of wordasword.element-->]]>
+
+<!ENTITY % wordasword.attlist "INCLUDE">
+<![%wordasword.attlist;[
+<!ATTLIST wordasword
+ %common.attrib;
+ %wordasword.role.attrib;
+ %local.wordasword.attrib;
+>
+<!--end of wordasword.attlist-->]]>
+<!--end of wordasword.module-->]]>
+
+<!-- Links and cross-references ........................................... -->
+
+<!ENTITY % link.module "INCLUDE">
+<![%link.module;[
+<!--FUTURE USE (V4.0):
+......................
+All link elements will be excluded from themselves and each other.
+......................
+-->
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+
+<!ENTITY % link.element "INCLUDE">
+<![%link.element;[
+<!ELEMENT link (%para.char.mix;)*>
+<!--end of link.element-->]]>
+
+<!-- Endterm: ID of element containing text that is to be
+ fetched from elsewhere in the document to appear as
+ the content of this element -->
+<!-- to linked-to object -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % link.attlist "INCLUDE">
+<![%link.attlist;[
+<!ATTLIST link
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; type CDATA #IMPLIED
+ %common.attrib;
+ %link.role.attrib;
+ %local.link.attrib;
+>
+<!--end of link.attlist-->]]>
+<!--end of link.module-->]]>
+
+<!ENTITY % olink.module "INCLUDE">
+<![%olink.module;[
+<!ENTITY % local.olink.attrib "">
+<!ENTITY % olink.role.attrib "%role.attrib;">
+
+<!ENTITY % olink.element "INCLUDE">
+<![%olink.element;[
+<!ELEMENT olink (%para.char.mix;)*>
+<!--end of olink.element-->]]>
+
+<!-- TargetDocEnt: Name of an entity to be the target of the link -->
+<!-- LinkMode: ID of a ModeSpec containing instructions for
+ operating on the entity named by TargetDocEnt -->
+<!-- LocalInfo: Information that may be passed to ModeSpec -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % olink.attlist "INCLUDE">
+<![%olink.attlist;[
+<!ATTLIST olink
+ targetdocent ENTITY #IMPLIED
+ linkmode IDREF #IMPLIED
+ localinfo CDATA #IMPLIED
+ type CDATA #IMPLIED
+ %common.attrib;
+ %olink.role.attrib;
+ %local.olink.attrib;
+>
+<!--end of olink.attlist-->]]>
+<!--end of olink.module-->]]>
+
+<!ENTITY % ulink.module "INCLUDE">
+<![%ulink.module;[
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+
+<!ENTITY % ulink.element "INCLUDE">
+<![%ulink.element;[
+<!ELEMENT ulink (%para.char.mix;)*>
+<!--end of ulink.element-->]]>
+
+<!-- URL: uniform resource locator; the target of the ULink -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % ulink.attlist "INCLUDE">
+<![%ulink.attlist;[
+<!ATTLIST ulink
+ url CDATA #REQUIRED
+ type CDATA #IMPLIED
+ %common.attrib;
+ %ulink.role.attrib;
+ %local.ulink.attrib;
+>
+<!--end of ulink.attlist-->]]>
+<!--end of ulink.module-->]]>
+
+<!ENTITY % footnoteref.module "INCLUDE">
+<![%footnoteref.module;[
+<!ENTITY % local.footnoteref.attrib "">
+<!ENTITY % footnoteref.role.attrib "%role.attrib;">
+
+<!ENTITY % footnoteref.element "INCLUDE">
+<![%footnoteref.element;[
+<!ELEMENT footnoteref EMPTY>
+<!--end of footnoteref.element-->]]>
+
+<!-- to footnote content supplied elsewhere -->
+
+
+<!ENTITY % footnoteref.attlist "INCLUDE">
+<![%footnoteref.attlist;[
+<!ATTLIST footnoteref
+ %linkendreq.attrib; %label.attrib;
+ %common.attrib;
+ %footnoteref.role.attrib;
+ %local.footnoteref.attrib;
+>
+<!--end of footnoteref.attlist-->]]>
+<!--end of footnoteref.module-->]]>
+
+<!ENTITY % xref.module "INCLUDE">
+<![%xref.module;[
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+
+<!ENTITY % xref.element "INCLUDE">
+<![%xref.element;[
+<!ELEMENT xref EMPTY>
+<!--end of xref.element-->]]>
+
+<!-- Endterm: ID of element containing text that is to be
+ fetched from elsewhere in the document to appear as
+ the content of this element -->
+<!-- to linked-to object -->
+
+
+<!ENTITY % xref.attlist "INCLUDE">
+<![%xref.attlist;[
+<!ATTLIST xref
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; %common.attrib;
+ %xref.role.attrib;
+ %local.xref.attrib;
+>
+<!--end of xref.attlist-->]]>
+<!--end of xref.module-->]]>
+
+<!-- Ubiquitous elements .................................................. -->
+
+<!ENTITY % anchor.module "INCLUDE">
+<![%anchor.module;[
+<!ENTITY % local.anchor.attrib "">
+<!ENTITY % anchor.role.attrib "%role.attrib;">
+
+<!ENTITY % anchor.element "INCLUDE">
+<![%anchor.element;[
+<!ELEMENT anchor EMPTY>
+<!--end of anchor.element-->]]>
+
+<!-- required -->
+<!-- replaces Lang -->
+
+
+<!ENTITY % anchor.attlist "INCLUDE">
+<![%anchor.attlist;[
+<!ATTLIST anchor
+ %idreq.attrib; %pagenum.attrib; %remap.attrib;
+ %xreflabel.attrib;
+ %revisionflag.attrib;
+ %effectivity.attrib;
+ %anchor.role.attrib;
+ %local.anchor.attrib;
+>
+<!--end of anchor.attlist-->]]>
+<!--end of anchor.module-->]]>
+
+<!ENTITY % beginpage.module "INCLUDE">
+<![%beginpage.module;[
+<!ENTITY % local.beginpage.attrib "">
+<!ENTITY % beginpage.role.attrib "%role.attrib;">
+
+<!ENTITY % beginpage.element "INCLUDE">
+<![%beginpage.element;[
+<!ELEMENT beginpage EMPTY>
+<!--end of beginpage.element-->]]>
+
+<!-- PageNum: Number of page that begins at this point -->
+
+
+<!ENTITY % beginpage.attlist "INCLUDE">
+<![%beginpage.attlist;[
+<!ATTLIST beginpage
+ %pagenum.attrib;
+ %common.attrib;
+ %beginpage.role.attrib;
+ %local.beginpage.attrib;
+>
+<!--end of beginpage.attlist-->]]>
+<!--end of beginpage.module-->]]>
+
+<!-- IndexTerms appear in the text flow for generating or linking an
+ index. -->
+
+<!ENTITY % indexterm.content.module "INCLUDE">
+<![%indexterm.content.module;[
+<!ENTITY % indexterm.module "INCLUDE">
+<![%indexterm.module;[
+<!ENTITY % local.indexterm.attrib "">
+<!ENTITY % indexterm.role.attrib "%role.attrib;">
+
+<!ENTITY % indexterm.element "INCLUDE">
+<![%indexterm.element;[
+<!ELEMENT indexterm (primary?, ((secondary, ((tertiary, (see|seealso+)?)
+ | see | seealso+)?) | see | seealso+)?)>
+<!--end of indexterm.element-->]]>
+
+<!-- Scope: Indicates which generated indices the IndexTerm
+ should appear in: Global (whole document set), Local (this
+ document only), or All (both) -->
+<!-- Significance: Whether this IndexTerm is the most pertinent
+ of its series (Preferred) or not (Normal, the default) -->
+<!-- Class: Indicates type of IndexTerm; default is Singular,
+ or EndOfRange if StartRef is supplied; StartOfRange value
+ must be supplied explicitly on starts of ranges -->
+<!-- StartRef: ID of the IndexTerm that starts the indexing
+ range ended by this IndexTerm -->
+<!-- Zone: IDs of the elements to which the IndexTerm applies,
+ and indicates that the IndexTerm applies to those entire
+ elements rather than the point at which the IndexTerm
+ occurs -->
+
+
+<!ENTITY % indexterm.attlist "INCLUDE">
+<![%indexterm.attlist;[
+<!ATTLIST indexterm
+ %pagenum.attrib;
+ scope (all
+ |global
+ |local) #IMPLIED
+ significance (preferred
+ |normal) "normal"
+ class (singular
+ |startofrange
+ |endofrange) #IMPLIED
+ startref IDREF #IMPLIED
+ zone IDREFS #IMPLIED
+ %common.attrib;
+ %indexterm.role.attrib;
+ %local.indexterm.attrib;
+>
+<!--end of indexterm.attlist-->]]>
+<!--end of indexterm.module-->]]>
+
+<!ENTITY % primsecter.module "INCLUDE">
+<![%primsecter.module;[
+<!ENTITY % local.primsecter.attrib "">
+<!ENTITY % primsecter.role.attrib "%role.attrib;">
+
+
+<!ENTITY % primary.element "INCLUDE">
+<![%primary.element;[
+<!ELEMENT primary (%ndxterm.char.mix;)*>
+<!--end of primary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+ "fourteen" for an element containing "14" -->
+
+<!ENTITY % primary.attlist "INCLUDE">
+<![%primary.attlist;[
+<!ATTLIST primary
+ sortas CDATA #IMPLIED
+ %common.attrib;
+ %primsecter.role.attrib;
+ %local.primsecter.attrib;
+>
+<!--end of primary.attlist-->]]>
+
+
+<!ENTITY % secondary.element "INCLUDE">
+<![%secondary.element;[
+<!ELEMENT secondary (%ndxterm.char.mix;)*>
+<!--end of secondary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+ "fourteen" for an element containing "14" -->
+
+<!ENTITY % secondary.attlist "INCLUDE">
+<![%secondary.attlist;[
+<!ATTLIST secondary
+ sortas CDATA #IMPLIED
+ %common.attrib;
+ %primsecter.role.attrib;
+ %local.primsecter.attrib;
+>
+<!--end of secondary.attlist-->]]>
+
+
+<!ENTITY % tertiary.element "INCLUDE">
+<![%tertiary.element;[
+<!ELEMENT tertiary (%ndxterm.char.mix;)*>
+<!--end of tertiary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+ "fourteen" for an element containing "14" -->
+
+<!ENTITY % tertiary.attlist "INCLUDE">
+<![%tertiary.attlist;[
+<!ATTLIST tertiary
+ sortas CDATA #IMPLIED
+ %common.attrib;
+ %primsecter.role.attrib;
+ %local.primsecter.attrib;
+>
+<!--end of tertiary.attlist-->]]>
+
+<!--end of primsecter.module-->]]>
+
+<!ENTITY % seeseealso.module "INCLUDE">
+<![%seeseealso.module;[
+<!ENTITY % local.seeseealso.attrib "">
+<!ENTITY % seeseealso.role.attrib "%role.attrib;">
+
+<!ENTITY % see.element "INCLUDE">
+<![%see.element;[
+<!ELEMENT see (%ndxterm.char.mix;)*>
+<!--end of see.element-->]]>
+
+<!ENTITY % see.attlist "INCLUDE">
+<![%see.attlist;[
+<!ATTLIST see
+ %common.attrib;
+ %seeseealso.role.attrib;
+ %local.seeseealso.attrib;
+>
+<!--end of see.attlist-->]]>
+
+<!ENTITY % seealso.element "INCLUDE">
+<![%seealso.element;[
+<!ELEMENT seealso (%ndxterm.char.mix;)*>
+<!--end of seealso.element-->]]>
+
+<!ENTITY % seealso.attlist "INCLUDE">
+<![%seealso.attlist;[
+<!ATTLIST seealso
+ %common.attrib;
+ %seeseealso.role.attrib;
+ %local.seeseealso.attrib;
+>
+<!--end of seealso.attlist-->]]>
+<!--end of seeseealso.module-->]]>
+<!--end of indexterm.content.module-->]]>
+
+<!-- End of DocBook XML information pool module V4.0 ...................... -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/4.0/docbookx.dtd b/tests/docbook/dtd/4.0/docbookx.dtd
new file mode 100755
index 00000000..651ce788
--- /dev/null
+++ b/tests/docbook/dtd/4.0/docbookx.dtd
@@ -0,0 +1,125 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML DTD V4.0 ................................................. -->
+<!-- File docbookx.dtd .................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, and the Organization for the Advancement
+ of Structured Information Standards (OASIS).
+
+ $Id$
+
+ Permission to use, copy, modify and distribute the DocBook XML DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This is the driver file for V4.0 of the DocBook DTD.
+ Please use the following formal public identifier to identify it:
+
+ "-//OASIS//DTD DocBook XML V4.0//EN"
+
+ For example, if your document's top-level element is Book, and
+ you are using DocBook directly, use the FPI in the DOCTYPE
+ declaration:
+
+ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
+ "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd"
+ [...]>
+
+ Or, if you have a higher-level driver file that customizes DocBook,
+ use the FPI in the parameter entity declaration:
+
+ <!ENTITY % DocBookDTD PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
+ "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd">
+ %DocBookDTD;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+
+<!-- ...................................................................... -->
+<!-- Notation declarations ................................................ -->
+
+<!ENTITY % dbnotn.module "INCLUDE">
+<![%dbnotn.module;[
+<!ENTITY % dbnotn PUBLIC
+"-//OASIS//ENTITIES DocBook XML Notations V4.0//EN"
+"dbnotnx.mod">
+%dbnotn;
+]]>
+
+<!-- ...................................................................... -->
+<!-- ISO character entity sets ............................................ -->
+
+<!ENTITY % dbcent.module "INCLUDE">
+<![%dbcent.module;[
+<!ENTITY euro "&#x20AC;"><!-- euro sign, U+20AC NEW -->
+<!ENTITY % dbcent PUBLIC
+"-//OASIS//ENTITIES DocBook XML Character Entities V4.0//EN"
+"dbcentx.mod">
+%dbcent;
+]]>
+
+<!-- ...................................................................... -->
+<!-- DTD modules .......................................................... -->
+
+<!-- Information pool .............. -->
+
+<!ENTITY % dbpool.module "INCLUDE">
+<![ %dbpool.module; [
+<!ENTITY % dbpool PUBLIC
+"-//OASIS//ELEMENTS DocBook XML Information Pool V4.0//EN"
+"dbpoolx.mod">
+%dbpool;
+]]>
+
+<!-- Redeclaration placeholder ..... -->
+
+<!ENTITY % intermod.redecl.module "IGNORE">
+<![%intermod.redecl.module;[
+<!-- Defining rdbmods here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbmods "">
+%rdbmods;
+<!--end of intermod.redecl.module-->]]>
+
+<!-- Document hierarchy ............ -->
+
+<!ENTITY % dbhier.module "INCLUDE">
+<![ %dbhier.module; [
+<!ENTITY % dbhier PUBLIC
+"-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.0//EN"
+"dbhierx.mod">
+%dbhier;
+]]>
+
+<!-- ...................................................................... -->
+<!-- Other general entities ............................................... -->
+
+<!ENTITY % dbgenent.module "INCLUDE">
+<![ %dbgenent.module; [
+<!ENTITY % dbgenent PUBLIC
+"-//OASIS//ENTITIES DocBook XML Additional General Entities V4.0//EN"
+"dbgenent.ent">
+%dbgenent;
+]]>
+
+<!-- End of DocBook XML DTD V4.0 .......................................... -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-amsa.ent b/tests/docbook/dtd/4.0/ent/iso-amsa.ent
new file mode 100755
index 00000000..17324ca8
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-amsa.ent
@@ -0,0 +1,61 @@
+<!-- iso-amsa.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY cularr "&#x21B6;"> <!-- ANTICLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY curarr "&#x21B7;"> <!-- CLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY dArr "&#x21D3;"> <!-- DOWNWARDS DOUBLE ARROW -->
+<!ENTITY darr2 "&#x21CA;"> <!-- DOWNWARDS PAIRED ARROWS -->
+<!ENTITY dharl "&#x21C3;"> <!-- DOWNWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY dharr "&#x21C2;"> <!-- DOWNWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY lAarr "&#x21DA;"> <!-- LEFTWARDS TRIPLE ARROW -->
+<!ENTITY Larr "&#x219E;"> <!-- LEFTWARDS TWO HEADED ARROW -->
+<!ENTITY larr2 "&#x21C7;"> <!-- LEFTWARDS PAIRED ARROWS -->
+<!ENTITY larrhk "&#x21A9;"> <!-- LEFTWARDS ARROW WITH HOOK -->
+<!ENTITY larrlp "&#x21AB;"> <!-- LEFTWARDS ARROW WITH LOOP -->
+<!ENTITY larrtl "&#x21A2;"> <!-- LEFTWARDS ARROW WITH TAIL -->
+<!ENTITY lhard "&#x21BD;"> <!-- LEFTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY lharu "&#x21BC;"> <!-- LEFTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY hArr "&#x21D4;"> <!-- -->
+<!ENTITY harr "&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY lrarr2 "&#x21C6;"> <!-- LEFTWARDS ARROW OVER RIGHTWARDS ARROW -->
+<!ENTITY rlarr2 "&#x21C4;"> <!-- RIGHTWARDS ARROW OVER LEFTWARDS ARROW -->
+<!ENTITY harrw "&#x21AD;"> <!-- LEFT RIGHT WAVE ARROW -->
+<!ENTITY rlhar2 "&#x21CC;"> <!-- RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON -->
+<!ENTITY lrhar2 "&#x21CB;"> <!-- LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON -->
+<!ENTITY lsh "&#x21B0;"> <!-- UPWARDS ARROW WITH TIP LEFTWARDS -->
+<!ENTITY map "&#x21A6;"> <!-- RIGHTWARDS ARROW FROM BAR -->
+<!ENTITY mumap "&#x22B8;"> <!-- MULTIMAP -->
+<!ENTITY nearr "&#x2197;"> <!-- NORTH EAST ARROW -->
+<!ENTITY nlArr "&#x21CD;"> <!-- LEFTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nlarr "&#x219A;"> <!-- LEFTWARDS ARROW WITH STROKE -->
+<!ENTITY nhArr "&#x21CE;"> <!-- LEFT RIGHT DOUBLE ARROW WITH STROKE -->
+<!ENTITY nharr "&#x21AE;"> <!-- LEFT RIGHT ARROW WITH STROKE -->
+<!ENTITY nrarr "&#x219B;"> <!-- RIGHTWARDS ARROW WITH STROKE -->
+<!ENTITY nrArr "&#x21CF;"> <!-- RIGHTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nwarr "&#x2196;"> <!-- NORTH WEST ARROW -->
+<!ENTITY olarr "&#x21BA;"> <!-- ANTICLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY orarr "&#x21BB;"> <!-- CLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY rAarr "&#x21DB;"> <!-- RIGHTWARDS TRIPLE ARROW -->
+<!ENTITY Rarr "&#x21A0;"> <!-- RIGHTWARDS TWO HEADED ARROW -->
+<!ENTITY rarr2 "&#x21C9;"> <!-- RIGHTWARDS PAIRED ARROWS -->
+<!ENTITY rarrhk "&#x21AA;"> <!-- RIGHTWARDS ARROW WITH HOOK -->
+<!ENTITY rarrlp "&#x21AC;"> <!-- RIGHTWARDS ARROW WITH LOOP -->
+<!ENTITY rarrtl "&#x21A3;"> <!-- RIGHTWARDS ARROW WITH TAIL -->
+<!ENTITY rarrw "&#x219D;"> <!-- RIGHTWARDS SQUIGGLE ARROW -->
+<!ENTITY rhard "&#x21C1;"> <!-- RIGHTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY rharu "&#x21C0;"> <!-- RIGHTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY rsh "&#x21B1;"> <!-- UPWARDS ARROW WITH TIP RIGHTWARDS -->
+<!ENTITY drarr "&#x2198;"> <!-- SOUTH EAST ARROW -->
+<!ENTITY dlarr "&#x2199;"> <!-- SOUTH WEST ARROW -->
+<!ENTITY uArr "&#x21D1;"> <!-- UPWARDS DOUBLE ARROW -->
+<!ENTITY uarr2 "&#x21C8;"> <!-- UPWARDS PAIRED ARROWS -->
+<!ENTITY vArr "&#x21D5;"> <!-- UP DOWN DOUBLE ARROW -->
+<!ENTITY varr "&#x2195;"> <!-- UP DOWN ARROW -->
+<!ENTITY uharl "&#x21BF;"> <!-- UPWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY uharr "&#x21BE;"> <!-- UPWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY xlArr "&#xE200;"> <!-- -->
+<!ENTITY xhArr "&#xE202;"> <!-- -->
+<!ENTITY xharr "&#xE203;"> <!-- -->
+<!ENTITY xrArr "&#xE204;"> <!-- -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-amsb.ent b/tests/docbook/dtd/4.0/ent/iso-amsb.ent
new file mode 100755
index 00000000..bd6094ee
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-amsb.ent
@@ -0,0 +1,47 @@
+<!-- iso-amsb.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY amalg "&#xE251;"> <!-- -->
+<!ENTITY Barwed "&#x2306;"> <!-- PERSPECTIVE -->
+<!ENTITY barwed "&#x22BC;"> <!-- NAND -->
+<!ENTITY Cap "&#x22D2;"> <!-- DOUBLE INTERSECTION -->
+<!ENTITY Cup "&#x22D3;"> <!-- DOUBLE UNION -->
+<!ENTITY cuvee "&#x22CE;"> <!-- CURLY LOGICAL OR -->
+<!ENTITY cuwed "&#x22CF;"> <!-- CURLY LOGICAL AND -->
+<!ENTITY diam "&#x22C4;"> <!-- DIAMOND OPERATOR -->
+<!ENTITY divonx "&#x22C7;"> <!-- DIVISION TIMES -->
+<!ENTITY intcal "&#x22BA;"> <!-- INTERCALATE -->
+<!ENTITY lthree "&#x22CB;"> <!-- LEFT SEMIDIRECT PRODUCT -->
+<!ENTITY ltimes "&#x22C9;"> <!-- LEFT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY minusb "&#x229F;"> <!-- SQUARED MINUS -->
+<!ENTITY oast "&#x229B;"> <!-- CIRCLED ASTERISK OPERATOR -->
+<!ENTITY ocir "&#x229A;"> <!-- CIRCLED RING OPERATOR -->
+<!ENTITY odash "&#x229D;"> <!-- CIRCLED DASH -->
+<!ENTITY odot "&#x2299;"> <!-- CIRCLED DOT OPERATOR -->
+<!ENTITY ominus "&#x2296;"> <!-- CIRCLED MINUS -->
+<!ENTITY oplus "&#x2295;"> <!-- CIRCLED PLUS -->
+<!ENTITY osol "&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY otimes "&#x2297;"> <!-- CIRCLED TIMES -->
+<!ENTITY plusb "&#x229E;"> <!-- SQUARED PLUS -->
+<!ENTITY plusdo "&#x2214;"> <!-- DOT PLUS -->
+<!ENTITY rthree "&#x22CC;"> <!-- RIGHT SEMIDIRECT PRODUCT -->
+<!ENTITY rtimes "&#x22CA;"> <!-- RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY sdot "&#x22C5;"> <!-- DOT OPERATOR -->
+<!ENTITY sdotb "&#x22A1;"> <!-- SQUARED DOT OPERATOR -->
+<!ENTITY setmn "&#x2216;"> <!-- SET MINUS -->
+<!ENTITY sqcap "&#x2293;"> <!-- SQUARE CAP -->
+<!ENTITY sqcup "&#x2294;"> <!-- SQUARE CUP -->
+<!ENTITY ssetmn "&#xE844;"> <!-- -->
+<!ENTITY sstarf "&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY timesb "&#x22A0;"> <!-- SQUARED TIMES -->
+<!ENTITY top "&#x22A4;"> <!-- DOWN TACK -->
+<!ENTITY uplus "&#x228E;"> <!-- MULTISET UNION -->
+<!ENTITY wreath "&#x2240;"> <!-- WREATH PRODUCT -->
+<!ENTITY xcirc "&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY xdtri "&#x25BD;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY xutri "&#x25B3;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY coprod "&#x2210;"> <!-- N-ARY COPRODUCT -->
+<!ENTITY prod "&#x220F;"> <!-- N-ARY PRODUCT -->
+<!ENTITY sum "&#x2211;"> <!-- N-ARY SUMMATION -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-amsc.ent b/tests/docbook/dtd/4.0/ent/iso-amsc.ent
new file mode 100755
index 00000000..f398634f
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-amsc.ent
@@ -0,0 +1,15 @@
+<!-- iso-amsc.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY rceil "&#x2309;"> <!-- RIGHT CEILING -->
+<!ENTITY rfloor "&#x230B;"> <!-- RIGHT FLOOR -->
+<!ENTITY rpargt "&#xE291;"> <!-- -->
+<!ENTITY urcorn "&#x231D;"> <!-- TOP RIGHT CORNER -->
+<!ENTITY drcorn "&#x231F;"> <!-- BOTTOM RIGHT CORNER -->
+<!ENTITY lceil "&#x2308;"> <!-- LEFT CEILING -->
+<!ENTITY lfloor "&#x230A;"> <!-- LEFT FLOOR -->
+<!-- lpargt Unknown unicode character -->
+<!ENTITY ulcorn "&#x231C;"> <!-- TOP LEFT CORNER -->
+<!ENTITY dlcorn "&#x231E;"> <!-- BOTTOM LEFT CORNER -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-amsn.ent b/tests/docbook/dtd/4.0/ent/iso-amsn.ent
new file mode 100755
index 00000000..8a654bac
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-amsn.ent
@@ -0,0 +1,64 @@
+<!-- iso-amsn.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY gnap "&#xE411;"> <!-- -->
+<!ENTITY gne "&#x2269;"> <!-- -->
+<!ENTITY gnE "&#x2269;"> <!-- -->
+<!ENTITY gnsim "&#x22E7;"> <!-- GREATER-THAN BUT NOT EQUIVALENT TO -->
+<!ENTITY gvnE "&#xE2A1;"> <!-- -->
+<!ENTITY lnap "&#xE2A2;"> <!-- -->
+<!ENTITY lnE "&#x2268;"> <!-- -->
+<!ENTITY lne "&#x2268;"> <!-- -->
+<!ENTITY lnsim "&#x22E6;"> <!-- -->
+<!ENTITY lvnE "&#xE2A4;"> <!-- -->
+<!ENTITY nap "&#x2249;"> <!-- NOT ALMOST EQUAL TO -->
+<!ENTITY ncong "&#x2247;"> <!-- NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO -->
+<!ENTITY nequiv "&#x2262;"> <!-- NOT IDENTICAL TO -->
+<!ENTITY ngE "&#x2271;"> <!-- -->
+<!ENTITY nge "&#xE2A6;"> <!-- -->
+<!ENTITY nges "&#x2271;"> <!-- -->
+<!ENTITY ngt "&#x226F;"> <!-- NOT GREATER-THAN -->
+<!ENTITY nle "&#xE2A7;"> <!-- -->
+<!ENTITY nlE "&#x2270;"> <!-- -->
+<!ENTITY nles "&#x2270;"> <!-- -->
+<!ENTITY nlt "&#x226E;"> <!-- NOT LESS-THAN -->
+<!ENTITY nltri "&#x22EA;"> <!-- NOT NORMAL SUBGROUP OF -->
+<!ENTITY nltrie "&#x22EC;"> <!-- NOT NORMAL SUBGROUP OF OR EQUAL TO -->
+<!ENTITY nmid "&#x2224;"> <!-- DOES NOT DIVIDE -->
+<!ENTITY npar "&#x2226;"> <!-- NOT PARALLEL TO -->
+<!ENTITY npr "&#x2280;"> <!-- DOES NOT PRECEDE -->
+<!ENTITY npre "&#xE412;"> <!-- -->
+<!ENTITY nrtri "&#x22EB;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP -->
+<!ENTITY nrtrie "&#x22ED;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL -->
+<!ENTITY nsc "&#x2281;"> <!-- DOES NOT SUCCEED -->
+<!ENTITY nsce "&#xE413;"> <!-- -->
+<!ENTITY nsim "&#x2241;"> <!-- -->
+<!ENTITY nsime "&#x2244;"> <!-- -->
+<!ENTITY nsmid "&#xE2AA;"> <!-- -->
+<!ENTITY nspar "&#xE2AB;"> <!-- -->
+<!ENTITY nsub "&#x2284;"> <!-- NOT A SUBSET OF -->
+<!ENTITY nsube "&#x2288;"> <!-- -->
+<!ENTITY nsubE "&#x2288;"> <!-- -->
+<!ENTITY nsup "&#x2285;"> <!-- NOT A SUPERSET OF -->
+<!ENTITY nsupE "&#x2289;"> <!-- -->
+<!ENTITY nsupe "&#x2289;"> <!-- -->
+<!ENTITY nvdash "&#x22AC;"> <!-- DOES NOT PROVE -->
+<!ENTITY nvDash "&#x22AD;"> <!-- NOT TRUE -->
+<!ENTITY nVDash "&#x22AF;"> <!-- NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -->
+<!ENTITY nVdash "&#x22AE;"> <!-- DOES NOT FORCE -->
+<!ENTITY prnap "&#x22E8;"> <!-- -->
+<!ENTITY prnE "&#xE2B3;"> <!-- -->
+<!ENTITY prnsim "&#x22E8;"> <!-- -->
+<!ENTITY scnap "&#x22E9;"> <!-- -->
+<!ENTITY scnE "&#xE2B5;"> <!-- -->
+<!ENTITY scnsim "&#x22E9;"> <!-- -->
+<!ENTITY subne "&#x228A;"> <!-- -->
+<!ENTITY subnE "&#x228A;"> <!-- -->
+<!ENTITY supne "&#x228B;"> <!-- -->
+<!ENTITY supnE "&#x228B;"> <!-- -->
+<!ENTITY vsubnE "&#xE2B8;"> <!-- -->
+<!ENTITY vsubne "&#xE2B9;"> <!-- -->
+<!ENTITY vsupne "&#xE2BA;"> <!-- -->
+<!ENTITY vsupnE "&#xE2BB;"> <!-- -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-amso.ent b/tests/docbook/dtd/4.0/ent/iso-amso.ent
new file mode 100755
index 00000000..dd2554ac
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-amso.ent
@@ -0,0 +1,24 @@
+<!-- iso-amso.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY ang "&#x2220;"> <!-- ANGLE -->
+<!ENTITY angmsd "&#x2221;"> <!-- MEASURED ANGLE -->
+<!ENTITY beth "&#x2136;"> <!-- BET SYMBOL -->
+<!ENTITY bprime "&#x2035;"> <!-- REVERSED PRIME -->
+<!ENTITY comp "&#x2201;"> <!-- COMPLEMENT -->
+<!ENTITY daleth "&#x2138;"> <!-- DALET SYMBOL -->
+<!ENTITY ell "&#x2113;"> <!-- SCRIPT SMALL L -->
+<!ENTITY empty "&#xE2D3;"> <!-- -->
+<!ENTITY gimel "&#x2137;"> <!-- GIMEL SYMBOL -->
+<!ENTITY image "&#x2111;"> <!-- BLACK-LETTER CAPITAL I -->
+<!ENTITY inodot "&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!-- jnodot Unknown unicode character -->
+<!ENTITY nexist "&#x2204;"> <!-- THERE DOES NOT EXIST -->
+<!ENTITY oS "&#xE41D;"> <!-- -->
+<!ENTITY planck "&#x210F;"> <!-- PLANCK CONSTANT OVER TWO PI -->
+<!ENTITY real "&#x211C;"> <!-- BLACK-LETTER CAPITAL R -->
+<!ENTITY sbsol "&#xFE68;"> <!-- SMALL REVERSE SOLIDUS -->
+<!-- vprime Unknown unicode character -->
+<!ENTITY weierp "&#x2118;"> <!-- SCRIPT CAPITAL P -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-amsr.ent b/tests/docbook/dtd/4.0/ent/iso-amsr.ent
new file mode 100755
index 00000000..c1a0f2c6
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-amsr.ent
@@ -0,0 +1,89 @@
+<!-- iso-amsr.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY ape "&#x224A;"> <!-- -->
+<!ENTITY asymp "&#x224D;"> <!-- EQUIVALENT TO -->
+<!ENTITY bcong "&#x224C;"> <!-- ALL EQUAL TO -->
+<!ENTITY bepsi "&#xE420;"> <!-- -->
+<!ENTITY bowtie "&#x22C8;"> <!-- -->
+<!ENTITY bsim "&#x223D;"> <!-- -->
+<!ENTITY bsime "&#x22CD;"> <!-- -->
+<!ENTITY bump "&#x224E;"> <!-- -->
+<!ENTITY bumpe "&#x224F;"> <!-- -->
+<!ENTITY cire "&#x2257;"> <!-- -->
+<!ENTITY colone "&#x2254;"> <!-- -->
+<!ENTITY cuepr "&#x22DE;"> <!-- -->
+<!ENTITY cuesc "&#x22DF;"> <!-- -->
+<!ENTITY cupre "&#x227C;"> <!-- -->
+<!ENTITY dashv "&#x22A3;"> <!-- -->
+<!ENTITY ecir "&#x2256;"> <!-- -->
+<!ENTITY ecolon "&#x2255;"> <!-- -->
+<!ENTITY eDot "&#x2251;"> <!-- -->
+<!ENTITY esdot "&#x2250;"> <!-- -->
+<!ENTITY efDot "&#x2252;"> <!-- -->
+<!ENTITY egs "&#x22DD;"> <!-- -->
+<!ENTITY els "&#x22DC;"> <!-- -->
+<!ENTITY erDot "&#x2253;"> <!-- -->
+<!ENTITY fork "&#x22D4;"> <!-- -->
+<!ENTITY frown "&#x2322;"> <!-- -->
+<!ENTITY gap "&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY gsdot "&#x22D7;"> <!-- -->
+<!ENTITY gE "&#x2267;"> <!-- -->
+<!ENTITY gel "&#x22DB;"> <!-- -->
+<!ENTITY gEl "&#x22DB;"> <!-- -->
+<!ENTITY ges "&#xE421;"> <!-- -->
+<!ENTITY Gg "&#x22D9;"> <!-- VERY MUCH GREATER-THAN -->
+<!ENTITY gl "&#x2277;"> <!-- -->
+<!ENTITY gsim "&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY Gt "&#x226B;"> <!-- MUCH GREATER-THAN -->
+<!ENTITY lap "&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY ldot "&#x22D6;"> <!-- -->
+<!ENTITY lE "&#x2266;"> <!-- -->
+<!ENTITY lEg "&#x22DA;"> <!-- -->
+<!ENTITY leg "&#x22DA;"> <!-- -->
+<!ENTITY les "&#xE425;"> <!-- -->
+<!ENTITY lg "&#x2276;"> <!-- LESS-THAN OR GREATER-THAN -->
+<!ENTITY Ll "&#x22D8;"> <!-- -->
+<!ENTITY lsim "&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY Lt "&#x226A;"> <!-- MUCH LESS-THAN -->
+<!ENTITY ltrie "&#x22B4;"> <!-- -->
+<!ENTITY mid "&#x2223;"> <!-- -->
+<!ENTITY models "&#x22A7;"> <!-- MODELS -->
+<!ENTITY pr "&#x227A;"> <!-- -->
+<!ENTITY prap "&#x227E;"> <!-- -->
+<!ENTITY pre "&#x227C;"> <!-- -->
+<!ENTITY prsim "&#x227E;"> <!-- -->
+<!ENTITY rtrie "&#x22B5;"> <!-- -->
+<!-- samalg Unknown unicode character -->
+<!ENTITY sc "&#x227B;"> <!-- -->
+<!ENTITY scap "&#x227F;"> <!-- -->
+<!ENTITY sccue "&#x227D;"> <!-- -->
+<!ENTITY sce "&#x227D;"> <!-- -->
+<!ENTITY scsim "&#x227F;"> <!-- -->
+<!ENTITY sfrown "&#xE426;"> <!-- -->
+<!ENTITY smid "&#xE301;"> <!-- -->
+<!ENTITY smile "&#x2323;"> <!-- -->
+<!ENTITY spar "&#xE302;"> <!-- -->
+<!ENTITY sqsub "&#x228F;"> <!-- -->
+<!ENTITY sqsube "&#x2291;"> <!-- -->
+<!ENTITY sqsup "&#x2290;"> <!-- -->
+<!ENTITY sqsupe "&#x2292;"> <!-- -->
+<!ENTITY ssmile "&#xE303;"> <!-- -->
+<!ENTITY Sub "&#x22D0;"> <!-- -->
+<!ENTITY subE "&#x2286;"> <!-- -->
+<!ENTITY Sup "&#x22D1;"> <!-- -->
+<!ENTITY supE "&#x2287;"> <!-- -->
+<!ENTITY thkap "&#xE306;"> <!-- -->
+<!ENTITY thksim "&#xE429;"> <!-- -->
+<!ENTITY trie "&#x225C;"> <!-- -->
+<!ENTITY twixt "&#x226C;"> <!-- BETWEEN -->
+<!ENTITY vdash "&#x22A2;"> <!-- -->
+<!ENTITY Vdash "&#x22A9;"> <!-- -->
+<!ENTITY vDash "&#x22A8;"> <!-- -->
+<!ENTITY veebar "&#x22BB;"> <!-- -->
+<!ENTITY vltri "&#x22B2;"> <!-- -->
+<!ENTITY vprop "&#x221D;"> <!-- -->
+<!ENTITY vrtri "&#x22B3;"> <!-- -->
+<!ENTITY Vvdash "&#x22AA;"> <!-- -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-box.ent b/tests/docbook/dtd/4.0/ent/iso-box.ent
new file mode 100755
index 00000000..6b073709
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-box.ent
@@ -0,0 +1,45 @@
+<!-- iso-box.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY boxh "&#x2500;"> <!-- BOX DRAWINGS LIGHT HORIZONTAL -->
+<!ENTITY boxv "&#x2502;"> <!-- BOX DRAWINGS LIGHT VERTICAL -->
+<!ENTITY boxur "&#x2514;"> <!-- BOX DRAWINGS LIGHT UP AND RIGHT -->
+<!ENTITY boxul "&#x2518;"> <!-- BOX DRAWINGS LIGHT UP AND LEFT -->
+<!ENTITY boxdl "&#x2510;"> <!-- BOX DRAWINGS LIGHT DOWN AND LEFT -->
+<!ENTITY boxdr "&#x250C;"> <!-- BOX DRAWINGS LIGHT DOWN AND RIGHT -->
+<!ENTITY boxvr "&#x251C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND RIGHT -->
+<!ENTITY boxhu "&#x2534;"> <!-- BOX DRAWINGS LIGHT UP AND HORIZONTAL -->
+<!ENTITY boxvl "&#x2524;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND LEFT -->
+<!ENTITY boxhd "&#x252C;"> <!-- BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -->
+<!ENTITY boxvh "&#x253C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -->
+<!ENTITY boxvR "&#x255E;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxhU "&#x2567;"> <!-- BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvL "&#x2561;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxhD "&#x2564;"> <!-- BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvH "&#x256A;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxH "&#x2550;"> <!-- BOX DRAWINGS DOUBLE HORIZONTAL -->
+<!ENTITY boxV "&#x2551;"> <!-- BOX DRAWINGS DOUBLE VERTICAL -->
+<!ENTITY boxUR "&#x2558;"> <!-- BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxUL "&#x255B;"> <!-- BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDL "&#x2555;"> <!-- BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDR "&#x2552;"> <!-- BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxVR "&#x255F;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxHU "&#x2568;"> <!-- BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVL "&#x2562;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxHD "&#x2565;"> <!-- BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVH "&#x256B;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVr "&#x2560;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -->
+<!ENTITY boxHu "&#x2569;"> <!-- BOX DRAWINGS DOUBLE UP AND HORIZONTAL -->
+<!ENTITY boxVl "&#x2563;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND LEFT -->
+<!ENTITY boxHd "&#x2566;"> <!-- BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -->
+<!ENTITY boxVh "&#x256C;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -->
+<!ENTITY boxuR "&#x2559;"> <!-- BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUl "&#x255C;"> <!-- BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxdL "&#x2556;"> <!-- BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxDr "&#x2553;"> <!-- BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUr "&#x255A;"> <!-- BOX DRAWINGS DOUBLE UP AND RIGHT -->
+<!ENTITY boxuL "&#x255D;"> <!-- BOX DRAWINGS DOUBLE UP AND LEFT -->
+<!ENTITY boxDl "&#x2557;"> <!-- BOX DRAWINGS DOUBLE DOWN AND LEFT -->
+<!ENTITY boxdR "&#x2554;"> <!-- BOX DRAWINGS DOUBLE DOWN AND RIGHT -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-cyr1.ent b/tests/docbook/dtd/4.0/ent/iso-cyr1.ent
new file mode 100755
index 00000000..48708cf7
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-cyr1.ent
@@ -0,0 +1,72 @@
+<!-- iso-cyr1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY acy "&#x0430;"> <!-- CYRILLIC SMALL LETTER A -->
+<!ENTITY Acy "&#x0410;"> <!-- CYRILLIC CAPITAL LETTER A -->
+<!ENTITY bcy "&#x0431;"> <!-- CYRILLIC SMALL LETTER BE -->
+<!ENTITY Bcy "&#x0411;"> <!-- CYRILLIC CAPITAL LETTER BE -->
+<!ENTITY vcy "&#x0432;"> <!-- CYRILLIC SMALL LETTER VE -->
+<!ENTITY Vcy "&#x0412;"> <!-- CYRILLIC CAPITAL LETTER VE -->
+<!ENTITY gcy "&#x0433;"> <!-- CYRILLIC SMALL LETTER GHE -->
+<!ENTITY Gcy "&#x0413;"> <!-- CYRILLIC CAPITAL LETTER GHE -->
+<!ENTITY dcy "&#x0434;"> <!-- CYRILLIC SMALL LETTER DE -->
+<!ENTITY Dcy "&#x0414;"> <!-- CYRILLIC CAPITAL LETTER DE -->
+<!ENTITY iecy "&#x0435;"> <!-- CYRILLIC SMALL LETTER IE -->
+<!ENTITY IEcy "&#x0415;"> <!-- CYRILLIC CAPITAL LETTER IE -->
+<!ENTITY iocy "&#x0451;"> <!-- CYRILLIC SMALL LETTER IO -->
+<!ENTITY IOcy "&#x0401;"> <!-- CYRILLIC CAPITAL LETTER IO -->
+<!ENTITY zhcy "&#x0436;"> <!-- CYRILLIC SMALL LETTER ZHE -->
+<!ENTITY ZHcy "&#x0416;"> <!-- CYRILLIC CAPITAL LETTER ZHE -->
+<!ENTITY zcy "&#x0437;"> <!-- CYRILLIC SMALL LETTER ZE -->
+<!ENTITY Zcy "&#x0417;"> <!-- CYRILLIC CAPITAL LETTER ZE -->
+<!ENTITY icy "&#x0438;"> <!-- CYRILLIC SMALL LETTER I -->
+<!ENTITY Icy "&#x0418;"> <!-- CYRILLIC CAPITAL LETTER I -->
+<!ENTITY jcy "&#x0439;"> <!-- CYRILLIC SMALL LETTER SHORT I -->
+<!ENTITY Jcy "&#x0419;"> <!-- CYRILLIC CAPITAL LETTER SHORT I -->
+<!ENTITY kcy "&#x043A;"> <!-- CYRILLIC SMALL LETTER KA -->
+<!ENTITY Kcy "&#x041A;"> <!-- CYRILLIC CAPITAL LETTER KA -->
+<!ENTITY lcy "&#x043B;"> <!-- CYRILLIC SMALL LETTER EL -->
+<!ENTITY Lcy "&#x041B;"> <!-- CYRILLIC CAPITAL LETTER EL -->
+<!ENTITY mcy "&#x043C;"> <!-- CYRILLIC SMALL LETTER EM -->
+<!ENTITY Mcy "&#x041C;"> <!-- CYRILLIC CAPITAL LETTER EM -->
+<!ENTITY ncy "&#x043D;"> <!-- CYRILLIC SMALL LETTER EN -->
+<!ENTITY Ncy "&#x041D;"> <!-- CYRILLIC CAPITAL LETTER EN -->
+<!ENTITY ocy "&#x043E;"> <!-- CYRILLIC SMALL LETTER O -->
+<!ENTITY Ocy "&#x041E;"> <!-- CYRILLIC CAPITAL LETTER O -->
+<!ENTITY pcy "&#x043F;"> <!-- CYRILLIC SMALL LETTER PE -->
+<!ENTITY Pcy "&#x041F;"> <!-- CYRILLIC CAPITAL LETTER PE -->
+<!ENTITY rcy "&#x0440;"> <!-- CYRILLIC SMALL LETTER ER -->
+<!ENTITY Rcy "&#x0420;"> <!-- CYRILLIC CAPITAL LETTER ER -->
+<!ENTITY scy "&#x0441;"> <!-- CYRILLIC SMALL LETTER ES -->
+<!ENTITY Scy "&#x0421;"> <!-- CYRILLIC CAPITAL LETTER ES -->
+<!ENTITY tcy "&#x0442;"> <!-- CYRILLIC SMALL LETTER TE -->
+<!ENTITY Tcy "&#x0422;"> <!-- CYRILLIC CAPITAL LETTER TE -->
+<!ENTITY ucy "&#x0443;"> <!-- CYRILLIC SMALL LETTER U -->
+<!ENTITY Ucy "&#x0423;"> <!-- CYRILLIC CAPITAL LETTER U -->
+<!ENTITY fcy "&#x0444;"> <!-- CYRILLIC SMALL LETTER EF -->
+<!ENTITY Fcy "&#x0424;"> <!-- CYRILLIC CAPITAL LETTER EF -->
+<!ENTITY khcy "&#x0445;"> <!-- CYRILLIC SMALL LETTER HA -->
+<!ENTITY KHcy "&#x0425;"> <!-- CYRILLIC CAPITAL LETTER HA -->
+<!ENTITY tscy "&#x0446;"> <!-- CYRILLIC SMALL LETTER TSE -->
+<!ENTITY TScy "&#x0426;"> <!-- CYRILLIC CAPITAL LETTER TSE -->
+<!ENTITY chcy "&#x0447;"> <!-- CYRILLIC SMALL LETTER CHE -->
+<!ENTITY CHcy "&#x0427;"> <!-- CYRILLIC CAPITAL LETTER CHE -->
+<!ENTITY shcy "&#x0448;"> <!-- CYRILLIC SMALL LETTER SHA -->
+<!ENTITY SHcy "&#x0428;"> <!-- CYRILLIC CAPITAL LETTER SHA -->
+<!ENTITY shchcy "&#x0449;"> <!-- CYRILLIC SMALL LETTER SHCHA -->
+<!ENTITY SHCHcy "&#x0429;"> <!-- CYRILLIC CAPITAL LETTER SHCHA -->
+<!ENTITY hardcy "&#x044A;"> <!-- CYRILLIC SMALL LETTER HARD SIGN -->
+<!ENTITY HARDcy "&#x042A;"> <!-- CYRILLIC CAPITAL LETTER HARD SIGN -->
+<!ENTITY ycy "&#x044B;"> <!-- CYRILLIC SMALL LETTER YERU -->
+<!ENTITY Ycy "&#x042B;"> <!-- CYRILLIC CAPITAL LETTER YERU -->
+<!ENTITY softcy "&#x044C;"> <!-- CYRILLIC SMALL LETTER SOFT SIGN -->
+<!ENTITY SOFTcy "&#x042C;"> <!-- CYRILLIC CAPITAL LETTER SOFT SIGN -->
+<!ENTITY ecy "&#x044D;"> <!-- CYRILLIC SMALL LETTER E -->
+<!ENTITY Ecy "&#x042D;"> <!-- CYRILLIC CAPITAL LETTER E -->
+<!ENTITY yucy "&#x044E;"> <!-- CYRILLIC SMALL LETTER YU -->
+<!ENTITY YUcy "&#x042E;"> <!-- CYRILLIC CAPITAL LETTER YU -->
+<!ENTITY yacy "&#x044F;"> <!-- CYRILLIC SMALL LETTER YA -->
+<!ENTITY YAcy "&#x042F;"> <!-- CYRILLIC CAPITAL LETTER YA -->
+<!ENTITY numero "&#x2116;"> <!-- NUMERO SIGN -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-cyr2.ent b/tests/docbook/dtd/4.0/ent/iso-cyr2.ent
new file mode 100755
index 00000000..389c595c
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-cyr2.ent
@@ -0,0 +1,31 @@
+<!-- iso-cyr2.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY djcy "&#x0452;"> <!-- CYRILLIC SMALL LETTER DJE -->
+<!ENTITY DJcy "&#x0402;"> <!-- CYRILLIC CAPITAL LETTER DJE -->
+<!ENTITY gjcy "&#x0453;"> <!-- CYRILLIC SMALL LETTER GJE -->
+<!ENTITY GJcy "&#x0403;"> <!-- CYRILLIC CAPITAL LETTER GJE -->
+<!ENTITY jukcy "&#x0454;"> <!-- CYRILLIC SMALL LETTER UKRAINIAN IE -->
+<!ENTITY Jukcy "&#x0404;"> <!-- CYRILLIC CAPITAL LETTER UKRAINIAN IE -->
+<!ENTITY dscy "&#x0455;"> <!-- CYRILLIC SMALL LETTER DZE -->
+<!ENTITY DScy "&#x0405;"> <!-- CYRILLIC CAPITAL LETTER DZE -->
+<!ENTITY iukcy "&#x0456;"> <!-- CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY Iukcy "&#x0406;"> <!-- CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY yicy "&#x0457;"> <!-- CYRILLIC SMALL LETTER YI -->
+<!ENTITY YIcy "&#x0407;"> <!-- CYRILLIC CAPITAL LETTER YI -->
+<!ENTITY jsercy "&#x0458;"> <!-- CYRILLIC SMALL LETTER JE -->
+<!ENTITY Jsercy "&#x0408;"> <!-- CYRILLIC CAPITAL LETTER JE -->
+<!ENTITY ljcy "&#x0459;"> <!-- CYRILLIC SMALL LETTER LJE -->
+<!ENTITY LJcy "&#x0409;"> <!-- CYRILLIC CAPITAL LETTER LJE -->
+<!ENTITY njcy "&#x045A;"> <!-- CYRILLIC SMALL LETTER NJE -->
+<!ENTITY NJcy "&#x040A;"> <!-- CYRILLIC CAPITAL LETTER NJE -->
+<!ENTITY tshcy "&#x045B;"> <!-- CYRILLIC SMALL LETTER TSHE -->
+<!ENTITY TSHcy "&#x040B;"> <!-- CYRILLIC CAPITAL LETTER TSHE -->
+<!ENTITY kjcy "&#x045C;"> <!-- CYRILLIC SMALL LETTER KJE -->
+<!ENTITY KJcy "&#x040C;"> <!-- CYRILLIC CAPITAL LETTER KJE -->
+<!ENTITY ubrcy "&#x045E;"> <!-- CYRILLIC SMALL LETTER SHORT U -->
+<!ENTITY Ubrcy "&#x040E;"> <!-- CYRILLIC CAPITAL LETTER SHORT U -->
+<!ENTITY dzcy "&#x045F;"> <!-- CYRILLIC SMALL LETTER DZHE -->
+<!ENTITY DZcy "&#x040F;"> <!-- CYRILLIC CAPITAL LETTER DZHE -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-dia.ent b/tests/docbook/dtd/4.0/ent/iso-dia.ent
new file mode 100755
index 00000000..609e5e5b
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-dia.ent
@@ -0,0 +1,19 @@
+<!-- iso-dia.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY acute "&#x00B4;"> <!-- ACUTE ACCENT -->
+<!ENTITY breve "&#x02D8;"> <!-- BREVE -->
+<!ENTITY caron "&#x02C7;"> <!-- CARON -->
+<!ENTITY cedil "&#x00B8;"> <!-- CEDILLA -->
+<!ENTITY circ "&#x2218;"> <!-- RING OPERATOR -->
+<!ENTITY dblac "&#x02DD;"> <!-- DOUBLE ACUTE ACCENT -->
+<!ENTITY die "&#x00A8;"> <!-- -->
+<!ENTITY dot "&#x02D9;"> <!-- DOT ABOVE -->
+<!ENTITY grave "&#x0060;"> <!-- GRAVE ACCENT -->
+<!ENTITY macr "&#x00AF;"> <!-- MACRON -->
+<!ENTITY ogon "&#x02DB;"> <!-- OGONEK -->
+<!ENTITY ring "&#x02DA;"> <!-- RING ABOVE -->
+<!ENTITY tilde "&#x007E;"> <!-- TILDE -->
+<!ENTITY uml "&#x00A8;"> <!-- -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-grk1.ent b/tests/docbook/dtd/4.0/ent/iso-grk1.ent
new file mode 100755
index 00000000..b147b075
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-grk1.ent
@@ -0,0 +1,54 @@
+<!-- iso-grk1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY agr "&#x03B1;"> <!-- -->
+<!ENTITY Agr "&#x0391;"> <!-- GREEK CAPITAL LETTER ALPHA -->
+<!ENTITY bgr "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY Bgr "&#x0392;"> <!-- GREEK CAPITAL LETTER BETA -->
+<!ENTITY ggr "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Ggr "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY dgr "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Dgr "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY egr "&#x03B5;"> <!-- -->
+<!ENTITY Egr "&#x0395;"> <!-- GREEK CAPITAL LETTER EPSILON -->
+<!ENTITY zgr "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY Zgr "&#x0396;"> <!-- GREEK CAPITAL LETTER ZETA -->
+<!ENTITY eegr "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY EEgr "&#x0397;"> <!-- GREEK CAPITAL LETTER ETA -->
+<!ENTITY thgr "&#x03B8;"> <!-- -->
+<!ENTITY THgr "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY igr "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY Igr "&#x0399;"> <!-- GREEK CAPITAL LETTER IOTA -->
+<!ENTITY kgr "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY Kgr "&#x039A;"> <!-- GREEK CAPITAL LETTER KAPPA -->
+<!ENTITY lgr "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lgr "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mgr "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY Mgr "&#x039C;"> <!-- GREEK CAPITAL LETTER MU -->
+<!ENTITY ngr "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY Ngr "&#x039D;"> <!-- GREEK CAPITAL LETTER NU -->
+<!ENTITY xgr "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xgr "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY ogr "&#x03BF;"> <!-- GREEK SMALL LETTER OMICRON -->
+<!ENTITY Ogr "&#x039F;"> <!-- GREEK CAPITAL LETTER OMICRON -->
+<!ENTITY pgr "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY Pgr "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rgr "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY Rgr "&#x03A1;"> <!-- GREEK CAPITAL LETTER RHO -->
+<!ENTITY sgr "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sgr "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sfgr "&#x03C2;"> <!-- -->
+<!ENTITY tgr "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY Tgr "&#x03A4;"> <!-- GREEK CAPITAL LETTER TAU -->
+<!ENTITY ugr "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Ugr "&#x03A5;"> <!-- -->
+<!ENTITY phgr "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY PHgr "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY khgr "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY KHgr "&#x03A7;"> <!-- GREEK CAPITAL LETTER CHI -->
+<!ENTITY psgr "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY PSgr "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY ohgr "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY OHgr "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-grk2.ent b/tests/docbook/dtd/4.0/ent/iso-grk2.ent
new file mode 100755
index 00000000..74958c40
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-grk2.ent
@@ -0,0 +1,25 @@
+<!-- iso-grk2.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacgr "&#x03AC;"> <!-- GREEK SMALL LETTER ALPHA WITH TONOS -->
+<!ENTITY Aacgr "&#x0386;"> <!-- GREEK CAPITAL LETTER ALPHA WITH TONOS -->
+<!ENTITY eacgr "&#x03AD;"> <!-- GREEK SMALL LETTER EPSILON WITH TONOS -->
+<!ENTITY Eacgr "&#x0388;"> <!-- GREEK CAPITAL LETTER EPSILON WITH TONOS -->
+<!ENTITY eeacgr "&#x03AE;"> <!-- GREEK SMALL LETTER ETA WITH TONOS -->
+<!ENTITY EEacgr "&#x0389;"> <!-- GREEK CAPITAL LETTER ETA WITH TONOS -->
+<!ENTITY idigr "&#x03CA;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY Idigr "&#x03AA;"> <!-- GREEK CAPITAL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY iacgr "&#x03AF;"> <!-- GREEK SMALL LETTER IOTA WITH TONOS -->
+<!ENTITY Iacgr "&#x038A;"> <!-- GREEK CAPITAL LETTER IOTA WITH TONOS -->
+<!ENTITY idiagr "&#x0390;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -->
+<!ENTITY oacgr "&#x03CC;"> <!-- GREEK SMALL LETTER OMICRON WITH TONOS -->
+<!ENTITY Oacgr "&#x038C;"> <!-- GREEK CAPITAL LETTER OMICRON WITH TONOS -->
+<!ENTITY udigr "&#x03CB;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY Udigr "&#x03AB;"> <!-- GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY uacgr "&#x03CD;"> <!-- GREEK SMALL LETTER UPSILON WITH TONOS -->
+<!ENTITY Uacgr "&#x038E;"> <!-- GREEK CAPITAL LETTER UPSILON WITH TONOS -->
+<!ENTITY udiagr "&#x03B0;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -->
+<!ENTITY ohacgr "&#x03CE;"> <!-- GREEK SMALL LETTER OMEGA WITH TONOS -->
+<!ENTITY OHacgr "&#x038F;"> <!-- GREEK CAPITAL LETTER OMEGA WITH TONOS -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-grk3.ent b/tests/docbook/dtd/4.0/ent/iso-grk3.ent
new file mode 100755
index 00000000..8400afb1
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-grk3.ent
@@ -0,0 +1,48 @@
+<!-- iso-grk3.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY alpha "&#x03B1;"> <!-- -->
+<!ENTITY beta "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY gamma "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Gamma "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY gammad "&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY delta "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Delta "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY epsi "&#x220A;"> <!-- -->
+<!ENTITY epsiv "&#x03B5;"> <!-- -->
+<!ENTITY epsis "&#x220A;"> <!-- -->
+<!ENTITY zeta "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY eta "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY thetas "&#x03B8;"> <!-- -->
+<!ENTITY Theta "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY thetav "&#x03D1;"> <!-- -->
+<!ENTITY iota "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY kappa "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY kappav "&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY lambda "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lambda "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mu "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY nu "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY xi "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xi "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY pi "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY piv "&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY Pi "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rho "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY rhov "&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY sigma "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sigma "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sigmav "&#x03C2;"> <!-- -->
+<!ENTITY tau "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY upsi "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Upsi "&#x03D2;"> <!-- -->
+<!ENTITY phis "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY Phi "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY phiv "&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY chi "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY psi "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY Psi "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY omega "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY Omega "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-grk4.ent b/tests/docbook/dtd/4.0/ent/iso-grk4.ent
new file mode 100755
index 00000000..262a2da4
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-grk4.ent
@@ -0,0 +1,48 @@
+<!-- iso-grk4.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY b.alpha "&#x03B1;"> <!-- -->
+<!ENTITY b.beta "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY b.gamma "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY b.Gamma "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY b.gammad "&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY b.delta "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY b.Delta "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY b.epsi "&#x03B5;"> <!-- -->
+<!ENTITY b.epsiv "&#x03B5;"> <!-- -->
+<!ENTITY b.epsis "&#x03B5;"> <!-- -->
+<!ENTITY b.zeta "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY b.eta "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY b.thetas "&#x03B8;"> <!-- -->
+<!ENTITY b.Theta "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY b.thetav "&#x03D1;"> <!-- -->
+<!ENTITY b.iota "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY b.kappa "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY b.kappav "&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY b.lambda "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY b.Lambda "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY b.mu "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY b.nu "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY b.xi "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY b.Xi "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY b.pi "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY b.Pi "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY b.piv "&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY b.rho "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY b.rhov "&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY b.sigma "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY b.Sigma "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY b.sigmav "&#x03C2;"> <!-- -->
+<!ENTITY b.tau "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY b.upsi "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY b.Upsi "&#x03D2;"> <!-- -->
+<!ENTITY b.phis "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY b.Phi "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY b.phiv "&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY b.chi "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY b.psi "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY b.Psi "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY b.omega "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY b.Omega "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-lat1.ent b/tests/docbook/dtd/4.0/ent/iso-lat1.ent
new file mode 100755
index 00000000..1817fb98
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-lat1.ent
@@ -0,0 +1,67 @@
+<!-- iso-lat1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacute "&#x00E1;"> <!-- LATIN SMALL LETTER A WITH ACUTE -->
+<!ENTITY Aacute "&#x00C1;"> <!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+<!ENTITY acirc "&#x00E2;"> <!-- LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY Acirc "&#x00C2;"> <!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY agrave "&#x00E0;"> <!-- LATIN SMALL LETTER A WITH GRAVE -->
+<!ENTITY Agrave "&#x00C0;"> <!-- LATIN CAPITAL LETTER A WITH GRAVE -->
+<!ENTITY aring "&#x00E5;"> <!-- LATIN SMALL LETTER A WITH RING ABOVE -->
+<!ENTITY Aring "&#x00C5;"> <!-- LATIN CAPITAL LETTER A WITH RING ABOVE -->
+<!ENTITY atilde "&#x00E3;"> <!-- LATIN SMALL LETTER A WITH TILDE -->
+<!ENTITY Atilde "&#x00C3;"> <!-- LATIN CAPITAL LETTER A WITH TILDE -->
+<!ENTITY auml "&#x00E4;"> <!-- LATIN SMALL LETTER A WITH DIAERESIS -->
+<!ENTITY Auml "&#x00C4;"> <!-- LATIN CAPITAL LETTER A WITH DIAERESIS -->
+<!ENTITY aelig "&#x00E6;"> <!-- LATIN SMALL LETTER AE -->
+<!ENTITY AElig "&#x00C6;"> <!-- LATIN CAPITAL LETTER AE -->
+<!ENTITY ccedil "&#x00E7;"> <!-- LATIN SMALL LETTER C WITH CEDILLA -->
+<!ENTITY Ccedil "&#x00C7;"> <!-- LATIN CAPITAL LETTER C WITH CEDILLA -->
+<!ENTITY eth "&#x00D0;"> <!-- LATIN SMALL LETTER ETH -->
+<!ENTITY ETH "&#x00F0;"> <!-- LATIN CAPITAL LETTER ETH -->
+<!ENTITY eacute "&#x00E9;"> <!-- LATIN SMALL LETTER E WITH ACUTE -->
+<!ENTITY Eacute "&#x00C9;"> <!-- LATIN CAPITAL LETTER E WITH ACUTE -->
+<!ENTITY ecirc "&#x00EA;"> <!-- LATIN SMALL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY Ecirc "&#x00CA;"> <!-- LATIN CAPITAL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY egrave "&#x00E8;"> <!-- LATIN SMALL LETTER E WITH GRAVE -->
+<!ENTITY Egrave "&#x00C8;"> <!-- LATIN CAPITAL LETTER E WITH GRAVE -->
+<!ENTITY euml "&#x00EB;"> <!-- LATIN SMALL LETTER E WITH DIAERESIS -->
+<!ENTITY Euml "&#x00CB;"> <!-- LATIN CAPITAL LETTER E WITH DIAERESIS -->
+<!ENTITY iacute "&#x00ED;"> <!-- LATIN SMALL LETTER I WITH ACUTE -->
+<!ENTITY Iacute "&#x00CD;"> <!-- LATIN CAPITAL LETTER I WITH ACUTE -->
+<!ENTITY icirc "&#x00EE;"> <!-- LATIN SMALL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY Icirc "&#x00CE;"> <!-- LATIN CAPITAL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY igrave "&#x00EC;"> <!-- LATIN SMALL LETTER I WITH GRAVE -->
+<!ENTITY Igrave "&#x00CC;"> <!-- LATIN CAPITAL LETTER I WITH GRAVE -->
+<!ENTITY iuml "&#x00EF;"> <!-- LATIN SMALL LETTER I WITH DIAERESIS -->
+<!ENTITY Iuml "&#x00CF;"> <!-- LATIN CAPITAL LETTER I WITH DIAERESIS -->
+<!ENTITY ntilde "&#x00F1;"> <!-- LATIN SMALL LETTER N WITH TILDE -->
+<!ENTITY Ntilde "&#x00D1;"> <!-- LATIN CAPITAL LETTER N WITH TILDE -->
+<!ENTITY oacute "&#x00F3;"> <!-- LATIN SMALL LETTER O WITH ACUTE -->
+<!ENTITY Oacute "&#x00D3;"> <!-- LATIN CAPITAL LETTER O WITH ACUTE -->
+<!ENTITY ocirc "&#x00F4;"> <!-- LATIN SMALL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY Ocirc "&#x00D4;"> <!-- LATIN CAPITAL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY ograve "&#x00F2;"> <!-- LATIN SMALL LETTER O WITH GRAVE -->
+<!ENTITY Ograve "&#x00D2;"> <!-- LATIN CAPITAL LETTER O WITH GRAVE -->
+<!ENTITY oslash "&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY Oslash "&#x00D8;"> <!-- LATIN CAPITAL LETTER O WITH STROKE -->
+<!ENTITY otilde "&#x00F5;"> <!-- LATIN SMALL LETTER O WITH TILDE -->
+<!ENTITY Otilde "&#x00D5;"> <!-- LATIN CAPITAL LETTER O WITH TILDE -->
+<!ENTITY ouml "&#x00F6;"> <!-- LATIN SMALL LETTER O WITH DIAERESIS -->
+<!ENTITY Ouml "&#x00D6;"> <!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
+<!ENTITY szlig "&#x00DF;"> <!-- LATIN SMALL LETTER SHARP S -->
+<!ENTITY thorn "&#x00FE;"> <!-- LATIN SMALL LETTER THORN -->
+<!ENTITY THORN "&#x00DE;"> <!-- LATIN CAPITAL LETTER THORN -->
+<!ENTITY uacute "&#x00FA;"> <!-- LATIN SMALL LETTER U WITH ACUTE -->
+<!ENTITY Uacute "&#x00DA;"> <!-- LATIN CAPITAL LETTER U WITH ACUTE -->
+<!ENTITY ucirc "&#x00DB;"> <!-- LATIN SMALL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY Ucirc "&#x00FB;"> <!-- LATIN CAPITAL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY ugrave "&#x00F9;"> <!-- LATIN SMALL LETTER U WITH GRAVE -->
+<!ENTITY Ugrave "&#x00D9;"> <!-- LATIN CAPITAL LETTER U WITH GRAVE -->
+<!ENTITY uuml "&#x00FC;"> <!-- LATIN SMALL LETTER U WITH DIAERESIS -->
+<!ENTITY Uuml "&#x00DC;"> <!-- LATIN CAPITAL LETTER U WITH DIAERESIS -->
+<!ENTITY yacute "&#x00FD;"> <!-- LATIN SMALL LETTER Y WITH ACUTE -->
+<!ENTITY Yacute "&#x00DD;"> <!-- LATIN CAPITAL LETTER Y WITH ACUTE -->
+<!ENTITY yuml "&#x00FF;"> <!-- LATIN SMALL LETTER Y WITH DIAERESIS -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-lat2.ent b/tests/docbook/dtd/4.0/ent/iso-lat2.ent
new file mode 100755
index 00000000..eebae1c9
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-lat2.ent
@@ -0,0 +1,126 @@
+<!-- iso-lat2.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY abreve "&#x0103;"> <!-- LATIN SMALL LETTER A WITH BREVE -->
+<!ENTITY Abreve "&#x0102;"> <!-- LATIN CAPITAL LETTER A WITH BREVE -->
+<!ENTITY amacr "&#x0101;"> <!-- LATIN SMALL LETTER A WITH MACRON -->
+<!ENTITY Amacr "&#x0100;"> <!-- LATIN CAPITAL LETTER A WITH MACRON -->
+<!ENTITY aogon "&#x0105;"> <!-- LATIN SMALL LETTER A WITH OGONEK -->
+<!ENTITY Aogon "&#x0104;"> <!-- LATIN CAPITAL LETTER A WITH OGONEK -->
+<!ENTITY cacute "&#x0107;"> <!-- LATIN SMALL LETTER C WITH ACUTE -->
+<!ENTITY Cacute "&#x0106;"> <!-- LATIN CAPITAL LETTER C WITH ACUTE -->
+<!ENTITY ccaron "&#x010D;"> <!-- LATIN SMALL LETTER C WITH CARON -->
+<!ENTITY Ccaron "&#x010C;"> <!-- LATIN CAPITAL LETTER C WITH CARON -->
+<!ENTITY ccirc "&#x0109;"> <!-- LATIN SMALL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY Ccirc "&#x0108;"> <!-- LATIN CAPITAL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY cdot "&#x22C5;"> <!-- DOT OPERATOR -->
+<!ENTITY Cdot "&#x010A;"> <!-- LATIN CAPITAL LETTER C WITH DOT ABOVE -->
+<!ENTITY dcaron "&#x010F;"> <!-- LATIN SMALL LETTER D WITH CARON -->
+<!ENTITY Dcaron "&#x010E;"> <!-- LATIN CAPITAL LETTER D WITH CARON -->
+<!ENTITY dstrok "&#x0111;"> <!-- LATIN SMALL LETTER D WITH STROKE -->
+<!ENTITY Dstrok "&#x0110;"> <!-- LATIN CAPITAL LETTER D WITH STROKE -->
+<!ENTITY ecaron "&#x011B;"> <!-- LATIN SMALL LETTER E WITH CARON -->
+<!ENTITY Ecaron "&#x011A;"> <!-- LATIN CAPITAL LETTER E WITH CARON -->
+<!ENTITY edot "&#x0117;"> <!-- LATIN SMALL LETTER E WITH DOT ABOVE -->
+<!ENTITY Edot "&#x0116;"> <!-- LATIN CAPITAL LETTER E WITH DOT ABOVE -->
+<!ENTITY emacr "&#x0113;"> <!-- LATIN SMALL LETTER E WITH MACRON -->
+<!ENTITY Emacr "&#x0112;"> <!-- LATIN CAPITAL LETTER E WITH MACRON -->
+<!ENTITY eogon "&#x0119;"> <!-- LATIN SMALL LETTER E WITH OGONEK -->
+<!ENTITY Eogon "&#x0118;"> <!-- LATIN CAPITAL LETTER E WITH OGONEK -->
+<!ENTITY gacute "&#x01F5;"> <!-- LATIN SMALL LETTER G WITH ACUTE -->
+<!ENTITY gbreve "&#x011F;"> <!-- LATIN SMALL LETTER G WITH BREVE -->
+<!ENTITY Gbreve "&#x011E;"> <!-- LATIN CAPITAL LETTER G WITH BREVE -->
+<!ENTITY Gcedil "&#x0122;"> <!-- LATIN CAPITAL LETTER G WITH CEDILLA -->
+<!ENTITY gcirc "&#x011D;"> <!-- LATIN SMALL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY Gcirc "&#x011C;"> <!-- LATIN CAPITAL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY gdot "&#x0121;"> <!-- LATIN SMALL LETTER G WITH DOT ABOVE -->
+<!ENTITY Gdot "&#x0120;"> <!-- LATIN CAPITAL LETTER G WITH DOT ABOVE -->
+<!ENTITY hcirc "&#x0125;"> <!-- LATIN SMALL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY Hcirc "&#x0124;"> <!-- LATIN CAPITAL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY hstrok "&#x0127;"> <!-- LATIN SMALL LETTER H WITH STROKE -->
+<!ENTITY Hstrok "&#x0126;"> <!-- LATIN CAPITAL LETTER H WITH STROKE -->
+<!ENTITY Idot "&#x0130;"> <!-- LATIN CAPITAL LETTER I WITH DOT ABOVE -->
+<!ENTITY Imacr "&#x012A;"> <!-- LATIN CAPITAL LETTER I WITH MACRON -->
+<!ENTITY imacr "&#x012B;"> <!-- LATIN SMALL LETTER I WITH MACRON -->
+<!ENTITY ijlig "&#x0133;"> <!-- LATIN SMALL LIGATURE IJ -->
+<!ENTITY IJlig "&#x0132;"> <!-- LATIN CAPITAL LIGATURE IJ -->
+<!ENTITY inodot "&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!ENTITY iogon "&#x012F;"> <!-- LATIN SMALL LETTER I WITH OGONEK -->
+<!ENTITY Iogon "&#x012E;"> <!-- LATIN CAPITAL LETTER I WITH OGONEK -->
+<!ENTITY itilde "&#x0129;"> <!-- LATIN SMALL LETTER I WITH TILDE -->
+<!ENTITY Itilde "&#x0128;"> <!-- LATIN CAPITAL LETTER I WITH TILDE -->
+<!ENTITY jcirc "&#x0135;"> <!-- LATIN SMALL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY Jcirc "&#x0134;"> <!-- LATIN CAPITAL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY kcedil "&#x0137;"> <!-- LATIN SMALL LETTER K WITH CEDILLA -->
+<!ENTITY Kcedil "&#x0136;"> <!-- LATIN CAPITAL LETTER K WITH CEDILLA -->
+<!ENTITY kgreen "&#x0138;"> <!-- LATIN SMALL LETTER KRA -->
+<!ENTITY lacute "&#x013A;"> <!-- LATIN SMALL LETTER L WITH ACUTE -->
+<!ENTITY Lacute "&#x0139;"> <!-- LATIN CAPITAL LETTER L WITH ACUTE -->
+<!ENTITY lcaron "&#x013E;"> <!-- LATIN SMALL LETTER L WITH CARON -->
+<!ENTITY Lcaron "&#x013D;"> <!-- LATIN CAPITAL LETTER L WITH CARON -->
+<!ENTITY lcedil "&#x013C;"> <!-- LATIN SMALL LETTER L WITH CEDILLA -->
+<!ENTITY Lcedil "&#x013B;"> <!-- LATIN CAPITAL LETTER L WITH CEDILLA -->
+<!ENTITY lmidot "&#x0140;"> <!-- LATIN SMALL LETTER L WITH MIDDLE DOT -->
+<!ENTITY Lmidot "&#x013F;"> <!-- LATIN CAPITAL LETTER L WITH MIDDLE DOT -->
+<!ENTITY lstrok "&#x0142;"> <!-- LATIN SMALL LETTER L WITH STROKE -->
+<!ENTITY Lstrok "&#x0141;"> <!-- LATIN CAPITAL LETTER L WITH STROKE -->
+<!ENTITY nacute "&#x0144;"> <!-- LATIN SMALL LETTER N WITH ACUTE -->
+<!ENTITY Nacute "&#x0143;"> <!-- LATIN CAPITAL LETTER N WITH ACUTE -->
+<!ENTITY eng "&#x014B;"> <!-- LATIN SMALL LETTER ENG -->
+<!ENTITY ENG "&#x014A;"> <!-- LATIN CAPITAL LETTER ENG -->
+<!ENTITY napos "&#x0149;"> <!-- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -->
+<!ENTITY ncaron "&#x0148;"> <!-- LATIN SMALL LETTER N WITH CARON -->
+<!ENTITY Ncaron "&#x0147;"> <!-- LATIN CAPITAL LETTER N WITH CARON -->
+<!ENTITY ncedil "&#x0146;"> <!-- LATIN SMALL LETTER N WITH CEDILLA -->
+<!ENTITY Ncedil "&#x0145;"> <!-- LATIN CAPITAL LETTER N WITH CEDILLA -->
+<!ENTITY odblac "&#x0151;"> <!-- LATIN SMALL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Odblac "&#x0150;"> <!-- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Omacr "&#x014C;"> <!-- LATIN CAPITAL LETTER O WITH MACRON -->
+<!ENTITY omacr "&#x014D;"> <!-- LATIN SMALL LETTER O WITH MACRON -->
+<!ENTITY oelig "&#x0153;"> <!-- LATIN SMALL LIGATURE OE -->
+<!ENTITY OElig "&#x0152;"> <!-- LATIN CAPITAL LIGATURE OE -->
+<!ENTITY racute "&#x0155;"> <!-- LATIN SMALL LETTER R WITH ACUTE -->
+<!ENTITY Racute "&#x0154;"> <!-- LATIN CAPITAL LETTER R WITH ACUTE -->
+<!ENTITY rcaron "&#x0159;"> <!-- LATIN SMALL LETTER R WITH CARON -->
+<!ENTITY Rcaron "&#x0158;"> <!-- LATIN CAPITAL LETTER R WITH CARON -->
+<!ENTITY rcedil "&#x0157;"> <!-- LATIN SMALL LETTER R WITH CEDILLA -->
+<!ENTITY Rcedil "&#x0156;"> <!-- LATIN CAPITAL LETTER R WITH CEDILLA -->
+<!ENTITY sacute "&#x015B;"> <!-- LATIN SMALL LETTER S WITH ACUTE -->
+<!ENTITY Sacute "&#x015A;"> <!-- LATIN CAPITAL LETTER S WITH ACUTE -->
+<!ENTITY scaron "&#x0161;"> <!-- LATIN SMALL LETTER S WITH CARON -->
+<!ENTITY Scaron "&#x0160;"> <!-- LATIN CAPITAL LETTER S WITH CARON -->
+<!ENTITY scedil "&#x015F;"> <!-- LATIN SMALL LETTER S WITH CEDILLA -->
+<!ENTITY Scedil "&#x015E;"> <!-- LATIN CAPITAL LETTER S WITH CEDILLA -->
+<!ENTITY scirc "&#x015D;"> <!-- LATIN SMALL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY Scirc "&#x015C;"> <!-- LATIN CAPITAL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY tcaron "&#x0165;"> <!-- LATIN SMALL LETTER T WITH CARON -->
+<!ENTITY Tcaron "&#x0164;"> <!-- LATIN CAPITAL LETTER T WITH CARON -->
+<!ENTITY tcedil "&#x0163;"> <!-- LATIN SMALL LETTER T WITH CEDILLA -->
+<!ENTITY Tcedil "&#x0162;"> <!-- LATIN CAPITAL LETTER T WITH CEDILLA -->
+<!ENTITY tstrok "&#x0167;"> <!-- LATIN SMALL LETTER T WITH STROKE -->
+<!ENTITY Tstrok "&#x0166;"> <!-- LATIN CAPITAL LETTER T WITH STROKE -->
+<!ENTITY ubreve "&#x016D;"> <!-- LATIN SMALL LETTER U WITH BREVE -->
+<!ENTITY Ubreve "&#x016C;"> <!-- LATIN CAPITAL LETTER U WITH BREVE -->
+<!ENTITY udblac "&#x0171;"> <!-- LATIN SMALL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY Udblac "&#x0170;"> <!-- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY umacr "&#x016B;"> <!-- LATIN SMALL LETTER U WITH MACRON -->
+<!ENTITY Umacr "&#x016A;"> <!-- LATIN CAPITAL LETTER U WITH MACRON -->
+<!ENTITY uogon "&#x0173;"> <!-- LATIN SMALL LETTER U WITH OGONEK -->
+<!ENTITY Uogon "&#x0172;"> <!-- LATIN CAPITAL LETTER U WITH OGONEK -->
+<!ENTITY uring "&#x016F;"> <!-- LATIN SMALL LETTER U WITH RING ABOVE -->
+<!ENTITY Uring "&#x016E;"> <!-- LATIN CAPITAL LETTER U WITH RING ABOVE -->
+<!ENTITY utilde "&#x0169;"> <!-- LATIN SMALL LETTER U WITH TILDE -->
+<!ENTITY Utilde "&#x0168;"> <!-- LATIN CAPITAL LETTER U WITH TILDE -->
+<!ENTITY wcirc "&#x0175;"> <!-- LATIN SMALL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY Wcirc "&#x0174;"> <!-- LATIN CAPITAL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY ycirc "&#x0177;"> <!-- LATIN SMALL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Ycirc "&#x0176;"> <!-- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Yuml "&#x0178;"> <!-- LATIN CAPITAL LETTER Y WITH DIAERESIS -->
+<!ENTITY zacute "&#x017A;"> <!-- LATIN SMALL LETTER Z WITH ACUTE -->
+<!ENTITY Zacute "&#x0179;"> <!-- LATIN CAPITAL LETTER Z WITH ACUTE -->
+<!ENTITY zcaron "&#x017E;"> <!-- LATIN SMALL LETTER Z WITH CARON -->
+<!ENTITY Zcaron "&#x017D;"> <!-- LATIN CAPITAL LETTER Z WITH CARON -->
+<!ENTITY zdot "&#x017C;"> <!-- LATIN SMALL LETTER Z WITH DOT ABOVE -->
+<!ENTITY Zdot "&#x017B;"> <!-- LATIN CAPITAL LETTER Z WITH DOT ABOVE -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-num.ent b/tests/docbook/dtd/4.0/ent/iso-num.ent
new file mode 100755
index 00000000..a9307f6a
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-num.ent
@@ -0,0 +1,81 @@
+<!-- iso-num.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY half "&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac12 "&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac14 "&#x00BC;"> <!-- VULGAR FRACTION ONE QUARTER -->
+<!ENTITY frac34 "&#x00BE;"> <!-- VULGAR FRACTION THREE QUARTERS -->
+<!ENTITY frac18 "&#x215B;"> <!-- -->
+<!ENTITY frac38 "&#x215C;"> <!-- -->
+<!ENTITY frac58 "&#x215D;"> <!-- -->
+<!ENTITY frac78 "&#x215E;"> <!-- -->
+<!ENTITY sup1 "&#x00B9;"> <!-- SUPERSCRIPT ONE -->
+<!ENTITY sup2 "&#x00B2;"> <!-- SUPERSCRIPT TWO -->
+<!ENTITY sup3 "&#x00B3;"> <!-- SUPERSCRIPT THREE -->
+<!ENTITY plus "&#x002B;"> <!-- PLUS SIGN -->
+<!ENTITY plusmn "&#x00B1;"> <!-- PLUS-MINUS SIGN -->
+<!ENTITY lt "&#38;#60;"> <!-- LESS-THAN SIGN -->
+<!ENTITY equals "&#x003D;"> <!-- EQUALS SIGN -->
+<!ENTITY gt "&#x003E;"> <!-- GREATER-THAN SIGN -->
+<!ENTITY divide "&#x00F7;"> <!-- DIVISION SIGN -->
+<!ENTITY times "&#x00D7;"> <!-- MULTIPLICATION SIGN -->
+<!ENTITY curren "&#x00A4;"> <!-- CURRENCY SIGN -->
+<!ENTITY pound "&#x00A3;"> <!-- POUND SIGN -->
+<!ENTITY dollar "&#x0024;"> <!-- DOLLAR SIGN -->
+<!ENTITY cent "&#x00A2;"> <!-- CENT SIGN -->
+<!ENTITY yen "&#x00A5;"> <!-- YEN SIGN -->
+<!ENTITY num "&#x0023;"> <!-- NUMBER SIGN -->
+<!ENTITY percnt "&#x0025;"> <!-- PERCENT SIGN -->
+<!ENTITY amp "&#38;#38;"> <!-- AMPERSAND -->
+<!ENTITY ast "&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY commat "&#x0040;"> <!-- COMMERCIAL AT -->
+<!ENTITY lsqb "&#x005B;"> <!-- LEFT SQUARE BRACKET -->
+<!ENTITY bsol "&#x005C;"> <!-- REVERSE SOLIDUS -->
+<!ENTITY rsqb "&#x005D;"> <!-- RIGHT SQUARE BRACKET -->
+<!ENTITY lcub "&#x007B;"> <!-- LEFT CURLY BRACKET -->
+<!ENTITY horbar "&#x2015;"> <!-- HORIZONTAL BAR -->
+<!ENTITY verbar "&#x007C;"> <!-- VERTICAL LINE -->
+<!ENTITY rcub "&#x007D;"> <!-- RIGHT CURLY BRACKET -->
+<!ENTITY micro "&#x00B5;"> <!-- MICRO SIGN -->
+<!ENTITY ohm "&#x2126;"> <!-- OHM SIGN -->
+<!ENTITY deg "&#x00B0;"> <!-- DEGREE SIGN -->
+<!ENTITY ordm "&#x00BA;"> <!-- MASCULINE ORDINAL INDICATOR -->
+<!ENTITY ordf "&#x00AA;"> <!-- FEMININE ORDINAL INDICATOR -->
+<!ENTITY sect "&#x00A7;"> <!-- SECTION SIGN -->
+<!ENTITY para "&#x00B6;"> <!-- PILCROW SIGN -->
+<!ENTITY middot "&#x00B7;"> <!-- MIDDLE DOT -->
+<!ENTITY larr "&#x2190;"> <!-- LEFTWARDS DOUBLE ARROW -->
+<!ENTITY rarr "&#x2192;"> <!-- RIGHTWARDS DOUBLE ARROW -->
+<!ENTITY uarr "&#x2191;"> <!-- UPWARDS ARROW -->
+<!ENTITY darr "&#x2193;"> <!-- DOWNWARDS ARROW -->
+<!ENTITY copy "&#x00A9;"> <!-- COPYRIGHT SIGN -->
+<!ENTITY reg "&#x00AE;"> <!-- REG TRADE MARK SIGN -->
+<!ENTITY trade "&#x2122;"> <!-- TRADE MARK SIGN -->
+<!ENTITY brvbar "&#x00A6;"> <!-- BROKEN BAR -->
+<!ENTITY not "&#x00AC;"> <!-- NOT SIGN -->
+<!ENTITY sung "&#x2669;"> <!-- -->
+<!ENTITY excl "&#x0021;"> <!-- EXCLAMATION MARK -->
+<!ENTITY iexcl "&#x00A1;"> <!-- INVERTED EXCLAMATION MARK -->
+<!ENTITY quot "&#x0022;"> <!-- QUOTATION MARK -->
+<!ENTITY apos "&#x0027;"> <!-- APOSTROPHE -->
+<!ENTITY lpar "&#x0028;"> <!-- LEFT PARENTHESIS -->
+<!ENTITY rpar "&#x0029;"> <!-- RIGHT PARENTHESIS -->
+<!ENTITY comma "&#x002C;"> <!-- COMMA -->
+<!ENTITY lowbar "&#x005F;"> <!-- LOW LINE -->
+<!ENTITY hyphen "&#xE4F8;"> <!-- -->
+<!ENTITY period "&#x002E;"> <!-- FULL STOP -->
+<!ENTITY sol "&#x002F;"> <!-- SOLIDUS -->
+<!ENTITY colon "&#x003A;"> <!-- COLON -->
+<!ENTITY semi "&#x003B;"> <!-- SEMICOLON -->
+<!ENTITY quest "&#x003F;"> <!-- QUESTION MARK -->
+<!ENTITY iquest "&#x00BF;"> <!-- INVERTED QUESTION MARK -->
+<!ENTITY laquo "&#x00AB;"> <!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY raquo "&#x00BB;"> <!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY lsquo "&#x2018;"> <!-- -->
+<!ENTITY rsquo "&#x2019;"> <!-- RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY ldquo "&#x201C;"> <!-- -->
+<!ENTITY rdquo "&#x201D;"> <!-- RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY nbsp "&#x00A0;"> <!-- NO-BREAK SPACE -->
+<!ENTITY shy "&#x00AD;"> <!-- SOFT HYPHEN -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-pub.ent b/tests/docbook/dtd/4.0/ent/iso-pub.ent
new file mode 100755
index 00000000..79c9b2a9
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-pub.ent
@@ -0,0 +1,90 @@
+<!-- iso-pub.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY emsp "&#x2003;"> <!-- EM SPACE -->
+<!ENTITY ensp "&#x2002;"> <!-- EN SPACE -->
+<!ENTITY emsp13 "&#x2004;"> <!-- THREE-PER-EM SPACE -->
+<!ENTITY emsp14 "&#x2005;"> <!-- FOUR-PER-EM SPACE -->
+<!ENTITY numsp "&#x2007;"> <!-- FIGURE SPACE -->
+<!ENTITY puncsp "&#x2008;"> <!-- PUNCTUATION SPACE -->
+<!ENTITY thinsp "&#x2009;"> <!-- THIN SPACE -->
+<!ENTITY hairsp "&#x200A;"> <!-- HAIR SPACE -->
+<!ENTITY mdash "&#x2014;"> <!-- EM DASH -->
+<!ENTITY ndash "&#x2013;"> <!-- EN DASH -->
+<!ENTITY dash "&#x2010;"> <!-- HYPHEN -->
+<!ENTITY blank "&#x2423;"> <!-- OPEN BOX -->
+<!ENTITY hellip "&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY nldr "&#x2025;"> <!-- TWO DOT LEADER -->
+<!ENTITY frac13 "&#x2153;"> <!-- VULGAR FRACTION ONE THIRD -->
+<!ENTITY frac23 "&#x2154;"> <!-- VULGAR FRACTION TWO THIRDS -->
+<!ENTITY frac15 "&#x2155;"> <!-- VULGAR FRACTION ONE FIFTH -->
+<!ENTITY frac25 "&#x2156;"> <!-- VULGAR FRACTION TWO FIFTHS -->
+<!ENTITY frac35 "&#x2157;"> <!-- VULGAR FRACTION THREE FIFTHS -->
+<!ENTITY frac45 "&#x2158;"> <!-- VULGAR FRACTION FOUR FIFTHS -->
+<!ENTITY frac16 "&#x2159;"> <!-- VULGAR FRACTION ONE SIXTH -->
+<!ENTITY frac56 "&#x215A;"> <!-- VULGAR FRACTION FIVE SIXTHS -->
+<!ENTITY incare "&#x2105;"> <!-- CARE OF -->
+<!ENTITY block "&#x2588;"> <!-- FULL BLOCK -->
+<!ENTITY uhblk "&#x2580;"> <!-- UPPER HALF BLOCK -->
+<!ENTITY lhblk "&#x2584;"> <!-- LOWER HALF BLOCK -->
+<!ENTITY blk14 "&#x2591;"> <!-- LIGHT SHADE -->
+<!ENTITY blk12 "&#x2592;"> <!-- MEDIUM SHADE -->
+<!ENTITY blk34 "&#x2593;"> <!-- DARK SHADE -->
+<!ENTITY marker "&#x25AE;"> <!-- BLACK VERTICAL RECTANGLE -->
+<!ENTITY cir "&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY squ "&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY rect "&#x25AD;"> <!-- WHITE RECTANGLE -->
+<!ENTITY utri "&#x25B5;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY dtri "&#x25BF;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY star "&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY bull "&#x2022;"> <!-- BULLET -->
+<!ENTITY squf "&#x25AA;"> <!-- -->
+<!ENTITY utrif "&#x25B4;"> <!-- BLACK UP-POINTING TRIANGLE -->
+<!ENTITY dtrif "&#x25BE;"> <!-- BLACK DOWN-POINTING TRIANGLE -->
+<!ENTITY ltrif "&#x25C2;"> <!-- BLACK LEFT-POINTING TRIANGLE -->
+<!ENTITY rtrif "&#x25B8;"> <!-- BLACK RIGHT-POINTING TRIANGLE -->
+<!ENTITY clubs "&#x2663;"> <!-- BLACK CLUB SUIT -->
+<!ENTITY diams "&#x2666;"> <!-- BLACK DIAMOND SUIT -->
+<!ENTITY hearts "&#x2665;"> <!-- BLACK HEART SUIT -->
+<!ENTITY spades "&#x2660;"> <!-- BLACK SPADE SUIT -->
+<!ENTITY malt "&#x2720;"> <!-- MALTESE CROSS -->
+<!ENTITY dagger "&#x2020;"> <!-- DAGGER -->
+<!ENTITY Dagger "&#x2021;"> <!-- DOUBLE DAGGER -->
+<!ENTITY check "&#x2713;"> <!-- CHECK MARK -->
+<!ENTITY cross "&#x2717;"> <!-- BALLOT X -->
+<!ENTITY sharp "&#x266F;"> <!-- MUSIC SHARP SIGN -->
+<!ENTITY flat "&#x266D;"> <!-- MUSIC FLAT SIGN -->
+<!ENTITY male "&#x2642;"> <!-- MALE SIGN -->
+<!ENTITY female "&#x2640;"> <!-- -->
+<!ENTITY phone "&#x260E;"> <!-- TELEPHONE SIGN -->
+<!ENTITY telrec "&#x2315;"> <!-- TELEPHONE RECORDER -->
+<!ENTITY copysr "&#x2117;"> <!-- SOUND RECORDING COPYRIGHT -->
+<!ENTITY caret "&#x2041;"> <!-- CARET -->
+<!ENTITY lsquor "&#x201A;"> <!-- SINGLE LOW-9 QUOTATION MARK -->
+<!ENTITY ldquor "&#x201E;"> <!-- DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY fflig "&#xFB00;"> <!-- -->
+<!ENTITY filig "&#xFB01;"> <!-- -->
+<!-- fjlig Unknown unicode character -->
+<!ENTITY ffilig "&#xFB03;"> <!-- -->
+<!ENTITY ffllig "&#xFB04;"> <!-- -->
+<!ENTITY fllig "&#xFB02;"> <!-- -->
+<!ENTITY mldr "&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY rdquor "&#x201C;"> <!-- -->
+<!ENTITY rsquor "&#x2018;"> <!-- -->
+<!ENTITY vellip "&#x22EE;"> <!-- -->
+<!ENTITY hybull "&#x2043;"> <!-- HYPHEN BULLET -->
+<!ENTITY loz "&#x25CA;"> <!-- LOZENGE -->
+<!ENTITY lozf "&#x2726;"> <!-- -->
+<!ENTITY ltri "&#x25C3;"> <!-- WHITE LEFT-POINTING TRIANGLE -->
+<!ENTITY rtri "&#x25B9;"> <!-- WHITE RIGHT-POINTING TRIANGLE -->
+<!ENTITY starf "&#x2605;"> <!-- BLACK STAR -->
+<!ENTITY natur "&#x266E;"> <!-- MUSIC NATURAL SIGN -->
+<!ENTITY rx "&#x211E;"> <!-- PRESCRIPTION TAKE -->
+<!ENTITY sext "&#x2736;"> <!-- SIX POINTED BLACK STAR -->
+<!ENTITY target "&#x2316;"> <!-- POSITION INDICATOR -->
+<!ENTITY dlcrop "&#x230D;"> <!-- BOTTOM LEFT CROP -->
+<!ENTITY drcrop "&#x230C;"> <!-- BOTTOM RIGHT CROP -->
+<!ENTITY ulcrop "&#x230F;"> <!-- TOP LEFT CROP -->
+<!ENTITY urcrop "&#x230E;"> <!-- TOP RIGHT CROP -->
diff --git a/tests/docbook/dtd/4.0/ent/iso-tech.ent b/tests/docbook/dtd/4.0/ent/iso-tech.ent
new file mode 100755
index 00000000..6ea74682
--- /dev/null
+++ b/tests/docbook/dtd/4.0/ent/iso-tech.ent
@@ -0,0 +1,67 @@
+<!-- iso-tech.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aleph "&#x2135;"> <!-- ALEF SYMBOL -->
+<!ENTITY and "&#x2227;"> <!-- -->
+<!ENTITY ang90 "&#x221F;"> <!-- RIGHT ANGLE -->
+<!ENTITY angsph "&#x2222;"> <!-- -->
+<!ENTITY ap "&#x2248;"> <!-- -->
+<!ENTITY becaus "&#x2235;"> <!-- BECAUSE -->
+<!ENTITY bottom "&#x22A5;"> <!-- -->
+<!ENTITY cap "&#x2229;"> <!-- -->
+<!ENTITY cong "&#x2245;"> <!-- -->
+<!ENTITY conint "&#x222E;"> <!-- -->
+<!ENTITY cup "&#x222A;"> <!-- -->
+<!ENTITY equiv "&#x2261;"> <!-- -->
+<!ENTITY exist "&#x2203;"> <!-- -->
+<!ENTITY forall "&#x2200;"> <!-- -->
+<!ENTITY fnof "&#x0192;"> <!-- LATIN SMALL LETTER F WITH HOOK -->
+<!ENTITY ge "&#x2265;"> <!-- GREATER-THAN OR EQUAL TO -->
+<!ENTITY iff "&#xE365;"> <!-- -->
+<!ENTITY infin "&#x221E;"> <!-- -->
+<!ENTITY int "&#x222B;"> <!-- -->
+<!ENTITY isin "&#x220A;"> <!-- -->
+<!ENTITY lang "&#x3008;"> <!-- -->
+<!ENTITY lArr "&#x21D0;"> <!-- LEFTWARDS ARROW -->
+<!ENTITY le "&#x2264;"> <!-- -->
+<!ENTITY minus "&#x2212;"> <!-- MINUS SIGN -->
+<!ENTITY mnplus "&#x2213;"> <!-- -->
+<!ENTITY nabla "&#x2207;"> <!-- NABLA -->
+<!ENTITY ne "&#x2260;"> <!-- -->
+<!ENTITY ni "&#x220D;"> <!-- -->
+<!ENTITY or "&#x2228;"> <!-- -->
+<!ENTITY par "&#x2225;"> <!-- PARALLEL TO -->
+<!ENTITY part "&#x2202;"> <!-- -->
+<!ENTITY permil "&#x2030;"> <!-- PER MILLE SIGN -->
+<!ENTITY perp "&#x22A5;"> <!-- -->
+<!ENTITY prime "&#x2032;"> <!-- PRIME -->
+<!ENTITY Prime "&#x2033;"> <!-- DOUBLE PRIME -->
+<!ENTITY prop "&#x221D;"> <!-- -->
+<!ENTITY radic "&#x221A;"> <!-- -->
+<!ENTITY rang "&#x3009;"> <!-- -->
+<!ENTITY rArr "&#x21D2;"> <!-- RIGHTWARDS ARROW -->
+<!ENTITY sim "&#x223C;"> <!-- -->
+<!ENTITY sime "&#x2243;"> <!-- -->
+<!ENTITY square "&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY sub "&#x2282;"> <!-- -->
+<!ENTITY sube "&#x2286;"> <!-- -->
+<!ENTITY sup "&#x2283;"> <!-- -->
+<!ENTITY supe "&#x2287;"> <!-- -->
+<!ENTITY there4 "&#x2234;"> <!-- -->
+<!ENTITY Verbar "&#x2016;"> <!-- DOUBLE VERTICAL LINE -->
+<!ENTITY angst "&#x212B;"> <!-- ANGSTROM SIGN -->
+<!ENTITY bernou "&#x212C;"> <!-- SCRIPT CAPITAL B -->
+<!ENTITY compfn "&#x2218;"> <!-- RING OPERATOR -->
+<!ENTITY Dot "&#x0308;"> <!-- -->
+<!ENTITY DotDot "&#x20DC;"> <!-- COMBINING FOUR DOTS ABOVE -->
+<!ENTITY hamilt "&#x210B;"> <!-- SCRIPT CAPITAL H -->
+<!ENTITY lagran "&#x2112;"> <!-- SCRIPT CAPITAL L -->
+<!ENTITY lowast "&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY notin "&#x2209;"> <!-- -->
+<!ENTITY order "&#x2134;"> <!-- SCRIPT SMALL O -->
+<!ENTITY phmmat "&#x2133;"> <!-- SCRIPT CAPITAL M -->
+<!ENTITY tdot "&#x20DB;"> <!-- COMBINING THREE DOTS ABOVE -->
+<!ENTITY tprime "&#x2034;"> <!-- TRIPLE PRIME -->
+<!ENTITY wedgeq "&#x2259;"> <!-- ESTIMATES -->
diff --git a/tests/docbook/dtd/4.0/readme.txt b/tests/docbook/dtd/4.0/readme.txt
new file mode 100644
index 00000000..58161cb8
--- /dev/null
+++ b/tests/docbook/dtd/4.0/readme.txt
@@ -0,0 +1,12 @@
+README for DocBook XML V4.0
+
+This is DocBook XML V4.0, released 18 May 2000.
+
+See 40chg.txt for information about what has changed since DocBook 3.1.
+
+For more information about DocBook, please see
+
+ http://www.oasis-open.org/docbook/
+
+Please send all questions, comments, concerns, and bug reports to the
+DocBook mailing list: docbook@lists.oasis-open.org
diff --git a/tests/docbook/dtd/4.0/soextblx.dtd b/tests/docbook/dtd/4.0/soextblx.dtd
new file mode 100644
index 00000000..4c84d85f
--- /dev/null
+++ b/tests/docbook/dtd/4.0/soextblx.dtd
@@ -0,0 +1,308 @@
+<!-- XML EXCHANGE TABLE MODEL DECLARATION MODULE -->
+
+<!-- This set of declarations defines the XML version of the Exchange
+ Table Model as of the date shown in the Formal Public Identifier
+ (FPI) for this entity.
+
+ This set of declarations may be referred to using a public external
+ entity declaration and reference as shown in the following three
+ lines:
+
+ <!ENTITY % calstblx
+ PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN">
+ %calstblx;
+
+ If various parameter entities used within this set of declarations
+ are to be given non-default values, the appropriate declarations
+ should be given before calling in this package (i.e., before the
+ "%calstblx;" reference).
+-->
+
+<!-- The motivation for this XML version of the Exchange Table Model
+ is simply to create an XML version of the SGML Exchange Table
+ Model. By design, no effort has been made to "improve" the model.
+
+ This XML version incorporates the logical bare minimum changes
+ necessary to make the Exchange Table Model a valid XML DTD.
+-->
+
+<!-- The XML version of the Exchange Table Model differs from
+ the SGML version in the following ways:
+
+ The following parameter entities have been removed:
+
+ - tbl.table.excep, tbl.hdft.excep, tbl.row.excep, tbl.entry.excep
+ There are no exceptions in XML. The following normative statement
+ is made in lieu of exceptions: the exchange table model explicitly
+ forbids a table from occurring within another table. If the
+ content model of an entry includes a table element, then this
+ cannot be enforced by the DTD, but it is a deviation from the
+ exchange table model to include a table within a table.
+
+ - tbl.hdft.name, tbl.hdft.mdl, tbl.hdft.excep, tbl.hdft.att
+ The motivation for these elements was to change the table
+ header/footer elements. Since XML does not allow element declarations
+ to contain name groups, and the exchange table model does not
+ allow a table to contain footers, the continued presence of these
+ attributes seems unnecessary.
+
+ The following parameter entity has been added:
+
+ - tbl.thead.att
+ This entity parameterizes the attributes on thead. It replaces
+ the tbl.hdft.att parameter entity.
+
+ Other miscellaneous changes:
+
+ - Tag ommission indicators have been removed
+ - Comments have been removed from declarations
+ - NUMBER attributes have been changed to NMTOKEN
+ - NUTOKEN attributes have been to changed to NMTOKEN
+ - Removed the grouping characters around the content model
+ parameter entry for the 'entry' element. This is necessary
+ so that an entry can contain #PCDATA and be defined as an
+ optional, repeatable OR group beginning with #PCDATA.
+-->
+
+<!-- This entity includes a set of element and attribute declarations
+ that partially defines the Exchange table model. However, the model
+ is not well-defined without the accompanying natural language
+ description of the semantics (meanings) of these various elements,
+ attributes, and attribute values. The semantic writeup, also available
+ from SGML Open, should be used in conjunction with this entity.
+-->
+
+<!-- In order to use the Exchange table model, various parameter entity
+ declarations are required. A brief description is as follows:
+
+ ENTITY NAME WHERE USED WHAT IT IS
+
+ %yesorno In ATTLIST of: An attribute declared value
+ almost all elements for a "boolean" attribute
+
+ %paracon In content model of: The "text" (logical content)
+ <entry> of the model group for <entry>
+
+ %titles In content model of: The "title" part of the model
+ table element group for the table element
+
+ %tbl.table.name In declaration of: The name of the "table"
+ table element element
+
+ %tbl.table-titles.mdl In content model of: The model group for the title
+ table elements part of the content model for
+ table element
+
+ %tbl.table.mdl In content model of: The model group for the content
+ table elements model for table element,
+ often (and by default) defined
+ in terms of %tbl.table-titles.mdl
+ and tgroup
+
+ %tbl.table.att In ATTLIST of: Additional attributes on the
+ table element table element
+
+ %bodyatt In ATTLIST of: Additional attributes on the
+ table element table element (for backward
+ compatibility with the SGML
+ model)
+
+ %tbl.tgroup.mdl In content model of: The model group for the content
+ <tgroup> model for <tgroup>
+
+ %tbl.tgroup.att In ATTLIST of: Additional attributes on the
+ <tgroup> <tgroup> element
+
+ %tbl.thead.att In ATTLIST of: Additional attributes on the
+ <thead> <thead> element
+
+ %tbl.tbody.att In ATTLIST of: Additional attributes on the
+ <tbody> <tbody> element
+
+ %tbl.colspec.att In ATTLIST of: Additional attributes on the
+ <colspec> <colspec> element
+
+ %tbl.row.mdl In content model of: The model group for the content
+ <row> model for <row>
+
+ %tbl.row.att In ATTLIST of: Additional attributes on the
+ <row> <row> element
+
+ %tbl.entry.mdl In content model of: The model group for the content
+ <entry> model for <entry>
+
+ %tbl.entry.att In ATTLIST of: Additional attributes on the
+ <entry> <entry> element
+
+ This set of declarations will use the default definitions shown below
+ for any of these parameter entities that are not declared before this
+ set of declarations is referenced.
+-->
+
+<!-- These definitions are not directly related to the table model, but are
+ used in the default CALS table model and may be defined elsewhere (and
+ prior to the inclusion of this table module) in the referencing DTD. -->
+
+<!ENTITY % yesorno 'NMTOKEN'> <!-- no if zero(s), yes if any other value -->
+<!ENTITY % titles 'title?'>
+<!ENTITY % pcd "#PCDATA">
+<!ENTITY % paracon '%pcd;'> <!-- default for use in entry content -->
+
+<!--
+The parameter entities as defined below change and simplify the CALS table
+model as published (as part of the Example DTD) in MIL-HDBK-28001. The
+resulting simplified DTD has support from the SGML Open vendors and is
+therefore more interoperable among different systems.
+
+These following declarations provide the Exchange default definitions
+for these entities. However, these entities can be redefined (by giving
+the appropriate parameter entity declaration(s) prior to the reference
+to this Table Model declaration set entity) to fit the needs of the
+current application.
+
+Note, however, that changes may have significant effect on the ability to
+interchange table information. These changes may manifest themselves
+in useability, presentation, and possible structure information degradation.
+-->
+
+<!ENTITY % tbl.table.name "table">
+<!ENTITY % tbl.table-titles.mdl "%titles;,">
+<!ENTITY % tbl.table-main.mdl "tgroup+">
+<!ENTITY % tbl.table.mdl "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
+<!ENTITY % tbl.table.att "
+ pgwide %yesorno; #IMPLIED ">
+<!ENTITY % bodyatt "">
+<!ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody">
+<!ENTITY % tbl.tgroup.att "">
+<!ENTITY % tbl.thead.att "">
+<!ENTITY % tbl.tbody.att "">
+<!ENTITY % tbl.colspec.att "">
+<!ENTITY % tbl.row.mdl "entry+">
+<!ENTITY % tbl.row.att "">
+<!ENTITY % tbl.entry.mdl "(%paracon;)*">
+<!ENTITY % tbl.entry.att "">
+
+<!-- ===== Element and attribute declarations follow. ===== -->
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.table.name "table"
+ ENTITY % tbl.table-titles.mdl "%titles;,"
+ ENTITY % tbl.table.mdl "%tbl.table-titles; tgroup+"
+ ENTITY % tbl.table.att "
+ pgwide %yesorno; #IMPLIED "
+-->
+
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+
+<!ATTLIST %tbl.table.name;
+ frame (top|bottom|topbot|all|sides|none) #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ %tbl.table.att;
+ %bodyatt;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody"
+ ENTITY % tbl.tgroup.att ""
+-->
+
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+
+<!ATTLIST tgroup
+ cols NMTOKEN #REQUIRED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ %tbl.tgroup.att;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.colspec.att ""
+-->
+
+<!ELEMENT colspec EMPTY >
+
+<!ATTLIST colspec
+ colnum NMTOKEN #IMPLIED
+ colname NMTOKEN #IMPLIED
+ colwidth CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ %tbl.colspec.att;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.thead.att ""
+-->
+
+<!ELEMENT thead (row+)>
+
+<!ATTLIST thead
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.thead.att;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.tbody.att ""
+-->
+
+<!ELEMENT tbody (row+)>
+
+<!ATTLIST tbody
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.tbody.att;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.row.mdl "entry+"
+ ENTITY % tbl.row.att ""
+-->
+
+<!ELEMENT row (%tbl.row.mdl;)>
+
+<!ATTLIST row
+ rowsep %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.row.att;
+>
+
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % paracon "#PCDATA"
+ ENTITY % tbl.entry.mdl "(%paracon;)*"
+ ENTITY % tbl.entry.att ""
+-->
+
+<!ELEMENT entry %tbl.entry.mdl;>
+
+<!ATTLIST entry
+ colname NMTOKEN #IMPLIED
+ namest NMTOKEN #IMPLIED
+ nameend NMTOKEN #IMPLIED
+ morerows NMTOKEN #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.entry.att;
+>
diff --git a/tests/docbook/dtd/4.1.2/40chg.txt b/tests/docbook/dtd/4.1.2/40chg.txt
new file mode 100644
index 00000000..f1c720a6
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/40chg.txt
@@ -0,0 +1,53 @@
+19 June 2000
+
+Changes from DocBook V3.1 to DocBook XML V4.1:
+
+Global:
+
+- Broad changes required for XML compatibility
+- Added a *provisional* set of character entities based on the ISO
+ entity sets. The DocBook TC is not willing to accept the long-term
+ responsibility for defining and maintaining these sets. The TC
+ will ask OASIS to form a new TC for this purpose.
+
+Markup:
+
+- RFE 17: Added a common attribute 'Condition' for generic effectivity
+- RFE 38: The nav.class elements (ToC|LoT|Index|Glossary|Bibliography) are
+ now allowed at the beginning and end of components and sections
+- RFE 58: The 'optmult' and 'reqmult' attribute values have been
+ removed from Group
+- RFE 65: Added several class attribute values to Filename and SystemItem
+ at the request of the Linux community
+- RFE 73: Removed BookBiblio and SeriesInfo
+- RFE 81: Added SidebarInfo to Sidebar
+- RFE 87: Added 'xmlpi' and 'emptytag' as class values of SGMLTag
+- RFE 92: Added 'CO' to Synopsis and LiteralLayout
+- RFE 99: Added SimpleMsgEntry as an alternative to MsgEntry in order
+ to provide a simpler MsgSet construct
+- RFE 103: Added RevDescription as an alternative to RevRemark in
+ RevHistory; this allows longer descriptive text in a revision
+- RFE 104: Added 'Specification' to the list of document classes on Article
+- RFE 108: Allow admonitions in Answers
+- RFE 110: Allow a RevHistory on QandAEntry
+- RFE 115: Allow optional Title on OrderedList and ItemizedList
+- RFE 116: Added LineNumbering attribute to linespecific environments for
+ presentation of line numbers
+- Added a common attribute 'Security' for effectivity
+- Added synopsis markup for modern programming languages (e.g, object
+ oriented languages like Java, C++, and IDL)
+- Renamed DocInfo to PrefaceInfo, ChapterInfo, AppendixInfo, etc.
+- Comment was renamed Remark
+- InterfaceDefinition was removed
+
+Other:
+
+- RFE 88: Added PEs to include/ignore dbnotn.mod and dbcent.mod
+- RFE 102: Fixed some outstanding namecase problems
+- RFE 105: Added PNG notation
+- RFE 106: Removed some odd *.content PEs that interfered with
+ customization layers
+- RFE 109: Added FPI to content of dbgenent.mod (for consistency)
+- RFE 111: Added the Euro symbol
+- Fixed bug in cals-tbl.dtd; a model group was used for the element
+ declaration, but the attlist declaration used "Table" literally.
diff --git a/tests/docbook/dtd/4.1.2/41chg.txt b/tests/docbook/dtd/4.1.2/41chg.txt
new file mode 100644
index 00000000..4bb6b914
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/41chg.txt
@@ -0,0 +1,18 @@
+27 Aug 2000
+
+Changes from DocBook V4.1.1 to DocBook V4.1.2:
+
+- Fixed broken ISO FPIs in docbook.cat introduced by
+ careless search-and-replace.
+
+Changes from DocBook V4.0 to DocBook V4.1.1:
+
+- Removed some 4.0 future use comments that had accidentally
+ been left in the DTD
+- Fixed system identifiers in docbook.cat
+- Added version information to all the ent/*.ent files
+- Fixed a number of numeric character references in the ent/*.ent files
+- Fixed a couple of incorrect FPIs.
+- Renamed dbgenent.ent to dbgenent.mod for parity with SGML version
+
+See 40chg.txt for a list of the significant changes.
diff --git a/tests/docbook/dtd/4.1.2/ChangeLog b/tests/docbook/dtd/4.1.2/ChangeLog
new file mode 100644
index 00000000..b203c1b9
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ChangeLog
@@ -0,0 +1,118 @@
+2000-08-27 Norman Walsh <ndw@nwalsh.com>
+
+ * 41chg.txt, readme.txt: Updated descriptions
+
+ * calstblx.dtd, dbcentx.mod, dbgenent.mod, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat:
+ Updated version numbers
+
+ * docbook.cat: Fixed stupid search-and-replace error in ISO FPIs
+
+ * docbookx.dtd: DocBook XML V4.1.2 released
+
+2000-08-12 Norman Walsh <ndw@nwalsh.com>
+
+ * 40chg.txt: Updated; changed version number
+
+ * 41chg.txt: Added note about renaming dbgenent
+
+ * 41chg.txt, readme.txt: Updated; changed version number, release date
+
+ * calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat:
+ Changed version number
+
+ * dbgenent.ent, dbgenent.mod: Renamed .ent to .mod
+
+ * docbookx.dtd: DocBook XML V4.1.1 released
+
+ * docbookx.dtd: Fixed system identifier for dbgenent.ent to dbgenent.mod
+
+2000-07-06 Norman Walsh <ndw@nwalsh.com>
+
+ * 40chg.txt, 41chg.txt, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat, readme.txt:
+ Changed version numbers to 4.1.1beta1
+
+ * docbook.cat: Fixed incorrect system identifiers
+
+ * docbookx.dtd: Version 4.1.1beta1 released
+
+2000-06-19 Norman Walsh <ndw@nwalsh.com>
+
+ * 40chg.txt: Added notes about comment and interfacedefinition
+
+ * 41chg.txt: New file.
+
+ * calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbook.cat, docbookx.dtd, readme.txt:
+ Updated version numbers to 4.1
+
+ * dbgenent.ent: Fixed FPI; added 'XML'
+
+ * dbhierx.mod: Removed 4.0 future use comments
+
+ * dbpoolx.mod: Removed 4.0 future use comments; fixed table model selection comment; fixed 'Norman Walsh' FPIs
+
+ * docbook.cat: New file.
+
+2000-05-18 Norman Walsh <ndw@nwalsh.com>
+
+ * 40chg.txt, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt:
+ Removed references to beta6
+
+ * docbookx.dtd: DocBook XML V4.0 released.
+
+2000-04-10 Norman Walsh <ndw@nwalsh.com>
+
+ * 40chg.txt, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt:
+ Updated release date and version to 4.0beta6
+
+ * dbpoolx.mod: Added support for EBNF hook; fixed equation content bug
+
+2000-04-03 Norman Walsh <ndw@nwalsh.com>
+
+ * 40chg.txt: Added note about renaming DocInfo to *Info.
+
+ * 40chg.txt, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt:
+ Updated version numbers
+
+2000-03-30 Norman Walsh <ndw@nwalsh.com>
+
+ * dbpoolx.mod: Removed beginpage from highlights.mix; it's excluded in the SGML version.
+
+2000-03-24 Norman Walsh <ndw@nwalsh.com>
+
+ * 40chg.txt, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt:
+ Updated version numbers
+
+ * dbefsyn.mod: Removed
+
+ * dbpoolx.mod: Removed ELEMENT from comments to ease text searching of the DTD.
+ Merged dbefsyn.mod into dbpoolx.mod
+ Added Modifier as an optional element at the end of MethodSynopsis
+ and MethodParam.
+
+2000-03-07 Norman Walsh <ndw@nwalsh.com>
+
+ * 40chg.txt: New file.
+
+ * 40chg.txt, calstblx.dtd, dbcentx.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt, soextblx.dtd:
+ Updated internal versions to beta3
+
+2000-03-03 Norman Walsh <ndw@nwalsh.com>
+
+ * dbpoolx.mod: Removed erroneous comment about inline synopses
+
+2000-03-02 Norman Walsh <ndw@nwalsh.com>
+
+ * calstblx.dtd, dbcentx.mod, dbefsyn.mod, dbgenent.ent, dbhierx.mod, dbnotnx.mod, dbpoolx.mod, docbookx.dtd, readme.txt, soextblx.dtd:
+ New file.
+
+ * dbefsyn.mod, dbpoolx.mod: Added ooclass, oointerface, and ooexception as wrappers for modifiers
+ and names in classsynopsis. Also allow them inline.
+
+ Fixed SGML PE parsing problem with hook PEs.
+
+ * dbhierx.mod, dbpoolx.mod: Added hook PEs for future module extension
+
+ * dbpoolx.mod: Removed unused PEs for equation content
+
+ * dbpoolx.mod: Made primary optional (XML has no #CONREF)
+
diff --git a/tests/docbook/dtd/4.1.2/Makefile.am b/tests/docbook/dtd/4.1.2/Makefile.am
new file mode 100644
index 00000000..bb98fd38
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/Makefile.am
@@ -0,0 +1,11 @@
+## Process this file with automake to produce Makefile.in
+
+EXTRA_DIST = \
+ 40chg.txt 41chg.txt ChangeLog calstblx.dtd dbcentx.mod dbgenent.mod \
+ dbhierx.mod dbnotnx.mod dbpoolx.mod docbook.cat docbookx.dtd readme.txt \
+ soextblx.dtd \
+ ent/iso-amsa.ent ent/iso-amsb.ent ent/iso-amsc.ent ent/iso-amsn.ent \
+ ent/iso-amso.ent ent/iso-amsr.ent ent/iso-box.ent ent/iso-cyr1.ent \
+ ent/iso-cyr2.ent ent/iso-dia.ent ent/iso-grk1.ent ent/iso-grk2.ent \
+ ent/iso-grk3.ent ent/iso-grk4.ent ent/iso-lat1.ent ent/iso-lat2.ent \
+ ent/iso-num.ent ent/iso-pub.ent ent/iso-tech.ent
diff --git a/tests/docbook/dtd/4.1.2/calstblx.dtd b/tests/docbook/dtd/4.1.2/calstblx.dtd
new file mode 100755
index 00000000..dfc4e7aa
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/calstblx.dtd
@@ -0,0 +1,199 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML CALS Table Model V4.1.2 .................................... -->
+<!-- File calstblx.mod .................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh and the Organization for the Advancement
+ of Structured Information Standards (OASIS).
+
+ This DTD is based on the CALS Table Model
+ PUBLIC "-//USA-DOD//DTD Table Model 951010//EN"
+
+ $Id$
+
+ Permission to use, copy, modify and distribute the DocBook XML DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook XML DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the definitions for the CALS Table Model
+ converted to XML.
+-->
+
+<!-- These definitions are not directly related to the table model, but are
+ used in the default CALS table model and are usually defined elsewhere
+ (and prior to the inclusion of this table module) in a CALS DTD. -->
+
+<!ENTITY % bodyatt "">
+<!ENTITY % secur "">
+
+<!-- no if zero(s),
+ yes if any other digits value -->
+
+<!ENTITY % yesorno 'CDATA'>
+<!ENTITY % titles 'title?'>
+
+<!-- default for use in entry content -->
+
+<!ENTITY % paracon '#PCDATA'>
+
+<!--
+The parameter entities as defined below provide the CALS table model
+as published (as part of the Example DTD) in MIL-HDBK-28001.
+
+These following declarations provide the CALS-compliant default definitions
+for these entities. However, these entities can and should be redefined
+(by giving the appropriate parameter entity declaration(s) prior to the
+reference to this Table Model declaration set entity) to fit the needs
+of the current application.
+-->
+
+<!ENTITY % tbl.table.name "(table|chart)">
+<!ENTITY % tbl.table-titles.mdl "%titles;,">
+<!ENTITY % tbl.table-main.mdl "(tgroup+|graphic+)">
+<!ENTITY % tbl.table.mdl "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
+<!ENTITY % tbl.table.att '
+ tabstyle CDATA #IMPLIED
+ tocentry %yesorno; #IMPLIED
+ shortentry %yesorno; #IMPLIED
+ orient (port|land) #IMPLIED
+ pgwide %yesorno; #IMPLIED '>
+<!ENTITY % tbl.tgroup.mdl "colspec*,spanspec*,thead?,tfoot?,tbody">
+<!ENTITY % tbl.tgroup.att '
+ tgroupstyle CDATA #IMPLIED '>
+<!ENTITY % tbl.hdft.mdl "colspec*,row+">
+<!ENTITY % tbl.row.mdl "(entry|entrytbl)+">
+<!ENTITY % tbl.entrytbl.mdl "colspec*,spanspec*,thead?,tbody">
+<!ENTITY % tbl.entry.mdl "(para|warning|caution|note|legend|%paracon;)*">
+<!-- ===== Element and attribute declarations follow. ===== -->
+
+<!ELEMENT table (%tbl.table.mdl;)>
+
+<!ATTLIST table
+ frame (top|bottom|topbot|all|sides|none) #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ %tbl.table.att;
+ %bodyatt;
+ %secur;
+>
+
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+
+<!ATTLIST tgroup
+ cols CDATA #REQUIRED
+ %tbl.tgroup.att;
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ %secur;
+>
+
+<!ELEMENT colspec EMPTY >
+
+<!ATTLIST colspec
+ colnum CDATA #IMPLIED
+ colname CDATA #IMPLIED
+ colwidth CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+>
+
+<!ELEMENT spanspec EMPTY >
+
+<!ATTLIST spanspec
+ namest CDATA #REQUIRED
+ nameend CDATA #REQUIRED
+ spanname CDATA #REQUIRED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+>
+
+<!ELEMENT thead (%tbl.hdft.mdl;)>
+<!ATTLIST thead
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!ELEMENT tfoot (%tbl.hdft.mdl;)>
+<!ATTLIST tfoot
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!ELEMENT tbody (row+)>
+
+<!ATTLIST tbody
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!ELEMENT row (%tbl.row.mdl;)>
+
+<!ATTLIST row
+ rowsep %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!ELEMENT entrytbl (%tbl.entrytbl.mdl;)>
+
+<!ATTLIST entrytbl
+ cols CDATA #REQUIRED
+ %tbl.tgroup.att;
+ colname CDATA #IMPLIED
+ spanname CDATA #IMPLIED
+ namest CDATA #IMPLIED
+ nameend CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ %secur;
+>
+
+<!ELEMENT entry (%tbl.entry.mdl;)*>
+
+<!ATTLIST entry
+ colname CDATA #IMPLIED
+ namest CDATA #IMPLIED
+ nameend CDATA #IMPLIED
+ spanname CDATA #IMPLIED
+ morerows CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff CDATA #IMPLIED
+ rotate %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %secur;
+>
+
+<!-- End of DocBook XML CALS Table Model V4.1.2 ............................. -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/4.1.2/dbcentx.mod b/tests/docbook/dtd/4.1.2/dbcentx.mod
new file mode 100755
index 00000000..407828cb
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/dbcentx.mod
@@ -0,0 +1,204 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML character entities module V4.1.2 ........................... -->
+<!-- File dbcentx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, and the Organization for the Advancement
+ of Structured Information Standards (OASIS).
+
+ $Id$
+
+ Permission to use, copy, modify and distribute the DocBook XML DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook XML DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the entity declarations for the standard ISO
+ entity sets used by DocBook.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbcent PUBLIC
+ "-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN"
+ "dbcentx.mod">
+ %dbcent;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+
+<!-- ...................................................................... -->
+
+<!ENTITY % ISOamsa.module "INCLUDE">
+<![%ISOamsa.module;[
+<!ENTITY % ISOamsa PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
+"ent/iso-amsa.ent">
+%ISOamsa;
+<!--end of ISOamsa.module-->]]>
+
+<!ENTITY % ISOamsb.module "INCLUDE">
+<![%ISOamsb.module;[
+<!ENTITY % ISOamsb PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
+"ent/iso-amsb.ent">
+%ISOamsb;
+<!--end of ISOamsb.module-->]]>
+
+<!ENTITY % ISOamsc.module "INCLUDE">
+<![%ISOamsc.module;[
+<!ENTITY % ISOamsc PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
+"ent/iso-amsc.ent">
+%ISOamsc;
+<!--end of ISOamsc.module-->]]>
+
+<!ENTITY % ISOamsn.module "INCLUDE">
+<![%ISOamsn.module;[
+<!ENTITY % ISOamsn PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
+"ent/iso-amsn.ent">
+%ISOamsn;
+<!--end of ISOamsn.module-->]]>
+
+<!ENTITY % ISOamso.module "INCLUDE">
+<![%ISOamso.module;[
+<!ENTITY % ISOamso PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
+"ent/iso-amso.ent">
+%ISOamso;
+<!--end of ISOamso.module-->]]>
+
+<!ENTITY % ISOamsr.module "INCLUDE">
+<![%ISOamsr.module;[
+<!ENTITY % ISOamsr PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
+"ent/iso-amsr.ent">
+%ISOamsr;
+<!--end of ISOamsr.module-->]]>
+
+<!ENTITY % ISObox.module "INCLUDE">
+<![%ISObox.module;[
+<!ENTITY % ISObox PUBLIC
+"ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
+"ent/iso-box.ent">
+%ISObox;
+<!--end of ISObox.module-->]]>
+
+<!ENTITY % ISOcyr1.module "INCLUDE">
+<![%ISOcyr1.module;[
+<!ENTITY % ISOcyr1 PUBLIC
+"ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
+"ent/iso-cyr1.ent">
+%ISOcyr1;
+<!--end of ISOcyr1.module-->]]>
+
+<!ENTITY % ISOcyr2.module "INCLUDE">
+<![%ISOcyr2.module;[
+<!ENTITY % ISOcyr2 PUBLIC
+"ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
+"ent/iso-cyr2.ent">
+%ISOcyr2;
+<!--end of ISOcyr2.module-->]]>
+
+<!ENTITY % ISOdia.module "INCLUDE">
+<![%ISOdia.module;[
+<!ENTITY % ISOdia PUBLIC
+"ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
+"ent/iso-dia.ent">
+%ISOdia;
+<!--end of ISOdia.module-->]]>
+
+<!ENTITY % ISOgrk1.module "INCLUDE">
+<![%ISOgrk1.module;[
+<!ENTITY % ISOgrk1 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
+"ent/iso-grk1.ent">
+%ISOgrk1;
+<!--end of ISOgrk1.module-->]]>
+
+<!ENTITY % ISOgrk2.module "INCLUDE">
+<![%ISOgrk2.module;[
+<!ENTITY % ISOgrk2 PUBLIC
+"ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
+"ent/iso-grk2.ent">
+%ISOgrk2;
+<!--end of ISOgrk2.module-->]]>
+
+<!ENTITY % ISOgrk3.module "INCLUDE">
+<![%ISOgrk3.module;[
+<!ENTITY % ISOgrk3 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
+"ent/iso-grk3.ent">
+%ISOgrk3;
+<!--end of ISOgrk3.module-->]]>
+
+<!ENTITY % ISOgrk4.module "INCLUDE">
+<![%ISOgrk4.module;[
+<!ENTITY % ISOgrk4 PUBLIC
+"ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
+"ent/iso-grk4.ent">
+%ISOgrk4;
+<!--end of ISOgrk4.module-->]]>
+
+<!ENTITY % ISOlat1.module "INCLUDE">
+<![%ISOlat1.module;[
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+<!--end of ISOlat1.module-->]]>
+
+<!ENTITY % ISOlat2.module "INCLUDE">
+<![%ISOlat2.module;[
+<!ENTITY % ISOlat2 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
+"ent/iso-lat2.ent">
+%ISOlat2;
+<!--end of ISOlat2.module-->]]>
+
+<!ENTITY % ISOnum.module "INCLUDE">
+<![%ISOnum.module;[
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+<!--end of ISOnum.module-->]]>
+
+<!ENTITY % ISOpub.module "INCLUDE">
+<![%ISOpub.module;[
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+<!--end of ISOpub.module-->]]>
+
+<!ENTITY % ISOtech.module "INCLUDE">
+<![%ISOtech.module;[
+<!ENTITY % ISOtech PUBLIC
+"ISO 8879:1986//ENTITIES General Technical//EN//XML"
+"ent/iso-tech.ent">
+%ISOtech;
+<!--end of ISOtech.module-->]]>
+
+<!-- End of DocBook XML character entity sets module V4.1.2 ................. -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/4.1.2/dbgenent.mod b/tests/docbook/dtd/4.1.2/dbgenent.mod
new file mode 100644
index 00000000..5dc9a41e
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/dbgenent.mod
@@ -0,0 +1,41 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML additional general entities V4.1.2 ......................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, and the Organization for the Advancement of
+ Structured Information Standards (OASIS).
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbgenent PUBLIC
+ "-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN"
+ "dbgenent.mod">
+ %dbgenent;
+-->
+
+<!-- File dbgenent.mod .................................................... -->
+
+<!-- You can edit this file to add the following:
+
+ o General entity declarations of any kind. For example:
+
+ <!ENTITY happyface SDATA "insert-face"> (system-specific data)
+ <!ENTITY productname "WinWidget"> (small boilerplate)
+ <!ENTITY legal-notice SYSTEM "notice.sgm"> (large boilerplate)
+
+ o Notation declarations. For example:
+
+ <!NOTATION chicken-scratch SYSTEM>
+
+ o Declarations for and references to external parameter entities
+ containing collections of any of the above. For example:
+
+ <!ENTITY % all-titles PUBLIC "-//DocTools//ELEMENTS Book Titles//EN"
+ "booktitles.ent">
+ %all-titles;
+-->
+
+<!-- End of DocBook XML additional general entities V4.1.2 .................. -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/4.1.2/dbhierx.mod b/tests/docbook/dtd/4.1.2/dbhierx.mod
new file mode 100755
index 00000000..2b62c618
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/dbhierx.mod
@@ -0,0 +1,2074 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML document hierarchy module V4.1.2 ........................... -->
+<!-- File dbhierx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, and the Organization for the Advancement
+ of Structured Information Standards (OASIS).
+
+ $Id$
+
+ Permission to use, copy, modify and distribute the DocBook XML DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook XML DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the definitions for the overall document
+ hierarchies of DocBook documents. It covers computer documentation
+ manuals and manual fragments, as well as reference entries (such as
+ man pages) and technical journals or anthologies containing
+ articles.
+
+ This module depends on the DocBook information pool module. All
+ elements and entities referenced but not defined here are assumed
+ to be defined in the information pool module.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbhier PUBLIC
+ "-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN"
+ "dbhierx.mod">
+ %dbhier;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+
+<!-- ...................................................................... -->
+<!-- Entities for module inclusions ....................................... -->
+
+<!ENTITY % dbhier.redecl.module "IGNORE">
+<!ENTITY % dbhier.redecl2.module "IGNORE">
+
+<!-- ...................................................................... -->
+<!-- Entities for element classes ......................................... -->
+
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class "appendix %local.appendix.class;">
+
+<!ENTITY % local.article.class "">
+<!ENTITY % article.class "article %local.article.class;">
+
+<!ENTITY % local.book.class "">
+<!ENTITY % book.class "book %local.book.class;">
+
+<!ENTITY % local.chapter.class "">
+<!ENTITY % chapter.class "chapter %local.chapter.class;">
+
+<!ENTITY % local.index.class "">
+<!ENTITY % index.class "index|setindex %local.index.class;">
+
+<!ENTITY % local.refentry.class "">
+<!ENTITY % refentry.class "refentry %local.refentry.class;">
+
+<!ENTITY % local.nav.class "">
+<!ENTITY % nav.class "toc|lot|index|glossary|bibliography
+ %local.nav.class;">
+
+<!-- Redeclaration placeholder ............................................ -->
+
+<!-- For redeclaring entities that are declared after this point while
+ retaining their references to the entities that are declared before
+ this point -->
+
+<![%dbhier.redecl.module;[
+<!-- Defining rdbhier here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbhier "">
+%rdbhier;
+<!--end of dbhier.redecl.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Entities for element mixtures ........................................ -->
+
+<!-- The DocBook TC may produce an official forms module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % forms.hook "">
+
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%genobj.class; |%descobj.class;
+ |%ndxterm.class; |beginpage
+ %forms.hook;
+ %local.divcomponent.mix;">
+
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%genobj.class; |%descobj.class;
+ |%ndxterm.class; |beginpage
+ %local.refcomponent.mix;">
+
+<!ENTITY % local.indexdivcomponent.mix "">
+<!ENTITY % indexdivcomponent.mix
+ "itemizedlist|orderedlist|variablelist|simplelist
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |anchor|remark
+ |%link.char.class;
+ |beginpage
+ %local.indexdivcomponent.mix;">
+
+<!ENTITY % local.refname.char.mix "">
+<!ENTITY % refname.char.mix
+ "#PCDATA
+ |%tech.char.class;
+ %local.refname.char.mix;">
+
+<!ENTITY % local.partcontent.mix "">
+<!ENTITY % partcontent.mix
+ "%appendix.class;|%chapter.class;|%nav.class;|%article.class;
+ |preface|%refentry.class;|reference %local.partcontent.mix;">
+
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+ "#PCDATA
+ |%xref.char.class; |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class; |%docinfo.char.class;
+ |%other.char.class;
+ |%ndxterm.class; |beginpage
+ %local.refinline.char.mix;">
+
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % refclass.char.mix
+ "#PCDATA
+ |application
+ %local.refclass.char.mix;">
+
+<!-- Redeclaration placeholder 2 .......................................... -->
+
+<!-- For redeclaring entities that are declared after this point while
+ retaining their references to the entities that are declared before
+ this point -->
+
+<![%dbhier.redecl2.module;[
+<!-- Defining rdbhier2 here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbhier2 "">
+%rdbhier2;
+<!--end of dbhier.redecl2.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Entities for content models .......................................... -->
+
+<!ENTITY % div.title.content
+ "title, subtitle?, titleabbrev?">
+
+<!ENTITY % bookcomponent.title.content
+ "title, subtitle?, titleabbrev?">
+
+<!ENTITY % sect.title.content
+ "title, subtitle?, titleabbrev?">
+
+<!ENTITY % refsect.title.content
+ "title, subtitle?, titleabbrev?">
+
+<!ENTITY % bookcomponent.content
+ "((%divcomponent.mix;)+,
+ (sect1*|(%refentry.class;)*|simplesect*|section*))
+ | (sect1+|(%refentry.class;)+|simplesect+|section+)">
+
+<!-- ...................................................................... -->
+<!-- Set and SetInfo ...................................................... -->
+
+<!ENTITY % set.content.module "INCLUDE">
+<![%set.content.module;[
+<!ENTITY % set.module "INCLUDE">
+<![%set.module;[
+<!ENTITY % local.set.attrib "">
+<!ENTITY % set.role.attrib "%role.attrib;">
+
+<!ENTITY % set.element "INCLUDE">
+<![%set.element;[
+<!ELEMENT set ((%div.title.content;)?, setinfo?, toc?, (%book.class;)+,
+ setindex?)>
+<!--end of set.element-->]]>
+
+<!-- FPI: SGML formal public identifier -->
+
+
+<!ENTITY % set.attlist "INCLUDE">
+<![%set.attlist;[
+<!ATTLIST set
+ fpi CDATA #IMPLIED
+ %status.attrib;
+ %common.attrib;
+ %set.role.attrib;
+ %local.set.attrib;
+>
+<!--end of set.attlist-->]]>
+<!--end of set.module-->]]>
+
+<!ENTITY % setinfo.module "INCLUDE">
+<![%setinfo.module;[
+<!ENTITY % local.setinfo.attrib "">
+<!ENTITY % setinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % setinfo.element "INCLUDE">
+<![%setinfo.element;[
+<!ELEMENT setinfo ((graphic | mediaobject
+ | legalnotice | modespec | subjectset
+ | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of setinfo.element-->]]>
+
+<!-- Contents: IDs of the ToC, Books, and SetIndex that comprise
+ the set, in the order of their appearance -->
+
+
+<!ENTITY % setinfo.attlist "INCLUDE">
+<![%setinfo.attlist;[
+<!ATTLIST setinfo
+ contents IDREFS #IMPLIED
+ %common.attrib;
+ %setinfo.role.attrib;
+ %local.setinfo.attrib;
+>
+<!--end of setinfo.attlist-->]]>
+<!--end of setinfo.module-->]]>
+<!--end of set.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Book and BookInfo .................................................... -->
+
+<!ENTITY % book.content.module "INCLUDE">
+<![%book.content.module;[
+<!ENTITY % book.module "INCLUDE">
+<![%book.module;[
+
+<!ENTITY % local.book.attrib "">
+<!ENTITY % book.role.attrib "%role.attrib;">
+
+<!ENTITY % book.element "INCLUDE">
+<![%book.element;[
+<!ELEMENT book ((%div.title.content;)?, bookinfo?,
+ (dedication | toc | lot
+ | glossary | bibliography | preface
+ | %chapter.class; | reference | part
+ | %article.class;
+ | %appendix.class;
+ | %index.class;
+ | colophon)*)>
+<!--end of book.element-->]]>
+
+<!-- FPI: SGML formal public identifier -->
+
+
+<!ENTITY % book.attlist "INCLUDE">
+<![%book.attlist;[
+<!ATTLIST book fpi CDATA #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %book.role.attrib;
+ %local.book.attrib;
+>
+<!--end of book.attlist-->]]>
+<!--end of book.module-->]]>
+
+<!ENTITY % bookinfo.module "INCLUDE">
+<![%bookinfo.module;[
+<!ENTITY % local.bookinfo.attrib "">
+<!ENTITY % bookinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % bookinfo.element "INCLUDE">
+<![%bookinfo.element;[
+<!ELEMENT bookinfo ((graphic | mediaobject
+ | legalnotice | modespec | subjectset
+ | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of bookinfo.element-->]]>
+
+<!-- Contents: IDs of the ToC, LoTs, Prefaces, Parts, Chapters,
+ Appendixes, References, GLossary, Bibliography, and indexes
+ comprising the Book, in the order of their appearance -->
+
+
+<!ENTITY % bookinfo.attlist "INCLUDE">
+<![%bookinfo.attlist;[
+<!ATTLIST bookinfo
+ contents IDREFS #IMPLIED
+ %common.attrib;
+ %bookinfo.role.attrib;
+ %local.bookinfo.attrib;
+>
+<!--end of bookinfo.attlist-->]]>
+<!--end of bookinfo.module-->]]>
+<!--end of book.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Dedication, ToC, and LoT ............................................. -->
+
+<!ENTITY % dedication.module "INCLUDE">
+<![%dedication.module;[
+<!ENTITY % local.dedication.attrib "">
+<!ENTITY % dedication.role.attrib "%role.attrib;">
+
+<!ENTITY % dedication.element "INCLUDE">
+<![%dedication.element;[
+<!ELEMENT dedication ((%sect.title.content;)?, (%legalnotice.mix;)+)>
+<!--end of dedication.element-->]]>
+
+<!ENTITY % dedication.attlist "INCLUDE">
+<![%dedication.attlist;[
+<!ATTLIST dedication
+ %status.attrib;
+ %common.attrib;
+ %dedication.role.attrib;
+ %local.dedication.attrib;
+>
+<!--end of dedication.attlist-->]]>
+<!--end of dedication.module-->]]>
+
+<!ENTITY % colophon.module "INCLUDE">
+<![ %colophon.module; [
+<!ENTITY % local.colophon.attrib "">
+<!ENTITY % colophon.role.attrib "%role.attrib;">
+
+<!ENTITY % colophon.element "INCLUDE">
+<![ %colophon.element; [
+<!ELEMENT colophon ((%sect.title.content;)?, (%textobject.mix;)+)>
+<!--end of colophon.element-->]]>
+
+<!ENTITY % colophon.attlist "INCLUDE">
+<![ %colophon.attlist; [
+<!ATTLIST colophon
+ %status.attrib;
+ %common.attrib;
+ %colophon.role.attrib;
+ %local.colophon.attrib;>
+<!--end of colophon.attlist-->]]>
+<!--end of colophon.module-->]]>
+
+<!ENTITY % toc.content.module "INCLUDE">
+<![%toc.content.module;[
+<!ENTITY % toc.module "INCLUDE">
+<![%toc.module;[
+<!ENTITY % local.toc.attrib "">
+<!ENTITY % toc.role.attrib "%role.attrib;">
+
+<!ENTITY % toc.element "INCLUDE">
+<![%toc.element;[
+<!ELEMENT toc ((%bookcomponent.title.content;)?, tocfront*,
+ (tocpart | tocchap)*, tocback*)>
+<!--end of toc.element-->]]>
+
+<!ENTITY % toc.attlist "INCLUDE">
+<![%toc.attlist;[
+<!ATTLIST toc
+ %pagenum.attrib;
+ %common.attrib;
+ %toc.role.attrib;
+ %local.toc.attrib;
+>
+<!--end of toc.attlist-->]]>
+<!--end of toc.module-->]]>
+
+<!ENTITY % tocfront.module "INCLUDE">
+<![%tocfront.module;[
+<!ENTITY % local.tocfront.attrib "">
+<!ENTITY % tocfront.role.attrib "%role.attrib;">
+
+<!ENTITY % tocfront.element "INCLUDE">
+<![%tocfront.element;[
+<!ELEMENT tocfront (%para.char.mix;)*>
+<!--end of tocfront.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocfront.attlist "INCLUDE">
+<![%tocfront.attlist;[
+<!ATTLIST tocfront
+ %label.attrib;
+ %linkend.attrib; %pagenum.attrib;
+ %common.attrib;
+ %tocfront.role.attrib;
+ %local.tocfront.attrib;
+>
+<!--end of tocfront.attlist-->]]>
+<!--end of tocfront.module-->]]>
+
+<!ENTITY % tocentry.module "INCLUDE">
+<![%tocentry.module;[
+<!ENTITY % local.tocentry.attrib "">
+<!ENTITY % tocentry.role.attrib "%role.attrib;">
+
+<!ENTITY % tocentry.element "INCLUDE">
+<![%tocentry.element;[
+<!ELEMENT tocentry (%para.char.mix;)*>
+<!--end of tocentry.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocentry.attlist "INCLUDE">
+<![%tocentry.attlist;[
+<!ATTLIST tocentry
+ %linkend.attrib; %pagenum.attrib;
+ %common.attrib;
+ %tocentry.role.attrib;
+ %local.tocentry.attrib;
+>
+<!--end of tocentry.attlist-->]]>
+<!--end of tocentry.module-->]]>
+
+<!ENTITY % tocpart.module "INCLUDE">
+<![%tocpart.module;[
+<!ENTITY % local.tocpart.attrib "">
+<!ENTITY % tocpart.role.attrib "%role.attrib;">
+
+<!ENTITY % tocpart.element "INCLUDE">
+<![%tocpart.element;[
+<!ELEMENT tocpart (tocentry+, tocchap*)>
+<!--end of tocpart.element-->]]>
+
+<!ENTITY % tocpart.attlist "INCLUDE">
+<![%tocpart.attlist;[
+<!ATTLIST tocpart
+ %common.attrib;
+ %tocpart.role.attrib;
+ %local.tocpart.attrib;
+>
+<!--end of tocpart.attlist-->]]>
+<!--end of tocpart.module-->]]>
+
+<!ENTITY % tocchap.module "INCLUDE">
+<![%tocchap.module;[
+<!ENTITY % local.tocchap.attrib "">
+<!ENTITY % tocchap.role.attrib "%role.attrib;">
+
+<!ENTITY % tocchap.element "INCLUDE">
+<![%tocchap.element;[
+<!ELEMENT tocchap (tocentry+, toclevel1*)>
+<!--end of tocchap.element-->]]>
+
+<!ENTITY % tocchap.attlist "INCLUDE">
+<![%tocchap.attlist;[
+<!ATTLIST tocchap
+ %label.attrib;
+ %common.attrib;
+ %tocchap.role.attrib;
+ %local.tocchap.attrib;
+>
+<!--end of tocchap.attlist-->]]>
+<!--end of tocchap.module-->]]>
+
+<!ENTITY % toclevel1.module "INCLUDE">
+<![%toclevel1.module;[
+<!ENTITY % local.toclevel1.attrib "">
+<!ENTITY % toclevel1.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel1.element "INCLUDE">
+<![%toclevel1.element;[
+<!ELEMENT toclevel1 (tocentry+, toclevel2*)>
+<!--end of toclevel1.element-->]]>
+
+<!ENTITY % toclevel1.attlist "INCLUDE">
+<![%toclevel1.attlist;[
+<!ATTLIST toclevel1
+ %common.attrib;
+ %toclevel1.role.attrib;
+ %local.toclevel1.attrib;
+>
+<!--end of toclevel1.attlist-->]]>
+<!--end of toclevel1.module-->]]>
+
+<!ENTITY % toclevel2.module "INCLUDE">
+<![%toclevel2.module;[
+<!ENTITY % local.toclevel2.attrib "">
+<!ENTITY % toclevel2.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel2.element "INCLUDE">
+<![%toclevel2.element;[
+<!ELEMENT toclevel2 (tocentry+, toclevel3*)>
+<!--end of toclevel2.element-->]]>
+
+<!ENTITY % toclevel2.attlist "INCLUDE">
+<![%toclevel2.attlist;[
+<!ATTLIST toclevel2
+ %common.attrib;
+ %toclevel2.role.attrib;
+ %local.toclevel2.attrib;
+>
+<!--end of toclevel2.attlist-->]]>
+<!--end of toclevel2.module-->]]>
+
+<!ENTITY % toclevel3.module "INCLUDE">
+<![%toclevel3.module;[
+<!ENTITY % local.toclevel3.attrib "">
+<!ENTITY % toclevel3.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel3.element "INCLUDE">
+<![%toclevel3.element;[
+<!ELEMENT toclevel3 (tocentry+, toclevel4*)>
+<!--end of toclevel3.element-->]]>
+
+<!ENTITY % toclevel3.attlist "INCLUDE">
+<![%toclevel3.attlist;[
+<!ATTLIST toclevel3
+ %common.attrib;
+ %toclevel3.role.attrib;
+ %local.toclevel3.attrib;
+>
+<!--end of toclevel3.attlist-->]]>
+<!--end of toclevel3.module-->]]>
+
+<!ENTITY % toclevel4.module "INCLUDE">
+<![%toclevel4.module;[
+<!ENTITY % local.toclevel4.attrib "">
+<!ENTITY % toclevel4.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel4.element "INCLUDE">
+<![%toclevel4.element;[
+<!ELEMENT toclevel4 (tocentry+, toclevel5*)>
+<!--end of toclevel4.element-->]]>
+
+<!ENTITY % toclevel4.attlist "INCLUDE">
+<![%toclevel4.attlist;[
+<!ATTLIST toclevel4
+ %common.attrib;
+ %toclevel4.role.attrib;
+ %local.toclevel4.attrib;
+>
+<!--end of toclevel4.attlist-->]]>
+<!--end of toclevel4.module-->]]>
+
+<!ENTITY % toclevel5.module "INCLUDE">
+<![%toclevel5.module;[
+<!ENTITY % local.toclevel5.attrib "">
+<!ENTITY % toclevel5.role.attrib "%role.attrib;">
+
+<!ENTITY % toclevel5.element "INCLUDE">
+<![%toclevel5.element;[
+<!ELEMENT toclevel5 (tocentry+)>
+<!--end of toclevel5.element-->]]>
+
+<!ENTITY % toclevel5.attlist "INCLUDE">
+<![%toclevel5.attlist;[
+<!ATTLIST toclevel5
+ %common.attrib;
+ %toclevel5.role.attrib;
+ %local.toclevel5.attrib;
+>
+<!--end of toclevel5.attlist-->]]>
+<!--end of toclevel5.module-->]]>
+
+<!ENTITY % tocback.module "INCLUDE">
+<![%tocback.module;[
+<!ENTITY % local.tocback.attrib "">
+<!ENTITY % tocback.role.attrib "%role.attrib;">
+
+<!ENTITY % tocback.element "INCLUDE">
+<![%tocback.element;[
+<!ELEMENT tocback (%para.char.mix;)*>
+<!--end of tocback.element-->]]>
+
+<!-- to element that this entry represents -->
+
+
+<!ENTITY % tocback.attlist "INCLUDE">
+<![%tocback.attlist;[
+<!ATTLIST tocback
+ %label.attrib;
+ %linkend.attrib; %pagenum.attrib;
+ %common.attrib;
+ %tocback.role.attrib;
+ %local.tocback.attrib;
+>
+<!--end of tocback.attlist-->]]>
+<!--end of tocback.module-->]]>
+<!--end of toc.content.module-->]]>
+
+<!ENTITY % lot.content.module "INCLUDE">
+<![%lot.content.module;[
+<!ENTITY % lot.module "INCLUDE">
+<![%lot.module;[
+<!ENTITY % local.lot.attrib "">
+<!ENTITY % lot.role.attrib "%role.attrib;">
+
+<!ENTITY % lot.element "INCLUDE">
+<![%lot.element;[
+<!ELEMENT lot ((%bookcomponent.title.content;)?, lotentry*)>
+<!--end of lot.element-->]]>
+
+<!ENTITY % lot.attlist "INCLUDE">
+<![%lot.attlist;[
+<!ATTLIST lot
+ %label.attrib;
+ %common.attrib;
+ %lot.role.attrib;
+ %local.lot.attrib;
+>
+<!--end of lot.attlist-->]]>
+<!--end of lot.module-->]]>
+
+<!ENTITY % lotentry.module "INCLUDE">
+<![%lotentry.module;[
+<!ENTITY % local.lotentry.attrib "">
+<!ENTITY % lotentry.role.attrib "%role.attrib;">
+
+<!ENTITY % lotentry.element "INCLUDE">
+<![%lotentry.element;[
+<!ELEMENT lotentry (%para.char.mix;)*>
+<!--end of lotentry.element-->]]>
+
+<!-- SrcCredit: Information about the source of the entry,
+ as for a list of illustrations -->
+<!-- linkend: to element that this entry represents-->
+<!ENTITY % lotentry.attlist "INCLUDE">
+<![%lotentry.attlist;[
+<!ATTLIST lotentry
+ srccredit CDATA #IMPLIED
+ %pagenum.attrib;
+ %common.attrib;
+ %linkend.attrib;
+ %lotentry.role.attrib;
+ %local.lotentry.attrib;
+>
+<!--end of lotentry.attlist-->]]>
+<!--end of lotentry.module-->]]>
+<!--end of lot.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Appendix, Chapter, Part, Preface, Reference, PartIntro ............... -->
+
+<!ENTITY % appendix.module "INCLUDE">
+<![%appendix.module;[
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+
+<!ENTITY % appendix.element "INCLUDE">
+<![%appendix.element;[
+<!ELEMENT appendix (appendixinfo?,
+ (%bookcomponent.title.content;),
+ (%nav.class;)*,
+ tocchap?,
+ (%bookcomponent.content;),
+ (%nav.class;)*)>
+<!--end of appendix.element-->]]>
+
+<!ENTITY % appendix.attlist "INCLUDE">
+<![%appendix.attlist;[
+<!ATTLIST appendix
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %appendix.role.attrib;
+ %local.appendix.attrib;
+>
+<!--end of appendix.attlist-->]]>
+<!--end of appendix.module-->]]>
+
+<!ENTITY % chapter.module "INCLUDE">
+<![%chapter.module;[
+<!ENTITY % local.chapter.attrib "">
+<!ENTITY % chapter.role.attrib "%role.attrib;">
+
+<!ENTITY % chapter.element "INCLUDE">
+<![%chapter.element;[
+<!ELEMENT chapter (chapterinfo?,
+ (%bookcomponent.title.content;),
+ (%nav.class;)*,
+ tocchap?,
+ (%bookcomponent.content;),
+ (%nav.class;)*)>
+<!--end of chapter.element-->]]>
+
+<!ENTITY % chapter.attlist "INCLUDE">
+<![%chapter.attlist;[
+<!ATTLIST chapter
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %chapter.role.attrib;
+ %local.chapter.attrib;
+>
+<!--end of chapter.attlist-->]]>
+<!--end of chapter.module-->]]>
+
+<!ENTITY % part.module "INCLUDE">
+<![%part.module;[
+
+<!-- Note that Part was to have its content model reduced in V4.1.2. This
+change will not be made after all. -->
+
+<!ENTITY % local.part.attrib "">
+<!ENTITY % part.role.attrib "%role.attrib;">
+
+<!ENTITY % part.element "INCLUDE">
+<![%part.element;[
+<!ELEMENT part (partinfo?, (%bookcomponent.title.content;), partintro?,
+ (%partcontent.mix;)+)>
+<!--end of part.element-->]]>
+
+<!ENTITY % part.attlist "INCLUDE">
+<![%part.attlist;[
+<!ATTLIST part
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %part.role.attrib;
+ %local.part.attrib;
+>
+<!--end of part.attlist-->]]>
+<!--ELEMENT PartIntro (defined below)-->
+<!--end of part.module-->]]>
+
+<!ENTITY % preface.module "INCLUDE">
+<![%preface.module;[
+<!ENTITY % local.preface.attrib "">
+<!ENTITY % preface.role.attrib "%role.attrib;">
+
+<!ENTITY % preface.element "INCLUDE">
+<![%preface.element;[
+<!ELEMENT preface (prefaceinfo?,
+ (%bookcomponent.title.content;),
+ (%nav.class;)*,
+ tocchap?,
+ (%bookcomponent.content;),
+ (%nav.class;)*)>
+<!--end of preface.element-->]]>
+
+<!ENTITY % preface.attlist "INCLUDE">
+<![%preface.attlist;[
+<!ATTLIST preface
+ %status.attrib;
+ %common.attrib;
+ %preface.role.attrib;
+ %local.preface.attrib;
+>
+<!--end of preface.attlist-->]]>
+<!--end of preface.module-->]]>
+
+<!ENTITY % reference.module "INCLUDE">
+<![%reference.module;[
+<!ENTITY % local.reference.attrib "">
+<!ENTITY % reference.role.attrib "%role.attrib;">
+
+<!ENTITY % reference.element "INCLUDE">
+<![%reference.element;[
+<!ELEMENT reference (referenceinfo?,
+ (%bookcomponent.title.content;), partintro?,
+ (%refentry.class;)+)>
+<!--end of reference.element-->]]>
+
+<!ENTITY % reference.attlist "INCLUDE">
+<![%reference.attlist;[
+<!ATTLIST reference
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %reference.role.attrib;
+ %local.reference.attrib;
+>
+<!--end of reference.attlist-->]]>
+<!--ELEMENT PartIntro (defined below)-->
+<!--end of reference.module-->]]>
+
+<!ENTITY % partintro.module "INCLUDE">
+<![%partintro.module;[
+<!ENTITY % local.partintro.attrib "">
+<!ENTITY % partintro.role.attrib "%role.attrib;">
+
+<!ENTITY % partintro.element "INCLUDE">
+<![%partintro.element;[
+<!ELEMENT partintro ((%div.title.content;)?, (%bookcomponent.content;))>
+<!--end of partintro.element-->]]>
+
+<!ENTITY % partintro.attlist "INCLUDE">
+<![%partintro.attlist;[
+<!ATTLIST partintro
+ %label.attrib;
+ %common.attrib;
+ %local.partintro.attrib;
+ %partintro.role.attrib;
+>
+<!--end of partintro.attlist-->]]>
+<!--end of partintro.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Other Info elements .................................................. -->
+
+<!ENTITY % appendixinfo.module "INCLUDE">
+<![ %appendixinfo.module; [
+<!ENTITY % local.appendixinfo.attrib "">
+<!ENTITY % appendixinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % appendixinfo.element "INCLUDE">
+<![ %appendixinfo.element; [
+<!ELEMENT appendixinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of appendixinfo.element-->]]>
+
+<!ENTITY % appendixinfo.attlist "INCLUDE">
+<![ %appendixinfo.attlist; [
+<!ATTLIST appendixinfo
+ %common.attrib;
+ %appendixinfo.role.attrib;
+ %local.appendixinfo.attrib;
+>
+<!--end of appendixinfo.attlist-->]]>
+<!--end of appendixinfo.module-->]]>
+
+<!ENTITY % bibliographyinfo.module "INCLUDE">
+<![ %bibliographyinfo.module; [
+<!ENTITY % local.bibliographyinfo.attrib "">
+<!ENTITY % bibliographyinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliographyinfo.element "INCLUDE">
+<![ %bibliographyinfo.element; [
+<!ELEMENT bibliographyinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of bibliographyinfo.element-->]]>
+
+<!ENTITY % bibliographyinfo.attlist "INCLUDE">
+<![ %bibliographyinfo.attlist; [
+<!ATTLIST bibliographyinfo
+ %common.attrib;
+ %bibliographyinfo.role.attrib;
+ %local.bibliographyinfo.attrib;
+>
+<!--end of bibliographyinfo.attlist-->]]>
+<!--end of bibliographyinfo.module-->]]>
+
+<!ENTITY % chapterinfo.module "INCLUDE">
+<![ %chapterinfo.module; [
+<!ENTITY % local.chapterinfo.attrib "">
+<!ENTITY % chapterinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % chapterinfo.element "INCLUDE">
+<![ %chapterinfo.element; [
+<!ELEMENT chapterinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of chapterinfo.element-->]]>
+
+<!ENTITY % chapterinfo.attlist "INCLUDE">
+<![ %chapterinfo.attlist; [
+<!ATTLIST chapterinfo
+ %common.attrib;
+ %chapterinfo.role.attrib;
+ %local.chapterinfo.attrib;
+>
+<!--end of chapterinfo.attlist-->]]>
+<!--end of chapterinfo.module-->]]>
+
+<!ENTITY % glossaryinfo.module "INCLUDE">
+<![ %glossaryinfo.module; [
+<!ENTITY % local.glossaryinfo.attrib "">
+<!ENTITY % glossaryinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % glossaryinfo.element "INCLUDE">
+<![ %glossaryinfo.element; [
+<!ELEMENT glossaryinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of glossaryinfo.element-->]]>
+
+<!ENTITY % glossaryinfo.attlist "INCLUDE">
+<![ %glossaryinfo.attlist; [
+<!ATTLIST glossaryinfo
+ %common.attrib;
+ %glossaryinfo.role.attrib;
+ %local.glossaryinfo.attrib;
+>
+<!--end of glossaryinfo.attlist-->]]>
+<!--end of glossaryinfo.module-->]]>
+
+<!ENTITY % indexinfo.module "INCLUDE">
+<![ %indexinfo.module; [
+<!ENTITY % local.indexinfo.attrib "">
+<!ENTITY % indexinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % indexinfo.element "INCLUDE">
+<![ %indexinfo.element; [
+<!ELEMENT indexinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of indexinfo.element-->]]>
+
+<!ENTITY % indexinfo.attlist "INCLUDE">
+<![ %indexinfo.attlist; [
+<!ATTLIST indexinfo
+ %common.attrib;
+ %indexinfo.role.attrib;
+ %local.indexinfo.attrib;
+>
+<!--end of indexinfo.attlist-->]]>
+<!--end of indexinfo.module-->]]>
+
+<!ENTITY % setindexinfo.module "INCLUDE">
+<![ %setindexinfo.module; [
+<!ENTITY % local.setindexinfo.attrib "">
+<!ENTITY % setindexinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % setindexinfo.element "INCLUDE">
+<![ %setindexinfo.element; [
+<!ELEMENT setindexinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of setindexinfo.element-->]]>
+
+<!ENTITY % setindexinfo.attlist "INCLUDE">
+<![ %setindexinfo.attlist; [
+<!ATTLIST setindexinfo
+ %common.attrib;
+ %setindexinfo.role.attrib;
+ %local.setindexinfo.attrib;
+>
+<!--end of setindexinfo.attlist-->]]>
+<!--end of setindexinfo.module-->]]>
+
+<!ENTITY % partinfo.module "INCLUDE">
+<![ %partinfo.module; [
+<!ENTITY % local.partinfo.attrib "">
+<!ENTITY % partinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % partinfo.element "INCLUDE">
+<![ %partinfo.element; [
+<!ELEMENT partinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of partinfo.element-->]]>
+
+<!ENTITY % partinfo.attlist "INCLUDE">
+<![ %partinfo.attlist; [
+<!ATTLIST partinfo
+ %common.attrib;
+ %partinfo.role.attrib;
+ %local.partinfo.attrib;
+>
+<!--end of partinfo.attlist-->]]>
+<!--end of partinfo.module-->]]>
+
+<!ENTITY % prefaceinfo.module "INCLUDE">
+<![ %prefaceinfo.module; [
+<!ENTITY % local.prefaceinfo.attrib "">
+<!ENTITY % prefaceinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % prefaceinfo.element "INCLUDE">
+<![ %prefaceinfo.element; [
+<!ELEMENT prefaceinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of prefaceinfo.element-->]]>
+
+<!ENTITY % prefaceinfo.attlist "INCLUDE">
+<![ %prefaceinfo.attlist; [
+<!ATTLIST prefaceinfo
+ %common.attrib;
+ %prefaceinfo.role.attrib;
+ %local.prefaceinfo.attrib;
+>
+<!--end of prefaceinfo.attlist-->]]>
+<!--end of prefaceinfo.module-->]]>
+
+<!ENTITY % refentryinfo.module "INCLUDE">
+<![ %refentryinfo.module; [
+<!ENTITY % local.refentryinfo.attrib "">
+<!ENTITY % refentryinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refentryinfo.element "INCLUDE">
+<![ %refentryinfo.element; [
+<!ELEMENT refentryinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of refentryinfo.element-->]]>
+
+<!ENTITY % refentryinfo.attlist "INCLUDE">
+<![ %refentryinfo.attlist; [
+<!ATTLIST refentryinfo
+ %common.attrib;
+ %refentryinfo.role.attrib;
+ %local.refentryinfo.attrib;
+>
+<!--end of refentryinfo.attlist-->]]>
+<!--end of refentryinfo.module-->]]>
+
+<!ENTITY % refsect1info.module "INCLUDE">
+<![ %refsect1info.module; [
+<!ENTITY % local.refsect1info.attrib "">
+<!ENTITY % refsect1info.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect1info.element "INCLUDE">
+<![ %refsect1info.element; [
+<!ELEMENT refsect1info ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of refsect1info.element-->]]>
+
+<!ENTITY % refsect1info.attlist "INCLUDE">
+<![ %refsect1info.attlist; [
+<!ATTLIST refsect1info
+ %common.attrib;
+ %refsect1info.role.attrib;
+ %local.refsect1info.attrib;
+>
+<!--end of refsect1info.attlist-->]]>
+<!--end of refsect1info.module-->]]>
+
+<!ENTITY % refsect2info.module "INCLUDE">
+<![ %refsect2info.module; [
+<!ENTITY % local.refsect2info.attrib "">
+<!ENTITY % refsect2info.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect2info.element "INCLUDE">
+<![ %refsect2info.element; [
+<!ELEMENT refsect2info ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of refsect2info.element-->]]>
+
+<!ENTITY % refsect2info.attlist "INCLUDE">
+<![ %refsect2info.attlist; [
+<!ATTLIST refsect2info
+ %common.attrib;
+ %refsect2info.role.attrib;
+ %local.refsect2info.attrib;
+>
+<!--end of refsect2info.attlist-->]]>
+<!--end of refsect2info.module-->]]>
+
+<!ENTITY % refsect3info.module "INCLUDE">
+<![ %refsect3info.module; [
+<!ENTITY % local.refsect3info.attrib "">
+<!ENTITY % refsect3info.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect3info.element "INCLUDE">
+<![ %refsect3info.element; [
+<!ELEMENT refsect3info ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of refsect3info.element-->]]>
+
+<!ENTITY % refsect3info.attlist "INCLUDE">
+<![ %refsect3info.attlist; [
+<!ATTLIST refsect3info
+ %common.attrib;
+ %refsect3info.role.attrib;
+ %local.refsect3info.attrib;
+>
+<!--end of refsect3info.attlist-->]]>
+<!--end of refsect3info.module-->]]>
+
+<!ENTITY % refsynopsisdivinfo.module "INCLUDE">
+<![ %refsynopsisdivinfo.module; [
+<!ENTITY % local.refsynopsisdivinfo.attrib "">
+<!ENTITY % refsynopsisdivinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refsynopsisdivinfo.element "INCLUDE">
+<![ %refsynopsisdivinfo.element; [
+<!ELEMENT refsynopsisdivinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of refsynopsisdivinfo.element-->]]>
+
+<!ENTITY % refsynopsisdivinfo.attlist "INCLUDE">
+<![ %refsynopsisdivinfo.attlist; [
+<!ATTLIST refsynopsisdivinfo
+ %common.attrib;
+ %refsynopsisdivinfo.role.attrib;
+ %local.refsynopsisdivinfo.attrib;
+>
+<!--end of refsynopsisdivinfo.attlist-->]]>
+<!--end of refsynopsisdivinfo.module-->]]>
+
+<!ENTITY % referenceinfo.module "INCLUDE">
+<![ %referenceinfo.module; [
+<!ENTITY % local.referenceinfo.attrib "">
+<!ENTITY % referenceinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % referenceinfo.element "INCLUDE">
+<![ %referenceinfo.element; [
+<!ELEMENT referenceinfo ((graphic | mediaobject
+ | legalnotice | modespec
+ | subjectset | keywordset | itermset
+ | %bibliocomponent.mix;)+)>
+<!--end of referenceinfo.element-->]]>
+
+<!ENTITY % referenceinfo.attlist "INCLUDE">
+<![ %referenceinfo.attlist; [
+<!ATTLIST referenceinfo
+ %common.attrib;
+ %referenceinfo.role.attrib;
+ %local.referenceinfo.attrib;
+>
+<!--end of referenceinfo.attlist-->]]>
+<!--end of referenceinfo.module-->]]>
+
+<!ENTITY % local.sect1info.attrib "">
+<!ENTITY % sect1info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect1info.element "INCLUDE">
+<![%sect1info.element;[
+<!ELEMENT sect1info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect1info.element-->]]>
+
+<!ENTITY % sect1info.attlist "INCLUDE">
+<![%sect1info.attlist;[
+<!ATTLIST sect1info
+ %common.attrib;
+ %sect1info.role.attrib;
+ %local.sect1info.attrib;
+>
+<!--end of sect1info.attlist-->]]>
+
+<!ENTITY % local.sect2info.attrib "">
+<!ENTITY % sect2info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect2info.element "INCLUDE">
+<![%sect2info.element;[
+<!ELEMENT sect2info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect2info.element-->]]>
+
+<!ENTITY % sect2info.attlist "INCLUDE">
+<![%sect2info.attlist;[
+<!ATTLIST sect2info
+ %common.attrib;
+ %sect2info.role.attrib;
+ %local.sect2info.attrib;
+>
+<!--end of sect2info.attlist-->]]>
+
+<!ENTITY % local.sect3info.attrib "">
+<!ENTITY % sect3info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect3info.element "INCLUDE">
+<![%sect3info.element;[
+<!ELEMENT sect3info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect3info.element-->]]>
+
+<!ENTITY % sect3info.attlist "INCLUDE">
+<![%sect3info.attlist;[
+<!ATTLIST sect3info
+ %common.attrib;
+ %sect3info.role.attrib;
+ %local.sect3info.attrib;
+>
+<!--end of sect3info.attlist-->]]>
+
+<!ENTITY % local.sect4info.attrib "">
+<!ENTITY % sect4info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect4info.element "INCLUDE">
+<![%sect4info.element;[
+<!ELEMENT sect4info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect4info.element-->]]>
+
+<!ENTITY % sect4info.attlist "INCLUDE">
+<![%sect4info.attlist;[
+<!ATTLIST sect4info
+ %common.attrib;
+ %sect4info.role.attrib;
+ %local.sect4info.attrib;
+>
+<!--end of sect4info.attlist-->]]>
+
+<!ENTITY % local.sect5info.attrib "">
+<!ENTITY % sect5info.role.attrib "%role.attrib;">
+
+<!ENTITY % sect5info.element "INCLUDE">
+<![%sect5info.element;[
+<!ELEMENT sect5info ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sect5info.element-->]]>
+
+<!ENTITY % sect5info.attlist "INCLUDE">
+<![%sect5info.attlist;[
+<!ATTLIST sect5info
+ %common.attrib;
+ %sect5info.role.attrib;
+ %local.sect5info.attrib;
+>
+<!--end of sect5info.attlist-->]]>
+
+<!-- ...................................................................... -->
+<!-- Section (parallel to Sect*) ......................................... -->
+
+<!ENTITY % section.content.module "INCLUDE">
+<![ %section.content.module; [
+<!ENTITY % section.module "INCLUDE">
+<![ %section.module; [
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+
+<!ENTITY % section.element "INCLUDE">
+<![ %section.element; [
+<!ELEMENT section (sectioninfo?,
+ (%sect.title.content;),
+ (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)*|section*))
+ | (%refentry.class;)+|section+),
+ (%nav.class;)*)>
+<!--end of section.element-->]]>
+
+<!ENTITY % section.attlist "INCLUDE">
+<![ %section.attlist; [
+<!ATTLIST section
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %section.role.attrib;
+ %local.section.attrib;
+>
+<!--end of section.attlist-->]]>
+<!--end of section.module-->]]>
+
+<!ENTITY % sectioninfo.module "INCLUDE">
+<![ %sectioninfo.module; [
+<!ENTITY % sectioninfo.role.attrib "%role.attrib;">
+<!ENTITY % local.sectioninfo.attrib "">
+
+<!ENTITY % sectioninfo.element "INCLUDE">
+<![ %sectioninfo.element; [
+<!ELEMENT sectioninfo ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sectioninfo.element-->]]>
+
+<!ENTITY % sectioninfo.attlist "INCLUDE">
+<![ %sectioninfo.attlist; [
+<!ATTLIST sectioninfo
+ %common.attrib;
+ %sectioninfo.role.attrib;
+ %local.sectioninfo.attrib;
+>
+<!--end of sectioninfo.attlist-->]]>
+<!--end of sectioninfo.module-->]]>
+<!--end of section.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Sect1, Sect2, Sect3, Sect4, Sect5 .................................... -->
+
+<!ENTITY % sect1.module "INCLUDE">
+<![%sect1.module;[
+<!ENTITY % local.sect1.attrib "">
+<!ENTITY % sect1.role.attrib "%role.attrib;">
+
+<!ENTITY % sect1.element "INCLUDE">
+<![%sect1.element;[
+<!ELEMENT sect1 (sect1info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)* | sect2* | simplesect*))
+ | (%refentry.class;)+ | sect2+ | simplesect+), (%nav.class;)*)>
+<!--end of sect1.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect1.attlist "INCLUDE">
+<![%sect1.attlist;[
+<!ATTLIST sect1
+ renderas (sect2
+ |sect3
+ |sect4
+ |sect5) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect1.role.attrib;
+ %local.sect1.attrib;
+>
+<!--end of sect1.attlist-->]]>
+<!--end of sect1.module-->]]>
+
+<!ENTITY % sect2.module "INCLUDE">
+<![%sect2.module;[
+<!ENTITY % local.sect2.attrib "">
+<!ENTITY % sect2.role.attrib "%role.attrib;">
+
+<!ENTITY % sect2.element "INCLUDE">
+<![%sect2.element;[
+<!ELEMENT sect2 (sect2info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)* | sect3* | simplesect*))
+ | (%refentry.class;)+ | sect3+ | simplesect+), (%nav.class;)*)>
+<!--end of sect2.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect2.attlist "INCLUDE">
+<![%sect2.attlist;[
+<!ATTLIST sect2
+ renderas (sect1
+ |sect3
+ |sect4
+ |sect5) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect2.role.attrib;
+ %local.sect2.attrib;
+>
+<!--end of sect2.attlist-->]]>
+<!--end of sect2.module-->]]>
+
+<!ENTITY % sect3.module "INCLUDE">
+<![%sect3.module;[
+<!ENTITY % local.sect3.attrib "">
+<!ENTITY % sect3.role.attrib "%role.attrib;">
+
+<!ENTITY % sect3.element "INCLUDE">
+<![%sect3.element;[
+<!ELEMENT sect3 (sect3info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)* | sect4* | simplesect*))
+ | (%refentry.class;)+ | sect4+ | simplesect+), (%nav.class;)*)>
+<!--end of sect3.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect3.attlist "INCLUDE">
+<![%sect3.attlist;[
+<!ATTLIST sect3
+ renderas (sect1
+ |sect2
+ |sect4
+ |sect5) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect3.role.attrib;
+ %local.sect3.attrib;
+>
+<!--end of sect3.attlist-->]]>
+<!--end of sect3.module-->]]>
+
+<!ENTITY % sect4.module "INCLUDE">
+<![%sect4.module;[
+<!ENTITY % local.sect4.attrib "">
+<!ENTITY % sect4.role.attrib "%role.attrib;">
+
+<!ENTITY % sect4.element "INCLUDE">
+<![%sect4.element;[
+<!ELEMENT sect4 (sect4info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+,
+ ((%refentry.class;)* | sect5* | simplesect*))
+ | (%refentry.class;)+ | sect5+ | simplesect+), (%nav.class;)*)>
+<!--end of sect4.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect4.attlist "INCLUDE">
+<![%sect4.attlist;[
+<!ATTLIST sect4
+ renderas (sect1
+ |sect2
+ |sect3
+ |sect5) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect4.role.attrib;
+ %local.sect4.attrib;
+>
+<!--end of sect4.attlist-->]]>
+<!--end of sect4.module-->]]>
+
+<!ENTITY % sect5.module "INCLUDE">
+<![%sect5.module;[
+<!ENTITY % local.sect5.attrib "">
+<!ENTITY % sect5.role.attrib "%role.attrib;">
+
+<!ENTITY % sect5.element "INCLUDE">
+<![%sect5.element;[
+<!ELEMENT sect5 (sect5info?, (%sect.title.content;), (%nav.class;)*,
+ (((%divcomponent.mix;)+, ((%refentry.class;)* | simplesect*))
+ | (%refentry.class;)+ | simplesect+), (%nav.class;)*)>
+<!--end of sect5.element-->]]>
+
+<!-- Renderas: Indicates the format in which the heading should
+ appear -->
+
+
+<!ENTITY % sect5.attlist "INCLUDE">
+<![%sect5.attlist;[
+<!ATTLIST sect5
+ renderas (sect1
+ |sect2
+ |sect3
+ |sect4) #IMPLIED
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %sect5.role.attrib;
+ %local.sect5.attrib;
+>
+<!--end of sect5.attlist-->]]>
+<!--end of sect5.module-->]]>
+
+<!ENTITY % simplesect.module "INCLUDE">
+<![%simplesect.module;[
+<!ENTITY % local.simplesect.attrib "">
+<!ENTITY % simplesect.role.attrib "%role.attrib;">
+
+<!ENTITY % simplesect.element "INCLUDE">
+<![%simplesect.element;[
+<!ELEMENT simplesect ((%sect.title.content;), (%divcomponent.mix;)+)>
+<!--end of simplesect.element-->]]>
+
+<!ENTITY % simplesect.attlist "INCLUDE">
+<![%simplesect.attlist;[
+<!ATTLIST simplesect
+ %common.attrib;
+ %simplesect.role.attrib;
+ %local.simplesect.attrib;
+>
+<!--end of simplesect.attlist-->]]>
+<!--end of simplesect.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Bibliography ......................................................... -->
+
+<!ENTITY % bibliography.content.module "INCLUDE">
+<![%bibliography.content.module;[
+<!ENTITY % bibliography.module "INCLUDE">
+<![%bibliography.module;[
+<!ENTITY % local.bibliography.attrib "">
+<!ENTITY % bibliography.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliography.element "INCLUDE">
+<![%bibliography.element;[
+<!ELEMENT bibliography (bibliographyinfo?,
+ (%bookcomponent.title.content;)?,
+ (%component.mix;)*,
+ (bibliodiv+ | (biblioentry|bibliomixed)+))>
+<!--end of bibliography.element-->]]>
+
+<!ENTITY % bibliography.attlist "INCLUDE">
+<![%bibliography.attlist;[
+<!ATTLIST bibliography
+ %status.attrib;
+ %common.attrib;
+ %bibliography.role.attrib;
+ %local.bibliography.attrib;
+>
+<!--end of bibliography.attlist-->]]>
+<!--end of bibliography.module-->]]>
+
+<!ENTITY % bibliodiv.module "INCLUDE">
+<![%bibliodiv.module;[
+<!ENTITY % local.bibliodiv.attrib "">
+<!ENTITY % bibliodiv.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliodiv.element "INCLUDE">
+<![%bibliodiv.element;[
+<!ELEMENT bibliodiv ((%sect.title.content;)?, (%component.mix;)*,
+ (biblioentry|bibliomixed)+)>
+<!--end of bibliodiv.element-->]]>
+
+<!ENTITY % bibliodiv.attlist "INCLUDE">
+<![%bibliodiv.attlist;[
+<!ATTLIST bibliodiv
+ %status.attrib;
+ %common.attrib;
+ %bibliodiv.role.attrib;
+ %local.bibliodiv.attrib;
+>
+<!--end of bibliodiv.attlist-->]]>
+<!--end of bibliodiv.module-->]]>
+<!--end of bibliography.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Glossary ............................................................. -->
+
+<!ENTITY % glossary.content.module "INCLUDE">
+<![%glossary.content.module;[
+<!ENTITY % glossary.module "INCLUDE">
+<![%glossary.module;[
+<!ENTITY % local.glossary.attrib "">
+<!ENTITY % glossary.role.attrib "%role.attrib;">
+
+<!ENTITY % glossary.element "INCLUDE">
+<![%glossary.element;[
+<!ELEMENT glossary (glossaryinfo?,
+ (%bookcomponent.title.content;)?,
+ (%component.mix;)*,
+ (glossdiv+ | glossentry+), bibliography?)>
+<!--end of glossary.element-->]]>
+
+<!ENTITY % glossary.attlist "INCLUDE">
+<![%glossary.attlist;[
+<!ATTLIST glossary
+ %status.attrib;
+ %common.attrib;
+ %glossary.role.attrib;
+ %local.glossary.attrib;
+>
+<!--end of glossary.attlist-->]]>
+<!--end of glossary.module-->]]>
+
+<!ENTITY % glossdiv.module "INCLUDE">
+<![%glossdiv.module;[
+<!ENTITY % local.glossdiv.attrib "">
+<!ENTITY % glossdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % glossdiv.element "INCLUDE">
+<![%glossdiv.element;[
+<!ELEMENT glossdiv ((%sect.title.content;), (%component.mix;)*,
+ glossentry+)>
+<!--end of glossdiv.element-->]]>
+
+<!ENTITY % glossdiv.attlist "INCLUDE">
+<![%glossdiv.attlist;[
+<!ATTLIST glossdiv
+ %status.attrib;
+ %common.attrib;
+ %glossdiv.role.attrib;
+ %local.glossdiv.attrib;
+>
+<!--end of glossdiv.attlist-->]]>
+<!--end of glossdiv.module-->]]>
+<!--end of glossary.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Index and SetIndex ................................................... -->
+
+<!ENTITY % index.content.module "INCLUDE">
+<![%index.content.module;[
+<!ENTITY % indexes.module "INCLUDE">
+<![%indexes.module;[
+<!ENTITY % local.indexes.attrib "">
+<!ENTITY % indexes.role.attrib "%role.attrib;">
+
+<!ENTITY % index.element "INCLUDE">
+<![%index.element;[
+<!ELEMENT index (indexinfo?,
+ (%bookcomponent.title.content;)?,
+ (%component.mix;)*,
+ (indexdiv* | indexentry*))>
+<!--end of index.element-->]]>
+
+<!ENTITY % index.attlist "INCLUDE">
+<![%index.attlist;[
+<!ATTLIST index
+ %common.attrib;
+ %indexes.role.attrib;
+ %local.indexes.attrib;
+>
+<!--end of index.attlist-->]]>
+
+<!ENTITY % setindex.element "INCLUDE">
+<![%setindex.element;[
+<!ELEMENT setindex (setindexinfo?,
+ (%bookcomponent.title.content;)?,
+ (%component.mix;)*, (indexdiv* | indexentry*))>
+<!--end of setindex.element-->]]>
+
+<!ENTITY % setindex.attlist "INCLUDE">
+<![%setindex.attlist;[
+<!ATTLIST setindex
+ %common.attrib;
+ %indexes.role.attrib;
+ %local.indexes.attrib;
+>
+<!--end of setindex.attlist-->]]>
+<!--end of indexes.module-->]]>
+
+<!ENTITY % indexdiv.module "INCLUDE">
+<![%indexdiv.module;[
+
+<!-- SegmentedList in this content is useful for marking up permuted
+ indices. -->
+
+<!ENTITY % local.indexdiv.attrib "">
+<!ENTITY % indexdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % indexdiv.element "INCLUDE">
+<![%indexdiv.element;[
+<!ELEMENT indexdiv ((%sect.title.content;)?, ((%indexdivcomponent.mix;)*,
+ (indexentry+ | segmentedlist)))>
+<!--end of indexdiv.element-->]]>
+
+<!ENTITY % indexdiv.attlist "INCLUDE">
+<![%indexdiv.attlist;[
+<!ATTLIST indexdiv
+ %common.attrib;
+ %indexdiv.role.attrib;
+ %local.indexdiv.attrib;
+>
+<!--end of indexdiv.attlist-->]]>
+<!--end of indexdiv.module-->]]>
+
+<!ENTITY % indexentry.module "INCLUDE">
+<![%indexentry.module;[
+<!-- Index entries appear in the index, not the text. -->
+
+<!ENTITY % local.indexentry.attrib "">
+<!ENTITY % indexentry.role.attrib "%role.attrib;">
+
+<!ENTITY % indexentry.element "INCLUDE">
+<![%indexentry.element;[
+<!ELEMENT indexentry (primaryie, (seeie|seealsoie)*,
+ (secondaryie, (seeie|seealsoie|tertiaryie)*)*)>
+<!--end of indexentry.element-->]]>
+
+<!ENTITY % indexentry.attlist "INCLUDE">
+<![%indexentry.attlist;[
+<!ATTLIST indexentry
+ %common.attrib;
+ %indexentry.role.attrib;
+ %local.indexentry.attrib;
+>
+<!--end of indexentry.attlist-->]]>
+<!--end of indexentry.module-->]]>
+
+<!ENTITY % primsecterie.module "INCLUDE">
+<![%primsecterie.module;[
+<!ENTITY % local.primsecterie.attrib "">
+<!ENTITY % primsecterie.role.attrib "%role.attrib;">
+
+<!ENTITY % primaryie.element "INCLUDE">
+<![%primaryie.element;[
+<!ELEMENT primaryie (%ndxterm.char.mix;)*>
+<!--end of primaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % primaryie.attlist "INCLUDE">
+<![%primaryie.attlist;[
+<!ATTLIST primaryie
+ %linkends.attrib; %common.attrib;
+ %primsecterie.role.attrib;
+ %local.primsecterie.attrib;
+>
+<!--end of primaryie.attlist-->]]>
+
+<!ENTITY % secondaryie.element "INCLUDE">
+<![%secondaryie.element;[
+<!ELEMENT secondaryie (%ndxterm.char.mix;)*>
+<!--end of secondaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % secondaryie.attlist "INCLUDE">
+<![%secondaryie.attlist;[
+<!ATTLIST secondaryie
+ %linkends.attrib; %common.attrib;
+ %primsecterie.role.attrib;
+ %local.primsecterie.attrib;
+>
+<!--end of secondaryie.attlist-->]]>
+
+<!ENTITY % tertiaryie.element "INCLUDE">
+<![%tertiaryie.element;[
+<!ELEMENT tertiaryie (%ndxterm.char.mix;)*>
+<!--end of tertiaryie.element-->]]>
+
+<!-- to IndexTerms that these entries represent -->
+
+<!ENTITY % tertiaryie.attlist "INCLUDE">
+<![%tertiaryie.attlist;[
+<!ATTLIST tertiaryie
+ %linkends.attrib; %common.attrib;
+ %primsecterie.role.attrib;
+ %local.primsecterie.attrib;
+>
+<!--end of tertiaryie.attlist-->]]>
+
+<!--end of primsecterie.module-->]]>
+
+<!ENTITY % seeie.module "INCLUDE">
+<![%seeie.module;[
+<!ENTITY % local.seeie.attrib "">
+<!ENTITY % seeie.role.attrib "%role.attrib;">
+
+<!ENTITY % seeie.element "INCLUDE">
+<![%seeie.element;[
+<!ELEMENT seeie (%ndxterm.char.mix;)*>
+<!--end of seeie.element-->]]>
+
+<!-- to IndexEntry to look up -->
+
+
+<!ENTITY % seeie.attlist "INCLUDE">
+<![%seeie.attlist;[
+<!ATTLIST seeie
+ %linkend.attrib; %common.attrib;
+ %seeie.role.attrib;
+ %local.seeie.attrib;
+>
+<!--end of seeie.attlist-->]]>
+<!--end of seeie.module-->]]>
+
+<!ENTITY % seealsoie.module "INCLUDE">
+<![%seealsoie.module;[
+<!ENTITY % local.seealsoie.attrib "">
+<!ENTITY % seealsoie.role.attrib "%role.attrib;">
+
+<!ENTITY % seealsoie.element "INCLUDE">
+<![%seealsoie.element;[
+<!ELEMENT seealsoie (%ndxterm.char.mix;)*>
+<!--end of seealsoie.element-->]]>
+
+<!-- to related IndexEntries -->
+
+
+<!ENTITY % seealsoie.attlist "INCLUDE">
+<![%seealsoie.attlist;[
+<!ATTLIST seealsoie
+ %linkends.attrib; %common.attrib;
+ %seealsoie.role.attrib;
+ %local.seealsoie.attrib;
+>
+<!--end of seealsoie.attlist-->]]>
+<!--end of seealsoie.module-->]]>
+<!--end of index.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- RefEntry ............................................................. -->
+
+<!ENTITY % refentry.content.module "INCLUDE">
+<![%refentry.content.module;[
+<!ENTITY % refentry.module "INCLUDE">
+<![%refentry.module;[
+<!ENTITY % local.refentry.attrib "">
+<!ENTITY % refentry.role.attrib "%role.attrib;">
+
+<!ENTITY % refentry.element "INCLUDE">
+<![%refentry.element;[
+<!ELEMENT refentry ((%ndxterm.class;)*,
+ refentryinfo?, refmeta?, (remark|%link.char.class;)*,
+ refnamediv, refsynopsisdiv?, refsect1+)>
+<!--end of refentry.element-->]]>
+
+<!ENTITY % refentry.attlist "INCLUDE">
+<![%refentry.attlist;[
+<!ATTLIST refentry
+ %status.attrib;
+ %common.attrib;
+ %refentry.role.attrib;
+ %local.refentry.attrib;
+>
+<!--end of refentry.attlist-->]]>
+<!--end of refentry.module-->]]>
+
+<!ENTITY % refmeta.module "INCLUDE">
+<![%refmeta.module;[
+<!ENTITY % local.refmeta.attrib "">
+<!ENTITY % refmeta.role.attrib "%role.attrib;">
+
+<!ENTITY % refmeta.element "INCLUDE">
+<![%refmeta.element;[
+<!ELEMENT refmeta ((%ndxterm.class;)*,
+ refentrytitle, manvolnum?, refmiscinfo*,
+ (%ndxterm.class;)*)>
+<!--end of refmeta.element-->]]>
+
+<!ENTITY % refmeta.attlist "INCLUDE">
+<![%refmeta.attlist;[
+<!ATTLIST refmeta
+ %common.attrib;
+ %refmeta.role.attrib;
+ %local.refmeta.attrib;
+>
+<!--end of refmeta.attlist-->]]>
+<!--end of refmeta.module-->]]>
+
+<!ENTITY % refmiscinfo.module "INCLUDE">
+<![%refmiscinfo.module;[
+<!ENTITY % local.refmiscinfo.attrib "">
+<!ENTITY % refmiscinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % refmiscinfo.element "INCLUDE">
+<![%refmiscinfo.element;[
+<!ELEMENT refmiscinfo (%docinfo.char.mix;)*>
+<!--end of refmiscinfo.element-->]]>
+
+<!-- Class: Freely assignable parameter; no default -->
+
+
+<!ENTITY % refmiscinfo.attlist "INCLUDE">
+<![%refmiscinfo.attlist;[
+<!ATTLIST refmiscinfo
+ class CDATA #IMPLIED
+ %common.attrib;
+ %refmiscinfo.role.attrib;
+ %local.refmiscinfo.attrib;
+>
+<!--end of refmiscinfo.attlist-->]]>
+<!--end of refmiscinfo.module-->]]>
+
+<!ENTITY % refnamediv.module "INCLUDE">
+<![%refnamediv.module;[
+<!ENTITY % local.refnamediv.attrib "">
+<!ENTITY % refnamediv.role.attrib "%role.attrib;">
+
+<!ENTITY % refnamediv.element "INCLUDE">
+<![%refnamediv.element;[
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+ (remark|%link.char.class;)*)>
+<!--end of refnamediv.element-->]]>
+
+<!ENTITY % refnamediv.attlist "INCLUDE">
+<![%refnamediv.attlist;[
+<!ATTLIST refnamediv
+ %common.attrib;
+ %refnamediv.role.attrib;
+ %local.refnamediv.attrib;
+>
+<!--end of refnamediv.attlist-->]]>
+<!--end of refnamediv.module-->]]>
+
+<!ENTITY % refdescriptor.module "INCLUDE">
+<![%refdescriptor.module;[
+<!ENTITY % local.refdescriptor.attrib "">
+<!ENTITY % refdescriptor.role.attrib "%role.attrib;">
+
+<!ENTITY % refdescriptor.element "INCLUDE">
+<![%refdescriptor.element;[
+<!ELEMENT refdescriptor (%refname.char.mix;)*>
+<!--end of refdescriptor.element-->]]>
+
+<!ENTITY % refdescriptor.attlist "INCLUDE">
+<![%refdescriptor.attlist;[
+<!ATTLIST refdescriptor
+ %common.attrib;
+ %refdescriptor.role.attrib;
+ %local.refdescriptor.attrib;
+>
+<!--end of refdescriptor.attlist-->]]>
+<!--end of refdescriptor.module-->]]>
+
+<!ENTITY % refname.module "INCLUDE">
+<![%refname.module;[
+<!ENTITY % local.refname.attrib "">
+<!ENTITY % refname.role.attrib "%role.attrib;">
+
+<!ENTITY % refname.element "INCLUDE">
+<![%refname.element;[
+<!ELEMENT refname (%refname.char.mix;)*>
+<!--end of refname.element-->]]>
+
+<!ENTITY % refname.attlist "INCLUDE">
+<![%refname.attlist;[
+<!ATTLIST refname
+ %common.attrib;
+ %refname.role.attrib;
+ %local.refname.attrib;
+>
+<!--end of refname.attlist-->]]>
+<!--end of refname.module-->]]>
+
+<!ENTITY % refpurpose.module "INCLUDE">
+<![%refpurpose.module;[
+<!ENTITY % local.refpurpose.attrib "">
+<!ENTITY % refpurpose.role.attrib "%role.attrib;">
+
+<!ENTITY % refpurpose.element "INCLUDE">
+<![%refpurpose.element;[
+<!ELEMENT refpurpose (%refinline.char.mix;)*>
+<!--end of refpurpose.element-->]]>
+
+<!ENTITY % refpurpose.attlist "INCLUDE">
+<![%refpurpose.attlist;[
+<!ATTLIST refpurpose
+ %common.attrib;
+ %refpurpose.role.attrib;
+ %local.refpurpose.attrib;
+>
+<!--end of refpurpose.attlist-->]]>
+<!--end of refpurpose.module-->]]>
+
+<!ENTITY % refclass.module "INCLUDE">
+<![%refclass.module;[
+<!ENTITY % local.refclass.attrib "">
+<!ENTITY % refclass.role.attrib "%role.attrib;">
+
+<!ENTITY % refclass.element "INCLUDE">
+<![%refclass.element;[
+<!ELEMENT refclass (%refclass.char.mix;)*>
+<!--end of refclass.element-->]]>
+
+<!ENTITY % refclass.attlist "INCLUDE">
+<![%refclass.attlist;[
+<!ATTLIST refclass
+ %common.attrib;
+ %refclass.role.attrib;
+ %local.refclass.attrib;
+>
+<!--end of refclass.attlist-->]]>
+<!--end of refclass.module-->]]>
+
+<!ENTITY % refsynopsisdiv.module "INCLUDE">
+<![%refsynopsisdiv.module;[
+<!ENTITY % local.refsynopsisdiv.attrib "">
+<!ENTITY % refsynopsisdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % refsynopsisdiv.element "INCLUDE">
+<![%refsynopsisdiv.element;[
+<!ELEMENT refsynopsisdiv (refsynopsisdivinfo?, (%refsect.title.content;)?,
+ (((%refcomponent.mix;)+, refsect2*) | (refsect2+)))>
+<!--end of refsynopsisdiv.element-->]]>
+
+<!ENTITY % refsynopsisdiv.attlist "INCLUDE">
+<![%refsynopsisdiv.attlist;[
+<!ATTLIST refsynopsisdiv
+ %common.attrib;
+ %refsynopsisdiv.role.attrib;
+ %local.refsynopsisdiv.attrib;
+>
+<!--end of refsynopsisdiv.attlist-->]]>
+<!--end of refsynopsisdiv.module-->]]>
+
+<!ENTITY % refsect1.module "INCLUDE">
+<![%refsect1.module;[
+<!ENTITY % local.refsect1.attrib "">
+<!ENTITY % refsect1.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect1.element "INCLUDE">
+<![%refsect1.element;[
+<!ELEMENT refsect1 (refsect1info?, (%refsect.title.content;),
+ (((%refcomponent.mix;)+, refsect2*) | refsect2+))>
+<!--end of refsect1.element-->]]>
+
+<!ENTITY % refsect1.attlist "INCLUDE">
+<![%refsect1.attlist;[
+<!ATTLIST refsect1
+ %status.attrib;
+ %common.attrib;
+ %refsect1.role.attrib;
+ %local.refsect1.attrib;
+>
+<!--end of refsect1.attlist-->]]>
+<!--end of refsect1.module-->]]>
+
+<!ENTITY % refsect2.module "INCLUDE">
+<![%refsect2.module;[
+<!ENTITY % local.refsect2.attrib "">
+<!ENTITY % refsect2.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect2.element "INCLUDE">
+<![%refsect2.element;[
+<!ELEMENT refsect2 (refsect2info?, (%refsect.title.content;),
+ (((%refcomponent.mix;)+, refsect3*) | refsect3+))>
+<!--end of refsect2.element-->]]>
+
+<!ENTITY % refsect2.attlist "INCLUDE">
+<![%refsect2.attlist;[
+<!ATTLIST refsect2
+ %status.attrib;
+ %common.attrib;
+ %refsect2.role.attrib;
+ %local.refsect2.attrib;
+>
+<!--end of refsect2.attlist-->]]>
+<!--end of refsect2.module-->]]>
+
+<!ENTITY % refsect3.module "INCLUDE">
+<![%refsect3.module;[
+<!ENTITY % local.refsect3.attrib "">
+<!ENTITY % refsect3.role.attrib "%role.attrib;">
+
+<!ENTITY % refsect3.element "INCLUDE">
+<![%refsect3.element;[
+<!ELEMENT refsect3 (refsect3info?, (%refsect.title.content;),
+ (%refcomponent.mix;)+)>
+<!--end of refsect3.element-->]]>
+
+<!ENTITY % refsect3.attlist "INCLUDE">
+<![%refsect3.attlist;[
+<!ATTLIST refsect3
+ %status.attrib;
+ %common.attrib;
+ %refsect3.role.attrib;
+ %local.refsect3.attrib;
+>
+<!--end of refsect3.attlist-->]]>
+<!--end of refsect3.module-->]]>
+<!--end of refentry.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Article .............................................................. -->
+
+<!ENTITY % article.module "INCLUDE">
+<![%article.module;[
+<!-- An Article is a chapter-level, stand-alone document that is often,
+ but need not be, collected into a Book. -->
+
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+
+<!ENTITY % article.element "INCLUDE">
+<![%article.element;[
+<!ELEMENT article ((%div.title.content;)?, articleinfo?, tocchap?, lot*,
+ (%bookcomponent.content;),
+ ((%nav.class;) | (%appendix.class;) | ackno)*)>
+<!--end of article.element-->]]>
+
+<!-- Class: Indicates the type of a particular article;
+ all articles have the same structure and general purpose.
+ No default. -->
+<!-- ParentBook: ID of the enclosing Book -->
+
+
+<!ENTITY % article.attlist "INCLUDE">
+<![%article.attlist;[
+<!ATTLIST article
+ class (journalarticle
+ |productsheet
+ |whitepaper
+ |techreport
+ |specification
+ |faq) #IMPLIED
+ parentbook IDREF #IMPLIED
+ %status.attrib;
+ %common.attrib;
+ %article.role.attrib;
+ %local.article.attrib;
+>
+<!--end of article.attlist-->]]>
+<!--end of article.module-->]]>
+
+<!-- End of DocBook XML document hierarchy module V4.1.2 .................... -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/4.1.2/dbnotnx.mod b/tests/docbook/dtd/4.1.2/dbnotnx.mod
new file mode 100755
index 00000000..ef0d4378
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/dbnotnx.mod
@@ -0,0 +1,97 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML notations module V4.1.2 .................................... -->
+<!-- File dbnotnx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, and the Organization for the Advancement
+ of Structured Information Standards (OASIS).
+
+ $Id$
+
+ Permission to use, copy, modify and distribute the DocBook XML DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the entity declarations for the standard ISO
+ entity sets used by DocBook.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbnotn PUBLIC
+ "-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN"
+ "dbnotnx.mod">
+ %dbnotn;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+ "BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+ | EPS | EQN | FAX | GIF | GIF87a | GIF89a
+ | JPG | JPEG | IGES | PCX
+ | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+ | linespecific
+ %local.notation.class;">
+
+<!NOTATION BMP PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF SYSTEM "DITROFF">
+<!NOTATION DVI SYSTEM "DVI">
+<!NOTATION EPS PUBLIC
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN SYSTEM "EQN">
+<!NOTATION FAX PUBLIC
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF SYSTEM "GIF">
+<!NOTATION GIF87a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+
+<!NOTATION GIF89a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG SYSTEM "JPG">
+<!NOTATION JPEG SYSTEM "JPG">
+<!NOTATION IGES PUBLIC
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC SYSTEM "PIC">
+<!NOTATION PNG SYSTEM "http://www.w3.org/TR/REC-png">
+<!NOTATION PS SYSTEM "PS">
+<!NOTATION SGML PUBLIC
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL SYSTEM "TBL">
+<!NOTATION TEX PUBLIC
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF SYSTEM "TIFF">
+<!NOTATION WMF PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG SYSTEM "WPG"> <!--WordPerfect Graphic format-->
+<!NOTATION linespecific SYSTEM "linespecific">
+
+<!-- End of DocBook XML notations module V4.1.2 ............................. -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/4.1.2/dbpoolx.mod b/tests/docbook/dtd/4.1.2/dbpoolx.mod
new file mode 100755
index 00000000..50b3615d
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/dbpoolx.mod
@@ -0,0 +1,7516 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML information pool module V4.1.2 ............................. -->
+<!-- File dbpoolx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh and the Organization for the Advancement
+ of Structured Information Standards (OASIS).
+
+ $Id$
+
+ Permission to use, copy, modify and distribute the DocBook XML DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook XML DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the definitions for the objects, inline
+ elements, and so on that are available to be used as the main
+ content of DocBook documents. Some elements are useful for general
+ publishing, and others are useful specifically for computer
+ documentation.
+
+ This module has the following dependencies on other modules:
+
+ o It assumes that a %notation.class; entity is defined by the
+ driver file or other high-level module. This entity is
+ referenced in the NOTATION attributes for the graphic-related and
+ ModeSpec elements.
+
+ o It assumes that an appropriately parameterized table module is
+ available for use with the table-related elements.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbpool PUBLIC
+ "-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN"
+ "dbpoolx.mod">
+ %dbpool;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+
+<!-- ...................................................................... -->
+<!-- General-purpose semantics entities ................................... -->
+
+<!ENTITY % yesorno.attvals "CDATA">
+
+<!-- ...................................................................... -->
+<!-- Entities for module inclusions ....................................... -->
+
+<!ENTITY % dbpool.redecl.module "IGNORE">
+
+<!-- ...................................................................... -->
+<!-- Entities for element classes and mixtures ............................ -->
+
+<!-- "Ubiquitous" classes: ndxterm.class and beginpage -->
+
+<!ENTITY % local.ndxterm.class "">
+<!ENTITY % ndxterm.class
+ "indexterm %local.ndxterm.class;">
+
+<!-- Object-level classes ................................................. -->
+
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+ "calloutlist|glosslist|itemizedlist|orderedlist|segmentedlist
+ |simplelist|variablelist %local.list.class;">
+
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+ "caution|important|note|tip|warning %local.admon.class;">
+
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+ "literallayout|programlisting|programlistingco|screen
+ |screenco|screenshot %local.linespecific.class;">
+
+<!ENTITY % local.method.synop.class "">
+<!ENTITY % method.synop.class
+ "constructorsynopsis
+ |destructorsynopsis
+ |methodsynopsis %local.method.synop.class;">
+
+<!ENTITY % local.synop.class "">
+<!ENTITY % synop.class
+ "synopsis|cmdsynopsis|funcsynopsis
+ |classsynopsis|fieldsynopsis
+ |%method.synop.class; %local.synop.class;">
+
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+ "formalpara|para|simpara %local.para.class;">
+
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+ "address|blockquote
+ |graphic|graphicco|mediaobject|mediaobjectco
+ |informalequation
+ |informalexample
+ |informalfigure
+ |informaltable %local.informal.class;">
+
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+ "equation|example|figure|table %local.formal.class;">
+
+<!-- The DocBook TC may produce an official EBNF module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % ebnf.block.hook "">
+
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+ "msgset|procedure|sidebar|qandaset
+ %ebnf.block.hook;
+ %local.compound.class;">
+
+<!ENTITY % local.genobj.class "">
+<!ENTITY % genobj.class
+ "anchor|bridgehead|remark|highlights
+ %local.genobj.class;">
+
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+ "abstract|authorblurb|epigraph
+ %local.descobj.class;">
+
+<!-- Character-level classes .............................................. -->
+
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % xref.char.class
+ "footnoteref|xref %local.xref.char.class;">
+
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+ "abbrev|acronym|citation|citerefentry|citetitle|emphasis
+ |firstterm|foreignphrase|glossterm|footnote|phrase
+ |quote|trademark|wordasword %local.gen.char.class;">
+
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+ "link|olink|ulink %local.link.char.class;">
+
+<!-- The DocBook TC may produce an official EBNF module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % ebnf.inline.hook "">
+
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+ "action|application
+ |classname|methodname|interfacename|exceptionname
+ |ooclass|oointerface|ooexception
+ |command|computeroutput
+ |database|email|envar|errorcode|errorname|errortype|filename
+ |function|guibutton|guiicon|guilabel|guimenu|guimenuitem
+ |guisubmenu|hardware|interface|keycap
+ |keycode|keycombo|keysym|literal|constant|markup|medialabel
+ |menuchoice|mousebutton|option|optional|parameter
+ |prompt|property|replaceable|returnvalue|sgmltag|structfield
+ |structname|symbol|systemitem|token|type|userinput|varname
+ %ebnf.inline.hook;
+ %local.tech.char.class;">
+
+<!ENTITY % local.base.char.class "">
+<!ENTITY % base.char.class
+ "anchor %local.base.char.class;">
+
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+ "author|authorinitials|corpauthor|modespec|othercredit
+ |productname|productnumber|revhistory
+ %local.docinfo.char.class;">
+
+<!ENTITY % local.other.char.class "">
+<!ENTITY % other.char.class
+ "remark|subscript|superscript %local.other.char.class;">
+
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+ "inlinegraphic|inlinemediaobject|inlineequation %local.inlineobj.char.class;">
+
+<!-- Redeclaration placeholder ............................................ -->
+
+<!-- For redeclaring entities that are declared after this point while
+ retaining their references to the entities that are declared before
+ this point -->
+
+<![%dbpool.redecl.module;[
+<!-- Defining rdbpool here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbpool "">
+%rdbpool;
+<!--end of dbpool.redecl.module-->]]>
+
+<!-- Object-level mixtures ................................................ -->
+
+<!--
+ list admn line synp para infm form cmpd gen desc
+Component mixture X X X X X X X X X X
+Sidebar mixture X X X X X X X a X
+Footnote mixture X X X X X
+Example mixture X X X X X
+Highlights mixture X X X
+Paragraph mixture X X X X
+Admonition mixture X X X X X X b c
+Figure mixture X X X
+Table entry mixture X X X X d
+Glossary def mixture X X X X X e
+Legal notice mixture X X X X f
+
+a. Just Procedure; not Sidebar itself or MsgSet.
+b. No MsgSet.
+c. No Highlights.
+d. Just Graphic; no other informal objects.
+e. No Anchor, BridgeHead, or Highlights.
+f. Just BlockQuote; no other informal objects.
+-->
+
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%genobj.class; |%descobj.class;
+ |%ndxterm.class; |beginpage
+ %local.component.mix;">
+
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |procedure
+ |%genobj.class;
+ |%ndxterm.class; |beginpage
+ %local.sidebar.mix;">
+
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % qandaset.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |procedure
+ |%genobj.class;
+ |%ndxterm.class;
+ %local.qandaset.mix;">
+
+<!ENTITY % local.revdescription.mix "">
+<!ENTITY % revdescription.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |procedure
+ |%genobj.class;
+ |%ndxterm.class;
+ %local.revdescription.mix;">
+
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+ "%list.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ %local.footnote.mix;">
+
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+ "%list.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%ndxterm.class; |beginpage
+ %local.example.mix;">
+
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % highlights.mix
+ "%list.class; |%admon.class;
+ |%para.class;
+ |%ndxterm.class;
+ %local.highlights.mix;">
+
+<!-- %formal.class; is explicitly excluded from many contexts in which
+ paragraphs are used -->
+<!ENTITY % local.para.mix "">
+<!ENTITY % para.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%informal.class;
+ |%formal.class;
+ %local.para.mix;">
+
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+ "%list.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |procedure|sidebar
+ |anchor|bridgehead|remark
+ |%ndxterm.class; |beginpage
+ %local.admon.mix;">
+
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+ "%linespecific.class; |%synop.class;
+ |%informal.class;
+ |%ndxterm.class; |beginpage
+ %local.figure.mix;">
+
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |graphic|mediaobject
+ %local.tabentry.mix;">
+
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % glossdef.mix
+ "%list.class;
+ |%linespecific.class; |%synop.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ |remark
+ |%ndxterm.class; |beginpage
+ %local.glossdef.mix;">
+
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ |%ndxterm.class; |beginpage
+ %local.legalnotice.mix;">
+
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.textobject.mix;">
+
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix
+ "videoobject|audioobject|imageobject %local.mediaobject.mix;">
+
+<!-- Character-level mixtures ............................................. -->
+
+<!--
+ #PCD xref word link cptr base dnfo othr inob (synop)
+para.char.mix X X X X X X X X X
+title.char.mix X X X X X X X X X
+ndxterm.char.mix X X X X X X X X a
+cptr.char.mix X X X X X a
+smallcptr.char.mix X b a
+word.char.mix X c X X X a
+docinfo.char.mix X d X b X a
+
+a. Just InlineGraphic; no InlineEquation.
+b. Just Replaceable; no other computer terms.
+c. Just Emphasis and Trademark; no other word elements.
+d. Just Acronym, Emphasis, and Trademark; no other word elements.
+-->
+
+<!-- The DocBook TC may produce an official forms module for DocBook. -->
+<!-- This PE provides the hook by which it can be inserted into the DTD. -->
+<!ENTITY % forminlines.hook "">
+
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+ "#PCDATA
+ |%xref.char.class; |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class; |%docinfo.char.class;
+ |%other.char.class; |%inlineobj.char.class;
+ |%synop.class;
+ |%ndxterm.class; |beginpage
+ %forminlines.hook;
+ %local.para.char.mix;">
+
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+ "#PCDATA
+ |%xref.char.class; |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class; |%docinfo.char.class;
+ |%other.char.class; |%inlineobj.char.class;
+ |%ndxterm.class;
+ %local.title.char.mix;">
+
+<!ENTITY % local.ndxterm.char.mix "">
+<!ENTITY % ndxterm.char.mix
+ "#PCDATA
+ |%xref.char.class; |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class; |%docinfo.char.class;
+ |%other.char.class; |inlinegraphic|inlinemediaobject
+ %local.ndxterm.char.mix;">
+
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+ "#PCDATA
+ |%link.char.class; |%tech.char.class;
+ |%base.char.class;
+ |%other.char.class; |inlinegraphic|inlinemediaobject
+ |%ndxterm.class; |beginpage
+ %local.cptr.char.mix;">
+
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+ "#PCDATA
+ |replaceable
+ |inlinegraphic|inlinemediaobject
+ |%ndxterm.class; |beginpage
+ %local.smallcptr.char.mix;">
+
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+ "#PCDATA
+ |acronym|emphasis|trademark
+ |%link.char.class;
+ |%base.char.class;
+ |%other.char.class; |inlinegraphic|inlinemediaobject
+ |%ndxterm.class; |beginpage
+ %local.word.char.mix;">
+
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+ "#PCDATA
+ |%link.char.class;
+ |emphasis|trademark
+ |replaceable
+ |%other.char.class; |inlinegraphic|inlinemediaobject
+ |%ndxterm.class;
+ %local.docinfo.char.mix;">
+<!--ENTITY % bibliocomponent.mix (see Bibliographic section, below)-->
+<!--ENTITY % person.ident.mix (see Bibliographic section, below)-->
+
+<!-- ...................................................................... -->
+<!-- Entities for content models .......................................... -->
+
+<!ENTITY % formalobject.title.content "title, titleabbrev?">
+
+<!-- ...................................................................... -->
+<!-- Entities for attributes and attribute components ..................... -->
+
+<!-- Effectivity attributes ............................................... -->
+
+
+<!-- Arch: Computer or chip architecture to which element applies; no
+ default -->
+
+<!ENTITY % arch.attrib
+ "arch CDATA #IMPLIED">
+
+<!-- Condition: General-purpose effectivity attribute -->
+
+<!ENTITY % condition.attrib
+ "condition CDATA #IMPLIED">
+
+<!-- Conformance: Standards conformance characteristics -->
+
+<!ENTITY % conformance.attrib
+ "conformance NMTOKENS #IMPLIED">
+
+
+<!-- OS: Operating system to which element applies; no default -->
+
+<!ENTITY % os.attrib
+ "os CDATA #IMPLIED">
+
+
+<!-- Revision: Editorial revision to which element belongs; no default -->
+
+<!ENTITY % revision.attrib
+ "revision CDATA #IMPLIED">
+
+<!-- Security: Security classification; no default -->
+
+<!ENTITY % security.attrib
+ "security CDATA #IMPLIED">
+
+<!-- UserLevel: Level of user experience to which element applies; no
+ default -->
+
+<!ENTITY % userlevel.attrib
+ "userlevel CDATA #IMPLIED">
+
+
+<!-- Vendor: Computer vendor to which element applies; no default -->
+
+<!ENTITY % vendor.attrib
+ "vendor CDATA #IMPLIED">
+
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % effectivity.attrib
+ "%arch.attrib;
+ %condition.attrib;
+ %conformance.attrib;
+ %os.attrib;
+ %revision.attrib;
+ %security.attrib;
+ %userlevel.attrib;
+ %vendor.attrib;
+ %local.effectivity.attrib;"
+>
+
+<!-- Common attributes .................................................... -->
+
+
+<!-- Id: Unique identifier of element; no default -->
+
+<!ENTITY % id.attrib
+ "id ID #IMPLIED">
+
+
+<!-- Id: Unique identifier of element; a value must be supplied; no
+ default -->
+
+<!ENTITY % idreq.attrib
+ "id ID #REQUIRED">
+
+
+<!-- Lang: Indicator of language in which element is written, for
+ translation, character set management, etc.; no default -->
+
+<!ENTITY % lang.attrib
+ "lang CDATA #IMPLIED">
+
+
+<!-- Remap: Previous role of element before conversion; no default -->
+
+<!ENTITY % remap.attrib
+ "remap CDATA #IMPLIED">
+
+
+<!-- Role: New role of element in local environment; no default -->
+
+<!ENTITY % role.attrib
+ "role CDATA #IMPLIED">
+
+
+<!-- XRefLabel: Alternate labeling string for XRef text generation;
+ default is usually title or other appropriate label text already
+ contained in element -->
+
+<!ENTITY % xreflabel.attrib
+ "xreflabel CDATA #IMPLIED">
+
+
+<!-- RevisionFlag: Revision status of element; default is that element
+ wasn't revised -->
+
+<!ENTITY % revisionflag.attrib
+ "revisionflag (changed
+ |added
+ |deleted
+ |off) #IMPLIED">
+
+<!ENTITY % local.common.attrib "">
+
+<!-- Role is included explicitly on each element -->
+
+<!ENTITY % common.attrib
+ "%id.attrib;
+ %lang.attrib;
+ %remap.attrib;
+ %xreflabel.attrib;
+ %revisionflag.attrib;
+ %effectivity.attrib;
+ %local.common.attrib;"
+>
+
+
+<!-- Role is included explicitly on each element -->
+
+<!ENTITY % idreq.common.attrib
+ "%idreq.attrib;
+ %lang.attrib;
+ %remap.attrib;
+ %xreflabel.attrib;
+ %revisionflag.attrib;
+ %effectivity.attrib;
+ %local.common.attrib;"
+>
+
+<!-- Semi-common attributes and other attribute entities .................. -->
+
+<!ENTITY % local.graphics.attrib "">
+
+<!-- EntityRef: Name of an external entity containing the content
+ of the graphic -->
+<!-- FileRef: Filename, qualified by a pathname if desired,
+ designating the file containing the content of the graphic -->
+<!-- Format: Notation of the element content, if any -->
+<!-- SrcCredit: Information about the source of the Graphic -->
+<!-- Width: Same as CALS reprowid (desired width) -->
+<!-- Depth: Same as CALS reprodep (desired depth) -->
+<!-- Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ application-specific -->
+<!-- Scale: Conflation of CALS hscale and vscale -->
+<!-- Scalefit: Same as CALS scalefit -->
+
+<!ENTITY % graphics.attrib
+ "
+ entityref ENTITY #IMPLIED
+ fileref CDATA #IMPLIED
+ format (%notation.class;) #IMPLIED
+ srccredit CDATA #IMPLIED
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %local.graphics.attrib;"
+>
+
+<!ENTITY % local.keyaction.attrib "">
+
+<!-- Action: Key combination type; default is unspecified if one
+ child element, Simul if there is more than one; if value is
+ Other, the OtherAction attribute must have a nonempty value -->
+<!-- OtherAction: User-defined key combination type -->
+
+<!ENTITY % keyaction.attrib
+ "
+ action (click
+ |double-click
+ |press
+ |seq
+ |simul
+ |other) #IMPLIED
+ otheraction CDATA #IMPLIED
+ %local.keyaction.attrib;"
+>
+
+
+<!-- Label: Identifying number or string; default is usually the
+ appropriate number or string autogenerated by a formatter -->
+
+<!ENTITY % label.attrib
+ "label CDATA #IMPLIED">
+
+
+<!-- Format: whether element is assumed to contain significant white
+ space -->
+
+<!ENTITY % linespecific.attrib
+ "format NOTATION
+ (linespecific) 'linespecific'
+ linenumbering (numbered|unnumbered) #IMPLIED">
+
+
+<!-- Linkend: link to related information; no default -->
+
+<!ENTITY % linkend.attrib
+ "linkend IDREF #IMPLIED">
+
+
+<!-- Linkend: required link to related information -->
+
+<!ENTITY % linkendreq.attrib
+ "linkend IDREF #REQUIRED">
+
+
+<!-- Linkends: link to one or more sets of related information; no
+ default -->
+
+<!ENTITY % linkends.attrib
+ "linkends IDREFS #IMPLIED">
+
+
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+ "mark CDATA #IMPLIED
+ %local.mark.attrib;"
+>
+
+
+<!-- MoreInfo: whether element's content has an associated RefEntry -->
+
+<!ENTITY % moreinfo.attrib
+ "moreinfo (refentry|none) 'none'">
+
+
+<!-- Pagenum: number of page on which element appears; no default -->
+
+<!ENTITY % pagenum.attrib
+ "pagenum CDATA #IMPLIED">
+
+<!ENTITY % local.status.attrib "">
+
+<!-- Status: Editorial or publication status of the element
+ it applies to, such as "in review" or "approved for distribution" -->
+
+<!ENTITY % status.attrib
+ "status CDATA #IMPLIED
+ %local.status.attrib;"
+>
+
+
+<!-- Width: width of the longest line in the element to which it
+ pertains, in number of characters -->
+
+<!ENTITY % width.attrib
+ "width CDATA #IMPLIED">
+
+<!-- ...................................................................... -->
+<!-- Title elements ....................................................... -->
+
+<!ENTITY % title.module "INCLUDE">
+<![%title.module;[
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+
+<!ENTITY % title.element "INCLUDE">
+<![%title.element;[
+<!ELEMENT title (%title.char.mix;)*>
+<!--end of title.element-->]]>
+
+<!ENTITY % title.attlist "INCLUDE">
+<![%title.attlist;[
+<!ATTLIST title
+ %pagenum.attrib;
+ %common.attrib;
+ %title.role.attrib;
+ %local.title.attrib;
+>
+<!--end of title.attlist-->]]>
+<!--end of title.module-->]]>
+
+<!ENTITY % titleabbrev.module "INCLUDE">
+<![%titleabbrev.module;[
+<!ENTITY % local.titleabbrev.attrib "">
+<!ENTITY % titleabbrev.role.attrib "%role.attrib;">
+
+<!ENTITY % titleabbrev.element "INCLUDE">
+<![%titleabbrev.element;[
+<!ELEMENT titleabbrev (%title.char.mix;)*>
+<!--end of titleabbrev.element-->]]>
+
+<!ENTITY % titleabbrev.attlist "INCLUDE">
+<![%titleabbrev.attlist;[
+<!ATTLIST titleabbrev
+ %common.attrib;
+ %titleabbrev.role.attrib;
+ %local.titleabbrev.attrib;
+>
+<!--end of titleabbrev.attlist-->]]>
+<!--end of titleabbrev.module-->]]>
+
+<!ENTITY % subtitle.module "INCLUDE">
+<![%subtitle.module;[
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % subtitle.element "INCLUDE">
+<![%subtitle.element;[
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!--end of subtitle.element-->]]>
+
+<!ENTITY % subtitle.attlist "INCLUDE">
+<![%subtitle.attlist;[
+<!ATTLIST subtitle
+ %common.attrib;
+ %subtitle.role.attrib;
+ %local.subtitle.attrib;
+>
+<!--end of subtitle.attlist-->]]>
+<!--end of subtitle.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Bibliographic entities and elements .................................. -->
+
+<!-- The bibliographic elements are typically used in the document
+ hierarchy. They do not appear in content models of information
+ pool elements. See also the document information elements,
+ below. -->
+
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+ "honorific|firstname|surname|lineage|othername|affiliation
+ |authorblurb|contrib %local.person.ident.mix;">
+
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+ "abbrev|abstract|address|artpagenums|author
+ |authorgroup|authorinitials|bibliomisc|biblioset
+ |collab|confgroup|contractnum|contractsponsor
+ |copyright|corpauthor|corpname|date|edition
+ |editor|invpartnumber|isbn|issn|issuenum|orgname
+ |othercredit|pagenums|printhistory|productname
+ |productnumber|pubdate|publisher|publishername
+ |pubsnumber|releaseinfo|revhistory|seriesvolnums
+ |subtitle|title|titleabbrev|volumenum|citetitle
+ |%person.ident.mix;
+ |%ndxterm.class;
+ %local.bibliocomponent.mix;">
+
+<!ENTITY % biblioentry.module "INCLUDE">
+<![%biblioentry.module;[
+<!ENTITY % local.biblioentry.attrib "">
+<!ENTITY % biblioentry.role.attrib "%role.attrib;">
+
+<!ENTITY % biblioentry.element "INCLUDE">
+<![%biblioentry.element;[
+<!ELEMENT biblioentry ((articleinfo | (%bibliocomponent.mix;))+)>
+<!--end of biblioentry.element-->]]>
+
+<!ENTITY % biblioentry.attlist "INCLUDE">
+<![%biblioentry.attlist;[
+<!ATTLIST biblioentry
+ %common.attrib;
+ %biblioentry.role.attrib;
+ %local.biblioentry.attrib;
+>
+<!--end of biblioentry.attlist-->]]>
+<!--end of biblioentry.module-->]]>
+
+<!ENTITY % bibliomixed.module "INCLUDE">
+<![%bibliomixed.module;[
+<!ENTITY % local.bibliomixed.attrib "">
+<!ENTITY % bibliomixed.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliomixed.element "INCLUDE">
+<![%bibliomixed.element;[
+<!ELEMENT bibliomixed (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!--end of bibliomixed.element-->]]>
+
+<!ENTITY % bibliomixed.attlist "INCLUDE">
+<![%bibliomixed.attlist;[
+<!ATTLIST bibliomixed
+ %common.attrib;
+ %bibliomixed.role.attrib;
+ %local.bibliomixed.attrib;
+>
+<!--end of bibliomixed.attlist-->]]>
+<!--end of bibliomixed.module-->]]>
+
+<!ENTITY % articleinfo.module "INCLUDE">
+<![%articleinfo.module;[
+<!ENTITY % local.articleinfo.attrib "">
+<!ENTITY % articleinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % articleinfo.element "INCLUDE">
+<![%articleinfo.element;[
+<!ELEMENT articleinfo ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of articleinfo.element-->]]>
+
+<!ENTITY % articleinfo.attlist "INCLUDE">
+<![%articleinfo.attlist;[
+<!ATTLIST articleinfo
+ %common.attrib;
+ %articleinfo.role.attrib;
+ %local.articleinfo.attrib;
+>
+<!--end of articleinfo.attlist-->]]>
+<!--end of articleinfo.module-->]]>
+
+<!ENTITY % biblioset.module "INCLUDE">
+<![%biblioset.module;[
+<!ENTITY % local.biblioset.attrib "">
+<!ENTITY % biblioset.role.attrib "%role.attrib;">
+
+<!ENTITY % biblioset.element "INCLUDE">
+<![%biblioset.element;[
+<!ELEMENT biblioset ((%bibliocomponent.mix;)+)>
+<!--end of biblioset.element-->]]>
+
+<!-- Relation: Relationship of elements contained within BiblioSet -->
+
+
+<!ENTITY % biblioset.attlist "INCLUDE">
+<![%biblioset.attlist;[
+<!ATTLIST biblioset
+ relation CDATA #IMPLIED
+ %common.attrib;
+ %biblioset.role.attrib;
+ %local.biblioset.attrib;
+>
+<!--end of biblioset.attlist-->]]>
+<!--end of biblioset.module-->]]>
+
+<!ENTITY % bibliomset.module "INCLUDE">
+<![%bibliomset.module;[
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+
+<!ENTITY % bibliomset.element "INCLUDE">
+<![%bibliomset.element;[
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!--end of bibliomset.element-->]]>
+
+<!-- Relation: Relationship of elements contained within BiblioMSet -->
+
+
+<!ENTITY % bibliomset.attlist "INCLUDE">
+<![%bibliomset.attlist;[
+<!ATTLIST bibliomset
+ relation CDATA #IMPLIED
+ %bibliomset.role.attrib;
+ %common.attrib;
+ %local.bibliomset.attrib;
+>
+<!--end of bibliomset.attlist-->]]>
+<!--end of bibliomset.module-->]]>
+
+<!ENTITY % bibliomisc.module "INCLUDE">
+<![%bibliomisc.module;[
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+
+<!ENTITY % bibliomisc.element "INCLUDE">
+<![%bibliomisc.element;[
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!--end of bibliomisc.element-->]]>
+
+<!ENTITY % bibliomisc.attlist "INCLUDE">
+<![%bibliomisc.attlist;[
+<!ATTLIST bibliomisc
+ %common.attrib;
+ %bibliomisc.role.attrib;
+ %local.bibliomisc.attrib;
+>
+<!--end of bibliomisc.attlist-->]]>
+<!--end of bibliomisc.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Subject, Keyword, and ITermSet elements .............................. -->
+
+<!ENTITY % subjectset.content.module "INCLUDE">
+<![%subjectset.content.module;[
+<!ENTITY % subjectset.module "INCLUDE">
+<![%subjectset.module;[
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+
+<!ENTITY % subjectset.element "INCLUDE">
+<![%subjectset.element;[
+<!ELEMENT subjectset (subject+)>
+<!--end of subjectset.element-->]]>
+
+<!-- Scheme: Controlled vocabulary employed in SubjectTerms -->
+
+
+<!ENTITY % subjectset.attlist "INCLUDE">
+<![%subjectset.attlist;[
+<!ATTLIST subjectset
+ scheme NMTOKEN #IMPLIED
+ %common.attrib;
+ %subjectset.role.attrib;
+ %local.subjectset.attrib;
+>
+<!--end of subjectset.attlist-->]]>
+<!--end of subjectset.module-->]]>
+
+<!ENTITY % subject.module "INCLUDE">
+<![%subject.module;[
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+
+<!ENTITY % subject.element "INCLUDE">
+<![%subject.element;[
+<!ELEMENT subject (subjectterm+)>
+<!--end of subject.element-->]]>
+
+<!-- Weight: Ranking of this group of SubjectTerms relative
+ to others, 0 is low, no highest value specified -->
+
+
+<!ENTITY % subject.attlist "INCLUDE">
+<![%subject.attlist;[
+<!ATTLIST subject
+ weight CDATA #IMPLIED
+ %common.attrib;
+ %subject.role.attrib;
+ %local.subject.attrib;
+>
+<!--end of subject.attlist-->]]>
+<!--end of subject.module-->]]>
+
+<!ENTITY % subjectterm.module "INCLUDE">
+<![%subjectterm.module;[
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+
+<!ENTITY % subjectterm.element "INCLUDE">
+<![%subjectterm.element;[
+<!ELEMENT subjectterm (#PCDATA)>
+<!--end of subjectterm.element-->]]>
+
+<!ENTITY % subjectterm.attlist "INCLUDE">
+<![%subjectterm.attlist;[
+<!ATTLIST subjectterm
+ %common.attrib;
+ %subjectterm.role.attrib;
+ %local.subjectterm.attrib;
+>
+<!--end of subjectterm.attlist-->]]>
+<!--end of subjectterm.module-->]]>
+<!--end of subjectset.content.module-->]]>
+
+<!ENTITY % keywordset.content.module "INCLUDE">
+<![%keywordset.content.module;[
+<!ENTITY % keywordset.module "INCLUDE">
+<![%keywordset.module;[
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+
+<!ENTITY % keywordset.element "INCLUDE">
+<![%keywordset.element;[
+<!ELEMENT keywordset (keyword+)>
+<!--end of keywordset.element-->]]>
+
+<!ENTITY % keywordset.attlist "INCLUDE">
+<![%keywordset.attlist;[
+<!ATTLIST keywordset
+ %common.attrib;
+ %keywordset.role.attrib;
+ %local.keywordset.attrib;
+>
+<!--end of keywordset.attlist-->]]>
+<!--end of keywordset.module-->]]>
+
+<!ENTITY % keyword.module "INCLUDE">
+<![%keyword.module;[
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+
+<!ENTITY % keyword.element "INCLUDE">
+<![%keyword.element;[
+<!ELEMENT keyword (#PCDATA)>
+<!--end of keyword.element-->]]>
+
+<!ENTITY % keyword.attlist "INCLUDE">
+<![%keyword.attlist;[
+<!ATTLIST keyword
+ %common.attrib;
+ %keyword.role.attrib;
+ %local.keyword.attrib;
+>
+<!--end of keyword.attlist-->]]>
+<!--end of keyword.module-->]]>
+<!--end of keywordset.content.module-->]]>
+
+<!ENTITY % itermset.module "INCLUDE">
+<![%itermset.module;[
+<!ENTITY % local.itermset.attrib "">
+<!ENTITY % itermset.role.attrib "%role.attrib;">
+
+<!ENTITY % itermset.element "INCLUDE">
+<![%itermset.element;[
+<!ELEMENT itermset (indexterm+)>
+<!--end of itermset.element-->]]>
+
+<!ENTITY % itermset.attlist "INCLUDE">
+<![%itermset.attlist;[
+<!ATTLIST itermset
+ %common.attrib;
+ %itermset.role.attrib;
+ %local.itermset.attrib;
+>
+<!--end of itermset.attlist-->]]>
+<!--end of itermset.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Compound (section-ish) elements ...................................... -->
+
+<!-- Message set ...................... -->
+
+<!ENTITY % msgset.content.module "INCLUDE">
+<![%msgset.content.module;[
+<!ENTITY % msgset.module "INCLUDE">
+<![%msgset.module;[
+<!ENTITY % local.msgset.attrib "">
+<!ENTITY % msgset.role.attrib "%role.attrib;">
+
+<!ENTITY % msgset.element "INCLUDE">
+<![%msgset.element;[
+<!ELEMENT msgset ((%formalobject.title.content;)?, (msgentry+|simplemsgentry+))>
+<!--end of msgset.element-->]]>
+
+<!ENTITY % msgset.attlist "INCLUDE">
+<![%msgset.attlist;[
+<!ATTLIST msgset
+ %common.attrib;
+ %msgset.role.attrib;
+ %local.msgset.attrib;
+>
+<!--end of msgset.attlist-->]]>
+<!--end of msgset.module-->]]>
+
+<!ENTITY % msgentry.module "INCLUDE">
+<![%msgentry.module;[
+<!ENTITY % local.msgentry.attrib "">
+<!ENTITY % msgentry.role.attrib "%role.attrib;">
+
+<!ENTITY % msgentry.element "INCLUDE">
+<![%msgentry.element;[
+<!ELEMENT msgentry (msg+, msginfo?, msgexplan*)>
+<!--end of msgentry.element-->]]>
+
+<!ENTITY % msgentry.attlist "INCLUDE">
+<![%msgentry.attlist;[
+<!ATTLIST msgentry
+ %common.attrib;
+ %msgentry.role.attrib;
+ %local.msgentry.attrib;
+>
+<!--end of msgentry.attlist-->]]>
+<!--end of msgentry.module-->]]>
+
+<!ENTITY % simplemsgentry.module "INCLUDE">
+<![ %simplemsgentry.module; [
+<!ENTITY % local.simplemsgentry.attrib "">
+<!ENTITY % simplemsgentry.role.attrib "%role.attrib;">
+
+<!ENTITY % simplemsgentry.element "INCLUDE">
+<![ %simplemsgentry.element; [
+<!ELEMENT simplemsgentry (msgtext, msgexplan)>
+<!--end of simplemsgentry.element-->]]>
+
+<!ENTITY % simplemsgentry.attlist "INCLUDE">
+<![ %simplemsgentry.attlist; [
+<!ATTLIST simplemsgentry
+ %common.attrib;
+ %simplemsgentry.role.attrib;
+ %local.simplemsgentry.attrib;
+ audience CDATA #IMPLIED
+ level CDATA #IMPLIED
+ origin CDATA #IMPLIED
+>
+<!--end of simplemsgentry.attlist-->]]>
+<!--end of simplemsgentry.module-->]]>
+
+<!ENTITY % msg.module "INCLUDE">
+<![%msg.module;[
+<!ENTITY % local.msg.attrib "">
+<!ENTITY % msg.role.attrib "%role.attrib;">
+
+<!ENTITY % msg.element "INCLUDE">
+<![%msg.element;[
+<!ELEMENT msg (title?, msgmain, (msgsub | msgrel)*)>
+<!--end of msg.element-->]]>
+
+<!ENTITY % msg.attlist "INCLUDE">
+<![%msg.attlist;[
+<!ATTLIST msg
+ %common.attrib;
+ %msg.role.attrib;
+ %local.msg.attrib;
+>
+<!--end of msg.attlist-->]]>
+<!--end of msg.module-->]]>
+
+<!ENTITY % msgmain.module "INCLUDE">
+<![%msgmain.module;[
+<!ENTITY % local.msgmain.attrib "">
+<!ENTITY % msgmain.role.attrib "%role.attrib;">
+
+<!ENTITY % msgmain.element "INCLUDE">
+<![%msgmain.element;[
+<!ELEMENT msgmain (title?, msgtext)>
+<!--end of msgmain.element-->]]>
+
+<!ENTITY % msgmain.attlist "INCLUDE">
+<![%msgmain.attlist;[
+<!ATTLIST msgmain
+ %common.attrib;
+ %msgmain.role.attrib;
+ %local.msgmain.attrib;
+>
+<!--end of msgmain.attlist-->]]>
+<!--end of msgmain.module-->]]>
+
+<!ENTITY % msgsub.module "INCLUDE">
+<![%msgsub.module;[
+<!ENTITY % local.msgsub.attrib "">
+<!ENTITY % msgsub.role.attrib "%role.attrib;">
+
+<!ENTITY % msgsub.element "INCLUDE">
+<![%msgsub.element;[
+<!ELEMENT msgsub (title?, msgtext)>
+<!--end of msgsub.element-->]]>
+
+<!ENTITY % msgsub.attlist "INCLUDE">
+<![%msgsub.attlist;[
+<!ATTLIST msgsub
+ %common.attrib;
+ %msgsub.role.attrib;
+ %local.msgsub.attrib;
+>
+<!--end of msgsub.attlist-->]]>
+<!--end of msgsub.module-->]]>
+
+<!ENTITY % msgrel.module "INCLUDE">
+<![%msgrel.module;[
+<!ENTITY % local.msgrel.attrib "">
+<!ENTITY % msgrel.role.attrib "%role.attrib;">
+
+<!ENTITY % msgrel.element "INCLUDE">
+<![%msgrel.element;[
+<!ELEMENT msgrel (title?, msgtext)>
+<!--end of msgrel.element-->]]>
+
+<!ENTITY % msgrel.attlist "INCLUDE">
+<![%msgrel.attlist;[
+<!ATTLIST msgrel
+ %common.attrib;
+ %msgrel.role.attrib;
+ %local.msgrel.attrib;
+>
+<!--end of msgrel.attlist-->]]>
+<!--end of msgrel.module-->]]>
+
+<!-- MsgText (defined in the Inlines section, below)-->
+
+<!ENTITY % msginfo.module "INCLUDE">
+<![%msginfo.module;[
+<!ENTITY % local.msginfo.attrib "">
+<!ENTITY % msginfo.role.attrib "%role.attrib;">
+
+<!ENTITY % msginfo.element "INCLUDE">
+<![%msginfo.element;[
+<!ELEMENT msginfo ((msglevel | msgorig | msgaud)*)>
+<!--end of msginfo.element-->]]>
+
+<!ENTITY % msginfo.attlist "INCLUDE">
+<![%msginfo.attlist;[
+<!ATTLIST msginfo
+ %common.attrib;
+ %msginfo.role.attrib;
+ %local.msginfo.attrib;
+>
+<!--end of msginfo.attlist-->]]>
+<!--end of msginfo.module-->]]>
+
+<!ENTITY % msglevel.module "INCLUDE">
+<![%msglevel.module;[
+<!ENTITY % local.msglevel.attrib "">
+<!ENTITY % msglevel.role.attrib "%role.attrib;">
+
+<!ENTITY % msglevel.element "INCLUDE">
+<![%msglevel.element;[
+<!ELEMENT msglevel (%smallcptr.char.mix;)*>
+<!--end of msglevel.element-->]]>
+
+<!ENTITY % msglevel.attlist "INCLUDE">
+<![%msglevel.attlist;[
+<!ATTLIST msglevel
+ %common.attrib;
+ %msglevel.role.attrib;
+ %local.msglevel.attrib;
+>
+<!--end of msglevel.attlist-->]]>
+<!--end of msglevel.module-->]]>
+
+<!ENTITY % msgorig.module "INCLUDE">
+<![%msgorig.module;[
+<!ENTITY % local.msgorig.attrib "">
+<!ENTITY % msgorig.role.attrib "%role.attrib;">
+
+<!ENTITY % msgorig.element "INCLUDE">
+<![%msgorig.element;[
+<!ELEMENT msgorig (%smallcptr.char.mix;)*>
+<!--end of msgorig.element-->]]>
+
+<!ENTITY % msgorig.attlist "INCLUDE">
+<![%msgorig.attlist;[
+<!ATTLIST msgorig
+ %common.attrib;
+ %msgorig.role.attrib;
+ %local.msgorig.attrib;
+>
+<!--end of msgorig.attlist-->]]>
+<!--end of msgorig.module-->]]>
+
+<!ENTITY % msgaud.module "INCLUDE">
+<![%msgaud.module;[
+<!ENTITY % local.msgaud.attrib "">
+<!ENTITY % msgaud.role.attrib "%role.attrib;">
+
+<!ENTITY % msgaud.element "INCLUDE">
+<![%msgaud.element;[
+<!ELEMENT msgaud (%para.char.mix;)*>
+<!--end of msgaud.element-->]]>
+
+<!ENTITY % msgaud.attlist "INCLUDE">
+<![%msgaud.attlist;[
+<!ATTLIST msgaud
+ %common.attrib;
+ %msgaud.role.attrib;
+ %local.msgaud.attrib;
+>
+<!--end of msgaud.attlist-->]]>
+<!--end of msgaud.module-->]]>
+
+<!ENTITY % msgexplan.module "INCLUDE">
+<![%msgexplan.module;[
+<!ENTITY % local.msgexplan.attrib "">
+<!ENTITY % msgexplan.role.attrib "%role.attrib;">
+
+<!ENTITY % msgexplan.element "INCLUDE">
+<![%msgexplan.element;[
+<!ELEMENT msgexplan (title?, (%component.mix;)+)>
+<!--end of msgexplan.element-->]]>
+
+<!ENTITY % msgexplan.attlist "INCLUDE">
+<![%msgexplan.attlist;[
+<!ATTLIST msgexplan
+ %common.attrib;
+ %msgexplan.role.attrib;
+ %local.msgexplan.attrib;
+>
+<!--end of msgexplan.attlist-->]]>
+<!--end of msgexplan.module-->]]>
+<!--end of msgset.content.module-->]]>
+
+<!-- QandASet ........................ -->
+<!ENTITY % qandset.content.module "INCLUDE">
+<![ %qandset.content.module; [
+<!ENTITY % qandset.module "INCLUDE">
+<![ %qandset.module; [
+<!ENTITY % local.qandset.attrib "">
+<!ENTITY % qandset.role.attrib "%role.attrib;">
+
+<!ENTITY % qandset.element "INCLUDE">
+<![ %qandset.element; [
+<!ELEMENT qandaset ((%formalobject.title.content;)?,
+ (%qandaset.mix;)*,
+ (qandadiv+|qandaentry+))>
+<!--end of qandset.element-->]]>
+
+<!ENTITY % qandset.attlist "INCLUDE">
+<![ %qandset.attlist; [
+<!ATTLIST qandaset
+ defaultlabel (qanda|number|none) #IMPLIED
+ %common.attrib;
+ %qandset.role.attrib;
+ %local.qandset.attrib;>
+<!--end of qandset.attlist-->]]>
+<!--end of qandset.module-->]]>
+
+<!ENTITY % qandadiv.module "INCLUDE">
+<![ %qandadiv.module; [
+<!ENTITY % local.qandadiv.attrib "">
+<!ENTITY % qandadiv.role.attrib "%role.attrib;">
+
+<!ENTITY % qandadiv.element "INCLUDE">
+<![ %qandadiv.element; [
+<!ELEMENT qandadiv ((%formalobject.title.content;)?,
+ (%qandaset.mix;)*,
+ (qandadiv+|qandaentry+))>
+<!--end of qandadiv.element-->]]>
+
+<!ENTITY % qandadiv.attlist "INCLUDE">
+<![ %qandadiv.attlist; [
+<!ATTLIST qandadiv
+ %common.attrib;
+ %qandadiv.role.attrib;
+ %local.qandadiv.attrib;>
+<!--end of qandadiv.attlist-->]]>
+<!--end of qandadiv.module-->]]>
+
+<!ENTITY % qandaentry.module "INCLUDE">
+<![ %qandaentry.module; [
+<!ENTITY % local.qandaentry.attrib "">
+<!ENTITY % qandaentry.role.attrib "%role.attrib;">
+
+<!ENTITY % qandaentry.element "INCLUDE">
+<![ %qandaentry.element; [
+<!ELEMENT qandaentry (revhistory?, question, answer*)>
+<!--end of qandaentry.element-->]]>
+
+<!ENTITY % qandaentry.attlist "INCLUDE">
+<![ %qandaentry.attlist; [
+<!ATTLIST qandaentry
+ %common.attrib;
+ %qandaentry.role.attrib;
+ %local.qandaentry.attrib;>
+<!--end of qandaentry.attlist-->]]>
+<!--end of qandaentry.module-->]]>
+
+<!ENTITY % question.module "INCLUDE">
+<![ %question.module; [
+<!ENTITY % local.question.attrib "">
+<!ENTITY % question.role.attrib "%role.attrib;">
+
+<!ENTITY % question.element "INCLUDE">
+<![ %question.element; [
+<!ELEMENT question (label?, (%qandaset.mix;)+)>
+<!--end of question.element-->]]>
+
+<!ENTITY % question.attlist "INCLUDE">
+<![ %question.attlist; [
+<!ATTLIST question
+ %common.attrib;
+ %question.role.attrib;
+ %local.question.attrib;
+>
+<!--end of question.attlist-->]]>
+<!--end of question.module-->]]>
+
+<!ENTITY % answer.module "INCLUDE">
+<![ %answer.module; [
+<!ENTITY % local.answer.attrib "">
+<!ENTITY % answer.role.attrib "%role.attrib;">
+
+<!ENTITY % answer.element "INCLUDE">
+<![ %answer.element; [
+<!ELEMENT answer (label?, (%qandaset.mix;)*, qandaentry*)>
+<!--end of answer.element-->]]>
+
+<!ENTITY % answer.attlist "INCLUDE">
+<![ %answer.attlist; [
+<!ATTLIST answer
+ %common.attrib;
+ %answer.role.attrib;
+ %local.answer.attrib;
+>
+<!--end of answer.attlist-->]]>
+<!--end of answer.module-->]]>
+
+<!ENTITY % label.module "INCLUDE">
+<![ %label.module; [
+<!ENTITY % local.label.attrib "">
+<!ENTITY % label.role.attrib "%role.attrib;">
+
+<!ENTITY % label.element "INCLUDE">
+<![ %label.element; [
+<!ELEMENT label (%word.char.mix;)*>
+<!--end of label.element-->]]>
+
+<!ENTITY % label.attlist "INCLUDE">
+<![ %label.attlist; [
+<!ATTLIST label
+ %common.attrib;
+ %label.role.attrib;
+ %local.label.attrib;
+>
+<!--end of label.attlist-->]]>
+<!--end of label.module-->]]>
+<!--end of qandset.content.module-->]]>
+
+<!-- Procedure ........................ -->
+
+<!ENTITY % procedure.content.module "INCLUDE">
+<![%procedure.content.module;[
+<!ENTITY % procedure.module "INCLUDE">
+<![%procedure.module;[
+<!ENTITY % local.procedure.attrib "">
+<!ENTITY % procedure.role.attrib "%role.attrib;">
+
+<!ENTITY % procedure.element "INCLUDE">
+<![%procedure.element;[
+<!ELEMENT procedure ((%formalobject.title.content;)?,
+ (%component.mix;)*, step+)>
+<!--end of procedure.element-->]]>
+
+<!ENTITY % procedure.attlist "INCLUDE">
+<![%procedure.attlist;[
+<!ATTLIST procedure
+ %common.attrib;
+ %procedure.role.attrib;
+ %local.procedure.attrib;
+>
+<!--end of procedure.attlist-->]]>
+<!--end of procedure.module-->]]>
+
+<!ENTITY % step.module "INCLUDE">
+<![%step.module;[
+<!ENTITY % local.step.attrib "">
+<!ENTITY % step.role.attrib "%role.attrib;">
+
+<!ENTITY % step.element "INCLUDE">
+<![%step.element;[
+<!ELEMENT step (title?, (((%component.mix;)+, (substeps,
+ (%component.mix;)*)?) | (substeps, (%component.mix;)*)))>
+<!--end of step.element-->]]>
+
+<!-- Performance: Whether the Step must be performed -->
+<!-- not #REQUIRED! -->
+
+
+<!ENTITY % step.attlist "INCLUDE">
+<![%step.attlist;[
+<!ATTLIST step
+ performance (optional
+ |required) "required"
+ %common.attrib;
+ %step.role.attrib;
+ %local.step.attrib;
+>
+<!--end of step.attlist-->]]>
+<!--end of step.module-->]]>
+
+<!ENTITY % substeps.module "INCLUDE">
+<![%substeps.module;[
+<!ENTITY % local.substeps.attrib "">
+<!ENTITY % substeps.role.attrib "%role.attrib;">
+
+<!ENTITY % substeps.element "INCLUDE">
+<![%substeps.element;[
+<!ELEMENT substeps (step+)>
+<!--end of substeps.element-->]]>
+
+<!-- Performance: whether entire set of substeps must be performed -->
+<!-- not #REQUIRED! -->
+
+
+<!ENTITY % substeps.attlist "INCLUDE">
+<![%substeps.attlist;[
+<!ATTLIST substeps
+ performance (optional
+ |required) "required"
+ %common.attrib;
+ %substeps.role.attrib;
+ %local.substeps.attrib;
+>
+<!--end of substeps.attlist-->]]>
+<!--end of substeps.module-->]]>
+<!--end of procedure.content.module-->]]>
+
+<!-- Sidebar .......................... -->
+
+<!ENTITY % sidebar.content.model "INCLUDE">
+<![ %sidebar.content.model; [
+
+<!ENTITY % sidebarinfo.module "INCLUDE">
+<![ %sidebarinfo.module; [
+<!ENTITY % local.sidebarinfo.attrib "">
+<!ENTITY % sidebarinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % sidebarinfo.element "INCLUDE">
+<![ %sidebarinfo.element; [
+<!ELEMENT sidebarinfo ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of sidebarinfo.element-->]]>
+
+<!ENTITY % sidebarinfo.attlist "INCLUDE">
+<![ %sidebarinfo.attlist; [
+<!ATTLIST sidebarinfo
+ %common.attrib;
+ %sidebarinfo.role.attrib;
+ %local.sidebarinfo.attrib;
+>
+<!--end of sidebarinfo.attlist-->]]>
+<!--end of sidebarinfo.module-->]]>
+
+<!ENTITY % sidebar.module "INCLUDE">
+<![%sidebar.module;[
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+
+<!ENTITY % sidebar.element "INCLUDE">
+<![%sidebar.element;[
+<!ELEMENT sidebar (sidebarinfo?,
+ (%formalobject.title.content;)?,
+ (%sidebar.mix;)+)>
+<!--end of sidebar.element-->]]>
+
+<!ENTITY % sidebar.attlist "INCLUDE">
+<![%sidebar.attlist;[
+<!ATTLIST sidebar
+ %common.attrib;
+ %sidebar.role.attrib;
+ %local.sidebar.attrib;
+>
+<!--end of sidebar.attlist-->]]>
+<!--end of sidebar.module-->]]>
+<!--end of sidebar.content.model-->]]>
+
+<!-- ...................................................................... -->
+<!-- Paragraph-related elements ........................................... -->
+
+<!ENTITY % abstract.module "INCLUDE">
+<![%abstract.module;[
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+
+<!ENTITY % abstract.element "INCLUDE">
+<![%abstract.element;[
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!--end of abstract.element-->]]>
+
+<!ENTITY % abstract.attlist "INCLUDE">
+<![%abstract.attlist;[
+<!ATTLIST abstract
+ %common.attrib;
+ %abstract.role.attrib;
+ %local.abstract.attrib;
+>
+<!--end of abstract.attlist-->]]>
+<!--end of abstract.module-->]]>
+
+<!ENTITY % authorblurb.module "INCLUDE">
+<![%authorblurb.module;[
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+
+<!ENTITY % authorblurb.element "INCLUDE">
+<![%authorblurb.element;[
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!--end of authorblurb.element-->]]>
+
+<!ENTITY % authorblurb.attlist "INCLUDE">
+<![%authorblurb.attlist;[
+<!ATTLIST authorblurb
+ %common.attrib;
+ %authorblurb.role.attrib;
+ %local.authorblurb.attrib;
+>
+<!--end of authorblurb.attlist-->]]>
+<!--end of authorblurb.module-->]]>
+
+<!ENTITY % blockquote.module "INCLUDE">
+<![%blockquote.module;[
+
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+
+<!ENTITY % blockquote.element "INCLUDE">
+<![%blockquote.element;[
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!--end of blockquote.element-->]]>
+
+<!ENTITY % blockquote.attlist "INCLUDE">
+<![%blockquote.attlist;[
+<!ATTLIST blockquote
+ %common.attrib;
+ %blockquote.role.attrib;
+ %local.blockquote.attrib;
+>
+<!--end of blockquote.attlist-->]]>
+<!--end of blockquote.module-->]]>
+
+<!ENTITY % attribution.module "INCLUDE">
+<![%attribution.module;[
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+
+<!ENTITY % attribution.element "INCLUDE">
+<![%attribution.element;[
+<!ELEMENT attribution (%para.char.mix;)*>
+<!--end of attribution.element-->]]>
+
+<!ENTITY % attribution.attlist "INCLUDE">
+<![%attribution.attlist;[
+<!ATTLIST attribution
+ %common.attrib;
+ %attribution.role.attrib;
+ %local.attribution.attrib;
+>
+<!--end of attribution.attlist-->]]>
+<!--end of attribution.module-->]]>
+
+<!ENTITY % bridgehead.module "INCLUDE">
+<![%bridgehead.module;[
+<!ENTITY % local.bridgehead.attrib "">
+<!ENTITY % bridgehead.role.attrib "%role.attrib;">
+
+<!ENTITY % bridgehead.element "INCLUDE">
+<![%bridgehead.element;[
+<!ELEMENT bridgehead (%title.char.mix;)*>
+<!--end of bridgehead.element-->]]>
+
+<!-- Renderas: Indicates the format in which the BridgeHead
+ should appear -->
+
+
+<!ENTITY % bridgehead.attlist "INCLUDE">
+<![%bridgehead.attlist;[
+<!ATTLIST bridgehead
+ renderas (other
+ |sect1
+ |sect2
+ |sect3
+ |sect4
+ |sect5) #IMPLIED
+ %common.attrib;
+ %bridgehead.role.attrib;
+ %local.bridgehead.attrib;
+>
+<!--end of bridgehead.attlist-->]]>
+<!--end of bridgehead.module-->]]>
+
+<!ENTITY % remark.module "INCLUDE">
+<![%remark.module;[
+<!ENTITY % local.remark.attrib "">
+<!ENTITY % remark.role.attrib "%role.attrib;">
+
+<!ENTITY % remark.element "INCLUDE">
+<![%remark.element;[
+<!ELEMENT remark (%para.char.mix;)*>
+<!--end of remark.element-->]]>
+
+<!ENTITY % remark.attlist "INCLUDE">
+<![%remark.attlist;[
+<!ATTLIST remark
+ %common.attrib;
+ %remark.role.attrib;
+ %local.remark.attrib;
+>
+<!--end of remark.attlist-->]]>
+<!--end of remark.module-->]]>
+
+<!ENTITY % epigraph.module "INCLUDE">
+<![%epigraph.module;[
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+
+<!ENTITY % epigraph.element "INCLUDE">
+<![%epigraph.element;[
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!--end of epigraph.element-->]]>
+
+<!ENTITY % epigraph.attlist "INCLUDE">
+<![%epigraph.attlist;[
+<!ATTLIST epigraph
+ %common.attrib;
+ %epigraph.role.attrib;
+ %local.epigraph.attrib;
+>
+<!--end of epigraph.attlist-->]]>
+<!-- Attribution (defined above)-->
+<!--end of epigraph.module-->]]>
+
+<!ENTITY % footnote.module "INCLUDE">
+<![%footnote.module;[
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+
+<!ENTITY % footnote.element "INCLUDE">
+<![%footnote.element;[
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!--end of footnote.element-->]]>
+
+<!ENTITY % footnote.attlist "INCLUDE">
+<![%footnote.attlist;[
+<!ATTLIST footnote
+ %label.attrib;
+ %common.attrib;
+ %footnote.role.attrib;
+ %local.footnote.attrib;
+>
+<!--end of footnote.attlist-->]]>
+<!--end of footnote.module-->]]>
+
+<!ENTITY % highlights.module "INCLUDE">
+<![%highlights.module;[
+<!ENTITY % local.highlights.attrib "">
+<!ENTITY % highlights.role.attrib "%role.attrib;">
+
+<!ENTITY % highlights.element "INCLUDE">
+<![%highlights.element;[
+<!ELEMENT highlights ((%highlights.mix;)+)>
+<!--end of highlights.element-->]]>
+
+<!ENTITY % highlights.attlist "INCLUDE">
+<![%highlights.attlist;[
+<!ATTLIST highlights
+ %common.attrib;
+ %highlights.role.attrib;
+ %local.highlights.attrib;
+>
+<!--end of highlights.attlist-->]]>
+<!--end of highlights.module-->]]>
+
+<!ENTITY % formalpara.module "INCLUDE">
+<![%formalpara.module;[
+<!ENTITY % local.formalpara.attrib "">
+<!ENTITY % formalpara.role.attrib "%role.attrib;">
+
+<!ENTITY % formalpara.element "INCLUDE">
+<![%formalpara.element;[
+<!ELEMENT formalpara (title, (%ndxterm.class;)*, para)>
+<!--end of formalpara.element-->]]>
+
+<!ENTITY % formalpara.attlist "INCLUDE">
+<![%formalpara.attlist;[
+<!ATTLIST formalpara
+ %common.attrib;
+ %formalpara.role.attrib;
+ %local.formalpara.attrib;
+>
+<!--end of formalpara.attlist-->]]>
+<!--end of formalpara.module-->]]>
+
+<!ENTITY % para.module "INCLUDE">
+<![%para.module;[
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+
+<!ENTITY % para.element "INCLUDE">
+<![%para.element;[
+<!ELEMENT para (%para.char.mix; | %para.mix;)*>
+<!--end of para.element-->]]>
+
+<!ENTITY % para.attlist "INCLUDE">
+<![%para.attlist;[
+<!ATTLIST para
+ %common.attrib;
+ %para.role.attrib;
+ %local.para.attrib;
+>
+<!--end of para.attlist-->]]>
+<!--end of para.module-->]]>
+
+<!ENTITY % simpara.module "INCLUDE">
+<![%simpara.module;[
+<!ENTITY % local.simpara.attrib "">
+<!ENTITY % simpara.role.attrib "%role.attrib;">
+
+<!ENTITY % simpara.element "INCLUDE">
+<![%simpara.element;[
+<!ELEMENT simpara (%para.char.mix;)*>
+<!--end of simpara.element-->]]>
+
+<!ENTITY % simpara.attlist "INCLUDE">
+<![%simpara.attlist;[
+<!ATTLIST simpara
+ %common.attrib;
+ %simpara.role.attrib;
+ %local.simpara.attrib;
+>
+<!--end of simpara.attlist-->]]>
+<!--end of simpara.module-->]]>
+
+<!ENTITY % admon.module "INCLUDE">
+<![%admon.module;[
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+
+
+<!ENTITY % caution.element "INCLUDE">
+<![%caution.element;[
+<!ELEMENT caution (title?, (%admon.mix;)+)>
+<!--end of caution.element-->]]>
+
+<!ENTITY % caution.attlist "INCLUDE">
+<![%caution.attlist;[
+<!ATTLIST caution
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of caution.attlist-->]]>
+
+
+<!ENTITY % important.element "INCLUDE">
+<![%important.element;[
+<!ELEMENT important (title?, (%admon.mix;)+)>
+<!--end of important.element-->]]>
+
+<!ENTITY % important.attlist "INCLUDE">
+<![%important.attlist;[
+<!ATTLIST important
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of important.attlist-->]]>
+
+
+<!ENTITY % note.element "INCLUDE">
+<![%note.element;[
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!--end of note.element-->]]>
+
+<!ENTITY % note.attlist "INCLUDE">
+<![%note.attlist;[
+<!ATTLIST note
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of note.attlist-->]]>
+
+
+<!ENTITY % tip.element "INCLUDE">
+<![%tip.element;[
+<!ELEMENT tip (title?, (%admon.mix;)+)>
+<!--end of tip.element-->]]>
+
+<!ENTITY % tip.attlist "INCLUDE">
+<![%tip.attlist;[
+<!ATTLIST tip
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of tip.attlist-->]]>
+
+
+<!ENTITY % warning.element "INCLUDE">
+<![%warning.element;[
+<!ELEMENT warning (title?, (%admon.mix;)+)>
+<!--end of warning.element-->]]>
+
+<!ENTITY % warning.attlist "INCLUDE">
+<![%warning.attlist;[
+<!ATTLIST warning
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!--end of warning.attlist-->]]>
+
+<!--end of admon.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Lists ................................................................ -->
+
+<!-- GlossList ........................ -->
+
+<!ENTITY % glosslist.module "INCLUDE">
+<![%glosslist.module;[
+<!ENTITY % local.glosslist.attrib "">
+<!ENTITY % glosslist.role.attrib "%role.attrib;">
+
+<!ENTITY % glosslist.element "INCLUDE">
+<![%glosslist.element;[
+<!ELEMENT glosslist (glossentry+)>
+<!--end of glosslist.element-->]]>
+
+<!ENTITY % glosslist.attlist "INCLUDE">
+<![%glosslist.attlist;[
+<!ATTLIST glosslist
+ %common.attrib;
+ %glosslist.role.attrib;
+ %local.glosslist.attrib;
+>
+<!--end of glosslist.attlist-->]]>
+<!--end of glosslist.module-->]]>
+
+<!ENTITY % glossentry.content.module "INCLUDE">
+<![%glossentry.content.module;[
+<!ENTITY % glossentry.module "INCLUDE">
+<![%glossentry.module;[
+<!ENTITY % local.glossentry.attrib "">
+<!ENTITY % glossentry.role.attrib "%role.attrib;">
+
+<!ENTITY % glossentry.element "INCLUDE">
+<![%glossentry.element;[
+<!ELEMENT glossentry (glossterm, acronym?, abbrev?,
+ (%ndxterm.class;)*,
+ revhistory?, (glosssee|glossdef+))>
+<!--end of glossentry.element-->]]>
+
+<!-- SortAs: String by which the GlossEntry is to be sorted
+ (alphabetized) in lieu of its proper content -->
+
+
+<!ENTITY % glossentry.attlist "INCLUDE">
+<![%glossentry.attlist;[
+<!ATTLIST glossentry
+ sortas CDATA #IMPLIED
+ %common.attrib;
+ %glossentry.role.attrib;
+ %local.glossentry.attrib;
+>
+<!--end of glossentry.attlist-->]]>
+<!--end of glossentry.module-->]]>
+
+<!-- GlossTerm (defined in the Inlines section, below)-->
+<!ENTITY % glossdef.module "INCLUDE">
+<![%glossdef.module;[
+<!ENTITY % local.glossdef.attrib "">
+<!ENTITY % glossdef.role.attrib "%role.attrib;">
+
+<!ENTITY % glossdef.element "INCLUDE">
+<![%glossdef.element;[
+<!ELEMENT glossdef ((%glossdef.mix;)+, glossseealso*)>
+<!--end of glossdef.element-->]]>
+
+<!-- Subject: List of subjects; keywords for the definition -->
+
+
+<!ENTITY % glossdef.attlist "INCLUDE">
+<![%glossdef.attlist;[
+<!ATTLIST glossdef
+ subject CDATA #IMPLIED
+ %common.attrib;
+ %glossdef.role.attrib;
+ %local.glossdef.attrib;
+>
+<!--end of glossdef.attlist-->]]>
+<!--end of glossdef.module-->]]>
+
+<!ENTITY % glosssee.module "INCLUDE">
+<![%glosssee.module;[
+<!ENTITY % local.glosssee.attrib "">
+<!ENTITY % glosssee.role.attrib "%role.attrib;">
+
+<!ENTITY % glosssee.element "INCLUDE">
+<![%glosssee.element;[
+<!ELEMENT glosssee (%para.char.mix;)*>
+<!--end of glosssee.element-->]]>
+
+<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
+ should be displayed at the point of the GlossSee -->
+
+
+<!ENTITY % glosssee.attlist "INCLUDE">
+<![%glosssee.attlist;[
+<!ATTLIST glosssee
+ otherterm IDREF #IMPLIED
+ %common.attrib;
+ %glosssee.role.attrib;
+ %local.glosssee.attrib;
+>
+<!--end of glosssee.attlist-->]]>
+<!--end of glosssee.module-->]]>
+
+<!ENTITY % glossseealso.module "INCLUDE">
+<![%glossseealso.module;[
+<!ENTITY % local.glossseealso.attrib "">
+<!ENTITY % glossseealso.role.attrib "%role.attrib;">
+
+<!ENTITY % glossseealso.element "INCLUDE">
+<![%glossseealso.element;[
+<!ELEMENT glossseealso (%para.char.mix;)*>
+<!--end of glossseealso.element-->]]>
+
+<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
+ should be displayed at the point of the GlossSeeAlso -->
+
+
+<!ENTITY % glossseealso.attlist "INCLUDE">
+<![%glossseealso.attlist;[
+<!ATTLIST glossseealso
+ otherterm IDREF #IMPLIED
+ %common.attrib;
+ %glossseealso.role.attrib;
+ %local.glossseealso.attrib;
+>
+<!--end of glossseealso.attlist-->]]>
+<!--end of glossseealso.module-->]]>
+<!--end of glossentry.content.module-->]]>
+
+<!-- ItemizedList and OrderedList ..... -->
+
+<!ENTITY % itemizedlist.module "INCLUDE">
+<![%itemizedlist.module;[
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % itemizedlist.element "INCLUDE">
+<![%itemizedlist.element;[
+<!ELEMENT itemizedlist ((%formalobject.title.content;)?, listitem+)>
+<!--end of itemizedlist.element-->]]>
+
+<!-- Spacing: Whether the vertical space in the list should be
+ compressed -->
+<!-- Mark: Keyword, e.g., bullet, dash, checkbox, none;
+ list of keywords and defaults are implementation specific -->
+
+
+<!ENTITY % itemizedlist.attlist "INCLUDE">
+<![%itemizedlist.attlist;[
+<!ATTLIST itemizedlist spacing (normal
+ |compact) #IMPLIED
+ %mark.attrib;
+ %common.attrib;
+ %itemizedlist.role.attrib;
+ %local.itemizedlist.attrib;
+>
+<!--end of itemizedlist.attlist-->]]>
+<!--end of itemizedlist.module-->]]>
+
+<!ENTITY % orderedlist.module "INCLUDE">
+<![%orderedlist.module;[
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % orderedlist.element "INCLUDE">
+<![%orderedlist.element;[
+<!ELEMENT orderedlist ((%formalobject.title.content;)?, listitem+)>
+<!--end of orderedlist.element-->]]>
+
+<!-- Numeration: Style of ListItem numbered; default is expected
+ to be Arabic -->
+<!-- InheritNum: Specifies for a nested list that the numbering
+ of ListItems should include the number of the item
+ within which they are nested (e.g., 1a and 1b within 1,
+ rather than a and b) -->
+<!-- Continuation: Where list numbering begins afresh (Restarts,
+ the default) or continues that of the immediately preceding
+ list (Continues) -->
+<!-- Spacing: Whether the vertical space in the list should be
+ compressed -->
+
+
+<!ENTITY % orderedlist.attlist "INCLUDE">
+<![%orderedlist.attlist;[
+<!ATTLIST orderedlist
+ numeration (arabic
+ |upperalpha
+ |loweralpha
+ |upperroman
+ |lowerroman) #IMPLIED
+ inheritnum (inherit
+ |ignore) "ignore"
+ continuation (continues
+ |restarts) "restarts"
+ spacing (normal
+ |compact) #IMPLIED
+ %common.attrib;
+ %orderedlist.role.attrib;
+ %local.orderedlist.attrib;
+>
+<!--end of orderedlist.attlist-->]]>
+<!--end of orderedlist.module-->]]>
+
+<!ENTITY % listitem.module "INCLUDE">
+<![%listitem.module;[
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+
+<!ENTITY % listitem.element "INCLUDE">
+<![%listitem.element;[
+<!ELEMENT listitem ((%component.mix;)+)>
+<!--end of listitem.element-->]]>
+
+<!-- Override: Indicates the mark to be used for this ListItem
+ instead of the default mark or the mark specified by
+ the Mark attribute on the enclosing ItemizedList -->
+
+
+<!ENTITY % listitem.attlist "INCLUDE">
+<![%listitem.attlist;[
+<!ATTLIST listitem
+ override CDATA #IMPLIED
+ %common.attrib;
+ %listitem.role.attrib;
+ %local.listitem.attrib;
+>
+<!--end of listitem.attlist-->]]>
+<!--end of listitem.module-->]]>
+
+<!-- SegmentedList .................... -->
+<!ENTITY % segmentedlist.content.module "INCLUDE">
+<![%segmentedlist.content.module;[
+<!ENTITY % segmentedlist.module "INCLUDE">
+<![%segmentedlist.module;[
+<!ENTITY % local.segmentedlist.attrib "">
+<!ENTITY % segmentedlist.role.attrib "%role.attrib;">
+
+<!ENTITY % segmentedlist.element "INCLUDE">
+<![%segmentedlist.element;[
+<!ELEMENT segmentedlist ((%formalobject.title.content;)?,
+ segtitle, segtitle+,
+ seglistitem+)>
+<!--end of segmentedlist.element-->]]>
+
+<!ENTITY % segmentedlist.attlist "INCLUDE">
+<![%segmentedlist.attlist;[
+<!ATTLIST segmentedlist
+ %common.attrib;
+ %segmentedlist.role.attrib;
+ %local.segmentedlist.attrib;
+>
+<!--end of segmentedlist.attlist-->]]>
+<!--end of segmentedlist.module-->]]>
+
+<!ENTITY % segtitle.module "INCLUDE">
+<![%segtitle.module;[
+<!ENTITY % local.segtitle.attrib "">
+<!ENTITY % segtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % segtitle.element "INCLUDE">
+<![%segtitle.element;[
+<!ELEMENT segtitle (%title.char.mix;)*>
+<!--end of segtitle.element-->]]>
+
+<!ENTITY % segtitle.attlist "INCLUDE">
+<![%segtitle.attlist;[
+<!ATTLIST segtitle
+ %common.attrib;
+ %segtitle.role.attrib;
+ %local.segtitle.attrib;
+>
+<!--end of segtitle.attlist-->]]>
+<!--end of segtitle.module-->]]>
+
+<!ENTITY % seglistitem.module "INCLUDE">
+<![%seglistitem.module;[
+<!ENTITY % local.seglistitem.attrib "">
+<!ENTITY % seglistitem.role.attrib "%role.attrib;">
+
+<!ENTITY % seglistitem.element "INCLUDE">
+<![%seglistitem.element;[
+<!ELEMENT seglistitem (seg, seg+)>
+<!--end of seglistitem.element-->]]>
+
+<!ENTITY % seglistitem.attlist "INCLUDE">
+<![%seglistitem.attlist;[
+<!ATTLIST seglistitem
+ %common.attrib;
+ %seglistitem.role.attrib;
+ %local.seglistitem.attrib;
+>
+<!--end of seglistitem.attlist-->]]>
+<!--end of seglistitem.module-->]]>
+
+<!ENTITY % seg.module "INCLUDE">
+<![%seg.module;[
+<!ENTITY % local.seg.attrib "">
+<!ENTITY % seg.role.attrib "%role.attrib;">
+
+<!ENTITY % seg.element "INCLUDE">
+<![%seg.element;[
+<!ELEMENT seg (%para.char.mix;)*>
+<!--end of seg.element-->]]>
+
+<!ENTITY % seg.attlist "INCLUDE">
+<![%seg.attlist;[
+<!ATTLIST seg
+ %common.attrib;
+ %seg.role.attrib;
+ %local.seg.attrib;
+>
+<!--end of seg.attlist-->]]>
+<!--end of seg.module-->]]>
+<!--end of segmentedlist.content.module-->]]>
+
+<!-- SimpleList ....................... -->
+
+<!ENTITY % simplelist.content.module "INCLUDE">
+<![%simplelist.content.module;[
+<!ENTITY % simplelist.module "INCLUDE">
+<![%simplelist.module;[
+<!ENTITY % local.simplelist.attrib "">
+<!ENTITY % simplelist.role.attrib "%role.attrib;">
+
+<!ENTITY % simplelist.element "INCLUDE">
+<![%simplelist.element;[
+<!ELEMENT simplelist (member+)>
+<!--end of simplelist.element-->]]>
+
+<!-- Columns: The number of columns the array should contain -->
+<!-- Type: How the Members of the SimpleList should be
+ formatted: Inline (members separated with commas etc.
+ inline), Vert (top to bottom in n Columns), or Horiz (in
+ the direction of text flow) in n Columns. If Column
+ is 1 or implied, Type=Vert and Type=Horiz give the same
+ results. -->
+
+
+<!ENTITY % simplelist.attlist "INCLUDE">
+<![%simplelist.attlist;[
+<!ATTLIST simplelist
+ columns CDATA #IMPLIED
+ type (inline
+ |vert
+ |horiz) "vert"
+ %common.attrib;
+ %simplelist.role.attrib;
+ %local.simplelist.attrib;
+>
+<!--end of simplelist.attlist-->]]>
+<!--end of simplelist.module-->]]>
+
+<!ENTITY % member.module "INCLUDE">
+<![%member.module;[
+<!ENTITY % local.member.attrib "">
+<!ENTITY % member.role.attrib "%role.attrib;">
+
+<!ENTITY % member.element "INCLUDE">
+<![%member.element;[
+<!ELEMENT member (%para.char.mix;)*>
+<!--end of member.element-->]]>
+
+<!ENTITY % member.attlist "INCLUDE">
+<![%member.attlist;[
+<!ATTLIST member
+ %common.attrib;
+ %member.role.attrib;
+ %local.member.attrib;
+>
+<!--end of member.attlist-->]]>
+<!--end of member.module-->]]>
+<!--end of simplelist.content.module-->]]>
+
+<!-- VariableList ..................... -->
+
+<!ENTITY % variablelist.content.module "INCLUDE">
+<![%variablelist.content.module;[
+<!ENTITY % variablelist.module "INCLUDE">
+<![%variablelist.module;[
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+
+<!ENTITY % variablelist.element "INCLUDE">
+<![%variablelist.element;[
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!--end of variablelist.element-->]]>
+
+<!-- TermLength: Length beyond which the presentation engine
+ may consider the Term too long and select an alternate
+ presentation of the Term and, or, its associated ListItem. -->
+
+
+<!ENTITY % variablelist.attlist "INCLUDE">
+<![%variablelist.attlist;[
+<!ATTLIST variablelist
+ termlength CDATA #IMPLIED
+ %common.attrib;
+ %variablelist.role.attrib;
+ %local.variablelist.attrib;
+>
+<!--end of variablelist.attlist-->]]>
+<!--end of variablelist.module-->]]>
+
+<!ENTITY % varlistentry.module "INCLUDE">
+<![%varlistentry.module;[
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+
+<!ENTITY % varlistentry.element "INCLUDE">
+<![%varlistentry.element;[
+<!ELEMENT varlistentry (term+, listitem)>
+<!--end of varlistentry.element-->]]>
+
+<!ENTITY % varlistentry.attlist "INCLUDE">
+<![%varlistentry.attlist;[
+<!ATTLIST varlistentry
+ %common.attrib;
+ %varlistentry.role.attrib;
+ %local.varlistentry.attrib;
+>
+<!--end of varlistentry.attlist-->]]>
+<!--end of varlistentry.module-->]]>
+
+<!ENTITY % term.module "INCLUDE">
+<![%term.module;[
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+
+<!ENTITY % term.element "INCLUDE">
+<![%term.element;[
+<!ELEMENT term (%para.char.mix;)*>
+<!--end of term.element-->]]>
+
+<!ENTITY % term.attlist "INCLUDE">
+<![%term.attlist;[
+<!ATTLIST term
+ %common.attrib;
+ %term.role.attrib;
+ %local.term.attrib;
+>
+<!--end of term.attlist-->]]>
+<!--end of term.module-->]]>
+
+<!-- ListItem (defined above)-->
+<!--end of variablelist.content.module-->]]>
+
+<!-- CalloutList ...................... -->
+
+<!ENTITY % calloutlist.content.module "INCLUDE">
+<![%calloutlist.content.module;[
+<!ENTITY % calloutlist.module "INCLUDE">
+<![%calloutlist.module;[
+<!ENTITY % local.calloutlist.attrib "">
+<!ENTITY % calloutlist.role.attrib "%role.attrib;">
+
+<!ENTITY % calloutlist.element "INCLUDE">
+<![%calloutlist.element;[
+<!ELEMENT calloutlist ((%formalobject.title.content;)?, callout+)>
+<!--end of calloutlist.element-->]]>
+
+<!ENTITY % calloutlist.attlist "INCLUDE">
+<![%calloutlist.attlist;[
+<!ATTLIST calloutlist
+ %common.attrib;
+ %calloutlist.role.attrib;
+ %local.calloutlist.attrib;
+>
+<!--end of calloutlist.attlist-->]]>
+<!--end of calloutlist.module-->]]>
+
+<!ENTITY % callout.module "INCLUDE">
+<![%callout.module;[
+<!ENTITY % local.callout.attrib "">
+<!ENTITY % callout.role.attrib "%role.attrib;">
+
+<!ENTITY % callout.element "INCLUDE">
+<![%callout.element;[
+<!ELEMENT callout ((%component.mix;)+)>
+<!--end of callout.element-->]]>
+
+<!-- AreaRefs: IDs of one or more Areas or AreaSets described
+ by this Callout -->
+
+
+<!ENTITY % callout.attlist "INCLUDE">
+<![%callout.attlist;[
+<!ATTLIST callout
+ arearefs IDREFS #REQUIRED
+ %common.attrib;
+ %callout.role.attrib;
+ %local.callout.attrib;
+>
+<!--end of callout.attlist-->]]>
+<!--end of callout.module-->]]>
+<!--end of calloutlist.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Objects .............................................................. -->
+
+<!-- Examples etc. .................... -->
+
+<!ENTITY % example.module "INCLUDE">
+<![%example.module;[
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+
+<!ENTITY % example.element "INCLUDE">
+<![%example.element;[
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!--end of example.element-->]]>
+
+<!ENTITY % example.attlist "INCLUDE">
+<![%example.attlist;[
+<!ATTLIST example
+ %label.attrib;
+ %width.attrib;
+ %common.attrib;
+ %example.role.attrib;
+ %local.example.attrib;
+>
+<!--end of example.attlist-->]]>
+<!--end of example.module-->]]>
+
+<!ENTITY % informalexample.module "INCLUDE">
+<![%informalexample.module;[
+<!ENTITY % local.informalexample.attrib "">
+<!ENTITY % informalexample.role.attrib "%role.attrib;">
+
+<!ENTITY % informalexample.element "INCLUDE">
+<![%informalexample.element;[
+<!ELEMENT informalexample ((%example.mix;)+)>
+<!--end of informalexample.element-->]]>
+
+<!ENTITY % informalexample.attlist "INCLUDE">
+<![%informalexample.attlist;[
+<!ATTLIST informalexample
+ %width.attrib;
+ %common.attrib;
+ %informalexample.role.attrib;
+ %local.informalexample.attrib;
+>
+<!--end of informalexample.attlist-->]]>
+<!--end of informalexample.module-->]]>
+
+<!ENTITY % programlistingco.module "INCLUDE">
+<![%programlistingco.module;[
+<!ENTITY % local.programlistingco.attrib "">
+<!ENTITY % programlistingco.role.attrib "%role.attrib;">
+
+<!ENTITY % programlistingco.element "INCLUDE">
+<![%programlistingco.element;[
+<!ELEMENT programlistingco (areaspec, programlisting, calloutlist*)>
+<!--end of programlistingco.element-->]]>
+
+<!ENTITY % programlistingco.attlist "INCLUDE">
+<![%programlistingco.attlist;[
+<!ATTLIST programlistingco
+ %common.attrib;
+ %programlistingco.role.attrib;
+ %local.programlistingco.attrib;
+>
+<!--end of programlistingco.attlist-->]]>
+<!-- CalloutList (defined above in Lists)-->
+<!--end of informalexample.module-->]]>
+
+<!ENTITY % areaspec.content.module "INCLUDE">
+<![%areaspec.content.module;[
+<!ENTITY % areaspec.module "INCLUDE">
+<![%areaspec.module;[
+<!ENTITY % local.areaspec.attrib "">
+<!ENTITY % areaspec.role.attrib "%role.attrib;">
+
+<!ENTITY % areaspec.element "INCLUDE">
+<![%areaspec.element;[
+<!ELEMENT areaspec ((area|areaset)+)>
+<!--end of areaspec.element-->]]>
+
+<!-- Units: global unit of measure in which coordinates in
+ this spec are expressed:
+
+ - CALSPair "x1,y1 x2,y2": lower-left and upper-right
+ coordinates in a rectangle describing repro area in which
+ graphic is placed, where X and Y dimensions are each some
+ number 0..10000 (taken from CALS graphic attributes)
+
+ - LineColumn "line column": line number and column number
+ at which to start callout text in "linespecific" content
+
+ - LineRange "startline endline": whole lines from startline
+ to endline in "linespecific" content
+
+ - LineColumnPair "line1 col1 line2 col2": starting and ending
+ points of area in "linespecific" content that starts at
+ first position and ends at second position (including the
+ beginnings of any intervening lines)
+
+ - Other: directive to look at value of OtherUnits attribute
+ to get implementation-specific keyword
+
+ The default is implementation-specific; usually dependent on
+ the parent element (GraphicCO gets CALSPair, ProgramListingCO
+ and ScreenCO get LineColumn) -->
+<!-- OtherUnits: User-defined units -->
+
+
+<!ENTITY % areaspec.attlist "INCLUDE">
+<![%areaspec.attlist;[
+<!ATTLIST areaspec
+ units (calspair
+ |linecolumn
+ |linerange
+ |linecolumnpair
+ |other) #IMPLIED
+ otherunits NMTOKEN #IMPLIED
+ %common.attrib;
+ %areaspec.role.attrib;
+ %local.areaspec.attrib;
+>
+<!--end of areaspec.attlist-->]]>
+<!--end of areaspec.module-->]]>
+
+<!ENTITY % area.module "INCLUDE">
+<![%area.module;[
+<!ENTITY % local.area.attrib "">
+<!ENTITY % area.role.attrib "%role.attrib;">
+
+<!ENTITY % area.element "INCLUDE">
+<![%area.element;[
+<!ELEMENT area EMPTY>
+<!--end of area.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- to any related information -->
+<!-- Units: unit of measure in which coordinates in this
+ area are expressed; inherits from AreaSet and AreaSpec -->
+<!-- OtherUnits: User-defined units -->
+
+
+<!ENTITY % area.attlist "INCLUDE">
+<![%area.attlist;[
+<!ATTLIST area
+ %label.attrib;
+ %linkends.attrib;
+ units (calspair
+ |linecolumn
+ |linerange
+ |linecolumnpair
+ |other) #IMPLIED
+ otherunits NMTOKEN #IMPLIED
+ coords CDATA #REQUIRED
+ %idreq.common.attrib;
+ %area.role.attrib;
+ %local.area.attrib;
+>
+<!--end of area.attlist-->]]>
+<!--end of area.module-->]]>
+
+<!ENTITY % areaset.module "INCLUDE">
+<![%areaset.module;[
+<!ENTITY % local.areaset.attrib "">
+<!ENTITY % areaset.role.attrib "%role.attrib;">
+
+<!ENTITY % areaset.element "INCLUDE">
+<![%areaset.element;[
+<!ELEMENT areaset (area+)>
+<!--end of areaset.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- Units: unit of measure in which coordinates in this
+ area are expressed; inherits from AreaSpec -->
+
+
+<!ENTITY % areaset.attlist "INCLUDE">
+<![%areaset.attlist;[
+<!ATTLIST areaset
+ %label.attrib;
+ units (calspair
+ |linecolumn
+ |linerange
+ |linecolumnpair
+ |other) #IMPLIED
+ otherunits NMTOKEN #IMPLIED
+ coords CDATA #REQUIRED
+ %idreq.common.attrib;
+ %areaset.role.attrib;
+ %local.areaset.attrib;
+>
+<!--end of areaset.attlist-->]]>
+<!--end of areaset.module-->]]>
+<!--end of areaspec.content.module-->]]>
+
+<!ENTITY % programlisting.module "INCLUDE">
+<![%programlisting.module;[
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+
+<!ENTITY % programlisting.element "INCLUDE">
+<![%programlisting.element;[
+<!ELEMENT programlisting (%para.char.mix; | co | lineannotation)*>
+<!--end of programlisting.element-->]]>
+
+<!ENTITY % programlisting.attlist "INCLUDE">
+<![%programlisting.attlist;[
+<!ATTLIST programlisting
+ %width.attrib;
+ %linespecific.attrib;
+ %common.attrib;
+ %programlisting.role.attrib;
+ %local.programlisting.attrib;
+>
+<!--end of programlisting.attlist-->]]>
+<!--end of programlisting.module-->]]>
+
+<!ENTITY % literallayout.module "INCLUDE">
+<![%literallayout.module;[
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+
+<!ENTITY % literallayout.element "INCLUDE">
+<![%literallayout.element;[
+<!ELEMENT literallayout (%para.char.mix; | lineannotation | co)*>
+<!--end of literallayout.element-->]]>
+
+<!ENTITY % literallayout.attlist "INCLUDE">
+<![%literallayout.attlist;[
+<!ATTLIST literallayout
+ %width.attrib;
+ %linespecific.attrib;
+ class (monospaced|normal) "normal"
+ %common.attrib;
+ %literallayout.role.attrib;
+ %local.literallayout.attrib;
+>
+<!--end of literallayout.attlist-->]]>
+<!-- LineAnnotation (defined in the Inlines section, below)-->
+<!--end of literallayout.module-->]]>
+
+<!ENTITY % screenco.module "INCLUDE">
+<![%screenco.module;[
+<!ENTITY % local.screenco.attrib "">
+<!ENTITY % screenco.role.attrib "%role.attrib;">
+
+<!ENTITY % screenco.element "INCLUDE">
+<![%screenco.element;[
+<!ELEMENT screenco (areaspec, screen, calloutlist*)>
+<!--end of screenco.element-->]]>
+
+<!ENTITY % screenco.attlist "INCLUDE">
+<![%screenco.attlist;[
+<!ATTLIST screenco
+ %common.attrib;
+ %screenco.role.attrib;
+ %local.screenco.attrib;
+>
+<!--end of screenco.attlist-->]]>
+<!-- AreaSpec (defined above)-->
+<!-- CalloutList (defined above in Lists)-->
+<!--end of screenco.module-->]]>
+
+<!ENTITY % screen.module "INCLUDE">
+<![%screen.module;[
+<!ENTITY % local.screen.attrib "">
+<!ENTITY % screen.role.attrib "%role.attrib;">
+
+<!ENTITY % screen.element "INCLUDE">
+<![%screen.element;[
+<!ELEMENT screen (%para.char.mix; | co | lineannotation)*>
+<!--end of screen.element-->]]>
+
+<!ENTITY % screen.attlist "INCLUDE">
+<![%screen.attlist;[
+<!ATTLIST screen
+ %width.attrib;
+ %linespecific.attrib;
+ %common.attrib;
+ %screen.role.attrib;
+ %local.screen.attrib;
+>
+<!--end of screen.attlist-->]]>
+<!--end of screen.module-->]]>
+
+<!ENTITY % screenshot.content.module "INCLUDE">
+<![%screenshot.content.module;[
+<!ENTITY % screenshot.module "INCLUDE">
+<![%screenshot.module;[
+<!ENTITY % local.screenshot.attrib "">
+<!ENTITY % screenshot.role.attrib "%role.attrib;">
+
+<!ENTITY % screenshot.element "INCLUDE">
+<![%screenshot.element;[
+<!ELEMENT screenshot (screeninfo?,
+ (graphic|graphicco
+ |mediaobject|mediaobjectco))>
+<!--end of screenshot.element-->]]>
+
+<!ENTITY % screenshot.attlist "INCLUDE">
+<![%screenshot.attlist;[
+<!ATTLIST screenshot
+ %common.attrib;
+ %screenshot.role.attrib;
+ %local.screenshot.attrib;
+>
+<!--end of screenshot.attlist-->]]>
+<!--end of screenshot.module-->]]>
+
+<!ENTITY % screeninfo.module "INCLUDE">
+<![%screeninfo.module;[
+<!ENTITY % local.screeninfo.attrib "">
+<!ENTITY % screeninfo.role.attrib "%role.attrib;">
+
+<!ENTITY % screeninfo.element "INCLUDE">
+<![%screeninfo.element;[
+<!ELEMENT screeninfo (%para.char.mix;)*>
+<!--end of screeninfo.element-->]]>
+
+<!ENTITY % screeninfo.attlist "INCLUDE">
+<![%screeninfo.attlist;[
+<!ATTLIST screeninfo
+ %common.attrib;
+ %screeninfo.role.attrib;
+ %local.screeninfo.attrib;
+>
+<!--end of screeninfo.attlist-->]]>
+<!--end of screeninfo.module-->]]>
+<!--end of screenshot.content.module-->]]>
+
+<!-- Figures etc. ..................... -->
+
+<!ENTITY % figure.module "INCLUDE">
+<![%figure.module;[
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+
+<!ENTITY % figure.element "INCLUDE">
+<![%figure.element;[
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+ %link.char.class;)+)>
+<!--end of figure.element-->]]>
+
+<!-- Float: Whether the Figure is supposed to be rendered
+ where convenient (yes (1) value) or at the place it occurs
+ in the text (no (0) value, the default) -->
+
+
+<!ENTITY % figure.attlist "INCLUDE">
+<![%figure.attlist;[
+<!ATTLIST figure
+ float %yesorno.attvals; '0'
+ pgwide %yesorno.attvals; #IMPLIED
+ %label.attrib;
+ %common.attrib;
+ %figure.role.attrib;
+ %local.figure.attrib;
+>
+<!--end of figure.attlist-->]]>
+<!--end of figure.module-->]]>
+
+<!ENTITY % informalfigure.module "INCLUDE">
+<![ %informalfigure.module; [
+<!ENTITY % local.informalfigure.attrib "">
+<!ENTITY % informalfigure.role.attrib "%role.attrib;">
+
+<!ENTITY % informalfigure.element "INCLUDE">
+<![ %informalfigure.element; [
+<!ELEMENT informalfigure ((%figure.mix; | %link.char.class;)+)>
+<!--end of informalfigure.element-->]]>
+
+<!ENTITY % informalfigure.attlist "INCLUDE">
+<![ %informalfigure.attlist; [
+<!--
+Float: Whether the Figure is supposed to be rendered
+where convenient (yes (1) value) or at the place it occurs
+in the text (no (0) value, the default)
+-->
+<!ATTLIST informalfigure
+ float %yesorno.attvals; "0"
+ pgwide %yesorno.attvals; #IMPLIED
+ %label.attrib;
+ %common.attrib;
+ %informalfigure.role.attrib;
+ %local.informalfigure.attrib;
+>
+<!--end of informalfigure.attlist-->]]>
+<!--end of informalfigure.module-->]]>
+
+<!ENTITY % graphicco.module "INCLUDE">
+<![%graphicco.module;[
+<!ENTITY % local.graphicco.attrib "">
+<!ENTITY % graphicco.role.attrib "%role.attrib;">
+
+<!ENTITY % graphicco.element "INCLUDE">
+<![%graphicco.element;[
+<!ELEMENT graphicco (areaspec, graphic, calloutlist*)>
+<!--end of graphicco.element-->]]>
+
+<!ENTITY % graphicco.attlist "INCLUDE">
+<![%graphicco.attlist;[
+<!ATTLIST graphicco
+ %common.attrib;
+ %graphicco.role.attrib;
+ %local.graphicco.attrib;
+>
+<!--end of graphicco.attlist-->]]>
+<!-- AreaSpec (defined above in Examples)-->
+<!-- CalloutList (defined above in Lists)-->
+<!--end of graphicco.module-->]]>
+
+<!-- Graphical data can be the content of Graphic, or you can reference
+ an external file either as an entity (Entitref) or a filename
+ (Fileref). -->
+
+<!ENTITY % graphic.module "INCLUDE">
+<![%graphic.module;[
+<!ENTITY % local.graphic.attrib "">
+<!ENTITY % graphic.role.attrib "%role.attrib;">
+
+<!ENTITY % graphic.element "INCLUDE">
+<![%graphic.element;[
+<!ELEMENT graphic EMPTY>
+<!--end of graphic.element-->]]>
+
+<!ENTITY % graphic.attlist "INCLUDE">
+<![%graphic.attlist;[
+<!ATTLIST graphic
+ %graphics.attrib;
+ %common.attrib;
+ %graphic.role.attrib;
+ %local.graphic.attrib;
+>
+<!--end of graphic.attlist-->]]>
+<!--end of graphic.module-->]]>
+
+<!ENTITY % inlinegraphic.module "INCLUDE">
+<![%inlinegraphic.module;[
+<!ENTITY % local.inlinegraphic.attrib "">
+<!ENTITY % inlinegraphic.role.attrib "%role.attrib;">
+
+<!ENTITY % inlinegraphic.element "INCLUDE">
+<![%inlinegraphic.element;[
+<!ELEMENT inlinegraphic EMPTY>
+<!--end of inlinegraphic.element-->]]>
+
+<!ENTITY % inlinegraphic.attlist "INCLUDE">
+<![%inlinegraphic.attlist;[
+<!ATTLIST inlinegraphic
+ %graphics.attrib;
+ %common.attrib;
+ %inlinegraphic.role.attrib;
+ %local.inlinegraphic.attrib;
+>
+<!--end of inlinegraphic.attlist-->]]>
+<!--end of inlinegraphic.module-->]]>
+
+<!ENTITY % mediaobject.content.module "INCLUDE">
+<![ %mediaobject.content.module; [
+
+<!ENTITY % mediaobject.module "INCLUDE">
+<![ %mediaobject.module; [
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+
+<!ENTITY % mediaobject.element "INCLUDE">
+<![ %mediaobject.element; [
+<!ELEMENT mediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*,
+ caption?)>
+<!--end of mediaobject.element-->]]>
+
+<!ENTITY % mediaobject.attlist "INCLUDE">
+<![ %mediaobject.attlist; [
+<!ATTLIST mediaobject
+ %common.attrib;
+ %mediaobject.role.attrib;
+ %local.mediaobject.attrib;
+>
+<!--end of mediaobject.attlist-->]]>
+<!--end of mediaobject.module-->]]>
+
+<!ENTITY % inlinemediaobject.module "INCLUDE">
+<![ %inlinemediaobject.module; [
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+
+<!ENTITY % inlinemediaobject.element "INCLUDE">
+<![ %inlinemediaobject.element; [
+<!ELEMENT inlinemediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*)>
+<!--end of inlinemediaobject.element-->]]>
+
+<!ENTITY % inlinemediaobject.attlist "INCLUDE">
+<![ %inlinemediaobject.attlist; [
+<!ATTLIST inlinemediaobject
+ %common.attrib;
+ %inlinemediaobject.role.attrib;
+ %local.inlinemediaobject.attrib;
+>
+<!--end of inlinemediaobject.attlist-->]]>
+<!--end of inlinemediaobject.module-->]]>
+
+<!ENTITY % videoobject.module "INCLUDE">
+<![ %videoobject.module; [
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+
+<!ENTITY % videoobject.element "INCLUDE">
+<![ %videoobject.element; [
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!--end of videoobject.element-->]]>
+
+<!ENTITY % videoobject.attlist "INCLUDE">
+<![ %videoobject.attlist; [
+<!ATTLIST videoobject
+ %common.attrib;
+ %videoobject.role.attrib;
+ %local.videoobject.attrib;
+>
+<!--end of videoobject.attlist-->]]>
+<!--end of videoobject.module-->]]>
+
+<!ENTITY % audioobject.module "INCLUDE">
+<![ %audioobject.module; [
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+
+<!ENTITY % audioobject.element "INCLUDE">
+<![ %audioobject.element; [
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!--end of audioobject.element-->]]>
+
+<!ENTITY % audioobject.attlist "INCLUDE">
+<![ %audioobject.attlist; [
+<!ATTLIST audioobject
+ %common.attrib;
+ %audioobject.role.attrib;
+ %local.audioobject.attrib;
+>
+<!--end of audioobject.attlist-->]]>
+<!--end of audioobject.module-->]]>
+
+<!ENTITY % imageobject.module "INCLUDE">
+<![ %imageobject.module; [
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+
+<!ENTITY % imageobject.element "INCLUDE">
+<![ %imageobject.element; [
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!--end of imageobject.element-->]]>
+
+<!ENTITY % imageobject.attlist "INCLUDE">
+<![ %imageobject.attlist; [
+<!ATTLIST imageobject
+ %common.attrib;
+ %imageobject.role.attrib;
+ %local.imageobject.attrib;
+>
+<!--end of imageobject.attlist-->]]>
+<!--end of imageobject.module-->]]>
+
+<!ENTITY % textobject.module "INCLUDE">
+<![ %textobject.module; [
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+
+<!ENTITY % textobject.element "INCLUDE">
+<![ %textobject.element; [
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!--end of textobject.element-->]]>
+
+<!ENTITY % textobject.attlist "INCLUDE">
+<![ %textobject.attlist; [
+<!ATTLIST textobject
+ %common.attrib;
+ %textobject.role.attrib;
+ %local.textobject.attrib;
+>
+<!--end of textobject.attlist-->]]>
+<!--end of textobject.module-->]]>
+
+<!ENTITY % objectinfo.module "INCLUDE">
+<![ %objectinfo.module; [
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % objectinfo.element "INCLUDE">
+<![ %objectinfo.element; [
+<!ELEMENT objectinfo ((graphic | mediaobject | legalnotice | modespec
+ | subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
+<!--end of objectinfo.element-->]]>
+
+<!ENTITY % objectinfo.attlist "INCLUDE">
+<![ %objectinfo.attlist; [
+<!ATTLIST objectinfo
+ %common.attrib;
+ %objectinfo.role.attrib;
+ %local.objectinfo.attrib;
+>
+<!--end of objectinfo.attlist-->]]>
+<!--end of objectinfo.module-->]]>
+
+<!--EntityRef: Name of an external entity containing the content
+ of the object data-->
+<!--FileRef: Filename, qualified by a pathname if desired,
+ designating the file containing the content of the object data-->
+<!--Format: Notation of the element content, if any-->
+<!--SrcCredit: Information about the source of the image-->
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+ "
+ entityref ENTITY #IMPLIED
+ fileref CDATA #IMPLIED
+ format (%notation.class;)
+ #IMPLIED
+ srccredit CDATA #IMPLIED
+ %local.objectdata.attrib;"
+>
+
+<!ENTITY % videodata.module "INCLUDE">
+<![ %videodata.module; [
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+
+<!ENTITY % videodata.element "INCLUDE">
+<![ %videodata.element; [
+<!ELEMENT videodata EMPTY>
+<!--end of videodata.element-->]]>
+
+<!ENTITY % videodata.attlist "INCLUDE">
+<![ %videodata.attlist; [
+
+<!--Width: Same as CALS reprowid (desired width)-->
+<!--Depth: Same as CALS reprodep (desired depth)-->
+<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ application-specific-->
+<!--Scale: Conflation of CALS hscale and vscale-->
+<!--Scalefit: Same as CALS scalefit-->
+<!ATTLIST videodata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %videodata.role.attrib;
+ %local.videodata.attrib;
+>
+<!--end of videodata.attlist-->]]>
+<!--end of videodata.module-->]]>
+
+<!ENTITY % audiodata.module "INCLUDE">
+<![ %audiodata.module; [
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+
+<!ENTITY % audiodata.element "INCLUDE">
+<![ %audiodata.element; [
+<!ELEMENT audiodata EMPTY>
+<!--end of audiodata.element-->]]>
+
+<!ENTITY % audiodata.attlist "INCLUDE">
+<![ %audiodata.attlist; [
+<!ATTLIST audiodata
+ %common.attrib;
+ %objectdata.attrib;
+ %local.audiodata.attrib;
+ %audiodata.role.attrib;
+>
+<!--end of audiodata.attlist-->]]>
+<!--end of audiodata.module-->]]>
+
+<!ENTITY % imagedata.module "INCLUDE">
+<![ %imagedata.module; [
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+
+<!ENTITY % imagedata.element "INCLUDE">
+<![ %imagedata.element; [
+<!ELEMENT imagedata EMPTY>
+<!--end of imagedata.element-->]]>
+
+<!ENTITY % imagedata.attlist "INCLUDE">
+<![ %imagedata.attlist; [
+
+<!--Width: Same as CALS reprowid (desired width)-->
+<!--Depth: Same as CALS reprodep (desired depth)-->
+<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means
+ application-specific-->
+<!--Scale: Conflation of CALS hscale and vscale-->
+<!--Scalefit: Same as CALS scalefit-->
+<!ATTLIST imagedata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %local.imagedata.attrib;
+ %imagedata.role.attrib;
+>
+<!--end of imagedata.attlist-->]]>
+<!--end of imagedata.module-->]]>
+
+<!ENTITY % caption.module "INCLUDE">
+<![ %caption.module; [
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+
+<!ENTITY % caption.element "INCLUDE">
+<![ %caption.element; [
+<!ELEMENT caption (%textobject.mix;)*>
+<!--end of caption.element-->]]>
+
+<!ENTITY % caption.attlist "INCLUDE">
+<![ %caption.attlist; [
+<!ATTLIST caption
+ %common.attrib;
+ %local.caption.attrib;
+ %caption.role.attrib;
+>
+<!--end of caption.attlist-->]]>
+<!--end of caption.module-->]]>
+
+<!ENTITY % mediaobjectco.module "INCLUDE">
+<![ %mediaobjectco.module; [
+<!ENTITY % local.mediaobjectco.attrib "">
+<!ENTITY % mediaobjectco.role.attrib "%role.attrib;">
+
+<!ENTITY % mediaobjectco.element "INCLUDE">
+<![ %mediaobjectco.element; [
+<!ELEMENT mediaobjectco (objectinfo?, imageobjectco,
+ (imageobjectco|textobject)*)>
+<!--end of mediaobjectco.element-->]]>
+
+<!ENTITY % mediaobjectco.attlist "INCLUDE">
+<![ %mediaobjectco.attlist; [
+<!ATTLIST mediaobjectco
+ %common.attrib;
+ %mediaobjectco.role.attrib;
+ %local.mediaobjectco.attrib;
+>
+<!--end of mediaobjectco.attlist-->]]>
+<!--end of mediaobjectco.module-->]]>
+
+<!ENTITY % imageobjectco.module "INCLUDE">
+<![ %imageobjectco.module; [
+<!ENTITY % local.imageobjectco.attrib "">
+<!ENTITY % imageobjectco.role.attrib "%role.attrib;">
+
+<!ENTITY % imageobjectco.element "INCLUDE">
+<![ %imageobjectco.element; [
+<!ELEMENT imageobjectco (areaspec, imageobject, calloutlist*)>
+<!--end of imageobjectco.element-->]]>
+
+<!ENTITY % imageobjectco.attlist "INCLUDE">
+<![ %imageobjectco.attlist; [
+<!ATTLIST imageobjectco
+ %common.attrib;
+ %imageobjectco.role.attrib;
+ %local.imageobjectco.attrib;
+>
+<!--end of imageobjectco.attlist-->]]>
+<!--end of imageobjectco.module-->]]>
+<!--end of mediaobject.content.module-->]]>
+
+<!-- Equations ........................ -->
+
+<!-- This PE provides a mechanism for replacing equation content, -->
+<!-- perhaps adding a new or different model (e.g., MathML) -->
+<!ENTITY % equation.content "(alt?, (graphic+|mediaobject+))">
+<!ENTITY % inlineequation.content "(alt?, (graphic+|inlinemediaobject+))">
+
+<!ENTITY % equation.module "INCLUDE">
+<![%equation.module;[
+<!ENTITY % local.equation.attrib "">
+<!ENTITY % equation.role.attrib "%role.attrib;">
+
+<!ENTITY % equation.element "INCLUDE">
+<![%equation.element;[
+<!ELEMENT equation ((%formalobject.title.content;)?, (informalequation |
+ %equation.content;))>
+<!--end of equation.element-->]]>
+
+<!ENTITY % equation.attlist "INCLUDE">
+<![%equation.attlist;[
+<!ATTLIST equation
+ %label.attrib;
+ %common.attrib;
+ %equation.role.attrib;
+ %local.equation.attrib;
+>
+<!--end of equation.attlist-->]]>
+<!--end of equation.module-->]]>
+
+<!ENTITY % informalequation.module "INCLUDE">
+<![%informalequation.module;[
+<!ENTITY % local.informalequation.attrib "">
+<!ENTITY % informalequation.role.attrib "%role.attrib;">
+
+<!ENTITY % informalequation.element "INCLUDE">
+<![%informalequation.element;[
+<!ELEMENT informalequation (%equation.content;) >
+<!--end of informalequation.element-->]]>
+
+<!ENTITY % informalequation.attlist "INCLUDE">
+<![%informalequation.attlist;[
+<!ATTLIST informalequation
+ %common.attrib;
+ %informalequation.role.attrib;
+ %local.informalequation.attrib;
+>
+<!--end of informalequation.attlist-->]]>
+<!--end of informalequation.module-->]]>
+
+<!ENTITY % inlineequation.module "INCLUDE">
+<![%inlineequation.module;[
+<!ENTITY % local.inlineequation.attrib "">
+<!ENTITY % inlineequation.role.attrib "%role.attrib;">
+
+<!ENTITY % inlineequation.element "INCLUDE">
+<![%inlineequation.element;[
+<!ELEMENT inlineequation (%inlineequation.content;)>
+<!--end of inlineequation.element-->]]>
+
+<!ENTITY % inlineequation.attlist "INCLUDE">
+<![%inlineequation.attlist;[
+<!ATTLIST inlineequation
+ %common.attrib;
+ %inlineequation.role.attrib;
+ %local.inlineequation.attrib;
+>
+<!--end of inlineequation.attlist-->]]>
+<!--end of inlineequation.module-->]]>
+
+<!ENTITY % alt.module "INCLUDE">
+<![%alt.module;[
+<!ENTITY % local.alt.attrib "">
+<!ENTITY % alt.role.attrib "%role.attrib;">
+
+<!ENTITY % alt.element "INCLUDE">
+<![%alt.element;[
+<!ELEMENT alt (#PCDATA)>
+<!--end of alt.element-->]]>
+
+<!ENTITY % alt.attlist "INCLUDE">
+<![%alt.attlist;[
+<!ATTLIST alt
+ %common.attrib;
+ %alt.role.attrib;
+ %local.alt.attrib;
+>
+<!--end of alt.attlist-->]]>
+<!--end of alt.module-->]]>
+
+<!-- Tables ........................... -->
+
+<!ENTITY % table.module "INCLUDE">
+<![%table.module;[
+
+<!-- Choose a table model. CALS or OASIS XML Exchange -->
+
+<!ENTITY % cals.table.module "INCLUDE">
+<![%cals.table.module;[
+<!ENTITY % exchange.table.module "IGNORE">
+]]>
+<!ENTITY % exchange.table.module "INCLUDE">
+
+<!ENTITY % tables.role.attrib "%role.attrib;">
+
+<![%cals.table.module;[
+<!-- Add label and role attributes to table and informaltable -->
+<!ENTITY % bodyatt "%label.attrib;">
+
+<!-- Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
+ EntryTbl, and Entry (and InformalTable element). -->
+<!ENTITY % secur
+ "%common.attrib;
+ %tables.role.attrib;">
+
+<!ENTITY % common.table.attribs
+ "%bodyatt;
+ %secur;">
+
+<!-- Content model for Table. -->
+<!ENTITY % tbl.table.mdl
+ "((%formalobject.title.content;), (%ndxterm.class;)*,
+ (graphic+|mediaobject+|tgroup+))">
+
+<!-- Allow either objects or inlines; beware of REs between elements. -->
+<!ENTITY % tbl.entry.mdl "%para.char.mix; | %tabentry.mix;">
+
+<!-- Reference CALS Table Model -->
+<!ENTITY % tablemodel
+ PUBLIC "-//OASIS//DTD DocBook XML CALS Table Model V4.1.2//EN"
+ "calstblx.dtd">
+]]>
+
+<![%exchange.table.module;[
+<!-- Add common attributes and the Label attribute to Table and -->
+<!-- InformalTable. -->
+<!ENTITY % bodyatt
+ "%common.attrib;
+ %label.attrib;
+ %tables.role.attrib;">
+
+<!ENTITY % common.table.attribs
+ "%bodyatt;">
+
+<!-- Add common attributes to TGroup, ColSpec, TBody, THead, Row, Entry -->
+
+<!ENTITY % tbl.tgroup.att "%common.attrib;">
+<!ENTITY % tbl.colspec.att "%common.attrib;">
+<!ENTITY % tbl.tbody.att "%common.attrib;">
+<!ENTITY % tbl.thead.att "%common.attrib;">
+<!ENTITY % tbl.row.att "%common.attrib;">
+<!ENTITY % tbl.entry.att "%common.attrib;">
+
+<!-- Content model for Table. -->
+<!ENTITY % tbl.table.mdl
+ "((%formalobject.title.content;),
+ (%ndxterm.class;)*,
+ (graphic+|tgroup+))">
+
+<!-- Allow either objects or inlines; beware of REs between elements. -->
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+
+<!-- Reference OASIS Exchange Table Model -->
+<!ENTITY % tablemodel
+ PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN"
+ "soextblx.dtd">
+]]>
+
+%tablemodel;
+
+<!--end of table.module-->]]>
+
+<!ENTITY % informaltable.module "INCLUDE">
+<![%informaltable.module;[
+
+<!-- Note that InformalTable is dependent on some of the entity
+ declarations that customize Table. -->
+
+<!ENTITY % local.informaltable.attrib "">
+
+<!ENTITY % informaltable.element "INCLUDE">
+<![%informaltable.element;[
+<!ELEMENT informaltable (graphic+|mediaobject+|tgroup+)>
+<!--end of informaltable.element-->]]>
+
+<!-- Frame, Colsep, and Rowsep must be repeated because
+ they are not in entities in the table module. -->
+<!-- includes TabStyle, ToCentry, ShortEntry,
+ Orient, PgWide -->
+<!-- includes Label -->
+<!-- includes common attributes -->
+
+
+<!ENTITY % informaltable.attlist "INCLUDE">
+<![%informaltable.attlist;[
+<!ATTLIST informaltable
+ frame (top
+ |bottom
+ |topbot
+ |all
+ |sides
+ |none) #IMPLIED
+ colsep %yesorno.attvals; #IMPLIED
+ rowsep %yesorno.attvals; #IMPLIED
+ %common.table.attribs;
+ %tbl.table.att;
+ %local.informaltable.attrib;
+>
+<!--end of informaltable.attlist-->]]>
+<!--end of informaltable.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Synopses ............................................................. -->
+
+<!-- Synopsis ......................... -->
+
+<!ENTITY % synopsis.module "INCLUDE">
+<![%synopsis.module;[
+<!ENTITY % local.synopsis.attrib "">
+<!ENTITY % synopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % synopsis.element "INCLUDE">
+<![%synopsis.element;[
+<!ELEMENT synopsis (%para.char.mix; | graphic | mediaobject | lineannotation | co)*>
+<!--end of synopsis.element-->]]>
+
+<!ENTITY % synopsis.attlist "INCLUDE">
+<![%synopsis.attlist;[
+<!ATTLIST synopsis
+ %label.attrib;
+ %linespecific.attrib;
+ %common.attrib;
+ %synopsis.role.attrib;
+ %local.synopsis.attrib;
+>
+<!--end of synopsis.attlist-->]]>
+
+<!-- LineAnnotation (defined in the Inlines section, below)-->
+<!--end of synopsis.module-->]]>
+
+<!-- CmdSynopsis ...................... -->
+
+<!ENTITY % cmdsynopsis.content.module "INCLUDE">
+<![%cmdsynopsis.content.module;[
+<!ENTITY % cmdsynopsis.module "INCLUDE">
+<![%cmdsynopsis.module;[
+<!ENTITY % local.cmdsynopsis.attrib "">
+<!ENTITY % cmdsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % cmdsynopsis.element "INCLUDE">
+<![%cmdsynopsis.element;[
+<!ELEMENT cmdsynopsis ((command | arg | group | sbr)+, synopfragment*)>
+<!--end of cmdsynopsis.element-->]]>
+
+<!-- Sepchar: Character that should separate command and all
+ top-level arguments; alternate value might be e.g., &Delta; -->
+
+
+<!ENTITY % cmdsynopsis.attlist "INCLUDE">
+<![%cmdsynopsis.attlist;[
+<!ATTLIST cmdsynopsis
+ %label.attrib;
+ sepchar CDATA " "
+ cmdlength CDATA #IMPLIED
+ %common.attrib;
+ %cmdsynopsis.role.attrib;
+ %local.cmdsynopsis.attrib;
+>
+<!--end of cmdsynopsis.attlist-->]]>
+<!--end of cmdsynopsis.module-->]]>
+
+<!ENTITY % arg.module "INCLUDE">
+<![%arg.module;[
+<!ENTITY % local.arg.attrib "">
+<!ENTITY % arg.role.attrib "%role.attrib;">
+
+<!ENTITY % arg.element "INCLUDE">
+<![%arg.element;[
+<!ELEMENT arg (#PCDATA
+ | arg
+ | group
+ | option
+ | synopfragmentref
+ | replaceable
+ | sbr)*>
+<!--end of arg.element-->]]>
+
+<!-- Choice: Whether Arg must be supplied: Opt (optional to
+ supply, e.g. [arg]; the default), Req (required to supply,
+ e.g. {arg}), or Plain (required to supply, e.g. arg) -->
+<!-- Rep: whether Arg is repeatable: Norepeat (e.g. arg without
+ ellipsis; the default), or Repeat (e.g. arg...) -->
+
+
+<!ENTITY % arg.attlist "INCLUDE">
+<![%arg.attlist;[
+<!ATTLIST arg
+ choice (opt
+ |req
+ |plain) 'opt'
+ rep (norepeat
+ |repeat) 'norepeat'
+ %common.attrib;
+ %arg.role.attrib;
+ %local.arg.attrib;
+>
+<!--end of arg.attlist-->]]>
+<!--end of arg.module-->]]>
+
+<!ENTITY % group.module "INCLUDE">
+<![%group.module;[
+
+<!ENTITY % local.group.attrib "">
+<!ENTITY % group.role.attrib "%role.attrib;">
+
+<!ENTITY % group.element "INCLUDE">
+<![%group.element;[
+<!ELEMENT group ((arg | group | option | synopfragmentref
+ | replaceable | sbr)+)>
+<!--end of group.element-->]]>
+
+<!-- Choice: Whether Group must be supplied: Opt (optional to
+ supply, e.g. [g1|g2|g3]; the default), Req (required to
+ supply, e.g. {g1|g2|g3}), Plain (required to supply,
+ e.g. g1|g2|g3), OptMult (can supply zero or more, e.g.
+ [[g1|g2|g3]]), or ReqMult (must supply one or more, e.g.
+ {{g1|g2|g3}}) -->
+<!-- Rep: whether Group is repeatable: Norepeat (e.g. group
+ without ellipsis; the default), or Repeat (e.g. group...) -->
+
+
+<!ENTITY % group.attlist "INCLUDE">
+<![%group.attlist;[
+<!ATTLIST group
+ choice (opt
+ |req
+ |plain) 'opt'
+ rep (norepeat
+ |repeat) 'norepeat'
+ %common.attrib;
+ %group.role.attrib;
+ %local.group.attrib;
+>
+<!--end of group.attlist-->]]>
+<!--end of group.module-->]]>
+
+<!ENTITY % sbr.module "INCLUDE">
+<![%sbr.module;[
+<!ENTITY % local.sbr.attrib "">
+<!-- Synopsis break -->
+<!ENTITY % sbr.role.attrib "%role.attrib;">
+
+<!ENTITY % sbr.element "INCLUDE">
+<![%sbr.element;[
+<!ELEMENT sbr EMPTY>
+<!--end of sbr.element-->]]>
+
+<!ENTITY % sbr.attlist "INCLUDE">
+<![%sbr.attlist;[
+<!ATTLIST sbr
+ %common.attrib;
+ %sbr.role.attrib;
+ %local.sbr.attrib;
+>
+<!--end of sbr.attlist-->]]>
+<!--end of sbr.module-->]]>
+
+<!ENTITY % synopfragmentref.module "INCLUDE">
+<![%synopfragmentref.module;[
+<!ENTITY % local.synopfragmentref.attrib "">
+<!ENTITY % synopfragmentref.role.attrib "%role.attrib;">
+
+<!ENTITY % synopfragmentref.element "INCLUDE">
+<![%synopfragmentref.element;[
+<!ELEMENT synopfragmentref (#PCDATA)>
+<!--end of synopfragmentref.element-->]]>
+
+<!-- to SynopFragment of complex synopsis
+ material for separate referencing -->
+
+
+<!ENTITY % synopfragmentref.attlist "INCLUDE">
+<![%synopfragmentref.attlist;[
+<!ATTLIST synopfragmentref
+ %linkendreq.attrib; %common.attrib;
+ %synopfragmentref.role.attrib;
+ %local.synopfragmentref.attrib;
+>
+<!--end of synopfragmentref.attlist-->]]>
+<!--end of synopfragmentref.module-->]]>
+
+<!ENTITY % synopfragment.module "INCLUDE">
+<![%synopfragment.module;[
+<!ENTITY % local.synopfragment.attrib "">
+<!ENTITY % synopfragment.role.attrib "%role.attrib;">
+
+<!ENTITY % synopfragment.element "INCLUDE">
+<![%synopfragment.element;[
+<!ELEMENT synopfragment ((arg | group)+)>
+<!--end of synopfragment.element-->]]>
+
+<!ENTITY % synopfragment.attlist "INCLUDE">
+<![%synopfragment.attlist;[
+<!ATTLIST synopfragment
+ %idreq.common.attrib;
+ %synopfragment.role.attrib;
+ %local.synopfragment.attrib;
+>
+<!--end of synopfragment.attlist-->]]>
+<!--end of synopfragment.module-->]]>
+
+<!-- Command (defined in the Inlines section, below)-->
+<!-- Option (defined in the Inlines section, below)-->
+<!-- Replaceable (defined in the Inlines section, below)-->
+<!--end of cmdsynopsis.content.module-->]]>
+
+<!-- FuncSynopsis ..................... -->
+
+<!ENTITY % funcsynopsis.content.module "INCLUDE">
+<![%funcsynopsis.content.module;[
+<!ENTITY % funcsynopsis.module "INCLUDE">
+<![%funcsynopsis.module;[
+
+<!ENTITY % local.funcsynopsis.attrib "">
+<!ENTITY % funcsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % funcsynopsis.element "INCLUDE">
+<![%funcsynopsis.element;[
+<!ELEMENT funcsynopsis ((funcsynopsisinfo | funcprototype)+)>
+<!--end of funcsynopsis.element-->]]>
+
+<!ENTITY % funcsynopsis.attlist "INCLUDE">
+<![%funcsynopsis.attlist;[
+<!ATTLIST funcsynopsis
+ %label.attrib;
+ %common.attrib;
+ %funcsynopsis.role.attrib;
+ %local.funcsynopsis.attrib;
+>
+<!--end of funcsynopsis.attlist-->]]>
+<!--end of funcsynopsis.module-->]]>
+
+<!ENTITY % funcsynopsisinfo.module "INCLUDE">
+<![%funcsynopsisinfo.module;[
+<!ENTITY % local.funcsynopsisinfo.attrib "">
+<!ENTITY % funcsynopsisinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % funcsynopsisinfo.element "INCLUDE">
+<![%funcsynopsisinfo.element;[
+<!ELEMENT funcsynopsisinfo (%cptr.char.mix; | lineannotation)*>
+<!--end of funcsynopsisinfo.element-->]]>
+
+<!ENTITY % funcsynopsisinfo.attlist "INCLUDE">
+<![%funcsynopsisinfo.attlist;[
+<!ATTLIST funcsynopsisinfo
+ %linespecific.attrib;
+ %common.attrib;
+ %funcsynopsisinfo.role.attrib;
+ %local.funcsynopsisinfo.attrib;
+>
+<!--end of funcsynopsisinfo.attlist-->]]>
+<!--end of funcsynopsisinfo.module-->]]>
+
+<!ENTITY % funcprototype.module "INCLUDE">
+<![%funcprototype.module;[
+<!ENTITY % local.funcprototype.attrib "">
+<!ENTITY % funcprototype.role.attrib "%role.attrib;">
+
+<!ENTITY % funcprototype.element "INCLUDE">
+<![%funcprototype.element;[
+<!ELEMENT funcprototype (funcdef, (void | varargs | paramdef+))>
+<!--end of funcprototype.element-->]]>
+
+<!ENTITY % funcprototype.attlist "INCLUDE">
+<![%funcprototype.attlist;[
+<!ATTLIST funcprototype
+ %common.attrib;
+ %funcprototype.role.attrib;
+ %local.funcprototype.attrib;
+>
+<!--end of funcprototype.attlist-->]]>
+<!--end of funcprototype.module-->]]>
+
+<!ENTITY % funcdef.module "INCLUDE">
+<![%funcdef.module;[
+<!ENTITY % local.funcdef.attrib "">
+<!ENTITY % funcdef.role.attrib "%role.attrib;">
+
+<!ENTITY % funcdef.element "INCLUDE">
+<![%funcdef.element;[
+<!ELEMENT funcdef (#PCDATA
+ | replaceable
+ | function)*>
+<!--end of funcdef.element-->]]>
+
+<!ENTITY % funcdef.attlist "INCLUDE">
+<![%funcdef.attlist;[
+<!ATTLIST funcdef
+ %common.attrib;
+ %funcdef.role.attrib;
+ %local.funcdef.attrib;
+>
+<!--end of funcdef.attlist-->]]>
+<!--end of funcdef.module-->]]>
+
+<!ENTITY % void.module "INCLUDE">
+<![%void.module;[
+<!ENTITY % local.void.attrib "">
+<!ENTITY % void.role.attrib "%role.attrib;">
+
+<!ENTITY % void.element "INCLUDE">
+<![%void.element;[
+<!ELEMENT void EMPTY>
+<!--end of void.element-->]]>
+
+<!ENTITY % void.attlist "INCLUDE">
+<![%void.attlist;[
+<!ATTLIST void
+ %common.attrib;
+ %void.role.attrib;
+ %local.void.attrib;
+>
+<!--end of void.attlist-->]]>
+<!--end of void.module-->]]>
+
+<!ENTITY % varargs.module "INCLUDE">
+<![%varargs.module;[
+<!ENTITY % local.varargs.attrib "">
+<!ENTITY % varargs.role.attrib "%role.attrib;">
+
+<!ENTITY % varargs.element "INCLUDE">
+<![%varargs.element;[
+<!ELEMENT varargs EMPTY>
+<!--end of varargs.element-->]]>
+
+<!ENTITY % varargs.attlist "INCLUDE">
+<![%varargs.attlist;[
+<!ATTLIST varargs
+ %common.attrib;
+ %varargs.role.attrib;
+ %local.varargs.attrib;
+>
+<!--end of varargs.attlist-->]]>
+<!--end of varargs.module-->]]>
+
+<!-- Processing assumes that only one Parameter will appear in a
+ ParamDef, and that FuncParams will be used at most once, for
+ providing information on the "inner parameters" for parameters that
+ are pointers to functions. -->
+
+<!ENTITY % paramdef.module "INCLUDE">
+<![%paramdef.module;[
+<!ENTITY % local.paramdef.attrib "">
+<!ENTITY % paramdef.role.attrib "%role.attrib;">
+
+<!ENTITY % paramdef.element "INCLUDE">
+<![%paramdef.element;[
+<!ELEMENT paramdef (#PCDATA
+ | replaceable
+ | parameter
+ | funcparams)*>
+<!--end of paramdef.element-->]]>
+
+<!ENTITY % paramdef.attlist "INCLUDE">
+<![%paramdef.attlist;[
+<!ATTLIST paramdef
+ %common.attrib;
+ %paramdef.role.attrib;
+ %local.paramdef.attrib;
+>
+<!--end of paramdef.attlist-->]]>
+<!--end of paramdef.module-->]]>
+
+<!ENTITY % funcparams.module "INCLUDE">
+<![%funcparams.module;[
+<!ENTITY % local.funcparams.attrib "">
+<!ENTITY % funcparams.role.attrib "%role.attrib;">
+
+<!ENTITY % funcparams.element "INCLUDE">
+<![%funcparams.element;[
+<!ELEMENT funcparams (%cptr.char.mix;)*>
+<!--end of funcparams.element-->]]>
+
+<!ENTITY % funcparams.attlist "INCLUDE">
+<![%funcparams.attlist;[
+<!ATTLIST funcparams
+ %common.attrib;
+ %funcparams.role.attrib;
+ %local.funcparams.attrib;
+>
+<!--end of funcparams.attlist-->]]>
+<!--end of funcparams.module-->]]>
+
+<!-- LineAnnotation (defined in the Inlines section, below)-->
+<!-- Replaceable (defined in the Inlines section, below)-->
+<!-- Function (defined in the Inlines section, below)-->
+<!-- Parameter (defined in the Inlines section, below)-->
+<!--end of funcsynopsis.content.module-->]]>
+
+<!-- ClassSynopsis ..................... -->
+
+<!ENTITY % classsynopsis.content.module "INCLUDE">
+<![%classsynopsis.content.module;[
+
+<!ENTITY % classsynopsis.module "INCLUDE">
+<![%classsynopsis.module;[
+<!ENTITY % local.classsynopsis.attrib "">
+<!ENTITY % classsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % classsynopsis.element "INCLUDE">
+<![%classsynopsis.element;[
+<!ELEMENT classsynopsis ((ooclass|oointerface|ooexception)+,
+ (classsynopsisinfo
+ |fieldsynopsis|%method.synop.class;)*)>
+<!--end of classsynopsis.element-->]]>
+
+<!ENTITY % classsynopsis.attlist "INCLUDE">
+<![%classsynopsis.attlist;[
+<!ATTLIST classsynopsis
+ %common.attrib;
+ %classsynopsis.role.attrib;
+ %local.classsynopsis.attrib;
+ language CDATA #IMPLIED
+ class (class|interface) "class"
+>
+<!--end of classsynopsis.attlist-->]]>
+<!--end of classsynopsis.module-->]]>
+
+<!ENTITY % classsynopsisinfo.module "INCLUDE">
+<![ %classsynopsisinfo.module; [
+<!ENTITY % local.classsynopsisinfo.attrib "">
+<!ENTITY % classsynopsisinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % classsynopsisinfo.element "INCLUDE">
+<![ %classsynopsisinfo.element; [
+<!ELEMENT classsynopsisinfo (%cptr.char.mix; | lineannotation)*>
+<!--end of classsynopsisinfo.element-->]]>
+
+<!ENTITY % classsynopsisinfo.attlist "INCLUDE">
+<![ %classsynopsisinfo.attlist; [
+<!ATTLIST classsynopsisinfo
+ %linespecific.attrib;
+ %common.attrib;
+ %classsynopsisinfo.role.attrib;
+ %local.classsynopsisinfo.attrib;
+>
+<!--end of classsynopsisinfo.attlist-->]]>
+<!--end of classsynopsisinfo.module-->]]>
+
+<!ENTITY % ooclass.module "INCLUDE">
+<![%ooclass.module;[
+<!ENTITY % local.ooclass.attrib "">
+<!ENTITY % ooclass.role.attrib "%role.attrib;">
+
+<!ENTITY % ooclass.element "INCLUDE">
+<![%ooclass.element;[
+<!ELEMENT ooclass (modifier*, classname)>
+<!--end of ooclass.element-->]]>
+
+<!ENTITY % ooclass.attlist "INCLUDE">
+<![%ooclass.attlist;[
+<!ATTLIST ooclass
+ %common.attrib;
+ %ooclass.role.attrib;
+ %local.ooclass.attrib;
+>
+<!--end of ooclass.attlist-->]]>
+<!--end of ooclass.module-->]]>
+
+<!ENTITY % oointerface.module "INCLUDE">
+<![%oointerface.module;[
+<!ENTITY % local.oointerface.attrib "">
+<!ENTITY % oointerface.role.attrib "%role.attrib;">
+
+<!ENTITY % oointerface.element "INCLUDE">
+<![%oointerface.element;[
+<!ELEMENT oointerface (modifier*, interfacename)>
+<!--end of oointerface.element-->]]>
+
+<!ENTITY % oointerface.attlist "INCLUDE">
+<![%oointerface.attlist;[
+<!ATTLIST oointerface
+ %common.attrib;
+ %oointerface.role.attrib;
+ %local.oointerface.attrib;
+>
+<!--end of oointerface.attlist-->]]>
+<!--end of oointerface.module-->]]>
+
+<!ENTITY % ooexception.module "INCLUDE">
+<![%ooexception.module;[
+<!ENTITY % local.ooexception.attrib "">
+<!ENTITY % ooexception.role.attrib "%role.attrib;">
+
+<!ENTITY % ooexception.element "INCLUDE">
+<![%ooexception.element;[
+<!ELEMENT ooexception (modifier*, exceptionname)>
+<!--end of ooexception.element-->]]>
+
+<!ENTITY % ooexception.attlist "INCLUDE">
+<![%ooexception.attlist;[
+<!ATTLIST ooexception
+ %common.attrib;
+ %ooexception.role.attrib;
+ %local.ooexception.attrib;
+>
+<!--end of ooexception.attlist-->]]>
+<!--end of ooexception.module-->]]>
+
+<!ENTITY % modifier.module "INCLUDE">
+<![%modifier.module;[
+<!ENTITY % local.modifier.attrib "">
+<!ENTITY % modifier.role.attrib "%role.attrib;">
+
+<!ENTITY % modifier.element "INCLUDE">
+<![%modifier.element;[
+<!ELEMENT modifier (%smallcptr.char.mix;)*>
+<!--end of modifier.element-->]]>
+
+<!ENTITY % modifier.attlist "INCLUDE">
+<![%modifier.attlist;[
+<!ATTLIST modifier
+ %common.attrib;
+ %modifier.role.attrib;
+ %local.modifier.attrib;
+>
+<!--end of modifier.attlist-->]]>
+<!--end of modifier.module-->]]>
+
+<!ENTITY % interfacename.module "INCLUDE">
+<![%interfacename.module;[
+<!ENTITY % local.interfacename.attrib "">
+<!ENTITY % interfacename.role.attrib "%role.attrib;">
+
+<!ENTITY % interfacename.element "INCLUDE">
+<![%interfacename.element;[
+<!ELEMENT interfacename (%smallcptr.char.mix;)*>
+<!--end of interfacename.element-->]]>
+
+<!ENTITY % interfacename.attlist "INCLUDE">
+<![%interfacename.attlist;[
+<!ATTLIST interfacename
+ %common.attrib;
+ %interfacename.role.attrib;
+ %local.interfacename.attrib;
+>
+<!--end of interfacename.attlist-->]]>
+<!--end of interfacename.module-->]]>
+
+<!ENTITY % exceptionname.module "INCLUDE">
+<![%exceptionname.module;[
+<!ENTITY % local.exceptionname.attrib "">
+<!ENTITY % exceptionname.role.attrib "%role.attrib;">
+
+<!ENTITY % exceptionname.element "INCLUDE">
+<![%exceptionname.element;[
+<!ELEMENT exceptionname (%smallcptr.char.mix;)*>
+<!--end of exceptionname.element-->]]>
+
+<!ENTITY % exceptionname.attlist "INCLUDE">
+<![%exceptionname.attlist;[
+<!ATTLIST exceptionname
+ %common.attrib;
+ %exceptionname.role.attrib;
+ %local.exceptionname.attrib;
+>
+<!--end of exceptionname.attlist-->]]>
+<!--end of exceptionname.module-->]]>
+
+<!ENTITY % fieldsynopsis.module "INCLUDE">
+<![%fieldsynopsis.module;[
+<!ENTITY % local.fieldsynopsis.attrib "">
+<!ENTITY % fieldsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % fieldsynopsis.element "INCLUDE">
+<![%fieldsynopsis.element;[
+<!ELEMENT fieldsynopsis (modifier*, type?, varname, initializer?)>
+<!--end of fieldsynopsis.element-->]]>
+
+<!ENTITY % fieldsynopsis.attlist "INCLUDE">
+<![%fieldsynopsis.attlist;[
+<!ATTLIST fieldsynopsis
+ %common.attrib;
+ %fieldsynopsis.role.attrib;
+ %local.fieldsynopsis.attrib;
+>
+<!--end of fieldsynopsis.attlist-->]]>
+<!--end of fieldsynopsis.module-->]]>
+
+<!ENTITY % initializer.module "INCLUDE">
+<![%initializer.module;[
+<!ENTITY % local.initializer.attrib "">
+<!ENTITY % initializer.role.attrib "%role.attrib;">
+
+<!ENTITY % initializer.element "INCLUDE">
+<![%initializer.element;[
+<!ELEMENT initializer (%smallcptr.char.mix;)*>
+<!--end of initializer.element-->]]>
+
+<!ENTITY % initializer.attlist "INCLUDE">
+<![%initializer.attlist;[
+<!ATTLIST initializer
+ %common.attrib;
+ %initializer.role.attrib;
+ %local.initializer.attrib;
+>
+<!--end of initializer.attlist-->]]>
+<!--end of initializer.module-->]]>
+
+<!ENTITY % constructorsynopsis.module "INCLUDE">
+<![%constructorsynopsis.module;[
+<!ENTITY % local.constructorsynopsis.attrib "">
+<!ENTITY % constructorsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % constructorsynopsis.element "INCLUDE">
+<![%constructorsynopsis.element;[
+<!ELEMENT constructorsynopsis (modifier*,
+ methodname?,
+ (methodparam+|void),
+ exceptionname*)>
+<!--end of constructorsynopsis.element-->]]>
+
+<!ENTITY % constructorsynopsis.attlist "INCLUDE">
+<![%constructorsynopsis.attlist;[
+<!ATTLIST constructorsynopsis
+ %common.attrib;
+ %constructorsynopsis.role.attrib;
+ %local.constructorsynopsis.attrib;
+>
+<!--end of constructorsynopsis.attlist-->]]>
+<!--end of constructorsynopsis.module-->]]>
+
+<!ENTITY % destructorsynopsis.module "INCLUDE">
+<![%destructorsynopsis.module;[
+<!ENTITY % local.destructorsynopsis.attrib "">
+<!ENTITY % destructorsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % destructorsynopsis.element "INCLUDE">
+<![%destructorsynopsis.element;[
+<!ELEMENT destructorsynopsis (modifier*,
+ methodname?,
+ (methodparam+|void),
+ exceptionname*)>
+<!--end of destructorsynopsis.element-->]]>
+
+<!ENTITY % destructorsynopsis.attlist "INCLUDE">
+<![%destructorsynopsis.attlist;[
+<!ATTLIST destructorsynopsis
+ %common.attrib;
+ %destructorsynopsis.role.attrib;
+ %local.destructorsynopsis.attrib;
+>
+<!--end of destructorsynopsis.attlist-->]]>
+<!--end of destructorsynopsis.module-->]]>
+
+<!ENTITY % methodsynopsis.module "INCLUDE">
+<![%methodsynopsis.module;[
+<!ENTITY % local.methodsynopsis.attrib "">
+<!ENTITY % methodsynopsis.role.attrib "%role.attrib;">
+
+<!ENTITY % methodsynopsis.element "INCLUDE">
+<![%methodsynopsis.element;[
+<!ELEMENT methodsynopsis (modifier*,
+ (type|void)?,
+ methodname,
+ (methodparam+|void),
+ exceptionname*,
+ modifier*)>
+<!--end of methodsynopsis.element-->]]>
+
+<!ENTITY % methodsynopsis.attlist "INCLUDE">
+<![%methodsynopsis.attlist;[
+<!ATTLIST methodsynopsis
+ %common.attrib;
+ %methodsynopsis.role.attrib;
+ %local.methodsynopsis.attrib;
+>
+<!--end of methodsynopsis.attlist-->]]>
+<!--end of methodsynopsis.module-->]]>
+
+<!ENTITY % methodname.module "INCLUDE">
+<![%methodname.module;[
+<!ENTITY % local.methodname.attrib "">
+<!ENTITY % methodname.role.attrib "%role.attrib;">
+
+<!ENTITY % methodname.element "INCLUDE">
+<![%methodname.element;[
+<!ELEMENT methodname (%smallcptr.char.mix;)*>
+<!--end of methodname.element-->]]>
+
+<!ENTITY % methodname.attlist "INCLUDE">
+<![%methodname.attlist;[
+<!ATTLIST methodname
+ %common.attrib;
+ %methodname.role.attrib;
+ %local.methodname.attrib;
+>
+<!--end of methodname.attlist-->]]>
+<!--end of methodname.module-->]]>
+
+<!ENTITY % methodparam.module "INCLUDE">
+<![%methodparam.module;[
+<!ENTITY % local.methodparam.attrib "">
+<!ENTITY % methodparam.role.attrib "%role.attrib;">
+
+<!ENTITY % methodparam.element "INCLUDE">
+<![%methodparam.element;[
+<!ELEMENT methodparam (modifier*,
+ type?,
+ ((parameter,initializer?)|funcparams),
+ modifier*)>
+<!--end of methodparam.element-->]]>
+
+<!ENTITY % methodparam.attlist "INCLUDE">
+<![%methodparam.attlist;[
+<!ATTLIST methodparam
+ %common.attrib;
+ %methodparam.role.attrib;
+ %local.methodparam.attrib;
+ choice (opt
+ |req
+ |plain) "req"
+ rep (norepeat
+ |repeat) "norepeat"
+>
+<!--end of methodparam.attlist-->]]>
+<!--end of methodparam.module-->]]>
+<!--end of classsynopsis.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Document information entities and elements ........................... -->
+
+<!-- The document information elements include some elements that are
+ currently used only in the document hierarchy module. They are
+ defined here so that they will be available for use in customized
+ document hierarchies. -->
+
+<!-- .................................. -->
+
+<!ENTITY % docinfo.content.module "INCLUDE">
+<![%docinfo.content.module;[
+
+<!-- Ackno ............................ -->
+
+<!ENTITY % ackno.module "INCLUDE">
+<![%ackno.module;[
+<!ENTITY % local.ackno.attrib "">
+<!ENTITY % ackno.role.attrib "%role.attrib;">
+
+<!ENTITY % ackno.element "INCLUDE">
+<![%ackno.element;[
+<!ELEMENT ackno (%docinfo.char.mix;)*>
+<!--end of ackno.element-->]]>
+
+<!ENTITY % ackno.attlist "INCLUDE">
+<![%ackno.attlist;[
+<!ATTLIST ackno
+ %common.attrib;
+ %ackno.role.attrib;
+ %local.ackno.attrib;
+>
+<!--end of ackno.attlist-->]]>
+<!--end of ackno.module-->]]>
+
+<!-- Address .......................... -->
+
+<!ENTITY % address.content.module "INCLUDE">
+<![%address.content.module;[
+<!ENTITY % address.module "INCLUDE">
+<![%address.module;[
+<!ENTITY % local.address.attrib "">
+<!ENTITY % address.role.attrib "%role.attrib;">
+
+<!ENTITY % address.element "INCLUDE">
+<![%address.element;[
+<!ELEMENT address (#PCDATA|%person.ident.mix;
+ |street|pob|postcode|city|state|country|phone
+ |fax|email|otheraddr)*>
+<!--end of address.element-->]]>
+
+<!ENTITY % address.attlist "INCLUDE">
+<![%address.attlist;[
+<!ATTLIST address
+ %linespecific.attrib;
+ %common.attrib;
+ %address.role.attrib;
+ %local.address.attrib;
+>
+<!--end of address.attlist-->]]>
+<!--end of address.module-->]]>
+
+ <!ENTITY % street.module "INCLUDE">
+ <![%street.module;[
+ <!ENTITY % local.street.attrib "">
+ <!ENTITY % street.role.attrib "%role.attrib;">
+
+<!ENTITY % street.element "INCLUDE">
+<![%street.element;[
+<!ELEMENT street (%docinfo.char.mix;)*>
+<!--end of street.element-->]]>
+
+<!ENTITY % street.attlist "INCLUDE">
+<![%street.attlist;[
+<!ATTLIST street
+ %common.attrib;
+ %street.role.attrib;
+ %local.street.attrib;
+>
+<!--end of street.attlist-->]]>
+ <!--end of street.module-->]]>
+
+ <!ENTITY % pob.module "INCLUDE">
+ <![%pob.module;[
+ <!ENTITY % local.pob.attrib "">
+ <!ENTITY % pob.role.attrib "%role.attrib;">
+
+<!ENTITY % pob.element "INCLUDE">
+<![%pob.element;[
+<!ELEMENT pob (%docinfo.char.mix;)*>
+<!--end of pob.element-->]]>
+
+<!ENTITY % pob.attlist "INCLUDE">
+<![%pob.attlist;[
+<!ATTLIST pob
+ %common.attrib;
+ %pob.role.attrib;
+ %local.pob.attrib;
+>
+<!--end of pob.attlist-->]]>
+ <!--end of pob.module-->]]>
+
+ <!ENTITY % postcode.module "INCLUDE">
+ <![%postcode.module;[
+ <!ENTITY % local.postcode.attrib "">
+ <!ENTITY % postcode.role.attrib "%role.attrib;">
+
+<!ENTITY % postcode.element "INCLUDE">
+<![%postcode.element;[
+<!ELEMENT postcode (%docinfo.char.mix;)*>
+<!--end of postcode.element-->]]>
+
+<!ENTITY % postcode.attlist "INCLUDE">
+<![%postcode.attlist;[
+<!ATTLIST postcode
+ %common.attrib;
+ %postcode.role.attrib;
+ %local.postcode.attrib;
+>
+<!--end of postcode.attlist-->]]>
+ <!--end of postcode.module-->]]>
+
+ <!ENTITY % city.module "INCLUDE">
+ <![%city.module;[
+ <!ENTITY % local.city.attrib "">
+ <!ENTITY % city.role.attrib "%role.attrib;">
+
+<!ENTITY % city.element "INCLUDE">
+<![%city.element;[
+<!ELEMENT city (%docinfo.char.mix;)*>
+<!--end of city.element-->]]>
+
+<!ENTITY % city.attlist "INCLUDE">
+<![%city.attlist;[
+<!ATTLIST city
+ %common.attrib;
+ %city.role.attrib;
+ %local.city.attrib;
+>
+<!--end of city.attlist-->]]>
+ <!--end of city.module-->]]>
+
+ <!ENTITY % state.module "INCLUDE">
+ <![%state.module;[
+ <!ENTITY % local.state.attrib "">
+ <!ENTITY % state.role.attrib "%role.attrib;">
+
+<!ENTITY % state.element "INCLUDE">
+<![%state.element;[
+<!ELEMENT state (%docinfo.char.mix;)*>
+<!--end of state.element-->]]>
+
+<!ENTITY % state.attlist "INCLUDE">
+<![%state.attlist;[
+<!ATTLIST state
+ %common.attrib;
+ %state.role.attrib;
+ %local.state.attrib;
+>
+<!--end of state.attlist-->]]>
+ <!--end of state.module-->]]>
+
+ <!ENTITY % country.module "INCLUDE">
+ <![%country.module;[
+ <!ENTITY % local.country.attrib "">
+ <!ENTITY % country.role.attrib "%role.attrib;">
+
+<!ENTITY % country.element "INCLUDE">
+<![%country.element;[
+<!ELEMENT country (%docinfo.char.mix;)*>
+<!--end of country.element-->]]>
+
+<!ENTITY % country.attlist "INCLUDE">
+<![%country.attlist;[
+<!ATTLIST country
+ %common.attrib;
+ %country.role.attrib;
+ %local.country.attrib;
+>
+<!--end of country.attlist-->]]>
+ <!--end of country.module-->]]>
+
+ <!ENTITY % phone.module "INCLUDE">
+ <![%phone.module;[
+ <!ENTITY % local.phone.attrib "">
+ <!ENTITY % phone.role.attrib "%role.attrib;">
+
+<!ENTITY % phone.element "INCLUDE">
+<![%phone.element;[
+<!ELEMENT phone (%docinfo.char.mix;)*>
+<!--end of phone.element-->]]>
+
+<!ENTITY % phone.attlist "INCLUDE">
+<![%phone.attlist;[
+<!ATTLIST phone
+ %common.attrib;
+ %phone.role.attrib;
+ %local.phone.attrib;
+>
+<!--end of phone.attlist-->]]>
+ <!--end of phone.module-->]]>
+
+ <!ENTITY % fax.module "INCLUDE">
+ <![%fax.module;[
+ <!ENTITY % local.fax.attrib "">
+ <!ENTITY % fax.role.attrib "%role.attrib;">
+
+<!ENTITY % fax.element "INCLUDE">
+<![%fax.element;[
+<!ELEMENT fax (%docinfo.char.mix;)*>
+<!--end of fax.element-->]]>
+
+<!ENTITY % fax.attlist "INCLUDE">
+<![%fax.attlist;[
+<!ATTLIST fax
+ %common.attrib;
+ %fax.role.attrib;
+ %local.fax.attrib;
+>
+<!--end of fax.attlist-->]]>
+ <!--end of fax.module-->]]>
+
+ <!-- Email (defined in the Inlines section, below)-->
+
+ <!ENTITY % otheraddr.module "INCLUDE">
+ <![%otheraddr.module;[
+ <!ENTITY % local.otheraddr.attrib "">
+ <!ENTITY % otheraddr.role.attrib "%role.attrib;">
+
+<!ENTITY % otheraddr.element "INCLUDE">
+<![%otheraddr.element;[
+<!ELEMENT otheraddr (%docinfo.char.mix;)*>
+<!--end of otheraddr.element-->]]>
+
+<!ENTITY % otheraddr.attlist "INCLUDE">
+<![%otheraddr.attlist;[
+<!ATTLIST otheraddr
+ %common.attrib;
+ %otheraddr.role.attrib;
+ %local.otheraddr.attrib;
+>
+<!--end of otheraddr.attlist-->]]>
+ <!--end of otheraddr.module-->]]>
+<!--end of address.content.module-->]]>
+
+<!-- Affiliation ...................... -->
+
+<!ENTITY % affiliation.content.module "INCLUDE">
+<![%affiliation.content.module;[
+<!ENTITY % affiliation.module "INCLUDE">
+<![%affiliation.module;[
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+
+<!ENTITY % affiliation.element "INCLUDE">
+<![%affiliation.element;[
+<!ELEMENT affiliation (shortaffil?, jobtitle*, orgname?, orgdiv*,
+ address*)>
+<!--end of affiliation.element-->]]>
+
+<!ENTITY % affiliation.attlist "INCLUDE">
+<![%affiliation.attlist;[
+<!ATTLIST affiliation
+ %common.attrib;
+ %affiliation.role.attrib;
+ %local.affiliation.attrib;
+>
+<!--end of affiliation.attlist-->]]>
+<!--end of affiliation.module-->]]>
+
+ <!ENTITY % shortaffil.module "INCLUDE">
+ <![%shortaffil.module;[
+ <!ENTITY % local.shortaffil.attrib "">
+ <!ENTITY % shortaffil.role.attrib "%role.attrib;">
+
+<!ENTITY % shortaffil.element "INCLUDE">
+<![%shortaffil.element;[
+<!ELEMENT shortaffil (%docinfo.char.mix;)*>
+<!--end of shortaffil.element-->]]>
+
+<!ENTITY % shortaffil.attlist "INCLUDE">
+<![%shortaffil.attlist;[
+<!ATTLIST shortaffil
+ %common.attrib;
+ %shortaffil.role.attrib;
+ %local.shortaffil.attrib;
+>
+<!--end of shortaffil.attlist-->]]>
+ <!--end of shortaffil.module-->]]>
+
+ <!ENTITY % jobtitle.module "INCLUDE">
+ <![%jobtitle.module;[
+ <!ENTITY % local.jobtitle.attrib "">
+ <!ENTITY % jobtitle.role.attrib "%role.attrib;">
+
+<!ENTITY % jobtitle.element "INCLUDE">
+<![%jobtitle.element;[
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!--end of jobtitle.element-->]]>
+
+<!ENTITY % jobtitle.attlist "INCLUDE">
+<![%jobtitle.attlist;[
+<!ATTLIST jobtitle
+ %common.attrib;
+ %jobtitle.role.attrib;
+ %local.jobtitle.attrib;
+>
+<!--end of jobtitle.attlist-->]]>
+ <!--end of jobtitle.module-->]]>
+
+ <!-- OrgName (defined elsewhere in this section)-->
+
+ <!ENTITY % orgdiv.module "INCLUDE">
+ <![%orgdiv.module;[
+ <!ENTITY % local.orgdiv.attrib "">
+ <!ENTITY % orgdiv.role.attrib "%role.attrib;">
+
+<!ENTITY % orgdiv.element "INCLUDE">
+<![%orgdiv.element;[
+<!ELEMENT orgdiv (%docinfo.char.mix;)*>
+<!--end of orgdiv.element-->]]>
+
+<!ENTITY % orgdiv.attlist "INCLUDE">
+<![%orgdiv.attlist;[
+<!ATTLIST orgdiv
+ %common.attrib;
+ %orgdiv.role.attrib;
+ %local.orgdiv.attrib;
+>
+<!--end of orgdiv.attlist-->]]>
+ <!--end of orgdiv.module-->]]>
+
+ <!-- Address (defined elsewhere in this section)-->
+<!--end of affiliation.content.module-->]]>
+
+<!-- ArtPageNums ...................... -->
+
+<!ENTITY % artpagenums.module "INCLUDE">
+<![%artpagenums.module;[
+<!ENTITY % local.artpagenums.attrib "">
+<!ENTITY % artpagenums.role.attrib "%role.attrib;">
+
+<!ENTITY % artpagenums.element "INCLUDE">
+<![%artpagenums.element;[
+<!ELEMENT artpagenums (%docinfo.char.mix;)*>
+<!--end of artpagenums.element-->]]>
+
+<!ENTITY % artpagenums.attlist "INCLUDE">
+<![%artpagenums.attlist;[
+<!ATTLIST artpagenums
+ %common.attrib;
+ %artpagenums.role.attrib;
+ %local.artpagenums.attrib;
+>
+<!--end of artpagenums.attlist-->]]>
+<!--end of artpagenums.module-->]]>
+
+<!-- Author ........................... -->
+
+<!ENTITY % author.module "INCLUDE">
+<![%author.module;[
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+
+<!ENTITY % author.element "INCLUDE">
+<![%author.element;[
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!--end of author.element-->]]>
+
+<!ENTITY % author.attlist "INCLUDE">
+<![%author.attlist;[
+<!ATTLIST author
+ %common.attrib;
+ %author.role.attrib;
+ %local.author.attrib;
+>
+<!--end of author.attlist-->]]>
+<!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of author.module-->]]>
+
+<!-- AuthorGroup ...................... -->
+
+<!ENTITY % authorgroup.content.module "INCLUDE">
+<![%authorgroup.content.module;[
+<!ENTITY % authorgroup.module "INCLUDE">
+<![%authorgroup.module;[
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+
+<!ENTITY % authorgroup.element "INCLUDE">
+<![%authorgroup.element;[
+<!ELEMENT authorgroup ((author|editor|collab|corpauthor|othercredit)+)>
+<!--end of authorgroup.element-->]]>
+
+<!ENTITY % authorgroup.attlist "INCLUDE">
+<![%authorgroup.attlist;[
+<!ATTLIST authorgroup
+ %common.attrib;
+ %authorgroup.role.attrib;
+ %local.authorgroup.attrib;
+>
+<!--end of authorgroup.attlist-->]]>
+<!--end of authorgroup.module-->]]>
+
+ <!-- Author (defined elsewhere in this section)-->
+ <!-- Editor (defined elsewhere in this section)-->
+
+ <!ENTITY % collab.content.module "INCLUDE">
+ <![%collab.content.module;[
+ <!ENTITY % collab.module "INCLUDE">
+ <![%collab.module;[
+ <!ENTITY % local.collab.attrib "">
+ <!ENTITY % collab.role.attrib "%role.attrib;">
+
+<!ENTITY % collab.element "INCLUDE">
+<![%collab.element;[
+<!ELEMENT collab (collabname, affiliation*)>
+<!--end of collab.element-->]]>
+
+<!ENTITY % collab.attlist "INCLUDE">
+<![%collab.attlist;[
+<!ATTLIST collab
+ %common.attrib;
+ %collab.role.attrib;
+ %local.collab.attrib;
+>
+<!--end of collab.attlist-->]]>
+ <!--end of collab.module-->]]>
+
+ <!ENTITY % collabname.module "INCLUDE">
+ <![%collabname.module;[
+ <!ENTITY % local.collabname.attrib "">
+ <!ENTITY % collabname.role.attrib "%role.attrib;">
+
+<!ENTITY % collabname.element "INCLUDE">
+<![%collabname.element;[
+<!ELEMENT collabname (%docinfo.char.mix;)*>
+<!--end of collabname.element-->]]>
+
+<!ENTITY % collabname.attlist "INCLUDE">
+<![%collabname.attlist;[
+<!ATTLIST collabname
+ %common.attrib;
+ %collabname.role.attrib;
+ %local.collabname.attrib;
+>
+<!--end of collabname.attlist-->]]>
+ <!--end of collabname.module-->]]>
+
+ <!-- Affiliation (defined elsewhere in this section)-->
+ <!--end of collab.content.module-->]]>
+
+ <!-- CorpAuthor (defined elsewhere in this section)-->
+ <!-- OtherCredit (defined elsewhere in this section)-->
+
+<!--end of authorgroup.content.module-->]]>
+
+<!-- AuthorInitials ................... -->
+
+<!ENTITY % authorinitials.module "INCLUDE">
+<![%authorinitials.module;[
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+
+<!ENTITY % authorinitials.element "INCLUDE">
+<![%authorinitials.element;[
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!--end of authorinitials.element-->]]>
+
+<!ENTITY % authorinitials.attlist "INCLUDE">
+<![%authorinitials.attlist;[
+<!ATTLIST authorinitials
+ %common.attrib;
+ %authorinitials.role.attrib;
+ %local.authorinitials.attrib;
+>
+<!--end of authorinitials.attlist-->]]>
+<!--end of authorinitials.module-->]]>
+
+<!-- ConfGroup ........................ -->
+
+<!ENTITY % confgroup.content.module "INCLUDE">
+<![%confgroup.content.module;[
+<!ENTITY % confgroup.module "INCLUDE">
+<![%confgroup.module;[
+<!ENTITY % local.confgroup.attrib "">
+<!ENTITY % confgroup.role.attrib "%role.attrib;">
+
+<!ENTITY % confgroup.element "INCLUDE">
+<![%confgroup.element;[
+<!ELEMENT confgroup ((confdates|conftitle|confnum|address|confsponsor)*)>
+<!--end of confgroup.element-->]]>
+
+<!ENTITY % confgroup.attlist "INCLUDE">
+<![%confgroup.attlist;[
+<!ATTLIST confgroup
+ %common.attrib;
+ %confgroup.role.attrib;
+ %local.confgroup.attrib;
+>
+<!--end of confgroup.attlist-->]]>
+<!--end of confgroup.module-->]]>
+
+ <!ENTITY % confdates.module "INCLUDE">
+ <![%confdates.module;[
+ <!ENTITY % local.confdates.attrib "">
+ <!ENTITY % confdates.role.attrib "%role.attrib;">
+
+<!ENTITY % confdates.element "INCLUDE">
+<![%confdates.element;[
+<!ELEMENT confdates (%docinfo.char.mix;)*>
+<!--end of confdates.element-->]]>
+
+<!ENTITY % confdates.attlist "INCLUDE">
+<![%confdates.attlist;[
+<!ATTLIST confdates
+ %common.attrib;
+ %confdates.role.attrib;
+ %local.confdates.attrib;
+>
+<!--end of confdates.attlist-->]]>
+ <!--end of confdates.module-->]]>
+
+ <!ENTITY % conftitle.module "INCLUDE">
+ <![%conftitle.module;[
+ <!ENTITY % local.conftitle.attrib "">
+ <!ENTITY % conftitle.role.attrib "%role.attrib;">
+
+<!ENTITY % conftitle.element "INCLUDE">
+<![%conftitle.element;[
+<!ELEMENT conftitle (%docinfo.char.mix;)*>
+<!--end of conftitle.element-->]]>
+
+<!ENTITY % conftitle.attlist "INCLUDE">
+<![%conftitle.attlist;[
+<!ATTLIST conftitle
+ %common.attrib;
+ %conftitle.role.attrib;
+ %local.conftitle.attrib;
+>
+<!--end of conftitle.attlist-->]]>
+ <!--end of conftitle.module-->]]>
+
+ <!ENTITY % confnum.module "INCLUDE">
+ <![%confnum.module;[
+ <!ENTITY % local.confnum.attrib "">
+ <!ENTITY % confnum.role.attrib "%role.attrib;">
+
+<!ENTITY % confnum.element "INCLUDE">
+<![%confnum.element;[
+<!ELEMENT confnum (%docinfo.char.mix;)*>
+<!--end of confnum.element-->]]>
+
+<!ENTITY % confnum.attlist "INCLUDE">
+<![%confnum.attlist;[
+<!ATTLIST confnum
+ %common.attrib;
+ %confnum.role.attrib;
+ %local.confnum.attrib;
+>
+<!--end of confnum.attlist-->]]>
+ <!--end of confnum.module-->]]>
+
+ <!-- Address (defined elsewhere in this section)-->
+
+ <!ENTITY % confsponsor.module "INCLUDE">
+ <![%confsponsor.module;[
+ <!ENTITY % local.confsponsor.attrib "">
+ <!ENTITY % confsponsor.role.attrib "%role.attrib;">
+
+<!ENTITY % confsponsor.element "INCLUDE">
+<![%confsponsor.element;[
+<!ELEMENT confsponsor (%docinfo.char.mix;)*>
+<!--end of confsponsor.element-->]]>
+
+<!ENTITY % confsponsor.attlist "INCLUDE">
+<![%confsponsor.attlist;[
+<!ATTLIST confsponsor
+ %common.attrib;
+ %confsponsor.role.attrib;
+ %local.confsponsor.attrib;
+>
+<!--end of confsponsor.attlist-->]]>
+ <!--end of confsponsor.module-->]]>
+<!--end of confgroup.content.module-->]]>
+
+<!-- ContractNum ...................... -->
+
+<!ENTITY % contractnum.module "INCLUDE">
+<![%contractnum.module;[
+<!ENTITY % local.contractnum.attrib "">
+<!ENTITY % contractnum.role.attrib "%role.attrib;">
+
+<!ENTITY % contractnum.element "INCLUDE">
+<![%contractnum.element;[
+<!ELEMENT contractnum (%docinfo.char.mix;)*>
+<!--end of contractnum.element-->]]>
+
+<!ENTITY % contractnum.attlist "INCLUDE">
+<![%contractnum.attlist;[
+<!ATTLIST contractnum
+ %common.attrib;
+ %contractnum.role.attrib;
+ %local.contractnum.attrib;
+>
+<!--end of contractnum.attlist-->]]>
+<!--end of contractnum.module-->]]>
+
+<!-- ContractSponsor .................. -->
+
+<!ENTITY % contractsponsor.module "INCLUDE">
+<![%contractsponsor.module;[
+<!ENTITY % local.contractsponsor.attrib "">
+<!ENTITY % contractsponsor.role.attrib "%role.attrib;">
+
+<!ENTITY % contractsponsor.element "INCLUDE">
+<![%contractsponsor.element;[
+<!ELEMENT contractsponsor (%docinfo.char.mix;)*>
+<!--end of contractsponsor.element-->]]>
+
+<!ENTITY % contractsponsor.attlist "INCLUDE">
+<![%contractsponsor.attlist;[
+<!ATTLIST contractsponsor
+ %common.attrib;
+ %contractsponsor.role.attrib;
+ %local.contractsponsor.attrib;
+>
+<!--end of contractsponsor.attlist-->]]>
+<!--end of contractsponsor.module-->]]>
+
+<!-- Copyright ........................ -->
+
+<!ENTITY % copyright.content.module "INCLUDE">
+<![%copyright.content.module;[
+<!ENTITY % copyright.module "INCLUDE">
+<![%copyright.module;[
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+
+<!ENTITY % copyright.element "INCLUDE">
+<![%copyright.element;[
+<!ELEMENT copyright (year+, holder*)>
+<!--end of copyright.element-->]]>
+
+<!ENTITY % copyright.attlist "INCLUDE">
+<![%copyright.attlist;[
+<!ATTLIST copyright
+ %common.attrib;
+ %copyright.role.attrib;
+ %local.copyright.attrib;
+>
+<!--end of copyright.attlist-->]]>
+<!--end of copyright.module-->]]>
+
+ <!ENTITY % year.module "INCLUDE">
+ <![%year.module;[
+ <!ENTITY % local.year.attrib "">
+ <!ENTITY % year.role.attrib "%role.attrib;">
+
+<!ENTITY % year.element "INCLUDE">
+<![%year.element;[
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!--end of year.element-->]]>
+
+<!ENTITY % year.attlist "INCLUDE">
+<![%year.attlist;[
+<!ATTLIST year
+ %common.attrib;
+ %year.role.attrib;
+ %local.year.attrib;
+>
+<!--end of year.attlist-->]]>
+ <!--end of year.module-->]]>
+
+ <!ENTITY % holder.module "INCLUDE">
+ <![%holder.module;[
+ <!ENTITY % local.holder.attrib "">
+ <!ENTITY % holder.role.attrib "%role.attrib;">
+
+<!ENTITY % holder.element "INCLUDE">
+<![%holder.element;[
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!--end of holder.element-->]]>
+
+<!ENTITY % holder.attlist "INCLUDE">
+<![%holder.attlist;[
+<!ATTLIST holder
+ %common.attrib;
+ %holder.role.attrib;
+ %local.holder.attrib;
+>
+<!--end of holder.attlist-->]]>
+ <!--end of holder.module-->]]>
+<!--end of copyright.content.module-->]]>
+
+<!-- CorpAuthor ....................... -->
+
+<!ENTITY % corpauthor.module "INCLUDE">
+<![%corpauthor.module;[
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+
+<!ENTITY % corpauthor.element "INCLUDE">
+<![%corpauthor.element;[
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!--end of corpauthor.element-->]]>
+
+<!ENTITY % corpauthor.attlist "INCLUDE">
+<![%corpauthor.attlist;[
+<!ATTLIST corpauthor
+ %common.attrib;
+ %corpauthor.role.attrib;
+ %local.corpauthor.attrib;
+>
+<!--end of corpauthor.attlist-->]]>
+<!--end of corpauthor.module-->]]>
+
+<!-- CorpName ......................... -->
+
+<!ENTITY % corpname.module "INCLUDE">
+<![%corpname.module;[
+<!ENTITY % local.corpname.attrib "">
+
+<!ENTITY % corpname.element "INCLUDE">
+<![%corpname.element;[
+<!ELEMENT corpname (%docinfo.char.mix;)*>
+<!--end of corpname.element-->]]>
+<!ENTITY % corpname.role.attrib "%role.attrib;">
+
+<!ENTITY % corpname.attlist "INCLUDE">
+<![%corpname.attlist;[
+<!ATTLIST corpname
+ %common.attrib;
+ %corpname.role.attrib;
+ %local.corpname.attrib;
+>
+<!--end of corpname.attlist-->]]>
+<!--end of corpname.module-->]]>
+
+<!-- Date ............................. -->
+
+<!ENTITY % date.module "INCLUDE">
+<![%date.module;[
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+
+<!ENTITY % date.element "INCLUDE">
+<![%date.element;[
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!--end of date.element-->]]>
+
+<!ENTITY % date.attlist "INCLUDE">
+<![%date.attlist;[
+<!ATTLIST date
+ %common.attrib;
+ %date.role.attrib;
+ %local.date.attrib;
+>
+<!--end of date.attlist-->]]>
+<!--end of date.module-->]]>
+
+<!-- Edition .......................... -->
+
+<!ENTITY % edition.module "INCLUDE">
+<![%edition.module;[
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+
+<!ENTITY % edition.element "INCLUDE">
+<![%edition.element;[
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!--end of edition.element-->]]>
+
+<!ENTITY % edition.attlist "INCLUDE">
+<![%edition.attlist;[
+<!ATTLIST edition
+ %common.attrib;
+ %edition.role.attrib;
+ %local.edition.attrib;
+>
+<!--end of edition.attlist-->]]>
+<!--end of edition.module-->]]>
+
+<!-- Editor ........................... -->
+
+<!ENTITY % editor.module "INCLUDE">
+<![%editor.module;[
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+
+<!ENTITY % editor.element "INCLUDE">
+<![%editor.element;[
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!--end of editor.element-->]]>
+
+<!ENTITY % editor.attlist "INCLUDE">
+<![%editor.attlist;[
+<!ATTLIST editor
+ %common.attrib;
+ %editor.role.attrib;
+ %local.editor.attrib;
+>
+<!--end of editor.attlist-->]]>
+ <!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of editor.module-->]]>
+
+<!-- ISBN ............................. -->
+
+<!ENTITY % isbn.module "INCLUDE">
+<![%isbn.module;[
+<!ENTITY % local.isbn.attrib "">
+<!ENTITY % isbn.role.attrib "%role.attrib;">
+
+<!ENTITY % isbn.element "INCLUDE">
+<![%isbn.element;[
+<!ELEMENT isbn (%docinfo.char.mix;)*>
+<!--end of isbn.element-->]]>
+
+<!ENTITY % isbn.attlist "INCLUDE">
+<![%isbn.attlist;[
+<!ATTLIST isbn
+ %common.attrib;
+ %isbn.role.attrib;
+ %local.isbn.attrib;
+>
+<!--end of isbn.attlist-->]]>
+<!--end of isbn.module-->]]>
+
+<!-- ISSN ............................. -->
+
+<!ENTITY % issn.module "INCLUDE">
+<![%issn.module;[
+<!ENTITY % local.issn.attrib "">
+<!ENTITY % issn.role.attrib "%role.attrib;">
+
+<!ENTITY % issn.element "INCLUDE">
+<![%issn.element;[
+<!ELEMENT issn (%docinfo.char.mix;)*>
+<!--end of issn.element-->]]>
+
+<!ENTITY % issn.attlist "INCLUDE">
+<![%issn.attlist;[
+<!ATTLIST issn
+ %common.attrib;
+ %issn.role.attrib;
+ %local.issn.attrib;
+>
+<!--end of issn.attlist-->]]>
+<!--end of issn.module-->]]>
+
+<!-- InvPartNumber .................... -->
+
+<!ENTITY % invpartnumber.module "INCLUDE">
+<![%invpartnumber.module;[
+<!ENTITY % local.invpartnumber.attrib "">
+<!ENTITY % invpartnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % invpartnumber.element "INCLUDE">
+<![%invpartnumber.element;[
+<!ELEMENT invpartnumber (%docinfo.char.mix;)*>
+<!--end of invpartnumber.element-->]]>
+
+<!ENTITY % invpartnumber.attlist "INCLUDE">
+<![%invpartnumber.attlist;[
+<!ATTLIST invpartnumber
+ %common.attrib;
+ %invpartnumber.role.attrib;
+ %local.invpartnumber.attrib;
+>
+<!--end of invpartnumber.attlist-->]]>
+<!--end of invpartnumber.module-->]]>
+
+<!-- IssueNum ......................... -->
+
+<!ENTITY % issuenum.module "INCLUDE">
+<![%issuenum.module;[
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+
+<!ENTITY % issuenum.element "INCLUDE">
+<![%issuenum.element;[
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!--end of issuenum.element-->]]>
+
+<!ENTITY % issuenum.attlist "INCLUDE">
+<![%issuenum.attlist;[
+<!ATTLIST issuenum
+ %common.attrib;
+ %issuenum.role.attrib;
+ %local.issuenum.attrib;
+>
+<!--end of issuenum.attlist-->]]>
+<!--end of issuenum.module-->]]>
+
+<!-- LegalNotice ...................... -->
+
+<!ENTITY % legalnotice.module "INCLUDE">
+<![%legalnotice.module;[
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+
+<!ENTITY % legalnotice.element "INCLUDE">
+<![%legalnotice.element;[
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!--end of legalnotice.element-->]]>
+
+<!ENTITY % legalnotice.attlist "INCLUDE">
+<![%legalnotice.attlist;[
+<!ATTLIST legalnotice
+ %common.attrib;
+ %legalnotice.role.attrib;
+ %local.legalnotice.attrib;
+>
+<!--end of legalnotice.attlist-->]]>
+<!--end of legalnotice.module-->]]>
+
+<!-- ModeSpec ......................... -->
+
+<!ENTITY % modespec.module "INCLUDE">
+<![%modespec.module;[
+<!ENTITY % local.modespec.attrib "">
+<!ENTITY % modespec.role.attrib "%role.attrib;">
+
+<!ENTITY % modespec.element "INCLUDE">
+<![%modespec.element;[
+<!ELEMENT modespec (%docinfo.char.mix;)*>
+<!--end of modespec.element-->]]>
+
+<!-- Application: Type of action required for completion
+ of the links to which the ModeSpec is relevant (e.g.,
+ retrieval query) -->
+
+
+<!ENTITY % modespec.attlist "INCLUDE">
+<![%modespec.attlist;[
+<!ATTLIST modespec
+ application NOTATION
+ (%notation.class;) #IMPLIED
+ %common.attrib;
+ %modespec.role.attrib;
+ %local.modespec.attrib;
+>
+<!--end of modespec.attlist-->]]>
+<!--end of modespec.module-->]]>
+
+<!-- OrgName .......................... -->
+
+<!ENTITY % orgname.module "INCLUDE">
+<![%orgname.module;[
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+
+<!ENTITY % orgname.element "INCLUDE">
+<![%orgname.element;[
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!--end of orgname.element-->]]>
+
+<!ENTITY % orgname.attlist "INCLUDE">
+<![%orgname.attlist;[
+<!ATTLIST orgname
+ %common.attrib;
+ %orgname.role.attrib;
+ %local.orgname.attrib;
+>
+<!--end of orgname.attlist-->]]>
+<!--end of orgname.module-->]]>
+
+<!-- OtherCredit ...................... -->
+
+<!ENTITY % othercredit.module "INCLUDE">
+<![%othercredit.module;[
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+
+<!ENTITY % othercredit.element "INCLUDE">
+<![%othercredit.element;[
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!--end of othercredit.element-->]]>
+
+<!ENTITY % othercredit.attlist "INCLUDE">
+<![%othercredit.attlist;[
+<!ATTLIST othercredit
+ %common.attrib;
+ %othercredit.role.attrib;
+ %local.othercredit.attrib;
+>
+<!--end of othercredit.attlist-->]]>
+ <!--(see "Personal identity elements" for %person.ident.mix;)-->
+<!--end of othercredit.module-->]]>
+
+<!-- PageNums ......................... -->
+
+<!ENTITY % pagenums.module "INCLUDE">
+<![%pagenums.module;[
+<!ENTITY % local.pagenums.attrib "">
+<!ENTITY % pagenums.role.attrib "%role.attrib;">
+
+<!ENTITY % pagenums.element "INCLUDE">
+<![%pagenums.element;[
+<!ELEMENT pagenums (%docinfo.char.mix;)*>
+<!--end of pagenums.element-->]]>
+
+<!ENTITY % pagenums.attlist "INCLUDE">
+<![%pagenums.attlist;[
+<!ATTLIST pagenums
+ %common.attrib;
+ %pagenums.role.attrib;
+ %local.pagenums.attrib;
+>
+<!--end of pagenums.attlist-->]]>
+<!--end of pagenums.module-->]]>
+
+<!-- Personal identity elements ....... -->
+
+<!-- These elements are used only within Author, Editor, and
+OtherCredit. -->
+
+<!ENTITY % person.ident.module "INCLUDE">
+<![%person.ident.module;[
+ <!ENTITY % contrib.module "INCLUDE">
+ <![%contrib.module;[
+ <!ENTITY % local.contrib.attrib "">
+ <!ENTITY % contrib.role.attrib "%role.attrib;">
+
+<!ENTITY % contrib.element "INCLUDE">
+<![%contrib.element;[
+<!ELEMENT contrib (%docinfo.char.mix;)*>
+<!--end of contrib.element-->]]>
+
+<!ENTITY % contrib.attlist "INCLUDE">
+<![%contrib.attlist;[
+<!ATTLIST contrib
+ %common.attrib;
+ %contrib.role.attrib;
+ %local.contrib.attrib;
+>
+<!--end of contrib.attlist-->]]>
+ <!--end of contrib.module-->]]>
+
+ <!ENTITY % firstname.module "INCLUDE">
+ <![%firstname.module;[
+ <!ENTITY % local.firstname.attrib "">
+ <!ENTITY % firstname.role.attrib "%role.attrib;">
+
+<!ENTITY % firstname.element "INCLUDE">
+<![%firstname.element;[
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!--end of firstname.element-->]]>
+
+<!ENTITY % firstname.attlist "INCLUDE">
+<![%firstname.attlist;[
+<!ATTLIST firstname
+ %common.attrib;
+ %firstname.role.attrib;
+ %local.firstname.attrib;
+>
+<!--end of firstname.attlist-->]]>
+ <!--end of firstname.module-->]]>
+
+ <!ENTITY % honorific.module "INCLUDE">
+ <![%honorific.module;[
+ <!ENTITY % local.honorific.attrib "">
+ <!ENTITY % honorific.role.attrib "%role.attrib;">
+
+<!ENTITY % honorific.element "INCLUDE">
+<![%honorific.element;[
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!--end of honorific.element-->]]>
+
+<!ENTITY % honorific.attlist "INCLUDE">
+<![%honorific.attlist;[
+<!ATTLIST honorific
+ %common.attrib;
+ %honorific.role.attrib;
+ %local.honorific.attrib;
+>
+<!--end of honorific.attlist-->]]>
+ <!--end of honorific.module-->]]>
+
+ <!ENTITY % lineage.module "INCLUDE">
+ <![%lineage.module;[
+ <!ENTITY % local.lineage.attrib "">
+ <!ENTITY % lineage.role.attrib "%role.attrib;">
+
+<!ENTITY % lineage.element "INCLUDE">
+<![%lineage.element;[
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!--end of lineage.element-->]]>
+
+<!ENTITY % lineage.attlist "INCLUDE">
+<![%lineage.attlist;[
+<!ATTLIST lineage
+ %common.attrib;
+ %lineage.role.attrib;
+ %local.lineage.attrib;
+>
+<!--end of lineage.attlist-->]]>
+ <!--end of lineage.module-->]]>
+
+ <!ENTITY % othername.module "INCLUDE">
+ <![%othername.module;[
+ <!ENTITY % local.othername.attrib "">
+ <!ENTITY % othername.role.attrib "%role.attrib;">
+
+<!ENTITY % othername.element "INCLUDE">
+<![%othername.element;[
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!--end of othername.element-->]]>
+
+<!ENTITY % othername.attlist "INCLUDE">
+<![%othername.attlist;[
+<!ATTLIST othername
+ %common.attrib;
+ %othername.role.attrib;
+ %local.othername.attrib;
+>
+<!--end of othername.attlist-->]]>
+ <!--end of othername.module-->]]>
+
+ <!ENTITY % surname.module "INCLUDE">
+ <![%surname.module;[
+ <!ENTITY % local.surname.attrib "">
+ <!ENTITY % surname.role.attrib "%role.attrib;">
+
+<!ENTITY % surname.element "INCLUDE">
+<![%surname.element;[
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!--end of surname.element-->]]>
+
+<!ENTITY % surname.attlist "INCLUDE">
+<![%surname.attlist;[
+<!ATTLIST surname
+ %common.attrib;
+ %surname.role.attrib;
+ %local.surname.attrib;
+>
+<!--end of surname.attlist-->]]>
+ <!--end of surname.module-->]]>
+<!--end of person.ident.module-->]]>
+
+<!-- PrintHistory ..................... -->
+
+<!ENTITY % printhistory.module "INCLUDE">
+<![%printhistory.module;[
+<!ENTITY % local.printhistory.attrib "">
+<!ENTITY % printhistory.role.attrib "%role.attrib;">
+
+<!ENTITY % printhistory.element "INCLUDE">
+<![%printhistory.element;[
+<!ELEMENT printhistory ((%para.class;)+)>
+<!--end of printhistory.element-->]]>
+
+<!ENTITY % printhistory.attlist "INCLUDE">
+<![%printhistory.attlist;[
+<!ATTLIST printhistory
+ %common.attrib;
+ %printhistory.role.attrib;
+ %local.printhistory.attrib;
+>
+<!--end of printhistory.attlist-->]]>
+<!--end of printhistory.module-->]]>
+
+<!-- ProductName ...................... -->
+
+<!ENTITY % productname.module "INCLUDE">
+<![%productname.module;[
+<!ENTITY % local.productname.attrib "">
+<!ENTITY % productname.role.attrib "%role.attrib;">
+
+<!ENTITY % productname.element "INCLUDE">
+<![%productname.element;[
+<!ELEMENT productname (%para.char.mix;)*>
+<!--end of productname.element-->]]>
+
+<!-- Class: More precisely identifies the item the element names -->
+
+
+<!ENTITY % productname.attlist "INCLUDE">
+<![%productname.attlist;[
+<!ATTLIST productname
+ class (service
+ |trade
+ |registered
+ |copyright) 'trade'
+ %common.attrib;
+ %productname.role.attrib;
+ %local.productname.attrib;
+>
+<!--end of productname.attlist-->]]>
+<!--end of productname.module-->]]>
+
+<!-- ProductNumber .................... -->
+
+<!ENTITY % productnumber.module "INCLUDE">
+<![%productnumber.module;[
+<!ENTITY % local.productnumber.attrib "">
+<!ENTITY % productnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % productnumber.element "INCLUDE">
+<![%productnumber.element;[
+<!ELEMENT productnumber (%docinfo.char.mix;)*>
+<!--end of productnumber.element-->]]>
+
+<!ENTITY % productnumber.attlist "INCLUDE">
+<![%productnumber.attlist;[
+<!ATTLIST productnumber
+ %common.attrib;
+ %productnumber.role.attrib;
+ %local.productnumber.attrib;
+>
+<!--end of productnumber.attlist-->]]>
+<!--end of productnumber.module-->]]>
+
+<!-- PubDate .......................... -->
+
+<!ENTITY % pubdate.module "INCLUDE">
+<![%pubdate.module;[
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+
+<!ENTITY % pubdate.element "INCLUDE">
+<![%pubdate.element;[
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!--end of pubdate.element-->]]>
+
+<!ENTITY % pubdate.attlist "INCLUDE">
+<![%pubdate.attlist;[
+<!ATTLIST pubdate
+ %common.attrib;
+ %pubdate.role.attrib;
+ %local.pubdate.attrib;
+>
+<!--end of pubdate.attlist-->]]>
+<!--end of pubdate.module-->]]>
+
+<!-- Publisher ........................ -->
+
+<!ENTITY % publisher.content.module "INCLUDE">
+<![%publisher.content.module;[
+<!ENTITY % publisher.module "INCLUDE">
+<![%publisher.module;[
+<!ENTITY % local.publisher.attrib "">
+<!ENTITY % publisher.role.attrib "%role.attrib;">
+
+<!ENTITY % publisher.element "INCLUDE">
+<![%publisher.element;[
+<!ELEMENT publisher (publishername, address*)>
+<!--end of publisher.element-->]]>
+
+<!ENTITY % publisher.attlist "INCLUDE">
+<![%publisher.attlist;[
+<!ATTLIST publisher
+ %common.attrib;
+ %publisher.role.attrib;
+ %local.publisher.attrib;
+>
+<!--end of publisher.attlist-->]]>
+<!--end of publisher.module-->]]>
+
+ <!ENTITY % publishername.module "INCLUDE">
+ <![%publishername.module;[
+ <!ENTITY % local.publishername.attrib "">
+ <!ENTITY % publishername.role.attrib "%role.attrib;">
+
+<!ENTITY % publishername.element "INCLUDE">
+<![%publishername.element;[
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!--end of publishername.element-->]]>
+
+<!ENTITY % publishername.attlist "INCLUDE">
+<![%publishername.attlist;[
+<!ATTLIST publishername
+ %common.attrib;
+ %publishername.role.attrib;
+ %local.publishername.attrib;
+>
+<!--end of publishername.attlist-->]]>
+ <!--end of publishername.module-->]]>
+
+ <!-- Address (defined elsewhere in this section)-->
+<!--end of publisher.content.module-->]]>
+
+<!-- PubsNumber ....................... -->
+
+<!ENTITY % pubsnumber.module "INCLUDE">
+<![%pubsnumber.module;[
+<!ENTITY % local.pubsnumber.attrib "">
+<!ENTITY % pubsnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % pubsnumber.element "INCLUDE">
+<![%pubsnumber.element;[
+<!ELEMENT pubsnumber (%docinfo.char.mix;)*>
+<!--end of pubsnumber.element-->]]>
+
+<!ENTITY % pubsnumber.attlist "INCLUDE">
+<![%pubsnumber.attlist;[
+<!ATTLIST pubsnumber
+ %common.attrib;
+ %pubsnumber.role.attrib;
+ %local.pubsnumber.attrib;
+>
+<!--end of pubsnumber.attlist-->]]>
+<!--end of pubsnumber.module-->]]>
+
+<!-- ReleaseInfo ...................... -->
+
+<!ENTITY % releaseinfo.module "INCLUDE">
+<![%releaseinfo.module;[
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+
+<!ENTITY % releaseinfo.element "INCLUDE">
+<![%releaseinfo.element;[
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!--end of releaseinfo.element-->]]>
+
+<!ENTITY % releaseinfo.attlist "INCLUDE">
+<![%releaseinfo.attlist;[
+<!ATTLIST releaseinfo
+ %common.attrib;
+ %releaseinfo.role.attrib;
+ %local.releaseinfo.attrib;
+>
+<!--end of releaseinfo.attlist-->]]>
+<!--end of releaseinfo.module-->]]>
+
+<!-- RevHistory ....................... -->
+
+<!ENTITY % revhistory.content.module "INCLUDE">
+<![%revhistory.content.module;[
+<!ENTITY % revhistory.module "INCLUDE">
+<![%revhistory.module;[
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+
+<!ENTITY % revhistory.element "INCLUDE">
+<![%revhistory.element;[
+<!ELEMENT revhistory (revision+)>
+<!--end of revhistory.element-->]]>
+
+<!ENTITY % revhistory.attlist "INCLUDE">
+<![%revhistory.attlist;[
+<!ATTLIST revhistory
+ %common.attrib;
+ %revhistory.role.attrib;
+ %local.revhistory.attrib;
+>
+<!--end of revhistory.attlist-->]]>
+<!--end of revhistory.module-->]]>
+
+<!ENTITY % revision.module "INCLUDE">
+<![%revision.module;[
+<!ENTITY % local.revision.attrib "">
+<!ENTITY % revision.role.attrib "%role.attrib;">
+
+<!ENTITY % revision.element "INCLUDE">
+<![%revision.element;[
+<!ELEMENT revision (revnumber, date, authorinitials*,
+ (revremark|revdescription)?)>
+<!--end of revision.element-->]]>
+
+<!ENTITY % revision.attlist "INCLUDE">
+<![%revision.attlist;[
+<!ATTLIST revision
+ %common.attrib;
+ %revision.role.attrib;
+ %local.revision.attrib;
+>
+<!--end of revision.attlist-->]]>
+<!--end of revision.module-->]]>
+
+<!ENTITY % revnumber.module "INCLUDE">
+<![%revnumber.module;[
+<!ENTITY % local.revnumber.attrib "">
+<!ENTITY % revnumber.role.attrib "%role.attrib;">
+
+<!ENTITY % revnumber.element "INCLUDE">
+<![%revnumber.element;[
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!--end of revnumber.element-->]]>
+
+<!ENTITY % revnumber.attlist "INCLUDE">
+<![%revnumber.attlist;[
+<!ATTLIST revnumber
+ %common.attrib;
+ %revnumber.role.attrib;
+ %local.revnumber.attrib;
+>
+<!--end of revnumber.attlist-->]]>
+<!--end of revnumber.module-->]]>
+
+<!-- Date (defined elsewhere in this section)-->
+<!-- AuthorInitials (defined elsewhere in this section)-->
+
+<!ENTITY % revremark.module "INCLUDE">
+<![%revremark.module;[
+<!ENTITY % local.revremark.attrib "">
+<!ENTITY % revremark.role.attrib "%role.attrib;">
+
+<!ENTITY % revremark.element "INCLUDE">
+<![%revremark.element;[
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!--end of revremark.element-->]]>
+
+<!ENTITY % revremark.attlist "INCLUDE">
+<![%revremark.attlist;[
+<!ATTLIST revremark
+ %common.attrib;
+ %revremark.role.attrib;
+ %local.revremark.attrib;
+>
+<!--end of revremark.attlist-->]]>
+<!--end of revremark.module-->]]>
+
+<!ENTITY % revdescription.module "INCLUDE">
+<![ %revdescription.module; [
+<!ENTITY % local.revdescription.attrib "">
+<!ENTITY % revdescription.role.attrib "%role.attrib;">
+
+<!ENTITY % revdescription.element "INCLUDE">
+<![ %revdescription.element; [
+<!ELEMENT revdescription ((%revdescription.mix;)+)>
+<!--end of revdescription.element-->]]>
+
+<!ENTITY % revdescription.attlist "INCLUDE">
+<![ %revdescription.attlist; [
+<!ATTLIST revdescription
+ %common.attrib;
+ %revdescription.role.attrib;
+ %local.revdescription.attrib;
+>
+<!--end of revdescription.attlist-->]]>
+<!--end of revdescription.module-->]]>
+<!--end of revhistory.content.module-->]]>
+
+<!-- SeriesVolNums .................... -->
+
+<!ENTITY % seriesvolnums.module "INCLUDE">
+<![%seriesvolnums.module;[
+<!ENTITY % local.seriesvolnums.attrib "">
+<!ENTITY % seriesvolnums.role.attrib "%role.attrib;">
+
+<!ENTITY % seriesvolnums.element "INCLUDE">
+<![%seriesvolnums.element;[
+<!ELEMENT seriesvolnums (%docinfo.char.mix;)*>
+<!--end of seriesvolnums.element-->]]>
+
+<!ENTITY % seriesvolnums.attlist "INCLUDE">
+<![%seriesvolnums.attlist;[
+<!ATTLIST seriesvolnums
+ %common.attrib;
+ %seriesvolnums.role.attrib;
+ %local.seriesvolnums.attrib;
+>
+<!--end of seriesvolnums.attlist-->]]>
+<!--end of seriesvolnums.module-->]]>
+
+<!-- VolumeNum ........................ -->
+
+<!ENTITY % volumenum.module "INCLUDE">
+<![%volumenum.module;[
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+
+<!ENTITY % volumenum.element "INCLUDE">
+<![%volumenum.element;[
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!--end of volumenum.element-->]]>
+
+<!ENTITY % volumenum.attlist "INCLUDE">
+<![%volumenum.attlist;[
+<!ATTLIST volumenum
+ %common.attrib;
+ %volumenum.role.attrib;
+ %local.volumenum.attrib;
+>
+<!--end of volumenum.attlist-->]]>
+<!--end of volumenum.module-->]]>
+
+<!-- .................................. -->
+
+<!--end of docinfo.content.module-->]]>
+
+<!-- ...................................................................... -->
+<!-- Inline, link, and ubiquitous elements ................................ -->
+
+<!-- Technical and computer terms ......................................... -->
+
+<!ENTITY % accel.module "INCLUDE">
+<![%accel.module;[
+<!ENTITY % local.accel.attrib "">
+<!ENTITY % accel.role.attrib "%role.attrib;">
+
+<!ENTITY % accel.element "INCLUDE">
+<![%accel.element;[
+<!ELEMENT accel (%smallcptr.char.mix;)*>
+<!--end of accel.element-->]]>
+
+<!ENTITY % accel.attlist "INCLUDE">
+<![%accel.attlist;[
+<!ATTLIST accel
+ %common.attrib;
+ %accel.role.attrib;
+ %local.accel.attrib;
+>
+<!--end of accel.attlist-->]]>
+<!--end of accel.module-->]]>
+
+<!ENTITY % action.module "INCLUDE">
+<![%action.module;[
+<!ENTITY % local.action.attrib "">
+<!ENTITY % action.role.attrib "%role.attrib;">
+
+<!ENTITY % action.element "INCLUDE">
+<![%action.element;[
+<!ELEMENT action (%smallcptr.char.mix;)*>
+<!--end of action.element-->]]>
+
+<!ENTITY % action.attlist "INCLUDE">
+<![%action.attlist;[
+<!ATTLIST action
+ %moreinfo.attrib;
+ %common.attrib;
+ %action.role.attrib;
+ %local.action.attrib;
+>
+<!--end of action.attlist-->]]>
+<!--end of action.module-->]]>
+
+<!ENTITY % application.module "INCLUDE">
+<![%application.module;[
+<!ENTITY % local.application.attrib "">
+<!ENTITY % application.role.attrib "%role.attrib;">
+
+<!ENTITY % application.element "INCLUDE">
+<![%application.element;[
+<!ELEMENT application (%para.char.mix;)*>
+<!--end of application.element-->]]>
+
+<!ENTITY % application.attlist "INCLUDE">
+<![%application.attlist;[
+<!ATTLIST application
+ class (hardware
+ |software) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %application.role.attrib;
+ %local.application.attrib;
+>
+<!--end of application.attlist-->]]>
+<!--end of application.module-->]]>
+
+<!ENTITY % classname.module "INCLUDE">
+<![%classname.module;[
+<!ENTITY % local.classname.attrib "">
+<!ENTITY % classname.role.attrib "%role.attrib;">
+
+<!ENTITY % classname.element "INCLUDE">
+<![%classname.element;[
+<!ELEMENT classname (%smallcptr.char.mix;)*>
+<!--end of classname.element-->]]>
+
+<!ENTITY % classname.attlist "INCLUDE">
+<![%classname.attlist;[
+<!ATTLIST classname
+ %common.attrib;
+ %classname.role.attrib;
+ %local.classname.attrib;
+>
+<!--end of classname.attlist-->]]>
+<!--end of classname.module-->]]>
+
+<!ENTITY % co.module "INCLUDE">
+<![%co.module;[
+<!ENTITY % local.co.attrib "">
+<!-- CO is a callout area of the LineColumn unit type (a single character
+ position); the position is directly indicated by the location of CO. -->
+<!ENTITY % co.role.attrib "%role.attrib;">
+
+<!ENTITY % co.element "INCLUDE">
+<![%co.element;[
+<!ELEMENT co EMPTY>
+<!--end of co.element-->]]>
+
+<!-- bug number/symbol override or initialization -->
+<!-- to any related information -->
+
+
+<!ENTITY % co.attlist "INCLUDE">
+<![%co.attlist;[
+<!ATTLIST co
+ %label.attrib;
+ %linkends.attrib;
+ %idreq.common.attrib;
+ %co.role.attrib;
+ %local.co.attrib;
+>
+<!--end of co.attlist-->]]>
+<!--end of co.module-->]]>
+
+<!ENTITY % command.module "INCLUDE">
+<![%command.module;[
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+
+<!ENTITY % command.element "INCLUDE">
+<![%command.element;[
+<!ELEMENT command (%cptr.char.mix;)*>
+<!--end of command.element-->]]>
+
+<!ENTITY % command.attlist "INCLUDE">
+<![%command.attlist;[
+<!ATTLIST command
+ %moreinfo.attrib;
+ %common.attrib;
+ %command.role.attrib;
+ %local.command.attrib;
+>
+<!--end of command.attlist-->]]>
+<!--end of command.module-->]]>
+
+<!ENTITY % computeroutput.module "INCLUDE">
+<![%computeroutput.module;[
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+
+<!ENTITY % computeroutput.element "INCLUDE">
+<![%computeroutput.element;[
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!--end of computeroutput.element-->]]>
+
+<!ENTITY % computeroutput.attlist "INCLUDE">
+<![%computeroutput.attlist;[
+<!ATTLIST computeroutput
+ %moreinfo.attrib;
+ %common.attrib;
+ %computeroutput.role.attrib;
+ %local.computeroutput.attrib;
+>
+<!--end of computeroutput.attlist-->]]>
+<!--end of computeroutput.module-->]]>
+
+<!ENTITY % database.module "INCLUDE">
+<![%database.module;[
+<!ENTITY % local.database.attrib "">
+<!ENTITY % database.role.attrib "%role.attrib;">
+
+<!ENTITY % database.element "INCLUDE">
+<![%database.element;[
+<!ELEMENT database (%smallcptr.char.mix;)*>
+<!--end of database.element-->]]>
+
+<!-- Class: Type of database the element names; no default -->
+
+
+<!ENTITY % database.attlist "INCLUDE">
+<![%database.attlist;[
+<!ATTLIST database
+ class (name
+ |table
+ |field
+ |key1
+ |key2
+ |record) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %database.role.attrib;
+ %local.database.attrib;
+>
+<!--end of database.attlist-->]]>
+<!--end of database.module-->]]>
+
+<!ENTITY % email.module "INCLUDE">
+<![%email.module;[
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+
+<!ENTITY % email.element "INCLUDE">
+<![%email.element;[
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!--end of email.element-->]]>
+
+<!ENTITY % email.attlist "INCLUDE">
+<![%email.attlist;[
+<!ATTLIST email
+ %common.attrib;
+ %email.role.attrib;
+ %local.email.attrib;
+>
+<!--end of email.attlist-->]]>
+<!--end of email.module-->]]>
+
+<!ENTITY % envar.module "INCLUDE">
+<![%envar.module;[
+<!ENTITY % local.envar.attrib "">
+<!ENTITY % envar.role.attrib "%role.attrib;">
+
+<!ENTITY % envar.element "INCLUDE">
+<![%envar.element;[
+<!ELEMENT envar (%smallcptr.char.mix;)*>
+<!--end of envar.element-->]]>
+
+<!ENTITY % envar.attlist "INCLUDE">
+<![%envar.attlist;[
+<!ATTLIST envar
+ %common.attrib;
+ %envar.role.attrib;
+ %local.envar.attrib;
+>
+<!--end of envar.attlist-->]]>
+<!--end of envar.module-->]]>
+
+
+<!ENTITY % errorcode.module "INCLUDE">
+<![%errorcode.module;[
+<!ENTITY % local.errorcode.attrib "">
+<!ENTITY % errorcode.role.attrib "%role.attrib;">
+
+<!ENTITY % errorcode.element "INCLUDE">
+<![%errorcode.element;[
+<!ELEMENT errorcode (%smallcptr.char.mix;)*>
+<!--end of errorcode.element-->]]>
+
+<!ENTITY % errorcode.attlist "INCLUDE">
+<![%errorcode.attlist;[
+<!ATTLIST errorcode
+ %moreinfo.attrib;
+ %common.attrib;
+ %errorcode.role.attrib;
+ %local.errorcode.attrib;
+>
+<!--end of errorcode.attlist-->]]>
+<!--end of errorcode.module-->]]>
+
+<!ENTITY % errorname.module "INCLUDE">
+<![%errorname.module;[
+<!ENTITY % local.errorname.attrib "">
+<!ENTITY % errorname.role.attrib "%role.attrib;">
+
+<!ENTITY % errorname.element "INCLUDE">
+<![%errorname.element;[
+<!ELEMENT errorname (%smallcptr.char.mix;)*>
+<!--end of errorname.element-->]]>
+
+<!ENTITY % errorname.attlist "INCLUDE">
+<![%errorname.attlist;[
+<!ATTLIST errorname
+ %common.attrib;
+ %errorname.role.attrib;
+ %local.errorname.attrib;
+>
+<!--end of errorname.attlist-->]]>
+<!--end of errorname.module-->]]>
+
+<!ENTITY % errortype.module "INCLUDE">
+<![%errortype.module;[
+<!ENTITY % local.errortype.attrib "">
+<!ENTITY % errortype.role.attrib "%role.attrib;">
+
+<!ENTITY % errortype.element "INCLUDE">
+<![%errortype.element;[
+<!ELEMENT errortype (%smallcptr.char.mix;)*>
+<!--end of errortype.element-->]]>
+
+<!ENTITY % errortype.attlist "INCLUDE">
+<![%errortype.attlist;[
+<!ATTLIST errortype
+ %common.attrib;
+ %errortype.role.attrib;
+ %local.errortype.attrib;
+>
+<!--end of errortype.attlist-->]]>
+<!--end of errortype.module-->]]>
+
+<!ENTITY % filename.module "INCLUDE">
+<![%filename.module;[
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+
+<!ENTITY % filename.element "INCLUDE">
+<![%filename.element;[
+<!ELEMENT filename (%smallcptr.char.mix;)*>
+<!--end of filename.element-->]]>
+
+<!-- Class: Type of filename the element names; no default -->
+<!-- Path: Search path (possibly system-specific) in which
+ file can be found -->
+
+
+<!ENTITY % filename.attlist "INCLUDE">
+<![%filename.attlist;[
+<!ATTLIST filename
+ class (headerfile
+ |devicefile
+ |libraryfile
+ |directory
+ |symlink) #IMPLIED
+ path CDATA #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %filename.role.attrib;
+ %local.filename.attrib;
+>
+<!--end of filename.attlist-->]]>
+<!--end of filename.module-->]]>
+
+<!ENTITY % function.module "INCLUDE">
+<![%function.module;[
+<!ENTITY % local.function.attrib "">
+<!ENTITY % function.role.attrib "%role.attrib;">
+
+<!ENTITY % function.element "INCLUDE">
+<![%function.element;[
+<!ELEMENT function (%cptr.char.mix;)*>
+<!--end of function.element-->]]>
+
+<!ENTITY % function.attlist "INCLUDE">
+<![%function.attlist;[
+<!ATTLIST function
+ %moreinfo.attrib;
+ %common.attrib;
+ %function.role.attrib;
+ %local.function.attrib;
+>
+<!--end of function.attlist-->]]>
+<!--end of function.module-->]]>
+
+<!ENTITY % guibutton.module "INCLUDE">
+<![%guibutton.module;[
+<!ENTITY % local.guibutton.attrib "">
+<!ENTITY % guibutton.role.attrib "%role.attrib;">
+
+<!ENTITY % guibutton.element "INCLUDE">
+<![%guibutton.element;[
+<!ELEMENT guibutton (%smallcptr.char.mix;|accel)*>
+<!--end of guibutton.element-->]]>
+
+<!ENTITY % guibutton.attlist "INCLUDE">
+<![%guibutton.attlist;[
+<!ATTLIST guibutton
+ %moreinfo.attrib;
+ %common.attrib;
+ %guibutton.role.attrib;
+ %local.guibutton.attrib;
+>
+<!--end of guibutton.attlist-->]]>
+<!--end of guibutton.module-->]]>
+
+<!ENTITY % guiicon.module "INCLUDE">
+<![%guiicon.module;[
+<!ENTITY % local.guiicon.attrib "">
+<!ENTITY % guiicon.role.attrib "%role.attrib;">
+
+<!ENTITY % guiicon.element "INCLUDE">
+<![%guiicon.element;[
+<!ELEMENT guiicon (%smallcptr.char.mix;|accel)*>
+<!--end of guiicon.element-->]]>
+
+<!ENTITY % guiicon.attlist "INCLUDE">
+<![%guiicon.attlist;[
+<!ATTLIST guiicon
+ %moreinfo.attrib;
+ %common.attrib;
+ %guiicon.role.attrib;
+ %local.guiicon.attrib;
+>
+<!--end of guiicon.attlist-->]]>
+<!--end of guiicon.module-->]]>
+
+<!ENTITY % guilabel.module "INCLUDE">
+<![%guilabel.module;[
+<!ENTITY % local.guilabel.attrib "">
+<!ENTITY % guilabel.role.attrib "%role.attrib;">
+
+<!ENTITY % guilabel.element "INCLUDE">
+<![%guilabel.element;[
+<!ELEMENT guilabel (%smallcptr.char.mix;|accel)*>
+<!--end of guilabel.element-->]]>
+
+<!ENTITY % guilabel.attlist "INCLUDE">
+<![%guilabel.attlist;[
+<!ATTLIST guilabel
+ %moreinfo.attrib;
+ %common.attrib;
+ %guilabel.role.attrib;
+ %local.guilabel.attrib;
+>
+<!--end of guilabel.attlist-->]]>
+<!--end of guilabel.module-->]]>
+
+<!ENTITY % guimenu.module "INCLUDE">
+<![%guimenu.module;[
+<!ENTITY % local.guimenu.attrib "">
+<!ENTITY % guimenu.role.attrib "%role.attrib;">
+
+<!ENTITY % guimenu.element "INCLUDE">
+<![%guimenu.element;[
+<!ELEMENT guimenu (%smallcptr.char.mix;|accel)*>
+<!--end of guimenu.element-->]]>
+
+<!ENTITY % guimenu.attlist "INCLUDE">
+<![%guimenu.attlist;[
+<!ATTLIST guimenu
+ %moreinfo.attrib;
+ %common.attrib;
+ %guimenu.role.attrib;
+ %local.guimenu.attrib;
+>
+<!--end of guimenu.attlist-->]]>
+<!--end of guimenu.module-->]]>
+
+<!ENTITY % guimenuitem.module "INCLUDE">
+<![%guimenuitem.module;[
+<!ENTITY % local.guimenuitem.attrib "">
+<!ENTITY % guimenuitem.role.attrib "%role.attrib;">
+
+<!ENTITY % guimenuitem.element "INCLUDE">
+<![%guimenuitem.element;[
+<!ELEMENT guimenuitem (%smallcptr.char.mix;|accel)*>
+<!--end of guimenuitem.element-->]]>
+
+<!ENTITY % guimenuitem.attlist "INCLUDE">
+<![%guimenuitem.attlist;[
+<!ATTLIST guimenuitem
+ %moreinfo.attrib;
+ %common.attrib;
+ %guimenuitem.role.attrib;
+ %local.guimenuitem.attrib;
+>
+<!--end of guimenuitem.attlist-->]]>
+<!--end of guimenuitem.module-->]]>
+
+<!ENTITY % guisubmenu.module "INCLUDE">
+<![%guisubmenu.module;[
+<!ENTITY % local.guisubmenu.attrib "">
+<!ENTITY % guisubmenu.role.attrib "%role.attrib;">
+
+<!ENTITY % guisubmenu.element "INCLUDE">
+<![%guisubmenu.element;[
+<!ELEMENT guisubmenu (%smallcptr.char.mix;|accel)*>
+<!--end of guisubmenu.element-->]]>
+
+<!ENTITY % guisubmenu.attlist "INCLUDE">
+<![%guisubmenu.attlist;[
+<!ATTLIST guisubmenu
+ %moreinfo.attrib;
+ %common.attrib;
+ %guisubmenu.role.attrib;
+ %local.guisubmenu.attrib;
+>
+<!--end of guisubmenu.attlist-->]]>
+<!--end of guisubmenu.module-->]]>
+
+<!ENTITY % hardware.module "INCLUDE">
+<![%hardware.module;[
+<!ENTITY % local.hardware.attrib "">
+<!ENTITY % hardware.role.attrib "%role.attrib;">
+
+<!ENTITY % hardware.element "INCLUDE">
+<![%hardware.element;[
+<!ELEMENT hardware (%smallcptr.char.mix;)*>
+<!--end of hardware.element-->]]>
+
+<!ENTITY % hardware.attlist "INCLUDE">
+<![%hardware.attlist;[
+<!ATTLIST hardware
+ %moreinfo.attrib;
+ %common.attrib;
+ %hardware.role.attrib;
+ %local.hardware.attrib;
+>
+<!--end of hardware.attlist-->]]>
+<!--end of hardware.module-->]]>
+
+<!ENTITY % interface.module "INCLUDE">
+<![%interface.module;[
+<!ENTITY % local.interface.attrib "">
+<!ENTITY % interface.role.attrib "%role.attrib;">
+
+<!ENTITY % interface.element "INCLUDE">
+<![%interface.element;[
+<!ELEMENT interface (%smallcptr.char.mix;|accel)*>
+<!--end of interface.element-->]]>
+
+<!-- Class: Type of the Interface item; no default -->
+
+
+<!ENTITY % interface.attlist "INCLUDE">
+<![%interface.attlist;[
+<!ATTLIST interface
+ %moreinfo.attrib;
+ %common.attrib;
+ %interface.role.attrib;
+ %local.interface.attrib;
+>
+<!--end of interface.attlist-->]]>
+<!--end of interface.module-->]]>
+
+<!ENTITY % keycap.module "INCLUDE">
+<![%keycap.module;[
+<!ENTITY % local.keycap.attrib "">
+<!ENTITY % keycap.role.attrib "%role.attrib;">
+
+<!ENTITY % keycap.element "INCLUDE">
+<![%keycap.element;[
+<!ELEMENT keycap (%smallcptr.char.mix;)*>
+<!--end of keycap.element-->]]>
+
+<!ENTITY % keycap.attlist "INCLUDE">
+<![%keycap.attlist;[
+<!ATTLIST keycap
+ %moreinfo.attrib;
+ %common.attrib;
+ %keycap.role.attrib;
+ %local.keycap.attrib;
+>
+<!--end of keycap.attlist-->]]>
+<!--end of keycap.module-->]]>
+
+<!ENTITY % keycode.module "INCLUDE">
+<![%keycode.module;[
+<!ENTITY % local.keycode.attrib "">
+<!ENTITY % keycode.role.attrib "%role.attrib;">
+
+<!ENTITY % keycode.element "INCLUDE">
+<![%keycode.element;[
+<!ELEMENT keycode (%smallcptr.char.mix;)*>
+<!--end of keycode.element-->]]>
+
+<!ENTITY % keycode.attlist "INCLUDE">
+<![%keycode.attlist;[
+<!ATTLIST keycode
+ %common.attrib;
+ %keycode.role.attrib;
+ %local.keycode.attrib;
+>
+<!--end of keycode.attlist-->]]>
+<!--end of keycode.module-->]]>
+
+<!ENTITY % keycombo.module "INCLUDE">
+<![%keycombo.module;[
+<!ENTITY % local.keycombo.attrib "">
+<!ENTITY % keycombo.role.attrib "%role.attrib;">
+
+<!ENTITY % keycombo.element "INCLUDE">
+<![%keycombo.element;[
+<!ELEMENT keycombo ((keycap|keycombo|keysym|mousebutton)+)>
+<!--end of keycombo.element-->]]>
+
+<!ENTITY % keycombo.attlist "INCLUDE">
+<![%keycombo.attlist;[
+<!ATTLIST keycombo
+ %keyaction.attrib;
+ %moreinfo.attrib;
+ %common.attrib;
+ %keycombo.role.attrib;
+ %local.keycombo.attrib;
+>
+<!--end of keycombo.attlist-->]]>
+<!--end of keycombo.module-->]]>
+
+<!ENTITY % keysym.module "INCLUDE">
+<![%keysym.module;[
+<!ENTITY % local.keysym.attrib "">
+<!ENTITY % keysysm.role.attrib "%role.attrib;">
+
+<!ENTITY % keysym.element "INCLUDE">
+<![%keysym.element;[
+<!ELEMENT keysym (%smallcptr.char.mix;)*>
+<!--end of keysym.element-->]]>
+
+<!ENTITY % keysym.attlist "INCLUDE">
+<![%keysym.attlist;[
+<!ATTLIST keysym
+ %common.attrib;
+ %keysysm.role.attrib;
+ %local.keysym.attrib;
+>
+<!--end of keysym.attlist-->]]>
+<!--end of keysym.module-->]]>
+
+<!ENTITY % lineannotation.module "INCLUDE">
+<![%lineannotation.module;[
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+
+<!ENTITY % lineannotation.element "INCLUDE">
+<![%lineannotation.element;[
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!--end of lineannotation.element-->]]>
+
+<!ENTITY % lineannotation.attlist "INCLUDE">
+<![%lineannotation.attlist;[
+<!ATTLIST lineannotation
+ %common.attrib;
+ %lineannotation.role.attrib;
+ %local.lineannotation.attrib;
+>
+<!--end of lineannotation.attlist-->]]>
+<!--end of lineannotation.module-->]]>
+
+<!ENTITY % literal.module "INCLUDE">
+<![%literal.module;[
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+
+<!ENTITY % literal.element "INCLUDE">
+<![%literal.element;[
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!--end of literal.element-->]]>
+
+<!ENTITY % literal.attlist "INCLUDE">
+<![%literal.attlist;[
+<!ATTLIST literal
+ %moreinfo.attrib;
+ %common.attrib;
+ %literal.role.attrib;
+ %local.literal.attrib;
+>
+<!--end of literal.attlist-->]]>
+<!--end of literal.module-->]]>
+
+<!ENTITY % constant.module "INCLUDE">
+<![ %constant.module; [
+<!ENTITY % local.constant.attrib "">
+<!ENTITY % constant.role.attrib "%role.attrib;">
+
+<!ENTITY % constant.element "INCLUDE">
+<![ %constant.element; [
+<!ELEMENT constant (%smallcptr.char.mix;)*>
+<!--end of constant.element-->]]>
+
+<!ENTITY % constant.attlist "INCLUDE">
+<![ %constant.attlist; [
+<!ATTLIST constant
+ %common.attrib;
+ %constant.role.attrib;
+ %local.constant.attrib;
+ class (limit) #IMPLIED
+>
+<!--end of constant.attlist-->]]>
+<!--end of constant.module-->]]>
+
+<!ENTITY % varname.module "INCLUDE">
+<![ %varname.module; [
+<!ENTITY % local.varname.attrib "">
+<!ENTITY % varname.role.attrib "%role.attrib;">
+
+<!ENTITY % varname.element "INCLUDE">
+<![ %varname.element; [
+<!ELEMENT varname (%smallcptr.char.mix;)*>
+<!--end of varname.element-->]]>
+
+<!ENTITY % varname.attlist "INCLUDE">
+<![ %varname.attlist; [
+<!ATTLIST varname
+ %common.attrib;
+ %varname.role.attrib;
+ %local.varname.attrib;
+>
+<!--end of varname.attlist-->]]>
+<!--end of varname.module-->]]>
+
+<!ENTITY % markup.module "INCLUDE">
+<![%markup.module;[
+<!ENTITY % local.markup.attrib "">
+<!ENTITY % markup.role.attrib "%role.attrib;">
+
+<!ENTITY % markup.element "INCLUDE">
+<![%markup.element;[
+<!ELEMENT markup (%smallcptr.char.mix;)*>
+<!--end of markup.element-->]]>
+
+<!ENTITY % markup.attlist "INCLUDE">
+<![%markup.attlist;[
+<!ATTLIST markup
+ %common.attrib;
+ %markup.role.attrib;
+ %local.markup.attrib;
+>
+<!--end of markup.attlist-->]]>
+<!--end of markup.module-->]]>
+
+<!ENTITY % medialabel.module "INCLUDE">
+<![%medialabel.module;[
+<!ENTITY % local.medialabel.attrib "">
+<!ENTITY % medialabel.role.attrib "%role.attrib;">
+
+<!ENTITY % medialabel.element "INCLUDE">
+<![%medialabel.element;[
+<!ELEMENT medialabel (%smallcptr.char.mix;)*>
+<!--end of medialabel.element-->]]>
+
+<!-- Class: Type of medium named by the element; no default -->
+
+
+<!ENTITY % medialabel.attlist "INCLUDE">
+<![%medialabel.attlist;[
+<!ATTLIST medialabel
+ class (cartridge
+ |cdrom
+ |disk
+ |tape) #IMPLIED
+ %common.attrib;
+ %medialabel.role.attrib;
+ %local.medialabel.attrib;
+>
+<!--end of medialabel.attlist-->]]>
+<!--end of medialabel.module-->]]>
+
+<!ENTITY % menuchoice.content.module "INCLUDE">
+<![%menuchoice.content.module;[
+<!ENTITY % menuchoice.module "INCLUDE">
+<![%menuchoice.module;[
+<!ENTITY % local.menuchoice.attrib "">
+<!ENTITY % menuchoice.role.attrib "%role.attrib;">
+
+<!ENTITY % menuchoice.element "INCLUDE">
+<![%menuchoice.element;[
+<!ELEMENT menuchoice (shortcut?, (guibutton|guiicon|guilabel
+ |guimenu|guimenuitem|guisubmenu|interface)+)>
+<!--end of menuchoice.element-->]]>
+
+<!ENTITY % menuchoice.attlist "INCLUDE">
+<![%menuchoice.attlist;[
+<!ATTLIST menuchoice
+ %moreinfo.attrib;
+ %common.attrib;
+ %menuchoice.role.attrib;
+ %local.menuchoice.attrib;
+>
+<!--end of menuchoice.attlist-->]]>
+<!--end of menuchoice.module-->]]>
+
+<!ENTITY % shortcut.module "INCLUDE">
+<![%shortcut.module;[
+<!-- See also KeyCombo -->
+<!ENTITY % local.shortcut.attrib "">
+<!ENTITY % shortcut.role.attrib "%role.attrib;">
+
+<!ENTITY % shortcut.element "INCLUDE">
+<![%shortcut.element;[
+<!ELEMENT shortcut ((keycap|keycombo|keysym|mousebutton)+)>
+<!--end of shortcut.element-->]]>
+
+<!ENTITY % shortcut.attlist "INCLUDE">
+<![%shortcut.attlist;[
+<!ATTLIST shortcut
+ %keyaction.attrib;
+ %moreinfo.attrib;
+ %common.attrib;
+ %shortcut.role.attrib;
+ %local.shortcut.attrib;
+>
+<!--end of shortcut.attlist-->]]>
+<!--end of shortcut.module-->]]>
+<!--end of menuchoice.content.module-->]]>
+
+<!ENTITY % mousebutton.module "INCLUDE">
+<![%mousebutton.module;[
+<!ENTITY % local.mousebutton.attrib "">
+<!ENTITY % mousebutton.role.attrib "%role.attrib;">
+
+<!ENTITY % mousebutton.element "INCLUDE">
+<![%mousebutton.element;[
+<!ELEMENT mousebutton (%smallcptr.char.mix;)*>
+<!--end of mousebutton.element-->]]>
+
+<!ENTITY % mousebutton.attlist "INCLUDE">
+<![%mousebutton.attlist;[
+<!ATTLIST mousebutton
+ %moreinfo.attrib;
+ %common.attrib;
+ %mousebutton.role.attrib;
+ %local.mousebutton.attrib;
+>
+<!--end of mousebutton.attlist-->]]>
+<!--end of mousebutton.module-->]]>
+
+<!ENTITY % msgtext.module "INCLUDE">
+<![%msgtext.module;[
+<!ENTITY % local.msgtext.attrib "">
+<!ENTITY % msgtext.role.attrib "%role.attrib;">
+
+<!ENTITY % msgtext.element "INCLUDE">
+<![%msgtext.element;[
+<!ELEMENT msgtext ((%component.mix;)+)>
+<!--end of msgtext.element-->]]>
+
+<!ENTITY % msgtext.attlist "INCLUDE">
+<![%msgtext.attlist;[
+<!ATTLIST msgtext
+ %common.attrib;
+ %msgtext.role.attrib;
+ %local.msgtext.attrib;
+>
+<!--end of msgtext.attlist-->]]>
+<!--end of msgtext.module-->]]>
+
+<!ENTITY % option.module "INCLUDE">
+<![%option.module;[
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+
+<!ENTITY % option.element "INCLUDE">
+<![%option.element;[
+<!ELEMENT option (%smallcptr.char.mix;)*>
+<!--end of option.element-->]]>
+
+<!ENTITY % option.attlist "INCLUDE">
+<![%option.attlist;[
+<!ATTLIST option
+ %common.attrib;
+ %option.role.attrib;
+ %local.option.attrib;
+>
+<!--end of option.attlist-->]]>
+<!--end of option.module-->]]>
+
+<!ENTITY % optional.module "INCLUDE">
+<![%optional.module;[
+<!ENTITY % local.optional.attrib "">
+<!ENTITY % optional.role.attrib "%role.attrib;">
+
+<!ENTITY % optional.element "INCLUDE">
+<![%optional.element;[
+<!ELEMENT optional (%cptr.char.mix;)*>
+<!--end of optional.element-->]]>
+
+<!ENTITY % optional.attlist "INCLUDE">
+<![%optional.attlist;[
+<!ATTLIST optional
+ %common.attrib;
+ %optional.role.attrib;
+ %local.optional.attrib;
+>
+<!--end of optional.attlist-->]]>
+<!--end of optional.module-->]]>
+
+<!ENTITY % parameter.module "INCLUDE">
+<![%parameter.module;[
+<!ENTITY % local.parameter.attrib "">
+<!ENTITY % parameter.role.attrib "%role.attrib;">
+
+<!ENTITY % parameter.element "INCLUDE">
+<![%parameter.element;[
+<!ELEMENT parameter (%smallcptr.char.mix;)*>
+<!--end of parameter.element-->]]>
+
+<!-- Class: Type of the Parameter; no default -->
+
+
+<!ENTITY % parameter.attlist "INCLUDE">
+<![%parameter.attlist;[
+<!ATTLIST parameter
+ class (command
+ |function
+ |option) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %parameter.role.attrib;
+ %local.parameter.attrib;
+>
+<!--end of parameter.attlist-->]]>
+<!--end of parameter.module-->]]>
+
+<!ENTITY % prompt.module "INCLUDE">
+<![%prompt.module;[
+<!ENTITY % local.prompt.attrib "">
+<!ENTITY % prompt.role.attrib "%role.attrib;">
+
+<!ENTITY % prompt.element "INCLUDE">
+<![%prompt.element;[
+<!ELEMENT prompt (%smallcptr.char.mix;)*>
+<!--end of prompt.element-->]]>
+
+<!ENTITY % prompt.attlist "INCLUDE">
+<![%prompt.attlist;[
+<!ATTLIST prompt
+ %moreinfo.attrib;
+ %common.attrib;
+ %prompt.role.attrib;
+ %local.prompt.attrib;
+>
+<!--end of prompt.attlist-->]]>
+<!--end of prompt.module-->]]>
+
+<!ENTITY % property.module "INCLUDE">
+<![%property.module;[
+<!ENTITY % local.property.attrib "">
+<!ENTITY % property.role.attrib "%role.attrib;">
+
+<!ENTITY % property.element "INCLUDE">
+<![%property.element;[
+<!ELEMENT property (%smallcptr.char.mix;)*>
+<!--end of property.element-->]]>
+
+<!ENTITY % property.attlist "INCLUDE">
+<![%property.attlist;[
+<!ATTLIST property
+ %moreinfo.attrib;
+ %common.attrib;
+ %property.role.attrib;
+ %local.property.attrib;
+>
+<!--end of property.attlist-->]]>
+<!--end of property.module-->]]>
+
+<!ENTITY % replaceable.module "INCLUDE">
+<![%replaceable.module;[
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+
+<!ENTITY % replaceable.element "INCLUDE">
+<![%replaceable.element;[
+<!ELEMENT replaceable (#PCDATA
+ | %link.char.class;
+ | optional
+ | %base.char.class;
+ | %other.char.class;
+ | inlinegraphic
+ | inlinemediaobject)*>
+<!--end of replaceable.element-->]]>
+
+<!-- Class: Type of information the element represents; no
+ default -->
+
+
+<!ENTITY % replaceable.attlist "INCLUDE">
+<![%replaceable.attlist;[
+<!ATTLIST replaceable
+ class (command
+ |function
+ |option
+ |parameter) #IMPLIED
+ %common.attrib;
+ %replaceable.role.attrib;
+ %local.replaceable.attrib;
+>
+<!--end of replaceable.attlist-->]]>
+<!--end of replaceable.module-->]]>
+
+<!ENTITY % returnvalue.module "INCLUDE">
+<![%returnvalue.module;[
+<!ENTITY % local.returnvalue.attrib "">
+<!ENTITY % returnvalue.role.attrib "%role.attrib;">
+
+<!ENTITY % returnvalue.element "INCLUDE">
+<![%returnvalue.element;[
+<!ELEMENT returnvalue (%smallcptr.char.mix;)*>
+<!--end of returnvalue.element-->]]>
+
+<!ENTITY % returnvalue.attlist "INCLUDE">
+<![%returnvalue.attlist;[
+<!ATTLIST returnvalue
+ %common.attrib;
+ %returnvalue.role.attrib;
+ %local.returnvalue.attrib;
+>
+<!--end of returnvalue.attlist-->]]>
+<!--end of returnvalue.module-->]]>
+
+<!ENTITY % sgmltag.module "INCLUDE">
+<![%sgmltag.module;[
+<!ENTITY % local.sgmltag.attrib "">
+<!ENTITY % sgmltag.role.attrib "%role.attrib;">
+
+<!ENTITY % sgmltag.element "INCLUDE">
+<![%sgmltag.element;[
+<!ELEMENT sgmltag (%smallcptr.char.mix;)*>
+<!--end of sgmltag.element-->]]>
+
+<!-- Class: Type of SGML construct the element names; no default -->
+
+
+<!ENTITY % sgmltag.attlist "INCLUDE">
+<![%sgmltag.attlist;[
+<!ATTLIST sgmltag
+ class (attribute
+ |attvalue
+ |element
+ |endtag
+ |emptytag
+ |genentity
+ |numcharref
+ |paramentity
+ |pi
+ |xmlpi
+ |starttag
+ |sgmlcomment) #IMPLIED
+ %common.attrib;
+ %sgmltag.role.attrib;
+ %local.sgmltag.attrib;
+>
+<!--end of sgmltag.attlist-->]]>
+<!--end of sgmltag.module-->]]>
+
+<!ENTITY % structfield.module "INCLUDE">
+<![%structfield.module;[
+<!ENTITY % local.structfield.attrib "">
+<!ENTITY % structfield.role.attrib "%role.attrib;">
+
+<!ENTITY % structfield.element "INCLUDE">
+<![%structfield.element;[
+<!ELEMENT structfield (%smallcptr.char.mix;)*>
+<!--end of structfield.element-->]]>
+
+<!ENTITY % structfield.attlist "INCLUDE">
+<![%structfield.attlist;[
+<!ATTLIST structfield
+ %common.attrib;
+ %structfield.role.attrib;
+ %local.structfield.attrib;
+>
+<!--end of structfield.attlist-->]]>
+<!--end of structfield.module-->]]>
+
+<!ENTITY % structname.module "INCLUDE">
+<![%structname.module;[
+<!ENTITY % local.structname.attrib "">
+<!ENTITY % structname.role.attrib "%role.attrib;">
+
+<!ENTITY % structname.element "INCLUDE">
+<![%structname.element;[
+<!ELEMENT structname (%smallcptr.char.mix;)*>
+<!--end of structname.element-->]]>
+
+<!ENTITY % structname.attlist "INCLUDE">
+<![%structname.attlist;[
+<!ATTLIST structname
+ %common.attrib;
+ %structname.role.attrib;
+ %local.structname.attrib;
+>
+<!--end of structname.attlist-->]]>
+<!--end of structname.module-->]]>
+
+<!ENTITY % symbol.module "INCLUDE">
+<![%symbol.module;[
+<!ENTITY % local.symbol.attrib "">
+<!ENTITY % symbol.role.attrib "%role.attrib;">
+
+<!ENTITY % symbol.element "INCLUDE">
+<![%symbol.element;[
+<!ELEMENT symbol (%smallcptr.char.mix;)*>
+<!--end of symbol.element-->]]>
+
+<!-- Class: Type of symbol; no default -->
+
+
+<!ENTITY % symbol.attlist "INCLUDE">
+<![%symbol.attlist;[
+<!ATTLIST symbol
+ class (limit) #IMPLIED
+ %common.attrib;
+ %symbol.role.attrib;
+ %local.symbol.attrib;
+>
+<!--end of symbol.attlist-->]]>
+<!--end of symbol.module-->]]>
+
+<!ENTITY % systemitem.module "INCLUDE">
+<![%systemitem.module;[
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+
+<!ENTITY % systemitem.element "INCLUDE">
+<![%systemitem.element;[
+<!ELEMENT systemitem (%smallcptr.char.mix; | acronym)*>
+<!--end of systemitem.element-->]]>
+
+<!-- Class: Type of system item the element names; no default -->
+
+<!ENTITY % systemitem.attlist "INCLUDE">
+<![%systemitem.attlist;[
+<!ATTLIST systemitem
+ class (constant
+ |groupname
+ |library
+ |macro
+ |osname
+ |resource
+ |systemname
+ |username) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %systemitem.role.attrib;
+ %local.systemitem.attrib;
+>
+<!--end of systemitem.attlist-->]]>
+<!--end of systemitem.module-->]]>
+
+
+<!ENTITY % token.module "INCLUDE">
+<![%token.module;[
+<!ENTITY % local.token.attrib "">
+<!ENTITY % token.role.attrib "%role.attrib;">
+
+<!ENTITY % token.element "INCLUDE">
+<![%token.element;[
+<!ELEMENT token (%smallcptr.char.mix;)*>
+<!--end of token.element-->]]>
+
+<!ENTITY % token.attlist "INCLUDE">
+<![%token.attlist;[
+<!ATTLIST token
+ %common.attrib;
+ %token.role.attrib;
+ %local.token.attrib;
+>
+<!--end of token.attlist-->]]>
+<!--end of token.module-->]]>
+
+<!ENTITY % type.module "INCLUDE">
+<![%type.module;[
+<!ENTITY % local.type.attrib "">
+<!ENTITY % type.role.attrib "%role.attrib;">
+
+<!ENTITY % type.element "INCLUDE">
+<![%type.element;[
+<!ELEMENT type (%smallcptr.char.mix;)*>
+<!--end of type.element-->]]>
+
+<!ENTITY % type.attlist "INCLUDE">
+<![%type.attlist;[
+<!ATTLIST type
+ %common.attrib;
+ %type.role.attrib;
+ %local.type.attrib;
+>
+<!--end of type.attlist-->]]>
+<!--end of type.module-->]]>
+
+<!ENTITY % userinput.module "INCLUDE">
+<![%userinput.module;[
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+
+<!ENTITY % userinput.element "INCLUDE">
+<![%userinput.element;[
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!--end of userinput.element-->]]>
+
+<!ENTITY % userinput.attlist "INCLUDE">
+<![%userinput.attlist;[
+<!ATTLIST userinput
+ %moreinfo.attrib;
+ %common.attrib;
+ %userinput.role.attrib;
+ %local.userinput.attrib;
+>
+<!--end of userinput.attlist-->]]>
+<!--end of userinput.module-->]]>
+
+<!-- General words and phrases ............................................ -->
+
+<!ENTITY % abbrev.module "INCLUDE">
+<![%abbrev.module;[
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+
+<!ENTITY % abbrev.element "INCLUDE">
+<![%abbrev.element;[
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!--end of abbrev.element-->]]>
+
+<!ENTITY % abbrev.attlist "INCLUDE">
+<![%abbrev.attlist;[
+<!ATTLIST abbrev
+ %common.attrib;
+ %abbrev.role.attrib;
+ %local.abbrev.attrib;
+>
+<!--end of abbrev.attlist-->]]>
+<!--end of abbrev.module-->]]>
+
+<!ENTITY % acronym.module "INCLUDE">
+<![%acronym.module;[
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+
+<!ENTITY % acronym.element "INCLUDE">
+<![%acronym.element;[
+<!ELEMENT acronym (%word.char.mix;)*>
+<!--end of acronym.element-->]]>
+
+<!ENTITY % acronym.attlist "INCLUDE">
+<![%acronym.attlist;[
+<!ATTLIST acronym
+ %common.attrib;
+ %acronym.role.attrib;
+ %local.acronym.attrib;
+>
+<!--end of acronym.attlist-->]]>
+<!--end of acronym.module-->]]>
+
+<!ENTITY % citation.module "INCLUDE">
+<![%citation.module;[
+<!ENTITY % local.citation.attrib "">
+<!ENTITY % citation.role.attrib "%role.attrib;">
+
+<!ENTITY % citation.element "INCLUDE">
+<![%citation.element;[
+<!ELEMENT citation (%para.char.mix;)*>
+<!--end of citation.element-->]]>
+
+<!ENTITY % citation.attlist "INCLUDE">
+<![%citation.attlist;[
+<!ATTLIST citation
+ %common.attrib;
+ %citation.role.attrib;
+ %local.citation.attrib;
+>
+<!--end of citation.attlist-->]]>
+<!--end of citation.module-->]]>
+
+<!ENTITY % citerefentry.module "INCLUDE">
+<![%citerefentry.module;[
+<!ENTITY % local.citerefentry.attrib "">
+<!ENTITY % citerefentry.role.attrib "%role.attrib;">
+
+<!ENTITY % citerefentry.element "INCLUDE">
+<![%citerefentry.element;[
+<!ELEMENT citerefentry (refentrytitle, manvolnum?)>
+<!--end of citerefentry.element-->]]>
+
+<!ENTITY % citerefentry.attlist "INCLUDE">
+<![%citerefentry.attlist;[
+<!ATTLIST citerefentry
+ %common.attrib;
+ %citerefentry.role.attrib;
+ %local.citerefentry.attrib;
+>
+<!--end of citerefentry.attlist-->]]>
+<!--end of citerefentry.module-->]]>
+
+<!ENTITY % refentrytitle.module "INCLUDE">
+<![%refentrytitle.module;[
+<!ENTITY % local.refentrytitle.attrib "">
+<!ENTITY % refentrytitle.role.attrib "%role.attrib;">
+
+<!ENTITY % refentrytitle.element "INCLUDE">
+<![%refentrytitle.element;[
+<!ELEMENT refentrytitle (%para.char.mix;)*>
+<!--end of refentrytitle.element-->]]>
+
+<!ENTITY % refentrytitle.attlist "INCLUDE">
+<![%refentrytitle.attlist;[
+<!ATTLIST refentrytitle
+ %common.attrib;
+ %refentrytitle.role.attrib;
+ %local.refentrytitle.attrib;
+>
+<!--end of refentrytitle.attlist-->]]>
+<!--end of refentrytitle.module-->]]>
+
+<!ENTITY % manvolnum.module "INCLUDE">
+<![%manvolnum.module;[
+<!ENTITY % local.manvolnum.attrib "">
+<!ENTITY % namvolnum.role.attrib "%role.attrib;">
+
+<!ENTITY % manvolnum.element "INCLUDE">
+<![%manvolnum.element;[
+<!ELEMENT manvolnum (%word.char.mix;)*>
+<!--end of manvolnum.element-->]]>
+
+<!ENTITY % manvolnum.attlist "INCLUDE">
+<![%manvolnum.attlist;[
+<!ATTLIST manvolnum
+ %common.attrib;
+ %namvolnum.role.attrib;
+ %local.manvolnum.attrib;
+>
+<!--end of manvolnum.attlist-->]]>
+<!--end of manvolnum.module-->]]>
+
+<!ENTITY % citetitle.module "INCLUDE">
+<![%citetitle.module;[
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+
+<!ENTITY % citetitle.element "INCLUDE">
+<![%citetitle.element;[
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!--end of citetitle.element-->]]>
+
+<!-- Pubwork: Genre of published work cited; no default -->
+
+
+<!ENTITY % citetitle.attlist "INCLUDE">
+<![%citetitle.attlist;[
+<!ATTLIST citetitle
+ pubwork (article
+ |book
+ |chapter
+ |part
+ |refentry
+ |section
+ |journal
+ |series
+ |set
+ |manuscript) #IMPLIED
+ %common.attrib;
+ %citetitle.role.attrib;
+ %local.citetitle.attrib;
+>
+<!--end of citetitle.attlist-->]]>
+<!--end of citetitle.module-->]]>
+
+<!ENTITY % emphasis.module "INCLUDE">
+<![%emphasis.module;[
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+
+<!ENTITY % emphasis.element "INCLUDE">
+<![%emphasis.element;[
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!--end of emphasis.element-->]]>
+
+<!ENTITY % emphasis.attlist "INCLUDE">
+<![%emphasis.attlist;[
+<!ATTLIST emphasis
+ %common.attrib;
+ %emphasis.role.attrib;
+ %local.emphasis.attrib;
+>
+<!--end of emphasis.attlist-->]]>
+<!--end of emphasis.module-->]]>
+
+<!ENTITY % firstterm.module "INCLUDE">
+<![%firstterm.module;[
+<!ENTITY % local.firstterm.attrib "">
+<!ENTITY % firstterm.role.attrib "%role.attrib;">
+
+<!ENTITY % firstterm.element "INCLUDE">
+<![%firstterm.element;[
+<!ELEMENT firstterm (%word.char.mix;)*>
+<!--end of firstterm.element-->]]>
+
+<!-- to GlossEntry or other explanation -->
+
+
+<!ENTITY % firstterm.attlist "INCLUDE">
+<![%firstterm.attlist;[
+<!ATTLIST firstterm
+ %linkend.attrib; %common.attrib;
+ %firstterm.role.attrib;
+ %local.firstterm.attrib;
+>
+<!--end of firstterm.attlist-->]]>
+<!--end of firstterm.module-->]]>
+
+<!ENTITY % foreignphrase.module "INCLUDE">
+<![%foreignphrase.module;[
+<!ENTITY % local.foreignphrase.attrib "">
+<!ENTITY % foreignphrase.role.attrib "%role.attrib;">
+
+<!ENTITY % foreignphrase.element "INCLUDE">
+<![%foreignphrase.element;[
+<!ELEMENT foreignphrase (%para.char.mix;)*>
+<!--end of foreignphrase.element-->]]>
+
+<!ENTITY % foreignphrase.attlist "INCLUDE">
+<![%foreignphrase.attlist;[
+<!ATTLIST foreignphrase
+ %common.attrib;
+ %foreignphrase.role.attrib;
+ %local.foreignphrase.attrib;
+>
+<!--end of foreignphrase.attlist-->]]>
+<!--end of foreignphrase.module-->]]>
+
+<!ENTITY % glossterm.module "INCLUDE">
+<![%glossterm.module;[
+<!ENTITY % local.glossterm.attrib "">
+<!ENTITY % glossterm.role.attrib "%role.attrib;">
+
+<!ENTITY % glossterm.element "INCLUDE">
+<![%glossterm.element;[
+<!ELEMENT glossterm (%para.char.mix;)*>
+<!--end of glossterm.element-->]]>
+
+<!-- to GlossEntry if Glossterm used in text -->
+<!-- BaseForm: Provides the form of GlossTerm to be used
+ for indexing -->
+
+
+<!ENTITY % glossterm.attlist "INCLUDE">
+<![%glossterm.attlist;[
+<!ATTLIST glossterm
+ %linkend.attrib; baseform CDATA #IMPLIED
+ %common.attrib;
+ %glossterm.role.attrib;
+ %local.glossterm.attrib;
+>
+<!--end of glossterm.attlist-->]]>
+<!--end of glossterm.module-->]]>
+
+<!ENTITY % phrase.module "INCLUDE">
+<![%phrase.module;[
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+
+<!ENTITY % phrase.element "INCLUDE">
+<![%phrase.element;[
+<!ELEMENT phrase (%para.char.mix;)*>
+<!--end of phrase.element-->]]>
+
+<!ENTITY % phrase.attlist "INCLUDE">
+<![%phrase.attlist;[
+<!ATTLIST phrase
+ %common.attrib;
+ %phrase.role.attrib;
+ %local.phrase.attrib;
+>
+<!--end of phrase.attlist-->]]>
+<!--end of phrase.module-->]]>
+
+<!ENTITY % quote.module "INCLUDE">
+<![%quote.module;[
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+
+<!ENTITY % quote.element "INCLUDE">
+<![%quote.element;[
+<!ELEMENT quote (%para.char.mix;)*>
+<!--end of quote.element-->]]>
+
+<!ENTITY % quote.attlist "INCLUDE">
+<![%quote.attlist;[
+<!ATTLIST quote
+ %common.attrib;
+ %quote.role.attrib;
+ %local.quote.attrib;
+>
+<!--end of quote.attlist-->]]>
+<!--end of quote.module-->]]>
+
+<!ENTITY % ssscript.module "INCLUDE">
+<![%ssscript.module;[
+<!ENTITY % local.ssscript.attrib "">
+<!ENTITY % ssscript.role.attrib "%role.attrib;">
+
+<!ENTITY % subscript.element "INCLUDE">
+<![%subscript.element;[
+<!ELEMENT subscript (#PCDATA
+ | %link.char.class;
+ | emphasis
+ | replaceable
+ | symbol
+ | inlinegraphic
+ | inlinemediaobject
+ | %base.char.class;
+ | %other.char.class;)*>
+<!--end of subscript.element-->]]>
+
+<!ENTITY % subscript.attlist "INCLUDE">
+<![%subscript.attlist;[
+<!ATTLIST subscript
+ %common.attrib;
+ %ssscript.role.attrib;
+ %local.ssscript.attrib;
+>
+<!--end of subscript.attlist-->]]>
+
+<!ENTITY % superscript.element "INCLUDE">
+<![%superscript.element;[
+<!ELEMENT superscript (#PCDATA
+ | %link.char.class;
+ | emphasis
+ | replaceable
+ | symbol
+ | inlinegraphic
+ | inlinemediaobject
+ | %base.char.class;
+ | %other.char.class;)*>
+<!--end of superscript.element-->]]>
+
+<!ENTITY % superscript.attlist "INCLUDE">
+<![%superscript.attlist;[
+<!ATTLIST superscript
+ %common.attrib;
+ %ssscript.role.attrib;
+ %local.ssscript.attrib;
+>
+<!--end of superscript.attlist-->]]>
+<!--end of ssscript.module-->]]>
+
+<!ENTITY % trademark.module "INCLUDE">
+<![%trademark.module;[
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+
+<!ENTITY % trademark.element "INCLUDE">
+<![%trademark.element;[
+<!ELEMENT trademark (#PCDATA
+ | %link.char.class;
+ | %tech.char.class;
+ | %base.char.class;
+ | %other.char.class;
+ | inlinegraphic
+ | inlinemediaobject
+ | emphasis)*>
+<!--end of trademark.element-->]]>
+
+<!-- Class: More precisely identifies the item the element names -->
+
+
+<!ENTITY % trademark.attlist "INCLUDE">
+<![%trademark.attlist;[
+<!ATTLIST trademark
+ class (service
+ |trade
+ |registered
+ |copyright) 'trade'
+ %common.attrib;
+ %trademark.role.attrib;
+ %local.trademark.attrib;
+>
+<!--end of trademark.attlist-->]]>
+<!--end of trademark.module-->]]>
+
+<!ENTITY % wordasword.module "INCLUDE">
+<![%wordasword.module;[
+<!ENTITY % local.wordasword.attrib "">
+<!ENTITY % wordasword.role.attrib "%role.attrib;">
+
+<!ENTITY % wordasword.element "INCLUDE">
+<![%wordasword.element;[
+<!ELEMENT wordasword (%word.char.mix;)*>
+<!--end of wordasword.element-->]]>
+
+<!ENTITY % wordasword.attlist "INCLUDE">
+<![%wordasword.attlist;[
+<!ATTLIST wordasword
+ %common.attrib;
+ %wordasword.role.attrib;
+ %local.wordasword.attrib;
+>
+<!--end of wordasword.attlist-->]]>
+<!--end of wordasword.module-->]]>
+
+<!-- Links and cross-references ........................................... -->
+
+<!ENTITY % link.module "INCLUDE">
+<![%link.module;[
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+
+<!ENTITY % link.element "INCLUDE">
+<![%link.element;[
+<!ELEMENT link (%para.char.mix;)*>
+<!--end of link.element-->]]>
+
+<!-- Endterm: ID of element containing text that is to be
+ fetched from elsewhere in the document to appear as
+ the content of this element -->
+<!-- to linked-to object -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % link.attlist "INCLUDE">
+<![%link.attlist;[
+<!ATTLIST link
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; type CDATA #IMPLIED
+ %common.attrib;
+ %link.role.attrib;
+ %local.link.attrib;
+>
+<!--end of link.attlist-->]]>
+<!--end of link.module-->]]>
+
+<!ENTITY % olink.module "INCLUDE">
+<![%olink.module;[
+<!ENTITY % local.olink.attrib "">
+<!ENTITY % olink.role.attrib "%role.attrib;">
+
+<!ENTITY % olink.element "INCLUDE">
+<![%olink.element;[
+<!ELEMENT olink (%para.char.mix;)*>
+<!--end of olink.element-->]]>
+
+<!-- TargetDocEnt: Name of an entity to be the target of the link -->
+<!-- LinkMode: ID of a ModeSpec containing instructions for
+ operating on the entity named by TargetDocEnt -->
+<!-- LocalInfo: Information that may be passed to ModeSpec -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % olink.attlist "INCLUDE">
+<![%olink.attlist;[
+<!ATTLIST olink
+ targetdocent ENTITY #IMPLIED
+ linkmode IDREF #IMPLIED
+ localinfo CDATA #IMPLIED
+ type CDATA #IMPLIED
+ %common.attrib;
+ %olink.role.attrib;
+ %local.olink.attrib;
+>
+<!--end of olink.attlist-->]]>
+<!--end of olink.module-->]]>
+
+<!ENTITY % ulink.module "INCLUDE">
+<![%ulink.module;[
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+
+<!ENTITY % ulink.element "INCLUDE">
+<![%ulink.element;[
+<!ELEMENT ulink (%para.char.mix;)*>
+<!--end of ulink.element-->]]>
+
+<!-- URL: uniform resource locator; the target of the ULink -->
+<!-- Type: Freely assignable parameter -->
+
+
+<!ENTITY % ulink.attlist "INCLUDE">
+<![%ulink.attlist;[
+<!ATTLIST ulink
+ url CDATA #REQUIRED
+ type CDATA #IMPLIED
+ %common.attrib;
+ %ulink.role.attrib;
+ %local.ulink.attrib;
+>
+<!--end of ulink.attlist-->]]>
+<!--end of ulink.module-->]]>
+
+<!ENTITY % footnoteref.module "INCLUDE">
+<![%footnoteref.module;[
+<!ENTITY % local.footnoteref.attrib "">
+<!ENTITY % footnoteref.role.attrib "%role.attrib;">
+
+<!ENTITY % footnoteref.element "INCLUDE">
+<![%footnoteref.element;[
+<!ELEMENT footnoteref EMPTY>
+<!--end of footnoteref.element-->]]>
+
+<!-- to footnote content supplied elsewhere -->
+
+
+<!ENTITY % footnoteref.attlist "INCLUDE">
+<![%footnoteref.attlist;[
+<!ATTLIST footnoteref
+ %linkendreq.attrib; %label.attrib;
+ %common.attrib;
+ %footnoteref.role.attrib;
+ %local.footnoteref.attrib;
+>
+<!--end of footnoteref.attlist-->]]>
+<!--end of footnoteref.module-->]]>
+
+<!ENTITY % xref.module "INCLUDE">
+<![%xref.module;[
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+
+<!ENTITY % xref.element "INCLUDE">
+<![%xref.element;[
+<!ELEMENT xref EMPTY>
+<!--end of xref.element-->]]>
+
+<!-- Endterm: ID of element containing text that is to be
+ fetched from elsewhere in the document to appear as
+ the content of this element -->
+<!-- to linked-to object -->
+
+
+<!ENTITY % xref.attlist "INCLUDE">
+<![%xref.attlist;[
+<!ATTLIST xref
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; %common.attrib;
+ %xref.role.attrib;
+ %local.xref.attrib;
+>
+<!--end of xref.attlist-->]]>
+<!--end of xref.module-->]]>
+
+<!-- Ubiquitous elements .................................................. -->
+
+<!ENTITY % anchor.module "INCLUDE">
+<![%anchor.module;[
+<!ENTITY % local.anchor.attrib "">
+<!ENTITY % anchor.role.attrib "%role.attrib;">
+
+<!ENTITY % anchor.element "INCLUDE">
+<![%anchor.element;[
+<!ELEMENT anchor EMPTY>
+<!--end of anchor.element-->]]>
+
+<!-- required -->
+<!-- replaces Lang -->
+
+
+<!ENTITY % anchor.attlist "INCLUDE">
+<![%anchor.attlist;[
+<!ATTLIST anchor
+ %idreq.attrib; %pagenum.attrib; %remap.attrib;
+ %xreflabel.attrib;
+ %revisionflag.attrib;
+ %effectivity.attrib;
+ %anchor.role.attrib;
+ %local.anchor.attrib;
+>
+<!--end of anchor.attlist-->]]>
+<!--end of anchor.module-->]]>
+
+<!ENTITY % beginpage.module "INCLUDE">
+<![%beginpage.module;[
+<!ENTITY % local.beginpage.attrib "">
+<!ENTITY % beginpage.role.attrib "%role.attrib;">
+
+<!ENTITY % beginpage.element "INCLUDE">
+<![%beginpage.element;[
+<!ELEMENT beginpage EMPTY>
+<!--end of beginpage.element-->]]>
+
+<!-- PageNum: Number of page that begins at this point -->
+
+
+<!ENTITY % beginpage.attlist "INCLUDE">
+<![%beginpage.attlist;[
+<!ATTLIST beginpage
+ %pagenum.attrib;
+ %common.attrib;
+ %beginpage.role.attrib;
+ %local.beginpage.attrib;
+>
+<!--end of beginpage.attlist-->]]>
+<!--end of beginpage.module-->]]>
+
+<!-- IndexTerms appear in the text flow for generating or linking an
+ index. -->
+
+<!ENTITY % indexterm.content.module "INCLUDE">
+<![%indexterm.content.module;[
+<!ENTITY % indexterm.module "INCLUDE">
+<![%indexterm.module;[
+<!ENTITY % local.indexterm.attrib "">
+<!ENTITY % indexterm.role.attrib "%role.attrib;">
+
+<!ENTITY % indexterm.element "INCLUDE">
+<![%indexterm.element;[
+<!ELEMENT indexterm (primary?, ((secondary, ((tertiary, (see|seealso+)?)
+ | see | seealso+)?) | see | seealso+)?)>
+<!--end of indexterm.element-->]]>
+
+<!-- Scope: Indicates which generated indices the IndexTerm
+ should appear in: Global (whole document set), Local (this
+ document only), or All (both) -->
+<!-- Significance: Whether this IndexTerm is the most pertinent
+ of its series (Preferred) or not (Normal, the default) -->
+<!-- Class: Indicates type of IndexTerm; default is Singular,
+ or EndOfRange if StartRef is supplied; StartOfRange value
+ must be supplied explicitly on starts of ranges -->
+<!-- StartRef: ID of the IndexTerm that starts the indexing
+ range ended by this IndexTerm -->
+<!-- Zone: IDs of the elements to which the IndexTerm applies,
+ and indicates that the IndexTerm applies to those entire
+ elements rather than the point at which the IndexTerm
+ occurs -->
+
+
+<!ENTITY % indexterm.attlist "INCLUDE">
+<![%indexterm.attlist;[
+<!ATTLIST indexterm
+ %pagenum.attrib;
+ scope (all
+ |global
+ |local) #IMPLIED
+ significance (preferred
+ |normal) "normal"
+ class (singular
+ |startofrange
+ |endofrange) #IMPLIED
+ startref IDREF #IMPLIED
+ zone IDREFS #IMPLIED
+ %common.attrib;
+ %indexterm.role.attrib;
+ %local.indexterm.attrib;
+>
+<!--end of indexterm.attlist-->]]>
+<!--end of indexterm.module-->]]>
+
+<!ENTITY % primsecter.module "INCLUDE">
+<![%primsecter.module;[
+<!ENTITY % local.primsecter.attrib "">
+<!ENTITY % primsecter.role.attrib "%role.attrib;">
+
+
+<!ENTITY % primary.element "INCLUDE">
+<![%primary.element;[
+<!ELEMENT primary (%ndxterm.char.mix;)*>
+<!--end of primary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+ "fourteen" for an element containing "14" -->
+
+<!ENTITY % primary.attlist "INCLUDE">
+<![%primary.attlist;[
+<!ATTLIST primary
+ sortas CDATA #IMPLIED
+ %common.attrib;
+ %primsecter.role.attrib;
+ %local.primsecter.attrib;
+>
+<!--end of primary.attlist-->]]>
+
+
+<!ENTITY % secondary.element "INCLUDE">
+<![%secondary.element;[
+<!ELEMENT secondary (%ndxterm.char.mix;)*>
+<!--end of secondary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+ "fourteen" for an element containing "14" -->
+
+<!ENTITY % secondary.attlist "INCLUDE">
+<![%secondary.attlist;[
+<!ATTLIST secondary
+ sortas CDATA #IMPLIED
+ %common.attrib;
+ %primsecter.role.attrib;
+ %local.primsecter.attrib;
+>
+<!--end of secondary.attlist-->]]>
+
+
+<!ENTITY % tertiary.element "INCLUDE">
+<![%tertiary.element;[
+<!ELEMENT tertiary (%ndxterm.char.mix;)*>
+<!--end of tertiary.element-->]]>
+<!-- SortAs: Alternate sort string for index sorting, e.g.,
+ "fourteen" for an element containing "14" -->
+
+<!ENTITY % tertiary.attlist "INCLUDE">
+<![%tertiary.attlist;[
+<!ATTLIST tertiary
+ sortas CDATA #IMPLIED
+ %common.attrib;
+ %primsecter.role.attrib;
+ %local.primsecter.attrib;
+>
+<!--end of tertiary.attlist-->]]>
+
+<!--end of primsecter.module-->]]>
+
+<!ENTITY % seeseealso.module "INCLUDE">
+<![%seeseealso.module;[
+<!ENTITY % local.seeseealso.attrib "">
+<!ENTITY % seeseealso.role.attrib "%role.attrib;">
+
+<!ENTITY % see.element "INCLUDE">
+<![%see.element;[
+<!ELEMENT see (%ndxterm.char.mix;)*>
+<!--end of see.element-->]]>
+
+<!ENTITY % see.attlist "INCLUDE">
+<![%see.attlist;[
+<!ATTLIST see
+ %common.attrib;
+ %seeseealso.role.attrib;
+ %local.seeseealso.attrib;
+>
+<!--end of see.attlist-->]]>
+
+<!ENTITY % seealso.element "INCLUDE">
+<![%seealso.element;[
+<!ELEMENT seealso (%ndxterm.char.mix;)*>
+<!--end of seealso.element-->]]>
+
+<!ENTITY % seealso.attlist "INCLUDE">
+<![%seealso.attlist;[
+<!ATTLIST seealso
+ %common.attrib;
+ %seeseealso.role.attrib;
+ %local.seeseealso.attrib;
+>
+<!--end of seealso.attlist-->]]>
+<!--end of seeseealso.module-->]]>
+<!--end of indexterm.content.module-->]]>
+
+<!-- End of DocBook XML information pool module V4.1.2 ...................... -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/4.1.2/docbookx.dtd b/tests/docbook/dtd/4.1.2/docbookx.dtd
new file mode 100755
index 00000000..7ff277fc
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/docbookx.dtd
@@ -0,0 +1,125 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML DTD V4.1.2 ................................................. -->
+<!-- File docbookx.dtd .................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, and the Organization for the Advancement
+ of Structured Information Standards (OASIS).
+
+ $Id$
+
+ Permission to use, copy, modify and distribute the DocBook XML DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This is the driver file for V4.1.2 of the DocBook DTD.
+ Please use the following formal public identifier to identify it:
+
+ "-//OASIS//DTD DocBook XML V4.1.2//EN"
+
+ For example, if your document's top-level element is Book, and
+ you are using DocBook directly, use the FPI in the DOCTYPE
+ declaration:
+
+ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd"
+ [...]>
+
+ Or, if you have a higher-level driver file that customizes DocBook,
+ use the FPI in the parameter entity declaration:
+
+ <!ENTITY % DocBookDTD PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd">
+ %DocBookDTD;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+
+<!-- ...................................................................... -->
+<!-- Notation declarations ................................................ -->
+
+<!ENTITY % dbnotn.module "INCLUDE">
+<![%dbnotn.module;[
+<!ENTITY % dbnotn PUBLIC
+"-//OASIS//ENTITIES DocBook XML Notations V4.1.2//EN"
+"dbnotnx.mod">
+%dbnotn;
+]]>
+
+<!-- ...................................................................... -->
+<!-- ISO character entity sets ............................................ -->
+
+<!ENTITY % dbcent.module "INCLUDE">
+<![%dbcent.module;[
+<!ENTITY euro "&#x20AC;"><!-- euro sign, U+20AC NEW -->
+<!ENTITY % dbcent PUBLIC
+"-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN"
+"dbcentx.mod">
+%dbcent;
+]]>
+
+<!-- ...................................................................... -->
+<!-- DTD modules .......................................................... -->
+
+<!-- Information pool .............. -->
+
+<!ENTITY % dbpool.module "INCLUDE">
+<![ %dbpool.module; [
+<!ENTITY % dbpool PUBLIC
+"-//OASIS//ELEMENTS DocBook XML Information Pool V4.1.2//EN"
+"dbpoolx.mod">
+%dbpool;
+]]>
+
+<!-- Redeclaration placeholder ..... -->
+
+<!ENTITY % intermod.redecl.module "IGNORE">
+<![%intermod.redecl.module;[
+<!-- Defining rdbmods here makes some buggy XML parsers happy. -->
+<!ENTITY % rdbmods "">
+%rdbmods;
+<!--end of intermod.redecl.module-->]]>
+
+<!-- Document hierarchy ............ -->
+
+<!ENTITY % dbhier.module "INCLUDE">
+<![ %dbhier.module; [
+<!ENTITY % dbhier PUBLIC
+"-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.1.2//EN"
+"dbhierx.mod">
+%dbhier;
+]]>
+
+<!-- ...................................................................... -->
+<!-- Other general entities ............................................... -->
+
+<!ENTITY % dbgenent.module "INCLUDE">
+<![ %dbgenent.module; [
+<!ENTITY % dbgenent PUBLIC
+"-//OASIS//ENTITIES DocBook XML Additional General Entities V4.1.2//EN"
+"dbgenent.mod">
+%dbgenent;
+]]>
+
+<!-- End of DocBook XML DTD V4.1.2 .......................................... -->
+<!-- ...................................................................... -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-amsa.ent b/tests/docbook/dtd/4.1.2/ent/iso-amsa.ent
new file mode 100644
index 00000000..1b64b468
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-amsa.ent
@@ -0,0 +1,63 @@
+<!-- iso-amsa.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz
+ With additional derivations from
+ ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY cularr "&#x21B6;"> <!-- ANTICLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY curarr "&#x21B7;"> <!-- CLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY dArr "&#x21D3;"> <!-- DOWNWARDS DOUBLE ARROW -->
+<!ENTITY darr2 "&#x21CA;"> <!-- DOWNWARDS PAIRED ARROWS -->
+<!ENTITY dharl "&#x21C3;"> <!-- DOWNWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY dharr "&#x21C2;"> <!-- DOWNWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY lAarr "&#x21DA;"> <!-- LEFTWARDS TRIPLE ARROW -->
+<!ENTITY Larr "&#x219E;"> <!-- LEFTWARDS TWO HEADED ARROW -->
+<!ENTITY larr2 "&#x21C7;"> <!-- LEFTWARDS PAIRED ARROWS -->
+<!ENTITY larrhk "&#x21A9;"> <!-- LEFTWARDS ARROW WITH HOOK -->
+<!ENTITY larrlp "&#x21AB;"> <!-- LEFTWARDS ARROW WITH LOOP -->
+<!ENTITY larrtl "&#x21A2;"> <!-- LEFTWARDS ARROW WITH TAIL -->
+<!ENTITY lhard "&#x21BD;"> <!-- LEFTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY lharu "&#x21BC;"> <!-- LEFTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY hArr "&#x21D4;"> <!-- -->
+<!ENTITY harr "&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY lrarr2 "&#x21C6;"> <!-- LEFTWARDS ARROW OVER RIGHTWARDS ARROW -->
+<!ENTITY rlarr2 "&#x21C4;"> <!-- RIGHTWARDS ARROW OVER LEFTWARDS ARROW -->
+<!ENTITY harrw "&#x21AD;"> <!-- LEFT RIGHT WAVE ARROW -->
+<!ENTITY rlhar2 "&#x21CC;"> <!-- RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON -->
+<!ENTITY lrhar2 "&#x21CB;"> <!-- LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON -->
+<!ENTITY lsh "&#x21B0;"> <!-- UPWARDS ARROW WITH TIP LEFTWARDS -->
+<!ENTITY map "&#x21A6;"> <!-- RIGHTWARDS ARROW FROM BAR -->
+<!ENTITY mumap "&#x22B8;"> <!-- MULTIMAP -->
+<!ENTITY nearr "&#x2197;"> <!-- NORTH EAST ARROW -->
+<!ENTITY nlArr "&#x21CD;"> <!-- LEFTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nlarr "&#x219A;"> <!-- LEFTWARDS ARROW WITH STROKE -->
+<!ENTITY nhArr "&#x21CE;"> <!-- LEFT RIGHT DOUBLE ARROW WITH STROKE -->
+<!ENTITY nharr "&#x21AE;"> <!-- LEFT RIGHT ARROW WITH STROKE -->
+<!ENTITY nrarr "&#x219B;"> <!-- RIGHTWARDS ARROW WITH STROKE -->
+<!ENTITY nrArr "&#x21CF;"> <!-- RIGHTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nwarr "&#x2196;"> <!-- NORTH WEST ARROW -->
+<!ENTITY olarr "&#x21BA;"> <!-- ANTICLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY orarr "&#x21BB;"> <!-- CLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY rAarr "&#x21DB;"> <!-- RIGHTWARDS TRIPLE ARROW -->
+<!ENTITY Rarr "&#x21A0;"> <!-- RIGHTWARDS TWO HEADED ARROW -->
+<!ENTITY rarr2 "&#x21C9;"> <!-- RIGHTWARDS PAIRED ARROWS -->
+<!ENTITY rarrhk "&#x21AA;"> <!-- RIGHTWARDS ARROW WITH HOOK -->
+<!ENTITY rarrlp "&#x21AC;"> <!-- RIGHTWARDS ARROW WITH LOOP -->
+<!ENTITY rarrtl "&#x21A3;"> <!-- RIGHTWARDS ARROW WITH TAIL -->
+<!ENTITY rarrw "&#x219D;"> <!-- RIGHTWARDS SQUIGGLE ARROW -->
+<!ENTITY rhard "&#x21C1;"> <!-- RIGHTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY rharu "&#x21C0;"> <!-- RIGHTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY rsh "&#x21B1;"> <!-- UPWARDS ARROW WITH TIP RIGHTWARDS -->
+<!ENTITY drarr "&#x2198;"> <!-- SOUTH EAST ARROW -->
+<!ENTITY dlarr "&#x2199;"> <!-- SOUTH WEST ARROW -->
+<!ENTITY uArr "&#x21D1;"> <!-- UPWARDS DOUBLE ARROW -->
+<!ENTITY uarr2 "&#x21C8;"> <!-- UPWARDS PAIRED ARROWS -->
+<!ENTITY vArr "&#x21D5;"> <!-- UP DOWN DOUBLE ARROW -->
+<!ENTITY varr "&#x2195;"> <!-- UP DOWN ARROW -->
+<!ENTITY uharl "&#x21BF;"> <!-- UPWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY uharr "&#x21BE;"> <!-- UPWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY xlArr "&#x21D0;"> <!-- LEFTWARDS DOUBLE ARROW -->
+<!ENTITY xhArr "&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY xharr "&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY xrArr "&#x21D2;"> <!-- RIGHTWARDS DOUBLE ARROW -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-amsb.ent b/tests/docbook/dtd/4.1.2/ent/iso-amsb.ent
new file mode 100644
index 00000000..38bd2e7e
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-amsb.ent
@@ -0,0 +1,49 @@
+<!-- iso-amsb.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz.
+ With additional derivations from
+ ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY amalg "&#x2210;"> <!-- N-ARY COPRODUCT -->
+<!ENTITY Barwed "&#x2306;"> <!-- PERSPECTIVE -->
+<!ENTITY barwed "&#x22BC;"> <!-- NAND -->
+<!ENTITY Cap "&#x22D2;"> <!-- DOUBLE INTERSECTION -->
+<!ENTITY Cup "&#x22D3;"> <!-- DOUBLE UNION -->
+<!ENTITY cuvee "&#x22CE;"> <!-- CURLY LOGICAL OR -->
+<!ENTITY cuwed "&#x22CF;"> <!-- CURLY LOGICAL AND -->
+<!ENTITY diam "&#x22C4;"> <!-- DIAMOND OPERATOR -->
+<!ENTITY divonx "&#x22C7;"> <!-- DIVISION TIMES -->
+<!ENTITY intcal "&#x22BA;"> <!-- INTERCALATE -->
+<!ENTITY lthree "&#x22CB;"> <!-- LEFT SEMIDIRECT PRODUCT -->
+<!ENTITY ltimes "&#x22C9;"> <!-- LEFT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY minusb "&#x229F;"> <!-- SQUARED MINUS -->
+<!ENTITY oast "&#x229B;"> <!-- CIRCLED ASTERISK OPERATOR -->
+<!ENTITY ocir "&#x229A;"> <!-- CIRCLED RING OPERATOR -->
+<!ENTITY odash "&#x229D;"> <!-- CIRCLED DASH -->
+<!ENTITY odot "&#x2299;"> <!-- CIRCLED DOT OPERATOR -->
+<!ENTITY ominus "&#x2296;"> <!-- CIRCLED MINUS -->
+<!ENTITY oplus "&#x2295;"> <!-- CIRCLED PLUS -->
+<!ENTITY osol "&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY otimes "&#x2297;"> <!-- CIRCLED TIMES -->
+<!ENTITY plusb "&#x229E;"> <!-- SQUARED PLUS -->
+<!ENTITY plusdo "&#x2214;"> <!-- DOT PLUS -->
+<!ENTITY rthree "&#x22CC;"> <!-- RIGHT SEMIDIRECT PRODUCT -->
+<!ENTITY rtimes "&#x22CA;"> <!-- RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY sdot "&#x22C5;"> <!-- DOT OPERATOR -->
+<!ENTITY sdotb "&#x22A1;"> <!-- SQUARED DOT OPERATOR -->
+<!ENTITY setmn "&#x2216;"> <!-- SET MINUS -->
+<!ENTITY sqcap "&#x2293;"> <!-- SQUARE CAP -->
+<!ENTITY sqcup "&#x2294;"> <!-- SQUARE CUP -->
+<!ENTITY ssetmn "&#x2216;"> <!-- SET MINUS -->
+<!ENTITY sstarf "&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY timesb "&#x22A0;"> <!-- SQUARED TIMES -->
+<!ENTITY top "&#x22A4;"> <!-- DOWN TACK -->
+<!ENTITY uplus "&#x228E;"> <!-- MULTISET UNION -->
+<!ENTITY wreath "&#x2240;"> <!-- WREATH PRODUCT -->
+<!ENTITY xcirc "&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY xdtri "&#x25BD;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY xutri "&#x25B3;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY coprod "&#x2210;"> <!-- N-ARY COPRODUCT -->
+<!ENTITY prod "&#x220F;"> <!-- N-ARY PRODUCT -->
+<!ENTITY sum "&#x2211;"> <!-- N-ARY SUMMATION -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-amsc.ent b/tests/docbook/dtd/4.1.2/ent/iso-amsc.ent
new file mode 100644
index 00000000..8485fe38
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-amsc.ent
@@ -0,0 +1,15 @@
+<!-- iso-amsc.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY rceil "&#x2309;"> <!-- RIGHT CEILING -->
+<!ENTITY rfloor "&#x230B;"> <!-- RIGHT FLOOR -->
+<!ENTITY rpargt "&#xE291;"> <!-- -->
+<!ENTITY urcorn "&#x231D;"> <!-- TOP RIGHT CORNER -->
+<!ENTITY drcorn "&#x231F;"> <!-- BOTTOM RIGHT CORNER -->
+<!ENTITY lceil "&#x2308;"> <!-- LEFT CEILING -->
+<!ENTITY lfloor "&#x230A;"> <!-- LEFT FLOOR -->
+<!-- lpargt Unknown unicode character -->
+<!ENTITY ulcorn "&#x231C;"> <!-- TOP LEFT CORNER -->
+<!ENTITY dlcorn "&#x231E;"> <!-- BOTTOM LEFT CORNER -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-amsn.ent b/tests/docbook/dtd/4.1.2/ent/iso-amsn.ent
new file mode 100644
index 00000000..7e9d5786
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-amsn.ent
@@ -0,0 +1,66 @@
+<!-- iso-amsn.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz
+ With additional derivations from
+ ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY gnap "&#xE411;"> <!-- -->
+<!ENTITY gne "&#x2269;"> <!-- -->
+<!ENTITY gnE "&#x2269;"> <!-- -->
+<!ENTITY gnsim "&#x22E7;"> <!-- GREATER-THAN BUT NOT EQUIVALENT TO -->
+<!ENTITY gvnE "&#x2269;"> <!-- GREATER-THAN BUT NOT EQUAL TO -->
+<!ENTITY lnap "&#xE2A2;"> <!-- -->
+<!ENTITY lnE "&#x2268;"> <!-- -->
+<!ENTITY lne "&#x2268;"> <!-- -->
+<!ENTITY lnsim "&#x22E6;"> <!-- -->
+<!ENTITY lvnE "&#x2268;"> <!-- LESS-THAN BUT NOT EQUAL TO -->
+<!ENTITY nap "&#x2249;"> <!-- NOT ALMOST EQUAL TO -->
+<!ENTITY ncong "&#x2247;"> <!-- NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO -->
+<!ENTITY nequiv "&#x2262;"> <!-- NOT IDENTICAL TO -->
+<!ENTITY ngE "&#x2271;"> <!-- -->
+<!ENTITY nge "&#x2271;"> <!-- NEITHER GREATER-THAN NOR EQUAL TO -->
+<!ENTITY nges "&#x2271;"> <!-- -->
+<!ENTITY ngt "&#x226F;"> <!-- NOT GREATER-THAN -->
+<!ENTITY nle "&#x2270;"> <!-- NEITHER LESS-THAN NOR EQUAL TO -->
+<!ENTITY nlE "&#x2270;"> <!-- -->
+<!ENTITY nles "&#x2270;"> <!-- -->
+<!ENTITY nlt "&#x226E;"> <!-- NOT LESS-THAN -->
+<!ENTITY nltri "&#x22EA;"> <!-- NOT NORMAL SUBGROUP OF -->
+<!ENTITY nltrie "&#x22EC;"> <!-- NOT NORMAL SUBGROUP OF OR EQUAL TO -->
+<!ENTITY nmid "&#x2224;"> <!-- DOES NOT DIVIDE -->
+<!ENTITY npar "&#x2226;"> <!-- NOT PARALLEL TO -->
+<!ENTITY npr "&#x2280;"> <!-- DOES NOT PRECEDE -->
+<!ENTITY npre "&#x22E0;"> <!-- DOES NOT PRECEDE OR EQUAL -->
+<!ENTITY nrtri "&#x22EB;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP -->
+<!ENTITY nrtrie "&#x22ED;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL -->
+<!ENTITY nsc "&#x2281;"> <!-- DOES NOT SUCCEED -->
+<!ENTITY nsce "&#x22E1;"> <!-- DOES NOT SUCCEED OR EQUAL -->
+<!ENTITY nsim "&#x2241;"> <!-- -->
+<!ENTITY nsime "&#x2244;"> <!-- -->
+<!ENTITY nsmid "&#xE2AA;"> <!-- -->
+<!ENTITY nspar "&#x2226;"> <!-- NOT PARALLEL TO -->
+<!ENTITY nsub "&#x2284;"> <!-- NOT A SUBSET OF -->
+<!ENTITY nsube "&#x2288;"> <!-- -->
+<!ENTITY nsubE "&#x2288;"> <!-- -->
+<!ENTITY nsup "&#x2285;"> <!-- NOT A SUPERSET OF -->
+<!ENTITY nsupE "&#x2289;"> <!-- -->
+<!ENTITY nsupe "&#x2289;"> <!-- -->
+<!ENTITY nvdash "&#x22AC;"> <!-- DOES NOT PROVE -->
+<!ENTITY nvDash "&#x22AD;"> <!-- NOT TRUE -->
+<!ENTITY nVDash "&#x22AF;"> <!-- NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -->
+<!ENTITY nVdash "&#x22AE;"> <!-- DOES NOT FORCE -->
+<!ENTITY prnap "&#x22E8;"> <!-- -->
+<!ENTITY prnE "&#xE2B3;"> <!-- -->
+<!ENTITY prnsim "&#x22E8;"> <!-- -->
+<!ENTITY scnap "&#x22E9;"> <!-- -->
+<!ENTITY scnE "&#xE2B5;"> <!-- -->
+<!ENTITY scnsim "&#x22E9;"> <!-- -->
+<!ENTITY subne "&#x228A;"> <!-- -->
+<!ENTITY subnE "&#x228A;"> <!-- SUBSET OF WITH NOT EQUAL TO -->
+<!ENTITY supne "&#x228B;"> <!-- -->
+<!ENTITY supnE "&#x228B;"> <!-- -->
+<!ENTITY vsubnE "&#xE2B8;"> <!-- -->
+<!ENTITY vsubne "&#x228A;"> <!-- SUBSET OF WITH NOT EQUAL TO -->
+<!ENTITY vsupne "&#x228B;"> <!-- SUPERSET OF WITH NOT EQUAL TO -->
+<!ENTITY vsupnE "&#x228B;"> <!-- SUPERSET OF WITH NOT EQUAL TO -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-amso.ent b/tests/docbook/dtd/4.1.2/ent/iso-amso.ent
new file mode 100644
index 00000000..61f5c4da
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-amso.ent
@@ -0,0 +1,26 @@
+<!-- iso-amso.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz
+ With additional derivations from
+ ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY ang "&#x2220;"> <!-- ANGLE -->
+<!ENTITY angmsd "&#x2221;"> <!-- MEASURED ANGLE -->
+<!ENTITY beth "&#x2136;"> <!-- BET SYMBOL -->
+<!ENTITY bprime "&#x2035;"> <!-- REVERSED PRIME -->
+<!ENTITY comp "&#x2201;"> <!-- COMPLEMENT -->
+<!ENTITY daleth "&#x2138;"> <!-- DALET SYMBOL -->
+<!ENTITY ell "&#x2113;"> <!-- SCRIPT SMALL L -->
+<!ENTITY empty "&#x2205;"> <!-- -->
+<!ENTITY gimel "&#x2137;"> <!-- GIMEL SYMBOL -->
+<!ENTITY image "&#x2111;"> <!-- BLACK-LETTER CAPITAL I -->
+<!ENTITY inodot "&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!-- jnodot Unknown unicode character -->
+<!ENTITY nexist "&#x2204;"> <!-- THERE DOES NOT EXIST -->
+<!ENTITY oS "&#x24C8;"> <!-- CIRCLED LATIN CAPITAL LETTER S -->
+<!ENTITY planck "&#x210F;"> <!-- PLANCK CONSTANT OVER TWO PI -->
+<!ENTITY real "&#x211C;"> <!-- BLACK-LETTER CAPITAL R -->
+<!ENTITY sbsol "&#xFE68;"> <!-- SMALL REVERSE SOLIDUS -->
+<!ENTITY vprime "&#x2032;"> <!-- PRIME -->
+<!ENTITY weierp "&#x2118;"> <!-- SCRIPT CAPITAL P -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-amsr.ent b/tests/docbook/dtd/4.1.2/ent/iso-amsr.ent
new file mode 100644
index 00000000..9ef9da0e
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-amsr.ent
@@ -0,0 +1,91 @@
+<!-- iso-amsr.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz.
+ With additional derivations from
+ ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY ape "&#x224A;"> <!-- -->
+<!ENTITY asymp "&#x224D;"> <!-- EQUIVALENT TO -->
+<!ENTITY bcong "&#x224C;"> <!-- ALL EQUAL TO -->
+<!ENTITY bepsi "&#x220D;"> <!-- SMALL CONTAINS AS MEMBER -->
+<!ENTITY bowtie "&#x22C8;"> <!-- -->
+<!ENTITY bsim "&#x223D;"> <!-- -->
+<!ENTITY bsime "&#x22CD;"> <!-- -->
+<!ENTITY bump "&#x224E;"> <!-- -->
+<!ENTITY bumpe "&#x224F;"> <!-- -->
+<!ENTITY cire "&#x2257;"> <!-- -->
+<!ENTITY colone "&#x2254;"> <!-- -->
+<!ENTITY cuepr "&#x22DE;"> <!-- -->
+<!ENTITY cuesc "&#x22DF;"> <!-- -->
+<!ENTITY cupre "&#x227C;"> <!-- -->
+<!ENTITY dashv "&#x22A3;"> <!-- -->
+<!ENTITY ecir "&#x2256;"> <!-- -->
+<!ENTITY ecolon "&#x2255;"> <!-- -->
+<!ENTITY eDot "&#x2251;"> <!-- -->
+<!ENTITY esdot "&#x2250;"> <!-- -->
+<!ENTITY efDot "&#x2252;"> <!-- -->
+<!ENTITY egs "&#x22DD;"> <!-- -->
+<!ENTITY els "&#x22DC;"> <!-- -->
+<!ENTITY erDot "&#x2253;"> <!-- -->
+<!ENTITY fork "&#x22D4;"> <!-- -->
+<!ENTITY frown "&#x2322;"> <!-- -->
+<!ENTITY gap "&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY gsdot "&#x22D7;"> <!-- -->
+<!ENTITY gE "&#x2267;"> <!-- -->
+<!ENTITY gel "&#x22DB;"> <!-- -->
+<!ENTITY gEl "&#x22DB;"> <!-- -->
+<!ENTITY ges "&#x2265;"> <!-- GREATER-THAN OR EQUAL TO -->
+<!ENTITY Gg "&#x22D9;"> <!-- VERY MUCH GREATER-THAN -->
+<!ENTITY gl "&#x2277;"> <!-- -->
+<!ENTITY gsim "&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY Gt "&#x226B;"> <!-- MUCH GREATER-THAN -->
+<!ENTITY lap "&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY ldot "&#x22D6;"> <!-- -->
+<!ENTITY lE "&#x2266;"> <!-- -->
+<!ENTITY lEg "&#x22DA;"> <!-- -->
+<!ENTITY leg "&#x22DA;"> <!-- -->
+<!ENTITY les "&#x2264;"> <!-- LESS-THAN OR EQUAL TO -->
+<!ENTITY lg "&#x2276;"> <!-- LESS-THAN OR GREATER-THAN -->
+<!ENTITY Ll "&#x22D8;"> <!-- -->
+<!ENTITY lsim "&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY Lt "&#x226A;"> <!-- MUCH LESS-THAN -->
+<!ENTITY ltrie "&#x22B4;"> <!-- -->
+<!ENTITY mid "&#x2223;"> <!-- -->
+<!ENTITY models "&#x22A7;"> <!-- MODELS -->
+<!ENTITY pr "&#x227A;"> <!-- -->
+<!ENTITY prap "&#x227E;"> <!-- -->
+<!ENTITY pre "&#x227C;"> <!-- -->
+<!ENTITY prsim "&#x227E;"> <!-- -->
+<!ENTITY rtrie "&#x22B5;"> <!-- -->
+<!ENTITY samalg "&#x2210;"> <!-- -->
+<!ENTITY sc "&#x227B;"> <!-- -->
+<!ENTITY scap "&#x227F;"> <!-- -->
+<!ENTITY sccue "&#x227D;"> <!-- -->
+<!ENTITY sce "&#x227D;"> <!-- -->
+<!ENTITY scsim "&#x227F;"> <!-- -->
+<!ENTITY sfrown "&#x2322;"> <!-- FROWN -->
+<!ENTITY smid "&#xE301;"> <!-- -->
+<!ENTITY smile "&#x2323;"> <!-- -->
+<!ENTITY spar "&#x2225;"> <!-- PARALLEL TO -->
+<!ENTITY sqsub "&#x228F;"> <!-- -->
+<!ENTITY sqsube "&#x2291;"> <!-- -->
+<!ENTITY sqsup "&#x2290;"> <!-- -->
+<!ENTITY sqsupe "&#x2292;"> <!-- -->
+<!ENTITY ssmile "&#x2323;"> <!-- SMILE -->
+<!ENTITY Sub "&#x22D0;"> <!-- -->
+<!ENTITY subE "&#x2286;"> <!-- -->
+<!ENTITY Sup "&#x22D1;"> <!-- -->
+<!ENTITY supE "&#x2287;"> <!-- -->
+<!ENTITY thkap "&#x2248;"> <!-- ALMOST EQUAL TO -->
+<!ENTITY thksim "&#x223C;"> <!-- TILDE OPERATOR -->
+<!ENTITY trie "&#x225C;"> <!-- -->
+<!ENTITY twixt "&#x226C;"> <!-- BETWEEN -->
+<!ENTITY vdash "&#x22A2;"> <!-- -->
+<!ENTITY Vdash "&#x22A9;"> <!-- -->
+<!ENTITY vDash "&#x22A8;"> <!-- -->
+<!ENTITY veebar "&#x22BB;"> <!-- -->
+<!ENTITY vltri "&#x22B2;"> <!-- -->
+<!ENTITY vprop "&#x221D;"> <!-- -->
+<!ENTITY vrtri "&#x22B3;"> <!-- -->
+<!ENTITY Vvdash "&#x22AA;"> <!-- -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-box.ent b/tests/docbook/dtd/4.1.2/ent/iso-box.ent
new file mode 100644
index 00000000..1f875305
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-box.ent
@@ -0,0 +1,45 @@
+<!-- iso-box.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY boxh "&#x2500;"> <!-- BOX DRAWINGS LIGHT HORIZONTAL -->
+<!ENTITY boxv "&#x2502;"> <!-- BOX DRAWINGS LIGHT VERTICAL -->
+<!ENTITY boxur "&#x2514;"> <!-- BOX DRAWINGS LIGHT UP AND RIGHT -->
+<!ENTITY boxul "&#x2518;"> <!-- BOX DRAWINGS LIGHT UP AND LEFT -->
+<!ENTITY boxdl "&#x2510;"> <!-- BOX DRAWINGS LIGHT DOWN AND LEFT -->
+<!ENTITY boxdr "&#x250C;"> <!-- BOX DRAWINGS LIGHT DOWN AND RIGHT -->
+<!ENTITY boxvr "&#x251C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND RIGHT -->
+<!ENTITY boxhu "&#x2534;"> <!-- BOX DRAWINGS LIGHT UP AND HORIZONTAL -->
+<!ENTITY boxvl "&#x2524;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND LEFT -->
+<!ENTITY boxhd "&#x252C;"> <!-- BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -->
+<!ENTITY boxvh "&#x253C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -->
+<!ENTITY boxvR "&#x255E;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxhU "&#x2567;"> <!-- BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvL "&#x2561;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxhD "&#x2564;"> <!-- BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvH "&#x256A;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxH "&#x2550;"> <!-- BOX DRAWINGS DOUBLE HORIZONTAL -->
+<!ENTITY boxV "&#x2551;"> <!-- BOX DRAWINGS DOUBLE VERTICAL -->
+<!ENTITY boxUR "&#x2558;"> <!-- BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxUL "&#x255B;"> <!-- BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDL "&#x2555;"> <!-- BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDR "&#x2552;"> <!-- BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxVR "&#x255F;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxHU "&#x2568;"> <!-- BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVL "&#x2562;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxHD "&#x2565;"> <!-- BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVH "&#x256B;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVr "&#x2560;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -->
+<!ENTITY boxHu "&#x2569;"> <!-- BOX DRAWINGS DOUBLE UP AND HORIZONTAL -->
+<!ENTITY boxVl "&#x2563;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND LEFT -->
+<!ENTITY boxHd "&#x2566;"> <!-- BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -->
+<!ENTITY boxVh "&#x256C;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -->
+<!ENTITY boxuR "&#x2559;"> <!-- BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUl "&#x255C;"> <!-- BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxdL "&#x2556;"> <!-- BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxDr "&#x2553;"> <!-- BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUr "&#x255A;"> <!-- BOX DRAWINGS DOUBLE UP AND RIGHT -->
+<!ENTITY boxuL "&#x255D;"> <!-- BOX DRAWINGS DOUBLE UP AND LEFT -->
+<!ENTITY boxDl "&#x2557;"> <!-- BOX DRAWINGS DOUBLE DOWN AND LEFT -->
+<!ENTITY boxdR "&#x2554;"> <!-- BOX DRAWINGS DOUBLE DOWN AND RIGHT -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-cyr1.ent b/tests/docbook/dtd/4.1.2/ent/iso-cyr1.ent
new file mode 100644
index 00000000..2516f8e0
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-cyr1.ent
@@ -0,0 +1,72 @@
+<!-- iso-cyr1.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY acy "&#x0430;"> <!-- CYRILLIC SMALL LETTER A -->
+<!ENTITY Acy "&#x0410;"> <!-- CYRILLIC CAPITAL LETTER A -->
+<!ENTITY bcy "&#x0431;"> <!-- CYRILLIC SMALL LETTER BE -->
+<!ENTITY Bcy "&#x0411;"> <!-- CYRILLIC CAPITAL LETTER BE -->
+<!ENTITY vcy "&#x0432;"> <!-- CYRILLIC SMALL LETTER VE -->
+<!ENTITY Vcy "&#x0412;"> <!-- CYRILLIC CAPITAL LETTER VE -->
+<!ENTITY gcy "&#x0433;"> <!-- CYRILLIC SMALL LETTER GHE -->
+<!ENTITY Gcy "&#x0413;"> <!-- CYRILLIC CAPITAL LETTER GHE -->
+<!ENTITY dcy "&#x0434;"> <!-- CYRILLIC SMALL LETTER DE -->
+<!ENTITY Dcy "&#x0414;"> <!-- CYRILLIC CAPITAL LETTER DE -->
+<!ENTITY iecy "&#x0435;"> <!-- CYRILLIC SMALL LETTER IE -->
+<!ENTITY IEcy "&#x0415;"> <!-- CYRILLIC CAPITAL LETTER IE -->
+<!ENTITY iocy "&#x0451;"> <!-- CYRILLIC SMALL LETTER IO -->
+<!ENTITY IOcy "&#x0401;"> <!-- CYRILLIC CAPITAL LETTER IO -->
+<!ENTITY zhcy "&#x0436;"> <!-- CYRILLIC SMALL LETTER ZHE -->
+<!ENTITY ZHcy "&#x0416;"> <!-- CYRILLIC CAPITAL LETTER ZHE -->
+<!ENTITY zcy "&#x0437;"> <!-- CYRILLIC SMALL LETTER ZE -->
+<!ENTITY Zcy "&#x0417;"> <!-- CYRILLIC CAPITAL LETTER ZE -->
+<!ENTITY icy "&#x0438;"> <!-- CYRILLIC SMALL LETTER I -->
+<!ENTITY Icy "&#x0418;"> <!-- CYRILLIC CAPITAL LETTER I -->
+<!ENTITY jcy "&#x0439;"> <!-- CYRILLIC SMALL LETTER SHORT I -->
+<!ENTITY Jcy "&#x0419;"> <!-- CYRILLIC CAPITAL LETTER SHORT I -->
+<!ENTITY kcy "&#x043A;"> <!-- CYRILLIC SMALL LETTER KA -->
+<!ENTITY Kcy "&#x041A;"> <!-- CYRILLIC CAPITAL LETTER KA -->
+<!ENTITY lcy "&#x043B;"> <!-- CYRILLIC SMALL LETTER EL -->
+<!ENTITY Lcy "&#x041B;"> <!-- CYRILLIC CAPITAL LETTER EL -->
+<!ENTITY mcy "&#x043C;"> <!-- CYRILLIC SMALL LETTER EM -->
+<!ENTITY Mcy "&#x041C;"> <!-- CYRILLIC CAPITAL LETTER EM -->
+<!ENTITY ncy "&#x043D;"> <!-- CYRILLIC SMALL LETTER EN -->
+<!ENTITY Ncy "&#x041D;"> <!-- CYRILLIC CAPITAL LETTER EN -->
+<!ENTITY ocy "&#x043E;"> <!-- CYRILLIC SMALL LETTER O -->
+<!ENTITY Ocy "&#x041E;"> <!-- CYRILLIC CAPITAL LETTER O -->
+<!ENTITY pcy "&#x043F;"> <!-- CYRILLIC SMALL LETTER PE -->
+<!ENTITY Pcy "&#x041F;"> <!-- CYRILLIC CAPITAL LETTER PE -->
+<!ENTITY rcy "&#x0440;"> <!-- CYRILLIC SMALL LETTER ER -->
+<!ENTITY Rcy "&#x0420;"> <!-- CYRILLIC CAPITAL LETTER ER -->
+<!ENTITY scy "&#x0441;"> <!-- CYRILLIC SMALL LETTER ES -->
+<!ENTITY Scy "&#x0421;"> <!-- CYRILLIC CAPITAL LETTER ES -->
+<!ENTITY tcy "&#x0442;"> <!-- CYRILLIC SMALL LETTER TE -->
+<!ENTITY Tcy "&#x0422;"> <!-- CYRILLIC CAPITAL LETTER TE -->
+<!ENTITY ucy "&#x0443;"> <!-- CYRILLIC SMALL LETTER U -->
+<!ENTITY Ucy "&#x0423;"> <!-- CYRILLIC CAPITAL LETTER U -->
+<!ENTITY fcy "&#x0444;"> <!-- CYRILLIC SMALL LETTER EF -->
+<!ENTITY Fcy "&#x0424;"> <!-- CYRILLIC CAPITAL LETTER EF -->
+<!ENTITY khcy "&#x0445;"> <!-- CYRILLIC SMALL LETTER HA -->
+<!ENTITY KHcy "&#x0425;"> <!-- CYRILLIC CAPITAL LETTER HA -->
+<!ENTITY tscy "&#x0446;"> <!-- CYRILLIC SMALL LETTER TSE -->
+<!ENTITY TScy "&#x0426;"> <!-- CYRILLIC CAPITAL LETTER TSE -->
+<!ENTITY chcy "&#x0447;"> <!-- CYRILLIC SMALL LETTER CHE -->
+<!ENTITY CHcy "&#x0427;"> <!-- CYRILLIC CAPITAL LETTER CHE -->
+<!ENTITY shcy "&#x0448;"> <!-- CYRILLIC SMALL LETTER SHA -->
+<!ENTITY SHcy "&#x0428;"> <!-- CYRILLIC CAPITAL LETTER SHA -->
+<!ENTITY shchcy "&#x0449;"> <!-- CYRILLIC SMALL LETTER SHCHA -->
+<!ENTITY SHCHcy "&#x0429;"> <!-- CYRILLIC CAPITAL LETTER SHCHA -->
+<!ENTITY hardcy "&#x044A;"> <!-- CYRILLIC SMALL LETTER HARD SIGN -->
+<!ENTITY HARDcy "&#x042A;"> <!-- CYRILLIC CAPITAL LETTER HARD SIGN -->
+<!ENTITY ycy "&#x044B;"> <!-- CYRILLIC SMALL LETTER YERU -->
+<!ENTITY Ycy "&#x042B;"> <!-- CYRILLIC CAPITAL LETTER YERU -->
+<!ENTITY softcy "&#x044C;"> <!-- CYRILLIC SMALL LETTER SOFT SIGN -->
+<!ENTITY SOFTcy "&#x042C;"> <!-- CYRILLIC CAPITAL LETTER SOFT SIGN -->
+<!ENTITY ecy "&#x044D;"> <!-- CYRILLIC SMALL LETTER E -->
+<!ENTITY Ecy "&#x042D;"> <!-- CYRILLIC CAPITAL LETTER E -->
+<!ENTITY yucy "&#x044E;"> <!-- CYRILLIC SMALL LETTER YU -->
+<!ENTITY YUcy "&#x042E;"> <!-- CYRILLIC CAPITAL LETTER YU -->
+<!ENTITY yacy "&#x044F;"> <!-- CYRILLIC SMALL LETTER YA -->
+<!ENTITY YAcy "&#x042F;"> <!-- CYRILLIC CAPITAL LETTER YA -->
+<!ENTITY numero "&#x2116;"> <!-- NUMERO SIGN -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-cyr2.ent b/tests/docbook/dtd/4.1.2/ent/iso-cyr2.ent
new file mode 100644
index 00000000..3edbde0a
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-cyr2.ent
@@ -0,0 +1,31 @@
+<!-- iso-cyr2.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY djcy "&#x0452;"> <!-- CYRILLIC SMALL LETTER DJE -->
+<!ENTITY DJcy "&#x0402;"> <!-- CYRILLIC CAPITAL LETTER DJE -->
+<!ENTITY gjcy "&#x0453;"> <!-- CYRILLIC SMALL LETTER GJE -->
+<!ENTITY GJcy "&#x0403;"> <!-- CYRILLIC CAPITAL LETTER GJE -->
+<!ENTITY jukcy "&#x0454;"> <!-- CYRILLIC SMALL LETTER UKRAINIAN IE -->
+<!ENTITY Jukcy "&#x0404;"> <!-- CYRILLIC CAPITAL LETTER UKRAINIAN IE -->
+<!ENTITY dscy "&#x0455;"> <!-- CYRILLIC SMALL LETTER DZE -->
+<!ENTITY DScy "&#x0405;"> <!-- CYRILLIC CAPITAL LETTER DZE -->
+<!ENTITY iukcy "&#x0456;"> <!-- CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY Iukcy "&#x0406;"> <!-- CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY yicy "&#x0457;"> <!-- CYRILLIC SMALL LETTER YI -->
+<!ENTITY YIcy "&#x0407;"> <!-- CYRILLIC CAPITAL LETTER YI -->
+<!ENTITY jsercy "&#x0458;"> <!-- CYRILLIC SMALL LETTER JE -->
+<!ENTITY Jsercy "&#x0408;"> <!-- CYRILLIC CAPITAL LETTER JE -->
+<!ENTITY ljcy "&#x0459;"> <!-- CYRILLIC SMALL LETTER LJE -->
+<!ENTITY LJcy "&#x0409;"> <!-- CYRILLIC CAPITAL LETTER LJE -->
+<!ENTITY njcy "&#x045A;"> <!-- CYRILLIC SMALL LETTER NJE -->
+<!ENTITY NJcy "&#x040A;"> <!-- CYRILLIC CAPITAL LETTER NJE -->
+<!ENTITY tshcy "&#x045B;"> <!-- CYRILLIC SMALL LETTER TSHE -->
+<!ENTITY TSHcy "&#x040B;"> <!-- CYRILLIC CAPITAL LETTER TSHE -->
+<!ENTITY kjcy "&#x045C;"> <!-- CYRILLIC SMALL LETTER KJE -->
+<!ENTITY KJcy "&#x040C;"> <!-- CYRILLIC CAPITAL LETTER KJE -->
+<!ENTITY ubrcy "&#x045E;"> <!-- CYRILLIC SMALL LETTER SHORT U -->
+<!ENTITY Ubrcy "&#x040E;"> <!-- CYRILLIC CAPITAL LETTER SHORT U -->
+<!ENTITY dzcy "&#x045F;"> <!-- CYRILLIC SMALL LETTER DZHE -->
+<!ENTITY DZcy "&#x040F;"> <!-- CYRILLIC CAPITAL LETTER DZHE -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-dia.ent b/tests/docbook/dtd/4.1.2/ent/iso-dia.ent
new file mode 100644
index 00000000..3a4b55c2
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-dia.ent
@@ -0,0 +1,19 @@
+<!-- iso-dia.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY acute "&#x00B4;"> <!-- ACUTE ACCENT -->
+<!ENTITY breve "&#x02D8;"> <!-- BREVE -->
+<!ENTITY caron "&#x02C7;"> <!-- CARON -->
+<!ENTITY cedil "&#x00B8;"> <!-- CEDILLA -->
+<!ENTITY circ "&#x005E;"> <!-- RING OPERATOR -->
+<!ENTITY dblac "&#x02DD;"> <!-- DOUBLE ACUTE ACCENT -->
+<!ENTITY die "&#x00A8;"> <!-- -->
+<!ENTITY dot "&#x02D9;"> <!-- DOT ABOVE -->
+<!ENTITY grave "&#x0060;"> <!-- GRAVE ACCENT -->
+<!ENTITY macr "&#x00AF;"> <!-- MACRON -->
+<!ENTITY ogon "&#x02DB;"> <!-- OGONEK -->
+<!ENTITY ring "&#x02DA;"> <!-- RING ABOVE -->
+<!ENTITY tilde "&#x02DC;"> <!-- TILDE -->
+<!ENTITY uml "&#x00A8;"> <!-- -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-grk1.ent b/tests/docbook/dtd/4.1.2/ent/iso-grk1.ent
new file mode 100644
index 00000000..b040985f
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-grk1.ent
@@ -0,0 +1,54 @@
+<!-- iso-grk1.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY agr "&#x03B1;"> <!-- -->
+<!ENTITY Agr "&#x0391;"> <!-- GREEK CAPITAL LETTER ALPHA -->
+<!ENTITY bgr "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY Bgr "&#x0392;"> <!-- GREEK CAPITAL LETTER BETA -->
+<!ENTITY ggr "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Ggr "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY dgr "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Dgr "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY egr "&#x03B5;"> <!-- -->
+<!ENTITY Egr "&#x0395;"> <!-- GREEK CAPITAL LETTER EPSILON -->
+<!ENTITY zgr "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY Zgr "&#x0396;"> <!-- GREEK CAPITAL LETTER ZETA -->
+<!ENTITY eegr "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY EEgr "&#x0397;"> <!-- GREEK CAPITAL LETTER ETA -->
+<!ENTITY thgr "&#x03B8;"> <!-- -->
+<!ENTITY THgr "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY igr "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY Igr "&#x0399;"> <!-- GREEK CAPITAL LETTER IOTA -->
+<!ENTITY kgr "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY Kgr "&#x039A;"> <!-- GREEK CAPITAL LETTER KAPPA -->
+<!ENTITY lgr "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lgr "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mgr "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY Mgr "&#x039C;"> <!-- GREEK CAPITAL LETTER MU -->
+<!ENTITY ngr "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY Ngr "&#x039D;"> <!-- GREEK CAPITAL LETTER NU -->
+<!ENTITY xgr "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xgr "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY ogr "&#x03BF;"> <!-- GREEK SMALL LETTER OMICRON -->
+<!ENTITY Ogr "&#x039F;"> <!-- GREEK CAPITAL LETTER OMICRON -->
+<!ENTITY pgr "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY Pgr "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rgr "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY Rgr "&#x03A1;"> <!-- GREEK CAPITAL LETTER RHO -->
+<!ENTITY sgr "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sgr "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sfgr "&#x03C2;"> <!-- -->
+<!ENTITY tgr "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY Tgr "&#x03A4;"> <!-- GREEK CAPITAL LETTER TAU -->
+<!ENTITY ugr "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Ugr "&#x03A5;"> <!-- -->
+<!ENTITY phgr "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY PHgr "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY khgr "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY KHgr "&#x03A7;"> <!-- GREEK CAPITAL LETTER CHI -->
+<!ENTITY psgr "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY PSgr "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY ohgr "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY OHgr "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-grk2.ent b/tests/docbook/dtd/4.1.2/ent/iso-grk2.ent
new file mode 100644
index 00000000..63de411c
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-grk2.ent
@@ -0,0 +1,25 @@
+<!-- iso-grk2.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacgr "&#x03AC;"> <!-- GREEK SMALL LETTER ALPHA WITH TONOS -->
+<!ENTITY Aacgr "&#x0386;"> <!-- GREEK CAPITAL LETTER ALPHA WITH TONOS -->
+<!ENTITY eacgr "&#x03AD;"> <!-- GREEK SMALL LETTER EPSILON WITH TONOS -->
+<!ENTITY Eacgr "&#x0388;"> <!-- GREEK CAPITAL LETTER EPSILON WITH TONOS -->
+<!ENTITY eeacgr "&#x03AE;"> <!-- GREEK SMALL LETTER ETA WITH TONOS -->
+<!ENTITY EEacgr "&#x0389;"> <!-- GREEK CAPITAL LETTER ETA WITH TONOS -->
+<!ENTITY idigr "&#x03CA;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY Idigr "&#x03AA;"> <!-- GREEK CAPITAL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY iacgr "&#x03AF;"> <!-- GREEK SMALL LETTER IOTA WITH TONOS -->
+<!ENTITY Iacgr "&#x038A;"> <!-- GREEK CAPITAL LETTER IOTA WITH TONOS -->
+<!ENTITY idiagr "&#x0390;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -->
+<!ENTITY oacgr "&#x03CC;"> <!-- GREEK SMALL LETTER OMICRON WITH TONOS -->
+<!ENTITY Oacgr "&#x038C;"> <!-- GREEK CAPITAL LETTER OMICRON WITH TONOS -->
+<!ENTITY udigr "&#x03CB;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY Udigr "&#x03AB;"> <!-- GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY uacgr "&#x03CD;"> <!-- GREEK SMALL LETTER UPSILON WITH TONOS -->
+<!ENTITY Uacgr "&#x038E;"> <!-- GREEK CAPITAL LETTER UPSILON WITH TONOS -->
+<!ENTITY udiagr "&#x03B0;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -->
+<!ENTITY ohacgr "&#x03CE;"> <!-- GREEK SMALL LETTER OMEGA WITH TONOS -->
+<!ENTITY OHacgr "&#x038F;"> <!-- GREEK CAPITAL LETTER OMEGA WITH TONOS -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-grk3.ent b/tests/docbook/dtd/4.1.2/ent/iso-grk3.ent
new file mode 100644
index 00000000..b59c53c4
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-grk3.ent
@@ -0,0 +1,48 @@
+<!-- iso-grk3.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY alpha "&#x03B1;"> <!-- -->
+<!ENTITY beta "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY gamma "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Gamma "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY gammad "&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY delta "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Delta "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY epsi "&#x220A;"> <!-- -->
+<!ENTITY epsiv "&#x03B5;"> <!-- -->
+<!ENTITY epsis "&#x220A;"> <!-- -->
+<!ENTITY zeta "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY eta "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY thetas "&#x03B8;"> <!-- -->
+<!ENTITY Theta "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY thetav "&#x03D1;"> <!-- -->
+<!ENTITY iota "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY kappa "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY kappav "&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY lambda "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lambda "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mu "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY nu "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY xi "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xi "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY pi "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY piv "&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY Pi "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rho "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY rhov "&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY sigma "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sigma "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sigmav "&#x03C2;"> <!-- -->
+<!ENTITY tau "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY upsi "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Upsi "&#x03D2;"> <!-- -->
+<!ENTITY phis "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY Phi "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY phiv "&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY chi "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY psi "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY Psi "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY omega "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY Omega "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-grk4.ent b/tests/docbook/dtd/4.1.2/ent/iso-grk4.ent
new file mode 100644
index 00000000..ace7c817
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-grk4.ent
@@ -0,0 +1,48 @@
+<!-- iso-grk4.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY b.alpha "&#x03B1;"> <!-- -->
+<!ENTITY b.beta "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY b.gamma "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY b.Gamma "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY b.gammad "&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY b.delta "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY b.Delta "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY b.epsi "&#x03B5;"> <!-- -->
+<!ENTITY b.epsiv "&#x03B5;"> <!-- -->
+<!ENTITY b.epsis "&#x03B5;"> <!-- -->
+<!ENTITY b.zeta "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY b.eta "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY b.thetas "&#x03B8;"> <!-- -->
+<!ENTITY b.Theta "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY b.thetav "&#x03D1;"> <!-- -->
+<!ENTITY b.iota "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY b.kappa "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY b.kappav "&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY b.lambda "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY b.Lambda "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY b.mu "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY b.nu "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY b.xi "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY b.Xi "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY b.pi "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY b.Pi "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY b.piv "&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY b.rho "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY b.rhov "&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY b.sigma "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY b.Sigma "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY b.sigmav "&#x03C2;"> <!-- -->
+<!ENTITY b.tau "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY b.upsi "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY b.Upsi "&#x03D2;"> <!-- -->
+<!ENTITY b.phis "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY b.Phi "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY b.phiv "&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY b.chi "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY b.psi "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY b.Psi "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY b.omega "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY b.Omega "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-lat1.ent b/tests/docbook/dtd/4.1.2/ent/iso-lat1.ent
new file mode 100644
index 00000000..2ec16fff
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-lat1.ent
@@ -0,0 +1,67 @@
+<!-- iso-lat1.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacute "&#x00E1;"> <!-- LATIN SMALL LETTER A WITH ACUTE -->
+<!ENTITY Aacute "&#x00C1;"> <!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+<!ENTITY acirc "&#x00E2;"> <!-- LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY Acirc "&#x00C2;"> <!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY agrave "&#x00E0;"> <!-- LATIN SMALL LETTER A WITH GRAVE -->
+<!ENTITY Agrave "&#x00C0;"> <!-- LATIN CAPITAL LETTER A WITH GRAVE -->
+<!ENTITY aring "&#x00E5;"> <!-- LATIN SMALL LETTER A WITH RING ABOVE -->
+<!ENTITY Aring "&#x00C5;"> <!-- LATIN CAPITAL LETTER A WITH RING ABOVE -->
+<!ENTITY atilde "&#x00E3;"> <!-- LATIN SMALL LETTER A WITH TILDE -->
+<!ENTITY Atilde "&#x00C3;"> <!-- LATIN CAPITAL LETTER A WITH TILDE -->
+<!ENTITY auml "&#x00E4;"> <!-- LATIN SMALL LETTER A WITH DIAERESIS -->
+<!ENTITY Auml "&#x00C4;"> <!-- LATIN CAPITAL LETTER A WITH DIAERESIS -->
+<!ENTITY aelig "&#x00E6;"> <!-- LATIN SMALL LETTER AE -->
+<!ENTITY AElig "&#x00C6;"> <!-- LATIN CAPITAL LETTER AE -->
+<!ENTITY ccedil "&#x00E7;"> <!-- LATIN SMALL LETTER C WITH CEDILLA -->
+<!ENTITY Ccedil "&#x00C7;"> <!-- LATIN CAPITAL LETTER C WITH CEDILLA -->
+<!ENTITY eth "&#x00F0;"> <!-- LATIN SMALL LETTER ETH -->
+<!ENTITY ETH "&#x00D0;"> <!-- LATIN CAPITAL LETTER ETH -->
+<!ENTITY eacute "&#x00E9;"> <!-- LATIN SMALL LETTER E WITH ACUTE -->
+<!ENTITY Eacute "&#x00C9;"> <!-- LATIN CAPITAL LETTER E WITH ACUTE -->
+<!ENTITY ecirc "&#x00EA;"> <!-- LATIN SMALL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY Ecirc "&#x00CA;"> <!-- LATIN CAPITAL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY egrave "&#x00E8;"> <!-- LATIN SMALL LETTER E WITH GRAVE -->
+<!ENTITY Egrave "&#x00C8;"> <!-- LATIN CAPITAL LETTER E WITH GRAVE -->
+<!ENTITY euml "&#x00EB;"> <!-- LATIN SMALL LETTER E WITH DIAERESIS -->
+<!ENTITY Euml "&#x00CB;"> <!-- LATIN CAPITAL LETTER E WITH DIAERESIS -->
+<!ENTITY iacute "&#x00ED;"> <!-- LATIN SMALL LETTER I WITH ACUTE -->
+<!ENTITY Iacute "&#x00CD;"> <!-- LATIN CAPITAL LETTER I WITH ACUTE -->
+<!ENTITY icirc "&#x00EE;"> <!-- LATIN SMALL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY Icirc "&#x00CE;"> <!-- LATIN CAPITAL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY igrave "&#x00EC;"> <!-- LATIN SMALL LETTER I WITH GRAVE -->
+<!ENTITY Igrave "&#x00CC;"> <!-- LATIN CAPITAL LETTER I WITH GRAVE -->
+<!ENTITY iuml "&#x00EF;"> <!-- LATIN SMALL LETTER I WITH DIAERESIS -->
+<!ENTITY Iuml "&#x00CF;"> <!-- LATIN CAPITAL LETTER I WITH DIAERESIS -->
+<!ENTITY ntilde "&#x00F1;"> <!-- LATIN SMALL LETTER N WITH TILDE -->
+<!ENTITY Ntilde "&#x00D1;"> <!-- LATIN CAPITAL LETTER N WITH TILDE -->
+<!ENTITY oacute "&#x00F3;"> <!-- LATIN SMALL LETTER O WITH ACUTE -->
+<!ENTITY Oacute "&#x00D3;"> <!-- LATIN CAPITAL LETTER O WITH ACUTE -->
+<!ENTITY ocirc "&#x00F4;"> <!-- LATIN SMALL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY Ocirc "&#x00D4;"> <!-- LATIN CAPITAL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY ograve "&#x00F2;"> <!-- LATIN SMALL LETTER O WITH GRAVE -->
+<!ENTITY Ograve "&#x00D2;"> <!-- LATIN CAPITAL LETTER O WITH GRAVE -->
+<!ENTITY oslash "&#x00F8;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY Oslash "&#x00D8;"> <!-- LATIN CAPITAL LETTER O WITH STROKE -->
+<!ENTITY otilde "&#x00F5;"> <!-- LATIN SMALL LETTER O WITH TILDE -->
+<!ENTITY Otilde "&#x00D5;"> <!-- LATIN CAPITAL LETTER O WITH TILDE -->
+<!ENTITY ouml "&#x00F6;"> <!-- LATIN SMALL LETTER O WITH DIAERESIS -->
+<!ENTITY Ouml "&#x00D6;"> <!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
+<!ENTITY szlig "&#x00DF;"> <!-- LATIN SMALL LETTER SHARP S -->
+<!ENTITY thorn "&#x00FE;"> <!-- LATIN SMALL LETTER THORN -->
+<!ENTITY THORN "&#x00DE;"> <!-- LATIN CAPITAL LETTER THORN -->
+<!ENTITY uacute "&#x00FA;"> <!-- LATIN SMALL LETTER U WITH ACUTE -->
+<!ENTITY Uacute "&#x00DA;"> <!-- LATIN CAPITAL LETTER U WITH ACUTE -->
+<!ENTITY ucirc "&#x00FB;"> <!-- LATIN SMALL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY Ucirc "&#x00DB;"> <!-- LATIN CAPITAL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY ugrave "&#x00F9;"> <!-- LATIN SMALL LETTER U WITH GRAVE -->
+<!ENTITY Ugrave "&#x00D9;"> <!-- LATIN CAPITAL LETTER U WITH GRAVE -->
+<!ENTITY uuml "&#x00FC;"> <!-- LATIN SMALL LETTER U WITH DIAERESIS -->
+<!ENTITY Uuml "&#x00DC;"> <!-- LATIN CAPITAL LETTER U WITH DIAERESIS -->
+<!ENTITY yacute "&#x00FD;"> <!-- LATIN SMALL LETTER Y WITH ACUTE -->
+<!ENTITY Yacute "&#x00DD;"> <!-- LATIN CAPITAL LETTER Y WITH ACUTE -->
+<!ENTITY yuml "&#x00FF;"> <!-- LATIN SMALL LETTER Y WITH DIAERESIS -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-lat2.ent b/tests/docbook/dtd/4.1.2/ent/iso-lat2.ent
new file mode 100644
index 00000000..e94ec18d
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-lat2.ent
@@ -0,0 +1,126 @@
+<!-- iso-lat2.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY abreve "&#x0103;"> <!-- LATIN SMALL LETTER A WITH BREVE -->
+<!ENTITY Abreve "&#x0102;"> <!-- LATIN CAPITAL LETTER A WITH BREVE -->
+<!ENTITY amacr "&#x0101;"> <!-- LATIN SMALL LETTER A WITH MACRON -->
+<!ENTITY Amacr "&#x0100;"> <!-- LATIN CAPITAL LETTER A WITH MACRON -->
+<!ENTITY aogon "&#x0105;"> <!-- LATIN SMALL LETTER A WITH OGONEK -->
+<!ENTITY Aogon "&#x0104;"> <!-- LATIN CAPITAL LETTER A WITH OGONEK -->
+<!ENTITY cacute "&#x0107;"> <!-- LATIN SMALL LETTER C WITH ACUTE -->
+<!ENTITY Cacute "&#x0106;"> <!-- LATIN CAPITAL LETTER C WITH ACUTE -->
+<!ENTITY ccaron "&#x010D;"> <!-- LATIN SMALL LETTER C WITH CARON -->
+<!ENTITY Ccaron "&#x010C;"> <!-- LATIN CAPITAL LETTER C WITH CARON -->
+<!ENTITY ccirc "&#x0109;"> <!-- LATIN SMALL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY Ccirc "&#x0108;"> <!-- LATIN CAPITAL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY cdot "&#x010B;"> <!-- DOT OPERATOR -->
+<!ENTITY Cdot "&#x010A;"> <!-- LATIN CAPITAL LETTER C WITH DOT ABOVE -->
+<!ENTITY dcaron "&#x010F;"> <!-- LATIN SMALL LETTER D WITH CARON -->
+<!ENTITY Dcaron "&#x010E;"> <!-- LATIN CAPITAL LETTER D WITH CARON -->
+<!ENTITY dstrok "&#x0111;"> <!-- LATIN SMALL LETTER D WITH STROKE -->
+<!ENTITY Dstrok "&#x0110;"> <!-- LATIN CAPITAL LETTER D WITH STROKE -->
+<!ENTITY ecaron "&#x011B;"> <!-- LATIN SMALL LETTER E WITH CARON -->
+<!ENTITY Ecaron "&#x011A;"> <!-- LATIN CAPITAL LETTER E WITH CARON -->
+<!ENTITY edot "&#x0117;"> <!-- LATIN SMALL LETTER E WITH DOT ABOVE -->
+<!ENTITY Edot "&#x0116;"> <!-- LATIN CAPITAL LETTER E WITH DOT ABOVE -->
+<!ENTITY emacr "&#x0113;"> <!-- LATIN SMALL LETTER E WITH MACRON -->
+<!ENTITY Emacr "&#x0112;"> <!-- LATIN CAPITAL LETTER E WITH MACRON -->
+<!ENTITY eogon "&#x0119;"> <!-- LATIN SMALL LETTER E WITH OGONEK -->
+<!ENTITY Eogon "&#x0118;"> <!-- LATIN CAPITAL LETTER E WITH OGONEK -->
+<!ENTITY gacute "&#x01F5;"> <!-- LATIN SMALL LETTER G WITH ACUTE -->
+<!ENTITY gbreve "&#x011F;"> <!-- LATIN SMALL LETTER G WITH BREVE -->
+<!ENTITY Gbreve "&#x011E;"> <!-- LATIN CAPITAL LETTER G WITH BREVE -->
+<!ENTITY Gcedil "&#x0122;"> <!-- LATIN CAPITAL LETTER G WITH CEDILLA -->
+<!ENTITY gcirc "&#x011D;"> <!-- LATIN SMALL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY Gcirc "&#x011C;"> <!-- LATIN CAPITAL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY gdot "&#x0121;"> <!-- LATIN SMALL LETTER G WITH DOT ABOVE -->
+<!ENTITY Gdot "&#x0120;"> <!-- LATIN CAPITAL LETTER G WITH DOT ABOVE -->
+<!ENTITY hcirc "&#x0125;"> <!-- LATIN SMALL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY Hcirc "&#x0124;"> <!-- LATIN CAPITAL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY hstrok "&#x0127;"> <!-- LATIN SMALL LETTER H WITH STROKE -->
+<!ENTITY Hstrok "&#x0126;"> <!-- LATIN CAPITAL LETTER H WITH STROKE -->
+<!ENTITY Idot "&#x0130;"> <!-- LATIN CAPITAL LETTER I WITH DOT ABOVE -->
+<!ENTITY Imacr "&#x012A;"> <!-- LATIN CAPITAL LETTER I WITH MACRON -->
+<!ENTITY imacr "&#x012B;"> <!-- LATIN SMALL LETTER I WITH MACRON -->
+<!ENTITY ijlig "&#x0133;"> <!-- LATIN SMALL LIGATURE IJ -->
+<!ENTITY IJlig "&#x0132;"> <!-- LATIN CAPITAL LIGATURE IJ -->
+<!ENTITY inodot "&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!ENTITY iogon "&#x012F;"> <!-- LATIN SMALL LETTER I WITH OGONEK -->
+<!ENTITY Iogon "&#x012E;"> <!-- LATIN CAPITAL LETTER I WITH OGONEK -->
+<!ENTITY itilde "&#x0129;"> <!-- LATIN SMALL LETTER I WITH TILDE -->
+<!ENTITY Itilde "&#x0128;"> <!-- LATIN CAPITAL LETTER I WITH TILDE -->
+<!ENTITY jcirc "&#x0135;"> <!-- LATIN SMALL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY Jcirc "&#x0134;"> <!-- LATIN CAPITAL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY kcedil "&#x0137;"> <!-- LATIN SMALL LETTER K WITH CEDILLA -->
+<!ENTITY Kcedil "&#x0136;"> <!-- LATIN CAPITAL LETTER K WITH CEDILLA -->
+<!ENTITY kgreen "&#x0138;"> <!-- LATIN SMALL LETTER KRA -->
+<!ENTITY lacute "&#x013A;"> <!-- LATIN SMALL LETTER L WITH ACUTE -->
+<!ENTITY Lacute "&#x0139;"> <!-- LATIN CAPITAL LETTER L WITH ACUTE -->
+<!ENTITY lcaron "&#x013E;"> <!-- LATIN SMALL LETTER L WITH CARON -->
+<!ENTITY Lcaron "&#x013D;"> <!-- LATIN CAPITAL LETTER L WITH CARON -->
+<!ENTITY lcedil "&#x013C;"> <!-- LATIN SMALL LETTER L WITH CEDILLA -->
+<!ENTITY Lcedil "&#x013B;"> <!-- LATIN CAPITAL LETTER L WITH CEDILLA -->
+<!ENTITY lmidot "&#x0140;"> <!-- LATIN SMALL LETTER L WITH MIDDLE DOT -->
+<!ENTITY Lmidot "&#x013F;"> <!-- LATIN CAPITAL LETTER L WITH MIDDLE DOT -->
+<!ENTITY lstrok "&#x0142;"> <!-- LATIN SMALL LETTER L WITH STROKE -->
+<!ENTITY Lstrok "&#x0141;"> <!-- LATIN CAPITAL LETTER L WITH STROKE -->
+<!ENTITY nacute "&#x0144;"> <!-- LATIN SMALL LETTER N WITH ACUTE -->
+<!ENTITY Nacute "&#x0143;"> <!-- LATIN CAPITAL LETTER N WITH ACUTE -->
+<!ENTITY eng "&#x014B;"> <!-- LATIN SMALL LETTER ENG -->
+<!ENTITY ENG "&#x014A;"> <!-- LATIN CAPITAL LETTER ENG -->
+<!ENTITY napos "&#x0149;"> <!-- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -->
+<!ENTITY ncaron "&#x0148;"> <!-- LATIN SMALL LETTER N WITH CARON -->
+<!ENTITY Ncaron "&#x0147;"> <!-- LATIN CAPITAL LETTER N WITH CARON -->
+<!ENTITY ncedil "&#x0146;"> <!-- LATIN SMALL LETTER N WITH CEDILLA -->
+<!ENTITY Ncedil "&#x0145;"> <!-- LATIN CAPITAL LETTER N WITH CEDILLA -->
+<!ENTITY odblac "&#x0151;"> <!-- LATIN SMALL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Odblac "&#x0150;"> <!-- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Omacr "&#x014C;"> <!-- LATIN CAPITAL LETTER O WITH MACRON -->
+<!ENTITY omacr "&#x014D;"> <!-- LATIN SMALL LETTER O WITH MACRON -->
+<!ENTITY oelig "&#x0153;"> <!-- LATIN SMALL LIGATURE OE -->
+<!ENTITY OElig "&#x0152;"> <!-- LATIN CAPITAL LIGATURE OE -->
+<!ENTITY racute "&#x0155;"> <!-- LATIN SMALL LETTER R WITH ACUTE -->
+<!ENTITY Racute "&#x0154;"> <!-- LATIN CAPITAL LETTER R WITH ACUTE -->
+<!ENTITY rcaron "&#x0159;"> <!-- LATIN SMALL LETTER R WITH CARON -->
+<!ENTITY Rcaron "&#x0158;"> <!-- LATIN CAPITAL LETTER R WITH CARON -->
+<!ENTITY rcedil "&#x0157;"> <!-- LATIN SMALL LETTER R WITH CEDILLA -->
+<!ENTITY Rcedil "&#x0156;"> <!-- LATIN CAPITAL LETTER R WITH CEDILLA -->
+<!ENTITY sacute "&#x015B;"> <!-- LATIN SMALL LETTER S WITH ACUTE -->
+<!ENTITY Sacute "&#x015A;"> <!-- LATIN CAPITAL LETTER S WITH ACUTE -->
+<!ENTITY scaron "&#x0161;"> <!-- LATIN SMALL LETTER S WITH CARON -->
+<!ENTITY Scaron "&#x0160;"> <!-- LATIN CAPITAL LETTER S WITH CARON -->
+<!ENTITY scedil "&#x015F;"> <!-- LATIN SMALL LETTER S WITH CEDILLA -->
+<!ENTITY Scedil "&#x015E;"> <!-- LATIN CAPITAL LETTER S WITH CEDILLA -->
+<!ENTITY scirc "&#x015D;"> <!-- LATIN SMALL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY Scirc "&#x015C;"> <!-- LATIN CAPITAL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY tcaron "&#x0165;"> <!-- LATIN SMALL LETTER T WITH CARON -->
+<!ENTITY Tcaron "&#x0164;"> <!-- LATIN CAPITAL LETTER T WITH CARON -->
+<!ENTITY tcedil "&#x0163;"> <!-- LATIN SMALL LETTER T WITH CEDILLA -->
+<!ENTITY Tcedil "&#x0162;"> <!-- LATIN CAPITAL LETTER T WITH CEDILLA -->
+<!ENTITY tstrok "&#x0167;"> <!-- LATIN SMALL LETTER T WITH STROKE -->
+<!ENTITY Tstrok "&#x0166;"> <!-- LATIN CAPITAL LETTER T WITH STROKE -->
+<!ENTITY ubreve "&#x016D;"> <!-- LATIN SMALL LETTER U WITH BREVE -->
+<!ENTITY Ubreve "&#x016C;"> <!-- LATIN CAPITAL LETTER U WITH BREVE -->
+<!ENTITY udblac "&#x0171;"> <!-- LATIN SMALL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY Udblac "&#x0170;"> <!-- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY umacr "&#x016B;"> <!-- LATIN SMALL LETTER U WITH MACRON -->
+<!ENTITY Umacr "&#x016A;"> <!-- LATIN CAPITAL LETTER U WITH MACRON -->
+<!ENTITY uogon "&#x0173;"> <!-- LATIN SMALL LETTER U WITH OGONEK -->
+<!ENTITY Uogon "&#x0172;"> <!-- LATIN CAPITAL LETTER U WITH OGONEK -->
+<!ENTITY uring "&#x016F;"> <!-- LATIN SMALL LETTER U WITH RING ABOVE -->
+<!ENTITY Uring "&#x016E;"> <!-- LATIN CAPITAL LETTER U WITH RING ABOVE -->
+<!ENTITY utilde "&#x0169;"> <!-- LATIN SMALL LETTER U WITH TILDE -->
+<!ENTITY Utilde "&#x0168;"> <!-- LATIN CAPITAL LETTER U WITH TILDE -->
+<!ENTITY wcirc "&#x0175;"> <!-- LATIN SMALL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY Wcirc "&#x0174;"> <!-- LATIN CAPITAL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY ycirc "&#x0177;"> <!-- LATIN SMALL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Ycirc "&#x0176;"> <!-- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Yuml "&#x0178;"> <!-- LATIN CAPITAL LETTER Y WITH DIAERESIS -->
+<!ENTITY zacute "&#x017A;"> <!-- LATIN SMALL LETTER Z WITH ACUTE -->
+<!ENTITY Zacute "&#x0179;"> <!-- LATIN CAPITAL LETTER Z WITH ACUTE -->
+<!ENTITY zcaron "&#x017E;"> <!-- LATIN SMALL LETTER Z WITH CARON -->
+<!ENTITY Zcaron "&#x017D;"> <!-- LATIN CAPITAL LETTER Z WITH CARON -->
+<!ENTITY zdot "&#x017C;"> <!-- LATIN SMALL LETTER Z WITH DOT ABOVE -->
+<!ENTITY Zdot "&#x017B;"> <!-- LATIN CAPITAL LETTER Z WITH DOT ABOVE -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-num.ent b/tests/docbook/dtd/4.1.2/ent/iso-num.ent
new file mode 100644
index 00000000..7f4844c5
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-num.ent
@@ -0,0 +1,81 @@
+<!-- iso-num.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY half "&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac12 "&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac14 "&#x00BC;"> <!-- VULGAR FRACTION ONE QUARTER -->
+<!ENTITY frac34 "&#x00BE;"> <!-- VULGAR FRACTION THREE QUARTERS -->
+<!ENTITY frac18 "&#x215B;"> <!-- -->
+<!ENTITY frac38 "&#x215C;"> <!-- -->
+<!ENTITY frac58 "&#x215D;"> <!-- -->
+<!ENTITY frac78 "&#x215E;"> <!-- -->
+<!ENTITY sup1 "&#x00B9;"> <!-- SUPERSCRIPT ONE -->
+<!ENTITY sup2 "&#x00B2;"> <!-- SUPERSCRIPT TWO -->
+<!ENTITY sup3 "&#x00B3;"> <!-- SUPERSCRIPT THREE -->
+<!ENTITY plus "&#x002B;"> <!-- PLUS SIGN -->
+<!ENTITY plusmn "&#x00B1;"> <!-- PLUS-MINUS SIGN -->
+<!ENTITY lt "&#38;#60;"> <!-- LESS-THAN SIGN -->
+<!ENTITY equals "&#x003D;"> <!-- EQUALS SIGN -->
+<!ENTITY gt "&#x003E;"> <!-- GREATER-THAN SIGN -->
+<!ENTITY divide "&#x00F7;"> <!-- DIVISION SIGN -->
+<!ENTITY times "&#x00D7;"> <!-- MULTIPLICATION SIGN -->
+<!ENTITY curren "&#x00A4;"> <!-- CURRENCY SIGN -->
+<!ENTITY pound "&#x00A3;"> <!-- POUND SIGN -->
+<!ENTITY dollar "&#x0024;"> <!-- DOLLAR SIGN -->
+<!ENTITY cent "&#x00A2;"> <!-- CENT SIGN -->
+<!ENTITY yen "&#x00A5;"> <!-- YEN SIGN -->
+<!ENTITY num "&#x0023;"> <!-- NUMBER SIGN -->
+<!ENTITY percnt "&#x0025;"> <!-- PERCENT SIGN -->
+<!ENTITY amp "&#38;#38;"> <!-- AMPERSAND -->
+<!ENTITY ast "&#x002A;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY commat "&#x0040;"> <!-- COMMERCIAL AT -->
+<!ENTITY lsqb "&#x005B;"> <!-- LEFT SQUARE BRACKET -->
+<!ENTITY bsol "&#x005C;"> <!-- REVERSE SOLIDUS -->
+<!ENTITY rsqb "&#x005D;"> <!-- RIGHT SQUARE BRACKET -->
+<!ENTITY lcub "&#x007B;"> <!-- LEFT CURLY BRACKET -->
+<!ENTITY horbar "&#x2015;"> <!-- HORIZONTAL BAR -->
+<!ENTITY verbar "&#x007C;"> <!-- VERTICAL LINE -->
+<!ENTITY rcub "&#x007D;"> <!-- RIGHT CURLY BRACKET -->
+<!ENTITY micro "&#x00B5;"> <!-- MICRO SIGN -->
+<!ENTITY ohm "&#x2126;"> <!-- OHM SIGN -->
+<!ENTITY deg "&#x00B0;"> <!-- DEGREE SIGN -->
+<!ENTITY ordm "&#x00BA;"> <!-- MASCULINE ORDINAL INDICATOR -->
+<!ENTITY ordf "&#x00AA;"> <!-- FEMININE ORDINAL INDICATOR -->
+<!ENTITY sect "&#x00A7;"> <!-- SECTION SIGN -->
+<!ENTITY para "&#x00B6;"> <!-- PILCROW SIGN -->
+<!ENTITY middot "&#x00B7;"> <!-- MIDDLE DOT -->
+<!ENTITY larr "&#x2190;"> <!-- LEFTWARDS DOUBLE ARROW -->
+<!ENTITY rarr "&#x2192;"> <!-- RIGHTWARDS DOUBLE ARROW -->
+<!ENTITY uarr "&#x2191;"> <!-- UPWARDS ARROW -->
+<!ENTITY darr "&#x2193;"> <!-- DOWNWARDS ARROW -->
+<!ENTITY copy "&#x00A9;"> <!-- COPYRIGHT SIGN -->
+<!ENTITY reg "&#x00AE;"> <!-- REG TRADE MARK SIGN -->
+<!ENTITY trade "&#x2122;"> <!-- TRADE MARK SIGN -->
+<!ENTITY brvbar "&#x00A6;"> <!-- BROKEN BAR -->
+<!ENTITY not "&#x00AC;"> <!-- NOT SIGN -->
+<!ENTITY sung "&#x2669;"> <!-- -->
+<!ENTITY excl "&#x0021;"> <!-- EXCLAMATION MARK -->
+<!ENTITY iexcl "&#x00A1;"> <!-- INVERTED EXCLAMATION MARK -->
+<!ENTITY quot "&#x0022;"> <!-- QUOTATION MARK -->
+<!ENTITY apos "&#x0027;"> <!-- APOSTROPHE -->
+<!ENTITY lpar "&#x0028;"> <!-- LEFT PARENTHESIS -->
+<!ENTITY rpar "&#x0029;"> <!-- RIGHT PARENTHESIS -->
+<!ENTITY comma "&#x002C;"> <!-- COMMA -->
+<!ENTITY lowbar "&#x005F;"> <!-- LOW LINE -->
+<!ENTITY hyphen "&#x002D;"> <!-- HYPHEN-MINUS -->
+<!ENTITY period "&#x002E;"> <!-- FULL STOP -->
+<!ENTITY sol "&#x002F;"> <!-- SOLIDUS -->
+<!ENTITY colon "&#x003A;"> <!-- COLON -->
+<!ENTITY semi "&#x003B;"> <!-- SEMICOLON -->
+<!ENTITY quest "&#x003F;"> <!-- QUESTION MARK -->
+<!ENTITY iquest "&#x00BF;"> <!-- INVERTED QUESTION MARK -->
+<!ENTITY laquo "&#x00AB;"> <!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY raquo "&#x00BB;"> <!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY lsquo "&#x2018;"> <!-- -->
+<!ENTITY rsquo "&#x2019;"> <!-- RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY ldquo "&#x201C;"> <!-- -->
+<!ENTITY rdquo "&#x201D;"> <!-- RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY nbsp "&#x00A0;"> <!-- NO-BREAK SPACE -->
+<!ENTITY shy "&#x00AD;"> <!-- SOFT HYPHEN -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-pub.ent b/tests/docbook/dtd/4.1.2/ent/iso-pub.ent
new file mode 100644
index 00000000..56ede364
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-pub.ent
@@ -0,0 +1,90 @@
+<!-- iso-pub.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY emsp "&#x2003;"> <!-- EM SPACE -->
+<!ENTITY ensp "&#x2002;"> <!-- EN SPACE -->
+<!ENTITY emsp13 "&#x2004;"> <!-- THREE-PER-EM SPACE -->
+<!ENTITY emsp14 "&#x2005;"> <!-- FOUR-PER-EM SPACE -->
+<!ENTITY numsp "&#x2007;"> <!-- FIGURE SPACE -->
+<!ENTITY puncsp "&#x2008;"> <!-- PUNCTUATION SPACE -->
+<!ENTITY thinsp "&#x2009;"> <!-- THIN SPACE -->
+<!ENTITY hairsp "&#x200A;"> <!-- HAIR SPACE -->
+<!ENTITY mdash "&#x2014;"> <!-- EM DASH -->
+<!ENTITY ndash "&#x2013;"> <!-- EN DASH -->
+<!ENTITY dash "&#x2010;"> <!-- HYPHEN -->
+<!ENTITY blank "&#x2423;"> <!-- OPEN BOX -->
+<!ENTITY hellip "&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY nldr "&#x2025;"> <!-- TWO DOT LEADER -->
+<!ENTITY frac13 "&#x2153;"> <!-- VULGAR FRACTION ONE THIRD -->
+<!ENTITY frac23 "&#x2154;"> <!-- VULGAR FRACTION TWO THIRDS -->
+<!ENTITY frac15 "&#x2155;"> <!-- VULGAR FRACTION ONE FIFTH -->
+<!ENTITY frac25 "&#x2156;"> <!-- VULGAR FRACTION TWO FIFTHS -->
+<!ENTITY frac35 "&#x2157;"> <!-- VULGAR FRACTION THREE FIFTHS -->
+<!ENTITY frac45 "&#x2158;"> <!-- VULGAR FRACTION FOUR FIFTHS -->
+<!ENTITY frac16 "&#x2159;"> <!-- VULGAR FRACTION ONE SIXTH -->
+<!ENTITY frac56 "&#x215A;"> <!-- VULGAR FRACTION FIVE SIXTHS -->
+<!ENTITY incare "&#x2105;"> <!-- CARE OF -->
+<!ENTITY block "&#x2588;"> <!-- FULL BLOCK -->
+<!ENTITY uhblk "&#x2580;"> <!-- UPPER HALF BLOCK -->
+<!ENTITY lhblk "&#x2584;"> <!-- LOWER HALF BLOCK -->
+<!ENTITY blk14 "&#x2591;"> <!-- LIGHT SHADE -->
+<!ENTITY blk12 "&#x2592;"> <!-- MEDIUM SHADE -->
+<!ENTITY blk34 "&#x2593;"> <!-- DARK SHADE -->
+<!ENTITY marker "&#x25AE;"> <!-- BLACK VERTICAL RECTANGLE -->
+<!ENTITY cir "&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY squ "&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY rect "&#x25AD;"> <!-- WHITE RECTANGLE -->
+<!ENTITY utri "&#x25B5;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY dtri "&#x25BF;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY star "&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY bull "&#x2022;"> <!-- BULLET -->
+<!ENTITY squf "&#x25AA;"> <!-- -->
+<!ENTITY utrif "&#x25B4;"> <!-- BLACK UP-POINTING TRIANGLE -->
+<!ENTITY dtrif "&#x25BE;"> <!-- BLACK DOWN-POINTING TRIANGLE -->
+<!ENTITY ltrif "&#x25C2;"> <!-- BLACK LEFT-POINTING TRIANGLE -->
+<!ENTITY rtrif "&#x25B8;"> <!-- BLACK RIGHT-POINTING TRIANGLE -->
+<!ENTITY clubs "&#x2663;"> <!-- BLACK CLUB SUIT -->
+<!ENTITY diams "&#x2666;"> <!-- BLACK DIAMOND SUIT -->
+<!ENTITY hearts "&#x2665;"> <!-- BLACK HEART SUIT -->
+<!ENTITY spades "&#x2660;"> <!-- BLACK SPADE SUIT -->
+<!ENTITY malt "&#x2720;"> <!-- MALTESE CROSS -->
+<!ENTITY dagger "&#x2020;"> <!-- DAGGER -->
+<!ENTITY Dagger "&#x2021;"> <!-- DOUBLE DAGGER -->
+<!ENTITY check "&#x2713;"> <!-- CHECK MARK -->
+<!ENTITY cross "&#x2717;"> <!-- BALLOT X -->
+<!ENTITY sharp "&#x266F;"> <!-- MUSIC SHARP SIGN -->
+<!ENTITY flat "&#x266D;"> <!-- MUSIC FLAT SIGN -->
+<!ENTITY male "&#x2642;"> <!-- MALE SIGN -->
+<!ENTITY female "&#x2640;"> <!-- -->
+<!ENTITY phone "&#x260E;"> <!-- TELEPHONE SIGN -->
+<!ENTITY telrec "&#x2315;"> <!-- TELEPHONE RECORDER -->
+<!ENTITY copysr "&#x2117;"> <!-- SOUND RECORDING COPYRIGHT -->
+<!ENTITY caret "&#x2041;"> <!-- CARET -->
+<!ENTITY lsquor "&#x201A;"> <!-- SINGLE LOW-9 QUOTATION MARK -->
+<!ENTITY ldquor "&#x201E;"> <!-- DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY fflig "&#xFB00;"> <!-- -->
+<!ENTITY filig "&#xFB01;"> <!-- -->
+<!-- fjlig Unknown unicode character -->
+<!ENTITY ffilig "&#xFB03;"> <!-- -->
+<!ENTITY ffllig "&#xFB04;"> <!-- -->
+<!ENTITY fllig "&#xFB02;"> <!-- -->
+<!ENTITY mldr "&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY rdquor "&#x201C;"> <!-- -->
+<!ENTITY rsquor "&#x2018;"> <!-- -->
+<!ENTITY vellip "&#x22EE;"> <!-- -->
+<!ENTITY hybull "&#x2043;"> <!-- HYPHEN BULLET -->
+<!ENTITY loz "&#x25CA;"> <!-- LOZENGE -->
+<!ENTITY lozf "&#x2726;"> <!-- -->
+<!ENTITY ltri "&#x25C3;"> <!-- WHITE LEFT-POINTING TRIANGLE -->
+<!ENTITY rtri "&#x25B9;"> <!-- WHITE RIGHT-POINTING TRIANGLE -->
+<!ENTITY starf "&#x2605;"> <!-- BLACK STAR -->
+<!ENTITY natur "&#x266E;"> <!-- MUSIC NATURAL SIGN -->
+<!ENTITY rx "&#x211E;"> <!-- PRESCRIPTION TAKE -->
+<!ENTITY sext "&#x2736;"> <!-- SIX POINTED BLACK STAR -->
+<!ENTITY target "&#x2316;"> <!-- POSITION INDICATOR -->
+<!ENTITY dlcrop "&#x230D;"> <!-- BOTTOM LEFT CROP -->
+<!ENTITY drcrop "&#x230C;"> <!-- BOTTOM RIGHT CROP -->
+<!ENTITY ulcrop "&#x230F;"> <!-- TOP LEFT CROP -->
+<!ENTITY urcrop "&#x230E;"> <!-- TOP RIGHT CROP -->
diff --git a/tests/docbook/dtd/4.1.2/ent/iso-tech.ent b/tests/docbook/dtd/4.1.2/ent/iso-tech.ent
new file mode 100644
index 00000000..7264f6b8
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/ent/iso-tech.ent
@@ -0,0 +1,69 @@
+<!-- iso-tech.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz.
+ With additional derivations from
+ ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY aleph "&#x2135;"> <!-- ALEF SYMBOL -->
+<!ENTITY and "&#x2227;"> <!-- -->
+<!ENTITY ang90 "&#x221F;"> <!-- RIGHT ANGLE -->
+<!ENTITY angsph "&#x2222;"> <!-- -->
+<!ENTITY ap "&#x2248;"> <!-- -->
+<!ENTITY becaus "&#x2235;"> <!-- BECAUSE -->
+<!ENTITY bottom "&#x22A5;"> <!-- -->
+<!ENTITY cap "&#x2229;"> <!-- -->
+<!ENTITY cong "&#x2245;"> <!-- -->
+<!ENTITY conint "&#x222E;"> <!-- -->
+<!ENTITY cup "&#x222A;"> <!-- -->
+<!ENTITY equiv "&#x2261;"> <!-- -->
+<!ENTITY exist "&#x2203;"> <!-- -->
+<!ENTITY forall "&#x2200;"> <!-- -->
+<!ENTITY fnof "&#x0192;"> <!-- LATIN SMALL LETTER F WITH HOOK -->
+<!ENTITY ge "&#x2265;"> <!-- GREATER-THAN OR EQUAL TO -->
+<!ENTITY iff "&#x21D4;"> <!-- LEFT RIGHT DOUBLE ARROW -->
+<!ENTITY infin "&#x221E;"> <!-- -->
+<!ENTITY int "&#x222B;"> <!-- -->
+<!ENTITY isin "&#x220A;"> <!-- -->
+<!ENTITY lang "&#x3008;"> <!-- -->
+<!ENTITY lArr "&#x21D0;"> <!-- LEFTWARDS ARROW -->
+<!ENTITY le "&#x2264;"> <!-- -->
+<!ENTITY minus "&#x2212;"> <!-- MINUS SIGN -->
+<!ENTITY mnplus "&#x2213;"> <!-- -->
+<!ENTITY nabla "&#x2207;"> <!-- NABLA -->
+<!ENTITY ne "&#x2260;"> <!-- -->
+<!ENTITY ni "&#x220D;"> <!-- -->
+<!ENTITY or "&#x2228;"> <!-- -->
+<!ENTITY par "&#x2225;"> <!-- PARALLEL TO -->
+<!ENTITY part "&#x2202;"> <!-- -->
+<!ENTITY permil "&#x2030;"> <!-- PER MILLE SIGN -->
+<!ENTITY perp "&#x22A5;"> <!-- -->
+<!ENTITY prime "&#x2032;"> <!-- PRIME -->
+<!ENTITY Prime "&#x2033;"> <!-- DOUBLE PRIME -->
+<!ENTITY prop "&#x221D;"> <!-- -->
+<!ENTITY radic "&#x221A;"> <!-- -->
+<!ENTITY rang "&#x3009;"> <!-- -->
+<!ENTITY rArr "&#x21D2;"> <!-- RIGHTWARDS ARROW -->
+<!ENTITY sim "&#x223C;"> <!-- -->
+<!ENTITY sime "&#x2243;"> <!-- -->
+<!ENTITY square "&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY sub "&#x2282;"> <!-- -->
+<!ENTITY sube "&#x2286;"> <!-- -->
+<!ENTITY sup "&#x2283;"> <!-- -->
+<!ENTITY supe "&#x2287;"> <!-- -->
+<!ENTITY there4 "&#x2234;"> <!-- -->
+<!ENTITY Verbar "&#x2016;"> <!-- DOUBLE VERTICAL LINE -->
+<!ENTITY angst "&#x212B;"> <!-- ANGSTROM SIGN -->
+<!ENTITY bernou "&#x212C;"> <!-- SCRIPT CAPITAL B -->
+<!ENTITY compfn "&#x2218;"> <!-- RING OPERATOR -->
+<!ENTITY Dot "&#x00A8;"> <!-- -->
+<!ENTITY DotDot "&#x20DC;"> <!-- COMBINING FOUR DOTS ABOVE -->
+<!ENTITY hamilt "&#x210B;"> <!-- SCRIPT CAPITAL H -->
+<!ENTITY lagran "&#x2112;"> <!-- SCRIPT CAPITAL L -->
+<!ENTITY lowast "&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY notin "&#x2209;"> <!-- -->
+<!ENTITY order "&#x2134;"> <!-- SCRIPT SMALL O -->
+<!ENTITY phmmat "&#x2133;"> <!-- SCRIPT CAPITAL M -->
+<!ENTITY tdot "&#x20DB;"> <!-- COMBINING THREE DOTS ABOVE -->
+<!ENTITY tprime "&#x2034;"> <!-- TRIPLE PRIME -->
+<!ENTITY wedgeq "&#x2259;"> <!-- ESTIMATES -->
diff --git a/tests/docbook/dtd/4.1.2/readme.txt b/tests/docbook/dtd/4.1.2/readme.txt
new file mode 100644
index 00000000..383f7fed
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/readme.txt
@@ -0,0 +1,16 @@
+README for DocBook XML V4.1.2
+
+This is DocBook XML V4.1.2, released 27 Aug 2000.
+
+See 41chg.txt for information about what has changed since DocBook 4.0.
+
+For more information about DocBook, please see
+
+ http://www.oasis-open.org/docbook/
+
+a partial mirror of the official DocBook site is available at
+
+ http://docbook.org/
+
+Please send all questions, comments, concerns, and bug reports to the
+DocBook mailing list: docbook@lists.oasis-open.org
diff --git a/tests/docbook/dtd/4.1.2/soextblx.dtd b/tests/docbook/dtd/4.1.2/soextblx.dtd
new file mode 100644
index 00000000..e4ea0eda
--- /dev/null
+++ b/tests/docbook/dtd/4.1.2/soextblx.dtd
@@ -0,0 +1,308 @@
+<!-- XML EXCHANGE TABLE MODEL DECLARATION MODULE -->
+
+<!-- This set of declarations defines the XML version of the Exchange
+ Table Model as of the date shown in the Formal Public Identifier
+ (FPI) for this entity.
+
+ This set of declarations may be referred to using a public external
+ entity declaration and reference as shown in the following three
+ lines:
+
+ <!ENTITY % calstblx
+ PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN">
+ %calstblx;
+
+ If various parameter entities used within this set of declarations
+ are to be given non-default values, the appropriate declarations
+ should be given before calling in this package (i.e., before the
+ "%calstblx;" reference).
+-->
+
+<!-- The motivation for this XML version of the Exchange Table Model
+ is simply to create an XML version of the SGML Exchange Table
+ Model. By design, no effort has been made to "improve" the model.
+
+ This XML version incorporates the logical bare minimum changes
+ necessary to make the Exchange Table Model a valid XML DTD.
+-->
+
+<!-- The XML version of the Exchange Table Model differs from
+ the SGML version in the following ways:
+
+ The following parameter entities have been removed:
+
+ - tbl.table.excep, tbl.hdft.excep, tbl.row.excep, tbl.entry.excep
+ There are no exceptions in XML. The following normative statement
+ is made in lieu of exceptions: the exchange table model explicitly
+ forbids a table from occurring within another table. If the
+ content model of an entry includes a table element, then this
+ cannot be enforced by the DTD, but it is a deviation from the
+ exchange table model to include a table within a table.
+
+ - tbl.hdft.name, tbl.hdft.mdl, tbl.hdft.excep, tbl.hdft.att
+ The motivation for these elements was to change the table
+ header/footer elements. Since XML does not allow element declarations
+ to contain name groups, and the exchange table model does not
+ allow a table to contain footers, the continued presence of these
+ attributes seems unnecessary.
+
+ The following parameter entity has been added:
+
+ - tbl.thead.att
+ This entity parameterizes the attributes on thead. It replaces
+ the tbl.hdft.att parameter entity.
+
+ Other miscellaneous changes:
+
+ - Tag ommission indicators have been removed
+ - Comments have been removed from declarations
+ - NUMBER attributes have been changed to NMTOKEN
+ - NUTOKEN attributes have been to changed to NMTOKEN
+ - Removed the grouping characters around the content model
+ parameter entry for the 'entry' element. This is necessary
+ so that an entry can contain #PCDATA and be defined as an
+ optional, repeatable OR group beginning with #PCDATA.
+-->
+
+<!-- This entity includes a set of element and attribute declarations
+ that partially defines the Exchange table model. However, the model
+ is not well-defined without the accompanying natural language
+ description of the semantics (meanings) of these various elements,
+ attributes, and attribute values. The semantic writeup, also available
+ from SGML Open, should be used in conjunction with this entity.
+-->
+
+<!-- In order to use the Exchange table model, various parameter entity
+ declarations are required. A brief description is as follows:
+
+ ENTITY NAME WHERE USED WHAT IT IS
+
+ %yesorno In ATTLIST of: An attribute declared value
+ almost all elements for a "boolean" attribute
+
+ %paracon In content model of: The "text" (logical content)
+ <entry> of the model group for <entry>
+
+ %titles In content model of: The "title" part of the model
+ table element group for the table element
+
+ %tbl.table.name In declaration of: The name of the "table"
+ table element element
+
+ %tbl.table-titles.mdl In content model of: The model group for the title
+ table elements part of the content model for
+ table element
+
+ %tbl.table.mdl In content model of: The model group for the content
+ table elements model for table element,
+ often (and by default) defined
+ in terms of %tbl.table-titles.mdl
+ and tgroup
+
+ %tbl.table.att In ATTLIST of: Additional attributes on the
+ table element table element
+
+ %bodyatt In ATTLIST of: Additional attributes on the
+ table element table element (for backward
+ compatibility with the SGML
+ model)
+
+ %tbl.tgroup.mdl In content model of: The model group for the content
+ <tgroup> model for <tgroup>
+
+ %tbl.tgroup.att In ATTLIST of: Additional attributes on the
+ <tgroup> <tgroup> element
+
+ %tbl.thead.att In ATTLIST of: Additional attributes on the
+ <thead> <thead> element
+
+ %tbl.tbody.att In ATTLIST of: Additional attributes on the
+ <tbody> <tbody> element
+
+ %tbl.colspec.att In ATTLIST of: Additional attributes on the
+ <colspec> <colspec> element
+
+ %tbl.row.mdl In content model of: The model group for the content
+ <row> model for <row>
+
+ %tbl.row.att In ATTLIST of: Additional attributes on the
+ <row> <row> element
+
+ %tbl.entry.mdl In content model of: The model group for the content
+ <entry> model for <entry>
+
+ %tbl.entry.att In ATTLIST of: Additional attributes on the
+ <entry> <entry> element
+
+ This set of declarations will use the default definitions shown below
+ for any of these parameter entities that are not declared before this
+ set of declarations is referenced.
+-->
+
+<!-- These definitions are not directly related to the table model, but are
+ used in the default CALS table model and may be defined elsewhere (and
+ prior to the inclusion of this table module) in the referencing DTD. -->
+
+<!ENTITY % yesorno 'NMTOKEN'> <!-- no if zero(s), yes if any other value -->
+<!ENTITY % titles 'title?'>
+<!ENTITY % pcd "#PCDATA">
+<!ENTITY % paracon '%pcd;'> <!-- default for use in entry content -->
+
+<!--
+The parameter entities as defined below change and simplify the CALS table
+model as published (as part of the Example DTD) in MIL-HDBK-28001. The
+resulting simplified DTD has support from the SGML Open vendors and is
+therefore more interoperable among different systems.
+
+These following declarations provide the Exchange default definitions
+for these entities. However, these entities can be redefined (by giving
+the appropriate parameter entity declaration(s) prior to the reference
+to this Table Model declaration set entity) to fit the needs of the
+current application.
+
+Note, however, that changes may have significant effect on the ability to
+interchange table information. These changes may manifest themselves
+in useability, presentation, and possible structure information degradation.
+-->
+
+<!ENTITY % tbl.table.name "table">
+<!ENTITY % tbl.table-titles.mdl "%titles;,">
+<!ENTITY % tbl.table-main.mdl "tgroup+">
+<!ENTITY % tbl.table.mdl "%tbl.table-titles.mdl; %tbl.table-main.mdl;">
+<!ENTITY % tbl.table.att "
+ pgwide %yesorno; #IMPLIED ">
+<!ENTITY % bodyatt "">
+<!ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody">
+<!ENTITY % tbl.tgroup.att "">
+<!ENTITY % tbl.thead.att "">
+<!ENTITY % tbl.tbody.att "">
+<!ENTITY % tbl.colspec.att "">
+<!ENTITY % tbl.row.mdl "entry+">
+<!ENTITY % tbl.row.att "">
+<!ENTITY % tbl.entry.mdl "(%paracon;)*">
+<!ENTITY % tbl.entry.att "">
+
+<!-- ===== Element and attribute declarations follow. ===== -->
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.table.name "table"
+ ENTITY % tbl.table-titles.mdl "%titles;,"
+ ENTITY % tbl.table.mdl "%tbl.table-titles; tgroup+"
+ ENTITY % tbl.table.att "
+ pgwide %yesorno; #IMPLIED "
+-->
+
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+
+<!ATTLIST %tbl.table.name;
+ frame (top|bottom|topbot|all|sides|none) #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ %tbl.table.att;
+ %bodyatt;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody"
+ ENTITY % tbl.tgroup.att ""
+-->
+
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+
+<!ATTLIST tgroup
+ cols NMTOKEN #REQUIRED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ %tbl.tgroup.att;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.colspec.att ""
+-->
+
+<!ELEMENT colspec EMPTY >
+
+<!ATTLIST colspec
+ colnum NMTOKEN #IMPLIED
+ colname NMTOKEN #IMPLIED
+ colwidth CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ %tbl.colspec.att;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.thead.att ""
+-->
+
+<!ELEMENT thead (row+)>
+
+<!ATTLIST thead
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.thead.att;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.tbody.att ""
+-->
+
+<!ELEMENT tbody (row+)>
+
+<!ATTLIST tbody
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.tbody.att;
+>
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % tbl.row.mdl "entry+"
+ ENTITY % tbl.row.att ""
+-->
+
+<!ELEMENT row (%tbl.row.mdl;)>
+
+<!ATTLIST row
+ rowsep %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.row.att;
+>
+
+
+<!--
+ Default declarations previously defined in this entity and
+ referenced below include:
+ ENTITY % paracon "#PCDATA"
+ ENTITY % tbl.entry.mdl "(%paracon;)*"
+ ENTITY % tbl.entry.att ""
+-->
+
+<!ELEMENT entry %tbl.entry.mdl;>
+
+<!ATTLIST entry
+ colname NMTOKEN #IMPLIED
+ namest NMTOKEN #IMPLIED
+ nameend NMTOKEN #IMPLIED
+ morerows NMTOKEN #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.entry.att;
+>
diff --git a/tests/docbook/dtd/Makefile.am b/tests/docbook/dtd/Makefile.am
new file mode 100644
index 00000000..aefd3e6c
--- /dev/null
+++ b/tests/docbook/dtd/Makefile.am
@@ -0,0 +1,4 @@
+## Process this file with automake to produce Makefile.in
+
+SUBDIRS= 3.1.7 4.0 4.1.2 simple
+
diff --git a/tests/docbook/dtd/simple/3.1.7.1/ChangeLog b/tests/docbook/dtd/simple/3.1.7.1/ChangeLog
new file mode 100644
index 00000000..487284ba
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/ChangeLog
@@ -0,0 +1,113 @@
+1999-11-10 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated, based on DocBk XML V3.1.7
+
+ * VERSION: Version 3.1.7.1 released
+
+ * sdocbook.dtd: Added journal, series, set, and manuscript to pubwork on citetitle
+
+1999-10-19 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, VERSION, catalog, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml:
+ Based on 3.1.6; no content changes
+
+1999-08-26 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sinclist.mod, test.xml, testcss.xml:
+ Updated version number
+
+ * VERSION: Version 3.1.5.1 Released
+
+ * sdocbook-custom.dtd, sdocbookref-custom.dtd: Based on DocBk XML 3.1.5
+
+ * sdocbook.dtd, sdocbookref.dtd: Based on 3.1.5
+
+1999-08-09 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated version
+
+ * VERSION: Version 3.1.4.2 released
+
+ * sdbhier.mod: Added RefEntry (under include.refentry PE)
+
+ * sdbhier.mod, sdocbook-custom.dtd, sdocbookref-custom.dtd, sinclist.mod:
+ Update for refentry
+
+ * sdocbook-custom.dtd: Added option for including refentry (off by default); added affiliation, releaseinfo, and subjectset
+
+ * sdocbook.dtd: Updated
+
+ * sdocbookref-custom.dtd: New file.
+
+ * sdocbookref.dtd: New file.
+
+ * sinclist.mod: Tweaked to allow subjectset, affiliation, jobtitle, orgname, and releaseinfo
+
+ * testrefcust.xml: New file.
+
+1999-06-04 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated version number
+
+ * VERSION: Version 3.1.4.1 released
+
+ * catalog: Added mapping for character entities
+
+ * sdocbook.dtd: Updated; now includes local.* PEs
+
+ * sdocbook.dtd: Updated from DocBk 3.1.4
+
+1999-04-26 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated version number
+
+ * VERSION: Version 3.1.3.6 released
+
+ * sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod: Added XREF back in
+
+1999-04-13 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, VERSION, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml:
+ Version 3.1.3.5 releasd
+
+1999-04-09 Norman Walsh <ndw@nwalsh.com>
+
+ * sdocbook-custom.dtd: Allow more than one tag in artheader
+
+ * sdocbook.dtd: Updated
+
+1999-04-07 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated version numbers
+
+ * VERSION: Version 3.1.3.4 released
+
+ * testcss.xml: Replaced address with literallayout' testcss.xml
+
+1999-04-06 Norman Walsh <ndw@nwalsh.com>
+
+ * VERSION: Version 3.1.3.3 released
+
+ * catalog: New file.
+
+ * sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod:
+ More changes
+
+1999-04-05 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, VERSION, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod:
+ Version 3.1.3.2 released
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.css, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml, testcust.xml:
+ New file.
+
+ * sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod:
+ Removed address and related elements.
+ Removed parentbook attribute on article.
+ Added epigraph and authorblurb.
+
diff --git a/tests/docbook/dtd/simple/3.1.7.1/Makefile.am b/tests/docbook/dtd/simple/3.1.7.1/Makefile.am
new file mode 100644
index 00000000..8c27d22d
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/Makefile.am
@@ -0,0 +1,9 @@
+## Process this file with automake to produce Makefile.in
+
+EXTRA_DIST = \
+ COPYRIGHT ChangeLog README VERSION sdbcent.mod sdbhier.mod sdbpool.mod \
+ sdocbook-custom.dtd sdocbook.css sdocbook.dtd sdocbookref-custom.dtd \
+ sdocbookref.dtd sinclist.mod test.xml testcss.xml testcust.xml \
+ testrefcust.xml \
+ ent/ChangeLog ent/iso-lat1.ent ent/iso-num.ent ent/iso-pub.ent
+
diff --git a/tests/docbook/dtd/simple/3.1.7.1/README b/tests/docbook/dtd/simple/3.1.7.1/README
new file mode 100644
index 00000000..63cc345a
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/README
@@ -0,0 +1,105 @@
+README for the Simplified DocBk XML V3.1.7.1 DTD
+
+This is a simplified version of the DocBk XML V3.1.3 DTD. This
+DTD is my attempt to make a small subset of DocBook. I tried to
+achieve the following goals:
+
+ * Documents written in the subset must be 100% legal DocBk XML
+ documents.
+
+ * This is for small documents, articles and the like, so
+ there's no need for 'book's or 'set's, just 'article's.
+
+ * The markup should be the smallest practical subset, if you
+ need richly structured markup, use DocBook or DocBk XML.
+
+ * The result is roughly "HTML-level markup in DocBook", but I
+ didn't set out explicitly to produce that result.
+
+ * The DTD must work in IE5 (it's XML not SGML). It should be
+ small enough to download more-or-less painlessly.
+
+ * There should be a CSS stylesheet for it (mine's pretty lame).
+
+ * There should be an XSL stylesheet for it. Since I'm in the
+ somewhat privileged position of knowing how many changes are
+ coming, I'm going to wait until after the next draft ;-).
+
+Instead of DocBook's 350+ elements, this DTD has fewer than 100.
+
+
+Manifest
+--------
+
+README - This readme file
+VERSION - The version number
+COPYRIGHT - Copyright statement
+sdbcent.mod - Character entities
+sdbhier.mod - Hierarchy overrides
+sdbpool.mod - Information pool overrides
+sdocbook-custom.dtd - The DTD
+sdocbook.css - CSS stylesheet
+sdocbook.dtd - A flattened version of the DTD (mechanically generated)
+sinclist.mod - A set of 'ignore' parameter entities
+test.xml - A test document
+testcss.xml - A test document for the CSS stylesheet
+testcust.xml - A test document for the raw customization layer
+ent/ - The ISO character entity files used by sdocbook.dtd
+
+
+Installation
+------------
+
+Place the files in this distribution somewhere on your machine. Adjust
+your catalog(s) if appropriate (XML tools frequently do not support
+catalogs, so this may be irrelevant for you).
+
+Please use the following formal public identifier to identify this DTD:
+
+ "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+
+For example, if your document's top-level element is <article>, and
+you are using this DTD directly, use the FPI in the DOCTYPE
+declaration:
+
+<!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+ "/system/identifier/on/your/system/sdocbook.dtd" [
+...
+]>
+
+
+Note: if you are using the customization layer directly (sdocbook-custom.dtd),
+you may have to adjust the system identifier that points to the DocBk XML
+DTD. You will also have to install the DocBk XML V3.1.3 DTD somewhere on
+your system.
+
+
+Copyright
+---------
+
+Copyright (C) 1998, 1999 Norman Walsh
+
+See COPYRIGHT for more information
+
+
+Warranty
+--------
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
+CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+
+Contacting the Author
+---------------------
+
+This DTD is maintained by Norman Walsh, <ndw@nwalsh.com>.
+
+The best way to reach norm is by email. You will find additional
+contact information at http://nwalsh.com/docbook/simple/
diff --git a/tests/docbook/dtd/simple/3.1.7.1/VERSION b/tests/docbook/dtd/simple/3.1.7.1/VERSION
new file mode 100644
index 00000000..ee6735f3
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/VERSION
@@ -0,0 +1 @@
+3.1.7.1
diff --git a/tests/docbook/dtd/simple/3.1.7.1/ent/ChangeLog b/tests/docbook/dtd/simple/3.1.7.1/ent/ChangeLog
new file mode 100644
index 00000000..a25e40f4
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/ent/ChangeLog
@@ -0,0 +1,4 @@
+1999-04-05 Norman Walsh <ndw@nwalsh.com>
+
+ * iso-lat1.ent, iso-num.ent, iso-pub.ent: New file.
+
diff --git a/tests/docbook/dtd/simple/3.1.7.1/ent/iso-lat1.ent b/tests/docbook/dtd/simple/3.1.7.1/ent/iso-lat1.ent
new file mode 100644
index 00000000..1252fe10
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/ent/iso-lat1.ent
@@ -0,0 +1,67 @@
+<!-- iso-lat1.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY aacute "&#x00E1;"> <!-- LATIN SMALL LETTER A WITH ACUTE -->
+<!ENTITY Aacute "&#x00C1;"> <!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+<!ENTITY acirc "&#x00E2;"> <!-- LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY Acirc "&#x00C2;"> <!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY agrave "&#x00E0;"> <!-- LATIN SMALL LETTER A WITH GRAVE -->
+<!ENTITY Agrave "&#x00C0;"> <!-- LATIN CAPITAL LETTER A WITH GRAVE -->
+<!ENTITY aring "&#x00E5;"> <!-- LATIN SMALL LETTER A WITH RING ABOVE -->
+<!ENTITY Aring "&#x00C5;"> <!-- LATIN CAPITAL LETTER A WITH RING ABOVE -->
+<!ENTITY atilde "&#x00E3;"> <!-- LATIN SMALL LETTER A WITH TILDE -->
+<!ENTITY Atilde "&#x00C3;"> <!-- LATIN CAPITAL LETTER A WITH TILDE -->
+<!ENTITY auml "&#x00E4;"> <!-- LATIN SMALL LETTER A WITH DIAERESIS -->
+<!ENTITY Auml "&#x00C4;"> <!-- LATIN CAPITAL LETTER A WITH DIAERESIS -->
+<!ENTITY aelig "&#x00E6;"> <!-- LATIN SMALL LETTER AE -->
+<!ENTITY AElig "&#x00C6;"> <!-- LATIN CAPITAL LETTER AE -->
+<!ENTITY ccedil "&#x00E7;"> <!-- LATIN SMALL LETTER C WITH CEDILLA -->
+<!ENTITY Ccedil "&#x00C7;"> <!-- LATIN CAPITAL LETTER C WITH CEDILLA -->
+<!ENTITY eth "&#x00D0;"> <!-- LATIN SMALL LETTER ETH -->
+<!ENTITY ETH "&#x00F0;"> <!-- LATIN CAPITAL LETTER ETH -->
+<!ENTITY eacute "&#x00E9;"> <!-- LATIN SMALL LETTER E WITH ACUTE -->
+<!ENTITY Eacute "&#x00C9;"> <!-- LATIN CAPITAL LETTER E WITH ACUTE -->
+<!ENTITY ecirc "&#x00EA;"> <!-- LATIN SMALL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY Ecirc "&#x00CA;"> <!-- LATIN CAPITAL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY egrave "&#x00E8;"> <!-- LATIN SMALL LETTER E WITH GRAVE -->
+<!ENTITY Egrave "&#x00C8;"> <!-- LATIN CAPITAL LETTER E WITH GRAVE -->
+<!ENTITY euml "&#x00EB;"> <!-- LATIN SMALL LETTER E WITH DIAERESIS -->
+<!ENTITY Euml "&#x00CB;"> <!-- LATIN CAPITAL LETTER E WITH DIAERESIS -->
+<!ENTITY iacute "&#x00ED;"> <!-- LATIN SMALL LETTER I WITH ACUTE -->
+<!ENTITY Iacute "&#x00CD;"> <!-- LATIN CAPITAL LETTER I WITH ACUTE -->
+<!ENTITY icirc "&#x00EE;"> <!-- LATIN SMALL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY Icirc "&#x00CE;"> <!-- LATIN CAPITAL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY igrave "&#x00EC;"> <!-- LATIN SMALL LETTER I WITH GRAVE -->
+<!ENTITY Igrave "&#x00CC;"> <!-- LATIN CAPITAL LETTER I WITH GRAVE -->
+<!ENTITY iuml "&#x00EF;"> <!-- LATIN SMALL LETTER I WITH DIAERESIS -->
+<!ENTITY Iuml "&#x00CF;"> <!-- LATIN CAPITAL LETTER I WITH DIAERESIS -->
+<!ENTITY ntilde "&#x00F1;"> <!-- LATIN SMALL LETTER N WITH TILDE -->
+<!ENTITY Ntilde "&#x00D1;"> <!-- LATIN CAPITAL LETTER N WITH TILDE -->
+<!ENTITY oacute "&#x00F3;"> <!-- LATIN SMALL LETTER O WITH ACUTE -->
+<!ENTITY Oacute "&#x00D3;"> <!-- LATIN CAPITAL LETTER O WITH ACUTE -->
+<!ENTITY ocirc "&#x00F4;"> <!-- LATIN SMALL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY Ocirc "&#x00D4;"> <!-- LATIN CAPITAL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY ograve "&#x00F2;"> <!-- LATIN SMALL LETTER O WITH GRAVE -->
+<!ENTITY Ograve "&#x00D2;"> <!-- LATIN CAPITAL LETTER O WITH GRAVE -->
+<!ENTITY oslash "&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY Oslash "&#x00D8;"> <!-- LATIN CAPITAL LETTER O WITH STROKE -->
+<!ENTITY otilde "&#x00F5;"> <!-- LATIN SMALL LETTER O WITH TILDE -->
+<!ENTITY Otilde "&#x00D5;"> <!-- LATIN CAPITAL LETTER O WITH TILDE -->
+<!ENTITY ouml "&#x00F6;"> <!-- LATIN SMALL LETTER O WITH DIAERESIS -->
+<!ENTITY Ouml "&#x00D6;"> <!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
+<!ENTITY szlig "&#x00DF;"> <!-- LATIN SMALL LETTER SHARP S -->
+<!ENTITY thorn "&#x00FE;"> <!-- LATIN SMALL LETTER THORN -->
+<!ENTITY THORN "&#x00DE;"> <!-- LATIN CAPITAL LETTER THORN -->
+<!ENTITY uacute "&#x00FA;"> <!-- LATIN SMALL LETTER U WITH ACUTE -->
+<!ENTITY Uacute "&#x00DA;"> <!-- LATIN CAPITAL LETTER U WITH ACUTE -->
+<!ENTITY ucirc "&#x00DB;"> <!-- LATIN SMALL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY Ucirc "&#x00FB;"> <!-- LATIN CAPITAL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY ugrave "&#x00F9;"> <!-- LATIN SMALL LETTER U WITH GRAVE -->
+<!ENTITY Ugrave "&#x00D9;"> <!-- LATIN CAPITAL LETTER U WITH GRAVE -->
+<!ENTITY uuml "&#x00FC;"> <!-- LATIN SMALL LETTER U WITH DIAERESIS -->
+<!ENTITY Uuml "&#x00DC;"> <!-- LATIN CAPITAL LETTER U WITH DIAERESIS -->
+<!ENTITY yacute "&#x00FD;"> <!-- LATIN SMALL LETTER Y WITH ACUTE -->
+<!ENTITY Yacute "&#x00DD;"> <!-- LATIN CAPITAL LETTER Y WITH ACUTE -->
+<!ENTITY yuml "&#x00FF;"> <!-- LATIN SMALL LETTER Y WITH DIAERESIS -->
diff --git a/tests/docbook/dtd/simple/3.1.7.1/ent/iso-num.ent b/tests/docbook/dtd/simple/3.1.7.1/ent/iso-num.ent
new file mode 100644
index 00000000..43bed833
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/ent/iso-num.ent
@@ -0,0 +1,81 @@
+<!-- iso-num.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY half "&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac12 "&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac14 "&#x00BC;"> <!-- VULGAR FRACTION ONE QUARTER -->
+<!ENTITY frac34 "&#x00BE;"> <!-- VULGAR FRACTION THREE QUARTERS -->
+<!ENTITY frac18 "&#x215B;"> <!-- -->
+<!ENTITY frac38 "&#x215C;"> <!-- -->
+<!ENTITY frac58 "&#x215D;"> <!-- -->
+<!ENTITY frac78 "&#x215E;"> <!-- -->
+<!ENTITY sup1 "&#x00B9;"> <!-- SUPERSCRIPT ONE -->
+<!ENTITY sup2 "&#x00B2;"> <!-- SUPERSCRIPT TWO -->
+<!ENTITY sup3 "&#x00B3;"> <!-- SUPERSCRIPT THREE -->
+<!ENTITY plus "&#x002B;"> <!-- PLUS SIGN -->
+<!ENTITY plusmn "&#x00B1;"> <!-- PLUS-MINUS SIGN -->
+<!-- predeclared in XML <!ENTITY lt "&#x003C;"--> <!-- LESS-THAN SIGN -->
+<!ENTITY equals "&#x003D;"> <!-- EQUALS SIGN -->
+<!ENTITY gt "&#x003E;"> <!-- GREATER-THAN SIGN -->
+<!ENTITY divide "&#x00F7;"> <!-- DIVISION SIGN -->
+<!ENTITY times "&#x00D7;"> <!-- MULTIPLICATION SIGN -->
+<!ENTITY curren "&#x00A4;"> <!-- CURRENCY SIGN -->
+<!ENTITY pound "&#x00A3;"> <!-- POUND SIGN -->
+<!ENTITY dollar "&#x0024;"> <!-- DOLLAR SIGN -->
+<!ENTITY cent "&#x00A2;"> <!-- CENT SIGN -->
+<!ENTITY yen "&#x00A5;"> <!-- YEN SIGN -->
+<!ENTITY num "&#x0023;"> <!-- NUMBER SIGN -->
+<!ENTITY percnt "&#x0025;"> <!-- PERCENT SIGN -->
+<!-- predeclared in XML <!ENTITY amp "&#x0026;"--> <!-- AMPERSAND -->
+<!ENTITY ast "&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY commat "&#x0040;"> <!-- COMMERCIAL AT -->
+<!ENTITY lsqb "&#x005B;"> <!-- LEFT SQUARE BRACKET -->
+<!ENTITY bsol "&#x005C;"> <!-- REVERSE SOLIDUS -->
+<!ENTITY rsqb "&#x005D;"> <!-- RIGHT SQUARE BRACKET -->
+<!ENTITY lcub "&#x007B;"> <!-- LEFT CURLY BRACKET -->
+<!ENTITY horbar "&#x2015;"> <!-- HORIZONTAL BAR -->
+<!ENTITY verbar "&#x007C;"> <!-- VERTICAL LINE -->
+<!ENTITY rcub "&#x007D;"> <!-- RIGHT CURLY BRACKET -->
+<!ENTITY micro "&#x00B5;"> <!-- MICRO SIGN -->
+<!ENTITY ohm "&#x2126;"> <!-- OHM SIGN -->
+<!ENTITY deg "&#x00B0;"> <!-- DEGREE SIGN -->
+<!ENTITY ordm "&#x00BA;"> <!-- MASCULINE ORDINAL INDICATOR -->
+<!ENTITY ordf "&#x00AA;"> <!-- FEMININE ORDINAL INDICATOR -->
+<!ENTITY sect "&#x00A7;"> <!-- SECTION SIGN -->
+<!ENTITY para "&#x00B6;"> <!-- PILCROW SIGN -->
+<!ENTITY middot "&#x00B7;"> <!-- MIDDLE DOT -->
+<!ENTITY larr "&#x2190;"> <!-- LEFTWARDS DOUBLE ARROW -->
+<!ENTITY rarr "&#x2192;"> <!-- RIGHTWARDS DOUBLE ARROW -->
+<!ENTITY uarr "&#x2191;"> <!-- UPWARDS ARROW -->
+<!ENTITY darr "&#x2193;"> <!-- DOWNWARDS ARROW -->
+<!ENTITY copy "&#x00A9;"> <!-- COPYRIGHT SIGN -->
+<!ENTITY reg "&#x00AF;"> <!-- MACRON -->
+<!ENTITY trade "&#x2122;"> <!-- TRADE MARK SIGN -->
+<!ENTITY brvbar "&#x00A6;"> <!-- BROKEN BAR -->
+<!ENTITY not "&#x00AC;"> <!-- NOT SIGN -->
+<!ENTITY sung "&#x2669;"> <!-- -->
+<!ENTITY excl "&#x0021;"> <!-- EXCLAMATION MARK -->
+<!ENTITY iexcl "&#x00A1;"> <!-- INVERTED EXCLAMATION MARK -->
+<!ENTITY quot "&#x0022;"> <!-- QUOTATION MARK -->
+<!ENTITY apos "&#x0027;"> <!-- APOSTROPHE -->
+<!ENTITY lpar "&#x0028;"> <!-- LEFT PARENTHESIS -->
+<!ENTITY rpar "&#x0029;"> <!-- RIGHT PARENTHESIS -->
+<!ENTITY comma "&#x002C;"> <!-- COMMA -->
+<!ENTITY lowbar "&#x005F;"> <!-- LOW LINE -->
+<!ENTITY hyphen "&#xE4F8;"> <!-- -->
+<!ENTITY period "&#x002E;"> <!-- FULL STOP -->
+<!ENTITY sol "&#x002F;"> <!-- SOLIDUS -->
+<!ENTITY colon "&#x003A;"> <!-- COLON -->
+<!ENTITY semi "&#x003B;"> <!-- SEMICOLON -->
+<!ENTITY quest "&#x003F;"> <!-- QUESTION MARK -->
+<!ENTITY iquest "&#x00BF;"> <!-- INVERTED QUESTION MARK -->
+<!ENTITY laquo "&#x00AB;"> <!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY raquo "&#x00BB;"> <!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY lsquo "&#x2018;"> <!-- -->
+<!ENTITY rsquo "&#x2019;"> <!-- RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY ldquo "&#x201C;"> <!-- -->
+<!ENTITY rdquo "&#x201D;"> <!-- RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY nbsp "&#x00A0;"> <!-- NO-BREAK SPACE -->
+<!ENTITY shy "&#x00AD;"> <!-- SOFT HYPHEN -->
diff --git a/tests/docbook/dtd/simple/3.1.7.1/ent/iso-pub.ent b/tests/docbook/dtd/simple/3.1.7.1/ent/iso-pub.ent
new file mode 100644
index 00000000..addb01e9
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/ent/iso-pub.ent
@@ -0,0 +1,90 @@
+<!-- iso-pub.ent produced by Norman Walsh for the XML version of DocBook -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz -->
+
+<!ENTITY emsp "&#x2003;"> <!-- EM SPACE -->
+<!ENTITY ensp "&#x2002;"> <!-- EN SPACE -->
+<!ENTITY emsp13 "&#x2004;"> <!-- THREE-PER-EM SPACE -->
+<!ENTITY emsp14 "&#x2005;"> <!-- FOUR-PER-EM SPACE -->
+<!ENTITY numsp "&#x2007;"> <!-- FIGURE SPACE -->
+<!ENTITY puncsp "&#x2008;"> <!-- PUNCTUATION SPACE -->
+<!ENTITY thinsp "&#x2009;"> <!-- THIN SPACE -->
+<!ENTITY hairsp "&#x200A;"> <!-- HAIR SPACE -->
+<!ENTITY mdash "&#x2014;"> <!-- EM DASH -->
+<!ENTITY ndash "&#x2013;"> <!-- EN DASH -->
+<!ENTITY dash "&#x2010;"> <!-- HYPHEN -->
+<!ENTITY blank "&#x2423;"> <!-- OPEN BOX -->
+<!ENTITY hellip "&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY nldr "&#x2025;"> <!-- TWO DOT LEADER -->
+<!ENTITY frac13 "&#x2153;"> <!-- VULGAR FRACTION ONE THIRD -->
+<!ENTITY frac23 "&#x2154;"> <!-- VULGAR FRACTION TWO THIRDS -->
+<!ENTITY frac15 "&#x2155;"> <!-- VULGAR FRACTION ONE FIFTH -->
+<!ENTITY frac25 "&#x2156;"> <!-- VULGAR FRACTION TWO FIFTHS -->
+<!ENTITY frac35 "&#x2157;"> <!-- VULGAR FRACTION THREE FIFTHS -->
+<!ENTITY frac45 "&#x2158;"> <!-- VULGAR FRACTION FOUR FIFTHS -->
+<!ENTITY frac16 "&#x2159;"> <!-- VULGAR FRACTION ONE SIXTH -->
+<!ENTITY frac56 "&#x215A;"> <!-- VULGAR FRACTION FIVE SIXTHS -->
+<!ENTITY incare "&#x2105;"> <!-- CARE OF -->
+<!ENTITY block "&#x2588;"> <!-- FULL BLOCK -->
+<!ENTITY uhblk "&#x2580;"> <!-- UPPER HALF BLOCK -->
+<!ENTITY lhblk "&#x2584;"> <!-- LOWER HALF BLOCK -->
+<!ENTITY blk14 "&#x2591;"> <!-- LIGHT SHADE -->
+<!ENTITY blk12 "&#x2592;"> <!-- MEDIUM SHADE -->
+<!ENTITY blk34 "&#x2593;"> <!-- DARK SHADE -->
+<!ENTITY marker "&#x25AE;"> <!-- BLACK VERTICAL RECTANGLE -->
+<!ENTITY cir "&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY squ "&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY rect "&#x25AD;"> <!-- WHITE RECTANGLE -->
+<!ENTITY utri "&#x25B5;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY dtri "&#x25BF;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY star "&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY bull "&#x2022;"> <!-- BULLET -->
+<!ENTITY squf "&#x25AA;"> <!-- -->
+<!ENTITY utrif "&#x25B4;"> <!-- BLACK UP-POINTING TRIANGLE -->
+<!ENTITY dtrif "&#x25BE;"> <!-- BLACK DOWN-POINTING TRIANGLE -->
+<!ENTITY ltrif "&#x25C2;"> <!-- BLACK LEFT-POINTING TRIANGLE -->
+<!ENTITY rtrif "&#x25B8;"> <!-- BLACK RIGHT-POINTING TRIANGLE -->
+<!ENTITY clubs "&#x2663;"> <!-- BLACK CLUB SUIT -->
+<!ENTITY diams "&#x2666;"> <!-- BLACK DIAMOND SUIT -->
+<!ENTITY hearts "&#x2665;"> <!-- BLACK HEART SUIT -->
+<!ENTITY spades "&#x2660;"> <!-- BLACK SPADE SUIT -->
+<!ENTITY malt "&#x2720;"> <!-- MALTESE CROSS -->
+<!ENTITY dagger "&#x2020;"> <!-- DAGGER -->
+<!ENTITY Dagger "&#x2021;"> <!-- DOUBLE DAGGER -->
+<!ENTITY check "&#x2713;"> <!-- CHECK MARK -->
+<!ENTITY cross "&#x2717;"> <!-- BALLOT X -->
+<!ENTITY sharp "&#x266F;"> <!-- MUSIC SHARP SIGN -->
+<!ENTITY flat "&#x266D;"> <!-- MUSIC FLAT SIGN -->
+<!ENTITY male "&#x2642;"> <!-- MALE SIGN -->
+<!ENTITY female "&#x2640;"> <!-- -->
+<!ENTITY phone "&#x260E;"> <!-- TELEPHONE SIGN -->
+<!ENTITY telrec "&#x2315;"> <!-- TELEPHONE RECORDER -->
+<!ENTITY copysr "&#x2117;"> <!-- SOUND RECORDING COPYRIGHT -->
+<!ENTITY caret "&#x2041;"> <!-- CARET -->
+<!ENTITY lsquor "&#x201A;"> <!-- SINGLE LOW-9 QUOTATION MARK -->
+<!ENTITY ldquor "&#x201E;"> <!-- DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY fflig "&#xFB00;"> <!-- -->
+<!ENTITY filig "&#xFB01;"> <!-- -->
+<!-- fjlig Unknown unicode character -->
+<!ENTITY ffilig "&#xFB03;"> <!-- -->
+<!ENTITY ffllig "&#xFB04;"> <!-- -->
+<!ENTITY fllig "&#xFB02;"> <!-- -->
+<!ENTITY mldr "&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY rdquor "&#x201C;"> <!-- -->
+<!ENTITY rsquor "&#x2018;"> <!-- -->
+<!ENTITY vellip "&#x22EE;"> <!-- -->
+<!ENTITY hybull "&#x2043;"> <!-- HYPHEN BULLET -->
+<!ENTITY loz "&#x25CA;"> <!-- LOZENGE -->
+<!ENTITY lozf "&#x2726;"> <!-- -->
+<!ENTITY ltri "&#x25C3;"> <!-- WHITE LEFT-POINTING TRIANGLE -->
+<!ENTITY rtri "&#x25B9;"> <!-- WHITE RIGHT-POINTING TRIANGLE -->
+<!ENTITY starf "&#x2605;"> <!-- BLACK STAR -->
+<!ENTITY natur "&#x266E;"> <!-- MUSIC NATURAL SIGN -->
+<!ENTITY rx "&#x211E;"> <!-- PRESCRIPTION TAKE -->
+<!ENTITY sext "&#x2736;"> <!-- SIX POINTED BLACK STAR -->
+<!ENTITY target "&#x2316;"> <!-- POSITION INDICATOR -->
+<!ENTITY dlcrop "&#x230D;"> <!-- BOTTOM LEFT CROP -->
+<!ENTITY drcrop "&#x230C;"> <!-- BOTTOM RIGHT CROP -->
+<!ENTITY ulcrop "&#x230F;"> <!-- TOP LEFT CROP -->
+<!ENTITY urcrop "&#x230E;"> <!-- TOP RIGHT CROP -->
diff --git a/tests/docbook/dtd/simple/3.1.7.1/sdbcent.mod b/tests/docbook/dtd/simple/3.1.7.1/sdbcent.mod
new file mode 100644
index 00000000..de29143b
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/sdbcent.mod
@@ -0,0 +1,47 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML Character Entity Sets V3.1.7.1
+ Part of the Simplified DocBk XML V3.1.7.1 DTD
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % ISOamsa.module "IGNORE">
+<!ENTITY % ISOamsb.module "IGNORE">
+<!ENTITY % ISOamsc.module "IGNORE">
+<!ENTITY % ISOamsn.module "IGNORE">
+<!ENTITY % ISOamso.module "IGNORE">
+<!ENTITY % ISOamsr.module "IGNORE">
+<!ENTITY % ISObox.module "IGNORE">
+<!ENTITY % ISOcyr1.module "IGNORE">
+<!ENTITY % ISOcyr2.module "IGNORE">
+<!ENTITY % ISOdia.module "IGNORE">
+<!ENTITY % ISOgrk1.module "IGNORE">
+<!ENTITY % ISOgrk2.module "IGNORE">
+<!ENTITY % ISOgrk3.module "IGNORE">
+<!ENTITY % ISOgrk4.module "IGNORE">
+<!ENTITY % ISOlat1.module "IGNORE">
+<!ENTITY % ISOlat2.module "IGNORE">
+<!ENTITY % ISOnum.module "IGNORE">
+<!ENTITY % ISOpub.module "IGNORE">
+<!ENTITY % ISOtech.module "IGNORE">
+
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+
diff --git a/tests/docbook/dtd/simple/3.1.7.1/sdbhier.mod b/tests/docbook/dtd/simple/3.1.7.1/sdbhier.mod
new file mode 100644
index 00000000..579acf21
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/sdbhier.mod
@@ -0,0 +1,64 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML Document Hierarchy V3.1.7.1
+ Part of the Simplified DocBk XML V3.1.7.1 DTD
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.divcomponent.mix;">
+
+<!ENTITY % bookcomponent.content
+ "((%divcomponent.mix;)+, section*)
+ | section+">
+
+<![ %include.refentry; [
+
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ %local.refinline.char.mix;">
+
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.divcomponent.mix;">
+
+<!ELEMENT refentry (docinfo?, refmeta?, (%link.char.class;)*,
+ refnamediv, refsynopsisdiv?, refsect1+)>
+
+<!ELEMENT refmeta (refentrytitle, manvolnum?, refmiscinfo*)>
+
+<!ELEMENT refsect1info ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refsect2info ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refsect3info ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refsynopsisdivinfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+ (%link.char.class;)*)>
+
+]]>
diff --git a/tests/docbook/dtd/simple/3.1.7.1/sdbpool.mod b/tests/docbook/dtd/simple/3.1.7.1/sdbpool.mod
new file mode 100644
index 00000000..76bcc6eb
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/sdbpool.mod
@@ -0,0 +1,166 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML Information Pool V3.1.7.1
+ Part of the Simplified DocBk XML V3.1.7.1 DTD
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.component.mix;">
+
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.sidebar.mix;">
+
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % qandaset.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.qandaset.mix;">
+
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ %local.footnote.mix;">
+
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ %local.example.mix;">
+
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % highlights.mix
+ "%list.class; |%admon.class;
+ |%para.class;
+ %local.highlights.mix;">
+
+<!ENTITY % local.para.mix "">
+<!ENTITY % para.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%informal.class;
+ |%formal.class;
+ %local.para.mix;">
+
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.admon.mix;">
+
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+ "%linespecific.class;
+ |%informal.class;
+ %local.figure.mix;">
+
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |mediaobject
+ %local.tabentry.mix;">
+
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % glossdef.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.glossdef.mix;">
+
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.legalnotice.mix;">
+
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.textobject.mix;">
+
+<!-- Character-level mixtures ............................................. -->
+
+<!ENTITY % ubiq.exclusion "">
+<!ENTITY % ubiq.inclusion "">
+
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%inlineobj.char.class;
+ %local.para.char.mix;">
+
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%docinfo.char.class;
+ |%inlineobj.char.class;
+ %local.title.char.mix;">
+
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+ "#PCDATA
+ |%link.char.class; |%tech.char.class;
+ |inlinemediaobject
+ %local.cptr.char.mix;">
+
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+ "#PCDATA
+ |replaceable
+ |inlinemediaobject
+ %local.smallcptr.char.mix;">
+
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+ "#PCDATA
+ |acronym|emphasis|trademark
+ |%link.char.class;
+ |inlinemediaobject
+ %local.word.char.mix;">
+
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+ "#PCDATA
+ |%link.char.class;
+ |emphasis|trademark
+ |replaceable
+ |inlinemediaobject
+ %local.docinfo.char.mix;">
+
+<!ENTITY % tbl.table.excep "">
+<!ENTITY % tbl.table.mdl
+ "(title, titleabbrev?, (mediaobject+|tgroup+))">
+
+<!ENTITY % programlisting.content "%para.char.mix; | lineannotation">
diff --git a/tests/docbook/dtd/simple/3.1.7.1/sdocbook-custom.dtd b/tests/docbook/dtd/simple/3.1.7.1/sdocbook-custom.dtd
new file mode 100644
index 00000000..52e61036
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/sdocbook-custom.dtd
@@ -0,0 +1,238 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML V3.1.7.1 DTD
+ Copyright (C) 1999 Norman Walsh
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+
+ Common declaration:
+
+ <?xml version=1.0?>
+ <!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+ "sdocbook.dtd">
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % include.refentry "IGNORE">
+<![ %include.refentry; [
+<!ENTITY % exclude.refentry "IGNORE">
+<!ENTITY % refentry.element "IGNORE">
+<!ENTITY % refmeta.element "IGNORE">
+<!ENTITY % refnamediv.element "IGNORE">
+]]>
+<!ENTITY % exclude.refentry "INCLUDE">
+
+<!ENTITY % sinclist SYSTEM "sinclist.mod">
+%sinclist;
+
+<!ENTITY % formalobject.title.content "title">
+<!ENTITY % div.title.content "title, subtitle?">
+<!ENTITY % bookcomponent.title.content
+ "docinfo?, title, subtitle?">
+<!ENTITY % sect.title.content
+ "title, subtitle?">
+
+<!ENTITY % ndxterm.class "">
+
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+ "itemizedlist|orderedlist
+ |variablelist %local.list.class;">
+
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+ "note %local.admon.class;">
+
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+ "literallayout|programlisting %local.linespecific.class;">
+
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+ "para %local.para.class;">
+
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+ "blockquote
+ |mediaobject
+ |informaltable %local.informal.class;">
+
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+ "example|figure|table %local.formal.class;">
+
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+ "sidebar %local.compound.class;">
+
+<!ENTITY % local.genobj.class "">
+<!ENTITY % genobj.class "">
+
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+ "abstract|authorblurb|epigraph
+ %local.descobj.class;">
+
+<!-- Character-level classes .............................................. -->
+
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % xref.char.class "">
+
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+ "abbrev|acronym|citetitle|emphasis|footnote|phrase
+ |quote|trademark %local.gen.char.class;">
+
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+ "xref|link|ulink %local.link.char.class;">
+
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+ "command|computeroutput
+ |email|filename
+ |literal
+ |option
+ |replaceable
+ |systemitem|userinput
+ %local.tech.char.class;">
+
+<!ENTITY % local.base.char.class "">
+<!ENTITY % base.char.class "">
+
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+ "author|corpauthor|othercredit
+ |revhistory
+ %local.docinfo.char.class;">
+
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+ "inlinemediaobject %local.inlineobj.char.class;">
+
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % effectivity.attrib
+ "%local.effectivity.attrib;"
+>
+
+<!ENTITY % local.common.attrib "">
+<!ENTITY % common.attrib
+ "id ID #IMPLIED
+ %local.common.attrib;"
+>
+
+<!ENTITY % idreq.common.attrib
+ "id ID #REQUIRED
+ %local.common.attrib;"
+>
+
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+ "honorific|firstname|surname|lineage|othername|affiliation
+ |authorblurb
+ %local.person.ident.mix;">
+
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+ "abbrev|abstract|author
+ |authorgroup|bibliomisc
+ |copyright|corpauthor|date|edition
+ |editor|issuenum
+ |othercredit
+ |pubdate|publishername
+ |releaseinfo|revhistory
+ |subtitle|title|volumenum|citetitle
+ |%person.ident.mix;
+ %local.bibliocomponent.mix;">
+
+<!ENTITY % dbpool.redecl.module "INCLUDE">
+<!ENTITY % rdbpool SYSTEM "sdbpool.mod">
+
+<!ENTITY % dbhier.redecl.module "INCLUDE">
+<!ENTITY % rdbhier SYSTEM "sdbhier.mod">
+
+<!ENTITY % sdbcent SYSTEM "sdbcent.mod">
+%sdbcent;
+
+<!ENTITY % docinfo.element "IGNORE">
+<!ENTITY % objectinfo.element "IGNORE">
+<!ENTITY % section.element "IGNORE">
+<!ENTITY % sectioninfo.element "IGNORE">
+<!ENTITY % authorgroup.element "IGNORE">
+<!ENTITY % para.element "IGNORE">
+<!ENTITY % informaltable.element "IGNORE">
+<!ENTITY % replaceable.element "IGNORE">
+<!ENTITY % trademark.element "IGNORE">
+<!ENTITY % systemitem.element "IGNORE">
+<!ENTITY % article.element "IGNORE">
+<!ENTITY % article.attlist "IGNORE">
+<!ENTITY % artheader.element "IGNORE">
+<!ENTITY % appendix.element "IGNORE">
+
+<!ENTITY % cals.table.module "IGNORE">
+<!ENTITY % docbook PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.6//EN"
+ "../docbookx/docbookx.dtd"
+>
+<!-- "http://nwalsh.com/docbook/xml/3.1.6/docbookx.dtd"-->
+%docbook;
+
+<!ELEMENT docinfo ((mediaobject
+ | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT objectinfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT section (sectioninfo?,
+ (%sect.title.content;),
+ (((%divcomponent.mix;)+, section*)
+ | section+))>
+
+<!ELEMENT sectioninfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT authorgroup ((author|editor|corpauthor|othercredit)+)>
+
+<!ELEMENT affiliation (jobtitle?, orgname?)>
+
+<!ELEMENT para (%para.char.mix;)*>
+
+<!ELEMENT informaltable (mediaobject+|tgroup+) %tbl.table.excep;>
+
+<!ELEMENT replaceable (#PCDATA
+ | %link.char.class;
+ | inlinemediaobject)*>
+
+<!ELEMENT trademark (#PCDATA
+ | %link.char.class;
+ | %tech.char.class;
+ | inlinemediaobject
+ | emphasis)*>
+
+<!ELEMENT systemitem (%cptr.char.mix;)*>
+
+<!ELEMENT article ((%div.title.content;)?, artheader?,
+ (%bookcomponent.content;),
+ (%appendix.class;)*)>
+
+<!ATTLIST article
+ class (journalarticle
+ |productsheet
+ |whitepaper
+ |techreport
+ |faq) #IMPLIED
+ %status.attrib;
+ %common.attrib;
+ %article.role.attrib;
+ %local.article.attrib;
+>
+
+<!ELEMENT artheader (mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+>
+
+<!ELEMENT appendix ((%bookcomponent.title.content;),
+ (%bookcomponent.content;))>
diff --git a/tests/docbook/dtd/simple/3.1.7.1/sdocbook.css b/tests/docbook/dtd/simple/3.1.7.1/sdocbook.css
new file mode 100644
index 00000000..2884870a
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/sdocbook.css
@@ -0,0 +1,674 @@
+abbrev
+{
+ display: inline;
+}
+
+abstract
+{
+ margin-left: 0.5in;
+ margin-right: 0.5in;
+ display: inline;
+}
+
+acronym
+{
+ display: inline;
+}
+
+address
+{
+ white-space: pre;
+ display: block;
+}
+
+anchor
+{
+ display: inline;
+}
+
+appendix
+{
+ display: block;
+}
+
+artheader
+{
+ display: none;
+}
+
+article
+{
+ display: block;
+}
+
+audiodata
+{
+ display: none;
+}
+
+audioobject
+{
+ display: none;
+}
+
+author
+{
+ display: inline;
+}
+
+authorgroup
+{
+ display: inline;
+}
+
+authorinitials
+{
+ display: inline;
+}
+
+bibliomisc
+{
+ display: inline;
+}
+
+bibliomset
+{
+ display: inline;
+}
+
+biblioset
+{
+ display: inline;
+}
+
+blockquote
+{
+ display: block;
+ margin-left: 0.5in;
+ margin-right: 0.5in;
+}
+
+caption
+{
+ display: none;
+}
+
+citetitle
+{
+ display: inline;
+ font-style: italic;
+}
+
+city
+{
+ display: inline;
+}
+
+colspec
+{
+ display: none;
+}
+
+command
+{
+ display: inline;
+ font-style: italic;
+}
+
+computeroutput
+{
+ display: inline;
+ font-family: monospace;
+}
+
+copyright
+{
+ display: inline;
+}
+
+corpauthor
+{
+ display: inline;
+}
+
+country
+{
+ display: inline;
+}
+
+date
+{
+ display: inline;
+}
+
+docinfo
+{
+ display: none;
+}
+
+edition
+{
+ display: inline;
+}
+
+editor
+{
+ display: inline;
+}
+
+email
+{
+ display: inline;
+ font-style: italic;
+}
+
+emphasis
+{
+ display: inline;
+ font-style: italic;
+}
+
+entry
+{
+ display: table-cell;
+}
+
+example
+{
+ display: block;
+}
+
+fax
+{
+ display: inline;
+}
+
+figure
+{
+ display: block;
+}
+
+filename
+{
+ display: inline;
+ font-style: italic;
+}
+
+firstname
+{
+ display: inline;
+}
+
+footnote
+{
+ display: inline;
+}
+
+holder
+{
+ display: inline;
+}
+
+honorific
+{
+ display: inline;
+}
+
+imagedata
+{
+ display: inline;
+}
+
+imageobject
+{
+ display: inline;
+}
+
+informaltable
+{
+ display: block;
+}
+
+inlinemediaobject
+{
+ display: inline;
+}
+
+isbn
+{
+ display: inline;
+}
+
+issn
+{
+ display: inline;
+}
+
+issuenum
+{
+ display: inline;
+}
+
+itemizedlist
+{
+ display: block;
+ list-style-type: disc;
+}
+
+keyword
+{
+ display: inline;
+}
+
+keywordset
+{
+ display: inline;
+}
+
+legalnotice
+{
+ display: inline;
+}
+
+lineage
+{
+ display: inline;
+}
+
+lineannotation
+{
+ display: inline;
+}
+
+link
+{
+ display: inline;
+}
+
+listitem
+{
+ display: list-item;
+}
+
+literal
+{
+ display: inline;
+}
+
+literallayout
+{
+ display: inline;
+}
+
+mediaobject
+{
+ display: inline;
+}
+
+member
+{
+ display: inline;
+}
+
+note
+{
+ display: inline;
+}
+
+objectinfo
+{
+ display: inline;
+}
+
+option
+{
+ display: inline;
+}
+
+orderedlist
+{
+ display: block;
+ list-style-type: decimal;
+}
+
+otheraddr
+{
+ display: inline;
+}
+
+othercredit
+{
+ display: inline;
+}
+
+othername
+{
+ display: inline;
+}
+
+pagenums
+{
+ display: inline;
+}
+
+para
+{
+ display: block;
+}
+
+phone
+{
+ display: inline;
+}
+
+phrase
+{
+ display: inline;
+}
+
+pob
+{
+ display: inline;
+}
+
+postcode
+{
+ display: inline;
+}
+
+printhistory
+{
+ display: inline;
+}
+
+procedure
+{
+ display: inline;
+}
+
+programlisting
+{
+ display: inline;
+}
+
+pubdate
+{
+ display: inline;
+}
+
+publisher
+{
+ display: inline;
+}
+
+publishername
+{
+ display: inline;
+}
+
+quote
+{
+ display: inline;
+}
+
+replaceable
+{
+ display: inline;
+}
+
+revhistory
+{
+ display: inline;
+}
+
+revision
+{
+ display: inline;
+}
+
+revnumber
+{
+ display: inline;
+}
+
+revremark
+{
+ display: inline;
+}
+
+row
+{
+ display: table-row;
+}
+
+section
+{
+ display: block;
+}
+
+sectioninfo
+{
+ display: none;
+}
+
+sidebar
+{
+ display: block;
+}
+
+simplelist
+{
+ display: inline;
+}
+
+state
+{
+ display: inline;
+}
+
+step
+{
+ display: inline;
+}
+
+street
+{
+ display: inline;
+}
+
+substeps
+{
+ display: inline;
+}
+
+subtitle
+{
+ display: inline;
+}
+
+surname
+{
+ display: inline;
+}
+
+systemitem
+{
+ display: inline;
+}
+
+tbody
+{
+ display: table-row-group;
+}
+
+term
+{
+ display: inline;
+}
+
+textobject
+{
+ display: inline;
+}
+
+tgroup
+{
+ display: table;
+}
+
+thead
+{
+ display: table-row-group;
+}
+
+title
+{
+ display: block;
+}
+
+article title
+{
+ font-size: 36pt;
+ font-weight: bold;
+ display: block;
+}
+
+section title
+{
+ font-size: 24pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section title
+{
+ font-size: 20pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section section title
+{
+ font-size: 18pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section section section title
+{
+ font-size: 16pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section section section section title
+{
+ font-size: 14pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section section section section section title
+{
+ font-size: 12pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix title
+{
+ font-size: 24pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section title
+{
+ font-size: 22pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section section title
+{
+ font-size: 18pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section section section title
+{
+ font-size: 16pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section section section section title
+{
+ font-size: 14pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section section section section section title
+{
+ font-size: 12pt;
+ font-weight: bold;
+ display: block;
+}
+
+titleabbrev
+{
+ display: none;
+}
+
+trademark
+{
+ display: inline;
+}
+
+ulink
+{
+ display: inline;
+}
+
+userinput
+{
+ display: inline;
+}
+
+variablelist
+{
+ display: inline;
+}
+
+varlistentry
+{
+ display: inline;
+}
+
+videodata
+{
+ display: inline;
+}
+
+videoobject
+{
+ display: inline;
+}
+
+volumenum
+{
+ display: inline;
+}
+
+xref
+{
+ display: inline;
+}
+
+year
+{
+ display: inline;
+}
+
diff --git a/tests/docbook/dtd/simple/3.1.7.1/sdocbook.dtd b/tests/docbook/dtd/simple/3.1.7.1/sdocbook.dtd
new file mode 100644
index 00000000..3282a97f
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/sdocbook.dtd
@@ -0,0 +1,1315 @@
+<!-- *********************************************************************
+ *** THIS IS THE FLATTENED DTD. DO NOT EDIT THIS DTD BY HAND, EDIT ***
+ *** THE CUSTOMIZATION LAYER AND REGNERATE THE FLATTENED DTD! ********
+ ********************************************************************* -->
+
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML V3.1.7.1 DTD
+ Copyright (C) 1999 Norman Walsh
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+
+ Common declaration:
+
+ <?xml version=1.0?>
+ <!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+ "sdocbook.dtd">
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % formalobject.title.content "title">
+<!ENTITY % div.title.content "title, subtitle?">
+<!ENTITY % bookcomponent.title.content
+ "docinfo?, title, subtitle?">
+<!ENTITY % sect.title.content
+ "title, subtitle?">
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+ "itemizedlist|orderedlist
+ |variablelist %local.list.class;">
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+ "note %local.admon.class;">
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+ "literallayout|programlisting %local.linespecific.class;">
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+ "para %local.para.class;">
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+ "blockquote
+ |mediaobject
+ |informaltable %local.informal.class;">
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+ "example|figure|table %local.formal.class;">
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+ "sidebar %local.compound.class;">
+<!ENTITY % local.genobj.class "">
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+ "abstract|authorblurb|epigraph
+ %local.descobj.class;">
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+ "abbrev|acronym|citetitle|emphasis|footnote|phrase
+ |quote|trademark %local.gen.char.class;">
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+ "xref|link|ulink %local.link.char.class;">
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+ "command|computeroutput
+ |email|filename
+ |literal
+ |option
+ |replaceable
+ |systemitem|userinput
+ %local.tech.char.class;">
+<!ENTITY % local.base.char.class "">
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+ "author|corpauthor|othercredit
+ |revhistory
+ %local.docinfo.char.class;">
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+ "inlinemediaobject %local.inlineobj.char.class;">
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % local.common.attrib "">
+<!ENTITY % common.attrib
+ "id ID #IMPLIED
+ %local.common.attrib;"
+>
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+ "honorific|firstname|surname|lineage|othername|affiliation
+ |authorblurb
+ %local.person.ident.mix;">
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+ "abbrev|abstract|author
+ |authorgroup|bibliomisc
+ |copyright|corpauthor|date|edition
+ |editor|issuenum
+ |othercredit
+ |pubdate|publishername
+ |releaseinfo|revhistory
+ |subtitle|title|volumenum|citetitle
+ |%person.ident.mix;
+ %local.bibliocomponent.mix;">
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.component.mix;">
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.sidebar.mix;">
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ %local.footnote.mix;">
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ %local.example.mix;">
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % local.para.mix "">
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.admon.mix;">
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+ "%linespecific.class;
+ |%informal.class;
+ %local.figure.mix;">
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |mediaobject
+ %local.tabentry.mix;">
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.legalnotice.mix;">
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.textobject.mix;">
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%inlineobj.char.class;
+ %local.para.char.mix;">
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%docinfo.char.class;
+ |%inlineobj.char.class;
+ %local.title.char.mix;">
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+ "#PCDATA
+ |%link.char.class; |%tech.char.class;
+ |inlinemediaobject
+ %local.cptr.char.mix;">
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+ "#PCDATA
+ |acronym|emphasis|trademark
+ |%link.char.class;
+ |inlinemediaobject
+ %local.word.char.mix;">
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+ "#PCDATA
+ |%link.char.class;
+ |emphasis|trademark
+ |replaceable
+ |inlinemediaobject
+ %local.docinfo.char.mix;">
+<!ENTITY % tbl.table.mdl
+ "(title, titleabbrev?, (mediaobject+|tgroup+))">
+<!ENTITY % programlisting.content "%para.char.mix; | lineannotation">
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.divcomponent.mix;">
+<!ENTITY % bookcomponent.content
+ "((%divcomponent.mix;)+, section*)
+ | section+">
+
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+ "BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+ | EPS | EQN | FAX | GIF | GIF87a | GIF89a
+ | JPG | JPEG | IGES | PCX
+ | PIC | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+ | linespecific
+ %local.notation.class;">
+<!NOTATION BMP PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF SYSTEM "DITROFF">
+<!NOTATION DVI SYSTEM "DVI">
+<!NOTATION EPS PUBLIC
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN SYSTEM "EQN">
+<!NOTATION FAX PUBLIC
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF SYSTEM "GIF">
+<!NOTATION GIF87a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+<!NOTATION GIF89a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG SYSTEM "JPG">
+<!NOTATION JPEG SYSTEM "JPG">
+<!NOTATION IGES PUBLIC
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC SYSTEM "PIC">
+<!NOTATION PS SYSTEM "PS">
+<!NOTATION SGML PUBLIC
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL SYSTEM "TBL">
+<!NOTATION TEX PUBLIC
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF SYSTEM "TIFF">
+<!NOTATION WMF PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG SYSTEM "WPG">
+<!NOTATION linespecific SYSTEM "linespecific">
+<!ENTITY % yesorno.attvals "CDATA">
+<!ENTITY % local.ndxterm.class "">
+<!ENTITY % local.synop.class "">
+<!ENTITY % synop.class
+ "synopsis|cmdsynopsis|funcsynopsis %local.synop.class;">
+<!ENTITY % local.other.char.class "">
+<!ENTITY % other.char.class
+ "comment|subscript|superscript %local.other.char.class;">
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix
+ "videoobject|audioobject|imageobject %local.mediaobject.mix;">
+<!ENTITY % local.ndxterm.char.mix "">
+<!ENTITY % role.attrib
+ "role CDATA #IMPLIED">
+<!ENTITY % local.graphics.attrib "">
+<!ENTITY % local.keyaction.attrib "">
+<!ENTITY % label.attrib
+ "label CDATA #IMPLIED">
+<!ENTITY % linespecific.attrib
+ "format NOTATION
+ (linespecific) 'linespecific'">
+<!ENTITY % linkendreq.attrib
+ "linkend IDREF #REQUIRED">
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+ "mark CDATA #IMPLIED
+ %local.mark.attrib;"
+>
+<!ENTITY % moreinfo.attrib
+ "moreinfo (refentry|none) 'none'">
+<!ENTITY % pagenum.attrib
+ "pagenum CDATA #IMPLIED">
+<!ENTITY % local.status.attrib "">
+<!ENTITY % status.attrib
+ "status CDATA #IMPLIED
+ %local.status.attrib;"
+>
+<!ENTITY % width.attrib
+ "width CDATA #IMPLIED">
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+<!ELEMENT title (%title.char.mix;)*>
+<!ATTLIST title
+ %pagenum.attrib;
+ %common.attrib;
+ %title.role.attrib;
+ %local.title.attrib;
+>
+<!ENTITY % local.titleabbrev.attrib "">
+<!ENTITY % titleabbrev.role.attrib "%role.attrib;">
+<!ELEMENT titleabbrev (%title.char.mix;)*>
+<!ATTLIST titleabbrev
+ %common.attrib;
+ %titleabbrev.role.attrib;
+ %local.titleabbrev.attrib;
+>
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!ATTLIST subtitle
+ %common.attrib;
+ %subtitle.role.attrib;
+ %local.subtitle.attrib;
+>
+<!ENTITY % local.artheader.attrib "">
+<!ENTITY % artheader.role.attrib "%role.attrib;">
+<!ATTLIST artheader
+ %common.attrib;
+ %artheader.role.attrib;
+ %local.artheader.attrib;
+>
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!ATTLIST bibliomset
+ relation CDATA #IMPLIED
+ %bibliomset.role.attrib;
+ %common.attrib;
+ %local.bibliomset.attrib;
+>
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!ATTLIST bibliomisc
+ %common.attrib;
+ %bibliomisc.role.attrib;
+ %local.bibliomisc.attrib;
+>
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+<!ELEMENT subjectset (subject+)>
+<!ATTLIST subjectset
+ scheme NMTOKEN #IMPLIED
+ %common.attrib;
+ %subjectset.role.attrib;
+ %local.subjectset.attrib;
+>
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+<!ELEMENT subject (subjectterm+)>
+<!ATTLIST subject
+ weight CDATA #IMPLIED
+ %common.attrib;
+ %subject.role.attrib;
+ %local.subject.attrib;
+>
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+<!ELEMENT subjectterm (#PCDATA)>
+<!ATTLIST subjectterm
+ %common.attrib;
+ %subjectterm.role.attrib;
+ %local.subjectterm.attrib;
+>
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+<!ELEMENT keywordset (keyword+)>
+<!ATTLIST keywordset
+ %common.attrib;
+ %keywordset.role.attrib;
+ %local.keywordset.attrib;
+>
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+<!ELEMENT keyword (#PCDATA)>
+<!ATTLIST keyword
+ %common.attrib;
+ %keyword.role.attrib;
+ %local.keyword.attrib;
+>
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+<!ELEMENT sidebar ((%formalobject.title.content;)?, (%sidebar.mix;)+)>
+<!ATTLIST sidebar
+ %common.attrib;
+ %sidebar.role.attrib;
+ %local.sidebar.attrib;
+>
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!ATTLIST abstract
+ %common.attrib;
+ %abstract.role.attrib;
+ %local.abstract.attrib;
+>
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!ATTLIST authorblurb
+ %common.attrib;
+ %authorblurb.role.attrib;
+ %local.authorblurb.attrib;
+>
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!ATTLIST blockquote
+ %common.attrib;
+ %blockquote.role.attrib;
+ %local.blockquote.attrib;
+>
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+<!ELEMENT attribution (%para.char.mix;)*>
+<!ATTLIST attribution
+ %common.attrib;
+ %attribution.role.attrib;
+ %local.attribution.attrib;
+>
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!ATTLIST epigraph
+ %common.attrib;
+ %epigraph.role.attrib;
+ %local.epigraph.attrib;
+>
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!ATTLIST footnote
+ %label.attrib;
+ %common.attrib;
+ %footnote.role.attrib;
+ %local.footnote.attrib;
+>
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+<!ATTLIST para
+ %common.attrib;
+ %para.role.attrib;
+ %local.para.attrib;
+>
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!ATTLIST note
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+<!ELEMENT itemizedlist (listitem+)>
+<!ATTLIST itemizedlist spacing (normal
+ |compact) #IMPLIED
+ %mark.attrib;
+ %common.attrib;
+ %itemizedlist.role.attrib;
+ %local.itemizedlist.attrib;
+>
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+<!ELEMENT orderedlist (listitem+)>
+<!ATTLIST orderedlist
+ numeration (arabic
+ |upperalpha
+ |loweralpha
+ |upperroman
+ |lowerroman) #IMPLIED
+ inheritnum (inherit
+ |ignore) "ignore"
+ continuation (continues
+ |restarts) "restarts"
+ spacing (normal
+ |compact) #IMPLIED
+ %common.attrib;
+ %orderedlist.role.attrib;
+ %local.orderedlist.attrib;
+>
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+<!ELEMENT listitem ((%component.mix;)+)>
+<!ATTLIST listitem
+ override CDATA #IMPLIED
+ %common.attrib;
+ %listitem.role.attrib;
+ %local.listitem.attrib;
+>
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!ATTLIST variablelist
+ termlength CDATA #IMPLIED
+ %common.attrib;
+ %variablelist.role.attrib;
+ %local.variablelist.attrib;
+>
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+<!ELEMENT varlistentry (term+, listitem)>
+<!ATTLIST varlistentry
+ %common.attrib;
+ %varlistentry.role.attrib;
+ %local.varlistentry.attrib;
+>
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+<!ELEMENT term (%para.char.mix;)*>
+<!ATTLIST term
+ %common.attrib;
+ %term.role.attrib;
+ %local.term.attrib;
+>
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!ATTLIST example
+ %label.attrib;
+ %width.attrib;
+ %common.attrib;
+ %example.role.attrib;
+ %local.example.attrib;
+>
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+<!ELEMENT programlisting (%programlisting.content;)*>
+<!ATTLIST programlisting
+ %width.attrib;
+ %linespecific.attrib;
+ %common.attrib;
+ %programlisting.role.attrib;
+ %local.programlisting.attrib;
+>
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+<!ELEMENT literallayout (%para.char.mix; | lineannotation)*>
+<!ATTLIST literallayout
+ %width.attrib;
+ %linespecific.attrib;
+ class (monospaced|normal) "normal"
+ %common.attrib;
+ %literallayout.role.attrib;
+ %local.literallayout.attrib;
+>
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+ %link.char.class;)+)>
+<!ATTLIST figure
+ float %yesorno.attvals; '0'
+ pgwide %yesorno.attvals; #IMPLIED
+ %label.attrib;
+ %common.attrib;
+ %figure.role.attrib;
+ %local.figure.attrib;
+>
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+<!ELEMENT mediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*,
+ caption?)>
+<!ATTLIST mediaobject
+ %common.attrib;
+ %mediaobject.role.attrib;
+ %local.mediaobject.attrib;
+>
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+<!ELEMENT inlinemediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*)>
+<!ATTLIST inlinemediaobject
+ %common.attrib;
+ %inlinemediaobject.role.attrib;
+ %local.inlinemediaobject.attrib;
+>
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!ATTLIST videoobject
+ %common.attrib;
+ %videoobject.role.attrib;
+ %local.videoobject.attrib;
+>
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!ATTLIST audioobject
+ %common.attrib;
+ %audioobject.role.attrib;
+ %local.audioobject.attrib;
+>
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!ATTLIST imageobject
+ %common.attrib;
+ %imageobject.role.attrib;
+ %local.imageobject.attrib;
+>
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!ATTLIST textobject
+ %common.attrib;
+ %textobject.role.attrib;
+ %local.textobject.attrib;
+>
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+<!ATTLIST objectinfo
+ %common.attrib;
+ %objectinfo.role.attrib;
+ %local.objectinfo.attrib;
+>
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+ "
+ entityref ENTITY #IMPLIED
+ fileref CDATA #IMPLIED
+ format (%notation.class;)
+ #IMPLIED
+ srccredit CDATA #IMPLIED
+ %local.objectdata.attrib;"
+>
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+<!ELEMENT videodata EMPTY>
+<!ATTLIST videodata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %videodata.role.attrib;
+ %local.videodata.attrib;
+>
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+<!ELEMENT audiodata EMPTY>
+<!ATTLIST audiodata
+ %common.attrib;
+ %objectdata.attrib;
+ %local.audiodata.attrib;
+ %audiodata.role.attrib;
+>
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+<!ELEMENT imagedata EMPTY>
+<!ATTLIST imagedata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %local.imagedata.attrib;
+ %imagedata.role.attrib;
+>
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+<!ELEMENT caption (%textobject.mix;)*>
+<!ATTLIST caption
+ %common.attrib;
+ %local.caption.attrib;
+ %caption.role.attrib;
+>
+<!ENTITY % tables.role.attrib "%role.attrib;">
+<!ENTITY % bodyatt
+ "%common.attrib;
+ %label.attrib;
+ %tables.role.attrib;">
+<!ENTITY % common.table.attribs
+ "%bodyatt;">
+<!ENTITY % tbl.tgroup.att "%common.attrib;">
+<!ENTITY % tbl.colspec.att "%common.attrib;">
+<!ENTITY % tbl.tbody.att "%common.attrib;">
+<!ENTITY % tbl.thead.att "%common.attrib;">
+<!ENTITY % tbl.row.att "%common.attrib;">
+<!ENTITY % tbl.entry.att "%common.attrib;">
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+<!ENTITY % yesorno 'NMTOKEN'>
+<!ENTITY % titles 'title?'>
+<!ENTITY % tbl.table.name "table">
+<!ENTITY % tbl.table.att "
+ pgwide %yesorno; #IMPLIED ">
+<!ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody">
+<!ENTITY % tbl.row.mdl "entry+">
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+<!ATTLIST %tbl.table.name;
+ frame (top|bottom|topbot|all|sides|none) #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ %tbl.table.att;
+ %bodyatt;
+>
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+<!ATTLIST tgroup
+ cols NMTOKEN #REQUIRED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ %tbl.tgroup.att;
+>
+<!ELEMENT colspec EMPTY >
+<!ATTLIST colspec
+ colnum NMTOKEN #IMPLIED
+ colname NMTOKEN #IMPLIED
+ colwidth CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ %tbl.colspec.att;
+>
+<!ELEMENT thead (row+)>
+<!ATTLIST thead
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.thead.att;
+>
+<!ELEMENT tbody (row+)>
+<!ATTLIST tbody
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.tbody.att;
+>
+<!ELEMENT row (%tbl.row.mdl;)>
+<!ATTLIST row
+ rowsep %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.row.att;
+>
+<!ELEMENT entry %tbl.entry.mdl;>
+<!ATTLIST entry
+ colname NMTOKEN #IMPLIED
+ namest NMTOKEN #IMPLIED
+ nameend NMTOKEN #IMPLIED
+ morerows NMTOKEN #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.entry.att;
+>
+<!ENTITY % local.informaltable.attrib "">
+<!ATTLIST informaltable
+ frame (top
+ |bottom
+ |topbot
+ |all
+ |sides
+ |none) #IMPLIED
+ colsep %yesorno.attvals; #IMPLIED
+ rowsep %yesorno.attvals; #IMPLIED
+ %common.table.attribs;
+ %tbl.table.att;
+ %local.informaltable.attrib;
+>
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+<!ATTLIST affiliation
+ %common.attrib;
+ %affiliation.role.attrib;
+ %local.affiliation.attrib;
+>
+<!ENTITY % local.jobtitle.attrib "">
+<!ENTITY % jobtitle.role.attrib "%role.attrib;">
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!ATTLIST jobtitle
+ %common.attrib;
+ %jobtitle.role.attrib;
+ %local.jobtitle.attrib;
+>
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!ATTLIST author
+ %common.attrib;
+ %author.role.attrib;
+ %local.author.attrib;
+>
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+<!ATTLIST authorgroup
+ %common.attrib;
+ %authorgroup.role.attrib;
+ %local.authorgroup.attrib;
+>
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!ATTLIST authorinitials
+ %common.attrib;
+ %authorinitials.role.attrib;
+ %local.authorinitials.attrib;
+>
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+<!ELEMENT copyright (year+, holder*)>
+<!ATTLIST copyright
+ %common.attrib;
+ %copyright.role.attrib;
+ %local.copyright.attrib;
+>
+<!ENTITY % local.year.attrib "">
+<!ENTITY % year.role.attrib "%role.attrib;">
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!ATTLIST year
+ %common.attrib;
+ %year.role.attrib;
+ %local.year.attrib;
+>
+<!ENTITY % local.holder.attrib "">
+<!ENTITY % holder.role.attrib "%role.attrib;">
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!ATTLIST holder
+ %common.attrib;
+ %holder.role.attrib;
+ %local.holder.attrib;
+>
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!ATTLIST corpauthor
+ %common.attrib;
+ %corpauthor.role.attrib;
+ %local.corpauthor.attrib;
+>
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!ATTLIST date
+ %common.attrib;
+ %date.role.attrib;
+ %local.date.attrib;
+>
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!ATTLIST edition
+ %common.attrib;
+ %edition.role.attrib;
+ %local.edition.attrib;
+>
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!ATTLIST editor
+ %common.attrib;
+ %editor.role.attrib;
+ %local.editor.attrib;
+>
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!ATTLIST issuenum
+ %common.attrib;
+ %issuenum.role.attrib;
+ %local.issuenum.attrib;
+>
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!ATTLIST legalnotice
+ %common.attrib;
+ %legalnotice.role.attrib;
+ %local.legalnotice.attrib;
+>
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!ATTLIST orgname
+ %common.attrib;
+ %orgname.role.attrib;
+ %local.orgname.attrib;
+>
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!ATTLIST othercredit
+ %common.attrib;
+ %othercredit.role.attrib;
+ %local.othercredit.attrib;
+>
+<!ENTITY % local.firstname.attrib "">
+<!ENTITY % firstname.role.attrib "%role.attrib;">
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!ATTLIST firstname
+ %common.attrib;
+ %firstname.role.attrib;
+ %local.firstname.attrib;
+>
+<!ENTITY % local.honorific.attrib "">
+<!ENTITY % honorific.role.attrib "%role.attrib;">
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!ATTLIST honorific
+ %common.attrib;
+ %honorific.role.attrib;
+ %local.honorific.attrib;
+>
+<!ENTITY % local.lineage.attrib "">
+<!ENTITY % lineage.role.attrib "%role.attrib;">
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!ATTLIST lineage
+ %common.attrib;
+ %lineage.role.attrib;
+ %local.lineage.attrib;
+>
+<!ENTITY % local.othername.attrib "">
+<!ENTITY % othername.role.attrib "%role.attrib;">
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!ATTLIST othername
+ %common.attrib;
+ %othername.role.attrib;
+ %local.othername.attrib;
+>
+<!ENTITY % local.surname.attrib "">
+<!ENTITY % surname.role.attrib "%role.attrib;">
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!ATTLIST surname
+ %common.attrib;
+ %surname.role.attrib;
+ %local.surname.attrib;
+>
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!ATTLIST pubdate
+ %common.attrib;
+ %pubdate.role.attrib;
+ %local.pubdate.attrib;
+>
+<!ENTITY % local.publishername.attrib "">
+<!ENTITY % publishername.role.attrib "%role.attrib;">
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!ATTLIST publishername
+ %common.attrib;
+ %publishername.role.attrib;
+ %local.publishername.attrib;
+>
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!ATTLIST releaseinfo
+ %common.attrib;
+ %releaseinfo.role.attrib;
+ %local.releaseinfo.attrib;
+>
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+<!ELEMENT revhistory (revision+)>
+<!ATTLIST revhistory
+ %common.attrib;
+ %revhistory.role.attrib;
+ %local.revhistory.attrib;
+>
+<!ENTITY % local.revision.attrib "">
+<!ENTITY % revision.role.attrib "%role.attrib;">
+<!ELEMENT revision (revnumber, date, authorinitials*, revremark?)>
+<!ATTLIST revision
+ %common.attrib;
+ %revision.role.attrib;
+ %local.revision.attrib;
+>
+<!ENTITY % local.revnumber.attrib "">
+<!ENTITY % revnumber.role.attrib "%role.attrib;">
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!ATTLIST revnumber
+ %common.attrib;
+ %revnumber.role.attrib;
+ %local.revnumber.attrib;
+>
+<!ENTITY % local.revremark.attrib "">
+<!ENTITY % revremark.role.attrib "%role.attrib;">
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!ATTLIST revremark
+ %common.attrib;
+ %revremark.role.attrib;
+ %local.revremark.attrib;
+>
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!ATTLIST volumenum
+ %common.attrib;
+ %volumenum.role.attrib;
+ %local.volumenum.attrib;
+>
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+<!ELEMENT command (%cptr.char.mix;)*>
+<!ATTLIST command
+ %moreinfo.attrib;
+ %common.attrib;
+ %command.role.attrib;
+ %local.command.attrib;
+>
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!ATTLIST computeroutput
+ %moreinfo.attrib;
+ %common.attrib;
+ %computeroutput.role.attrib;
+ %local.computeroutput.attrib;
+>
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!ATTLIST email
+ %common.attrib;
+ %email.role.attrib;
+ %local.email.attrib;
+>
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+<!ELEMENT filename (%cptr.char.mix;)*>
+<!ATTLIST filename
+ class (headerfile
+ |symlink
+ |directory) #IMPLIED
+ path CDATA #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %filename.role.attrib;
+ %local.filename.attrib;
+>
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!ATTLIST lineannotation
+ %common.attrib;
+ %lineannotation.role.attrib;
+ %local.lineannotation.attrib;
+>
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!ATTLIST literal
+ %moreinfo.attrib;
+ %common.attrib;
+ %literal.role.attrib;
+ %local.literal.attrib;
+>
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+<!ELEMENT option (%cptr.char.mix;)*>
+<!ATTLIST option
+ %common.attrib;
+ %option.role.attrib;
+ %local.option.attrib;
+>
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+<!ATTLIST replaceable
+ class (command
+ |function
+ |option
+ |parameter) #IMPLIED
+ %common.attrib;
+ %replaceable.role.attrib;
+ %local.replaceable.attrib;
+>
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+<!ATTLIST systemitem
+ class (constant
+ |environvar
+ |macro
+ |osname
+ |prompt
+ |resource
+ |systemname) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %systemitem.role.attrib;
+ %local.systemitem.attrib;
+>
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!ATTLIST userinput
+ %moreinfo.attrib;
+ %common.attrib;
+ %userinput.role.attrib;
+ %local.userinput.attrib;
+>
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!ATTLIST abbrev
+ %common.attrib;
+ %abbrev.role.attrib;
+ %local.abbrev.attrib;
+>
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+<!ELEMENT acronym (%word.char.mix;)*>
+<!ATTLIST acronym
+ %common.attrib;
+ %acronym.role.attrib;
+ %local.acronym.attrib;
+>
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!ATTLIST citetitle
+ pubwork (article
+ |book
+ |chapter
+ |part
+ |refentry
+ |section
+ |journal
+ |series
+ |set
+ |manuscript) #IMPLIED
+ %common.attrib;
+ %citetitle.role.attrib;
+ %local.citetitle.attrib;
+>
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!ATTLIST emphasis
+ %common.attrib;
+ %emphasis.role.attrib;
+ %local.emphasis.attrib;
+>
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+<!ELEMENT phrase (%para.char.mix;)*>
+<!ATTLIST phrase
+ %common.attrib;
+ %phrase.role.attrib;
+ %local.phrase.attrib;
+>
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+<!ELEMENT quote (%para.char.mix;)*>
+<!ATTLIST quote
+ %common.attrib;
+ %quote.role.attrib;
+ %local.quote.attrib;
+>
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+<!ATTLIST trademark
+ class (service
+ |trade
+ |registered
+ |copyright) 'trade'
+ %common.attrib;
+ %trademark.role.attrib;
+ %local.trademark.attrib;
+>
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+<!ELEMENT link (%para.char.mix;)*>
+<!ATTLIST link
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; type CDATA #IMPLIED
+ %common.attrib;
+ %link.role.attrib;
+ %local.link.attrib;
+>
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+<!ELEMENT ulink (%para.char.mix;)*>
+<!ATTLIST ulink
+ url CDATA #REQUIRED
+ type CDATA #IMPLIED
+ %common.attrib;
+ %ulink.role.attrib;
+ %local.ulink.attrib;
+>
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+<!ELEMENT xref EMPTY>
+<!ATTLIST xref
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; %common.attrib;
+ %xref.role.attrib;
+ %local.xref.attrib;
+>
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class "appendix %local.appendix.class;">
+<!ENTITY % local.article.class "">
+<!ENTITY % article.class "article %local.article.class;">
+<!ENTITY % local.book.class "">
+<!ENTITY % local.chapter.class "">
+<!ENTITY % chapter.class "chapter %local.chapter.class;">
+<!ENTITY % local.index.class "">
+<!ENTITY % local.refentry.class "">
+<!ENTITY % refentry.class "refentry %local.refentry.class;">
+<!ENTITY % local.nav.class "">
+<!ENTITY % nav.class "toc|lot|index|glossary|bibliography
+ %local.nav.class;">
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % local.indexdivcomponent.mix "">
+<!ENTITY % local.refname.char.mix "">
+<!ENTITY % local.partcontent.mix "">
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+<!ATTLIST appendix
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %appendix.role.attrib;
+ %local.appendix.attrib;
+>
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+<!ATTLIST section
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %section.role.attrib;
+ %local.section.attrib;
+>
+<!ENTITY % sectioninfo.role.attrib "%role.attrib;">
+<!ENTITY % local.sectioninfo.attrib "">
+<!ATTLIST sectioninfo
+ %common.attrib;
+ %sectioninfo.role.attrib;
+ %local.sectioninfo.attrib;
+>
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+<!ELEMENT docinfo ((mediaobject
+ | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT objectinfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT section (sectioninfo?,
+ (%sect.title.content;),
+ (((%divcomponent.mix;)+, section*)
+ | section+))>
+<!ELEMENT sectioninfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT authorgroup ((author|editor|corpauthor|othercredit)+)>
+<!ELEMENT affiliation (jobtitle?, orgname?)>
+<!ELEMENT para (%para.char.mix;)*>
+<!ELEMENT informaltable (mediaobject+|tgroup+) >
+<!ELEMENT replaceable (#PCDATA
+ | %link.char.class;
+ | inlinemediaobject)*>
+<!ELEMENT trademark (#PCDATA
+ | %link.char.class;
+ | %tech.char.class;
+ | inlinemediaobject
+ | emphasis)*>
+<!ELEMENT systemitem (%cptr.char.mix;)*>
+<!ELEMENT article ((%div.title.content;)?, artheader?,
+ (%bookcomponent.content;),
+ (%appendix.class;)*)>
+<!ATTLIST article
+ class (journalarticle
+ |productsheet
+ |whitepaper
+ |techreport
+ |faq) #IMPLIED
+ %status.attrib;
+ %common.attrib;
+ %article.role.attrib;
+ %local.article.attrib;
+>
+<!ELEMENT artheader (mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+>
+<!ELEMENT appendix ((%bookcomponent.title.content;),
+ (%bookcomponent.content;))>
diff --git a/tests/docbook/dtd/simple/3.1.7.1/sdocbookref-custom.dtd b/tests/docbook/dtd/simple/3.1.7.1/sdocbookref-custom.dtd
new file mode 100644
index 00000000..257fc203
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/sdocbookref-custom.dtd
@@ -0,0 +1,22 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML RefEntry V3.1.7.1 DTD
+ Copyright (C) 1999 Norman Walsh
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % include.refentry "INCLUDE">
+
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % refclass.char.mix
+ "#PCDATA
+ %local.refclass.char.mix;">
+
+<!ENTITY % sdocbook-custom.dtd SYSTEM "sdocbook-custom.dtd">
+%sdocbook-custom.dtd;
+
diff --git a/tests/docbook/dtd/simple/3.1.7.1/sdocbookref.dtd b/tests/docbook/dtd/simple/3.1.7.1/sdocbookref.dtd
new file mode 100644
index 00000000..027c01e5
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/sdocbookref.dtd
@@ -0,0 +1,1460 @@
+<!-- *********************************************************************
+ *** THIS IS THE FLATTENED DTD. DO NOT EDIT THIS DTD BY HAND, EDIT ***
+ *** THE CUSTOMIZATION LAYER AND REGNERATE THE FLATTENED DTD! ********
+ ********************************************************************* -->
+
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML RefEntry V3.1.7.1 DTD
+ Copyright (C) 1999 Norman Walsh
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % refclass.char.mix
+ "#PCDATA
+ %local.refclass.char.mix;">
+<!ENTITY % formalobject.title.content "title">
+<!ENTITY % div.title.content "title, subtitle?">
+<!ENTITY % bookcomponent.title.content
+ "docinfo?, title, subtitle?">
+<!ENTITY % sect.title.content
+ "title, subtitle?">
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+ "itemizedlist|orderedlist
+ |variablelist %local.list.class;">
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+ "note %local.admon.class;">
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+ "literallayout|programlisting %local.linespecific.class;">
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+ "para %local.para.class;">
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+ "blockquote
+ |mediaobject
+ |informaltable %local.informal.class;">
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+ "example|figure|table %local.formal.class;">
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+ "sidebar %local.compound.class;">
+<!ENTITY % local.genobj.class "">
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+ "abstract|authorblurb|epigraph
+ %local.descobj.class;">
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+ "abbrev|acronym|citetitle|emphasis|footnote|phrase
+ |quote|trademark %local.gen.char.class;">
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+ "xref|link|ulink %local.link.char.class;">
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+ "command|computeroutput
+ |email|filename
+ |literal
+ |option
+ |replaceable
+ |systemitem|userinput
+ %local.tech.char.class;">
+<!ENTITY % local.base.char.class "">
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+ "author|corpauthor|othercredit
+ |revhistory
+ %local.docinfo.char.class;">
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+ "inlinemediaobject %local.inlineobj.char.class;">
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % local.common.attrib "">
+<!ENTITY % common.attrib
+ "id ID #IMPLIED
+ %local.common.attrib;"
+>
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+ "honorific|firstname|surname|lineage|othername|affiliation
+ |authorblurb
+ %local.person.ident.mix;">
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+ "abbrev|abstract|author
+ |authorgroup|bibliomisc
+ |copyright|corpauthor|date|edition
+ |editor|issuenum
+ |othercredit
+ |pubdate|publishername
+ |releaseinfo|revhistory
+ |subtitle|title|volumenum|citetitle
+ |%person.ident.mix;
+ %local.bibliocomponent.mix;">
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.component.mix;">
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.sidebar.mix;">
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ %local.footnote.mix;">
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ %local.example.mix;">
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % local.para.mix "">
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.admon.mix;">
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+ "%linespecific.class;
+ |%informal.class;
+ %local.figure.mix;">
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |mediaobject
+ %local.tabentry.mix;">
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.legalnotice.mix;">
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.textobject.mix;">
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%inlineobj.char.class;
+ %local.para.char.mix;">
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%docinfo.char.class;
+ |%inlineobj.char.class;
+ %local.title.char.mix;">
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+ "#PCDATA
+ |%link.char.class; |%tech.char.class;
+ |inlinemediaobject
+ %local.cptr.char.mix;">
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+ "#PCDATA
+ |acronym|emphasis|trademark
+ |%link.char.class;
+ |inlinemediaobject
+ %local.word.char.mix;">
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+ "#PCDATA
+ |%link.char.class;
+ |emphasis|trademark
+ |replaceable
+ |inlinemediaobject
+ %local.docinfo.char.mix;">
+<!ENTITY % tbl.table.mdl
+ "(title, titleabbrev?, (mediaobject+|tgroup+))">
+<!ENTITY % programlisting.content "%para.char.mix; | lineannotation">
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.divcomponent.mix;">
+<!ENTITY % bookcomponent.content
+ "((%divcomponent.mix;)+, section*)
+ | section+">
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ %local.refinline.char.mix;">
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.divcomponent.mix;">
+<!ELEMENT refentry (docinfo?, refmeta?, (%link.char.class;)*,
+ refnamediv, refsynopsisdiv?, refsect1+)>
+<!ELEMENT refmeta (refentrytitle, manvolnum?, refmiscinfo*)>
+<!ELEMENT refsect1info ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refsect2info ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refsect3info ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refsynopsisdivinfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+ (%link.char.class;)*)>
+
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+ "BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+ | EPS | EQN | FAX | GIF | GIF87a | GIF89a
+ | JPG | JPEG | IGES | PCX
+ | PIC | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+ | linespecific
+ %local.notation.class;">
+<!NOTATION BMP PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF SYSTEM "DITROFF">
+<!NOTATION DVI SYSTEM "DVI">
+<!NOTATION EPS PUBLIC
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN SYSTEM "EQN">
+<!NOTATION FAX PUBLIC
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF SYSTEM "GIF">
+<!NOTATION GIF87a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+<!NOTATION GIF89a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG SYSTEM "JPG">
+<!NOTATION JPEG SYSTEM "JPG">
+<!NOTATION IGES PUBLIC
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC SYSTEM "PIC">
+<!NOTATION PS SYSTEM "PS">
+<!NOTATION SGML PUBLIC
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL SYSTEM "TBL">
+<!NOTATION TEX PUBLIC
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF SYSTEM "TIFF">
+<!NOTATION WMF PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG SYSTEM "WPG">
+<!NOTATION linespecific SYSTEM "linespecific">
+<!ENTITY % yesorno.attvals "CDATA">
+<!ENTITY % local.ndxterm.class "">
+<!ENTITY % local.synop.class "">
+<!ENTITY % synop.class
+ "synopsis|cmdsynopsis|funcsynopsis %local.synop.class;">
+<!ENTITY % local.other.char.class "">
+<!ENTITY % other.char.class
+ "comment|subscript|superscript %local.other.char.class;">
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix
+ "videoobject|audioobject|imageobject %local.mediaobject.mix;">
+<!ENTITY % local.ndxterm.char.mix "">
+<!ENTITY % role.attrib
+ "role CDATA #IMPLIED">
+<!ENTITY % local.graphics.attrib "">
+<!ENTITY % local.keyaction.attrib "">
+<!ENTITY % label.attrib
+ "label CDATA #IMPLIED">
+<!ENTITY % linespecific.attrib
+ "format NOTATION
+ (linespecific) 'linespecific'">
+<!ENTITY % linkendreq.attrib
+ "linkend IDREF #REQUIRED">
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+ "mark CDATA #IMPLIED
+ %local.mark.attrib;"
+>
+<!ENTITY % moreinfo.attrib
+ "moreinfo (refentry|none) 'none'">
+<!ENTITY % pagenum.attrib
+ "pagenum CDATA #IMPLIED">
+<!ENTITY % local.status.attrib "">
+<!ENTITY % status.attrib
+ "status CDATA #IMPLIED
+ %local.status.attrib;"
+>
+<!ENTITY % width.attrib
+ "width CDATA #IMPLIED">
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+<!ELEMENT title (%title.char.mix;)*>
+<!ATTLIST title
+ %pagenum.attrib;
+ %common.attrib;
+ %title.role.attrib;
+ %local.title.attrib;
+>
+<!ENTITY % local.titleabbrev.attrib "">
+<!ENTITY % titleabbrev.role.attrib "%role.attrib;">
+<!ELEMENT titleabbrev (%title.char.mix;)*>
+<!ATTLIST titleabbrev
+ %common.attrib;
+ %titleabbrev.role.attrib;
+ %local.titleabbrev.attrib;
+>
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!ATTLIST subtitle
+ %common.attrib;
+ %subtitle.role.attrib;
+ %local.subtitle.attrib;
+>
+<!ENTITY % local.artheader.attrib "">
+<!ENTITY % artheader.role.attrib "%role.attrib;">
+<!ATTLIST artheader
+ %common.attrib;
+ %artheader.role.attrib;
+ %local.artheader.attrib;
+>
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!ATTLIST bibliomset
+ relation CDATA #IMPLIED
+ %bibliomset.role.attrib;
+ %common.attrib;
+ %local.bibliomset.attrib;
+>
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!ATTLIST bibliomisc
+ %common.attrib;
+ %bibliomisc.role.attrib;
+ %local.bibliomisc.attrib;
+>
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+<!ELEMENT subjectset (subject+)>
+<!ATTLIST subjectset
+ scheme NMTOKEN #IMPLIED
+ %common.attrib;
+ %subjectset.role.attrib;
+ %local.subjectset.attrib;
+>
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+<!ELEMENT subject (subjectterm+)>
+<!ATTLIST subject
+ weight CDATA #IMPLIED
+ %common.attrib;
+ %subject.role.attrib;
+ %local.subject.attrib;
+>
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+<!ELEMENT subjectterm (#PCDATA)>
+<!ATTLIST subjectterm
+ %common.attrib;
+ %subjectterm.role.attrib;
+ %local.subjectterm.attrib;
+>
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+<!ELEMENT keywordset (keyword+)>
+<!ATTLIST keywordset
+ %common.attrib;
+ %keywordset.role.attrib;
+ %local.keywordset.attrib;
+>
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+<!ELEMENT keyword (#PCDATA)>
+<!ATTLIST keyword
+ %common.attrib;
+ %keyword.role.attrib;
+ %local.keyword.attrib;
+>
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+<!ELEMENT sidebar ((%formalobject.title.content;)?, (%sidebar.mix;)+)>
+<!ATTLIST sidebar
+ %common.attrib;
+ %sidebar.role.attrib;
+ %local.sidebar.attrib;
+>
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!ATTLIST abstract
+ %common.attrib;
+ %abstract.role.attrib;
+ %local.abstract.attrib;
+>
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!ATTLIST authorblurb
+ %common.attrib;
+ %authorblurb.role.attrib;
+ %local.authorblurb.attrib;
+>
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!ATTLIST blockquote
+ %common.attrib;
+ %blockquote.role.attrib;
+ %local.blockquote.attrib;
+>
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+<!ELEMENT attribution (%para.char.mix;)*>
+<!ATTLIST attribution
+ %common.attrib;
+ %attribution.role.attrib;
+ %local.attribution.attrib;
+>
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!ATTLIST epigraph
+ %common.attrib;
+ %epigraph.role.attrib;
+ %local.epigraph.attrib;
+>
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!ATTLIST footnote
+ %label.attrib;
+ %common.attrib;
+ %footnote.role.attrib;
+ %local.footnote.attrib;
+>
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+<!ATTLIST para
+ %common.attrib;
+ %para.role.attrib;
+ %local.para.attrib;
+>
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!ATTLIST note
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+<!ELEMENT itemizedlist (listitem+)>
+<!ATTLIST itemizedlist spacing (normal
+ |compact) #IMPLIED
+ %mark.attrib;
+ %common.attrib;
+ %itemizedlist.role.attrib;
+ %local.itemizedlist.attrib;
+>
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+<!ELEMENT orderedlist (listitem+)>
+<!ATTLIST orderedlist
+ numeration (arabic
+ |upperalpha
+ |loweralpha
+ |upperroman
+ |lowerroman) #IMPLIED
+ inheritnum (inherit
+ |ignore) "ignore"
+ continuation (continues
+ |restarts) "restarts"
+ spacing (normal
+ |compact) #IMPLIED
+ %common.attrib;
+ %orderedlist.role.attrib;
+ %local.orderedlist.attrib;
+>
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+<!ELEMENT listitem ((%component.mix;)+)>
+<!ATTLIST listitem
+ override CDATA #IMPLIED
+ %common.attrib;
+ %listitem.role.attrib;
+ %local.listitem.attrib;
+>
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!ATTLIST variablelist
+ termlength CDATA #IMPLIED
+ %common.attrib;
+ %variablelist.role.attrib;
+ %local.variablelist.attrib;
+>
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+<!ELEMENT varlistentry (term+, listitem)>
+<!ATTLIST varlistentry
+ %common.attrib;
+ %varlistentry.role.attrib;
+ %local.varlistentry.attrib;
+>
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+<!ELEMENT term (%para.char.mix;)*>
+<!ATTLIST term
+ %common.attrib;
+ %term.role.attrib;
+ %local.term.attrib;
+>
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!ATTLIST example
+ %label.attrib;
+ %width.attrib;
+ %common.attrib;
+ %example.role.attrib;
+ %local.example.attrib;
+>
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+<!ELEMENT programlisting (%programlisting.content;)*>
+<!ATTLIST programlisting
+ %width.attrib;
+ %linespecific.attrib;
+ %common.attrib;
+ %programlisting.role.attrib;
+ %local.programlisting.attrib;
+>
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+<!ELEMENT literallayout (%para.char.mix; | lineannotation)*>
+<!ATTLIST literallayout
+ %width.attrib;
+ %linespecific.attrib;
+ class (monospaced|normal) "normal"
+ %common.attrib;
+ %literallayout.role.attrib;
+ %local.literallayout.attrib;
+>
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+ %link.char.class;)+)>
+<!ATTLIST figure
+ float %yesorno.attvals; '0'
+ pgwide %yesorno.attvals; #IMPLIED
+ %label.attrib;
+ %common.attrib;
+ %figure.role.attrib;
+ %local.figure.attrib;
+>
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+<!ELEMENT mediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*,
+ caption?)>
+<!ATTLIST mediaobject
+ %common.attrib;
+ %mediaobject.role.attrib;
+ %local.mediaobject.attrib;
+>
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+<!ELEMENT inlinemediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*)>
+<!ATTLIST inlinemediaobject
+ %common.attrib;
+ %inlinemediaobject.role.attrib;
+ %local.inlinemediaobject.attrib;
+>
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!ATTLIST videoobject
+ %common.attrib;
+ %videoobject.role.attrib;
+ %local.videoobject.attrib;
+>
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!ATTLIST audioobject
+ %common.attrib;
+ %audioobject.role.attrib;
+ %local.audioobject.attrib;
+>
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!ATTLIST imageobject
+ %common.attrib;
+ %imageobject.role.attrib;
+ %local.imageobject.attrib;
+>
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!ATTLIST textobject
+ %common.attrib;
+ %textobject.role.attrib;
+ %local.textobject.attrib;
+>
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+<!ATTLIST objectinfo
+ %common.attrib;
+ %objectinfo.role.attrib;
+ %local.objectinfo.attrib;
+>
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+ "
+ entityref ENTITY #IMPLIED
+ fileref CDATA #IMPLIED
+ format (%notation.class;)
+ #IMPLIED
+ srccredit CDATA #IMPLIED
+ %local.objectdata.attrib;"
+>
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+<!ELEMENT videodata EMPTY>
+<!ATTLIST videodata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %videodata.role.attrib;
+ %local.videodata.attrib;
+>
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+<!ELEMENT audiodata EMPTY>
+<!ATTLIST audiodata
+ %common.attrib;
+ %objectdata.attrib;
+ %local.audiodata.attrib;
+ %audiodata.role.attrib;
+>
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+<!ELEMENT imagedata EMPTY>
+<!ATTLIST imagedata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %local.imagedata.attrib;
+ %imagedata.role.attrib;
+>
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+<!ELEMENT caption (%textobject.mix;)*>
+<!ATTLIST caption
+ %common.attrib;
+ %local.caption.attrib;
+ %caption.role.attrib;
+>
+<!ENTITY % tables.role.attrib "%role.attrib;">
+<!ENTITY % bodyatt
+ "%common.attrib;
+ %label.attrib;
+ %tables.role.attrib;">
+<!ENTITY % common.table.attribs
+ "%bodyatt;">
+<!ENTITY % tbl.tgroup.att "%common.attrib;">
+<!ENTITY % tbl.colspec.att "%common.attrib;">
+<!ENTITY % tbl.tbody.att "%common.attrib;">
+<!ENTITY % tbl.thead.att "%common.attrib;">
+<!ENTITY % tbl.row.att "%common.attrib;">
+<!ENTITY % tbl.entry.att "%common.attrib;">
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+<!ENTITY % yesorno 'NMTOKEN'>
+<!ENTITY % titles 'title?'>
+<!ENTITY % tbl.table.name "table">
+<!ENTITY % tbl.table.att "
+ pgwide %yesorno; #IMPLIED ">
+<!ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody">
+<!ENTITY % tbl.row.mdl "entry+">
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+<!ATTLIST %tbl.table.name;
+ frame (top|bottom|topbot|all|sides|none) #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ %tbl.table.att;
+ %bodyatt;
+>
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+<!ATTLIST tgroup
+ cols NMTOKEN #REQUIRED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ %tbl.tgroup.att;
+>
+<!ELEMENT colspec EMPTY >
+<!ATTLIST colspec
+ colnum NMTOKEN #IMPLIED
+ colname NMTOKEN #IMPLIED
+ colwidth CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ %tbl.colspec.att;
+>
+<!ELEMENT thead (row+)>
+<!ATTLIST thead
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.thead.att;
+>
+<!ELEMENT tbody (row+)>
+<!ATTLIST tbody
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.tbody.att;
+>
+<!ELEMENT row (%tbl.row.mdl;)>
+<!ATTLIST row
+ rowsep %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.row.att;
+>
+<!ELEMENT entry %tbl.entry.mdl;>
+<!ATTLIST entry
+ colname NMTOKEN #IMPLIED
+ namest NMTOKEN #IMPLIED
+ nameend NMTOKEN #IMPLIED
+ morerows NMTOKEN #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.entry.att;
+>
+<!ENTITY % local.informaltable.attrib "">
+<!ATTLIST informaltable
+ frame (top
+ |bottom
+ |topbot
+ |all
+ |sides
+ |none) #IMPLIED
+ colsep %yesorno.attvals; #IMPLIED
+ rowsep %yesorno.attvals; #IMPLIED
+ %common.table.attribs;
+ %tbl.table.att;
+ %local.informaltable.attrib;
+>
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+<!ATTLIST affiliation
+ %common.attrib;
+ %affiliation.role.attrib;
+ %local.affiliation.attrib;
+>
+<!ENTITY % local.jobtitle.attrib "">
+<!ENTITY % jobtitle.role.attrib "%role.attrib;">
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!ATTLIST jobtitle
+ %common.attrib;
+ %jobtitle.role.attrib;
+ %local.jobtitle.attrib;
+>
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!ATTLIST author
+ %common.attrib;
+ %author.role.attrib;
+ %local.author.attrib;
+>
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+<!ATTLIST authorgroup
+ %common.attrib;
+ %authorgroup.role.attrib;
+ %local.authorgroup.attrib;
+>
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!ATTLIST authorinitials
+ %common.attrib;
+ %authorinitials.role.attrib;
+ %local.authorinitials.attrib;
+>
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+<!ELEMENT copyright (year+, holder*)>
+<!ATTLIST copyright
+ %common.attrib;
+ %copyright.role.attrib;
+ %local.copyright.attrib;
+>
+<!ENTITY % local.year.attrib "">
+<!ENTITY % year.role.attrib "%role.attrib;">
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!ATTLIST year
+ %common.attrib;
+ %year.role.attrib;
+ %local.year.attrib;
+>
+<!ENTITY % local.holder.attrib "">
+<!ENTITY % holder.role.attrib "%role.attrib;">
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!ATTLIST holder
+ %common.attrib;
+ %holder.role.attrib;
+ %local.holder.attrib;
+>
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!ATTLIST corpauthor
+ %common.attrib;
+ %corpauthor.role.attrib;
+ %local.corpauthor.attrib;
+>
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!ATTLIST date
+ %common.attrib;
+ %date.role.attrib;
+ %local.date.attrib;
+>
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!ATTLIST edition
+ %common.attrib;
+ %edition.role.attrib;
+ %local.edition.attrib;
+>
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!ATTLIST editor
+ %common.attrib;
+ %editor.role.attrib;
+ %local.editor.attrib;
+>
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!ATTLIST issuenum
+ %common.attrib;
+ %issuenum.role.attrib;
+ %local.issuenum.attrib;
+>
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!ATTLIST legalnotice
+ %common.attrib;
+ %legalnotice.role.attrib;
+ %local.legalnotice.attrib;
+>
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!ATTLIST orgname
+ %common.attrib;
+ %orgname.role.attrib;
+ %local.orgname.attrib;
+>
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!ATTLIST othercredit
+ %common.attrib;
+ %othercredit.role.attrib;
+ %local.othercredit.attrib;
+>
+<!ENTITY % local.firstname.attrib "">
+<!ENTITY % firstname.role.attrib "%role.attrib;">
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!ATTLIST firstname
+ %common.attrib;
+ %firstname.role.attrib;
+ %local.firstname.attrib;
+>
+<!ENTITY % local.honorific.attrib "">
+<!ENTITY % honorific.role.attrib "%role.attrib;">
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!ATTLIST honorific
+ %common.attrib;
+ %honorific.role.attrib;
+ %local.honorific.attrib;
+>
+<!ENTITY % local.lineage.attrib "">
+<!ENTITY % lineage.role.attrib "%role.attrib;">
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!ATTLIST lineage
+ %common.attrib;
+ %lineage.role.attrib;
+ %local.lineage.attrib;
+>
+<!ENTITY % local.othername.attrib "">
+<!ENTITY % othername.role.attrib "%role.attrib;">
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!ATTLIST othername
+ %common.attrib;
+ %othername.role.attrib;
+ %local.othername.attrib;
+>
+<!ENTITY % local.surname.attrib "">
+<!ENTITY % surname.role.attrib "%role.attrib;">
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!ATTLIST surname
+ %common.attrib;
+ %surname.role.attrib;
+ %local.surname.attrib;
+>
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!ATTLIST pubdate
+ %common.attrib;
+ %pubdate.role.attrib;
+ %local.pubdate.attrib;
+>
+<!ENTITY % local.publishername.attrib "">
+<!ENTITY % publishername.role.attrib "%role.attrib;">
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!ATTLIST publishername
+ %common.attrib;
+ %publishername.role.attrib;
+ %local.publishername.attrib;
+>
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!ATTLIST releaseinfo
+ %common.attrib;
+ %releaseinfo.role.attrib;
+ %local.releaseinfo.attrib;
+>
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+<!ELEMENT revhistory (revision+)>
+<!ATTLIST revhistory
+ %common.attrib;
+ %revhistory.role.attrib;
+ %local.revhistory.attrib;
+>
+<!ENTITY % local.revision.attrib "">
+<!ENTITY % revision.role.attrib "%role.attrib;">
+<!ELEMENT revision (revnumber, date, authorinitials*, revremark?)>
+<!ATTLIST revision
+ %common.attrib;
+ %revision.role.attrib;
+ %local.revision.attrib;
+>
+<!ENTITY % local.revnumber.attrib "">
+<!ENTITY % revnumber.role.attrib "%role.attrib;">
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!ATTLIST revnumber
+ %common.attrib;
+ %revnumber.role.attrib;
+ %local.revnumber.attrib;
+>
+<!ENTITY % local.revremark.attrib "">
+<!ENTITY % revremark.role.attrib "%role.attrib;">
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!ATTLIST revremark
+ %common.attrib;
+ %revremark.role.attrib;
+ %local.revremark.attrib;
+>
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!ATTLIST volumenum
+ %common.attrib;
+ %volumenum.role.attrib;
+ %local.volumenum.attrib;
+>
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+<!ELEMENT command (%cptr.char.mix;)*>
+<!ATTLIST command
+ %moreinfo.attrib;
+ %common.attrib;
+ %command.role.attrib;
+ %local.command.attrib;
+>
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!ATTLIST computeroutput
+ %moreinfo.attrib;
+ %common.attrib;
+ %computeroutput.role.attrib;
+ %local.computeroutput.attrib;
+>
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!ATTLIST email
+ %common.attrib;
+ %email.role.attrib;
+ %local.email.attrib;
+>
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+<!ELEMENT filename (%cptr.char.mix;)*>
+<!ATTLIST filename
+ class (headerfile
+ |symlink
+ |directory) #IMPLIED
+ path CDATA #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %filename.role.attrib;
+ %local.filename.attrib;
+>
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!ATTLIST lineannotation
+ %common.attrib;
+ %lineannotation.role.attrib;
+ %local.lineannotation.attrib;
+>
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!ATTLIST literal
+ %moreinfo.attrib;
+ %common.attrib;
+ %literal.role.attrib;
+ %local.literal.attrib;
+>
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+<!ELEMENT option (%cptr.char.mix;)*>
+<!ATTLIST option
+ %common.attrib;
+ %option.role.attrib;
+ %local.option.attrib;
+>
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+<!ATTLIST replaceable
+ class (command
+ |function
+ |option
+ |parameter) #IMPLIED
+ %common.attrib;
+ %replaceable.role.attrib;
+ %local.replaceable.attrib;
+>
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+<!ATTLIST systemitem
+ class (constant
+ |environvar
+ |macro
+ |osname
+ |prompt
+ |resource
+ |systemname) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %systemitem.role.attrib;
+ %local.systemitem.attrib;
+>
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!ATTLIST userinput
+ %moreinfo.attrib;
+ %common.attrib;
+ %userinput.role.attrib;
+ %local.userinput.attrib;
+>
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!ATTLIST abbrev
+ %common.attrib;
+ %abbrev.role.attrib;
+ %local.abbrev.attrib;
+>
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+<!ELEMENT acronym (%word.char.mix;)*>
+<!ATTLIST acronym
+ %common.attrib;
+ %acronym.role.attrib;
+ %local.acronym.attrib;
+>
+<!ENTITY % local.refentrytitle.attrib "">
+<!ENTITY % refentrytitle.role.attrib "%role.attrib;">
+<!ELEMENT refentrytitle (%para.char.mix;)*>
+<!ATTLIST refentrytitle
+ %common.attrib;
+ %refentrytitle.role.attrib;
+ %local.refentrytitle.attrib;
+>
+<!ENTITY % local.manvolnum.attrib "">
+<!ENTITY % namvolnum.role.attrib "%role.attrib;">
+<!ELEMENT manvolnum (%word.char.mix;)*>
+<!ATTLIST manvolnum
+ %common.attrib;
+ %namvolnum.role.attrib;
+ %local.manvolnum.attrib;
+>
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!ATTLIST citetitle
+ pubwork (article
+ |book
+ |chapter
+ |part
+ |refentry
+ |section
+ |journal
+ |series
+ |set
+ |manuscript) #IMPLIED
+ %common.attrib;
+ %citetitle.role.attrib;
+ %local.citetitle.attrib;
+>
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!ATTLIST emphasis
+ %common.attrib;
+ %emphasis.role.attrib;
+ %local.emphasis.attrib;
+>
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+<!ELEMENT phrase (%para.char.mix;)*>
+<!ATTLIST phrase
+ %common.attrib;
+ %phrase.role.attrib;
+ %local.phrase.attrib;
+>
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+<!ELEMENT quote (%para.char.mix;)*>
+<!ATTLIST quote
+ %common.attrib;
+ %quote.role.attrib;
+ %local.quote.attrib;
+>
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+<!ATTLIST trademark
+ class (service
+ |trade
+ |registered
+ |copyright) 'trade'
+ %common.attrib;
+ %trademark.role.attrib;
+ %local.trademark.attrib;
+>
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+<!ELEMENT link (%para.char.mix;)*>
+<!ATTLIST link
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; type CDATA #IMPLIED
+ %common.attrib;
+ %link.role.attrib;
+ %local.link.attrib;
+>
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+<!ELEMENT ulink (%para.char.mix;)*>
+<!ATTLIST ulink
+ url CDATA #REQUIRED
+ type CDATA #IMPLIED
+ %common.attrib;
+ %ulink.role.attrib;
+ %local.ulink.attrib;
+>
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+<!ELEMENT xref EMPTY>
+<!ATTLIST xref
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; %common.attrib;
+ %xref.role.attrib;
+ %local.xref.attrib;
+>
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class "appendix %local.appendix.class;">
+<!ENTITY % local.article.class "">
+<!ENTITY % article.class "article %local.article.class;">
+<!ENTITY % local.book.class "">
+<!ENTITY % local.chapter.class "">
+<!ENTITY % chapter.class "chapter %local.chapter.class;">
+<!ENTITY % local.index.class "">
+<!ENTITY % local.refentry.class "">
+<!ENTITY % refentry.class "refentry %local.refentry.class;">
+<!ENTITY % local.nav.class "">
+<!ENTITY % nav.class "toc|lot|index|glossary|bibliography
+ %local.nav.class;">
+<!ENTITY % local.indexdivcomponent.mix "">
+<!ENTITY % local.refname.char.mix "">
+<!ENTITY % refname.char.mix
+ "#PCDATA
+ |%tech.char.class;
+ %local.refname.char.mix;">
+<!ENTITY % local.partcontent.mix "">
+<!ENTITY % refsect.title.content
+ "title, subtitle?, titleabbrev?">
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+<!ATTLIST appendix
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %appendix.role.attrib;
+ %local.appendix.attrib;
+>
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+<!ATTLIST section
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %section.role.attrib;
+ %local.section.attrib;
+>
+<!ENTITY % sectioninfo.role.attrib "%role.attrib;">
+<!ENTITY % local.sectioninfo.attrib "">
+<!ATTLIST sectioninfo
+ %common.attrib;
+ %sectioninfo.role.attrib;
+ %local.sectioninfo.attrib;
+>
+<!ENTITY % local.refentry.attrib "">
+<!ENTITY % refentry.role.attrib "%role.attrib;">
+<!ATTLIST refentry
+ %status.attrib;
+ %common.attrib;
+ %refentry.role.attrib;
+ %local.refentry.attrib;
+>
+<!ENTITY % local.refmeta.attrib "">
+<!ENTITY % refmeta.role.attrib "%role.attrib;">
+<!ATTLIST refmeta
+ %common.attrib;
+ %refmeta.role.attrib;
+ %local.refmeta.attrib;
+>
+<!ENTITY % local.refmiscinfo.attrib "">
+<!ENTITY % refmiscinfo.role.attrib "%role.attrib;">
+<!ELEMENT refmiscinfo (%docinfo.char.mix;)*>
+<!ATTLIST refmiscinfo
+ class CDATA #IMPLIED
+ %common.attrib;
+ %refmiscinfo.role.attrib;
+ %local.refmiscinfo.attrib;
+>
+<!ENTITY % local.refnamediv.attrib "">
+<!ENTITY % refnamediv.role.attrib "%role.attrib;">
+<!ATTLIST refnamediv
+ %common.attrib;
+ %refnamediv.role.attrib;
+ %local.refnamediv.attrib;
+>
+<!ENTITY % local.refdescriptor.attrib "">
+<!ENTITY % refdescriptor.role.attrib "%role.attrib;">
+<!ELEMENT refdescriptor (%refname.char.mix;)*>
+<!ATTLIST refdescriptor
+ %common.attrib;
+ %refdescriptor.role.attrib;
+ %local.refdescriptor.attrib;
+>
+<!ENTITY % local.refname.attrib "">
+<!ENTITY % refname.role.attrib "%role.attrib;">
+<!ELEMENT refname (%refname.char.mix;)*>
+<!ATTLIST refname
+ %common.attrib;
+ %refname.role.attrib;
+ %local.refname.attrib;
+>
+<!ENTITY % local.refpurpose.attrib "">
+<!ENTITY % refpurpose.role.attrib "%role.attrib;">
+<!ELEMENT refpurpose (%refinline.char.mix;)*>
+<!ATTLIST refpurpose
+ %common.attrib;
+ %refpurpose.role.attrib;
+ %local.refpurpose.attrib;
+>
+<!ENTITY % local.refclass.attrib "">
+<!ENTITY % refclass.role.attrib "%role.attrib;">
+<!ELEMENT refclass (%refclass.char.mix;)*>
+<!ATTLIST refclass
+ %common.attrib;
+ %refclass.role.attrib;
+ %local.refclass.attrib;
+>
+<!ENTITY % local.refsynopsisdiv.attrib "">
+<!ENTITY % refsynopsisdiv.role.attrib "%role.attrib;">
+<!ELEMENT refsynopsisdiv (refsynopsisdivinfo?, (%refsect.title.content;)?,
+ (((%refcomponent.mix;)+, refsect2*) | (refsect2+)))>
+<!ATTLIST refsynopsisdiv
+ %common.attrib;
+ %refsynopsisdiv.role.attrib;
+ %local.refsynopsisdiv.attrib;
+>
+<!ENTITY % local.refsect1.attrib "">
+<!ENTITY % refsect1.role.attrib "%role.attrib;">
+<!ELEMENT refsect1 (refsect1info?, (%refsect.title.content;),
+ (((%refcomponent.mix;)+, refsect2*) | refsect2+))>
+<!ATTLIST refsect1
+ %status.attrib;
+ %common.attrib;
+ %refsect1.role.attrib;
+ %local.refsect1.attrib;
+>
+<!ENTITY % local.refsect2.attrib "">
+<!ENTITY % refsect2.role.attrib "%role.attrib;">
+<!ELEMENT refsect2 (refsect2info?, (%refsect.title.content;),
+ (((%refcomponent.mix;)+, refsect3*) | refsect3+))>
+<!ATTLIST refsect2
+ %status.attrib;
+ %common.attrib;
+ %refsect2.role.attrib;
+ %local.refsect2.attrib;
+>
+<!ENTITY % local.refsect3.attrib "">
+<!ENTITY % refsect3.role.attrib "%role.attrib;">
+<!ELEMENT refsect3 (refsect3info?, (%refsect.title.content;),
+ (%refcomponent.mix;)+)>
+<!ATTLIST refsect3
+ %status.attrib;
+ %common.attrib;
+ %refsect3.role.attrib;
+ %local.refsect3.attrib;
+>
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+<!ELEMENT docinfo ((mediaobject
+ | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT objectinfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT section (sectioninfo?,
+ (%sect.title.content;),
+ (((%divcomponent.mix;)+, section*)
+ | section+))>
+<!ELEMENT sectioninfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT authorgroup ((author|editor|corpauthor|othercredit)+)>
+<!ELEMENT affiliation (jobtitle?, orgname?)>
+<!ELEMENT para (%para.char.mix;)*>
+<!ELEMENT informaltable (mediaobject+|tgroup+) >
+<!ELEMENT replaceable (#PCDATA
+ | %link.char.class;
+ | inlinemediaobject)*>
+<!ELEMENT trademark (#PCDATA
+ | %link.char.class;
+ | %tech.char.class;
+ | inlinemediaobject
+ | emphasis)*>
+<!ELEMENT systemitem (%cptr.char.mix;)*>
+<!ELEMENT article ((%div.title.content;)?, artheader?,
+ (%bookcomponent.content;),
+ (%appendix.class;)*)>
+<!ATTLIST article
+ class (journalarticle
+ |productsheet
+ |whitepaper
+ |techreport
+ |faq) #IMPLIED
+ %status.attrib;
+ %common.attrib;
+ %article.role.attrib;
+ %local.article.attrib;
+>
+<!ELEMENT artheader (mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+>
+<!ELEMENT appendix ((%bookcomponent.title.content;),
+ (%bookcomponent.content;))>
diff --git a/tests/docbook/dtd/simple/3.1.7.1/sinclist.mod b/tests/docbook/dtd/simple/3.1.7.1/sinclist.mod
new file mode 100644
index 00000000..c692a681
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/sinclist.mod
@@ -0,0 +1,252 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBk XML Inclusions V3.1.7.1
+ Part of the Simplified DocBk XML V3.1.7.1 DTD
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % biblioset.module "IGNORE">
+<!ENTITY % isbn.module "IGNORE">
+<!ENTITY % issn.module "IGNORE">
+<!ENTITY % pagenums.module "IGNORE">
+<!ENTITY % simplelist.content.module "IGNORE">
+<!ENTITY % anchor.module "IGNORE">
+<!ENTITY % procedure.content.module "IGNORE">
+<!ENTITY % publisher.module "IGNORE">
+<!ENTITY % printhistory.module "IGNORE">
+<!ENTITY % address.content.module "IGNORE">
+<!ENTITY % glossterm.module "IGNORE">
+<!ENTITY % bibliomixed.module "IGNORE">
+<!ENTITY % bibliography.content.module "IGNORE">
+<!ENTITY % biblioentry.module "IGNORE">
+<!ENTITY % glossary.content.module "IGNORE">
+<!ENTITY % glossentry.content.module "IGNORE">
+<!ENTITY % ssscript.module "IGNORE">
+<!ENTITY % caution.element "IGNORE">
+<!ENTITY % caution.attlist "IGNORE">
+<!ENTITY % important.element "IGNORE">
+<!ENTITY % important.attlist "IGNORE">
+<!ENTITY % tip.element "IGNORE">
+<!ENTITY % tip.attlist "IGNORE">
+<!ENTITY % warning.element "IGNORE">
+<!ENTITY % warning.attlist "IGNORE">
+<!ENTITY % comment.module "IGNORE">
+<!ENTITY % otherinfo.module "IGNORE">
+<!ENTITY % set.content.module "IGNORE">
+<!ENTITY % set.module "IGNORE">
+<!ENTITY % setinfo.module "IGNORE">
+<!ENTITY % book.content.module "IGNORE">
+<!ENTITY % book.module "IGNORE">
+<!ENTITY % bookinfo.module "IGNORE">
+<!ENTITY % dedication.module "IGNORE">
+<!ENTITY % colophon.module "IGNORE">
+<!ENTITY % toc.content.module "IGNORE">
+<!ENTITY % toc.module "IGNORE">
+<!ENTITY % tocfront.module "IGNORE">
+<!ENTITY % tocentry.module "IGNORE">
+<!ENTITY % tocpart.module "IGNORE">
+<!ENTITY % tocchap.module "IGNORE">
+<!ENTITY % toclevel1.module "IGNORE">
+<!ENTITY % toclevel2.module "IGNORE">
+<!ENTITY % toclevel3.module "IGNORE">
+<!ENTITY % toclevel4.module "IGNORE">
+<!ENTITY % toclevel5.module "IGNORE">
+<!ENTITY % tocback.module "IGNORE">
+<!ENTITY % lot.content.module "IGNORE">
+<!ENTITY % lot.module "IGNORE">
+<!ENTITY % lotentry.module "IGNORE">
+<!ENTITY % chapter.module "IGNORE">
+<!ENTITY % part.module "IGNORE">
+<!ENTITY % preface.module "IGNORE">
+<!ENTITY % reference.module "IGNORE">
+<!ENTITY % partintro.module "IGNORE">
+<!ENTITY % sect1.module "IGNORE">
+<!ENTITY % sect2.module "IGNORE">
+<!ENTITY % sect3.module "IGNORE">
+<!ENTITY % sect4.module "IGNORE">
+<!ENTITY % sect5.module "IGNORE">
+<!ENTITY % simplesect.module "IGNORE">
+<!ENTITY % index.content.module "IGNORE">
+<!ENTITY % indexes.module "IGNORE">
+<!ENTITY % indexdiv.module "IGNORE">
+<!ENTITY % indexentry.module "IGNORE">
+<!ENTITY % primsecterie.module "IGNORE">
+<!ENTITY % seeie.module "IGNORE">
+<!ENTITY % seealsoie.module "IGNORE">
+
+<![ %exclude.refentry; [
+<!ENTITY % refentry.content.module "IGNORE">
+<!ENTITY % refentry.module "IGNORE">
+<!ENTITY % refmeta.module "IGNORE">
+<!ENTITY % refmiscinfo.module "IGNORE">
+<!ENTITY % refnamediv.module "IGNORE">
+<!ENTITY % refdescriptor.module "IGNORE">
+<!ENTITY % refname.module "IGNORE">
+<!ENTITY % refpurpose.module "IGNORE">
+<!ENTITY % refclass.module "IGNORE">
+<!ENTITY % refsynopsisdiv.module "IGNORE">
+<!ENTITY % refsect1.module "IGNORE">
+<!ENTITY % refsect2.module "IGNORE">
+<!ENTITY % refsect3.module "IGNORE">
+<!ENTITY % refentrytitle.module "IGNORE">
+<!ENTITY % manvolnum.module "IGNORE">
+]]>
+
+<!ENTITY % bookbiblio.module "IGNORE">
+<!ENTITY % seriesinfo.module "IGNORE">
+<!ENTITY % itermset.module "IGNORE">
+<!ENTITY % msgset.content.module "IGNORE">
+<!ENTITY % msgset.module "IGNORE">
+<!ENTITY % msgentry.module "IGNORE">
+<!ENTITY % msg.module "IGNORE">
+<!ENTITY % msgmain.module "IGNORE">
+<!ENTITY % msgsub.module "IGNORE">
+<!ENTITY % msgrel.module "IGNORE">
+<!ENTITY % msginfo.module "IGNORE">
+<!ENTITY % msglevel.module "IGNORE">
+<!ENTITY % msgorig.module "IGNORE">
+<!ENTITY % msgaud.module "IGNORE">
+<!ENTITY % msgexplan.module "IGNORE">
+<!ENTITY % qandset.content.module "IGNORE">
+<!ENTITY % qandset.module "IGNORE">
+<!ENTITY % qandadiv.module "IGNORE">
+<!ENTITY % qandaentry.module "IGNORE">
+<!ENTITY % question.module "IGNORE">
+<!ENTITY % answer.module "IGNORE">
+<!ENTITY % label.module "IGNORE">
+<!ENTITY % bridgehead.module "IGNORE">
+<!ENTITY % highlights.module "IGNORE">
+<!ENTITY % formalpara.module "IGNORE">
+<!ENTITY % simpara.module "IGNORE">
+<!ENTITY % glosslist.module "IGNORE">
+<!ENTITY % segmentedlist.content.module "IGNORE">
+<!ENTITY % segmentedlist.module "IGNORE">
+<!ENTITY % segtitle.module "IGNORE">
+<!ENTITY % seglistitem.module "IGNORE">
+<!ENTITY % seg.module "IGNORE">
+<!ENTITY % calloutlist.content.module "IGNORE">
+<!ENTITY % calloutlist.module "IGNORE">
+<!ENTITY % callout.module "IGNORE">
+<!ENTITY % informalexample.module "IGNORE">
+<!ENTITY % programlistingco.module "IGNORE">
+<!ENTITY % areaspec.content.module "IGNORE">
+<!ENTITY % areaspec.module "IGNORE">
+<!ENTITY % area.module "IGNORE">
+<!ENTITY % areaset.module "IGNORE">
+<!ENTITY % screenco.module "IGNORE">
+<!ENTITY % screen.module "IGNORE">
+<!ENTITY % screenshot.content.module "IGNORE">
+<!ENTITY % screenshot.module "IGNORE">
+<!ENTITY % screeninfo.module "IGNORE">
+<!ENTITY % informalfigure.module "IGNORE">
+<!ENTITY % graphicco.module "IGNORE">
+<!ENTITY % graphic.module "IGNORE">
+<!ENTITY % equation.module "IGNORE">
+<!ENTITY % informalequation.module "IGNORE">
+<!ENTITY % inlineequation.module "IGNORE">
+<!ENTITY % inlinegraphic.module "IGNORE">
+<!ENTITY % alt.module "IGNORE">
+<!ENTITY % synopsis.module "IGNORE">
+<!ENTITY % cmdsynopsis.content.module "IGNORE">
+<!ENTITY % cmdsynopsis.module "IGNORE">
+<!ENTITY % arg.module "IGNORE">
+<!ENTITY % group.module "IGNORE">
+<!ENTITY % sbr.module "IGNORE">
+<!ENTITY % synopfragmentref.module "IGNORE">
+<!ENTITY % synopfragment.module "IGNORE">
+<!ENTITY % funcsynopsis.content.module "IGNORE">
+<!ENTITY % funcsynopsis.module "IGNORE">
+<!ENTITY % funcsynopsisinfo.module "IGNORE">
+<!ENTITY % funcprototype.module "IGNORE">
+<!ENTITY % funcdef.module "IGNORE">
+<!ENTITY % void.module "IGNORE">
+<!ENTITY % varargs.module "IGNORE">
+<!ENTITY % paramdef.module "IGNORE">
+<!ENTITY % funcparams.module "IGNORE">
+<!ENTITY % ackno.module "IGNORE">
+<!ENTITY % affiliation.element "IGNORE">
+ <!ENTITY % shortaffil.module "IGNORE">
+ <!ENTITY % orgdiv.module "IGNORE">
+<!ENTITY % artpagenums.module "IGNORE">
+ <!ENTITY % collab.content.module "IGNORE">
+ <!ENTITY % collab.module "IGNORE">
+ <!ENTITY % collabname.module "IGNORE">
+<!ENTITY % confgroup.content.module "IGNORE">
+<!ENTITY % confgroup.module "IGNORE">
+ <!ENTITY % confdates.module "IGNORE">
+ <!ENTITY % conftitle.module "IGNORE">
+ <!ENTITY % confnum.module "IGNORE">
+ <!ENTITY % confsponsor.module "IGNORE">
+<!ENTITY % contractnum.module "IGNORE">
+<!ENTITY % contractsponsor.module "IGNORE">
+<!ENTITY % corpname.module "IGNORE">
+<!ENTITY % invpartnumber.module "IGNORE">
+<!ENTITY % modespec.module "IGNORE">
+ <!ENTITY % contrib.module "IGNORE">
+<!ENTITY % productname.module "IGNORE">
+<!ENTITY % productnumber.module "IGNORE">
+<!ENTITY % pubsnumber.module "IGNORE">
+<!ENTITY % seriesvolnums.module "IGNORE">
+<!ENTITY % accel.module "IGNORE">
+<!ENTITY % action.module "IGNORE">
+<!ENTITY % application.module "IGNORE">
+<!ENTITY % classname.module "IGNORE">
+<!ENTITY % co.module "IGNORE">
+<!ENTITY % database.module "IGNORE">
+<!ENTITY % envar.module "IGNORE">
+<!ENTITY % errorcode.module "IGNORE">
+<!ENTITY % errorname.module "IGNORE">
+<!ENTITY % errortype.module "IGNORE">
+<!ENTITY % function.module "IGNORE">
+<!ENTITY % guibutton.module "IGNORE">
+<!ENTITY % guiicon.module "IGNORE">
+<!ENTITY % guilabel.module "IGNORE">
+<!ENTITY % guimenu.module "IGNORE">
+<!ENTITY % guimenuitem.module "IGNORE">
+<!ENTITY % guisubmenu.module "IGNORE">
+<!ENTITY % hardware.module "IGNORE">
+<!ENTITY % interface.module "IGNORE">
+<!ENTITY % interfacedefinition.module "IGNORE">
+<!ENTITY % keycap.module "IGNORE">
+<!ENTITY % keycode.module "IGNORE">
+<!ENTITY % keycombo.module "IGNORE">
+<!ENTITY % keysym.module "IGNORE">
+<!ENTITY % constant.module "IGNORE">
+<!ENTITY % varname.module "IGNORE">
+<!ENTITY % markup.module "IGNORE">
+<!ENTITY % mediaobjectco.module "IGNORE">
+<!ENTITY % imageobjectco.module "IGNORE">
+<!ENTITY % medialabel.module "IGNORE">
+<!ENTITY % menuchoice.content.module "IGNORE">
+<!ENTITY % menuchoice.module "IGNORE">
+<!ENTITY % shortcut.module "IGNORE">
+<!ENTITY % mousebutton.module "IGNORE">
+<!ENTITY % msgtext.module "IGNORE">
+<!ENTITY % optional.module "IGNORE">
+<!ENTITY % parameter.module "IGNORE">
+<!ENTITY % prompt.module "IGNORE">
+<!ENTITY % property.module "IGNORE">
+<!ENTITY % returnvalue.module "IGNORE">
+<!ENTITY % sgmltag.module "IGNORE">
+<!ENTITY % structfield.module "IGNORE">
+<!ENTITY % structname.module "IGNORE">
+<!ENTITY % symbol.module "IGNORE">
+<!ENTITY % token.module "IGNORE">
+<!ENTITY % type.module "IGNORE">
+<!ENTITY % citation.module "IGNORE">
+<!ENTITY % citerefentry.module "IGNORE">
+<!ENTITY % firstterm.module "IGNORE">
+<!ENTITY % foreignphrase.module "IGNORE">
+<!ENTITY % wordasword.module "IGNORE">
+<!ENTITY % olink.module "IGNORE">
+<!ENTITY % footnoteref.module "IGNORE">
+<!ENTITY % beginpage.module "IGNORE">
+<!ENTITY % indexterm.content.module "IGNORE">
+<!ENTITY % indexterm.module "IGNORE">
+<!ENTITY % primsecter.module "IGNORE">
+<!ENTITY % seeseealso.module "IGNORE">
diff --git a/tests/docbook/dtd/simple/3.1.7.1/test.xml b/tests/docbook/dtd/simple/3.1.7.1/test.xml
new file mode 100644
index 00000000..66767b65
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/test.xml
@@ -0,0 +1,6 @@
+<!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+ "sdocbook.dtd">
+<article><title>Article Title</title>
+<para>Paragraph.</para>
+</article>
diff --git a/tests/docbook/dtd/simple/3.1.7.1/testcss.xml b/tests/docbook/dtd/simple/3.1.7.1/testcss.xml
new file mode 100644
index 00000000..e7906a50
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/testcss.xml
@@ -0,0 +1,52 @@
+<!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+ "sdocbook.dtd">
+<?xml-stylesheet href="sdocbook.css" type="text/css"?>
+<article>
+<title>foo</title>
+<para>This is a pargraph</para>
+<literallayout>
+59 North Street
+Belchertown, MA 01007
+</literallayout>
+<section><title>sect1</title>
+<para>This is a paragraph.</para>
+<section><title>sect2</title>
+<para>This is a paragraph.</para>
+<blockquote><para>This is a block quote.</para></blockquote>
+<para>This is a paragraph.</para>
+<section><title>sect3</title>
+<para>This is a paragraph with a <citetitle>title citation</citetitle>,
+a <command>command</command>, and some <computeroutput>computer output</computeroutput>.
+</para>
+<section><title>sect4</title>
+<itemizedlist>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+</itemizedlist>
+<section><title>sect5</title>
+<orderedlist>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+</orderedlist>
+<section><title>sect6</title>
+
+<informaltable>
+<tgroup cols="3">
+<tbody>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+</tbody>
+</tgroup>
+</informaltable>
+
+</section>
+</section>
+</section>
+</section>
+</section>
+</section>
+</article>
diff --git a/tests/docbook/dtd/simple/3.1.7.1/testcust.xml b/tests/docbook/dtd/simple/3.1.7.1/testcust.xml
new file mode 100644
index 00000000..e0304cde
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/testcust.xml
@@ -0,0 +1,4 @@
+<!DOCTYPE article SYSTEM "sdocbook-custom.dtd">
+<article><title>Article Title</title>
+<para>Paragraph.</para>
+</article>
diff --git a/tests/docbook/dtd/simple/3.1.7.1/testrefcust.xml b/tests/docbook/dtd/simple/3.1.7.1/testrefcust.xml
new file mode 100644
index 00000000..67c22bf1
--- /dev/null
+++ b/tests/docbook/dtd/simple/3.1.7.1/testrefcust.xml
@@ -0,0 +1,10 @@
+<!DOCTYPE refentry SYSTEM "sdocbookref-custom.dtd">
+<refentry>
+<refnamediv>
+<refname>test</refname>
+<refpurpose>just testing</refpurpose>
+</refnamediv>
+<refsect1><title>description</title>
+<para>just a test.</para>
+</refsect1>
+</refentry>
diff --git a/tests/docbook/dtd/simple/4.1.2.4/COPYRIGHT b/tests/docbook/dtd/simple/4.1.2.4/COPYRIGHT
new file mode 100644
index 00000000..5c67f5b2
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/COPYRIGHT
@@ -0,0 +1,26 @@
+Simplified DocBook XML V4.1.2.4 DTD
+Copyright (C) 1999, 2000 Norman Walsh
+http://nwalsh.com/docbook/simple/
+
+You may distribute this DTD under the same terms as DocBook.
+
+Please direct all questions and comments about this DTD to
+Norman Walsh, <ndw@nwalsh.com>.
+
+This DTD is based on the DocBook XML V4.1.2 DTD from OASIS:
+
+ [DocBook is] Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, and the Organization for the
+ Advancement of Structured Information Standards (OASIS).
+
+ Permission to use, copy, modify and distribute the DocBook
+ DTD and its accompanying documentation for any purpose and
+ without fee is hereby granted in perpetuity, provided that
+ the above copyright notice and this paragraph appear in all
+ copies. The copyright holders make no representation about
+ the suitability of the DTD for any purpose. It is provided
+ "as is" without expressed or implied warranty.
+
+For more information about the DocBook DTD, see
+http://www.oasis-open.org/docbook/
diff --git a/tests/docbook/dtd/simple/4.1.2.4/ChangeLog b/tests/docbook/dtd/simple/4.1.2.4/ChangeLog
new file mode 100644
index 00000000..e972492c
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/ChangeLog
@@ -0,0 +1,31 @@
+2000-11-03 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbookref-custom.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated version numbers
+
+ * Makefile: New file.
+
+ * Makefile: Added distrib target
+
+ * Makefile: Added test target
+
+ * VERSION: Version 4.1.2.4 released
+
+ * sdocbook.dtd: Automatically built from sdocbook-custom.dtd
+
+ * sdocbookref-custom.dtd: Added common declaration comment
+
+ * sdocbookref.dtd: Automatically built from sdocbookref-custom.dtd
+
+2000-10-12 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, LostLog, README, VERSION, catalog, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.css, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml, testcust.xml, testrefcust.xml:
+ New file.
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated version numbers
+
+ * VERSION: Version 4.1.2.3 released
+
+ * sdocbook-custom.dtd: Added revisionflag as a common attribute
+
diff --git a/tests/docbook/dtd/simple/4.1.2.4/LostLog b/tests/docbook/dtd/simple/4.1.2.4/LostLog
new file mode 100644
index 00000000..5a10722d
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/LostLog
@@ -0,0 +1,173 @@
+2000-08-29 Norman Walsh <ndw@nwalsh.com>
+
+ * VERSION: Version 4.1.2.2 released
+
+ * sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbookref-custom.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated version numbers
+
+ * sdbpool.mod, sinclist.mod: Remove titleabbrev
+
+ * sdocbook-custom.dtd: Removed titleabbrev and appendixinfo; added bibliography/bibliodiv/bibliomixed
+
+ * sdocbook.dtd, sdocbookref.dtd: Compiled versions
+
+2000-08-27 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook-custom.dtd, sdocbook.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated version number to V4.1.2.1
+
+ * VERSION: Version 4.1.2.1 released
+
+2000-08-25 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated to 4.1.1.1
+
+ * VERSION: Version 4.1.1.1 released
+
+ * sdbhier.mod, sdocbookref.dtd: RefEntry now includes refentryinfo not docinfo
+
+ * sdocbook-custom.dtd: Changed system identifier to point to docbook.org.
+
+ * sdocbook.dtd: Fixed version number in comment
+
+2000-07-30 Norman Walsh <ndw@nwalsh.com>
+
+ * .cvsignore: New file.
+
+2000-05-22 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT: Updated to V4.0 copyright info
+
+ * README: Updated to V4.0
+
+ * VERSION: Version 4.0.1. released
+
+ * sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbookref-custom.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated version number to 4.0.1
+
+ * sdbpool.mod: Fixed errors in revdescription.mix
+
+ * sdocbook-custom.dtd, sdocbook.css, sinclist.mod: Updated to DocBook XML V4.0
+
+ * sdocbook.dtd, sdocbookref.dtd: Rebuilt for 4.0.1
+
+2000-05-21 Norman Walsh <ndw@nwalsh.com>
+
+ * sdbpool.mod: Added local revdescription.mix to avoid parse error
+
+ * sdocbook-custom.dtd: Updated to 4.0; removed attlist for article
+
+1999-11-10 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated, based on DocBk XML V3.1.7
+
+ * VERSION: Version 3.1.7.1 released
+
+ * sdocbook.dtd: Added journal, series, set, and manuscript to pubwork on citetitle
+
+1999-10-19 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, VERSION, catalog, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml:
+ Based on 3.1.6; no content changes
+
+1999-08-26 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sinclist.mod, test.xml, testcss.xml:
+ Updated version number
+
+ * VERSION: Version 3.1.5.1 Released
+
+ * sdocbook-custom.dtd, sdocbookref-custom.dtd: Based on DocBk XML 3.1.5
+
+ * sdocbook.dtd, sdocbookref.dtd: Based on 3.1.5
+
+1999-08-09 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sdocbookref-custom.dtd, sdocbookref.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated version
+
+ * VERSION: Version 3.1.4.2 released
+
+ * sdbhier.mod: Added RefEntry (under include.refentry PE)
+
+ * sdbhier.mod, sdocbook-custom.dtd, sdocbookref-custom.dtd, sinclist.mod:
+ Update for refentry
+
+ * sdocbook-custom.dtd: Added option for including refentry (off by default); added affiliation, releaseinfo, and subjectset
+
+ * sdocbook.dtd: Updated
+
+ * sdocbookref-custom.dtd: New file.
+
+ * sdocbookref.dtd: New file.
+
+ * sinclist.mod: Tweaked to allow subjectset, affiliation, jobtitle, orgname, and releaseinfo
+
+ * testrefcust.xml: New file.
+
+1999-06-04 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated version number
+
+ * VERSION: Version 3.1.4.1 released
+
+ * catalog: Added mapping for character entities
+
+ * sdocbook.dtd: Updated; now includes local.* PEs
+
+ * sdocbook.dtd: Updated from DocBk 3.1.4
+
+1999-04-26 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated version number
+
+ * VERSION: Version 3.1.3.6 released
+
+ * sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod: Added XREF back in
+
+1999-04-13 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, VERSION, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml:
+ Version 3.1.3.5 releasd
+
+1999-04-09 Norman Walsh <ndw@nwalsh.com>
+
+ * sdocbook-custom.dtd: Allow more than one tag in artheader
+
+ * sdocbook.dtd: Updated
+
+1999-04-07 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml:
+ Updated version numbers
+
+ * VERSION: Version 3.1.3.4 released
+
+ * testcss.xml: Replaced address with literallayout' testcss.xml
+
+1999-04-06 Norman Walsh <ndw@nwalsh.com>
+
+ * VERSION: Version 3.1.3.3 released
+
+ * catalog: New file.
+
+ * sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod:
+ More changes
+
+1999-04-05 Norman Walsh <ndw@nwalsh.com>
+
+ * COPYRIGHT, README, VERSION, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod:
+ Version 3.1.3.2 released
+
+ * COPYRIGHT, README, sdbcent.mod, sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.css, sdocbook.dtd, sinclist.mod, test.xml, testcss.xml, testcust.xml:
+ New file.
+
+ * sdbhier.mod, sdbpool.mod, sdocbook-custom.dtd, sdocbook.dtd, sinclist.mod:
+ Removed address and related elements.
+ Removed parentbook attribute on article.
+ Added epigraph and authorblurb.
+
diff --git a/tests/docbook/dtd/simple/4.1.2.4/Makefile.am b/tests/docbook/dtd/simple/4.1.2.4/Makefile.am
new file mode 100644
index 00000000..ea1125de
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/Makefile.am
@@ -0,0 +1,7 @@
+## Process this file with automake to produce Makefile.in
+
+EXTRA_DIST = \
+ COPYRIGHT ChangeLog LostLog README VERSION sdbcent.mod sdbhier.mod \
+ sdbpool.mod sdocbook-custom.dtd sdocbook.css sdocbook.dtd \
+ sdocbookref.dtd sinclist.mod test.xml testcss.xml testcust.xml \
+ testrefcust.xml
diff --git a/tests/docbook/dtd/simple/4.1.2.4/README b/tests/docbook/dtd/simple/4.1.2.4/README
new file mode 100644
index 00000000..6b70b424
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/README
@@ -0,0 +1,107 @@
+README for the Simplified DocBook XML V4.1.2.4 DTD
+
+This is a simplified version of the DocBook XML V4.1.2 DTD. This
+DTD is my attempt to make a small subset of DocBook. I tried to
+achieve the following goals:
+
+ * Documents written in the subset must be 100% legal DocBook XML
+ documents.
+
+ * This is for small documents, articles and the like, so
+ there's no need for 'book's or 'set's, just 'article's.
+
+ * The markup should be the smallest practical subset, if you
+ need richly structured markup, use DocBook or DocBook XML.
+
+ * The result is roughly "HTML-level markup in DocBook", but I
+ didn't set out explicitly to produce that result.
+
+ * The DTD must work in IE5 (it's XML not SGML). It should be
+ small enough to download more-or-less painlessly.
+
+ * There should be a CSS stylesheet for it (mine's pretty lame).
+
+ * There should be an XSL stylesheet for it. Since I'm in the
+ somewhat privileged position of knowing how many changes are
+ coming, I'm going to wait until after the next draft ;-).
+
+Instead of DocBook's 350+ elements, this DTD has just over 100.
+
+Manifest
+--------
+
+README - This readme file
+VERSION - The version number
+COPYRIGHT - Copyright statement
+ChangeLog - Changelog
+sdbcent.mod - Character entities
+sdbhier.mod - Hierarchy overrides
+sdbpool.mod - Information pool overrides
+sdocbook-custom.dtd - The DTD
+sdocbook.css - CSS stylesheet
+sdocbook.dtd - A flattened version of the DTD (mechanically generated)
+sinclist.mod - A set of 'ignore' parameter entities
+sdocbookref-custom.dtd - A version of Simplified DocBook for RefEntrys
+sdocbookref.dtd - A flattened version of sdocbookref-custom (mech. generated)
+test.xml - A test document
+testcss.xml - A test document for the CSS stylesheet
+testcust.xml - A test document for the raw customization layer
+testrefcust.xml - A test document for the raw RefEntry customization layer
+ent/ - The ISO character entity files used by sdocbook.dtd
+
+Installation
+------------
+
+Place the files in this distribution somewhere on your machine. Adjust
+your catalog(s) if appropriate (XML tools frequently do not support
+catalogs, so this may be irrelevant for you).
+
+Please use the following formal public identifier to identify this DTD:
+
+ "-//Norman Walsh//DTD Simplified DocBook XML V4.1.2.4//EN"
+
+For example, if your document's top-level element is <article>, and
+you are using this DTD directly, use the FPI in the DOCTYPE
+declaration:
+
+<!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.1.2.4//EN"
+ "http://nwalsh.com/docbook/simple/4.1.2.4/sdocbook.dtd" [
+...
+]>
+
+
+Note: if you are using the customization layer directly (sdocbook-custom.dtd),
+you may have to adjust the system identifier that points to the DocBook XML
+DTD. You may also have to install the DocBook XML V4.1.2.4 DTD somewhere on
+your system.
+
+
+Copyright
+---------
+
+Copyright (C) 1999, 2000 Norman Walsh
+
+See COPYRIGHT for more information
+
+
+Warranty
+--------
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
+CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+
+Contacting the Author
+---------------------
+
+This DTD is maintained by Norman Walsh, <ndw@nwalsh.com>.
+
+The best way to reach norm is by email. You will find additional
+contact information at http://nwalsh.com/docbook/simple/
diff --git a/tests/docbook/dtd/simple/4.1.2.4/VERSION b/tests/docbook/dtd/simple/4.1.2.4/VERSION
new file mode 100644
index 00000000..4054441c
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/VERSION
@@ -0,0 +1 @@
+4.1.2.4
diff --git a/tests/docbook/dtd/simple/4.1.2.4/sdbcent.mod b/tests/docbook/dtd/simple/4.1.2.4/sdbcent.mod
new file mode 100644
index 00000000..7cf1ae1e
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/sdbcent.mod
@@ -0,0 +1,47 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML Character Entity Sets V4.1.2.4
+ Part of the Simplified DocBook XML V4.1.2.4 DTD
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % ISOamsa.module "IGNORE">
+<!ENTITY % ISOamsb.module "IGNORE">
+<!ENTITY % ISOamsc.module "IGNORE">
+<!ENTITY % ISOamsn.module "IGNORE">
+<!ENTITY % ISOamso.module "IGNORE">
+<!ENTITY % ISOamsr.module "IGNORE">
+<!ENTITY % ISObox.module "IGNORE">
+<!ENTITY % ISOcyr1.module "IGNORE">
+<!ENTITY % ISOcyr2.module "IGNORE">
+<!ENTITY % ISOdia.module "IGNORE">
+<!ENTITY % ISOgrk1.module "IGNORE">
+<!ENTITY % ISOgrk2.module "IGNORE">
+<!ENTITY % ISOgrk3.module "IGNORE">
+<!ENTITY % ISOgrk4.module "IGNORE">
+<!ENTITY % ISOlat1.module "IGNORE">
+<!ENTITY % ISOlat2.module "IGNORE">
+<!ENTITY % ISOnum.module "IGNORE">
+<!ENTITY % ISOpub.module "IGNORE">
+<!ENTITY % ISOtech.module "IGNORE">
+
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+
diff --git a/tests/docbook/dtd/simple/4.1.2.4/sdbhier.mod b/tests/docbook/dtd/simple/4.1.2.4/sdbhier.mod
new file mode 100644
index 00000000..d659e21d
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/sdbhier.mod
@@ -0,0 +1,68 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML Document Hierarchy V4.1.2.4
+ Part of the Simplified DocBook XML V4.1.2.4 DTD
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.divcomponent.mix;">
+
+<!ENTITY % bookcomponent.content
+ "((%divcomponent.mix;)+, section*)
+ | section+">
+
+<![ %include.refentry; [
+
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ %local.refinline.char.mix;">
+
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.divcomponent.mix;">
+
+<!ELEMENT refentry (refentryinfo?, refmeta?, (%link.char.class;)*,
+ refnamediv, refsynopsisdiv?, refsect1+)>
+
+<!ELEMENT refentryinfo ((mediaobject | legalnotice
+ | subjectset | keywordset
+ | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refmeta (refentrytitle, manvolnum?, refmiscinfo*)>
+
+<!ELEMENT refsect1info ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refsect2info ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refsect3info ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refsynopsisdivinfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+ (%link.char.class;)*)>
+
+]]>
diff --git a/tests/docbook/dtd/simple/4.1.2.4/sdbpool.mod b/tests/docbook/dtd/simple/4.1.2.4/sdbpool.mod
new file mode 100644
index 00000000..1c3d0b60
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/sdbpool.mod
@@ -0,0 +1,174 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML Information Pool V4.1.2.4
+ Part of the Simplified DocBook XML V4.1.2.4 DTD
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.component.mix;">
+
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.sidebar.mix;">
+
+<!ENTITY % local.qandaset.mix "">
+<!ENTITY % qandaset.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.qandaset.mix;">
+
+<!ENTITY % local.revdescription.mix "">
+<!ENTITY % revdescription.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.revdescription.mix;">
+
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ %local.footnote.mix;">
+
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ %local.example.mix;">
+
+<!ENTITY % local.highlights.mix "">
+<!ENTITY % highlights.mix
+ "%list.class; |%admon.class;
+ |%para.class;
+ %local.highlights.mix;">
+
+<!ENTITY % local.para.mix "">
+<!ENTITY % para.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%informal.class;
+ |%formal.class;
+ %local.para.mix;">
+
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.admon.mix;">
+
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+ "%linespecific.class;
+ |%informal.class;
+ %local.figure.mix;">
+
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |mediaobject
+ %local.tabentry.mix;">
+
+<!ENTITY % local.glossdef.mix "">
+<!ENTITY % glossdef.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.glossdef.mix;">
+
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.legalnotice.mix;">
+
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.textobject.mix;">
+
+<!-- Character-level mixtures ............................................. -->
+
+<!ENTITY % ubiq.exclusion "">
+<!ENTITY % ubiq.inclusion "">
+
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%inlineobj.char.class;
+ %local.para.char.mix;">
+
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%docinfo.char.class;
+ |%inlineobj.char.class;
+ %local.title.char.mix;">
+
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+ "#PCDATA
+ |%link.char.class; |%tech.char.class;
+ |inlinemediaobject
+ %local.cptr.char.mix;">
+
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+ "#PCDATA
+ |replaceable
+ |inlinemediaobject
+ %local.smallcptr.char.mix;">
+
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+ "#PCDATA
+ |acronym|emphasis|trademark
+ |%link.char.class;
+ |inlinemediaobject
+ %local.word.char.mix;">
+
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+ "#PCDATA
+ |%link.char.class;
+ |emphasis|trademark
+ |replaceable
+ |inlinemediaobject
+ %local.docinfo.char.mix;">
+
+<!ENTITY % tbl.table.excep "">
+<!ENTITY % tbl.table.mdl
+ "(title, (mediaobject+|tgroup+))">
+
+<!ENTITY % programlisting.content "%para.char.mix; | lineannotation">
diff --git a/tests/docbook/dtd/simple/4.1.2.4/sdocbook-custom.dtd b/tests/docbook/dtd/simple/4.1.2.4/sdocbook-custom.dtd
new file mode 100644
index 00000000..c15df0f6
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/sdocbook-custom.dtd
@@ -0,0 +1,306 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML V4.1.2.4 DTD
+ Copyright (C) 1999, 2000 Norman Walsh
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+
+ Common declaration:
+
+ <?xml version="1.0"?>
+ <!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.1.2.4//EN"
+ "http://nwalsh.com/docbook/simple/4.1.2.4/sdocbook.dtd">
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % include.refentry "IGNORE">
+<![ %include.refentry; [
+<!ENTITY % refsect.title.content "title, subtitle?">
+<!ENTITY % exclude.refentry "IGNORE">
+<!ENTITY % refentry.element "IGNORE">
+<!ENTITY % refmeta.element "IGNORE">
+<!ENTITY % refnamediv.element "IGNORE">
+]]>
+<!ENTITY % exclude.refentry "INCLUDE">
+
+<!ENTITY % sinclist SYSTEM "sinclist.mod">
+%sinclist;
+
+<!ENTITY % formalobject.title.content "title">
+<!ENTITY % div.title.content "title, subtitle?">
+<!ENTITY % bookcomponent.title.content
+ "title, subtitle?">
+<!ENTITY % sect.title.content
+ "title, subtitle?">
+
+<!ENTITY % ndxterm.class "">
+
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+ "itemizedlist|orderedlist
+ |variablelist %local.list.class;">
+
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+ "note %local.admon.class;">
+
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+ "literallayout|programlisting %local.linespecific.class;">
+
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+ "para %local.para.class;">
+
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+ "blockquote
+ |mediaobject
+ |informaltable %local.informal.class;">
+
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+ "example|figure|table %local.formal.class;">
+
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+ "sidebar %local.compound.class;">
+
+<!ENTITY % local.genobj.class "">
+<!ENTITY % genobj.class "">
+
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+ "abstract|authorblurb|epigraph
+ %local.descobj.class;">
+
+<!-- Character-level classes .............................................. -->
+
+<!ENTITY % local.xref.char.class "">
+<!ENTITY % xref.char.class "">
+
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+ "abbrev|acronym|citetitle|emphasis|footnote|phrase
+ |quote|trademark %local.gen.char.class;">
+
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+ "xref|link|ulink %local.link.char.class;">
+
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+ "command|computeroutput
+ |email|filename
+ |literal
+ |option
+ |replaceable
+ |systemitem|userinput
+ %local.tech.char.class;">
+
+<!ENTITY % local.base.char.class "">
+<!ENTITY % base.char.class "">
+
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+ "author|corpauthor|othercredit
+ |revhistory
+ %local.docinfo.char.class;">
+
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+ "inlinemediaobject %local.inlineobj.char.class;">
+
+<!ENTITY % local.effectivity.attrib "">
+<!ENTITY % effectivity.attrib
+ "%local.effectivity.attrib;"
+>
+
+<!ENTITY % local.common.attrib "">
+<!ENTITY % common.attrib
+ "id ID #IMPLIED
+ revisionflag (changed
+ |added
+ |deleted
+ |off) #IMPLIED
+ %local.common.attrib;"
+>
+
+<!ENTITY % idreq.common.attrib
+ "id ID #REQUIRED
+ revisionflag (changed
+ |added
+ |deleted
+ |off) #IMPLIED
+ %local.common.attrib;"
+>
+
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+ "honorific|firstname|surname|lineage|othername|affiliation
+ |authorblurb
+ %local.person.ident.mix;">
+
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+ "abbrev|abstract|author
+ |authorgroup|bibliomisc
+ |copyright|corpauthor|date|edition
+ |editor|issuenum
+ |othercredit
+ |pubdate|publishername
+ |releaseinfo|revhistory
+ |subtitle|title|volumenum|citetitle
+ |%person.ident.mix;
+ %local.bibliocomponent.mix;">
+
+<!ENTITY % dbpool.redecl.module "INCLUDE">
+<!ENTITY % rdbpool SYSTEM "sdbpool.mod">
+
+<!ENTITY % dbhier.redecl.module "INCLUDE">
+<!ENTITY % rdbhier SYSTEM "sdbhier.mod">
+
+<!ENTITY % sdbcent SYSTEM "sdbcent.mod">
+%sdbcent;
+
+<!ENTITY % docinfo.element "IGNORE">
+<!ENTITY % objectinfo.element "IGNORE">
+<!ENTITY % section.element "IGNORE">
+<!ENTITY % sectioninfo.element "IGNORE">
+<!ENTITY % authorgroup.element "IGNORE">
+<!ENTITY % para.element "IGNORE">
+<!ENTITY % informaltable.element "IGNORE">
+<!ENTITY % replaceable.element "IGNORE">
+<!ENTITY % trademark.element "IGNORE">
+<!ENTITY % systemitem.element "IGNORE">
+<!ENTITY % article.element "IGNORE">
+<!ENTITY % articleinfo.element "IGNORE">
+<!ENTITY % appendix.element "IGNORE">
+<!ENTITY % appendixinfo.module "IGNORE">
+<!ENTITY % sidebar.element "IGNORE">
+<!ENTITY % programlisting.element "IGNORE">
+<!ENTITY % literallayout.element "IGNORE">
+
+<!ENTITY % cals.table.module "IGNORE">
+<!ENTITY % docbook PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://docbook.org/xml/4.1.2/docbookx.dtd"
+>
+%docbook;
+
+<!ENTITY % simple.objectinfo.element "INCLUDE">
+<![%simple.objectinfo.element;[
+<!ELEMENT objectinfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+]]>
+
+<!ENTITY % simple.section.element "INCLUDE">
+<![%simple.section.element;[
+<!ELEMENT section (sectioninfo?,
+ (%sect.title.content;),
+ (((%divcomponent.mix;)+, section*)
+ | section+))>
+]]>
+
+<!ENTITY % simple.sectioninfo.element "INCLUDE">
+<![%simple.sectioninfo.element;[
+<!ELEMENT sectioninfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+]]>
+
+<!ENTITY % simple.authorgroup.element "INCLUDE">
+<![%simple.authorgroup.element;[
+<!ELEMENT authorgroup ((author|editor|corpauthor|othercredit)+)>
+]]>
+
+<!ENTITY % simple.affiliation.element "INCLUDE">
+<![%simple.affiliation.element;[
+<!ELEMENT affiliation (jobtitle?, orgname?)>
+]]>
+
+<!ENTITY % simple.para.element "INCLUDE">
+<![%simple.para.element;[
+<!ELEMENT para (%para.char.mix;)*>
+]]>
+
+<!ENTITY % simple.informaltable.element "INCLUDE">
+<![%simple.informaltable.element;[
+<!ELEMENT informaltable (mediaobject+|tgroup+) %tbl.table.excep;>
+]]>
+
+<!ENTITY % simple.replaceable.element "INCLUDE">
+<![%simple.replaceable.element;[
+<!ELEMENT replaceable (#PCDATA
+ | %link.char.class;
+ | inlinemediaobject)*>
+]]>
+
+<!ENTITY % simple.trademark.element "INCLUDE">
+<![%simple.trademark.element;[
+<!ELEMENT trademark (#PCDATA
+ | %link.char.class;
+ | %tech.char.class;
+ | inlinemediaobject
+ | emphasis)*>
+]]>
+
+<!ENTITY % simple.systemitem.element "INCLUDE">
+<![%simple.systemitem.element;[
+<!ELEMENT systemitem (%cptr.char.mix;)*>
+]]>
+
+<!ENTITY % simple.article.element "INCLUDE">
+<![%simple.article.element;[
+<!ELEMENT article ((%div.title.content;)?, articleinfo?,
+ (%bookcomponent.content;),
+ ((%appendix.class;)|bibliography)*)>
+]]>
+
+<!ENTITY % simple.articleinfo.element "INCLUDE">
+<![%simple.articleinfo.element;[
+<!ELEMENT articleinfo ((mediaobject | legalnotice
+ | subjectset | keywordset | %bibliocomponent.mix;)+)>
+]]>
+
+<!ENTITY % simple.appendix.element "INCLUDE">
+<![%simple.appendix.element;[
+<!ELEMENT appendix ((%bookcomponent.title.content;),
+ (%bookcomponent.content;))>
+]]>
+
+<!ENTITY % simple.bibliography.element "INCLUDE">
+<![%simple.bibliography.element;[
+<!ELEMENT bibliography ((%bookcomponent.title.content;)?,
+ (%component.mix;)*,
+ (bibliodiv+ | bibliomixed+))>
+]]>
+
+<!ENTITY % simple.bibliomixed.element "INCLUDE">
+<![%simple.bibliomixed.element;[
+<!ELEMENT bibliomixed (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+]]>
+
+<!ENTITY % simple.bibliodiv.element "INCLUDE">
+<![%simple.bibliodiv.element;[
+<!ELEMENT bibliodiv ((%sect.title.content;)?, (%component.mix;)*,
+ (bibliomixed)+)>
+]]>
+
+<!ENTITY % simple.sidebar.element "INCLUDE">
+<![%simple.sidebar.element;[
+<!ELEMENT sidebar ((%formalobject.title.content;)?,
+ (%sidebar.mix;)+)>
+]]>
+
+<!ENTITY % simple.programlisting.element "INCLUDE">
+<![%simple.programlisting.element;[
+<!ELEMENT programlisting (%para.char.mix; | lineannotation)*>
+]]>
+
+<!ENTITY % simple.literallayout.element "INCLUDE">
+<![%simple.literallayout.element;[
+<!ELEMENT literallayout (%para.char.mix; | lineannotation)*>
+]]>
diff --git a/tests/docbook/dtd/simple/4.1.2.4/sdocbook.css b/tests/docbook/dtd/simple/4.1.2.4/sdocbook.css
new file mode 100644
index 00000000..95a65fb2
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/sdocbook.css
@@ -0,0 +1,679 @@
+abbrev
+{
+ display: inline;
+}
+
+abstract
+{
+ margin-left: 0.5in;
+ margin-right: 0.5in;
+ display: inline;
+}
+
+acronym
+{
+ display: inline;
+}
+
+address
+{
+ white-space: pre;
+ display: block;
+}
+
+anchor
+{
+ display: inline;
+}
+
+appendix
+{
+ display: block;
+}
+
+articleinfo
+{
+ display: none;
+}
+
+article
+{
+ display: block;
+}
+
+audiodata
+{
+ display: none;
+}
+
+audioobject
+{
+ display: none;
+}
+
+author
+{
+ display: inline;
+}
+
+authorgroup
+{
+ display: inline;
+}
+
+authorinitials
+{
+ display: inline;
+}
+
+bibliomisc
+{
+ display: inline;
+}
+
+bibliomset
+{
+ display: inline;
+}
+
+biblioset
+{
+ display: inline;
+}
+
+blockquote
+{
+ display: block;
+ margin-left: 0.5in;
+ margin-right: 0.5in;
+}
+
+caption
+{
+ display: none;
+}
+
+citetitle
+{
+ display: inline;
+ font-style: italic;
+}
+
+city
+{
+ display: inline;
+}
+
+colspec
+{
+ display: none;
+}
+
+command
+{
+ display: inline;
+ font-style: italic;
+}
+
+computeroutput
+{
+ display: inline;
+ font-family: monospace;
+}
+
+copyright
+{
+ display: inline;
+}
+
+corpauthor
+{
+ display: inline;
+}
+
+country
+{
+ display: inline;
+}
+
+date
+{
+ display: inline;
+}
+
+articleinfo
+{
+ display: none;
+}
+
+appendixinfo
+{
+ display: none;
+}
+
+edition
+{
+ display: inline;
+}
+
+editor
+{
+ display: inline;
+}
+
+email
+{
+ display: inline;
+ font-style: italic;
+}
+
+emphasis
+{
+ display: inline;
+ font-style: italic;
+}
+
+entry
+{
+ display: table-cell;
+}
+
+example
+{
+ display: block;
+}
+
+fax
+{
+ display: inline;
+}
+
+figure
+{
+ display: block;
+}
+
+filename
+{
+ display: inline;
+ font-style: italic;
+}
+
+firstname
+{
+ display: inline;
+}
+
+footnote
+{
+ display: inline;
+}
+
+holder
+{
+ display: inline;
+}
+
+honorific
+{
+ display: inline;
+}
+
+imagedata
+{
+ display: inline;
+}
+
+imageobject
+{
+ display: inline;
+}
+
+informaltable
+{
+ display: block;
+}
+
+inlinemediaobject
+{
+ display: inline;
+}
+
+isbn
+{
+ display: inline;
+}
+
+issn
+{
+ display: inline;
+}
+
+issuenum
+{
+ display: inline;
+}
+
+itemizedlist
+{
+ display: block;
+ list-style-type: disc;
+}
+
+keyword
+{
+ display: inline;
+}
+
+keywordset
+{
+ display: inline;
+}
+
+legalnotice
+{
+ display: inline;
+}
+
+lineage
+{
+ display: inline;
+}
+
+lineannotation
+{
+ display: inline;
+}
+
+link
+{
+ display: inline;
+}
+
+listitem
+{
+ display: list-item;
+}
+
+literal
+{
+ display: inline;
+}
+
+literallayout
+{
+ display: inline;
+}
+
+mediaobject
+{
+ display: inline;
+}
+
+member
+{
+ display: inline;
+}
+
+note
+{
+ display: inline;
+}
+
+objectinfo
+{
+ display: inline;
+}
+
+option
+{
+ display: inline;
+}
+
+orderedlist
+{
+ display: block;
+ list-style-type: decimal;
+}
+
+otheraddr
+{
+ display: inline;
+}
+
+othercredit
+{
+ display: inline;
+}
+
+othername
+{
+ display: inline;
+}
+
+pagenums
+{
+ display: inline;
+}
+
+para
+{
+ display: block;
+}
+
+phone
+{
+ display: inline;
+}
+
+phrase
+{
+ display: inline;
+}
+
+pob
+{
+ display: inline;
+}
+
+postcode
+{
+ display: inline;
+}
+
+printhistory
+{
+ display: inline;
+}
+
+procedure
+{
+ display: inline;
+}
+
+programlisting
+{
+ display: inline;
+}
+
+pubdate
+{
+ display: inline;
+}
+
+publisher
+{
+ display: inline;
+}
+
+publishername
+{
+ display: inline;
+}
+
+quote
+{
+ display: inline;
+}
+
+replaceable
+{
+ display: inline;
+}
+
+revhistory
+{
+ display: inline;
+}
+
+revision
+{
+ display: inline;
+}
+
+revnumber
+{
+ display: inline;
+}
+
+revremark
+{
+ display: inline;
+}
+
+row
+{
+ display: table-row;
+}
+
+section
+{
+ display: block;
+}
+
+sectioninfo
+{
+ display: none;
+}
+
+sidebar
+{
+ display: block;
+}
+
+simplelist
+{
+ display: inline;
+}
+
+state
+{
+ display: inline;
+}
+
+step
+{
+ display: inline;
+}
+
+street
+{
+ display: inline;
+}
+
+substeps
+{
+ display: inline;
+}
+
+subtitle
+{
+ display: inline;
+}
+
+surname
+{
+ display: inline;
+}
+
+systemitem
+{
+ display: inline;
+}
+
+tbody
+{
+ display: table-row-group;
+}
+
+term
+{
+ display: inline;
+}
+
+textobject
+{
+ display: inline;
+}
+
+tgroup
+{
+ display: table;
+}
+
+thead
+{
+ display: table-row-group;
+}
+
+title
+{
+ display: block;
+}
+
+article title
+{
+ font-size: 36pt;
+ font-weight: bold;
+ display: block;
+}
+
+section title
+{
+ font-size: 24pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section title
+{
+ font-size: 20pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section section title
+{
+ font-size: 18pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section section section title
+{
+ font-size: 16pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section section section section title
+{
+ font-size: 14pt;
+ font-weight: bold;
+ display: block;
+}
+
+section section section section section section title
+{
+ font-size: 12pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix title
+{
+ font-size: 24pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section title
+{
+ font-size: 22pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section section title
+{
+ font-size: 18pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section section section title
+{
+ font-size: 16pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section section section section title
+{
+ font-size: 14pt;
+ font-weight: bold;
+ display: block;
+}
+
+appendix section section section section section title
+{
+ font-size: 12pt;
+ font-weight: bold;
+ display: block;
+}
+
+titleabbrev
+{
+ display: none;
+}
+
+trademark
+{
+ display: inline;
+}
+
+ulink
+{
+ display: inline;
+}
+
+userinput
+{
+ display: inline;
+}
+
+variablelist
+{
+ display: inline;
+}
+
+varlistentry
+{
+ display: inline;
+}
+
+videodata
+{
+ display: inline;
+}
+
+videoobject
+{
+ display: inline;
+}
+
+volumenum
+{
+ display: inline;
+}
+
+xref
+{
+ display: inline;
+}
+
+year
+{
+ display: inline;
+}
+
diff --git a/tests/docbook/dtd/simple/4.1.2.4/sdocbook.dtd b/tests/docbook/dtd/simple/4.1.2.4/sdocbook.dtd
new file mode 100644
index 00000000..d8553a64
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/sdocbook.dtd
@@ -0,0 +1,1530 @@
+<!-- *********************************************************************
+ *** THIS IS THE FLATTENED DTD. DO NOT EDIT THIS DTD BY HAND, EDIT ***
+ *** THE CUSTOMIZATION LAYER AND REGNERATE THE FLATTENED DTD! ********
+ ********************************************************************* -->
+
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML V4.1.2.4 DTD
+ Copyright (C) 1999, 2000 Norman Walsh
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+
+ Common declaration:
+
+ <?xml version="1.0"?>
+ <!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.1.2.4//EN"
+ "http://nwalsh.com/docbook/simple/4.1.2.4/sdocbook.dtd">
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % formalobject.title.content "title">
+<!ENTITY % div.title.content "title, subtitle?">
+<!ENTITY % bookcomponent.title.content
+ "title, subtitle?">
+<!ENTITY % sect.title.content
+ "title, subtitle?">
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+ "itemizedlist|orderedlist
+ |variablelist %local.list.class;">
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+ "note %local.admon.class;">
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+ "literallayout|programlisting %local.linespecific.class;">
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+ "para %local.para.class;">
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+ "blockquote
+ |mediaobject
+ |informaltable %local.informal.class;">
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+ "example|figure|table %local.formal.class;">
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+ "sidebar %local.compound.class;">
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+ "abstract|authorblurb|epigraph
+ %local.descobj.class;">
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+ "abbrev|acronym|citetitle|emphasis|footnote|phrase
+ |quote|trademark %local.gen.char.class;">
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+ "xref|link|ulink %local.link.char.class;">
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+ "command|computeroutput
+ |email|filename
+ |literal
+ |option
+ |replaceable
+ |systemitem|userinput
+ %local.tech.char.class;">
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+ "author|corpauthor|othercredit
+ |revhistory
+ %local.docinfo.char.class;">
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+ "inlinemediaobject %local.inlineobj.char.class;">
+<!ENTITY % local.common.attrib "">
+<!ENTITY % common.attrib
+ "id ID #IMPLIED
+ revisionflag (changed
+ |added
+ |deleted
+ |off) #IMPLIED
+ %local.common.attrib;"
+>
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+ "honorific|firstname|surname|lineage|othername|affiliation
+ |authorblurb
+ %local.person.ident.mix;">
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+ "abbrev|abstract|author
+ |authorgroup|bibliomisc
+ |copyright|corpauthor|date|edition
+ |editor|issuenum
+ |othercredit
+ |pubdate|publishername
+ |releaseinfo|revhistory
+ |subtitle|title|volumenum|citetitle
+ |%person.ident.mix;
+ %local.bibliocomponent.mix;">
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.component.mix;">
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.sidebar.mix;">
+<!ENTITY % local.revdescription.mix "">
+<!ENTITY % revdescription.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.revdescription.mix;">
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ %local.footnote.mix;">
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ %local.example.mix;">
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.admon.mix;">
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+ "%linespecific.class;
+ |%informal.class;
+ %local.figure.mix;">
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |mediaobject
+ %local.tabentry.mix;">
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.legalnotice.mix;">
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.textobject.mix;">
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%inlineobj.char.class;
+ %local.para.char.mix;">
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%docinfo.char.class;
+ |%inlineobj.char.class;
+ %local.title.char.mix;">
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+ "#PCDATA
+ |%link.char.class; |%tech.char.class;
+ |inlinemediaobject
+ %local.cptr.char.mix;">
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+ "#PCDATA
+ |replaceable
+ |inlinemediaobject
+ %local.smallcptr.char.mix;">
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+ "#PCDATA
+ |acronym|emphasis|trademark
+ |%link.char.class;
+ |inlinemediaobject
+ %local.word.char.mix;">
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+ "#PCDATA
+ |%link.char.class;
+ |emphasis|trademark
+ |replaceable
+ |inlinemediaobject
+ %local.docinfo.char.mix;">
+<!ENTITY % tbl.table.mdl
+ "(title, (mediaobject+|tgroup+))">
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.divcomponent.mix;">
+<!ENTITY % bookcomponent.content
+ "((%divcomponent.mix;)+, section*)
+ | section+">
+<!ENTITY aacute "&#x00E1;">
+<!ENTITY Aacute "&#x00C1;">
+<!ENTITY acirc "&#x00E2;">
+<!ENTITY Acirc "&#x00C2;">
+<!ENTITY agrave "&#x00E0;">
+<!ENTITY Agrave "&#x00C0;">
+<!ENTITY aring "&#x00E5;">
+<!ENTITY Aring "&#x00C5;">
+<!ENTITY atilde "&#x00E3;">
+<!ENTITY Atilde "&#x00C3;">
+<!ENTITY auml "&#x00E4;">
+<!ENTITY Auml "&#x00C4;">
+<!ENTITY aelig "&#x00E6;">
+<!ENTITY AElig "&#x00C6;">
+<!ENTITY ccedil "&#x00E7;">
+<!ENTITY Ccedil "&#x00C7;">
+<!ENTITY eth "&#x00F0;">
+<!ENTITY ETH "&#x00D0;">
+<!ENTITY eacute "&#x00E9;">
+<!ENTITY Eacute "&#x00C9;">
+<!ENTITY ecirc "&#x00EA;">
+<!ENTITY Ecirc "&#x00CA;">
+<!ENTITY egrave "&#x00E8;">
+<!ENTITY Egrave "&#x00C8;">
+<!ENTITY euml "&#x00EB;">
+<!ENTITY Euml "&#x00CB;">
+<!ENTITY iacute "&#x00ED;">
+<!ENTITY Iacute "&#x00CD;">
+<!ENTITY icirc "&#x00EE;">
+<!ENTITY Icirc "&#x00CE;">
+<!ENTITY igrave "&#x00EC;">
+<!ENTITY Igrave "&#x00CC;">
+<!ENTITY iuml "&#x00EF;">
+<!ENTITY Iuml "&#x00CF;">
+<!ENTITY ntilde "&#x00F1;">
+<!ENTITY Ntilde "&#x00D1;">
+<!ENTITY oacute "&#x00F3;">
+<!ENTITY Oacute "&#x00D3;">
+<!ENTITY ocirc "&#x00F4;">
+<!ENTITY Ocirc "&#x00D4;">
+<!ENTITY ograve "&#x00F2;">
+<!ENTITY Ograve "&#x00D2;">
+<!ENTITY oslash "&#x00F8;">
+<!ENTITY Oslash "&#x00D8;">
+<!ENTITY otilde "&#x00F5;">
+<!ENTITY Otilde "&#x00D5;">
+<!ENTITY ouml "&#x00F6;">
+<!ENTITY Ouml "&#x00D6;">
+<!ENTITY szlig "&#x00DF;">
+<!ENTITY thorn "&#x00FE;">
+<!ENTITY THORN "&#x00DE;">
+<!ENTITY uacute "&#x00FA;">
+<!ENTITY Uacute "&#x00DA;">
+<!ENTITY ucirc "&#x00FB;">
+<!ENTITY Ucirc "&#x00DB;">
+<!ENTITY ugrave "&#x00F9;">
+<!ENTITY Ugrave "&#x00D9;">
+<!ENTITY uuml "&#x00FC;">
+<!ENTITY Uuml "&#x00DC;">
+<!ENTITY yacute "&#x00FD;">
+<!ENTITY Yacute "&#x00DD;">
+<!ENTITY yuml "&#x00FF;">
+<!ENTITY half "&#x00BD;">
+<!ENTITY frac12 "&#x00BD;">
+<!ENTITY frac14 "&#x00BC;">
+<!ENTITY frac34 "&#x00BE;">
+<!ENTITY frac18 "&#x215B;">
+<!ENTITY frac38 "&#x215C;">
+<!ENTITY frac58 "&#x215D;">
+<!ENTITY frac78 "&#x215E;">
+<!ENTITY sup1 "&#x00B9;">
+<!ENTITY sup2 "&#x00B2;">
+<!ENTITY sup3 "&#x00B3;">
+<!ENTITY plus "&#x002B;">
+<!ENTITY plusmn "&#x00B1;">
+<!ENTITY lt "&#38;#60;">
+<!ENTITY equals "&#x003D;">
+<!ENTITY gt "&#x003E;">
+<!ENTITY divide "&#x00F7;">
+<!ENTITY times "&#x00D7;">
+<!ENTITY curren "&#x00A4;">
+<!ENTITY pound "&#x00A3;">
+<!ENTITY dollar "&#x0024;">
+<!ENTITY cent "&#x00A2;">
+<!ENTITY yen "&#x00A5;">
+<!ENTITY num "&#x0023;">
+<!ENTITY percnt "&#x0025;">
+<!ENTITY amp "&#38;#38;">
+<!ENTITY ast "&#x002A;">
+<!ENTITY commat "&#x0040;">
+<!ENTITY lsqb "&#x005B;">
+<!ENTITY bsol "&#x005C;">
+<!ENTITY rsqb "&#x005D;">
+<!ENTITY lcub "&#x007B;">
+<!ENTITY horbar "&#x2015;">
+<!ENTITY verbar "&#x007C;">
+<!ENTITY rcub "&#x007D;">
+<!ENTITY micro "&#x00B5;">
+<!ENTITY ohm "&#x2126;">
+<!ENTITY deg "&#x00B0;">
+<!ENTITY ordm "&#x00BA;">
+<!ENTITY ordf "&#x00AA;">
+<!ENTITY sect "&#x00A7;">
+<!ENTITY para "&#x00B6;">
+<!ENTITY middot "&#x00B7;">
+<!ENTITY larr "&#x2190;">
+<!ENTITY rarr "&#x2192;">
+<!ENTITY uarr "&#x2191;">
+<!ENTITY darr "&#x2193;">
+<!ENTITY copy "&#x00A9;">
+<!ENTITY reg "&#x00AE;">
+<!ENTITY trade "&#x2122;">
+<!ENTITY brvbar "&#x00A6;">
+<!ENTITY not "&#x00AC;">
+<!ENTITY sung "&#x2669;">
+<!ENTITY excl "&#x0021;">
+<!ENTITY iexcl "&#x00A1;">
+<!ENTITY quot "&#x0022;">
+<!ENTITY apos "&#x0027;">
+<!ENTITY lpar "&#x0028;">
+<!ENTITY rpar "&#x0029;">
+<!ENTITY comma "&#x002C;">
+<!ENTITY lowbar "&#x005F;">
+<!ENTITY hyphen "&#x002D;">
+<!ENTITY period "&#x002E;">
+<!ENTITY sol "&#x002F;">
+<!ENTITY colon "&#x003A;">
+<!ENTITY semi "&#x003B;">
+<!ENTITY quest "&#x003F;">
+<!ENTITY iquest "&#x00BF;">
+<!ENTITY laquo "&#x00AB;">
+<!ENTITY raquo "&#x00BB;">
+<!ENTITY lsquo "&#x2018;">
+<!ENTITY rsquo "&#x2019;">
+<!ENTITY ldquo "&#x201C;">
+<!ENTITY rdquo "&#x201D;">
+<!ENTITY nbsp "&#x00A0;">
+<!ENTITY shy "&#x00AD;">
+<!ENTITY emsp "&#x2003;">
+<!ENTITY ensp "&#x2002;">
+<!ENTITY emsp13 "&#x2004;">
+<!ENTITY emsp14 "&#x2005;">
+<!ENTITY numsp "&#x2007;">
+<!ENTITY puncsp "&#x2008;">
+<!ENTITY thinsp "&#x2009;">
+<!ENTITY hairsp "&#x200A;">
+<!ENTITY mdash "&#x2014;">
+<!ENTITY ndash "&#x2013;">
+<!ENTITY dash "&#x2010;">
+<!ENTITY blank "&#x2423;">
+<!ENTITY hellip "&#x2026;">
+<!ENTITY nldr "&#x2025;">
+<!ENTITY frac13 "&#x2153;">
+<!ENTITY frac23 "&#x2154;">
+<!ENTITY frac15 "&#x2155;">
+<!ENTITY frac25 "&#x2156;">
+<!ENTITY frac35 "&#x2157;">
+<!ENTITY frac45 "&#x2158;">
+<!ENTITY frac16 "&#x2159;">
+<!ENTITY frac56 "&#x215A;">
+<!ENTITY incare "&#x2105;">
+<!ENTITY block "&#x2588;">
+<!ENTITY uhblk "&#x2580;">
+<!ENTITY lhblk "&#x2584;">
+<!ENTITY blk14 "&#x2591;">
+<!ENTITY blk12 "&#x2592;">
+<!ENTITY blk34 "&#x2593;">
+<!ENTITY marker "&#x25AE;">
+<!ENTITY cir "&#x25CB;">
+<!ENTITY squ "&#x25A1;">
+<!ENTITY rect "&#x25AD;">
+<!ENTITY utri "&#x25B5;">
+<!ENTITY dtri "&#x25BF;">
+<!ENTITY star "&#x22C6;">
+<!ENTITY bull "&#x2022;">
+<!ENTITY squf "&#x25AA;">
+<!ENTITY utrif "&#x25B4;">
+<!ENTITY dtrif "&#x25BE;">
+<!ENTITY ltrif "&#x25C2;">
+<!ENTITY rtrif "&#x25B8;">
+<!ENTITY clubs "&#x2663;">
+<!ENTITY diams "&#x2666;">
+<!ENTITY hearts "&#x2665;">
+<!ENTITY spades "&#x2660;">
+<!ENTITY malt "&#x2720;">
+<!ENTITY dagger "&#x2020;">
+<!ENTITY Dagger "&#x2021;">
+<!ENTITY check "&#x2713;">
+<!ENTITY cross "&#x2717;">
+<!ENTITY sharp "&#x266F;">
+<!ENTITY flat "&#x266D;">
+<!ENTITY male "&#x2642;">
+<!ENTITY female "&#x2640;">
+<!ENTITY phone "&#x260E;">
+<!ENTITY telrec "&#x2315;">
+<!ENTITY copysr "&#x2117;">
+<!ENTITY caret "&#x2041;">
+<!ENTITY lsquor "&#x201A;">
+<!ENTITY ldquor "&#x201E;">
+<!ENTITY fflig "&#xFB00;">
+<!ENTITY filig "&#xFB01;">
+<!ENTITY ffilig "&#xFB03;">
+<!ENTITY ffllig "&#xFB04;">
+<!ENTITY fllig "&#xFB02;">
+<!ENTITY mldr "&#x2026;">
+<!ENTITY rdquor "&#x201C;">
+<!ENTITY rsquor "&#x2018;">
+<!ENTITY vellip "&#x22EE;">
+<!ENTITY hybull "&#x2043;">
+<!ENTITY loz "&#x25CA;">
+<!ENTITY lozf "&#x2726;">
+<!ENTITY ltri "&#x25C3;">
+<!ENTITY rtri "&#x25B9;">
+<!ENTITY starf "&#x2605;">
+<!ENTITY natur "&#x266E;">
+<!ENTITY rx "&#x211E;">
+<!ENTITY sext "&#x2736;">
+<!ENTITY target "&#x2316;">
+<!ENTITY dlcrop "&#x230D;">
+<!ENTITY drcrop "&#x230C;">
+<!ENTITY ulcrop "&#x230F;">
+<!ENTITY urcrop "&#x230E;">
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+ "BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+ | EPS | EQN | FAX | GIF | GIF87a | GIF89a
+ | JPG | JPEG | IGES | PCX
+ | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+ | linespecific
+ %local.notation.class;">
+<!NOTATION BMP PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF SYSTEM "DITROFF">
+<!NOTATION DVI SYSTEM "DVI">
+<!NOTATION EPS PUBLIC
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN SYSTEM "EQN">
+<!NOTATION FAX PUBLIC
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF SYSTEM "GIF">
+<!NOTATION GIF87a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+<!NOTATION GIF89a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG SYSTEM "JPG">
+<!NOTATION JPEG SYSTEM "JPG">
+<!NOTATION IGES PUBLIC
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC SYSTEM "PIC">
+<!NOTATION PNG SYSTEM "http://www.w3.org/TR/REC-png">
+<!NOTATION PS SYSTEM "PS">
+<!NOTATION SGML PUBLIC
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL SYSTEM "TBL">
+<!NOTATION TEX PUBLIC
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF SYSTEM "TIFF">
+<!NOTATION WMF PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG SYSTEM "WPG">
+<!NOTATION linespecific SYSTEM "linespecific">
+<!ENTITY euro "&#x20AC;">
+<!ENTITY % yesorno.attvals "CDATA">
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix
+ "videoobject|audioobject|imageobject %local.mediaobject.mix;">
+<!ENTITY % role.attrib
+ "role CDATA #IMPLIED">
+<!ENTITY % label.attrib
+ "label CDATA #IMPLIED">
+<!ENTITY % linespecific.attrib
+ "format NOTATION
+ (linespecific) 'linespecific'
+ linenumbering (numbered|unnumbered) #IMPLIED">
+<!ENTITY % linkendreq.attrib
+ "linkend IDREF #REQUIRED">
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+ "mark CDATA #IMPLIED
+ %local.mark.attrib;"
+>
+<!ENTITY % moreinfo.attrib
+ "moreinfo (refentry|none) 'none'">
+<!ENTITY % pagenum.attrib
+ "pagenum CDATA #IMPLIED">
+<!ENTITY % local.status.attrib "">
+<!ENTITY % status.attrib
+ "status CDATA #IMPLIED
+ %local.status.attrib;"
+>
+<!ENTITY % width.attrib
+ "width CDATA #IMPLIED">
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+<!ELEMENT title (%title.char.mix;)*>
+<!ATTLIST title
+ %pagenum.attrib;
+ %common.attrib;
+ %title.role.attrib;
+ %local.title.attrib;
+>
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!ATTLIST subtitle
+ %common.attrib;
+ %subtitle.role.attrib;
+ %local.subtitle.attrib;
+>
+<!ENTITY % local.bibliomixed.attrib "">
+<!ENTITY % bibliomixed.role.attrib "%role.attrib;">
+<!ATTLIST bibliomixed
+ %common.attrib;
+ %bibliomixed.role.attrib;
+ %local.bibliomixed.attrib;
+>
+<!ENTITY % local.articleinfo.attrib "">
+<!ENTITY % articleinfo.role.attrib "%role.attrib;">
+<!ATTLIST articleinfo
+ %common.attrib;
+ %articleinfo.role.attrib;
+ %local.articleinfo.attrib;
+>
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!ATTLIST bibliomset
+ relation CDATA #IMPLIED
+ %bibliomset.role.attrib;
+ %common.attrib;
+ %local.bibliomset.attrib;
+>
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!ATTLIST bibliomisc
+ %common.attrib;
+ %bibliomisc.role.attrib;
+ %local.bibliomisc.attrib;
+>
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+<!ELEMENT subjectset (subject+)>
+<!ATTLIST subjectset
+ scheme NMTOKEN #IMPLIED
+ %common.attrib;
+ %subjectset.role.attrib;
+ %local.subjectset.attrib;
+>
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+<!ELEMENT subject (subjectterm+)>
+<!ATTLIST subject
+ weight CDATA #IMPLIED
+ %common.attrib;
+ %subject.role.attrib;
+ %local.subject.attrib;
+>
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+<!ELEMENT subjectterm (#PCDATA)>
+<!ATTLIST subjectterm
+ %common.attrib;
+ %subjectterm.role.attrib;
+ %local.subjectterm.attrib;
+>
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+<!ELEMENT keywordset (keyword+)>
+<!ATTLIST keywordset
+ %common.attrib;
+ %keywordset.role.attrib;
+ %local.keywordset.attrib;
+>
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+<!ELEMENT keyword (#PCDATA)>
+<!ATTLIST keyword
+ %common.attrib;
+ %keyword.role.attrib;
+ %local.keyword.attrib;
+>
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+<!ATTLIST sidebar
+ %common.attrib;
+ %sidebar.role.attrib;
+ %local.sidebar.attrib;
+>
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!ATTLIST abstract
+ %common.attrib;
+ %abstract.role.attrib;
+ %local.abstract.attrib;
+>
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!ATTLIST authorblurb
+ %common.attrib;
+ %authorblurb.role.attrib;
+ %local.authorblurb.attrib;
+>
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!ATTLIST blockquote
+ %common.attrib;
+ %blockquote.role.attrib;
+ %local.blockquote.attrib;
+>
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+<!ELEMENT attribution (%para.char.mix;)*>
+<!ATTLIST attribution
+ %common.attrib;
+ %attribution.role.attrib;
+ %local.attribution.attrib;
+>
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!ATTLIST epigraph
+ %common.attrib;
+ %epigraph.role.attrib;
+ %local.epigraph.attrib;
+>
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!ATTLIST footnote
+ %label.attrib;
+ %common.attrib;
+ %footnote.role.attrib;
+ %local.footnote.attrib;
+>
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+<!ATTLIST para
+ %common.attrib;
+ %para.role.attrib;
+ %local.para.attrib;
+>
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!ATTLIST note
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+<!ELEMENT itemizedlist ((%formalobject.title.content;)?, listitem+)>
+<!ATTLIST itemizedlist spacing (normal
+ |compact) #IMPLIED
+ %mark.attrib;
+ %common.attrib;
+ %itemizedlist.role.attrib;
+ %local.itemizedlist.attrib;
+>
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+<!ELEMENT orderedlist ((%formalobject.title.content;)?, listitem+)>
+<!ATTLIST orderedlist
+ numeration (arabic
+ |upperalpha
+ |loweralpha
+ |upperroman
+ |lowerroman) #IMPLIED
+ inheritnum (inherit
+ |ignore) "ignore"
+ continuation (continues
+ |restarts) "restarts"
+ spacing (normal
+ |compact) #IMPLIED
+ %common.attrib;
+ %orderedlist.role.attrib;
+ %local.orderedlist.attrib;
+>
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+<!ELEMENT listitem ((%component.mix;)+)>
+<!ATTLIST listitem
+ override CDATA #IMPLIED
+ %common.attrib;
+ %listitem.role.attrib;
+ %local.listitem.attrib;
+>
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!ATTLIST variablelist
+ termlength CDATA #IMPLIED
+ %common.attrib;
+ %variablelist.role.attrib;
+ %local.variablelist.attrib;
+>
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+<!ELEMENT varlistentry (term+, listitem)>
+<!ATTLIST varlistentry
+ %common.attrib;
+ %varlistentry.role.attrib;
+ %local.varlistentry.attrib;
+>
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+<!ELEMENT term (%para.char.mix;)*>
+<!ATTLIST term
+ %common.attrib;
+ %term.role.attrib;
+ %local.term.attrib;
+>
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!ATTLIST example
+ %label.attrib;
+ %width.attrib;
+ %common.attrib;
+ %example.role.attrib;
+ %local.example.attrib;
+>
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+<!ATTLIST programlisting
+ %width.attrib;
+ %linespecific.attrib;
+ %common.attrib;
+ %programlisting.role.attrib;
+ %local.programlisting.attrib;
+>
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+<!ATTLIST literallayout
+ %width.attrib;
+ %linespecific.attrib;
+ class (monospaced|normal) "normal"
+ %common.attrib;
+ %literallayout.role.attrib;
+ %local.literallayout.attrib;
+>
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+ %link.char.class;)+)>
+<!ATTLIST figure
+ float %yesorno.attvals; '0'
+ pgwide %yesorno.attvals; #IMPLIED
+ %label.attrib;
+ %common.attrib;
+ %figure.role.attrib;
+ %local.figure.attrib;
+>
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+<!ELEMENT mediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*,
+ caption?)>
+<!ATTLIST mediaobject
+ %common.attrib;
+ %mediaobject.role.attrib;
+ %local.mediaobject.attrib;
+>
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+<!ELEMENT inlinemediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*)>
+<!ATTLIST inlinemediaobject
+ %common.attrib;
+ %inlinemediaobject.role.attrib;
+ %local.inlinemediaobject.attrib;
+>
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!ATTLIST videoobject
+ %common.attrib;
+ %videoobject.role.attrib;
+ %local.videoobject.attrib;
+>
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!ATTLIST audioobject
+ %common.attrib;
+ %audioobject.role.attrib;
+ %local.audioobject.attrib;
+>
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!ATTLIST imageobject
+ %common.attrib;
+ %imageobject.role.attrib;
+ %local.imageobject.attrib;
+>
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!ATTLIST textobject
+ %common.attrib;
+ %textobject.role.attrib;
+ %local.textobject.attrib;
+>
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+<!ATTLIST objectinfo
+ %common.attrib;
+ %objectinfo.role.attrib;
+ %local.objectinfo.attrib;
+>
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+ "
+ entityref ENTITY #IMPLIED
+ fileref CDATA #IMPLIED
+ format (%notation.class;)
+ #IMPLIED
+ srccredit CDATA #IMPLIED
+ %local.objectdata.attrib;"
+>
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+<!ELEMENT videodata EMPTY>
+<!ATTLIST videodata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %videodata.role.attrib;
+ %local.videodata.attrib;
+>
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+<!ELEMENT audiodata EMPTY>
+<!ATTLIST audiodata
+ %common.attrib;
+ %objectdata.attrib;
+ %local.audiodata.attrib;
+ %audiodata.role.attrib;
+>
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+<!ELEMENT imagedata EMPTY>
+<!ATTLIST imagedata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %local.imagedata.attrib;
+ %imagedata.role.attrib;
+>
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+<!ELEMENT caption (%textobject.mix;)*>
+<!ATTLIST caption
+ %common.attrib;
+ %local.caption.attrib;
+ %caption.role.attrib;
+>
+<!ENTITY % tables.role.attrib "%role.attrib;">
+<!ENTITY % bodyatt
+ "%common.attrib;
+ %label.attrib;
+ %tables.role.attrib;">
+<!ENTITY % common.table.attribs
+ "%bodyatt;">
+<!ENTITY % tbl.tgroup.att "%common.attrib;">
+<!ENTITY % tbl.colspec.att "%common.attrib;">
+<!ENTITY % tbl.tbody.att "%common.attrib;">
+<!ENTITY % tbl.thead.att "%common.attrib;">
+<!ENTITY % tbl.row.att "%common.attrib;">
+<!ENTITY % tbl.entry.att "%common.attrib;">
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+<!ENTITY % yesorno 'NMTOKEN'>
+<!ENTITY % tbl.table.name "table">
+<!ENTITY % tbl.table.att "
+ pgwide %yesorno; #IMPLIED ">
+<!ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody">
+<!ENTITY % tbl.row.mdl "entry+">
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+<!ATTLIST %tbl.table.name;
+ frame (top|bottom|topbot|all|sides|none) #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ %tbl.table.att;
+ %bodyatt;
+>
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+<!ATTLIST tgroup
+ cols NMTOKEN #REQUIRED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ %tbl.tgroup.att;
+>
+<!ELEMENT colspec EMPTY >
+<!ATTLIST colspec
+ colnum NMTOKEN #IMPLIED
+ colname NMTOKEN #IMPLIED
+ colwidth CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ %tbl.colspec.att;
+>
+<!ELEMENT thead (row+)>
+<!ATTLIST thead
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.thead.att;
+>
+<!ELEMENT tbody (row+)>
+<!ATTLIST tbody
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.tbody.att;
+>
+<!ELEMENT row (%tbl.row.mdl;)>
+<!ATTLIST row
+ rowsep %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.row.att;
+>
+<!ELEMENT entry %tbl.entry.mdl;>
+<!ATTLIST entry
+ colname NMTOKEN #IMPLIED
+ namest NMTOKEN #IMPLIED
+ nameend NMTOKEN #IMPLIED
+ morerows NMTOKEN #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.entry.att;
+>
+<!ENTITY % local.informaltable.attrib "">
+<!ATTLIST informaltable
+ frame (top
+ |bottom
+ |topbot
+ |all
+ |sides
+ |none) #IMPLIED
+ colsep %yesorno.attvals; #IMPLIED
+ rowsep %yesorno.attvals; #IMPLIED
+ %common.table.attribs;
+ %tbl.table.att;
+ %local.informaltable.attrib;
+>
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+<!ATTLIST affiliation
+ %common.attrib;
+ %affiliation.role.attrib;
+ %local.affiliation.attrib;
+>
+<!ENTITY % local.jobtitle.attrib "">
+<!ENTITY % jobtitle.role.attrib "%role.attrib;">
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!ATTLIST jobtitle
+ %common.attrib;
+ %jobtitle.role.attrib;
+ %local.jobtitle.attrib;
+>
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!ATTLIST author
+ %common.attrib;
+ %author.role.attrib;
+ %local.author.attrib;
+>
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+<!ATTLIST authorgroup
+ %common.attrib;
+ %authorgroup.role.attrib;
+ %local.authorgroup.attrib;
+>
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!ATTLIST authorinitials
+ %common.attrib;
+ %authorinitials.role.attrib;
+ %local.authorinitials.attrib;
+>
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+<!ELEMENT copyright (year+, holder*)>
+<!ATTLIST copyright
+ %common.attrib;
+ %copyright.role.attrib;
+ %local.copyright.attrib;
+>
+<!ENTITY % local.year.attrib "">
+<!ENTITY % year.role.attrib "%role.attrib;">
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!ATTLIST year
+ %common.attrib;
+ %year.role.attrib;
+ %local.year.attrib;
+>
+<!ENTITY % local.holder.attrib "">
+<!ENTITY % holder.role.attrib "%role.attrib;">
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!ATTLIST holder
+ %common.attrib;
+ %holder.role.attrib;
+ %local.holder.attrib;
+>
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!ATTLIST corpauthor
+ %common.attrib;
+ %corpauthor.role.attrib;
+ %local.corpauthor.attrib;
+>
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!ATTLIST date
+ %common.attrib;
+ %date.role.attrib;
+ %local.date.attrib;
+>
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!ATTLIST edition
+ %common.attrib;
+ %edition.role.attrib;
+ %local.edition.attrib;
+>
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!ATTLIST editor
+ %common.attrib;
+ %editor.role.attrib;
+ %local.editor.attrib;
+>
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!ATTLIST issuenum
+ %common.attrib;
+ %issuenum.role.attrib;
+ %local.issuenum.attrib;
+>
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!ATTLIST legalnotice
+ %common.attrib;
+ %legalnotice.role.attrib;
+ %local.legalnotice.attrib;
+>
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!ATTLIST orgname
+ %common.attrib;
+ %orgname.role.attrib;
+ %local.orgname.attrib;
+>
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!ATTLIST othercredit
+ %common.attrib;
+ %othercredit.role.attrib;
+ %local.othercredit.attrib;
+>
+<!ENTITY % local.firstname.attrib "">
+<!ENTITY % firstname.role.attrib "%role.attrib;">
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!ATTLIST firstname
+ %common.attrib;
+ %firstname.role.attrib;
+ %local.firstname.attrib;
+>
+<!ENTITY % local.honorific.attrib "">
+<!ENTITY % honorific.role.attrib "%role.attrib;">
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!ATTLIST honorific
+ %common.attrib;
+ %honorific.role.attrib;
+ %local.honorific.attrib;
+>
+<!ENTITY % local.lineage.attrib "">
+<!ENTITY % lineage.role.attrib "%role.attrib;">
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!ATTLIST lineage
+ %common.attrib;
+ %lineage.role.attrib;
+ %local.lineage.attrib;
+>
+<!ENTITY % local.othername.attrib "">
+<!ENTITY % othername.role.attrib "%role.attrib;">
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!ATTLIST othername
+ %common.attrib;
+ %othername.role.attrib;
+ %local.othername.attrib;
+>
+<!ENTITY % local.surname.attrib "">
+<!ENTITY % surname.role.attrib "%role.attrib;">
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!ATTLIST surname
+ %common.attrib;
+ %surname.role.attrib;
+ %local.surname.attrib;
+>
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!ATTLIST pubdate
+ %common.attrib;
+ %pubdate.role.attrib;
+ %local.pubdate.attrib;
+>
+<!ENTITY % local.publishername.attrib "">
+<!ENTITY % publishername.role.attrib "%role.attrib;">
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!ATTLIST publishername
+ %common.attrib;
+ %publishername.role.attrib;
+ %local.publishername.attrib;
+>
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!ATTLIST releaseinfo
+ %common.attrib;
+ %releaseinfo.role.attrib;
+ %local.releaseinfo.attrib;
+>
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+<!ELEMENT revhistory (revision+)>
+<!ATTLIST revhistory
+ %common.attrib;
+ %revhistory.role.attrib;
+ %local.revhistory.attrib;
+>
+<!ENTITY % local.revision.attrib "">
+<!ENTITY % revision.role.attrib "%role.attrib;">
+<!ELEMENT revision (revnumber, date, authorinitials*,
+ (revremark|revdescription)?)>
+<!ATTLIST revision
+ %common.attrib;
+ %revision.role.attrib;
+ %local.revision.attrib;
+>
+<!ENTITY % local.revnumber.attrib "">
+<!ENTITY % revnumber.role.attrib "%role.attrib;">
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!ATTLIST revnumber
+ %common.attrib;
+ %revnumber.role.attrib;
+ %local.revnumber.attrib;
+>
+<!ENTITY % local.revremark.attrib "">
+<!ENTITY % revremark.role.attrib "%role.attrib;">
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!ATTLIST revremark
+ %common.attrib;
+ %revremark.role.attrib;
+ %local.revremark.attrib;
+>
+<!ENTITY % local.revdescription.attrib "">
+<!ENTITY % revdescription.role.attrib "%role.attrib;">
+<!ELEMENT revdescription ((%revdescription.mix;)+)>
+<!ATTLIST revdescription
+ %common.attrib;
+ %revdescription.role.attrib;
+ %local.revdescription.attrib;
+>
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!ATTLIST volumenum
+ %common.attrib;
+ %volumenum.role.attrib;
+ %local.volumenum.attrib;
+>
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+<!ELEMENT command (%cptr.char.mix;)*>
+<!ATTLIST command
+ %moreinfo.attrib;
+ %common.attrib;
+ %command.role.attrib;
+ %local.command.attrib;
+>
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!ATTLIST computeroutput
+ %moreinfo.attrib;
+ %common.attrib;
+ %computeroutput.role.attrib;
+ %local.computeroutput.attrib;
+>
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!ATTLIST email
+ %common.attrib;
+ %email.role.attrib;
+ %local.email.attrib;
+>
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+<!ELEMENT filename (%smallcptr.char.mix;)*>
+<!ATTLIST filename
+ class (headerfile
+ |devicefile
+ |libraryfile
+ |directory
+ |symlink) #IMPLIED
+ path CDATA #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %filename.role.attrib;
+ %local.filename.attrib;
+>
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!ATTLIST lineannotation
+ %common.attrib;
+ %lineannotation.role.attrib;
+ %local.lineannotation.attrib;
+>
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!ATTLIST literal
+ %moreinfo.attrib;
+ %common.attrib;
+ %literal.role.attrib;
+ %local.literal.attrib;
+>
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+<!ELEMENT option (%smallcptr.char.mix;)*>
+<!ATTLIST option
+ %common.attrib;
+ %option.role.attrib;
+ %local.option.attrib;
+>
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+<!ATTLIST replaceable
+ class (command
+ |function
+ |option
+ |parameter) #IMPLIED
+ %common.attrib;
+ %replaceable.role.attrib;
+ %local.replaceable.attrib;
+>
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+<!ATTLIST systemitem
+ class (constant
+ |groupname
+ |library
+ |macro
+ |osname
+ |resource
+ |systemname
+ |username) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %systemitem.role.attrib;
+ %local.systemitem.attrib;
+>
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!ATTLIST userinput
+ %moreinfo.attrib;
+ %common.attrib;
+ %userinput.role.attrib;
+ %local.userinput.attrib;
+>
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!ATTLIST abbrev
+ %common.attrib;
+ %abbrev.role.attrib;
+ %local.abbrev.attrib;
+>
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+<!ELEMENT acronym (%word.char.mix;)*>
+<!ATTLIST acronym
+ %common.attrib;
+ %acronym.role.attrib;
+ %local.acronym.attrib;
+>
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!ATTLIST citetitle
+ pubwork (article
+ |book
+ |chapter
+ |part
+ |refentry
+ |section
+ |journal
+ |series
+ |set
+ |manuscript) #IMPLIED
+ %common.attrib;
+ %citetitle.role.attrib;
+ %local.citetitle.attrib;
+>
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!ATTLIST emphasis
+ %common.attrib;
+ %emphasis.role.attrib;
+ %local.emphasis.attrib;
+>
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+<!ELEMENT phrase (%para.char.mix;)*>
+<!ATTLIST phrase
+ %common.attrib;
+ %phrase.role.attrib;
+ %local.phrase.attrib;
+>
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+<!ELEMENT quote (%para.char.mix;)*>
+<!ATTLIST quote
+ %common.attrib;
+ %quote.role.attrib;
+ %local.quote.attrib;
+>
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+<!ATTLIST trademark
+ class (service
+ |trade
+ |registered
+ |copyright) 'trade'
+ %common.attrib;
+ %trademark.role.attrib;
+ %local.trademark.attrib;
+>
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+<!ELEMENT link (%para.char.mix;)*>
+<!ATTLIST link
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; type CDATA #IMPLIED
+ %common.attrib;
+ %link.role.attrib;
+ %local.link.attrib;
+>
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+<!ELEMENT ulink (%para.char.mix;)*>
+<!ATTLIST ulink
+ url CDATA #REQUIRED
+ type CDATA #IMPLIED
+ %common.attrib;
+ %ulink.role.attrib;
+ %local.ulink.attrib;
+>
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+<!ELEMENT xref EMPTY>
+<!ATTLIST xref
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; %common.attrib;
+ %xref.role.attrib;
+ %local.xref.attrib;
+>
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class "appendix %local.appendix.class;">
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+<!ATTLIST appendix
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %appendix.role.attrib;
+ %local.appendix.attrib;
+>
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+<!ATTLIST section
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %section.role.attrib;
+ %local.section.attrib;
+>
+<!ENTITY % local.bibliography.attrib "">
+<!ENTITY % bibliography.role.attrib "%role.attrib;">
+<!ATTLIST bibliography
+ %status.attrib;
+ %common.attrib;
+ %bibliography.role.attrib;
+ %local.bibliography.attrib;
+>
+<!ENTITY % local.bibliodiv.attrib "">
+<!ENTITY % bibliodiv.role.attrib "%role.attrib;">
+<!ATTLIST bibliodiv
+ %status.attrib;
+ %common.attrib;
+ %bibliodiv.role.attrib;
+ %local.bibliodiv.attrib;
+>
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+<!ATTLIST article
+ class (journalarticle
+ |productsheet
+ |whitepaper
+ |techreport
+ |specification
+ |faq) #IMPLIED
+ parentbook IDREF #IMPLIED
+ %status.attrib;
+ %common.attrib;
+ %article.role.attrib;
+ %local.article.attrib;
+>
+<!ELEMENT objectinfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT section (sectioninfo?,
+ (%sect.title.content;),
+ (((%divcomponent.mix;)+, section*)
+ | section+))>
+<!ELEMENT sectioninfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT authorgroup ((author|editor|corpauthor|othercredit)+)>
+<!ELEMENT affiliation (jobtitle?, orgname?)>
+<!ELEMENT para (%para.char.mix;)*>
+<!ELEMENT informaltable (mediaobject+|tgroup+) >
+<!ELEMENT replaceable (#PCDATA
+ | %link.char.class;
+ | inlinemediaobject)*>
+<!ELEMENT trademark (#PCDATA
+ | %link.char.class;
+ | %tech.char.class;
+ | inlinemediaobject
+ | emphasis)*>
+<!ELEMENT systemitem (%cptr.char.mix;)*>
+<!ELEMENT article ((%div.title.content;)?, articleinfo?,
+ (%bookcomponent.content;),
+ ((%appendix.class;)|bibliography)*)>
+<!ELEMENT articleinfo ((mediaobject | legalnotice
+ | subjectset | keywordset | %bibliocomponent.mix;)+)>
+<!ELEMENT appendix ((%bookcomponent.title.content;),
+ (%bookcomponent.content;))>
+<!ELEMENT bibliography ((%bookcomponent.title.content;)?,
+ (%component.mix;)*,
+ (bibliodiv+ | bibliomixed+))>
+<!ELEMENT bibliomixed (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!ELEMENT bibliodiv ((%sect.title.content;)?, (%component.mix;)*,
+ (bibliomixed)+)>
+<!ELEMENT sidebar ((%formalobject.title.content;)?,
+ (%sidebar.mix;)+)>
+<!ELEMENT programlisting (%para.char.mix; | lineannotation)*>
+<!ELEMENT literallayout (%para.char.mix; | lineannotation)*>
diff --git a/tests/docbook/dtd/simple/4.1.2.4/sdocbookref.dtd b/tests/docbook/dtd/simple/4.1.2.4/sdocbookref.dtd
new file mode 100644
index 00000000..9fa0cec8
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/sdocbookref.dtd
@@ -0,0 +1,1688 @@
+<!-- *********************************************************************
+ *** THIS IS THE FLATTENED DTD. DO NOT EDIT THIS DTD BY HAND, EDIT ***
+ *** THE CUSTOMIZATION LAYER AND REGNERATE THE FLATTENED DTD! ********
+ ********************************************************************* -->
+
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML RefEntry V4.1.2.4 DTD
+ Part of the Simplified DocBook XML V4.1.2.4 DTD
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+
+ Common declaration:
+
+ <?xml version="1.0"?>
+ <!DOCTYPE refentry
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML RefEntry V4.1.2.4//EN"
+ "http://nwalsh.com/docbook/simple/4.1.2.4/sdocbookref.dtd">
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % local.refclass.char.mix "">
+<!ENTITY % refclass.char.mix
+ "#PCDATA
+ %local.refclass.char.mix;">
+<!ENTITY % refsect.title.content "title, subtitle?">
+<!ENTITY % formalobject.title.content "title">
+<!ENTITY % div.title.content "title, subtitle?">
+<!ENTITY % bookcomponent.title.content
+ "title, subtitle?">
+<!ENTITY % sect.title.content
+ "title, subtitle?">
+<!ENTITY % local.list.class "">
+<!ENTITY % list.class
+ "itemizedlist|orderedlist
+ |variablelist %local.list.class;">
+<!ENTITY % local.admon.class "">
+<!ENTITY % admon.class
+ "note %local.admon.class;">
+<!ENTITY % local.linespecific.class "">
+<!ENTITY % linespecific.class
+ "literallayout|programlisting %local.linespecific.class;">
+<!ENTITY % local.para.class "">
+<!ENTITY % para.class
+ "para %local.para.class;">
+<!ENTITY % local.informal.class "">
+<!ENTITY % informal.class
+ "blockquote
+ |mediaobject
+ |informaltable %local.informal.class;">
+<!ENTITY % local.formal.class "">
+<!ENTITY % formal.class
+ "example|figure|table %local.formal.class;">
+<!ENTITY % local.compound.class "">
+<!ENTITY % compound.class
+ "sidebar %local.compound.class;">
+<!ENTITY % local.descobj.class "">
+<!ENTITY % descobj.class
+ "abstract|authorblurb|epigraph
+ %local.descobj.class;">
+<!ENTITY % local.gen.char.class "">
+<!ENTITY % gen.char.class
+ "abbrev|acronym|citetitle|emphasis|footnote|phrase
+ |quote|trademark %local.gen.char.class;">
+<!ENTITY % local.link.char.class "">
+<!ENTITY % link.char.class
+ "xref|link|ulink %local.link.char.class;">
+<!ENTITY % local.tech.char.class "">
+<!ENTITY % tech.char.class
+ "command|computeroutput
+ |email|filename
+ |literal
+ |option
+ |replaceable
+ |systemitem|userinput
+ %local.tech.char.class;">
+<!ENTITY % local.docinfo.char.class "">
+<!ENTITY % docinfo.char.class
+ "author|corpauthor|othercredit
+ |revhistory
+ %local.docinfo.char.class;">
+<!ENTITY % local.inlineobj.char.class "">
+<!ENTITY % inlineobj.char.class
+ "inlinemediaobject %local.inlineobj.char.class;">
+<!ENTITY % local.common.attrib "">
+<!ENTITY % common.attrib
+ "id ID #IMPLIED
+ revisionflag (changed
+ |added
+ |deleted
+ |off) #IMPLIED
+ %local.common.attrib;"
+>
+<!ENTITY % local.person.ident.mix "">
+<!ENTITY % person.ident.mix
+ "honorific|firstname|surname|lineage|othername|affiliation
+ |authorblurb
+ %local.person.ident.mix;">
+<!ENTITY % local.bibliocomponent.mix "">
+<!ENTITY % bibliocomponent.mix
+ "abbrev|abstract|author
+ |authorgroup|bibliomisc
+ |copyright|corpauthor|date|edition
+ |editor|issuenum
+ |othercredit
+ |pubdate|publishername
+ |releaseinfo|revhistory
+ |subtitle|title|volumenum|citetitle
+ |%person.ident.mix;
+ %local.bibliocomponent.mix;">
+<!ENTITY % local.component.mix "">
+<!ENTITY % component.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.component.mix;">
+<!ENTITY % local.sidebar.mix "">
+<!ENTITY % sidebar.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.sidebar.mix;">
+<!ENTITY % local.revdescription.mix "">
+<!ENTITY % revdescription.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.revdescription.mix;">
+<!ENTITY % local.footnote.mix "">
+<!ENTITY % footnote.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ %local.footnote.mix;">
+<!ENTITY % local.example.mix "">
+<!ENTITY % example.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ %local.example.mix;">
+<!ENTITY % local.admon.mix "">
+<!ENTITY % admon.mix
+ "%list.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class;
+ %local.admon.mix;">
+<!ENTITY % local.figure.mix "">
+<!ENTITY % figure.mix
+ "%linespecific.class;
+ |%informal.class;
+ %local.figure.mix;">
+<!ENTITY % local.tabentry.mix "">
+<!ENTITY % tabentry.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |mediaobject
+ %local.tabentry.mix;">
+<!ENTITY % local.legalnotice.mix "">
+<!ENTITY % legalnotice.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.legalnotice.mix;">
+<!ENTITY % local.textobject.mix "">
+<!ENTITY % textobject.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |blockquote
+ %local.textobject.mix;">
+<!ENTITY % local.para.char.mix "">
+<!ENTITY % para.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%inlineobj.char.class;
+ %local.para.char.mix;">
+<!ENTITY % local.title.char.mix "">
+<!ENTITY % title.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ |%docinfo.char.class;
+ |%inlineobj.char.class;
+ %local.title.char.mix;">
+<!ENTITY % local.cptr.char.mix "">
+<!ENTITY % cptr.char.mix
+ "#PCDATA
+ |%link.char.class; |%tech.char.class;
+ |inlinemediaobject
+ %local.cptr.char.mix;">
+<!ENTITY % local.smallcptr.char.mix "">
+<!ENTITY % smallcptr.char.mix
+ "#PCDATA
+ |replaceable
+ |inlinemediaobject
+ %local.smallcptr.char.mix;">
+<!ENTITY % local.word.char.mix "">
+<!ENTITY % word.char.mix
+ "#PCDATA
+ |acronym|emphasis|trademark
+ |%link.char.class;
+ |inlinemediaobject
+ %local.word.char.mix;">
+<!ENTITY % local.docinfo.char.mix "">
+<!ENTITY % docinfo.char.mix
+ "#PCDATA
+ |%link.char.class;
+ |emphasis|trademark
+ |replaceable
+ |inlinemediaobject
+ %local.docinfo.char.mix;">
+<!ENTITY % tbl.table.mdl
+ "(title, (mediaobject+|tgroup+))">
+<!ENTITY % local.divcomponent.mix "">
+<!ENTITY % divcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.divcomponent.mix;">
+<!ENTITY % bookcomponent.content
+ "((%divcomponent.mix;)+, section*)
+ | section+">
+<!ENTITY % local.refinline.char.mix "">
+<!ENTITY % refinline.char.mix
+ "#PCDATA
+ |%gen.char.class;
+ |%link.char.class; |%tech.char.class;
+ %local.refinline.char.mix;">
+<!ENTITY % local.refcomponent.mix "">
+<!ENTITY % refcomponent.mix
+ "%list.class; |%admon.class;
+ |%linespecific.class;
+ |%para.class; |%informal.class;
+ |%formal.class; |%compound.class;
+ |%descobj.class;
+ %local.divcomponent.mix;">
+<!ELEMENT refentry (refentryinfo?, refmeta?, (%link.char.class;)*,
+ refnamediv, refsynopsisdiv?, refsect1+)>
+<!ELEMENT refentryinfo ((mediaobject | legalnotice
+ | subjectset | keywordset
+ | %bibliocomponent.mix;)+)>
+<!ELEMENT refmeta (refentrytitle, manvolnum?, refmiscinfo*)>
+<!ELEMENT refsect1info ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refsect2info ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refsect3info ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refsynopsisdivinfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
+ (%link.char.class;)*)>
+<!ENTITY aacute "&#x00E1;">
+<!ENTITY Aacute "&#x00C1;">
+<!ENTITY acirc "&#x00E2;">
+<!ENTITY Acirc "&#x00C2;">
+<!ENTITY agrave "&#x00E0;">
+<!ENTITY Agrave "&#x00C0;">
+<!ENTITY aring "&#x00E5;">
+<!ENTITY Aring "&#x00C5;">
+<!ENTITY atilde "&#x00E3;">
+<!ENTITY Atilde "&#x00C3;">
+<!ENTITY auml "&#x00E4;">
+<!ENTITY Auml "&#x00C4;">
+<!ENTITY aelig "&#x00E6;">
+<!ENTITY AElig "&#x00C6;">
+<!ENTITY ccedil "&#x00E7;">
+<!ENTITY Ccedil "&#x00C7;">
+<!ENTITY eth "&#x00F0;">
+<!ENTITY ETH "&#x00D0;">
+<!ENTITY eacute "&#x00E9;">
+<!ENTITY Eacute "&#x00C9;">
+<!ENTITY ecirc "&#x00EA;">
+<!ENTITY Ecirc "&#x00CA;">
+<!ENTITY egrave "&#x00E8;">
+<!ENTITY Egrave "&#x00C8;">
+<!ENTITY euml "&#x00EB;">
+<!ENTITY Euml "&#x00CB;">
+<!ENTITY iacute "&#x00ED;">
+<!ENTITY Iacute "&#x00CD;">
+<!ENTITY icirc "&#x00EE;">
+<!ENTITY Icirc "&#x00CE;">
+<!ENTITY igrave "&#x00EC;">
+<!ENTITY Igrave "&#x00CC;">
+<!ENTITY iuml "&#x00EF;">
+<!ENTITY Iuml "&#x00CF;">
+<!ENTITY ntilde "&#x00F1;">
+<!ENTITY Ntilde "&#x00D1;">
+<!ENTITY oacute "&#x00F3;">
+<!ENTITY Oacute "&#x00D3;">
+<!ENTITY ocirc "&#x00F4;">
+<!ENTITY Ocirc "&#x00D4;">
+<!ENTITY ograve "&#x00F2;">
+<!ENTITY Ograve "&#x00D2;">
+<!ENTITY oslash "&#x00F8;">
+<!ENTITY Oslash "&#x00D8;">
+<!ENTITY otilde "&#x00F5;">
+<!ENTITY Otilde "&#x00D5;">
+<!ENTITY ouml "&#x00F6;">
+<!ENTITY Ouml "&#x00D6;">
+<!ENTITY szlig "&#x00DF;">
+<!ENTITY thorn "&#x00FE;">
+<!ENTITY THORN "&#x00DE;">
+<!ENTITY uacute "&#x00FA;">
+<!ENTITY Uacute "&#x00DA;">
+<!ENTITY ucirc "&#x00FB;">
+<!ENTITY Ucirc "&#x00DB;">
+<!ENTITY ugrave "&#x00F9;">
+<!ENTITY Ugrave "&#x00D9;">
+<!ENTITY uuml "&#x00FC;">
+<!ENTITY Uuml "&#x00DC;">
+<!ENTITY yacute "&#x00FD;">
+<!ENTITY Yacute "&#x00DD;">
+<!ENTITY yuml "&#x00FF;">
+<!ENTITY half "&#x00BD;">
+<!ENTITY frac12 "&#x00BD;">
+<!ENTITY frac14 "&#x00BC;">
+<!ENTITY frac34 "&#x00BE;">
+<!ENTITY frac18 "&#x215B;">
+<!ENTITY frac38 "&#x215C;">
+<!ENTITY frac58 "&#x215D;">
+<!ENTITY frac78 "&#x215E;">
+<!ENTITY sup1 "&#x00B9;">
+<!ENTITY sup2 "&#x00B2;">
+<!ENTITY sup3 "&#x00B3;">
+<!ENTITY plus "&#x002B;">
+<!ENTITY plusmn "&#x00B1;">
+<!ENTITY lt "&#38;#60;">
+<!ENTITY equals "&#x003D;">
+<!ENTITY gt "&#x003E;">
+<!ENTITY divide "&#x00F7;">
+<!ENTITY times "&#x00D7;">
+<!ENTITY curren "&#x00A4;">
+<!ENTITY pound "&#x00A3;">
+<!ENTITY dollar "&#x0024;">
+<!ENTITY cent "&#x00A2;">
+<!ENTITY yen "&#x00A5;">
+<!ENTITY num "&#x0023;">
+<!ENTITY percnt "&#x0025;">
+<!ENTITY amp "&#38;#38;">
+<!ENTITY ast "&#x002A;">
+<!ENTITY commat "&#x0040;">
+<!ENTITY lsqb "&#x005B;">
+<!ENTITY bsol "&#x005C;">
+<!ENTITY rsqb "&#x005D;">
+<!ENTITY lcub "&#x007B;">
+<!ENTITY horbar "&#x2015;">
+<!ENTITY verbar "&#x007C;">
+<!ENTITY rcub "&#x007D;">
+<!ENTITY micro "&#x00B5;">
+<!ENTITY ohm "&#x2126;">
+<!ENTITY deg "&#x00B0;">
+<!ENTITY ordm "&#x00BA;">
+<!ENTITY ordf "&#x00AA;">
+<!ENTITY sect "&#x00A7;">
+<!ENTITY para "&#x00B6;">
+<!ENTITY middot "&#x00B7;">
+<!ENTITY larr "&#x2190;">
+<!ENTITY rarr "&#x2192;">
+<!ENTITY uarr "&#x2191;">
+<!ENTITY darr "&#x2193;">
+<!ENTITY copy "&#x00A9;">
+<!ENTITY reg "&#x00AE;">
+<!ENTITY trade "&#x2122;">
+<!ENTITY brvbar "&#x00A6;">
+<!ENTITY not "&#x00AC;">
+<!ENTITY sung "&#x2669;">
+<!ENTITY excl "&#x0021;">
+<!ENTITY iexcl "&#x00A1;">
+<!ENTITY quot "&#x0022;">
+<!ENTITY apos "&#x0027;">
+<!ENTITY lpar "&#x0028;">
+<!ENTITY rpar "&#x0029;">
+<!ENTITY comma "&#x002C;">
+<!ENTITY lowbar "&#x005F;">
+<!ENTITY hyphen "&#x002D;">
+<!ENTITY period "&#x002E;">
+<!ENTITY sol "&#x002F;">
+<!ENTITY colon "&#x003A;">
+<!ENTITY semi "&#x003B;">
+<!ENTITY quest "&#x003F;">
+<!ENTITY iquest "&#x00BF;">
+<!ENTITY laquo "&#x00AB;">
+<!ENTITY raquo "&#x00BB;">
+<!ENTITY lsquo "&#x2018;">
+<!ENTITY rsquo "&#x2019;">
+<!ENTITY ldquo "&#x201C;">
+<!ENTITY rdquo "&#x201D;">
+<!ENTITY nbsp "&#x00A0;">
+<!ENTITY shy "&#x00AD;">
+<!ENTITY emsp "&#x2003;">
+<!ENTITY ensp "&#x2002;">
+<!ENTITY emsp13 "&#x2004;">
+<!ENTITY emsp14 "&#x2005;">
+<!ENTITY numsp "&#x2007;">
+<!ENTITY puncsp "&#x2008;">
+<!ENTITY thinsp "&#x2009;">
+<!ENTITY hairsp "&#x200A;">
+<!ENTITY mdash "&#x2014;">
+<!ENTITY ndash "&#x2013;">
+<!ENTITY dash "&#x2010;">
+<!ENTITY blank "&#x2423;">
+<!ENTITY hellip "&#x2026;">
+<!ENTITY nldr "&#x2025;">
+<!ENTITY frac13 "&#x2153;">
+<!ENTITY frac23 "&#x2154;">
+<!ENTITY frac15 "&#x2155;">
+<!ENTITY frac25 "&#x2156;">
+<!ENTITY frac35 "&#x2157;">
+<!ENTITY frac45 "&#x2158;">
+<!ENTITY frac16 "&#x2159;">
+<!ENTITY frac56 "&#x215A;">
+<!ENTITY incare "&#x2105;">
+<!ENTITY block "&#x2588;">
+<!ENTITY uhblk "&#x2580;">
+<!ENTITY lhblk "&#x2584;">
+<!ENTITY blk14 "&#x2591;">
+<!ENTITY blk12 "&#x2592;">
+<!ENTITY blk34 "&#x2593;">
+<!ENTITY marker "&#x25AE;">
+<!ENTITY cir "&#x25CB;">
+<!ENTITY squ "&#x25A1;">
+<!ENTITY rect "&#x25AD;">
+<!ENTITY utri "&#x25B5;">
+<!ENTITY dtri "&#x25BF;">
+<!ENTITY star "&#x22C6;">
+<!ENTITY bull "&#x2022;">
+<!ENTITY squf "&#x25AA;">
+<!ENTITY utrif "&#x25B4;">
+<!ENTITY dtrif "&#x25BE;">
+<!ENTITY ltrif "&#x25C2;">
+<!ENTITY rtrif "&#x25B8;">
+<!ENTITY clubs "&#x2663;">
+<!ENTITY diams "&#x2666;">
+<!ENTITY hearts "&#x2665;">
+<!ENTITY spades "&#x2660;">
+<!ENTITY malt "&#x2720;">
+<!ENTITY dagger "&#x2020;">
+<!ENTITY Dagger "&#x2021;">
+<!ENTITY check "&#x2713;">
+<!ENTITY cross "&#x2717;">
+<!ENTITY sharp "&#x266F;">
+<!ENTITY flat "&#x266D;">
+<!ENTITY male "&#x2642;">
+<!ENTITY female "&#x2640;">
+<!ENTITY phone "&#x260E;">
+<!ENTITY telrec "&#x2315;">
+<!ENTITY copysr "&#x2117;">
+<!ENTITY caret "&#x2041;">
+<!ENTITY lsquor "&#x201A;">
+<!ENTITY ldquor "&#x201E;">
+<!ENTITY fflig "&#xFB00;">
+<!ENTITY filig "&#xFB01;">
+<!ENTITY ffilig "&#xFB03;">
+<!ENTITY ffllig "&#xFB04;">
+<!ENTITY fllig "&#xFB02;">
+<!ENTITY mldr "&#x2026;">
+<!ENTITY rdquor "&#x201C;">
+<!ENTITY rsquor "&#x2018;">
+<!ENTITY vellip "&#x22EE;">
+<!ENTITY hybull "&#x2043;">
+<!ENTITY loz "&#x25CA;">
+<!ENTITY lozf "&#x2726;">
+<!ENTITY ltri "&#x25C3;">
+<!ENTITY rtri "&#x25B9;">
+<!ENTITY starf "&#x2605;">
+<!ENTITY natur "&#x266E;">
+<!ENTITY rx "&#x211E;">
+<!ENTITY sext "&#x2736;">
+<!ENTITY target "&#x2316;">
+<!ENTITY dlcrop "&#x230D;">
+<!ENTITY drcrop "&#x230C;">
+<!ENTITY ulcrop "&#x230F;">
+<!ENTITY urcrop "&#x230E;">
+<!ENTITY % local.notation.class "">
+<!ENTITY % notation.class
+ "BMP| CGM-CHAR | CGM-BINARY | CGM-CLEAR | DITROFF | DVI
+ | EPS | EQN | FAX | GIF | GIF87a | GIF89a
+ | JPG | JPEG | IGES | PCX
+ | PIC | PNG | PS | SGML | TBL | TEX | TIFF | WMF | WPG
+ | linespecific
+ %local.notation.class;">
+<!NOTATION BMP PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows bitmap//EN">
+<!NOTATION CGM-CHAR PUBLIC "ISO 8632/2//NOTATION Character encoding//EN">
+<!NOTATION CGM-BINARY PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">
+<!NOTATION CGM-CLEAR PUBLIC "ISO 8632/4//NOTATION Clear text encoding//EN">
+<!NOTATION DITROFF SYSTEM "DITROFF">
+<!NOTATION DVI SYSTEM "DVI">
+<!NOTATION EPS PUBLIC
+"+//ISBN 0-201-18127-4::Adobe//NOTATION PostScript Language Ref. Manual//EN">
+<!NOTATION EQN SYSTEM "EQN">
+<!NOTATION FAX PUBLIC
+"-//USA-DOD//NOTATION CCITT Group 4 Facsimile Type 1 Untiled Raster//EN">
+<!NOTATION GIF SYSTEM "GIF">
+<!NOTATION GIF87a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 87a//EN">
+<!NOTATION GIF89a PUBLIC
+"-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
+<!NOTATION JPG SYSTEM "JPG">
+<!NOTATION JPEG SYSTEM "JPG">
+<!NOTATION IGES PUBLIC
+"-//USA-DOD//NOTATION (ASME/ANSI Y14.26M-1987) Initial Graphics Exchange Specification//EN">
+<!NOTATION PCX PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION ZSoft PCX bitmap//EN">
+<!NOTATION PIC SYSTEM "PIC">
+<!NOTATION PNG SYSTEM "http://www.w3.org/TR/REC-png">
+<!NOTATION PS SYSTEM "PS">
+<!NOTATION SGML PUBLIC
+"ISO 8879:1986//NOTATION Standard Generalized Markup Language//EN">
+<!NOTATION TBL SYSTEM "TBL">
+<!NOTATION TEX PUBLIC
+"+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN">
+<!NOTATION TIFF SYSTEM "TIFF">
+<!NOTATION WMF PUBLIC
+"+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION Microsoft Windows Metafile//EN">
+<!NOTATION WPG SYSTEM "WPG">
+<!NOTATION linespecific SYSTEM "linespecific">
+<!ENTITY euro "&#x20AC;">
+<!ENTITY % yesorno.attvals "CDATA">
+<!ENTITY % local.mediaobject.mix "">
+<!ENTITY % mediaobject.mix
+ "videoobject|audioobject|imageobject %local.mediaobject.mix;">
+<!ENTITY % role.attrib
+ "role CDATA #IMPLIED">
+<!ENTITY % label.attrib
+ "label CDATA #IMPLIED">
+<!ENTITY % linespecific.attrib
+ "format NOTATION
+ (linespecific) 'linespecific'
+ linenumbering (numbered|unnumbered) #IMPLIED">
+<!ENTITY % linkendreq.attrib
+ "linkend IDREF #REQUIRED">
+<!ENTITY % local.mark.attrib "">
+<!ENTITY % mark.attrib
+ "mark CDATA #IMPLIED
+ %local.mark.attrib;"
+>
+<!ENTITY % moreinfo.attrib
+ "moreinfo (refentry|none) 'none'">
+<!ENTITY % pagenum.attrib
+ "pagenum CDATA #IMPLIED">
+<!ENTITY % local.status.attrib "">
+<!ENTITY % status.attrib
+ "status CDATA #IMPLIED
+ %local.status.attrib;"
+>
+<!ENTITY % width.attrib
+ "width CDATA #IMPLIED">
+<!ENTITY % local.title.attrib "">
+<!ENTITY % title.role.attrib "%role.attrib;">
+<!ELEMENT title (%title.char.mix;)*>
+<!ATTLIST title
+ %pagenum.attrib;
+ %common.attrib;
+ %title.role.attrib;
+ %local.title.attrib;
+>
+<!ENTITY % local.subtitle.attrib "">
+<!ENTITY % subtitle.role.attrib "%role.attrib;">
+<!ELEMENT subtitle (%title.char.mix;)*>
+<!ATTLIST subtitle
+ %common.attrib;
+ %subtitle.role.attrib;
+ %local.subtitle.attrib;
+>
+<!ENTITY % local.bibliomixed.attrib "">
+<!ENTITY % bibliomixed.role.attrib "%role.attrib;">
+<!ATTLIST bibliomixed
+ %common.attrib;
+ %bibliomixed.role.attrib;
+ %local.bibliomixed.attrib;
+>
+<!ENTITY % local.articleinfo.attrib "">
+<!ENTITY % articleinfo.role.attrib "%role.attrib;">
+<!ATTLIST articleinfo
+ %common.attrib;
+ %articleinfo.role.attrib;
+ %local.articleinfo.attrib;
+>
+<!ENTITY % bibliomset.role.attrib "%role.attrib;">
+<!ENTITY % local.bibliomset.attrib "">
+<!ELEMENT bibliomset (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!ATTLIST bibliomset
+ relation CDATA #IMPLIED
+ %bibliomset.role.attrib;
+ %common.attrib;
+ %local.bibliomset.attrib;
+>
+<!ENTITY % local.bibliomisc.attrib "">
+<!ENTITY % bibliomisc.role.attrib "%role.attrib;">
+<!ELEMENT bibliomisc (%para.char.mix;)*>
+<!ATTLIST bibliomisc
+ %common.attrib;
+ %bibliomisc.role.attrib;
+ %local.bibliomisc.attrib;
+>
+<!ENTITY % local.subjectset.attrib "">
+<!ENTITY % subjectset.role.attrib "%role.attrib;">
+<!ELEMENT subjectset (subject+)>
+<!ATTLIST subjectset
+ scheme NMTOKEN #IMPLIED
+ %common.attrib;
+ %subjectset.role.attrib;
+ %local.subjectset.attrib;
+>
+<!ENTITY % local.subject.attrib "">
+<!ENTITY % subject.role.attrib "%role.attrib;">
+<!ELEMENT subject (subjectterm+)>
+<!ATTLIST subject
+ weight CDATA #IMPLIED
+ %common.attrib;
+ %subject.role.attrib;
+ %local.subject.attrib;
+>
+<!ENTITY % local.subjectterm.attrib "">
+<!ENTITY % subjectterm.role.attrib "%role.attrib;">
+<!ELEMENT subjectterm (#PCDATA)>
+<!ATTLIST subjectterm
+ %common.attrib;
+ %subjectterm.role.attrib;
+ %local.subjectterm.attrib;
+>
+<!ENTITY % local.keywordset.attrib "">
+<!ENTITY % keywordset.role.attrib "%role.attrib;">
+<!ELEMENT keywordset (keyword+)>
+<!ATTLIST keywordset
+ %common.attrib;
+ %keywordset.role.attrib;
+ %local.keywordset.attrib;
+>
+<!ENTITY % local.keyword.attrib "">
+<!ENTITY % keyword.role.attrib "%role.attrib;">
+<!ELEMENT keyword (#PCDATA)>
+<!ATTLIST keyword
+ %common.attrib;
+ %keyword.role.attrib;
+ %local.keyword.attrib;
+>
+<!ENTITY % local.sidebar.attrib "">
+<!ENTITY % sidebar.role.attrib "%role.attrib;">
+<!ATTLIST sidebar
+ %common.attrib;
+ %sidebar.role.attrib;
+ %local.sidebar.attrib;
+>
+<!ENTITY % local.abstract.attrib "">
+<!ENTITY % abstract.role.attrib "%role.attrib;">
+<!ELEMENT abstract (title?, (%para.class;)+)>
+<!ATTLIST abstract
+ %common.attrib;
+ %abstract.role.attrib;
+ %local.abstract.attrib;
+>
+<!ENTITY % local.authorblurb.attrib "">
+<!ENTITY % authorblurb.role.attrib "%role.attrib;">
+<!ELEMENT authorblurb (title?, (%para.class;)+)>
+<!ATTLIST authorblurb
+ %common.attrib;
+ %authorblurb.role.attrib;
+ %local.authorblurb.attrib;
+>
+<!ENTITY % local.blockquote.attrib "">
+<!ENTITY % blockquote.role.attrib "%role.attrib;">
+<!ELEMENT blockquote (title?, attribution?, (%component.mix;)+)>
+<!ATTLIST blockquote
+ %common.attrib;
+ %blockquote.role.attrib;
+ %local.blockquote.attrib;
+>
+<!ENTITY % local.attribution.attrib "">
+<!ENTITY % attribution.role.attrib "%role.attrib;">
+<!ELEMENT attribution (%para.char.mix;)*>
+<!ATTLIST attribution
+ %common.attrib;
+ %attribution.role.attrib;
+ %local.attribution.attrib;
+>
+<!ENTITY % local.epigraph.attrib "">
+<!ENTITY % epigraph.role.attrib "%role.attrib;">
+<!ELEMENT epigraph (attribution?, (%para.class;)+)>
+<!ATTLIST epigraph
+ %common.attrib;
+ %epigraph.role.attrib;
+ %local.epigraph.attrib;
+>
+<!ENTITY % local.footnote.attrib "">
+<!ENTITY % footnote.role.attrib "%role.attrib;">
+<!ELEMENT footnote ((%footnote.mix;)+)>
+<!ATTLIST footnote
+ %label.attrib;
+ %common.attrib;
+ %footnote.role.attrib;
+ %local.footnote.attrib;
+>
+<!ENTITY % local.para.attrib "">
+<!ENTITY % para.role.attrib "%role.attrib;">
+<!ATTLIST para
+ %common.attrib;
+ %para.role.attrib;
+ %local.para.attrib;
+>
+<!ENTITY % local.admon.attrib "">
+<!ENTITY % admon.role.attrib "%role.attrib;">
+<!ELEMENT note (title?, (%admon.mix;)+)>
+<!ATTLIST note
+ %common.attrib;
+ %admon.role.attrib;
+ %local.admon.attrib;
+>
+<!ENTITY % local.itemizedlist.attrib "">
+<!ENTITY % itemizedlist.role.attrib "%role.attrib;">
+<!ELEMENT itemizedlist ((%formalobject.title.content;)?, listitem+)>
+<!ATTLIST itemizedlist spacing (normal
+ |compact) #IMPLIED
+ %mark.attrib;
+ %common.attrib;
+ %itemizedlist.role.attrib;
+ %local.itemizedlist.attrib;
+>
+<!ENTITY % local.orderedlist.attrib "">
+<!ENTITY % orderedlist.role.attrib "%role.attrib;">
+<!ELEMENT orderedlist ((%formalobject.title.content;)?, listitem+)>
+<!ATTLIST orderedlist
+ numeration (arabic
+ |upperalpha
+ |loweralpha
+ |upperroman
+ |lowerroman) #IMPLIED
+ inheritnum (inherit
+ |ignore) "ignore"
+ continuation (continues
+ |restarts) "restarts"
+ spacing (normal
+ |compact) #IMPLIED
+ %common.attrib;
+ %orderedlist.role.attrib;
+ %local.orderedlist.attrib;
+>
+<!ENTITY % local.listitem.attrib "">
+<!ENTITY % listitem.role.attrib "%role.attrib;">
+<!ELEMENT listitem ((%component.mix;)+)>
+<!ATTLIST listitem
+ override CDATA #IMPLIED
+ %common.attrib;
+ %listitem.role.attrib;
+ %local.listitem.attrib;
+>
+<!ENTITY % local.variablelist.attrib "">
+<!ENTITY % variablelist.role.attrib "%role.attrib;">
+<!ELEMENT variablelist ((%formalobject.title.content;)?, varlistentry+)>
+<!ATTLIST variablelist
+ termlength CDATA #IMPLIED
+ %common.attrib;
+ %variablelist.role.attrib;
+ %local.variablelist.attrib;
+>
+<!ENTITY % local.varlistentry.attrib "">
+<!ENTITY % varlistentry.role.attrib "%role.attrib;">
+<!ELEMENT varlistentry (term+, listitem)>
+<!ATTLIST varlistentry
+ %common.attrib;
+ %varlistentry.role.attrib;
+ %local.varlistentry.attrib;
+>
+<!ENTITY % local.term.attrib "">
+<!ENTITY % term.role.attrib "%role.attrib;">
+<!ELEMENT term (%para.char.mix;)*>
+<!ATTLIST term
+ %common.attrib;
+ %term.role.attrib;
+ %local.term.attrib;
+>
+<!ENTITY % local.example.attrib "">
+<!ENTITY % example.role.attrib "%role.attrib;">
+<!ELEMENT example ((%formalobject.title.content;), (%example.mix;)+)>
+<!ATTLIST example
+ %label.attrib;
+ %width.attrib;
+ %common.attrib;
+ %example.role.attrib;
+ %local.example.attrib;
+>
+<!ENTITY % local.programlisting.attrib "">
+<!ENTITY % programlisting.role.attrib "%role.attrib;">
+<!ATTLIST programlisting
+ %width.attrib;
+ %linespecific.attrib;
+ %common.attrib;
+ %programlisting.role.attrib;
+ %local.programlisting.attrib;
+>
+<!ENTITY % local.literallayout.attrib "">
+<!ENTITY % literallayout.role.attrib "%role.attrib;">
+<!ATTLIST literallayout
+ %width.attrib;
+ %linespecific.attrib;
+ class (monospaced|normal) "normal"
+ %common.attrib;
+ %literallayout.role.attrib;
+ %local.literallayout.attrib;
+>
+<!ENTITY % local.figure.attrib "">
+<!ENTITY % figure.role.attrib "%role.attrib;">
+<!ELEMENT figure ((%formalobject.title.content;), (%figure.mix; |
+ %link.char.class;)+)>
+<!ATTLIST figure
+ float %yesorno.attvals; '0'
+ pgwide %yesorno.attvals; #IMPLIED
+ %label.attrib;
+ %common.attrib;
+ %figure.role.attrib;
+ %local.figure.attrib;
+>
+<!ENTITY % local.mediaobject.attrib "">
+<!ENTITY % mediaobject.role.attrib "%role.attrib;">
+<!ELEMENT mediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*,
+ caption?)>
+<!ATTLIST mediaobject
+ %common.attrib;
+ %mediaobject.role.attrib;
+ %local.mediaobject.attrib;
+>
+<!ENTITY % local.inlinemediaobject.attrib "">
+<!ENTITY % inlinemediaobject.role.attrib "%role.attrib;">
+<!ELEMENT inlinemediaobject (objectinfo?,
+ (%mediaobject.mix;),
+ (%mediaobject.mix;|textobject)*)>
+<!ATTLIST inlinemediaobject
+ %common.attrib;
+ %inlinemediaobject.role.attrib;
+ %local.inlinemediaobject.attrib;
+>
+<!ENTITY % local.videoobject.attrib "">
+<!ENTITY % videoobject.role.attrib "%role.attrib;">
+<!ELEMENT videoobject (objectinfo?, videodata)>
+<!ATTLIST videoobject
+ %common.attrib;
+ %videoobject.role.attrib;
+ %local.videoobject.attrib;
+>
+<!ENTITY % local.audioobject.attrib "">
+<!ENTITY % audioobject.role.attrib "%role.attrib;">
+<!ELEMENT audioobject (objectinfo?, audiodata)>
+<!ATTLIST audioobject
+ %common.attrib;
+ %audioobject.role.attrib;
+ %local.audioobject.attrib;
+>
+<!ENTITY % local.imageobject.attrib "">
+<!ENTITY % imageobject.role.attrib "%role.attrib;">
+<!ELEMENT imageobject (objectinfo?, imagedata)>
+<!ATTLIST imageobject
+ %common.attrib;
+ %imageobject.role.attrib;
+ %local.imageobject.attrib;
+>
+<!ENTITY % local.textobject.attrib "">
+<!ENTITY % textobject.role.attrib "%role.attrib;">
+<!ELEMENT textobject (objectinfo?, (phrase|(%textobject.mix;)+))>
+<!ATTLIST textobject
+ %common.attrib;
+ %textobject.role.attrib;
+ %local.textobject.attrib;
+>
+<!ENTITY % local.objectinfo.attrib "">
+<!ENTITY % objectinfo.role.attrib "%role.attrib;">
+<!ATTLIST objectinfo
+ %common.attrib;
+ %objectinfo.role.attrib;
+ %local.objectinfo.attrib;
+>
+<!ENTITY % local.objectdata.attrib "">
+<!ENTITY % objectdata.attrib
+ "
+ entityref ENTITY #IMPLIED
+ fileref CDATA #IMPLIED
+ format (%notation.class;)
+ #IMPLIED
+ srccredit CDATA #IMPLIED
+ %local.objectdata.attrib;"
+>
+<!ENTITY % local.videodata.attrib "">
+<!ENTITY % videodata.role.attrib "%role.attrib;">
+<!ELEMENT videodata EMPTY>
+<!ATTLIST videodata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %videodata.role.attrib;
+ %local.videodata.attrib;
+>
+<!ENTITY % local.audiodata.attrib "">
+<!ENTITY % audiodata.role.attrib "%role.attrib;">
+<!ELEMENT audiodata EMPTY>
+<!ATTLIST audiodata
+ %common.attrib;
+ %objectdata.attrib;
+ %local.audiodata.attrib;
+ %audiodata.role.attrib;
+>
+<!ENTITY % local.imagedata.attrib "">
+<!ENTITY % imagedata.role.attrib "%role.attrib;">
+<!ELEMENT imagedata EMPTY>
+<!ATTLIST imagedata
+ %common.attrib;
+ %objectdata.attrib;
+ width CDATA #IMPLIED
+ depth CDATA #IMPLIED
+ align (left
+ |right
+ |center) #IMPLIED
+ scale CDATA #IMPLIED
+ scalefit %yesorno.attvals;
+ #IMPLIED
+ %local.imagedata.attrib;
+ %imagedata.role.attrib;
+>
+<!ENTITY % local.caption.attrib "">
+<!ENTITY % caption.role.attrib "%role.attrib;">
+<!ELEMENT caption (%textobject.mix;)*>
+<!ATTLIST caption
+ %common.attrib;
+ %local.caption.attrib;
+ %caption.role.attrib;
+>
+<!ENTITY % tables.role.attrib "%role.attrib;">
+<!ENTITY % bodyatt
+ "%common.attrib;
+ %label.attrib;
+ %tables.role.attrib;">
+<!ENTITY % common.table.attribs
+ "%bodyatt;">
+<!ENTITY % tbl.tgroup.att "%common.attrib;">
+<!ENTITY % tbl.colspec.att "%common.attrib;">
+<!ENTITY % tbl.tbody.att "%common.attrib;">
+<!ENTITY % tbl.thead.att "%common.attrib;">
+<!ENTITY % tbl.row.att "%common.attrib;">
+<!ENTITY % tbl.entry.att "%common.attrib;">
+<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">
+<!ENTITY % yesorno 'NMTOKEN'>
+<!ENTITY % tbl.table.name "table">
+<!ENTITY % tbl.table.att "
+ pgwide %yesorno; #IMPLIED ">
+<!ENTITY % tbl.tgroup.mdl "colspec*,thead?,tbody">
+<!ENTITY % tbl.row.mdl "entry+">
+<!ELEMENT %tbl.table.name; (%tbl.table.mdl;)>
+<!ATTLIST %tbl.table.name;
+ frame (top|bottom|topbot|all|sides|none) #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ %tbl.table.att;
+ %bodyatt;
+>
+<!ELEMENT tgroup (%tbl.tgroup.mdl;) >
+<!ATTLIST tgroup
+ cols NMTOKEN #REQUIRED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ %tbl.tgroup.att;
+>
+<!ELEMENT colspec EMPTY >
+<!ATTLIST colspec
+ colnum NMTOKEN #IMPLIED
+ colname NMTOKEN #IMPLIED
+ colwidth CDATA #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ %tbl.colspec.att;
+>
+<!ELEMENT thead (row+)>
+<!ATTLIST thead
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.thead.att;
+>
+<!ELEMENT tbody (row+)>
+<!ATTLIST tbody
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.tbody.att;
+>
+<!ELEMENT row (%tbl.row.mdl;)>
+<!ATTLIST row
+ rowsep %yesorno; #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.row.att;
+>
+<!ELEMENT entry %tbl.entry.mdl;>
+<!ATTLIST entry
+ colname NMTOKEN #IMPLIED
+ namest NMTOKEN #IMPLIED
+ nameend NMTOKEN #IMPLIED
+ morerows NMTOKEN #IMPLIED
+ colsep %yesorno; #IMPLIED
+ rowsep %yesorno; #IMPLIED
+ align (left|right|center|justify|char) #IMPLIED
+ char CDATA #IMPLIED
+ charoff NMTOKEN #IMPLIED
+ valign (top|middle|bottom) #IMPLIED
+ %tbl.entry.att;
+>
+<!ENTITY % local.informaltable.attrib "">
+<!ATTLIST informaltable
+ frame (top
+ |bottom
+ |topbot
+ |all
+ |sides
+ |none) #IMPLIED
+ colsep %yesorno.attvals; #IMPLIED
+ rowsep %yesorno.attvals; #IMPLIED
+ %common.table.attribs;
+ %tbl.table.att;
+ %local.informaltable.attrib;
+>
+<!ENTITY % local.affiliation.attrib "">
+<!ENTITY % affiliation.role.attrib "%role.attrib;">
+<!ATTLIST affiliation
+ %common.attrib;
+ %affiliation.role.attrib;
+ %local.affiliation.attrib;
+>
+<!ENTITY % local.jobtitle.attrib "">
+<!ENTITY % jobtitle.role.attrib "%role.attrib;">
+<!ELEMENT jobtitle (%docinfo.char.mix;)*>
+<!ATTLIST jobtitle
+ %common.attrib;
+ %jobtitle.role.attrib;
+ %local.jobtitle.attrib;
+>
+<!ENTITY % local.author.attrib "">
+<!ENTITY % author.role.attrib "%role.attrib;">
+<!ELEMENT author ((%person.ident.mix;)+)>
+<!ATTLIST author
+ %common.attrib;
+ %author.role.attrib;
+ %local.author.attrib;
+>
+<!ENTITY % local.authorgroup.attrib "">
+<!ENTITY % authorgroup.role.attrib "%role.attrib;">
+<!ATTLIST authorgroup
+ %common.attrib;
+ %authorgroup.role.attrib;
+ %local.authorgroup.attrib;
+>
+<!ENTITY % local.authorinitials.attrib "">
+<!ENTITY % authorinitials.role.attrib "%role.attrib;">
+<!ELEMENT authorinitials (%docinfo.char.mix;)*>
+<!ATTLIST authorinitials
+ %common.attrib;
+ %authorinitials.role.attrib;
+ %local.authorinitials.attrib;
+>
+<!ENTITY % local.copyright.attrib "">
+<!ENTITY % copyright.role.attrib "%role.attrib;">
+<!ELEMENT copyright (year+, holder*)>
+<!ATTLIST copyright
+ %common.attrib;
+ %copyright.role.attrib;
+ %local.copyright.attrib;
+>
+<!ENTITY % local.year.attrib "">
+<!ENTITY % year.role.attrib "%role.attrib;">
+<!ELEMENT year (%docinfo.char.mix;)*>
+<!ATTLIST year
+ %common.attrib;
+ %year.role.attrib;
+ %local.year.attrib;
+>
+<!ENTITY % local.holder.attrib "">
+<!ENTITY % holder.role.attrib "%role.attrib;">
+<!ELEMENT holder (%docinfo.char.mix;)*>
+<!ATTLIST holder
+ %common.attrib;
+ %holder.role.attrib;
+ %local.holder.attrib;
+>
+<!ENTITY % local.corpauthor.attrib "">
+<!ENTITY % corpauthor.role.attrib "%role.attrib;">
+<!ELEMENT corpauthor (%docinfo.char.mix;)*>
+<!ATTLIST corpauthor
+ %common.attrib;
+ %corpauthor.role.attrib;
+ %local.corpauthor.attrib;
+>
+<!ENTITY % local.date.attrib "">
+<!ENTITY % date.role.attrib "%role.attrib;">
+<!ELEMENT date (%docinfo.char.mix;)*>
+<!ATTLIST date
+ %common.attrib;
+ %date.role.attrib;
+ %local.date.attrib;
+>
+<!ENTITY % local.edition.attrib "">
+<!ENTITY % edition.role.attrib "%role.attrib;">
+<!ELEMENT edition (%docinfo.char.mix;)*>
+<!ATTLIST edition
+ %common.attrib;
+ %edition.role.attrib;
+ %local.edition.attrib;
+>
+<!ENTITY % local.editor.attrib "">
+<!ENTITY % editor.role.attrib "%role.attrib;">
+<!ELEMENT editor ((%person.ident.mix;)+)>
+<!ATTLIST editor
+ %common.attrib;
+ %editor.role.attrib;
+ %local.editor.attrib;
+>
+<!ENTITY % local.issuenum.attrib "">
+<!ENTITY % issuenum.role.attrib "%role.attrib;">
+<!ELEMENT issuenum (%docinfo.char.mix;)*>
+<!ATTLIST issuenum
+ %common.attrib;
+ %issuenum.role.attrib;
+ %local.issuenum.attrib;
+>
+<!ENTITY % local.legalnotice.attrib "">
+<!ENTITY % legalnotice.role.attrib "%role.attrib;">
+<!ELEMENT legalnotice (title?, (%legalnotice.mix;)+)>
+<!ATTLIST legalnotice
+ %common.attrib;
+ %legalnotice.role.attrib;
+ %local.legalnotice.attrib;
+>
+<!ENTITY % local.orgname.attrib "">
+<!ENTITY % orgname.role.attrib "%role.attrib;">
+<!ELEMENT orgname (%docinfo.char.mix;)*>
+<!ATTLIST orgname
+ %common.attrib;
+ %orgname.role.attrib;
+ %local.orgname.attrib;
+>
+<!ENTITY % local.othercredit.attrib "">
+<!ENTITY % othercredit.role.attrib "%role.attrib;">
+<!ELEMENT othercredit ((%person.ident.mix;)+)>
+<!ATTLIST othercredit
+ %common.attrib;
+ %othercredit.role.attrib;
+ %local.othercredit.attrib;
+>
+<!ENTITY % local.firstname.attrib "">
+<!ENTITY % firstname.role.attrib "%role.attrib;">
+<!ELEMENT firstname (%docinfo.char.mix;)*>
+<!ATTLIST firstname
+ %common.attrib;
+ %firstname.role.attrib;
+ %local.firstname.attrib;
+>
+<!ENTITY % local.honorific.attrib "">
+<!ENTITY % honorific.role.attrib "%role.attrib;">
+<!ELEMENT honorific (%docinfo.char.mix;)*>
+<!ATTLIST honorific
+ %common.attrib;
+ %honorific.role.attrib;
+ %local.honorific.attrib;
+>
+<!ENTITY % local.lineage.attrib "">
+<!ENTITY % lineage.role.attrib "%role.attrib;">
+<!ELEMENT lineage (%docinfo.char.mix;)*>
+<!ATTLIST lineage
+ %common.attrib;
+ %lineage.role.attrib;
+ %local.lineage.attrib;
+>
+<!ENTITY % local.othername.attrib "">
+<!ENTITY % othername.role.attrib "%role.attrib;">
+<!ELEMENT othername (%docinfo.char.mix;)*>
+<!ATTLIST othername
+ %common.attrib;
+ %othername.role.attrib;
+ %local.othername.attrib;
+>
+<!ENTITY % local.surname.attrib "">
+<!ENTITY % surname.role.attrib "%role.attrib;">
+<!ELEMENT surname (%docinfo.char.mix;)*>
+<!ATTLIST surname
+ %common.attrib;
+ %surname.role.attrib;
+ %local.surname.attrib;
+>
+<!ENTITY % local.pubdate.attrib "">
+<!ENTITY % pubdate.role.attrib "%role.attrib;">
+<!ELEMENT pubdate (%docinfo.char.mix;)*>
+<!ATTLIST pubdate
+ %common.attrib;
+ %pubdate.role.attrib;
+ %local.pubdate.attrib;
+>
+<!ENTITY % local.publishername.attrib "">
+<!ENTITY % publishername.role.attrib "%role.attrib;">
+<!ELEMENT publishername (%docinfo.char.mix;)*>
+<!ATTLIST publishername
+ %common.attrib;
+ %publishername.role.attrib;
+ %local.publishername.attrib;
+>
+<!ENTITY % local.releaseinfo.attrib "">
+<!ENTITY % releaseinfo.role.attrib "%role.attrib;">
+<!ELEMENT releaseinfo (%docinfo.char.mix;)*>
+<!ATTLIST releaseinfo
+ %common.attrib;
+ %releaseinfo.role.attrib;
+ %local.releaseinfo.attrib;
+>
+<!ENTITY % local.revhistory.attrib "">
+<!ENTITY % revhistory.role.attrib "%role.attrib;">
+<!ELEMENT revhistory (revision+)>
+<!ATTLIST revhistory
+ %common.attrib;
+ %revhistory.role.attrib;
+ %local.revhistory.attrib;
+>
+<!ENTITY % local.revision.attrib "">
+<!ENTITY % revision.role.attrib "%role.attrib;">
+<!ELEMENT revision (revnumber, date, authorinitials*,
+ (revremark|revdescription)?)>
+<!ATTLIST revision
+ %common.attrib;
+ %revision.role.attrib;
+ %local.revision.attrib;
+>
+<!ENTITY % local.revnumber.attrib "">
+<!ENTITY % revnumber.role.attrib "%role.attrib;">
+<!ELEMENT revnumber (%docinfo.char.mix;)*>
+<!ATTLIST revnumber
+ %common.attrib;
+ %revnumber.role.attrib;
+ %local.revnumber.attrib;
+>
+<!ENTITY % local.revremark.attrib "">
+<!ENTITY % revremark.role.attrib "%role.attrib;">
+<!ELEMENT revremark (%docinfo.char.mix;)*>
+<!ATTLIST revremark
+ %common.attrib;
+ %revremark.role.attrib;
+ %local.revremark.attrib;
+>
+<!ENTITY % local.revdescription.attrib "">
+<!ENTITY % revdescription.role.attrib "%role.attrib;">
+<!ELEMENT revdescription ((%revdescription.mix;)+)>
+<!ATTLIST revdescription
+ %common.attrib;
+ %revdescription.role.attrib;
+ %local.revdescription.attrib;
+>
+<!ENTITY % local.volumenum.attrib "">
+<!ENTITY % volumenum.role.attrib "%role.attrib;">
+<!ELEMENT volumenum (%docinfo.char.mix;)*>
+<!ATTLIST volumenum
+ %common.attrib;
+ %volumenum.role.attrib;
+ %local.volumenum.attrib;
+>
+<!ENTITY % local.command.attrib "">
+<!ENTITY % command.role.attrib "%role.attrib;">
+<!ELEMENT command (%cptr.char.mix;)*>
+<!ATTLIST command
+ %moreinfo.attrib;
+ %common.attrib;
+ %command.role.attrib;
+ %local.command.attrib;
+>
+<!ENTITY % local.computeroutput.attrib "">
+<!ENTITY % computeroutput.role.attrib "%role.attrib;">
+<!ELEMENT computeroutput (%cptr.char.mix;)*>
+<!ATTLIST computeroutput
+ %moreinfo.attrib;
+ %common.attrib;
+ %computeroutput.role.attrib;
+ %local.computeroutput.attrib;
+>
+<!ENTITY % local.email.attrib "">
+<!ENTITY % email.role.attrib "%role.attrib;">
+<!ELEMENT email (%docinfo.char.mix;)*>
+<!ATTLIST email
+ %common.attrib;
+ %email.role.attrib;
+ %local.email.attrib;
+>
+<!ENTITY % local.filename.attrib "">
+<!ENTITY % filename.role.attrib "%role.attrib;">
+<!ELEMENT filename (%smallcptr.char.mix;)*>
+<!ATTLIST filename
+ class (headerfile
+ |devicefile
+ |libraryfile
+ |directory
+ |symlink) #IMPLIED
+ path CDATA #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %filename.role.attrib;
+ %local.filename.attrib;
+>
+<!ENTITY % local.lineannotation.attrib "">
+<!ENTITY % lineannotation.role.attrib "%role.attrib;">
+<!ELEMENT lineannotation (%para.char.mix;)*>
+<!ATTLIST lineannotation
+ %common.attrib;
+ %lineannotation.role.attrib;
+ %local.lineannotation.attrib;
+>
+<!ENTITY % local.literal.attrib "">
+<!ENTITY % literal.role.attrib "%role.attrib;">
+<!ELEMENT literal (%cptr.char.mix;)*>
+<!ATTLIST literal
+ %moreinfo.attrib;
+ %common.attrib;
+ %literal.role.attrib;
+ %local.literal.attrib;
+>
+<!ENTITY % local.option.attrib "">
+<!ENTITY % option.role.attrib "%role.attrib;">
+<!ELEMENT option (%smallcptr.char.mix;)*>
+<!ATTLIST option
+ %common.attrib;
+ %option.role.attrib;
+ %local.option.attrib;
+>
+<!ENTITY % local.replaceable.attrib "">
+<!ENTITY % replaceable.role.attrib "%role.attrib;">
+<!ATTLIST replaceable
+ class (command
+ |function
+ |option
+ |parameter) #IMPLIED
+ %common.attrib;
+ %replaceable.role.attrib;
+ %local.replaceable.attrib;
+>
+<!ENTITY % local.systemitem.attrib "">
+<!ENTITY % systemitem.role.attrib "%role.attrib;">
+<!ATTLIST systemitem
+ class (constant
+ |groupname
+ |library
+ |macro
+ |osname
+ |resource
+ |systemname
+ |username) #IMPLIED
+ %moreinfo.attrib;
+ %common.attrib;
+ %systemitem.role.attrib;
+ %local.systemitem.attrib;
+>
+<!ENTITY % local.userinput.attrib "">
+<!ENTITY % userinput.role.attrib "%role.attrib;">
+<!ELEMENT userinput (%cptr.char.mix;)*>
+<!ATTLIST userinput
+ %moreinfo.attrib;
+ %common.attrib;
+ %userinput.role.attrib;
+ %local.userinput.attrib;
+>
+<!ENTITY % local.abbrev.attrib "">
+<!ENTITY % abbrev.role.attrib "%role.attrib;">
+<!ELEMENT abbrev (%word.char.mix;)*>
+<!ATTLIST abbrev
+ %common.attrib;
+ %abbrev.role.attrib;
+ %local.abbrev.attrib;
+>
+<!ENTITY % local.acronym.attrib "">
+<!ENTITY % acronym.role.attrib "%role.attrib;">
+<!ELEMENT acronym (%word.char.mix;)*>
+<!ATTLIST acronym
+ %common.attrib;
+ %acronym.role.attrib;
+ %local.acronym.attrib;
+>
+<!ENTITY % local.refentrytitle.attrib "">
+<!ENTITY % refentrytitle.role.attrib "%role.attrib;">
+<!ELEMENT refentrytitle (%para.char.mix;)*>
+<!ATTLIST refentrytitle
+ %common.attrib;
+ %refentrytitle.role.attrib;
+ %local.refentrytitle.attrib;
+>
+<!ENTITY % local.manvolnum.attrib "">
+<!ENTITY % namvolnum.role.attrib "%role.attrib;">
+<!ELEMENT manvolnum (%word.char.mix;)*>
+<!ATTLIST manvolnum
+ %common.attrib;
+ %namvolnum.role.attrib;
+ %local.manvolnum.attrib;
+>
+<!ENTITY % local.citetitle.attrib "">
+<!ENTITY % citetitle.role.attrib "%role.attrib;">
+<!ELEMENT citetitle (%para.char.mix;)*>
+<!ATTLIST citetitle
+ pubwork (article
+ |book
+ |chapter
+ |part
+ |refentry
+ |section
+ |journal
+ |series
+ |set
+ |manuscript) #IMPLIED
+ %common.attrib;
+ %citetitle.role.attrib;
+ %local.citetitle.attrib;
+>
+<!ENTITY % local.emphasis.attrib "">
+<!ENTITY % emphasis.role.attrib "%role.attrib;">
+<!ELEMENT emphasis (%para.char.mix;)*>
+<!ATTLIST emphasis
+ %common.attrib;
+ %emphasis.role.attrib;
+ %local.emphasis.attrib;
+>
+<!ENTITY % local.phrase.attrib "">
+<!ENTITY % phrase.role.attrib "%role.attrib;">
+<!ELEMENT phrase (%para.char.mix;)*>
+<!ATTLIST phrase
+ %common.attrib;
+ %phrase.role.attrib;
+ %local.phrase.attrib;
+>
+<!ENTITY % local.quote.attrib "">
+<!ENTITY % quote.role.attrib "%role.attrib;">
+<!ELEMENT quote (%para.char.mix;)*>
+<!ATTLIST quote
+ %common.attrib;
+ %quote.role.attrib;
+ %local.quote.attrib;
+>
+<!ENTITY % local.trademark.attrib "">
+<!ENTITY % trademark.role.attrib "%role.attrib;">
+<!ATTLIST trademark
+ class (service
+ |trade
+ |registered
+ |copyright) 'trade'
+ %common.attrib;
+ %trademark.role.attrib;
+ %local.trademark.attrib;
+>
+<!ENTITY % local.link.attrib "">
+<!ENTITY % link.role.attrib "%role.attrib;">
+<!ELEMENT link (%para.char.mix;)*>
+<!ATTLIST link
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; type CDATA #IMPLIED
+ %common.attrib;
+ %link.role.attrib;
+ %local.link.attrib;
+>
+<!ENTITY % local.ulink.attrib "">
+<!ENTITY % ulink.role.attrib "%role.attrib;">
+<!ELEMENT ulink (%para.char.mix;)*>
+<!ATTLIST ulink
+ url CDATA #REQUIRED
+ type CDATA #IMPLIED
+ %common.attrib;
+ %ulink.role.attrib;
+ %local.ulink.attrib;
+>
+<!ENTITY % local.xref.attrib "">
+<!ENTITY % xref.role.attrib "%role.attrib;">
+<!ELEMENT xref EMPTY>
+<!ATTLIST xref
+ endterm IDREF #IMPLIED
+ %linkendreq.attrib; %common.attrib;
+ %xref.role.attrib;
+ %local.xref.attrib;
+>
+<!ENTITY % local.appendix.class "">
+<!ENTITY % appendix.class "appendix %local.appendix.class;">
+<!ENTITY % local.refname.char.mix "">
+<!ENTITY % refname.char.mix
+ "#PCDATA
+ |%tech.char.class;
+ %local.refname.char.mix;">
+<!ENTITY % local.appendix.attrib "">
+<!ENTITY % appendix.role.attrib "%role.attrib;">
+<!ATTLIST appendix
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %appendix.role.attrib;
+ %local.appendix.attrib;
+>
+<!ENTITY % local.section.attrib "">
+<!ENTITY % section.role.attrib "%role.attrib;">
+<!ATTLIST section
+ %label.attrib;
+ %status.attrib;
+ %common.attrib;
+ %section.role.attrib;
+ %local.section.attrib;
+>
+<!ENTITY % local.bibliography.attrib "">
+<!ENTITY % bibliography.role.attrib "%role.attrib;">
+<!ATTLIST bibliography
+ %status.attrib;
+ %common.attrib;
+ %bibliography.role.attrib;
+ %local.bibliography.attrib;
+>
+<!ENTITY % local.bibliodiv.attrib "">
+<!ENTITY % bibliodiv.role.attrib "%role.attrib;">
+<!ATTLIST bibliodiv
+ %status.attrib;
+ %common.attrib;
+ %bibliodiv.role.attrib;
+ %local.bibliodiv.attrib;
+>
+<!ENTITY % local.refentry.attrib "">
+<!ENTITY % refentry.role.attrib "%role.attrib;">
+<!ATTLIST refentry
+ %status.attrib;
+ %common.attrib;
+ %refentry.role.attrib;
+ %local.refentry.attrib;
+>
+<!ENTITY % local.refmeta.attrib "">
+<!ENTITY % refmeta.role.attrib "%role.attrib;">
+<!ATTLIST refmeta
+ %common.attrib;
+ %refmeta.role.attrib;
+ %local.refmeta.attrib;
+>
+<!ENTITY % local.refmiscinfo.attrib "">
+<!ENTITY % refmiscinfo.role.attrib "%role.attrib;">
+<!ELEMENT refmiscinfo (%docinfo.char.mix;)*>
+<!ATTLIST refmiscinfo
+ class CDATA #IMPLIED
+ %common.attrib;
+ %refmiscinfo.role.attrib;
+ %local.refmiscinfo.attrib;
+>
+<!ENTITY % local.refnamediv.attrib "">
+<!ENTITY % refnamediv.role.attrib "%role.attrib;">
+<!ATTLIST refnamediv
+ %common.attrib;
+ %refnamediv.role.attrib;
+ %local.refnamediv.attrib;
+>
+<!ENTITY % local.refdescriptor.attrib "">
+<!ENTITY % refdescriptor.role.attrib "%role.attrib;">
+<!ELEMENT refdescriptor (%refname.char.mix;)*>
+<!ATTLIST refdescriptor
+ %common.attrib;
+ %refdescriptor.role.attrib;
+ %local.refdescriptor.attrib;
+>
+<!ENTITY % local.refname.attrib "">
+<!ENTITY % refname.role.attrib "%role.attrib;">
+<!ELEMENT refname (%refname.char.mix;)*>
+<!ATTLIST refname
+ %common.attrib;
+ %refname.role.attrib;
+ %local.refname.attrib;
+>
+<!ENTITY % local.refpurpose.attrib "">
+<!ENTITY % refpurpose.role.attrib "%role.attrib;">
+<!ELEMENT refpurpose (%refinline.char.mix;)*>
+<!ATTLIST refpurpose
+ %common.attrib;
+ %refpurpose.role.attrib;
+ %local.refpurpose.attrib;
+>
+<!ENTITY % local.refclass.attrib "">
+<!ENTITY % refclass.role.attrib "%role.attrib;">
+<!ELEMENT refclass (%refclass.char.mix;)*>
+<!ATTLIST refclass
+ %common.attrib;
+ %refclass.role.attrib;
+ %local.refclass.attrib;
+>
+<!ENTITY % local.refsynopsisdiv.attrib "">
+<!ENTITY % refsynopsisdiv.role.attrib "%role.attrib;">
+<!ELEMENT refsynopsisdiv (refsynopsisdivinfo?, (%refsect.title.content;)?,
+ (((%refcomponent.mix;)+, refsect2*) | (refsect2+)))>
+<!ATTLIST refsynopsisdiv
+ %common.attrib;
+ %refsynopsisdiv.role.attrib;
+ %local.refsynopsisdiv.attrib;
+>
+<!ENTITY % local.refsect1.attrib "">
+<!ENTITY % refsect1.role.attrib "%role.attrib;">
+<!ELEMENT refsect1 (refsect1info?, (%refsect.title.content;),
+ (((%refcomponent.mix;)+, refsect2*) | refsect2+))>
+<!ATTLIST refsect1
+ %status.attrib;
+ %common.attrib;
+ %refsect1.role.attrib;
+ %local.refsect1.attrib;
+>
+<!ENTITY % local.refsect2.attrib "">
+<!ENTITY % refsect2.role.attrib "%role.attrib;">
+<!ELEMENT refsect2 (refsect2info?, (%refsect.title.content;),
+ (((%refcomponent.mix;)+, refsect3*) | refsect3+))>
+<!ATTLIST refsect2
+ %status.attrib;
+ %common.attrib;
+ %refsect2.role.attrib;
+ %local.refsect2.attrib;
+>
+<!ENTITY % local.refsect3.attrib "">
+<!ENTITY % refsect3.role.attrib "%role.attrib;">
+<!ELEMENT refsect3 (refsect3info?, (%refsect.title.content;),
+ (%refcomponent.mix;)+)>
+<!ATTLIST refsect3
+ %status.attrib;
+ %common.attrib;
+ %refsect3.role.attrib;
+ %local.refsect3.attrib;
+>
+<!ENTITY % local.article.attrib "">
+<!ENTITY % article.role.attrib "%role.attrib;">
+<!ATTLIST article
+ class (journalarticle
+ |productsheet
+ |whitepaper
+ |techreport
+ |specification
+ |faq) #IMPLIED
+ parentbook IDREF #IMPLIED
+ %status.attrib;
+ %common.attrib;
+ %article.role.attrib;
+ %local.article.attrib;
+>
+<!ELEMENT objectinfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT section (sectioninfo?,
+ (%sect.title.content;),
+ (((%divcomponent.mix;)+, section*)
+ | section+))>
+<!ELEMENT sectioninfo ((mediaobject | legalnotice
+ | keywordset | subjectset | %bibliocomponent.mix;)+)>
+<!ELEMENT authorgroup ((author|editor|corpauthor|othercredit)+)>
+<!ELEMENT affiliation (jobtitle?, orgname?)>
+<!ELEMENT para (%para.char.mix;)*>
+<!ELEMENT informaltable (mediaobject+|tgroup+) >
+<!ELEMENT replaceable (#PCDATA
+ | %link.char.class;
+ | inlinemediaobject)*>
+<!ELEMENT trademark (#PCDATA
+ | %link.char.class;
+ | %tech.char.class;
+ | inlinemediaobject
+ | emphasis)*>
+<!ELEMENT systemitem (%cptr.char.mix;)*>
+<!ELEMENT article ((%div.title.content;)?, articleinfo?,
+ (%bookcomponent.content;),
+ ((%appendix.class;)|bibliography)*)>
+<!ELEMENT articleinfo ((mediaobject | legalnotice
+ | subjectset | keywordset | %bibliocomponent.mix;)+)>
+<!ELEMENT appendix ((%bookcomponent.title.content;),
+ (%bookcomponent.content;))>
+<!ELEMENT bibliography ((%bookcomponent.title.content;)?,
+ (%component.mix;)*,
+ (bibliodiv+ | bibliomixed+))>
+<!ELEMENT bibliomixed (#PCDATA | %bibliocomponent.mix; | bibliomset)*>
+<!ELEMENT bibliodiv ((%sect.title.content;)?, (%component.mix;)*,
+ (bibliomixed)+)>
+<!ELEMENT sidebar ((%formalobject.title.content;)?,
+ (%sidebar.mix;)+)>
+<!ELEMENT programlisting (%para.char.mix; | lineannotation)*>
+<!ELEMENT literallayout (%para.char.mix; | lineannotation)*>
diff --git a/tests/docbook/dtd/simple/4.1.2.4/sinclist.mod b/tests/docbook/dtd/simple/4.1.2.4/sinclist.mod
new file mode 100644
index 00000000..20accd5f
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/sinclist.mod
@@ -0,0 +1,284 @@
+<!-- ====================================================================== -->
+<!-- Simplified DocBook XML Inclusions V4.1.2.4
+ Part of the Simplified DocBook XML V4.1.2.4 DTD
+ http://nwalsh.com/docbook/simple/
+
+ See COPYRIGHT for more information
+
+ Please direct all questions and comments about this DTD to
+ Norman Walsh, <ndw@nwalsh.com>.
+ -->
+<!-- ====================================================================== -->
+
+<!ENTITY % titleabbrev.module "IGNORE">
+
+<!ENTITY % biblioset.module "IGNORE">
+<!ENTITY % isbn.module "IGNORE">
+<!ENTITY % issn.module "IGNORE">
+<!ENTITY % pagenums.module "IGNORE">
+<!ENTITY % simplelist.content.module "IGNORE">
+<!ENTITY % anchor.module "IGNORE">
+<!ENTITY % procedure.content.module "IGNORE">
+<!ENTITY % publisher.module "IGNORE">
+<!ENTITY % printhistory.module "IGNORE">
+<!ENTITY % address.content.module "IGNORE">
+<!ENTITY % glossterm.module "IGNORE">
+<!ENTITY % bibliomixed.element "IGNORE">
+<!ENTITY % bibliography.element "IGNORE">
+<!ENTITY % bibliodiv.element "IGNORE">
+<!ENTITY % biblioentry.module "IGNORE">
+<!ENTITY % glossary.content.module "IGNORE">
+<!ENTITY % glossentry.content.module "IGNORE">
+<!ENTITY % ssscript.module "IGNORE">
+<!ENTITY % caution.element "IGNORE">
+<!ENTITY % caution.attlist "IGNORE">
+<!ENTITY % important.element "IGNORE">
+<!ENTITY % important.attlist "IGNORE">
+<!ENTITY % tip.element "IGNORE">
+<!ENTITY % tip.attlist "IGNORE">
+<!ENTITY % warning.element "IGNORE">
+<!ENTITY % warning.attlist "IGNORE">
+<!ENTITY % remark.module "IGNORE">
+<!ENTITY % otherinfo.module "IGNORE">
+<!ENTITY % set.content.module "IGNORE">
+<!ENTITY % set.module "IGNORE">
+<!ENTITY % setinfo.module "IGNORE">
+<!ENTITY % book.content.module "IGNORE">
+<!ENTITY % book.module "IGNORE">
+<!ENTITY % bookinfo.module "IGNORE">
+<!ENTITY % dedication.module "IGNORE">
+<!ENTITY % colophon.module "IGNORE">
+<!ENTITY % toc.content.module "IGNORE">
+<!ENTITY % toc.module "IGNORE">
+<!ENTITY % tocfront.module "IGNORE">
+<!ENTITY % tocentry.module "IGNORE">
+<!ENTITY % tocpart.module "IGNORE">
+<!ENTITY % tocchap.module "IGNORE">
+<!ENTITY % toclevel1.module "IGNORE">
+<!ENTITY % toclevel2.module "IGNORE">
+<!ENTITY % toclevel3.module "IGNORE">
+<!ENTITY % toclevel4.module "IGNORE">
+<!ENTITY % toclevel5.module "IGNORE">
+<!ENTITY % tocback.module "IGNORE">
+<!ENTITY % lot.content.module "IGNORE">
+<!ENTITY % lot.module "IGNORE">
+<!ENTITY % lotentry.module "IGNORE">
+<!ENTITY % chapter.module "IGNORE">
+<!ENTITY % part.module "IGNORE">
+<!ENTITY % preface.module "IGNORE">
+<!ENTITY % reference.module "IGNORE">
+<!ENTITY % partintro.module "IGNORE">
+<!ENTITY % sect1.module "IGNORE">
+<!ENTITY % sect2.module "IGNORE">
+<!ENTITY % sect3.module "IGNORE">
+<!ENTITY % sect4.module "IGNORE">
+<!ENTITY % sect5.module "IGNORE">
+<!ENTITY % simplesect.module "IGNORE">
+<!ENTITY % index.content.module "IGNORE">
+<!ENTITY % indexes.module "IGNORE">
+<!ENTITY % indexdiv.module "IGNORE">
+<!ENTITY % indexentry.module "IGNORE">
+<!ENTITY % primsecterie.module "IGNORE">
+<!ENTITY % seeie.module "IGNORE">
+<!ENTITY % seealsoie.module "IGNORE">
+
+<![ %exclude.refentry; [
+<!ENTITY % refentry.content.module "IGNORE">
+<!ENTITY % refentry.module "IGNORE">
+<!ENTITY % refmeta.module "IGNORE">
+<!ENTITY % refmiscinfo.module "IGNORE">
+<!ENTITY % refnamediv.module "IGNORE">
+<!ENTITY % refdescriptor.module "IGNORE">
+<!ENTITY % refname.module "IGNORE">
+<!ENTITY % refpurpose.module "IGNORE">
+<!ENTITY % refclass.module "IGNORE">
+<!ENTITY % refsynopsisdiv.module "IGNORE">
+<!ENTITY % refsect1.module "IGNORE">
+<!ENTITY % refsect2.module "IGNORE">
+<!ENTITY % refsect3.module "IGNORE">
+<!ENTITY % refentrytitle.module "IGNORE">
+<!ENTITY % manvolnum.module "IGNORE">
+]]>
+
+<!ENTITY % bookbiblio.module "IGNORE">
+<!ENTITY % seriesinfo.module "IGNORE">
+<!ENTITY % itermset.module "IGNORE">
+<!ENTITY % msgset.content.module "IGNORE">
+<!ENTITY % msgset.module "IGNORE">
+<!ENTITY % msgentry.module "IGNORE">
+<!ENTITY % msg.module "IGNORE">
+<!ENTITY % msgmain.module "IGNORE">
+<!ENTITY % msgsub.module "IGNORE">
+<!ENTITY % msgrel.module "IGNORE">
+<!ENTITY % msginfo.module "IGNORE">
+<!ENTITY % msglevel.module "IGNORE">
+<!ENTITY % msgorig.module "IGNORE">
+<!ENTITY % msgaud.module "IGNORE">
+<!ENTITY % msgexplan.module "IGNORE">
+<!ENTITY % qandset.content.module "IGNORE">
+<!ENTITY % qandset.module "IGNORE">
+<!ENTITY % qandadiv.module "IGNORE">
+<!ENTITY % qandaentry.module "IGNORE">
+<!ENTITY % question.module "IGNORE">
+<!ENTITY % answer.module "IGNORE">
+<!ENTITY % label.module "IGNORE">
+<!ENTITY % bridgehead.module "IGNORE">
+<!ENTITY % highlights.module "IGNORE">
+<!ENTITY % formalpara.module "IGNORE">
+<!ENTITY % simpara.module "IGNORE">
+<!ENTITY % glosslist.module "IGNORE">
+<!ENTITY % segmentedlist.content.module "IGNORE">
+<!ENTITY % segmentedlist.module "IGNORE">
+<!ENTITY % segtitle.module "IGNORE">
+<!ENTITY % seglistitem.module "IGNORE">
+<!ENTITY % seg.module "IGNORE">
+<!ENTITY % calloutlist.content.module "IGNORE">
+<!ENTITY % calloutlist.module "IGNORE">
+<!ENTITY % callout.module "IGNORE">
+<!ENTITY % informalexample.module "IGNORE">
+<!ENTITY % programlistingco.module "IGNORE">
+<!ENTITY % areaspec.content.module "IGNORE">
+<!ENTITY % areaspec.module "IGNORE">
+<!ENTITY % area.module "IGNORE">
+<!ENTITY % areaset.module "IGNORE">
+<!ENTITY % screenco.module "IGNORE">
+<!ENTITY % screen.module "IGNORE">
+<!ENTITY % screenshot.content.module "IGNORE">
+<!ENTITY % screenshot.module "IGNORE">
+<!ENTITY % screeninfo.module "IGNORE">
+<!ENTITY % informalfigure.module "IGNORE">
+<!ENTITY % graphicco.module "IGNORE">
+<!ENTITY % graphic.module "IGNORE">
+<!ENTITY % equation.module "IGNORE">
+<!ENTITY % informalequation.module "IGNORE">
+<!ENTITY % inlineequation.module "IGNORE">
+<!ENTITY % inlinegraphic.module "IGNORE">
+<!ENTITY % alt.module "IGNORE">
+<!ENTITY % synopsis.module "IGNORE">
+<!ENTITY % cmdsynopsis.content.module "IGNORE">
+<!ENTITY % cmdsynopsis.module "IGNORE">
+<!ENTITY % arg.module "IGNORE">
+<!ENTITY % group.module "IGNORE">
+<!ENTITY % sbr.module "IGNORE">
+<!ENTITY % synopfragmentref.module "IGNORE">
+<!ENTITY % synopfragment.module "IGNORE">
+<!ENTITY % funcsynopsis.content.module "IGNORE">
+<!ENTITY % funcsynopsis.module "IGNORE">
+<!ENTITY % funcsynopsisinfo.module "IGNORE">
+<!ENTITY % funcprototype.module "IGNORE">
+<!ENTITY % funcdef.module "IGNORE">
+<!ENTITY % void.module "IGNORE">
+<!ENTITY % varargs.module "IGNORE">
+<!ENTITY % paramdef.module "IGNORE">
+<!ENTITY % funcparams.module "IGNORE">
+<!ENTITY % ackno.module "IGNORE">
+<!ENTITY % affiliation.element "IGNORE">
+ <!ENTITY % shortaffil.module "IGNORE">
+ <!ENTITY % orgdiv.module "IGNORE">
+<!ENTITY % artpagenums.module "IGNORE">
+ <!ENTITY % collab.content.module "IGNORE">
+ <!ENTITY % collab.module "IGNORE">
+ <!ENTITY % collabname.module "IGNORE">
+<!ENTITY % confgroup.content.module "IGNORE">
+<!ENTITY % confgroup.module "IGNORE">
+ <!ENTITY % confdates.module "IGNORE">
+ <!ENTITY % conftitle.module "IGNORE">
+ <!ENTITY % confnum.module "IGNORE">
+ <!ENTITY % confsponsor.module "IGNORE">
+<!ENTITY % contractnum.module "IGNORE">
+<!ENTITY % contractsponsor.module "IGNORE">
+<!ENTITY % corpname.module "IGNORE">
+<!ENTITY % invpartnumber.module "IGNORE">
+<!ENTITY % modespec.module "IGNORE">
+ <!ENTITY % contrib.module "IGNORE">
+<!ENTITY % productname.module "IGNORE">
+<!ENTITY % productnumber.module "IGNORE">
+<!ENTITY % pubsnumber.module "IGNORE">
+<!ENTITY % seriesvolnums.module "IGNORE">
+<!ENTITY % accel.module "IGNORE">
+<!ENTITY % action.module "IGNORE">
+<!ENTITY % application.module "IGNORE">
+<!ENTITY % classname.module "IGNORE">
+<!ENTITY % co.module "IGNORE">
+<!ENTITY % database.module "IGNORE">
+<!ENTITY % envar.module "IGNORE">
+<!ENTITY % errorcode.module "IGNORE">
+<!ENTITY % errorname.module "IGNORE">
+<!ENTITY % errortype.module "IGNORE">
+<!ENTITY % function.module "IGNORE">
+<!ENTITY % guibutton.module "IGNORE">
+<!ENTITY % guiicon.module "IGNORE">
+<!ENTITY % guilabel.module "IGNORE">
+<!ENTITY % guimenu.module "IGNORE">
+<!ENTITY % guimenuitem.module "IGNORE">
+<!ENTITY % guisubmenu.module "IGNORE">
+<!ENTITY % hardware.module "IGNORE">
+<!ENTITY % interface.module "IGNORE">
+<!ENTITY % interfacedefinition.module "IGNORE">
+<!ENTITY % keycap.module "IGNORE">
+<!ENTITY % keycode.module "IGNORE">
+<!ENTITY % keycombo.module "IGNORE">
+<!ENTITY % keysym.module "IGNORE">
+<!ENTITY % constant.module "IGNORE">
+<!ENTITY % varname.module "IGNORE">
+<!ENTITY % markup.module "IGNORE">
+<!ENTITY % mediaobjectco.module "IGNORE">
+<!ENTITY % imageobjectco.module "IGNORE">
+<!ENTITY % medialabel.module "IGNORE">
+<!ENTITY % menuchoice.content.module "IGNORE">
+<!ENTITY % menuchoice.module "IGNORE">
+<!ENTITY % shortcut.module "IGNORE">
+<!ENTITY % mousebutton.module "IGNORE">
+<!ENTITY % msgtext.module "IGNORE">
+<!ENTITY % optional.module "IGNORE">
+<!ENTITY % parameter.module "IGNORE">
+<!ENTITY % prompt.module "IGNORE">
+<!ENTITY % property.module "IGNORE">
+<!ENTITY % returnvalue.module "IGNORE">
+<!ENTITY % sgmltag.module "IGNORE">
+<!ENTITY % structfield.module "IGNORE">
+<!ENTITY % structname.module "IGNORE">
+<!ENTITY % symbol.module "IGNORE">
+<!ENTITY % token.module "IGNORE">
+<!ENTITY % type.module "IGNORE">
+<!ENTITY % citation.module "IGNORE">
+<!ENTITY % citerefentry.module "IGNORE">
+<!ENTITY % firstterm.module "IGNORE">
+<!ENTITY % foreignphrase.module "IGNORE">
+<!ENTITY % wordasword.module "IGNORE">
+<!ENTITY % olink.module "IGNORE">
+<!ENTITY % footnoteref.module "IGNORE">
+<!ENTITY % beginpage.module "IGNORE">
+<!ENTITY % indexterm.content.module "IGNORE">
+<!ENTITY % indexterm.module "IGNORE">
+<!ENTITY % primsecter.module "IGNORE">
+<!ENTITY % seeseealso.module "IGNORE">
+
+<!-- new in 4.0 -->
+<!ENTITY % classsynopsis.content.module "IGNORE">
+
+<!ENTITY % bibliographyinfo.module "IGNORE">
+<!ENTITY % chapterinfo.module "IGNORE">
+<!ENTITY % glossaryinfo.module "IGNORE">
+<!ENTITY % indexinfo.module "IGNORE">
+<!ENTITY % partinfo.module "IGNORE">
+<!ENTITY % prefaceinfo.module "IGNORE">
+<!ENTITY % refentryinfo.module "IGNORE">
+<!ENTITY % referenceinfo.module "IGNORE">
+<!ENTITY % refsect1info.module "IGNORE">
+<!ENTITY % refsect2info.module "IGNORE">
+<!ENTITY % refsect3info.module "IGNORE">
+<!ENTITY % refsynopsisdivinfo.module "IGNORE">
+<!ENTITY % sect1info.element "IGNORE">
+<!ENTITY % sect1info.attlist "IGNORE">
+<!ENTITY % sect2info.element "IGNORE">
+<!ENTITY % sect2info.attlist "IGNORE">
+<!ENTITY % sect3info.element "IGNORE">
+<!ENTITY % sect3info.attlist "IGNORE">
+<!ENTITY % sect4info.element "IGNORE">
+<!ENTITY % sect4info.attlist "IGNORE">
+<!ENTITY % sect5info.element "IGNORE">
+<!ENTITY % sect5info.attlist "IGNORE">
+<!ENTITY % sectioninfo.module "IGNORE">
+<!ENTITY % setindexinfo.module "IGNORE">
+<!ENTITY % sidebarinfo.module "IGNORE">
diff --git a/tests/docbook/dtd/simple/4.1.2.4/test.xml b/tests/docbook/dtd/simple/4.1.2.4/test.xml
new file mode 100644
index 00000000..004b3a59
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/test.xml
@@ -0,0 +1,6 @@
+<!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.1.2.4//EN"
+ "sdocbook.dtd">
+<article><title>Article Title</title>
+<para>Paragraph.</para>
+</article>
diff --git a/tests/docbook/dtd/simple/4.1.2.4/testcss.xml b/tests/docbook/dtd/simple/4.1.2.4/testcss.xml
new file mode 100644
index 00000000..d74f4a73
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/testcss.xml
@@ -0,0 +1,52 @@
+<!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBook XML V4.1.2.4//EN"
+ "sdocbook.dtd">
+<?xml-stylesheet href="sdocbook.css" type="text/css"?>
+<article>
+<title>foo</title>
+<para>This is a pargraph</para>
+<literallayout>
+59 North Street
+Belchertown, MA 01007
+</literallayout>
+<section><title>sect1</title>
+<para>This is a paragraph.</para>
+<section><title>sect2</title>
+<para>This is a paragraph.</para>
+<blockquote><para>This is a block quote.</para></blockquote>
+<para>This is a paragraph.</para>
+<section><title>sect3</title>
+<para>This is a paragraph with a <citetitle>title citation</citetitle>,
+a <command>command</command>, and some <computeroutput>computer output</computeroutput>.
+</para>
+<section><title>sect4</title>
+<itemizedlist>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+</itemizedlist>
+<section><title>sect5</title>
+<orderedlist>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+<listitem><para>this is a list item.</para></listitem>
+</orderedlist>
+<section><title>sect6</title>
+
+<informaltable>
+<tgroup cols="3">
+<tbody>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+</tbody>
+</tgroup>
+</informaltable>
+
+</section>
+</section>
+</section>
+</section>
+</section>
+</section>
+</article>
diff --git a/tests/docbook/dtd/simple/4.1.2.4/testcust.xml b/tests/docbook/dtd/simple/4.1.2.4/testcust.xml
new file mode 100644
index 00000000..13aa9c61
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/testcust.xml
@@ -0,0 +1,4 @@
+<!DOCTYPE article SYSTEM "sdocbook-custom.dtd">
+<article><title>Article Title</title>
+<para>Paragraph.</para>
+</article>
diff --git a/tests/docbook/dtd/simple/4.1.2.4/testrefcust.xml b/tests/docbook/dtd/simple/4.1.2.4/testrefcust.xml
new file mode 100644
index 00000000..a612ed37
--- /dev/null
+++ b/tests/docbook/dtd/simple/4.1.2.4/testrefcust.xml
@@ -0,0 +1,10 @@
+<!DOCTYPE refentry SYSTEM "sdocbookref-custom.dtd">
+<refentry>
+<refnamediv>
+<refname>test</refname>
+<refpurpose>just testing</refpurpose>
+</refnamediv>
+<refsect1><title>description</title>
+<para>just a test.</para>
+</refsect1>
+</refentry>
diff --git a/tests/docbook/dtd/simple/Makefile.am b/tests/docbook/dtd/simple/Makefile.am
new file mode 100644
index 00000000..4b30ca28
--- /dev/null
+++ b/tests/docbook/dtd/simple/Makefile.am
@@ -0,0 +1,4 @@
+## Process this file with automake to produce Makefile.in
+
+SUBDIRS= 3.1.7.1 4.1.2.4
+
diff --git a/tests/docbook/lib/ChangeLog b/tests/docbook/lib/ChangeLog
new file mode 100644
index 00000000..26543d20
--- /dev/null
+++ b/tests/docbook/lib/ChangeLog
@@ -0,0 +1,20 @@
+2001-01-28 Norman Walsh <ndw@nwalsh.com>
+
+ * lib.xsl: Moved string.subst to lib; added length-magnitude and length-units templates for parsing lengths
+
+2000-10-19 Norman Walsh <ndw@nwalsh.com>
+
+ * lib.xsl: Documentation changes
+
+2000-10-17 Norman Walsh <ndw@nwalsh.com>
+
+ * lib.xsl: Updated documentation
+
+2000-10-16 Norman Walsh <ndw@nwalsh.com>
+
+ * lib.xsl: Added doc:reference
+
+2000-10-09 Norman Walsh <ndw@nwalsh.com>
+
+ * LostLog, lib.xsl: New file.
+
diff --git a/tests/docbook/lib/LostLog b/tests/docbook/lib/LostLog
new file mode 100644
index 00000000..b6d0f2af
--- /dev/null
+++ b/tests/docbook/lib/LostLog
@@ -0,0 +1,24 @@
+2000-04-19 Norman Walsh <ndw@nwalsh.com>
+
+ * lib.xsl: Added xpointer.idref
+
+1999-12-28 Norman Walsh <ndw@nwalsh.com>
+
+ * lib.xsl: Added stylesheet version
+
+1999-10-20 Norman Walsh <ndw@nwalsh.com>
+
+ * lib.xsl: Update URI in all the included modules
+
+1999-07-27 Norman Walsh <ndw@nwalsh.com>
+
+ * lib.xsl: Updated to July spec
+
+1999-07-15 Norman Walsh <ndw@nwalsh.com>
+
+ * lib.xsl: Added copy-string function
+
+1999-05-20 Norman Walsh <ndw@nwalsh.com>
+
+ * lib.xsl: New file.
+
diff --git a/tests/docbook/lib/Makefile.am b/tests/docbook/lib/Makefile.am
new file mode 100644
index 00000000..3b18db7b
--- /dev/null
+++ b/tests/docbook/lib/Makefile.am
@@ -0,0 +1,3 @@
+## Process this file with automake to produce Makefile.in
+
+EXTRA_DIST = ChangeLog LostLog lib.xsl
diff --git a/tests/docbook/lib/lib.xsl b/tests/docbook/lib/lib.xsl
new file mode 100644
index 00000000..7aa690b4
--- /dev/null
+++ b/tests/docbook/lib/lib.xsl
@@ -0,0 +1,242 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc"
+ version='1.0'>
+
+<!-- ********************************************************************
+ $Id$
+ ********************************************************************
+
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://nwalsh.com/docbook/xsl/ for copyright
+ and other information.
+
+ This module implements DTD-independent functions
+
+ ******************************************************************** -->
+
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<author><surname>Walsh</surname>
+<firstname>Norman</firstname></author>
+<copyright><year>1999</year><year>2000</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</referenceinfo>
+<title>Library Template Reference</title>
+
+<partintro>
+<section><title>Introduction</title>
+
+<para>This is technical reference documentation for the DocBook XSL
+Stylesheets; it documents (some of) the parameters, templates, and
+other elements of the stylesheets.</para>
+
+<para>This is not intended to be <quote>user</quote> documentation.
+It is provided for developers writing customization layers for the
+stylesheets, and for anyone who's interested in <quote>how it
+works</quote>.</para>
+
+<para>Although I am trying to be thorough, this documentation is known
+to be incomplete. Don't forget to read the source, too :-)</para>
+</section>
+</partintro>
+</doc:reference>
+
+<xsl:template name="dot.count">
+ <!-- Returns the number of "." characters in a string -->
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="count" select="0"/>
+ <xsl:choose>
+ <xsl:when test="contains($string, '.')">
+ <xsl:call-template name="dot.count">
+ <xsl:with-param name="string" select="substring-after($string, '.')"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$count"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<xsl:template name="copy-string">
+ <!-- returns 'count' copies of 'string' -->
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="count" select="0"/>
+ <xsl:param name="result"></xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="$count>0">
+ <xsl:call-template name="copy-string">
+ <xsl:with-param name="string" select="$string"/>
+ <xsl:with-param name="count" select="$count - 1"/>
+ <xsl:with-param name="result">
+ <xsl:value-of select="$result"/>
+ <xsl:value-of select="$string"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$result"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<doc:template name="string.subst" xmlns="">
+<refpurpose>Substitute one text string for another in a string</refpurpose>
+<refdescription>
+<para>The <function>string.subst</function> template replaces all
+occurances of <param>target</param> in <param>string</param>
+with <param>replacement</param> and returns the result.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="string.subst">
+ <xsl:param name="string"></xsl:param>
+ <xsl:param name="target"></xsl:param>
+ <xsl:param name="replacement"></xsl:param>
+
+ <xsl:choose>
+ <xsl:when test="contains($string, $target)">
+ <xsl:variable name="rest">
+ <xsl:call-template name="string.subst">
+ <xsl:with-param name="string"
+ select="substring-after($string, $target)"/>
+ <xsl:with-param name="target" select="$target"/>
+ <xsl:with-param name="replacement" select="$replacement"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat(substring-before($string, $target),
+ $replacement,
+ $rest)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<doc:template name="xpointer.idref" xmlns="">
+<refpurpose>Extract IDREF from an XPointer</refpurpose>
+<refdescription>
+<para>The <function>xpointer.idref</function> template returns the
+ID portion of an XPointer which is a pointer to an ID within the current
+document, or the empty string if it is not.</para>
+<para>In other words, <function>xpointer.idref</function> returns
+<quote>foo</quote> when passed either <literal>#foo</literal>
+or <literal>#xpointer(id('foo'))</literal>, otherwise it returns
+the empty string.</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="xpointer.idref">
+ <xsl:param name="xpointer">http://...</xsl:param>
+ <xsl:choose>
+ <xsl:when test="starts-with($xpointer, '#xpointer(id(')">
+ <xsl:variable name="rest" select="substring-after($xpointer, '#xpointer(id(')"/>
+ <xsl:variable name="quote" select="substring($rest, 1, 1)"/>
+ <xsl:value-of select="substring-before(substring-after($xpointer, $quote), $quote)"/>
+ </xsl:when>
+ <xsl:when test="starts-with($xpointer, '#')">
+ <xsl:value-of select="substring-after($xpointer, '#')"/>
+ </xsl:when>
+ <!-- otherwise it's a pointer to some other document -->
+ </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<doc:template name="length-magnitude" xmlns="">
+<refpurpose>Return the unqualified dimension from a length specification</refpurpose>
+<refdescription>
+<para>The <function>length-magnitude</function> template returns the
+unqualified length ("20" for "20pt") from a dimension.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="length-magnitude">
+ <xsl:param name="length" select="'0pt'"/>
+
+ <xsl:choose>
+ <xsl:when test="string-length($length) = 0"/>
+ <xsl:when test="substring($length,1,1) = '0'
+ or substring($length,1,1) = '1'
+ or substring($length,1,1) = '2'
+ or substring($length,1,1) = '3'
+ or substring($length,1,1) = '4'
+ or substring($length,1,1) = '5'
+ or substring($length,1,1) = '6'
+ or substring($length,1,1) = '7'
+ or substring($length,1,1) = '8'
+ or substring($length,1,1) = '9'
+ or substring($length,1,1) = '.'">
+ <xsl:value-of select="substring($length,1,1)"/>
+ <xsl:call-template name="length-magnitude">
+ <xsl:with-param name="length" select="substring($length,2)"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ================================================================== -->
+
+<doc:template name="length-spec" xmlns="">
+<refpurpose>Return a fully qualified length specification</refpurpose>
+<refdescription>
+<para>The <function>length-spec</function> template returns the
+qualified length from a dimension. If an unqualified length is given,
+the <param>default.units</param> will be added to it.
+</para>
+</refdescription>
+</doc:template>
+
+<xsl:template name="length-spec">
+ <xsl:param name="length" select="'0pt'"/>
+ <xsl:param name="default.units" select="'pt'"/>
+ <xsl:variable name="magnitude">
+ <xsl:call-template name="length-magnitude">
+ <xsl:with-param name="length" select="$length"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="units">
+ <xsl:value-of select="substring($length, string-length($magnitude)+1)"/>
+ </xsl:variable>
+
+ <xsl:value-of select="$magnitude"/>
+ <xsl:choose>
+ <xsl:when test="$units='cm'
+ or $units='mm'
+ or $units='in'
+ or $units='pt'
+ or $units='pc'
+ or $units='px'
+ or $units='em'">
+ <xsl:value-of select="$units"/>
+ </xsl:when>
+ <xsl:when test="$units = ''">
+ <xsl:value-of select="$default.units"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:text>Unrecognized unit of measure: </xsl:text>
+ <xsl:value-of select="$units"/>
+ <xsl:text>.</xsl:text>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/tests/docbook/result/Makefile.am b/tests/docbook/result/Makefile.am
new file mode 100644
index 00000000..9cbcac40
--- /dev/null
+++ b/tests/docbook/result/Makefile.am
@@ -0,0 +1,4 @@
+## Process this file with automake to produce Makefile.in
+
+SUBDIRS= html
+
diff --git a/tests/docbook/result/html/Makefile.am b/tests/docbook/result/html/Makefile.am
new file mode 100644
index 00000000..208ff52b
--- /dev/null
+++ b/tests/docbook/result/html/Makefile.am
@@ -0,0 +1,11 @@
+## Process this file with automake to produce Makefile.in
+
+all:
+
+EXTRA_DIST = \
+ article.html article2.html article3.html bib.html book.html \
+ book2.html book3.html callout.html chunk.html classsynop.html \
+ condition.html docbook40.html emc2.gif emc2.png figtest.html \
+ foottest.html fotest.html func.html graphics.html gtest.html \
+ idxbook.html multilingual.html qa.html qa2.html sectest.html \
+ set.html table.html test.html testmath.html verbtest.html
diff --git a/tests/docbook/result/html/article.html b/tests/docbook/result/html/article.html
new file mode 100644
index 00000000..dafbd532
--- /dev/null
+++ b/tests/docbook/result/html/article.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Artheader Test Document Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="id2681249" class="article">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2670159"></a>Artheader Test Document Title</h1></div>
+<div>
+<h3 class="corpauthor">nwalsh</h3>
+<h3 class="author">Norman Walsh</h3>
+<h3 class="othercredit">Other Credit</h3>
+<h4 class="editedby">Edited by</h4>
+<h3 class="editor">Someother Editor</h3>
+<h3 class="author">Someone Else</h3>
+</div>
+<div><p class="copyright">Copyright © 1999 by Norman Walsh</p></div>
+<div><p class="pubdate">Apr. 26, 1999</p></div>
+<div><div class="abstract">
+<p>
+<a name="id2690855"></a>
+<b><fake>Abstract</fake></b>
+</p>
+<p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</p>
+</div></div>
+<hr>
+</div>
+<p>
+This is a &#x201C;<fake>short quote</fake>&#x201D;.
+This is a &#x201C;<fake>Quotation with a &#x201C;<fake>nested quotation
+containing a &#x201C;<fake>nested quotation and another &#x201C;<fake>nested
+quotation</fake>&#x201D;</fake>&#x201D;</fake>&#x201D;</fake>&#x201D;.
+</p>
+<div class="literallayout"><fake>This is a <i><fake>literal layout</fake></i>
+<br>
+  It'll be a &lt;pre&gt; until the <tt><fake>chunk.pl</fake></tt>
+<br>
+script    fixes   things    up.</fake></div>
+<p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</p>
+<div class="figure">
+<p>
+<a name="testfig"></a>
+<b><fake>
+<fake>Figure 1.</fake> Test Figure</fake></b>
+</p>
+<pre class="programlisting">This is a
+ ProgramListing
+</pre>
+</div>
+<p>This para contains an xref to a figure: <a href="#testfig">Figure 1.</a>.
+</p>
+<div class="figure">
+<p>
+<a name="testfig2"></a>
+<b><fake>
+<fake>Figure 2.</fake> Test Figure2</fake></b>
+</p>
+<pre class="programlisting">A Second
+ Test Figure
+</pre>
+</div>
+<p>This para contains an <a href="#testfig2">link</a> to a
+figure.
+</p>
+<div class="itemizedlist"><ul>
+<li><p>
+<a name="id2689938"></a>Test item.</p></li>
+<li><p>
+<a name="id2689944"></a>Test item.</p></li>
+<li><p>
+<a name="id2689952"></a>Test item.</p></li>
+</ul></div>
+<div class="orderedlist"><ol type="1">
+<li><p>
+<a name="id2689963"></a>Test item.</p></li>
+<li><p>
+<a name="id2689971"></a>Test item.</p></li>
+<li><p>
+<a name="id2689978"></a>Test item.</p></li>
+</ol></div>
+<p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</p>
+<div class="section">
+<a name="id2689996"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2689996"></a>
+<fake>First level section</fake>
+</h2></div></div>
+<div class="section">
+<a name="id2690005"></a>
+<div class="titlepage"><div><h3 class="title">
+<a name="id2690005"></a>
+<fake>Second level section</fake>
+</h3></div></div>
+<div class="section">
+<a name="id2690014"></a>
+<div class="titlepage"><div><h4 class="title">
+<a name="id2690014"></a>
+<fake>Third level section</fake>
+</h4></div></div>
+<div class="section">
+<a name="id2690023"></a>
+<div class="titlepage"><div><h5 class="title">
+<a name="id2690023"></a>
+<fake>Fourth level section</fake>
+</h5></div></div>
+<div class="section">
+<a name="id2690032"></a>
+<div class="titlepage"><div><h6 class="title">
+<a name="id2690032"></a>
+<fake>Fifth level section (SI)</fake>
+</h6></div></div>
+<div class="section">
+<a name="id2690049"></a>
+<div class="titlepage"><div><h6 class="title">
+<a name="id2690049"></a>
+<fake>Sixth level section</fake>
+</h6></div></div>
+<div class="section">
+<a name="id2690058"></a>
+<div class="titlepage"><div><h6 class="title">
+<a name="id2690058"></a>
+<fake>Seventh level section</fake>
+</h6></div></div>
+<p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div id="id2690078" class="appendix">
+<h2 class="title" style="clear: all">
+<a name="id2690078"></a>
+<fake>
+<fake>Appendix A.</fake> Appendix</fake>
+</h2>
+<p>This is just a test.</p>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/article2.html b/tests/docbook/result/html/article2.html
new file mode 100644
index 00000000..e6e76c55
--- /dev/null
+++ b/tests/docbook/result/html/article2.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Artheader Test Document Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="id2677390" class="article">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2671677"></a>Artheader Test Document Title</h1></div>
+<div><h3 class="author">Norman Walsh</h3></div>
+<div><p class="copyright">Copyright © 1999 by Norman Walsh</p></div>
+<div><p class="pubdate">Apr. 26, 1999</p></div>
+<div><div class="abstract">
+<p>
+<a name="id2702672"></a>
+<b><fake>Abstract</fake></b>
+</p>
+<p>This article is just a test. This <i><fake>article</fake></i>
+is just a test.
+This <b><tt><fake>article</fake></tt></b> is just a test.
+This <tt><fake>&lt;<a>ndw@nwalsh.com</a>&gt;</fake></tt> is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</p>
+</div></div>
+<hr>
+</div>
+<p>This article is just a test. This <i><fake>article</fake></i>
+is just a test.
+This <b><tt><fake>article</fake></tt></b> is just a test.
+This <tt><fake>&lt;<a>ndw@nwalsh.com</a>&gt;</fake></tt> is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</p>
+<div class="table">
+<p>
+<a name="id2690875"></a>
+<b><fake>
+<fake>Table 1.</fake> This is a test table</fake></b>
+</p>
+<table summary="This is a test table" border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<thead><tr>
+<th>Head1</th>
+<th align="center">Head2</th>
+<th>Head3</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Entry1</td>
+<td>Entry2</td>
+<td>Entry3</td>
+</tr>
+<tr>
+<td>Entry1</td>
+<td colspan="2" align="center">span 2-3</td>
+</tr>
+<tr>
+<td>Entry1</td>
+<td rowspan="3" valign="middle">morerows2</td>
+<td>Entry3</td>
+</tr>
+<tr>
+<td>Entry1</td>
+<td>Entry3</td>
+</tr>
+<tr>
+<td>Entry1</td>
+<td>Entry3</td>
+</tr>
+<tr><td colspan="3" align="center">fullspan</td></tr>
+<tr align="center">
+<td>Entry1</td>
+<td>Entry2</td>
+<td align="left">Entry3</td>
+</tr>
+<tr>
+<td>Entry1</td>
+<td>Entry2</td>
+<td>Entry3</td>
+</tr>
+<tr>
+<td>Entry1</td>
+<td>Entry2</td>
+<td>Entry3</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="variablelist"><dl>
+<dt>
+<a name="id2689713"></a>
+<span class="term">term</span>
+</dt>
+<dd><p>
+<a name="id2689719"></a>some text</p></dd>
+<dt>
+<a name="id2689727"></a>
+<span class="term">term2a, </span>
+<span class="term">term2b</span>
+</dt>
+<dd><p>
+<a name="id2689739"></a>some text</p></dd>
+<dt>
+<a name="id2689748"></a>
+<span class="term">term3</span>
+</dt>
+<dd>
+<p>
+<a name="id2689755"></a>some text</p>
+<p>some text</p>
+<p>some text</p>
+</dd>
+</dl></div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/article3.html b/tests/docbook/result/html/article3.html
new file mode 100644
index 00000000..92e3960c
--- /dev/null
+++ b/tests/docbook/result/html/article3.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Article Test Document Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="id2677390" class="article">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2677390"></a>Article Test Document Title</h1></div>
+<hr>
+</div>
+<p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</p>
+<div class="section">
+<a name="id2665285"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2665285"></a>
+<fake>First level section</fake>
+</h2></div></div>
+<div class="section">
+<a name="id2702574"></a>
+<div class="titlepage"><div><h3 class="title">
+<a name="id2702574"></a>
+<fake>Second level section</fake>
+</h3></div></div>
+<div class="section">
+<a name="id2702583"></a>
+<div class="titlepage"><div><h4 class="title">
+<a name="id2702583"></a>
+<fake>Third level section</fake>
+</h4></div></div>
+<div class="section">
+<a name="id2702671"></a>
+<div class="titlepage"><div><h5 class="title">
+<a name="id2702671"></a>
+<fake>Fourth level section</fake>
+</h5></div></div>
+<div class="section">
+<a name="id2702679"></a>
+<div class="titlepage"><div><h6 class="title">
+<a name="id2702679"></a>
+<fake>Fifth level section (SI)</fake>
+</h6></div></div>
+<p>This is just a test.</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="section">
+<a name="id2702702"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2702702"></a>
+<fake>Another Section</fake>
+</h2></div></div>
+<div class="simplesect">
+<a name="id2690842"></a>
+<div class="titlepage"><div><h3 class="title">
+<a name="id2690842"></a>
+<fake>SimpleSect @ level 2</fake>
+</h3></div></div>
+<p>This is just a test.</p>
+</div>
+</div>
+<div class="section">
+<a name="id2690859"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2690859"></a>
+<fake>Another Section</fake>
+</h2></div></div>
+<div class="section">
+<a name="id2690866"></a>
+<div class="titlepage"><div><h3 class="title">
+<a name="id2690866"></a>
+<fake>Another Section</fake>
+</h3></div></div>
+<div class="simplesect">
+<a name="id2690875"></a>
+<div class="titlepage"><div><h4 class="title">
+<a name="id2690875"></a>
+<fake>SimpleSect @ level 3</fake>
+</h4></div></div>
+<p>This is just a test.</p>
+</div>
+</div>
+</div>
+<div class="section">
+<a name="id2690894"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2690894"></a>
+<fake>Another Section</fake>
+</h2></div></div>
+<div class="section">
+<a name="id2690901"></a>
+<div class="titlepage"><div><h3 class="title">
+<a name="id2690901"></a>
+<fake>Another Section</fake>
+</h3></div></div>
+<div class="section">
+<a name="id2690910"></a>
+<div class="titlepage"><div><h4 class="title">
+<a name="id2690910"></a>
+<fake>Another Section</fake>
+</h4></div></div>
+<div class="simplesect">
+<a name="id2690918"></a>
+<div class="titlepage"><div><h5 class="title">
+<a name="id2690918"></a>
+<fake>SimpleSect @ level 4</fake>
+</h5></div></div>
+<p>This is just a test.</p>
+</div>
+</div>
+</div>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/bib.html b/tests/docbook/result/html/bib.html
new file mode 100644
index 00000000..04601238
--- /dev/null
+++ b/tests/docbook/result/html/bib.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Test Book</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="book"></a>Test Book</h1></div>
+<hr>
+</div>
+<div class="bibliography">
+<h2 class="title"><a name="bib1">A Test Bibliography</a></h2>
+<p>The stock stylesheet attempts to do a Bibliography. It probably needs
+a lot of tweaking. It probably doesn't conform to any specific style.</p>
+<div class="bibliodiv">
+<h3 class="title"><a name="id2687417">Books</a></h3>
+<div id="id2774596" class="biblioentry">
+<a name="id2774596"></a>
+<p>
+<span class="abbrev">[AhoSethiUllman96] </span>
+<span class="authorgroup">Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. </span>
+<span class="title">
+<I>Compilers, Principles, Techniques, and Tools</I>. </span>
+<span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span>
+<span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span>
+<span class="isbn">0-201-10088-6. </span>
+<span class="editor">James T. DeWolf. </span>
+<span class="seriesinfo">
+<span class="title">
+<I>Computer Science</I>. </span>
+<span class="editor">Michael A. Harrison. </span>
+<span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span>
+</span>
+</p>
+</div>
+</div>
+<div class="bibliodiv">
+<h3 class="title"><a name="id2691024">Periodicals</a></h3>
+<div id="walsh97" class="biblioentry">
+<a name="walsh97"></a>
+<p>
+<span class="abbrev">[Walsh97] </span>
+<span class="biblioset">&#x201C;A Guide to XML&#x201D;. <span class="author">Norman Walsh. </span>
+<span class="pubdate">1997. </span>
+<span class="copyright">Copyright © 1997 ArborText, Inc.. </span>
+<span class="pagenums">97-108. </span>
+</span>
+<span class="biblioset">
+<I>XML: Principles, Tools, and Techniques</I>. <span class="publisher"><span class="publishername">O'Reilly &amp; Associates, Inc.. </span></span>
+<span class="issn">1085-2301. </span>
+<span class="editor">Dan Connolly. </span>
+</span>
+</p>
+</div>
+<div id="walsh96" class="bibliomixed">
+<a name="walsh96"></a>
+<p> <span class="bibliomset"> <span class="surname">Walsh</span>, <span class="firstname">Norman</span>.
+ &#x201C;Introduction to Cascading Style Sheets&#x201D;.
+ </span>
+ <span class="bibliomset"> <I>The World Wide Web Journal</I>.
+ <span class="volumenum">2</span>(<span class="issuenum">1</span>).
+ <span class="publishername">O'Reilly &amp; Associates, Inc.</span> and
+ <span class="corpname">The World Wide Web Consortium</span>.
+ <span class="pubdate">Winter, 1996</span>
+</span>.</p>
+</div>
+<div id="id2691250" class="biblioentry">
+<a name="id2691250"></a>
+<p>
+<span class="abbrev">[Abbrev] </span>
+<span class="title">
+<I>A Really Full BiblioEntry</I>. </span>
+<span class="subtitle">Subtitle. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>
+<span class="affiliation">
+<span class="shortaffil">shortaffil. </span>
+<span class="jobtitle">jobtitle. </span>
+<span class="orgname">orgname. </span>
+<span class="orgdiv">orgdiv. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>
+<span class="artpagenums">ArtPageNums. </span>
+<span class="author">AuthorFirstname AuthorSurname. </span>
+<span class="authorinitials">AuthorInitials. </span>
+<span class="collab">
+<span class="collabname">The names of some collaborators. </span>
+<span class="affiliation">
+<span class="shortaffil">shortaffil. </span>
+<span class="jobtitle">jobtitle. </span>
+<span class="orgname">orgname. </span>
+<span class="orgdiv">orgdiv. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>. </span>
+<span class="confgroup">
+<span class="confdates">confdates. </span>
+<span class="conftitle">conftitle. </span>
+<span class="confnum">confnum. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>
+<span class="confsponsor">confsponsor. </span>. </span>
+<span class="contractnum">ContractNum. </span>
+<span class="contractsponsor">ContractSponsor. </span>
+<span class="contrib">Contrib. </span>
+<span class="copyright">Copyright © 1998 Copyright holder. </span>
+<span class="corpname">CorpName. </span>
+<span class="date">Date. </span>
+<span class="edition">Edition. </span>
+<span class="editor">EditorFirstName EditorSurname. </span>
+<span class="firstname">FirstName. </span>
+<span class="honorific">Honorific. </span>
+<span class="isbn">ISBN. </span>
+<span class="issn">ISSN. </span>
+<span class="invpartnumber">InvPartNumber. </span>
+<span class="issuenum">IssueNum. </span>
+<span class="lineage">Lineage. </span>
+<span class="orgname">OrgName. </span>
+<span class="othercredit">
+<span class="firstname">OCFirstName. </span>
+<span class="surname">OCSurname. </span>. </span>
+<span class="othername">OtherName. </span>
+<span class="pagenums">PageNums. </span>
+<span class="productname">ProductName. </span>
+<span class="productnumber">ProductNumber. </span>
+<span class="pubdate">PubDate. </span>
+<span class="publisher">
+<span class="publishername">PubPublisherName. </span>
+<span class="address">
+<fake>Any Street</fake>
+<fake>Anywhere</fake>, <fake>XX</fake> <fake>99999</fake>
+<fake>USA</fake>. </span>
+</span>
+<span class="publishername">PublisherName. </span>
+<span class="pubsnumber">PubsNumber. </span>
+<span class="releaseinfo">ReleaseInfo. </span>
+<span class="revhistory">
+<tr>
+<td align="left">Revision 1.0</td>
+<td align="left">20 Nov 1998</td>
+<td align="left">ndw</td>
+</tr>
+<tr><td align="left" colspan="3">Some remark about the revision</td></tr>
+<tr>
+<td align="left">Revision 0.9</td>
+<td align="left">19 Nov 1998</td>
+<td align="left">ndw</td>
+</tr>
+<tr><td align="left" colspan="3">Some remark about the revision</td></tr>
+<tr>
+<td align="left">Revision 0.4</td>
+<td align="left">18 Nov 1998</td>
+<td align="left">ndw</td>
+</tr>
+<tr><td align="left" colspan="3">Some remark about the revision</td></tr>. </span>
+<span class="seriesinfo">
+<span class="title">
+<I>SeriesInfo Title</I>. </span>
+<span class="editor">SeriesInfo Editor Firstname SeriesInfo Editor Surname. </span>
+</span>
+<span class="seriesvolnums">SeriesVolNums. </span>
+<span class="surname">Surname. </span>
+<span class="titleabbrev">TitleAbbrev. </span>
+<span class="volumenum">VolumeNum. </span>
+</p>
+</div>
+</div>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/book.html b/tests/docbook/result/html/book.html
new file mode 100644
index 00000000..4eaf61fa
--- /dev/null
+++ b/tests/docbook/result/html/book.html
@@ -0,0 +1,415 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Bookinfo Test Document Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2671677">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2671677"></a>Bookinfo Test Document Title</h1></div>
+<div><h2 class="subtitle">Book Subtitle</h2></div>
+<div>
+<h3 class="author">Norman Walsh</h3>
+<h3 class="author">John Doe</h3>
+</div>
+<div><span class="releaseinfo">Some releaseinfo<br>
+</span></div>
+<div><p class="copyright">Copyright © 2000 by Norman Walsh</p></div>
+<div><div class="legalnotice"><p>Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+</p></div></div>
+<div><p class="pubdate">16 December 2000</p></div>
+<div><div class="abstract">
+<p>
+<a name="id2774690"></a>
+<b><fake>Abstract</fake></b>
+</p>
+<p>Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+</p>
+<p>Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+</p>
+</div></div>
+<hr>
+</div>
+<div id="id2774730" class="dedication">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2774730"></a>First Dedication</h2></div></div>
+<p>Just a test. &#x201C;What about&#x2014;this?&#x201D;</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</p>
+</div>
+<div id="id2691016" class="dedication">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2691016"></a>Dedication</h2></div></div>
+<p>Just a test dedication.</p>
+</div>
+<div id="id2691023" class="preface">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2691023"></a>Foreword</h2></div></div>
+<p>This is a test paragraph.</p>
+</div>
+<div id="id2691043" class="preface">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2691043"></a>Preface</h2></div></div>
+<p>This is a test preface.</p>
+</div>
+<div class="part" id="id2691050">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2691050"></a>Part One Title</h1></div>
+<div><div class="legalnotice"><p>Foo! A legal notice in a part!</p></div></div>
+</div>
+<div class="partintro">
+<div><div><h1 class="title">
+<a name="id2686614"></a>PartIntro Title</h1></div></div>
+<p>Partintro content<sup>[<a name="id2686629" href="#ftn.id2686629">1</a>]</sup>.</p>
+<div class="sect1">
+<a name="id2795355"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2795355"></a>
+<fake>PartIntro Section</fake>
+</h2></div></div>
+<p>PartIntros can actually have section content as well.</p>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt>1. <a href="#chapter">Section Tests</a>
+</dt>
+<fake><dd><fake><dl>
+<dt> <a>First Sect1</a>
+</dt>
+<dt> <a>Second Sect1</a>
+</dt>
+<dt> <a>Third Sect1</a>
+</dt>
+</dl></fake></dd></fake>
+</dl>
+</div>
+<div class="footnotes">
+<br>
+<hr width="100" align="left">
+<div class="footnote"><p>
+<sup>[<a name="ftn.id2686629" href="#id2686629">1</a>] </sup>This is a footnote in a partintro.</p></div>
+</div>
+</div>
+<div id="chapter" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="chapter"></a>
+<fake>Chapter 1.</fake> Section Tests</h2></div></div>
+<div class="sect1">
+<a name="id2692310"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2692310"></a>
+<fake>First Sect1</fake>
+</h2></div></div>
+<p>Paragraph.</p>
+<div class="figure">
+<p>
+<a name="testfig1"></a>
+<b><fake>
+<fake>Figure 1.1.</fake> Test Figure</fake></b>
+</p>
+<pre class="programlisting">This is a
+ ProgramListing
+</pre>
+</div>
+</div>
+<div class="sect1">
+<a name="id2692354"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2692354"></a>
+<fake>Second Sect1</fake>
+</h2></div></div>
+<p>Paragraph.</p>
+</div>
+<div class="sect1">
+<a name="id2692366"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2692366"></a>
+<fake>Third Sect1</fake>
+</h2></div></div>
+<p>Paragraph.</p>
+<div class="figure">
+<p>
+<a name="testfig2"></a>
+<b><fake>
+<fake>Figure 1.2.</fake> Test Figure</fake></b>
+</p>
+<pre class="programlisting">This is a
+ ProgramListing
+</pre>
+</div>
+</div>
+</div>
+</div>
+<div id="id2692410" class="chapter">
+<div class="titlepage">
+<div><h2 class="title">
+<a name="id2692410"></a>
+<fake>Chapter 2.</fake> First Chapter</h2></div>
+<div><h2 class="subtitle">Chapter Subtitle</h2></div>
+</div>
+<p>This is a test paragraph.</p>
+<div class="figure">
+<p>
+<a name="testfig3"></a>
+<b><fake>
+<fake>Figure 2.2.</fake> Test Figure</fake></b>
+</p>
+<pre class="programlisting">This is a
+ ProgramListing
+</pre>
+</div>
+</div>
+<div id="id2692464" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2692464"></a>
+<fake>Chapter 3.</fake> Second Chapter</h2></div></div>
+<p>This is a test paragraph.
+<a class="indexterm" name="id2692478"></a>
+<a class="indexterm" name="id2692488"></a>
+
+<a class="indexterm" name="id2692498"></a>
+<a class="indexterm" name="id2692514"></a>
+
+<a class="indexterm" name="id2692524"></a>
+
+<a class="indexterm" name="id2692545"></a>
+<a class="indexterm" name="id2692556"></a>
+
+<a class="indexterm" name="id2692571"></a>
+<a class="indexterm" name="id2692587"></a>
+<a class="indexterm" name="id2692602"></a>
+</p>
+</div>
+<div id="id2692610" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2692610"></a>
+<fake>Chapter 4.</fake> Third Chapter</h2></div></div>
+<p>This is a test paragraph.</p>
+</div>
+<div id="id2692623" class="appendix">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2692623"></a>
+<fake>Appendix A.</fake> First Appendix</h2></div></div>
+<p>This is just a test.</p>
+<div class="figure">
+<p>
+<a name="testfig4"></a>
+<b><fake>
+<fake>Figure A.0.</fake> Test Figure</fake></b>
+</p>
+<pre class="programlisting">This is a
+ ProgramListing
+</pre>
+</div>
+</div>
+<div id="id2692666" class="appendix">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2692666"></a>
+<fake>Appendix B.</fake> Second Appendix</h2></div></div>
+<p>This is just a test.
+<a class="indexterm" name="id2692680"></a>
+<a class="indexterm" name="id2692691"></a>
+
+<a class="indexterm" name="id2692701"></a>
+<a class="indexterm" name="id2692717"></a>
+
+<a class="indexterm" name="id2692727"></a>
+<a class="indexterm" name="id2692748"></a>
+
+<a class="indexterm" name="id2692759"></a>
+<a class="indexterm" name="id2692774"></a>
+<a class="indexterm" name="id2692790"></a>
+</p>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/book2.html b/tests/docbook/result/html/book2.html
new file mode 100644
index 00000000..a4890179
--- /dev/null
+++ b/tests/docbook/result/html/book2.html
@@ -0,0 +1,3245 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Book Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="book"></a>Book Title</h1></div>
+<div><h3 class="corpauthor">Some Corporation</h3></div>
+<div><h3 class="author">Norman Walsh</h3></div>
+<div><p class="copyright">Copyright © 1998 by Norman Walsh</p></div>
+<div><div class="legalnotice">
+<p class="legalnotice-title"><b>Legal Notice</b></p>
+<p>This is a test document. You can do what you will with it.</p>
+</div></div>
+<div><div class="legalnotice"><p>This is a second legal notice. But it's not noteworthy.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ </p></div></div>
+<hr>
+</div>
+<div id="id2795377" class="dedication">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2795377"></a>Dedication</h2></div></div>
+<p>This test book is dedicated to all the testers. This is the first para
+of the dedication.</p>
+<p>This is the second para of the dedication.</p>
+<p>This is the third para of the dedication.</p>
+</div>
+<div id="id2686567" class="preface">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2686567"></a>Preface Title</h2></div></div>
+<p>Preface content.</p>
+<p>This is the second para of the preface.</p>
+<p>This is the third para of the preface.</p>
+</div>
+<div class="part" id="id2686592">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2686592"></a>Part One Title</h1></div>
+<div><div class="legalnotice"><p>Foo! A legal notice in a part!</p></div></div>
+</div>
+<div class="partintro">
+<div><div><h1 class="title">
+<a name="id2686618"></a>PartIntro Title</h1></div></div>
+<p>Partintro content<sup>[<a name="id2686632" href="#ftn.id2686632">1</a>]</sup>.</p>
+<div class="sect1">
+<a name="id2691023"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2691023"></a>
+<fake>PartIntro Section</fake>
+</h2></div></div>
+<p>PartIntros can actually have section content as well.</p>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt>1. <a href="#chapter">XRef Tests</a>
+</dt>
+<dt>2. <a href="#stchap">Section Tests</a>
+</dt>
+<fake><dd><fake><dl>
+<dt> <a>a sect1 title</a>
+</dt>
+<fake><dd><fake><dl><dt> <a>a sect2 title</a>
+</dt></dl></fake></dd></fake>
+<dt> <a>another sect1 title</a>
+</dt>
+<fake><dd><fake><dl><dt> <a>another sect2 title</a>
+</dt></dl></fake></dd></fake>
+<dt> <a>another sect1 title</a>
+</dt>
+<dt> <a>another sect1 title</a>
+</dt>
+</dl></fake></dd></fake>
+<dt>3. <a href="#id2690267">Inline Tests</a>
+</dt>
+<dt>4. <a href="#id2795792">Block Tests</a>
+</dt>
+<dt>5. <a href="#id2796811">List Tests</a>
+</dt>
+<dt>6. <a href="#id2798844">Table Tests</a>
+</dt>
+<dt>7. <a href="#id2802588">Index Term Tests</a>
+</dt>
+<fake><dd><fake><dl>
+<dt> <a>Index Term Sect 1</a>
+</dt>
+<fake><dd><fake><dl>
+<dt> <a>Index Term Sect 2</a>
+</dt>
+<dt> <a>Index Term Sect 3</a>
+</dt>
+</dl></fake></dd></fake>
+</dl></fake></dd></fake>
+</dl>
+</div>
+<div class="footnotes">
+<br>
+<hr width="100" align="left">
+<div class="footnote"><p>
+<sup>[<a name="ftn.id2686632" href="#id2686632">1</a>] </sup>This is a footnote in a partintro.</p></div>
+<div class="footnote"><p>
+<sup>[<a name="ftn.fn1" href="#fn1">2</a>] </sup>Like this!</p></div>
+<div class="footnote"><p>
+<sup>[<a name="ftn.id2690317" href="#id2690317">3</a>] </sup>Well, the marks are, anyway!</p></div>
+</div>
+</div>
+<div id="chapter" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="chapter"></a>
+<fake>Chapter 1.</fake> XRef Tests</h2></div></div>
+<h3>Xrefs</h3>
+<table class="simplelist" border="0" summary="Simple list">
+<tr><td><a href="#book"><i><fake>Book Title</fake></i></a></td></tr>
+<tr><td><a href="#part">Part II.</a></td></tr>
+<tr><td><a href="#chapter">Chapter 1., <i>XRef Tests</i></a></td></tr>
+<tr><td><a href="#appendix">Appendix A.</a></td></tr>
+<tr><td><a href="#table">Table 4.0.</a></td></tr>
+<tr><td><a href="#figure">Figure 4.0.</a></td></tr>
+<tr><td><a href="#example">Example 4.0.</a></td></tr>
+<tr><td><a href="#equation">Equation 4.0.</a></td></tr>
+<tr><td><a href="#reference">Reference I.</a></td></tr>
+<tr><td><a href="#bib1">&#x201C;A Test Bibliography&#x201D;</a></td></tr>
+<tr><td><a href="#gloss">&#x201C;Example Glossary&#x201D;</a></td></tr>
+<tr><td><a href="#index">&#x201C;Index&#x201D;</a></td></tr>
+</table>
+<p>This is the first reference to <i><fake>XML</fake></i>.
+This is the second reference to <fake>XML</fake>.
+These are references without <fake>linkend</fake>
+attributes: <i><fake>XML</fake></i>, <fake>XML</fake>.</p>
+<h3>Links</h3>
+<p>More <a href="http://www.jclark.com/dsssl/" target="_top">DSSSL information</a>
+is available.</p>
+<p>There is <a href="#part">a second part</a> in this book.</p>
+<p>This is the <a href="#chapter"></a>
+chapter.</p>
+</div>
+<div id="stchap" class="chapter">
+<div class="titlepage">
+<div><h2 class="title">
+<a name="stchap"></a>
+<fake>Chapter 2.</fake> Section Tests</h2></div>
+<div><h2 class="subtitle">Section Tests Subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<a class="indexterm" name="id2692312"></a>
+<a class="indexterm" name="id2692322"></a>
+
+<a class="indexterm" name="id2692330"></a>
+<a class="indexterm" name="id2692345"></a>
+
+<a class="indexterm" name="id2692356"></a>
+<a class="indexterm" name="id2692376"></a>
+
+<a class="indexterm" name="id2692387"></a>
+<a class="indexterm" name="id2692403"></a>
+<a class="indexterm" name="id2692418"></a>
+</p>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect1">
+<a name="secttest1"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="secttest1"></a>
+<fake>a sect1 title</fake>
+</h2></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<a class="indexterm" name="id2692503"></a>
+<a class="indexterm" name="id2692524"></a>
+<a class="indexterm" name="id2692539"></a>
+
+<a class="indexterm" name="id2692550"></a>
+<a class="indexterm" name="id2692566"></a>
+<a class="indexterm" name="id2692586"></a>
+
+<a class="indexterm" name="id2692597"></a>
+<a class="indexterm" name="id2692613"></a>
+<a class="indexterm" name="id2692628"></a>
+<a class="indexterm" name="id2692649"></a>
+<a class="indexterm" name="id2692670"></a>
+<a class="indexterm" name="id2692686"></a>
+</p>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect2">
+<a name="id2692734"></a>
+<div class="titlepage"><div><h3 class="title">
+<a name="id2692734"></a>
+<fake>a sect2 title</fake>
+</h3></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect3">
+<a name="id2692757"></a>
+<div class="titlepage"><div><h4 class="title">
+<a name="id2692757"></a>
+<fake>a sect3 title</fake>
+</h4></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<a class="indexterm" name="id2692781"></a>
+<a class="indexterm" name="id2692802"></a>
+<a class="indexterm" name="id2692823"></a>
+
+<a class="indexterm" name="id2692833"></a>
+<a class="indexterm" name="id2692844"></a>
+<a class="indexterm" name="id2692859"></a>
+<a class="indexterm" name="id2692880"></a>
+<a class="indexterm" name="id2692901"></a>
+<a class="indexterm" name="id2689908"></a>
+</p>
+<div class="sect4">
+<a name="id2689916"></a>
+<div class="titlepage"><div><h5 class="title">
+<a name="id2689916"></a>
+<fake>a sect4 title</fake>
+</h5></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect5">
+<a name="id2689938"></a>
+<div class="titlepage"><div><h6 class="title">
+<a name="id2689938"></a>
+<fake>a sect5 title</fake>
+</h6></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<a name="secttest2"></a>
+<div class="titlepage">
+<div><h2 class="title" style="clear: all">
+<a name="secttest2"></a>
+<fake>another sect1 title</fake>
+</h2></div>
+<div><h2 class="subtitle">a sect1 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<a class="indexterm" name="id2690004"></a>
+<a class="indexterm" name="id2690015"></a>
+<a class="indexterm" name="id2690036"></a>
+<a class="indexterm" name="id2690057"></a>
+</p>
+<div class="sect2">
+<a name="id2690065"></a>
+<div class="titlepage">
+<div><h3 class="title">
+<a name="id2690065"></a>
+<fake>another sect2 title</fake>
+</h3></div>
+<div><h2 class="subtitle">a sect2 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect3">
+<a name="id2690100"></a>
+<div class="titlepage">
+<div><h4 class="title">
+<a name="id2690100"></a>
+<fake>another sect3 title</fake>
+</h4></div>
+<div><h2 class="subtitle">a sect3 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect4">
+<a name="id2690136"></a>
+<div class="titlepage">
+<div><h5 class="title">
+<a name="id2690136"></a>
+<fake>another sect4 title</fake>
+</h5></div>
+<div><h2 class="subtitle">a sect4 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect5">
+<a name="id2690172"></a>
+<div class="titlepage">
+<div><h6 class="title">
+<a name="id2690172"></a>
+<fake>another sect5 title</fake>
+</h6></div>
+<div><h2 class="subtitle">a sect5 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<a name="secttest3"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="secttest3"></a>
+<fake>another sect1 title</fake>
+</h2></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+<div class="sect1">
+<a name="secttest4"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="secttest4"></a>
+<fake>another sect1 title</fake>
+</h2></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+</div>
+<div id="id2690267" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2690267"></a>
+<fake>Chapter 3.</fake> Inline Tests</h2></div></div>
+<div class="simplesect">
+<a name="id2690274"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2690274"></a>
+<fake>Testing &#x201C;<fake>Quotes</fake>&#x201D; in a title</fake>
+</h2></div></div>
+<p>Footnotes<sup>[<a name="fn1" href="#ftn.fn1">2</a>]</sup> are inlines.
+Sort of<sup>[<a name="id2690317" href="#ftn.id2690317">3</a>]</sup>.
+Another footnote<sup>[<a href="#ftn.fn1">2</a>]</sup>.</p>
+<table class="simplelist" border="0" summary="Simple list">
+<tr>
+<td><fake>Abbrev</fake></td>
+<td><fake>GUIIcon</fake></td>
+<td>
+<fake>SGMLTag</fake> (Attribute)</td>
+</tr>
+<tr>
+<td><fake>Acronym</fake></td>
+<td><fake>GUILabel</fake></td>
+<td>
+<tt><fake>SGMLTag</fake></tt> (AttValue)</td>
+</tr>
+<tr>
+<td><fake>Action</fake></td>
+<td><fake>GUIMenu</fake></td>
+<td>
+<tt><fake>SGMLTag</fake></tt> (Element)</td>
+</tr>
+<tr>
+<td><fake>Application</fake></td>
+<td><fake>GUISubMenu</fake></td>
+<td>
+<tt><fake>&lt;/SGMLTag&gt;</fake></tt> (EndTag)</td>
+</tr>
+<tr>
+<td>[<fake>Citation</fake>]</td>
+<td><fake>Hardware</fake></td>
+<td>
+<tt><fake>&amp;SGMLTag;</fake></tt> (GenEntity)</td>
+</tr>
+<tr>
+<td><fake>
+<fake>CiteRefEntry RefEntryTitle</fake>(n)</fake></td>
+<td><p><img src="emc2.gif"></p></td>
+<td>
+<tt><fake>&amp;#SGMLTag;</fake></tt> (NumCharRef)</td>
+</tr>
+<tr>
+<td><i><fake>Citetitle</fake></i></td>
+<td><fake>Interface</fake></td>
+<td>
+<tt><fake>%SGMLTag;</fake></tt> (ParamEntity)</td>
+</tr>
+<tr>
+<td><tt><fake>ClassName</fake></tt></td>
+<td><fake>InterfaceDefinition</fake></td>
+<td>
+<tt><fake>&lt;?SGMLTag&gt;</fake></tt> (PI)</td>
+</tr>
+<tr>
+<td><b><fake>Command</fake></b></td>
+<td><b><fake>KeyCap</fake></b></td>
+<td>
+<tt><fake>&lt;!--SGMLTag--&gt;</fake></tt> (SGMLComment)</td>
+</tr>
+<tr>
+<td>
+<i><fake>Comment</fake></i> (Comment)</td>
+<td><fake>KeyCode</fake></td>
+<td>
+<tt><fake>&lt;SGMLTag&gt;</fake></tt> (StartTag)</td>
+</tr>
+<tr>
+<td><tt><fake>ComputerOutput</fake></tt></td>
+<td>Key-Combo</td>
+<td><tt><fake>SGMLTag</fake></tt></td>
+</tr>
+<tr>
+<td><fake>Database</fake></td>
+<td><fake>KeySym</fake></td>
+<td><i><tt><fake>StructField</fake></tt></i></td>
+</tr>
+<tr>
+<td><fake>ErrorName</fake></td>
+<td><tt><fake>Literal</fake></tt></td>
+<td><fake>StructName</fake></td>
+</tr>
+<tr>
+<td><fake>ErrorType</fake></td>
+<td><fake>Markup</fake></td>
+<td><sub><fake>Subscript</fake></sub></td>
+</tr>
+<tr>
+<td><tt><fake>&lt;<a>Email</a>&gt;</fake></tt></td>
+<td><i><fake>MediaLabel</fake></i></td>
+<td><sup><fake>Superscript</fake></sup></td>
+</tr>
+<tr>
+<td><i><fake>Emphasis</fake></i></td>
+<td><fake>MouseButton</fake></td>
+<td><fake>Symbol</fake></td>
+</tr>
+<tr>
+<td><tt><fake>EnVar</fake></tt></td>
+<td><tt><fake>Option</fake></tt></td>
+<td><tt><fake>SystemItem</fake></tt></td>
+</tr>
+<tr>
+<td><fake>ErrorCode</fake></td>
+<td>[<fake>Optional</fake>]</td>
+<td><fake>Token</fake></td>
+</tr>
+<tr>
+<td><tt><fake>Filename</fake></tt></td>
+<td><i><tt><fake>Parameter</fake></tt></i></td>
+<td><fake>Trademark</fake></td>
+</tr>
+<tr>
+<td><i><fake>Firstterm</fake></i></td>
+<td><fake>Phrase</fake></td>
+<td><fake>Type</fake></td>
+</tr>
+<tr>
+<td><i><fake>ForeignPhrase</fake></i></td>
+<td><tt><fake>Prompt</fake></tt></td>
+<td><b><tt><fake>UserInput</fake></tt></b></td>
+</tr>
+<tr>
+<td><tt><fake>Function</fake></tt></td>
+<td><fake>Property</fake></td>
+<td><i><fake>WordAsWord</fake></i></td>
+</tr>
+<tr>
+<td><fake>GUIMenuItem</fake></td>
+<td>&#x201C;<fake>Quote</fake>&#x201D;</td>
+<td><fake>ProductName</fake></td>
+</tr>
+<tr>
+<td><fake>GUIButton</fake></td>
+<td><i><tt><fake>Replaceable</fake></tt></i></td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td><fake>GUI<fake>B</fake>utton (with Accel)</fake></td>
+<td><fake>ReturnValue</fake></td>
+<td>&nbsp;</td>
+</tr>
+</table>
+<p>And here are a couple of index terms, as another test (of
+index terms, not inlines).
+<a class="indexterm" name="id2795765"></a>
+<a class="indexterm" name="id2795779"></a>
+</p>
+</div>
+</div>
+<div id="id2795792" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2795792"></a>
+<fake>Chapter 4.</fake> Block Tests</h2></div></div>
+<div class="simplesect">
+<a name="id2795798"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2795798"></a>
+<fake>Formal Objects</fake>
+</h2></div></div>
+<h3>Example</h3>
+<div class="example">
+<p>
+<a name="example"></a>
+<b><fake>
+<fake>Example 4.0.</fake> An Example</fake></b>
+</p>
+<p>This is an example of a trivial example.</p>
+</div>
+<h3>Figure</h3>
+<div class="figure">
+<p>
+<a name="figure"></a>
+<b><fake>
+<fake>Figure 4.0.</fake> A Figure</fake></b>
+</p>
+<pre class="screen">This is an example of a trivial figure.</pre>
+</div>
+<h3>Equation</h3>
+<div class="equation">
+<p>
+<a name="equation"></a>
+<b><fake>
+<fake>Equation 4.0.</fake> An Equation</fake></b>
+</p>
+<p><img src="emc2.gif"></p>
+</div>
+<h3>Table</h3>
+<div class="table">
+<p>
+<a name="table"></a>
+<b><fake>
+<fake>Table 4.0.</fake> A Table</fake></b>
+</p>
+<table summary="A Table" border="1">
+<fake><colgroup><col></colgroup></fake>
+<tbody>
+<tr>
+<td>1</td>
+<td>1</td>
+</tr>
+<tr>
+<td>2</td>
+<td>4</td>
+</tr>
+<tr>
+<td>3</td>
+<td>9</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="simplesect">
+<a name="id2796008"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2796008"></a>
+<fake>Informal Objects</fake>
+</h2></div></div>
+<h3>InformalExample</h3>
+<div class="informalexample" id="iexample">
+<p>
+<a name="iexample"></a>
+<p>This is an example of a trivial, informal example.</p>
+<p>
+</div>
+<h3>InformalEquation</h3>
+<div class="informalequation" id="iequation">
+<p>
+<a name="iequation"></a>
+<p><img src="emc2.gif"></p>
+<p>
+</div>
+<h3>InformalTable</h3>
+<div class="informaltable" id="itable">
+<p>
+<a name="itable"></a>
+<table border="1">
+<fake><colgroup><col></colgroup></fake>
+<tbody>
+<tr>
+<td>1</td>
+<td>1</td>
+</tr>
+<tr>
+<td>2</td>
+<td>8</td>
+</tr>
+<tr>
+<td>3</td>
+<td>27</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+</div>
+<div class="simplesect">
+<a name="id2796151"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2796151"></a>
+<fake>Admonitions</fake>
+</h2></div></div>
+<h3>Note</h3>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2796157">Note</a></h3>
+<p>Consider yourself noted.</p>
+<p>Second para.</p>
+</div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2796182">Note</a></h3>
+<p>Consider yourself noted, simply.</p>
+</div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2796190">NoteTitle</a></h3>
+<p>Consider yourself noted.</p>
+<p>Second para, with a title.</p>
+</div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2796209">Att</a></h3>
+<p>Consider yourself noted, simply.</p>
+<p>With a title</p>
+</div>
+<h3>Important</h3>
+<div class="important" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2796228">Important</a></h3>
+<p>Consider yourself important.</p>
+</div>
+<h3>Tip</h3>
+<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2796247">Tip</a></h3>
+<p>Consider yourself tipped.</p>
+</div>
+<h3>Warning</h3>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2796266">Warning</a></h3>
+<p>Consider yourself warned.</p>
+</div>
+<h3>Caution</h3>
+<div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2796285">Caution</a></h3>
+<p>Consider yourself cautioned.</p>
+</div>
+<h3>SimPara in Caution</h3>
+<div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2796304">Simple Caution</a></h3>
+<p>A simpler caution.</p>
+</div>
+</div>
+<div class="simplesect">
+<a name="id2796328"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2796328"></a>
+<fake>Other Objects</fake>
+</h2></div></div>
+<h3>Screen</h3>
+<pre class="screen">This
+ is <fake>With a line-annotation</fake>
+ a
+ screen
+ This
+ is <fake>With a line-annotation</fake>
+ a
+screen
+This
+ is <fake>With a line-annotation</fake>
+ a
+ screen</pre>
+<h3>ProgramListing</h3>
+<pre class="programlisting">This
+ is
+ a
+programlisting</pre>
+<h3>Address</h3>
+<div class="address">Norman Walsh<br>
+ArborText, Inc.<br>
+<fake>1000 Victors Way</fake>
+<br>
+<fake>Ann Arbor</fake>, <fake>MI</fake> <fake>48108</fake>
+<br>
+<fake>US</fake>
+<br>
+<br>
+Voice: <fake>313.997.0200</fake>
+<br>
+Fax: <fake>313.997.0201</fake>
+<br>
+<br>
+Email: <tt><fake>&lt;<a>nwalsh@arbortext.com</a>&gt;</fake></tt>
+<br>
+WWW: <fake>http://www.arbortext.com/</fake>
+</div>
+<h3>BlockQuote</h3>
+<blockquote class="blockquote"><p>The universe that we observe has precisely the properties we should
+expect if there is, at bottom, no design, no purpose, no evil and
+no good, nothing but pitiless indifference.&#x2014;Richard Dawkins</p></blockquote>
+<h3>Procedure</h3>
+<div class="procedure"><ol>
+<li><p>This is the first step</p></li>
+<li>
+<p>This is the second step</p>
+<ol>
+<li><p>This is the first substep</p></li>
+<li><p>This is the second substep</p></li>
+</ol>
+</li>
+<li><p>This is the third step</p></li>
+</ol></div>
+<h3>Procedure With Title</h3>
+<div class="procedure">
+<p><b>Same Procedure with a Title</b></p>
+<ol>
+<li><p>This is the first step</p></li>
+<li>
+<p>This is the second step</p>
+<ol>
+<li><p>This is the first substep</p></li>
+<li><p>This is the second substep</p></li>
+</ol>
+</li>
+<li><p>This is the third step</p></li>
+</ol>
+</div>
+<h3>SideBar</h3>
+<div class="sidebar">
+<a name="id2796633"></a>
+<p class="title"><b>What About Bob?</b></p>
+<p>This is a sidebar.</p>
+</div>
+<h3>MsgSet</h3>
+<p>It's not really clear how <tt><fake>MsgSet</fake></tt> should be presented.
+I expect that it's fairly application, if not document, specific.</p>
+<div class="msgentry">
+<a name="id2796685"></a>
+<div class="msg">
+<a name="id2796688"></a>
+<p>Record failed CRC</p>
+<p>Record <i><tt><fake>n</fake></tt></i>
+ in <i><tt><fake>database</fake></tt></i>
+</p>
+<p>File read error on
+ <i><tt><fake>database</fake></tt></i>
+</p>
+<p>Panic! Corrupt record!</p>
+</div>
+<div class="msginfo">
+<a name="id2796757"></a>
+<p>
+<b>Level: </b>severe</p>
+<p>
+<b>Origin: </b>server</p>
+<p>
+<b>Audience: </b>all</p>
+</div>
+<div class="msgexplan">
+<a name="id2796772"></a>
+<p> Indicates that some sort of error occured attempting to load
+ a record from the database. Retry. If failure persists,
+ contact the database administrator.
+ </p>
+</div>
+</div>
+<h3>LiteralLayout</h3>
+<div class="literallayout"><fake>This is a<br>
+literal<br>
+       layout</fake></div>
+<p><div class="literallayout"><fake>This is a<br>
+literal<br>
+       layout<br>
+  in a para</fake></div></p>
+</div>
+</div>
+<div id="id2796811" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2796811"></a>
+<fake>Chapter 5.</fake> List Tests</h2></div></div>
+<div class="simplesect">
+<a name="id2796816"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2796816"></a>
+<fake>OrderedLists</fake>
+</h2></div></div>
+<h3>Default Numeration</h3>
+<div class="orderedlist"><ol type="1">
+<li><p>
+<a name="id2796838"></a>One</p></li>
+<li>
+<a name="id2796845"></a>
+<pre class="programlisting">this one starts with
+a program listing
+what happens?</pre>
+</li>
+<li>
+<a name="id2796855"></a>
+<pre class="synopsis">this one starts with
+a synopsis
+what happens?</pre>
+</li>
+<li>
+<p>
+<a name="id2796864"></a>para first</p>
+<pre class="synopsis">this one has
+a synopsis
+what happens?</pre>
+</li>
+<li>
+<p>
+<a name="id2796878"></a>Three</p>
+<pre class="screen">A
+Screen
+Here</pre>
+</li>
+<li><p>
+<a name="id2796891"></a>Four</p></li>
+</ol></div>
+<h3>Arabic Numeration</h3>
+<div class="orderedlist"><ol type="1">
+<li><p>
+<a name="id2796916"></a>One</p></li>
+<li><p>
+<a name="id2796925"></a>Two</p></li>
+<li><p>
+<a name="id2796933"></a>Three</p></li>
+<li><p>
+<a name="id2796941"></a>Four</p></li>
+</ol></div>
+<h3>Arabic Numeration (Long)</h3>
+<div class="orderedlist"><ol type="1">
+<li><p>
+<a name="id2796967"></a>One</p></li>
+<li><p>
+<a name="id2796976"></a>Two</p></li>
+<li><p>
+<a name="id2796984"></a>Three</p></li>
+<li><p>
+<a name="id2796992"></a>Four</p></li>
+<li><p>
+<a name="id2797000"></a>Five</p></li>
+<li><p>
+<a name="id2797008"></a>Six</p></li>
+<li><p>
+<a name="id2797015"></a>Seven</p></li>
+<li><p>
+<a name="id2797023"></a>Eight</p></li>
+<li><p>
+<a name="id2797031"></a>Nine</p></li>
+<li><p>
+<a name="id2797039"></a>Ten</p></li>
+<li><p>
+<a name="id2797047"></a>Eleven</p></li>
+</ol></div>
+<h3>UpperAlpha Numeration</h3>
+<div class="orderedlist"><ol type="A">
+<li><p>
+<a name="id2797072"></a>One</p></li>
+<li><p>
+<a name="id2797082"></a>Two</p></li>
+<li><p>
+<a name="id2797090"></a>Three</p></li>
+<li><p>
+<a name="id2797098"></a>Four</p></li>
+</ol></div>
+<h3>LowerAlpha Numeration</h3>
+<div class="orderedlist"><ol type="a">
+<li><p>
+<a name="id2797123"></a>One</p></li>
+<li><p>
+<a name="id2797133"></a>Two</p></li>
+<li><p>
+<a name="id2797141"></a>Three</p></li>
+<li><p>
+<a name="id2797149"></a>Four</p></li>
+</ol></div>
+<h3>UpperRoman Numeration</h3>
+<div class="orderedlist"><ol type="I">
+<li><p>
+<a name="id2797174"></a>One</p></li>
+<li><p>
+<a name="id2797184"></a>Two</p></li>
+<li><p>
+<a name="id2797192"></a>Three</p></li>
+<li><p>
+<a name="id2797200"></a>Four</p></li>
+</ol></div>
+<h3>LowerRoman Numeration</h3>
+<div class="orderedlist"><ol type="i">
+<li><p>
+<a name="id2797225"></a>One</p></li>
+<li><p>
+<a name="id2797235"></a>Two</p></li>
+<li><p>
+<a name="id2797243"></a>Three</p></li>
+<li><p>
+<a name="id2797250"></a>Four</p></li>
+</ol></div>
+<h3>Continued</h3>
+<p>First list:
+<div class="orderedlist"><ol type="1">
+<li><p>
+<a name="id2797278"></a>One</p></li>
+<li><p>
+<a name="id2797286"></a>Two</p></li>
+<li><p>
+<a name="id2797294"></a>Three</p></li>
+<li><p>
+<a name="id2797302"></a>Four</p></li>
+</ol></div>
+</p>
+<p>Second list:
+<div class="orderedlist"><ol start="5" type="1">
+<li><p>
+<a name="id2797314"></a>Five</p></li>
+<li><p>
+<a name="id2797331"></a>Six</p></li>
+<li><p>
+<a name="id2797339"></a>Seven</p></li>
+<li><p>
+<a name="id2797346"></a>Eight</p></li>
+<li><p>
+<a name="id2797354"></a>Nine</p></li>
+<li><p>
+<a name="id2797362"></a>Ten</p></li>
+</ol></div>
+</p>
+</div>
+<div class="simplesect">
+<a name="id2797370"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2797370"></a>
+<fake>ItemizedLists</fake>
+</h2></div></div>
+<h3>Default Presentation</h3>
+<div class="itemizedlist"><ul>
+<li><p>
+<a name="id2797392"></a>One</p></li>
+<li>
+<a name="id2797399"></a>
+<pre class="programlisting">One-point-five. This one starts with
+a program listing
+what happens?</pre>
+</li>
+<li><p>
+<a name="id2797401"></a>Two</p></li>
+<li><p>
+<a name="id2797416"></a>Three</p></li>
+<li><p>
+<a name="id2797424"></a>Four</p></li>
+</ul></div>
+<h3>Block Elements in a List</h3>
+<div class="itemizedlist"><ul>
+<li>
+<p>
+<a name="id2797447"></a>One</p>
+<p>Another para.</p>
+</li>
+<li><p>
+<a name="id2797460"></a>Two</p></li>
+<li><p>
+<a name="id2797467"></a>Three</p></li>
+<li><p>
+<a name="id2797475"></a>Four</p></li>
+</ul></div>
+<h3>Alternate Mark and OverRide</h3>
+<div class="itemizedlist"><ul>
+<li><p>
+<a name="id2797496"></a>TeX and LaTeX</p></li>
+<li style="list-style-type: disc"><p>
+<a name="id2797514"></a>Troff</p></li>
+<li><p>
+<a name="id2797523"></a>Lout</p></li>
+<li style="list-style-type: none"><p>
+<a name="id2797536"></a>Test</p></li>
+</ul></div>
+<h3>No mark Presentation</h3>
+<div class="itemizedlist"><ul>
+<li style="list-style-type: none"><p>
+<a name="id2797569"></a>One</p></li>
+<li style="list-style-type: disc"><p>
+<a name="id2797582"></a>Two</p></li>
+<li><p>
+<a name="id2797589"></a>Three</p></li>
+<li><p>
+<a name="id2797596"></a>Four</p></li>
+</ul></div>
+</div>
+<div class="simplesect">
+<a name="id2797604"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2797604"></a>
+<fake>VariableLists</fake>
+</h2></div></div>
+<div class="variablelist"><dl>
+<dt>
+<a name="id2797616"></a>
+<span class="term">Term1</span>
+</dt>
+<dd><p>
+<a name="id2797624"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd>
+<dt>
+<a name="id2797640"></a>
+<span class="term">Term2</span>
+</dt>
+<dd><p>
+<a name="id2797646"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd>
+<dt>
+<a name="id2797660"></a>
+<span class="term">Term3</span>
+</dt>
+<dd>
+<p>
+<a name="id2797668"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<div class="itemizedlist"><ul>
+<li><p>
+<a name="id2797687"></a>One</p></li>
+<li><p>
+<a name="id2797694"></a>Two</p></li>
+<li><p>
+<a name="id2797701"></a>Three</p></li>
+<li><p>
+<a name="id2797709"></a>Four</p></li>
+</ul></div>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+</dd>
+<dt>
+<a name="id2797728"></a>
+<span class="term">Term4</span>
+</dt>
+<dd><p>
+<a name="id2797734"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd>
+</dl></div>
+<div class="variablelist"><dl>
+<dt>
+<a name="id2797751"></a>
+<span class="term">Another List</span>
+</dt>
+<dd><p>
+<a name="id2797759"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd>
+<dt>
+<a name="id2797774"></a>
+<span class="term">ProgramListing</span>
+</dt>
+<dd>
+<pre class="programlisting">A ProgramListing
+Is the First Element
+of this VarListEntry</pre>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+</dd>
+</dl></div>
+</div>
+<div class="simplesect">
+<a name="id2797802"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2797802"></a>
+<fake>SimpleLists</fake>
+</h2></div></div>
+<h3>Inline</h3>
+<p>An inline simple list:
+<span class="simplelist">One, Two, Three, Four, Five, Six, Seven</span>
+</p>
+<h3>Horiz</h3>
+<table class="simplelist" border="0" summary="Simple list">
+<tr>
+<td>One</td>
+<td>Two</td>
+<td>Three</td>
+</tr>
+<tr>
+<td>Four</td>
+<td>Five</td>
+<td>Six</td>
+</tr>
+<tr>
+<td>Seven</td>
+<td>&nbsp;</td>
+<td>&nbsp;</td>
+</tr>
+</table>
+<h3>Vert</h3>
+<table class="simplelist" border="0" summary="Simple list">
+<tr>
+<td>One</td>
+<td>Four</td>
+<td>Seven</td>
+</tr>
+<tr>
+<td>Two</td>
+<td>Five</td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>Three</td>
+<td>Six</td>
+<td>&nbsp;</td>
+</tr>
+</table>
+</div>
+<div class="simplesect">
+<a name="id2797987"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2797987"></a>
+<fake>More Complex List Item Content</fake>
+</h2></div></div>
+<div class="itemizedlist"><ul>
+<li>
+<p>
+<a name="id2798000"></a>One</p>
+<p>Second para</p>
+</li>
+<li>
+<p>
+<a name="id2798013"></a>Two</p>
+<p>Second para</p>
+</li>
+<li>
+<a name="id2798026"></a>
+<p>Three</p>
+<p>Second para</p>
+</li>
+<li>
+<p>
+<a name="id2798039"></a>Four</p>
+<p>Second para</p>
+</li>
+<li>
+<a name="id2798052"></a>
+<p>
+<b>Formal Element</b> Five</p>
+<p>Second para</p>
+</li>
+<li><p>
+<a name="id2798073"></a>Six</p></li>
+</ul></div>
+<div class="orderedlist"><ol type="1">
+<li>
+<p>
+<a name="id2798083"></a>One</p>
+<p>Second para</p>
+</li>
+<li>
+<p>
+<a name="id2798096"></a>Two</p>
+<p>Second para</p>
+</li>
+<li>
+<a name="id2798110"></a>
+<p>Three</p>
+<p>Second para</p>
+</li>
+<li>
+<p>
+<a name="id2798123"></a>Four</p>
+<p>Second para</p>
+</li>
+<li>
+<a name="id2798136"></a>
+<p>
+<b>Formal Element</b> Five</p>
+<p>Second para</p>
+</li>
+<li><p>
+<a name="id2798157"></a>Six</p></li>
+</ol></div>
+</div>
+<div class="simplesect">
+<a name="id2798165"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2798165"></a>
+<fake>Segmented List</fake>
+</h2></div></div>
+<p><b>State Birds</b></p>
+<p>
+<b>State: </b>Alabama</p>
+<p>
+<b>Bird: </b>Yellowhammer</p>
+<p>
+<b>State: </b>Alaska</p>
+<p>
+<b>Bird: </b>Willow Ptarmigan</p>
+<p>
+<b>State: </b>Arizona</p>
+<p>
+<b>Bird: </b>Cactus Wren</p>
+<p>
+<b>State: </b>Arkansas</p>
+<p>
+<b>Bird: </b>Mockingbird</p>
+<p>
+<b>State: </b>California</p>
+<p>
+<b>Bird: </b>California Valley Quail</p>
+<p>
+<b>State: </b>Colorado</p>
+<p>
+<b>Bird: </b>Lark Bunting</p>
+<p>
+<b>State: </b>Connecticut</p>
+<p>
+<b>Bird: </b>Robin</p>
+<p>
+<b>State: </b>Delaware</p>
+<p>
+<b>Bird: </b>Blue Hen Chicken</p>
+<p>
+<b>State: </b>Florida</p>
+<p>
+<b>Bird: </b>Mockingbird</p>
+<p>
+<b>State: </b>Georgia</p>
+<p>
+<b>Bird: </b>Brown Thrasher</p>
+<p>
+<b>State: </b>Hawaii</p>
+<p>
+<b>Bird: </b>Nene</p>
+<p>
+<b>State: </b>Idaho</p>
+<p>
+<b>Bird: </b>Mountain Bluebird</p>
+<p>
+<b>State: </b>Illinois</p>
+<p>
+<b>Bird: </b>Cardinal</p>
+<p>
+<b>State: </b>Indiana</p>
+<p>
+<b>Bird: </b>Cardinal</p>
+<p>
+<b>State: </b>Iowa</p>
+<p>
+<b>Bird: </b>Eastern Goldfinch</p>
+<p>
+<b>State: </b>Kansas</p>
+<p>
+<b>Bird: </b>Western Meadowlark</p>
+<p>
+<b>State: </b>Kentucky</p>
+<p>
+<b>Bird: </b>Cardinal</p>
+<p>
+<b>State: </b>Louisiana</p>
+<p>
+<b>Bird: </b>Eastern Brown Pelican</p>
+<p>
+<b>State: </b>Maine</p>
+<p>
+<b>Bird: </b>Chickadee</p>
+<p>
+<b>State: </b>Maryland</p>
+<p>
+<b>Bird: </b>Baltimore Oriole</p>
+<p>
+<b>State: </b>Massachusetts</p>
+<p>
+<b>Bird: </b>Chickadee</p>
+<p>
+<b>State: </b>Michigan</p>
+<p>
+<b>Bird: </b>Robin</p>
+<p>
+<b>State: </b>Minnesota</p>
+<p>
+<b>Bird: </b>Common Loon</p>
+<p>
+<b>State: </b>Mississippi</p>
+<p>
+<b>Bird: </b>Mockingbird</p>
+<p>
+<b>State: </b>Missouri</p>
+<p>
+<b>Bird: </b>Bluebird</p>
+<p>
+<b>State: </b>Montana</p>
+<p>
+<b>Bird: </b>Western Meadowlark</p>
+<p>
+<b>State: </b>Nebraska</p>
+<p>
+<b>Bird: </b>Western Meadowlark</p>
+<p>
+<b>State: </b>Nevada</p>
+<p>
+<b>Bird: </b>Mountain Bluebird</p>
+<p>
+<b>State: </b>New Hampshire</p>
+<p>
+<b>Bird: </b>Purple Finch</p>
+<p>
+<b>State: </b>New Jersey</p>
+<p>
+<b>Bird: </b>Eastern Goldfinch</p>
+<p>
+<b>State: </b>New Mexico</p>
+<p>
+<b>Bird: </b>Roadrunner</p>
+<p>
+<b>State: </b>New York</p>
+<p>
+<b>Bird: </b>Bluebird</p>
+<p>
+<b>State: </b>North Carolina</p>
+<p>
+<b>Bird: </b>Cardinal</p>
+<p>
+<b>State: </b>North Dakota</p>
+<p>
+<b>Bird: </b>Western Meadowlark</p>
+<p>
+<b>State: </b>Ohio</p>
+<p>
+<b>Bird: </b>Cardinal</p>
+<p>
+<b>State: </b>Oklahoma</p>
+<p>
+<b>Bird: </b>Scissor-tailed Flycatcher</p>
+<p>
+<b>State: </b>Oregon</p>
+<p>
+<b>Bird: </b>Western Meadowlark</p>
+<p>
+<b>State: </b>Pennsylvania</p>
+<p>
+<b>Bird: </b>Ruffed Grouse</p>
+<p>
+<b>State: </b>Rhode Island</p>
+<p>
+<b>Bird: </b>Rhode Island Red</p>
+<p>
+<b>State: </b>South Carolina</p>
+<p>
+<b>Bird: </b>Great Carolina Wren</p>
+<p>
+<b>State: </b>South Dakota</p>
+<p>
+<b>Bird: </b>Ring-necked Pheasant</p>
+<p>
+<b>State: </b>Tennessee</p>
+<p>
+<b>Bird: </b>Mockingbird</p>
+<p>
+<b>State: </b>Texas</p>
+<p>
+<b>Bird: </b>Mockingbird</p>
+<p>
+<b>State: </b>Utah</p>
+<p>
+<b>Bird: </b>American Seagull</p>
+<p>
+<b>State: </b>Vermont</p>
+<p>
+<b>Bird: </b>Hermit Thrush</p>
+<p>
+<b>State: </b>Virginia</p>
+<p>
+<b>Bird: </b>Cardinal </p>
+<p>
+<b>State: </b>Washington</p>
+<p>
+<b>Bird: </b>Willow Goldfinch</p>
+<p>
+<b>State: </b>West Virginia</p>
+<p>
+<b>Bird: </b>Cardinal</p>
+<p>
+<b>State: </b>Wisconsin</p>
+<p>
+<b>Bird: </b>Robin</p>
+<p>
+<b>State: </b>Wyoming</p>
+<p>
+<b>Bird: </b>Western Meadowlark</p>
+</div>
+</div>
+<div id="id2798844" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2798844"></a>
+<fake>Chapter 6.</fake> Table Tests</h2></div></div>
+<h3>Alternate Alignment on Entry</h3>
+<div class="informaltable" id="id2798868">
+<p>
+<a name="id2798868"></a>
+<table border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<thead><tr>
+<th>h1</th>
+<th>h2</th>
+<th>h3</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">left</td>
+<td align="center">center</td>
+<td>center</td>
+</tr>
+<tr>
+<td align="center">center</td>
+<td align="right">right</td>
+<td align="right">right</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+<div class="informaltable" id="id2799024">
+<p>
+<a name="id2799024"></a>
+<table border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<thead><tr>
+<th>h1</th>
+<th>h2</th>
+<th>h3</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">left</td>
+<td align="center">center</td>
+<td>center</td>
+</tr>
+<tr>
+<td align="center">center</td>
+<td align="right">right</td>
+<td align="right">right</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+<div class="informaltable" id="id2799143">
+<p>
+<a name="id2799143"></a>
+<table border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<thead><tr>
+<th>h1</th>
+<th>h2</th>
+<th>h3</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left"><i><fake>left emph</fake></i></td>
+<td align="center"><b><fake>center emph/bold</fake></b></td>
+<td><tt><fake>center literal</fake></tt></td>
+</tr>
+<tr>
+<td align="center"><tt><fake>center filename</fake></tt></td>
+<td align="right"><b><fake>right command</fake></b></td>
+<td align="right">right</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+<h3>Absolute Widths</h3>
+<div class="informaltable" id="id2799354">
+<p>
+<a name="id2799354"></a>
+<table border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<thead><tr>
+<th>h1</th>
+<th>h2</th>
+<th>h3</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>e1</td>
+<td>e2</td>
+<td>e3</td>
+</tr>
+<tr>
+<td>e1</td>
+<td>e2</td>
+<td>e3</td>
+</tr>
+<tr>
+<td>e1</td>
+<td>e2</td>
+<td>e3</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+<h3>Relative Widths</h3>
+<div class="informaltable" id="id2799509">
+<p>
+<a name="id2799509"></a>
+<table border="1">
+<fake><colgroup><col></colgroup></fake>
+<tbody>
+<tr>
+<td align="left"><p>left</p></td>
+<td align="center"><p>center</p></td>
+</tr>
+<tr>
+<td align="center"><p>center</p></td>
+<td align="right"><p>right</p></td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+<h3>Complex</h3>
+<div class="informaltable" id="id2799628">
+<p>
+<a name="id2799628"></a>
+<table width="100%" border="1">
+<fake><colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup></fake>
+<tbody>
+<tr>
+<td>A1</td>
+<td>A2</td>
+<td>A3</td>
+<td rowspan="2">A4</td>
+<td>A5</td>
+<td>A6</td>
+</tr>
+<tr>
+<td>B1</td>
+<td>B2</td>
+<td>B3</td>
+<td>B5</td>
+<td>B6</td>
+</tr>
+<tr>
+<td>C1</td>
+<td>C2</td>
+<td>C3</td>
+<td>C4</td>
+<td rowspan="3" colspan="2" valign="middle">C5</td>
+</tr>
+<tr>
+<td> </td>
+<td colspan="0">D2</td>
+<td>D3</td>
+<td>D4</td>
+</tr>
+<tr>
+<td>E1</td>
+<td align="left">E2</td>
+<td>E4</td>
+</tr>
+<tr>
+<td>F1</td>
+<td>F2</td>
+<td>F3</td>
+<td>F4</td>
+<td>F5</td>
+<td>F6</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+<h3>With Footnotes</h3>
+<div class="informaltable" id="id2799952">
+<p>
+<a name="id2799952"></a>
+<table border="1">
+<fake><colgroup><col></colgroup></fake>
+<tbody>
+<tr>
+<td>foo<sup>[<a name="fnrex1a" href="#ftn.fnrex1a"></a>]</sup>
+</td>
+<td>3<sup>[<a name="fnrex1b" href="#ftn.fnrex1b">a</a>]</sup>
+</td>
+</tr>
+<tr>
+<td>bar<sup>[<a href="#ftn.fnrex1a"></a>]</sup>
+</td>
+<td>5<sup>[<a href="#ftn.fnrex1b">a</a>]</sup>
+</td>
+</tr>
+</tbody>
+<tr><td colspan="">
+<div class="footnote"><p>
+<sup>[<a name="ftn.fnrex1a" href="#fnrex1a"></a>] </sup>A meaningless
+word</p></div>
+<div class="footnote"><p>
+<sup>[<a name="ftn.fnrex1b" href="#fnrex1b">a</a>] </sup>A meaningless
+number</p></div>
+</td></tr>
+</table>
+<p>
+</div>
+<h3>A Big One</h3>
+<div class="informaltable" id="id2800044">
+<p>
+<a name="id2800044"></a>
+<table border="1">
+<fake><colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup></fake>
+<thead><tr>
+<th>H1</th>
+<th>H2</th>
+<th>H3</th>
+<th>H4</th>
+<th>H5</th>
+<th>H6</th>
+<th>H7</th>
+<th>H8</th>
+<th>H9</th>
+<th>H10</th>
+<th>H11</th>
+<th>H12</th>
+<th>H13</th>
+<th>H14</th>
+<th>H15</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+</div>
+<div id="id2802588" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2802588"></a>
+<fake>Chapter 7.</fake> Index Term Tests</h2></div></div>
+<p>Test data.</p>
+<a class="indexterm" name="idx1"></a>
+<a class="indexterm" name="idx2"></a>
+<div class="sect1">
+<a name="id2802620"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2802620"></a>
+<fake>Index Term Sect 1</fake>
+</h2></div></div>
+<p>Test data.</p>
+<a class="indexterm" name="idx3"></a>
+<a class="indexterm" name="fred"></a>
+<a class="indexterm" name="idx5"></a>
+<a class="indexterm" name="idx6"></a>
+<a class="indexterm" name="idx7"></a>
+<a class="indexterm" name="idx8"></a>
+<a class="indexterm" name="idx9"></a>
+<a class="indexterm" name="id2802801"></a>
+<a class="indexterm" name="idx11"></a>
+<div class="sect2">
+<a name="id2802838"></a>
+<div class="titlepage"><div><h3 class="title">
+<a name="id2802838"></a>
+<fake>Index Term Sect 2</fake>
+</h3></div></div>
+<p>Test data.</p>
+<a class="indexterm" name="idx12"></a>
+<a class="indexterm" name="idx13"></a>
+<a class="indexterm" name="idx14"></a>
+<a class="indexterm" name="idx15"></a>
+</div>
+<div class="sect2">
+<a name="id2802934"></a>
+<div class="titlepage"><div><h3 class="title">
+<a name="id2802934"></a>
+<fake>Index Term Sect 3</fake>
+</h3></div></div>
+<p>foo</p>
+</div>
+</div>
+</div>
+</div>
+<div class="part" id="part">
+<div class="titlepage"><div><h1 class="title">
+<a name="part"></a>Part Two Title</h1></div></div>
+<div id="id2802962" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2802962"></a>
+<fake>Chapter 8.</fake> CmdSynopsis Tests</h2></div></div>
+<h3>Very Simple CmdSynopsis</h3>
+<div class="cmdsynopsis" id="id2802972">
+<a name="id2802972"></a>
+<tt><fake>cd</fake></tt> {<i><tt><fake>directory</fake></tt></i>}</div>
+<h3>Simple CmdSynopsis</h3>
+<div class="cmdsynopsis" id="id2803003">
+<a name="id2803003"></a>
+<tt><fake>cal</fake></tt> [-j] [-y] [month [year]]</div>
+<h3>Another Simple CmdSynopsis</h3>
+<div class="cmdsynopsis" id="id2803043">
+<a name="id2803043"></a>
+<tt><fake>chgrp</fake></tt> [-R
+ [-H | -L | -P]
+ ] [-f] <i><tt><fake>group</fake></tt></i> <i><tt><fake>file</fake></tt></i>... </div>
+<h3>Slightly Complex CmdSynopsis</h3>
+<div class="cmdsynopsis" id="id2803108">
+<a name="id2803108"></a>
+<tt><fake>emacs</fake></tt> [-t <i><tt><fake>file</fake></tt></i>] [-q] [-u <i><tt><fake>user</fake></tt></i>] [+<i><tt><fake>number</fake></tt></i>] [-f <i><tt><fake>function</fake></tt></i>...] [-l <i><tt><fake>file</fake></tt></i>...] <i><tt><fake>file</fake></tt></i>... </div>
+<h3>Quite Complex CmdSynopsis</h3>
+<div class="cmdsynopsis" id="id2803212">
+<a name="id2803212"></a>
+<tt><fake>cccp</fake></tt> [-$] [-C] [-D<i><tt><fake>name</fake></tt></i> [=<i><tt><fake>definition</fake></tt></i>]...] [-dD] [-dM] [-I <i><tt><fake>directory</fake></tt></i>...] [-H] [-I-]<br> [-imacros <i><tt><fake>file</fake></tt></i>...] [-include <i><tt><fake>file</fake></tt></i>...] [-lang-c | -lang-c++ | -lang-objc] [-lint]<br> [-M | -MD | -MM | -MMD] [-nostdinc] [-P] [-pedantic] [-pedantic-errors] [-trigraphs] [-U<i><tt><fake>name</fake></tt></i>]<br> [-undef] [-Wtrigraphs] [-Wcomment] [-Wall] [-Wtraditional] {<i><tt><fake>infile</fake></tt></i> | -} {<i><tt><fake>outfile</fake></tt></i> | -}</div>
+</div>
+<div id="id2803502" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2803502"></a>
+<fake>Chapter 9.</fake> FuncSynopsis Tests</h2></div></div>
+<h3>Two Simple Parameters</h3>
+<div class="funcsynopsis" id="id2803513">
+<p>
+<a name="id2803513"></a>
+<p><code>
+<code class="funcdef">int <b class="fsfunc">max</b>
+</code>(<var class="pdparam">int1</var>, <var class="pdparam">int2</var>);<br>int <var class="pdparam">int1</var>;<br>int <var class="pdparam">int2</var>;</code></p>
+<p>
+</div>
+<h3>Variable Arguments</h3>
+<div class="funcsynopsis" id="id2803560">
+<p>
+<a name="id2803560"></a>
+<pre class="funcsynopsisinfo">#include &lt;varargs.h&gt;</pre>
+<p><code>
+<code class="funcdef">int <b class="fsfunc">max</b>
+</code>(...);</code></p>
+<p>
+</div>
+<h3>Void</h3>
+<div class="funcsynopsis" id="id2803608">
+<p>
+<a name="id2803608"></a>
+<p><code>
+<code class="funcdef">int <b class="fsfunc">rand</b>
+</code>();</code></p>
+<p>
+</div>
+<h3>Function Pointer Arguments</h3>
+<div class="funcsynopsis" id="id2803643">
+<p>
+<a name="id2803643"></a>
+<p><code>
+<code class="funcdef">void <b class="fsfunc">qsort</b>
+</code>(<var class="pdparam">dataptr</var>, <var class="pdparam">left</var>, <var class="pdparam">right</var>, <var class="pdparam">(* comp)</var>);<br>void *<var class="pdparam">dataptr</var>[];<br>int <var class="pdparam">left</var>;<br>int <var class="pdparam">right</var>;<br>int <var class="pdparam">(* comp)</var>
+ (void *, void *);</code></p>
+<p>
+</div>
+</div>
+<div id="id2803701" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2803701"></a>
+<fake>Chapter 10.</fake> Callout Tests</h2></div></div>
+<h3>CallOut (using AREASPEC)</h3>
+<div class="programlistingco">
+<pre class="programlisting">@rem = '--*-Perl-*--
+@echo off
+perl.exe %_batchname %$
+goto endofperl
+@rem ';
+
+# Compress mail...
+
+require 'n:/home/nwalsh/lib/cygnus.pl';
+require 'timelocal.pl';
+use Cwd;
+
+select (STDERR); $| = 1;
+select (STDOUT); $| = 1;
+
+@DIRS = (&quot;/home/nwalsh/Mail&quot;);
+while (@DIRS) {
+ $dir = shift @DIRS;
+ opendir (DIR, $dir);
+ while ($fname = readdir(DIR)) {
+ $file = &quot;$dir/$fname&quot;;
+ next if ! -d $file;
+ next if $fname =~ /^\.\.?$/;
+
+ print &quot;$file\n&quot;;
+ push (@DIRS, $file);
+ &amp;compress ($file);
+ }
+}
+
+exit;</pre>
+<div class="calloutlist"><table border="0" summary="Callout list">
+<tr>
+<td width="5%" valign="top" align="left"><img src="../images/callouts/1.png" alt="1" border="0"></td>
+<td valign="top" align="left"><p>The prologue handles embedding a Perl script in a DOS batch file.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><img src="../images/callouts/2.png" alt="2" border="0"></td>
+<td valign="top" align="left"><p>The <tt><fake>goto</fake></tt> statement, interpreted by the DOS batch
+file interpreter, skips over the body of the Perl script.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><img src="../images/callouts/3.png" alt="3" border="0"></td>
+<td valign="top" align="left"><p>The <tt><fake>require</fake></tt> statement sources in external program
+fragments.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><img src="../images/callouts/4.png" alt="4" border="0"></td>
+<td valign="top" align="left"><p>The <tt><fake>use</fake></tt> statement is similar, but has additional
+utility. It is a Perl5 function. (Note that this callout area specifies
+both a line and a column.)</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><img src="../images/callouts/5.png" alt="5" border="0"></td>
+<td valign="top" align="left"><p>This is a user subroutine call.</p></td>
+</tr>
+</table></div>
+</div>
+<h3>CallOut (using CO)</h3>
+<pre class="programlisting">this is a line
+this is another line
+there's a <a name="callout1"></a>
+<img src="../images/callouts/1.png" alt="1" border="0">callout in here.
+and there's another on the
+next line
+right here:<a name="callout2"></a>
+<img src="../images/callouts/2.png" alt="2" border="0">
+</pre>
+<div class="calloutlist"><table border="0" summary="Callout list">
+<tr>
+<td width="5%" valign="top" align="left">
+<a href="#callout1"><img src="../images/callouts/1.png" alt="1" border="0"></a> </td>
+<td valign="top" align="left">
+<p>First callout.</p>
+<p>Second para in first callout.</p>
+</td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left">
+<a href="#callout2"><img src="../images/callouts/2.png" alt="2" border="0"></a> </td>
+<td valign="top" align="left">
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Second callout.</p>
+<p>Third para in second callout.</p>
+</td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left">
+<a href="#callout1"><img src="../images/callouts/1.png" alt="1" border="0"></a> <a href="#callout2"><img src="../images/callouts/2.png" alt="2" border="0"></a> </td>
+<td valign="top" align="left"><p>This paragraph describes <i><fake>both</fake></i> callouts.</p></td>
+</tr>
+</table></div>
+</div>
+</div>
+<div class="part" id="id2804087">
+<div class="titlepage"><div><h1 class="title">
+<a name="id2804087"></a>A Reference Part</h1></div></div>
+<div class="reference">
+<a name="reference"></a>
+<div class="titlepage">
+<div><h1 class="title">
+<a name="reference"></a>Reference</h1></div>
+<hr>
+</div>
+<div class="refentry">
+<h1 class="title">
+<a name="id2804112"></a>
+<fake>RefEntryTitle</fake>
+</h1>
+<div class="refnamediv">
+<a name="id2804124"></a>
+<h2>Name</h2>RefName1, RefName2 &#x2014; Yes, there must be a purpose!</div>
+<div class="refsynopsisdiv">
+<a name="id2804151"></a>
+<h2>Synopsis</h2>
+<pre class="synopsis"> A
+ Synopsis
+ Goes
+ Here</pre>
+</div>
+<div class="refsect1">
+<a name="id2804149"></a>
+<h2>
+<a name="id2804149"></a>A RefSect1</h2>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<div class="refsect2">
+<a name="id2804177"></a>
+<h3>
+<a name="id2804177"></a>A RefSect2</h3>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<div class="refsect3">
+<a name="id2804196"></a>
+<h4>
+<a name="id2804196"></a>A RefSect3</h4>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah.<sup>[<a name="id2804214" href="#ftn.id2804214">6</a>]</sup>
+Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+</div>
+</div>
+</div>
+<div class="footnotes">
+<br>
+<hr width="100" align="left">
+<div class="footnote"><p>
+<sup>[<a name="ftn.id2804214" href="#id2804214">6</a>] </sup>This is a footnote in a refentry.</p></div>
+</div>
+</div>
+<div class="refentry">
+<h1 class="title">
+<a name="id2804229"></a>
+<fake><tt><fake>Chop</fake></tt></fake>
+</h1>
+<div class="refnamediv">
+<a name="id2804231"></a>
+<h2>Name</h2>
+<tt><fake>Chop</fake></tt> &#x2014; strip trailing whitespace</div>
+<div class="refsect1">
+<a name="id2804244"></a>
+<h2>
+<a name="id2804244"></a>Description</h2>
+<p> Returns the argument string without trailing whitespace.
+ <div class="example">
+<p>
+<a name="id2804259"></a>
+<b><fake>
+<fake>Example 2.</fake> chop() example</fake></b>
+</p>
+<pre class="programlisting">$trimmed = Chop($line);</pre>
+</div>
+ </p>
+</div>
+</div>
+</div>
+</div>
+<div id="appendix" class="appendix">
+<div class="titlepage"><div><h2 class="title">
+<a name="appendix"></a>
+<fake>Appendix A.</fake> A Very Short Appendix</h2></div></div>
+<p>Blah.</p>
+</div>
+<div id="id2804294" class="appendix">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2804294"></a>
+<fake>Appendix B.</fake> A Very Long Appendix</h2></div></div>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<div class="sect1">
+<a name="id2804813"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2804813"></a>
+<fake>a sect1 title</fake>
+</h2></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect2">
+<a name="id2804836"></a>
+<div class="titlepage"><div><h3 class="title">
+<a name="id2804836"></a>
+<fake>a sect2 title</fake>
+</h3></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect3">
+<a name="id2804858"></a>
+<div class="titlepage"><div><h4 class="title">
+<a name="id2804858"></a>
+<fake>a sect3 title</fake>
+</h4></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect4">
+<a name="id2804881"></a>
+<div class="titlepage"><div><h5 class="title">
+<a name="id2804881"></a>
+<fake>a sect4 title</fake>
+</h5></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect5">
+<a name="id2804904"></a>
+<div class="titlepage"><div><h6 class="title">
+<a name="id2804904"></a>
+<fake>a sect5 title</fake>
+</h6></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<a name="id2804927"></a>
+<div class="titlepage">
+<div><h2 class="title" style="clear: all">
+<a name="id2804927"></a>
+<fake>another sect1 title</fake>
+</h2></div>
+<div><h2 class="subtitle">a sect1 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect2">
+<a name="id2804958"></a>
+<div class="titlepage">
+<div><h3 class="title">
+<a name="id2804958"></a>
+<fake>another sect2 title</fake>
+</h3></div>
+<div><h2 class="subtitle">a sect2 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect3">
+<a name="id2804994"></a>
+<div class="titlepage">
+<div><h4 class="title">
+<a name="id2804994"></a>
+<fake>another sect3 title</fake>
+</h4></div>
+<div><h2 class="subtitle">a sect3 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect4">
+<a name="id2805030"></a>
+<div class="titlepage">
+<div><h5 class="title">
+<a name="id2805030"></a>
+<fake>another sect4 title</fake>
+</h5></div>
+<div><h2 class="subtitle">a sect4 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect5">
+<a name="id2805067"></a>
+<div class="titlepage">
+<div><h6 class="title">
+<a name="id2805067"></a>
+<fake>another sect5 title</fake>
+</h6></div>
+<div><h2 class="subtitle">a sect5 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<a name="id2805103"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2805103"></a>
+<fake>another sect1 title</fake>
+</h2></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+<div class="sect1">
+<a name="id2805122"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2805122"></a>
+<fake>another sect1 title</fake>
+</h2></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+</div>
+<div class="bibliography">
+<h2 class="title"><a name="bib1">A Test Bibliography</a></h2>
+<p>The stock stylesheet attempts to do a Bibliography. It probably needs
+a lot of tweaking. It probably doesn't conform to any specific style.</p>
+<div class="bibliodiv">
+<h3 class="title"><a name="id2805167">Books</a></h3>
+<div id="id2805176" class="biblioentry">
+<a name="id2805176"></a>
+<p>
+<span class="abbrev">[AhoSethiUllman96] </span>
+<span class="authorgroup">Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. </span>
+<span class="title">
+<I>Compilers, Principles, Techniques, and Tools</I>. </span>
+<span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span>
+<span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span>
+<span class="isbn">0-201-10088-6. </span>
+<span class="editor">James T. DeWolf. </span>
+<span class="seriesinfo">
+<span class="title">
+<I>Computer Science</I>. </span>
+<span class="editor">Michael A. Harrison. </span>
+<span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span>
+</span>
+</p>
+</div>
+</div>
+<div class="bibliodiv">
+<h3 class="title"><a name="id2805297">Periodicals</a></h3>
+<div id="walsh97" class="biblioentry">
+<a name="walsh97"></a>
+<p>
+<span class="abbrev">[Walsh97] </span>
+<span class="biblioset">&#x201C;A Guide to XML&#x201D;. <span class="author">Norman Walsh. </span>
+<span class="pubdate">1997. </span>
+<span class="copyright">Copyright © 1997 ArborText, Inc.. </span>
+<span class="pagenums">97-108. </span>
+</span>
+<span class="biblioset">
+<I>XML: Principles, Tools, and Techniques</I>. <span class="publisher"><span class="publishername">O'Reilly &amp; Associates, Inc.. </span></span>
+<span class="issn">1085-2301. </span>
+<span class="editor">Dan Connolly. </span>
+</span>
+</p>
+</div>
+<div id="walsh96" class="bibliomixed">
+<a name="walsh96"></a>
+<p> <span class="bibliomset"> <span class="surname">Walsh</span>, <span class="firstname">Norman</span>.
+ &#x201C;Introduction to Cascading Style Sheets&#x201D;.
+ </span>
+ <span class="bibliomset"> <I>The World Wide Web Journal</I>.
+ <span class="volumenum">2</span>(<span class="issuenum">1</span>).
+ <span class="publishername">O'Reilly &amp; Associates, Inc.</span> and
+ <span class="corpname">The World Wide Web Consortium</span>.
+ <span class="pubdate">Winter, 1996</span>
+</span>.</p>
+</div>
+<div id="id2805534" class="biblioentry">
+<a name="id2805534"></a>
+<p>
+<span class="abbrev">[Abbrev] </span>
+<span class="title">
+<I>A Really Full BiblioEntry</I>. </span>
+<span class="subtitle">Subtitle. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>
+<span class="affiliation">
+<span class="shortaffil">shortaffil. </span>
+<span class="jobtitle">jobtitle. </span>
+<span class="orgname">orgname. </span>
+<span class="orgdiv">orgdiv. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>
+<span class="artpagenums">ArtPageNums. </span>
+<span class="author">AuthorFirstname AuthorSurname. </span>
+<span class="authorinitials">AuthorInitials. </span>
+<span class="collab">
+<span class="collabname">The names of some collaborators. </span>
+<span class="affiliation">
+<span class="shortaffil">shortaffil. </span>
+<span class="jobtitle">jobtitle. </span>
+<span class="orgname">orgname. </span>
+<span class="orgdiv">orgdiv. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>. </span>
+<span class="confgroup">
+<span class="confdates">confdates. </span>
+<span class="conftitle">conftitle. </span>
+<span class="confnum">confnum. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>
+<span class="confsponsor">confsponsor. </span>. </span>
+<span class="contractnum">ContractNum. </span>
+<span class="contractsponsor">ContractSponsor. </span>
+<span class="contrib">Contrib. </span>
+<span class="copyright">Copyright © 1998 Copyright holder. </span>
+<span class="corpname">CorpName. </span>
+<span class="date">Date. </span>
+<span class="edition">Edition. </span>
+<span class="editor">EditorFirstName EditorSurname. </span>
+<span class="firstname">FirstName. </span>
+<span class="honorific">Honorific. </span>
+<span class="isbn">ISBN. </span>
+<span class="issn">ISSN. </span>
+<span class="invpartnumber">InvPartNumber. </span>
+<span class="issuenum">IssueNum. </span>
+<span class="lineage">Lineage. </span>
+<span class="orgname">OrgName. </span>
+<span class="othercredit">
+<span class="firstname">OCFirstName. </span>
+<span class="surname">OCSurname. </span>. </span>
+<span class="othername">OtherName. </span>
+<span class="pagenums">PageNums. </span>
+<span class="productname">ProductName. </span>
+<span class="productnumber">ProductNumber. </span>
+<span class="pubdate">PubDate. </span>
+<span class="publisher">
+<span class="publishername">PubPublisherName. </span>
+<span class="address">
+<fake>Any Street</fake>
+<fake>Anywhere</fake>, <fake>XX</fake> <fake>99999</fake>
+<fake>USA</fake>. </span>
+</span>
+<span class="publishername">PublisherName. </span>
+<span class="pubsnumber">PubsNumber. </span>
+<span class="releaseinfo">ReleaseInfo. </span>
+<span class="revhistory">
+<tr>
+<td align="left">Revision 1.0</td>
+<td align="left">20 Nov 1998</td>
+<td align="left">ndw</td>
+</tr>
+<tr><td align="left" colspan="3">Some remark about the revision</td></tr>
+<tr>
+<td align="left">Revision 0.9</td>
+<td align="left">19 Nov 1998</td>
+<td align="left">ndw</td>
+</tr>
+<tr><td align="left" colspan="3">Some remark about the revision</td></tr>
+<tr>
+<td align="left">Revision 0.4</td>
+<td align="left">18 Nov 1998</td>
+<td align="left">ndw</td>
+</tr>
+<tr><td align="left" colspan="3">Some remark about the revision</td></tr>. </span>
+<span class="seriesinfo">
+<span class="title">
+<I>SeriesInfo Title</I>. </span>
+<span class="editor">SeriesInfo Editor Firstname SeriesInfo Editor Surname. </span>
+</span>
+<span class="seriesvolnums">SeriesVolNums. </span>
+<span class="surname">Surname. </span>
+<span class="titleabbrev">TitleAbbrev. </span>
+<span class="volumenum">VolumeNum. </span>
+</p>
+</div>
+</div>
+</div>
+<div class="glossary">
+<h2>Example Glossary</h2>
+<dl>
+<p>This is not a real glossary, it's just an example.</p>
+<div class="glossdiv">
+<h3 class="title">E</h3>
+<dt><a name="xml">Extensible Markup Language</a></dt>
+<dd>
+<p>Some reasonable definition here.</p>
+<p>See Also <a href="#sgml">Standard Generalized
+ Markup Language</a>.</p>
+</dd>
+</div>
+<div class="glossdiv">
+<h3 class="title">S</h3>
+<dt><a name="id2806132">SGML</a></dt>
+<dd><p>See <a href="#sgml">Standard Generalized
+ Markup Language</a>.</p></dd>
+<dt><a name="sgml">Standard Generalized
+ Markup Language</a></dt>
+<dd>
+<p>Some reasonable definition here.</p>
+<p>See Also <a href="#xml">Extensible Markup Language</a>.</p>
+</dd>
+</div>
+</dl>
+</div>
+<div class="index">
+<h2 class="title"><a name="index">Index</a></h2>
+<p>This is a test index.</p>
+<p>
+<b>a formal para</b> this is a formal paragraph.</p>
+<dt>Primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dt>primary</dt>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+</div>
+<div class="index">
+<h2 class="title"><a name="id2806420">An Index with a Title</a></h2>
+<div class="indexdiv">Symbols<dl>
+<dt>!,
+ <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+ </dt>
+<dt>[,
+ <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+ </dt>
+</dl>
+</div>
+<div class="indexdiv">A<dl><dt>sect2-level,
+ <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+ </dt></dl>
+</div>
+<div class="indexdiv">C<dl>
+<dt>chap-level,
+ <a href="c3.htm" target="_top">Index Term Tests</a>
+ </dt>
+<dd><dl></dl></dd>
+</dl>
+</div>
+<div class="indexdiv">O<dl>
+<dt>oft-repeated,
+ <a href="c3.htm" target="_top">Index Term Tests</a>,
+ <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+ </dt>
+<dd><dl></dl></dd>
+</dl>
+</div>
+<div class="indexdiv">S<dl>
+<dt>sect1-level,
+ <a href="c3.htm#aen10" target="_top"><i><fake>Index Term Sect 1</fake></i></a>
+ </dt>
+<dd><dl></dl></dd>
+<dt>sect1-other
+ </dt>
+<dd><dl></dl></dd>
+</dl>
+</div>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/book3.html b/tests/docbook/result/html/book3.html
new file mode 100644
index 00000000..ee866200
--- /dev/null
+++ b/tests/docbook/result/html/book3.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Book Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="book"></a>Book Title</h1></div>
+<div><h3 class="corpauthor">Some Corporation</h3></div>
+<div><h3 class="author">Norman Walsh</h3></div>
+<div><p class="copyright">Copyright © 1998 by Norman Walsh</p></div>
+<div><div class="legalnotice">
+<p class="legalnotice-title"><b>Legal Notice</b></p>
+<p>This is a test document. You can do what you will with it.</p>
+</div></div>
+<div><div class="legalnotice"><p>This is a second legal notice. But it's not noteworthy.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ </p></div></div>
+<hr>
+</div>
+<div class="bibliography">
+<h2 class="title"><a name="bib1">A Test Bibliography</a></h2>
+<p>The stock stylesheet attempts to do a Bibliography. It probably needs
+a lot of tweaking. It probably doesn't conform to any specific style.</p>
+<div class="bibliodiv">
+<h3 class="title"><a name="id2694997">Books</a></h3>
+<div id="id2695006" class="biblioentry">
+<a name="id2695006"></a>
+<p>
+<span class="abbrev">[AhoSethiUllman96] </span>
+<span class="authorgroup">Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. </span>
+<span class="title">
+<I>Compilers, Principles, Techniques, and Tools</I>. </span>
+<span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span>
+<span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span>
+<span class="isbn">0-201-10088-6. </span>
+<span class="editor">James T. DeWolf. </span>
+</p>
+</div>
+</div>
+<div class="bibliodiv">
+<h3 class="title"><a name="id2781514">Periodicals</a></h3>
+<div id="walsh97" class="biblioentry">
+<a name="walsh97"></a>
+<p>
+<span class="abbrev">[Walsh97] </span>
+<span class="biblioset">&#x201C;A Guide to XML&#x201D;. <span class="author">Norman Walsh. </span>
+<span class="pubdate">1997. </span>
+<span class="copyright">Copyright © 1997 ArborText, Inc.. </span>
+<span class="pagenums">97-108. </span>
+</span>
+<span class="biblioset">
+<I>XML: Principles, Tools, and Techniques</I>. <span class="publisher"><span class="publishername">O'Reilly &amp; Associates, Inc.. </span></span>
+<span class="issn">1085-2301. </span>
+<span class="editor">Dan Connolly. </span>
+</span>
+</p>
+</div>
+<div id="walsh96" class="bibliomixed">
+<a name="walsh96"></a>
+<p> <span class="bibliomset"> <span class="surname">Walsh</span>, <span class="firstname">Norman</span>.
+ &#x201C;Introduction to Cascading Style Sheets&#x201D;.
+ </span>
+ <span class="bibliomset"> <I>The World Wide Web Journal</I>.
+ <span class="volumenum">2</span>(<span class="issuenum">1</span>).
+ <span class="publishername">O'Reilly &amp; Associates, Inc.</span> and
+ <span class="corpname">The World Wide Web Consortium</span>.
+ <span class="pubdate">Winter, 1996</span>
+</span>.</p>
+</div>
+<div id="id2693878" class="biblioentry">
+<a name="id2693878"></a>
+<p>
+<span class="abbrev">[Abbrev] </span>
+<span class="title">
+<I>A Really Full BiblioEntry</I>. </span>
+<span class="subtitle">Subtitle. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>
+<span class="affiliation">
+<span class="shortaffil">shortaffil. </span>
+<span class="jobtitle">jobtitle. </span>
+<span class="orgname">orgname. </span>
+<span class="orgdiv">orgdiv. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>
+<span class="artpagenums">ArtPageNums. </span>
+<span class="author">AuthorFirstname AuthorSurname. </span>
+<span class="authorinitials">AuthorInitials. </span>
+<span class="collab">
+<span class="collabname">The names of some collaborators. </span>
+<span class="affiliation">
+<span class="shortaffil">shortaffil. </span>
+<span class="jobtitle">jobtitle. </span>
+<span class="orgname">orgname. </span>
+<span class="orgdiv">orgdiv. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>. </span>
+<span class="confgroup">
+<span class="confdates">confdates. </span>
+<span class="conftitle">conftitle. </span>
+<span class="confnum">confnum. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>
+<span class="confsponsor">confsponsor. </span>. </span>
+<span class="contractnum">ContractNum. </span>
+<span class="contractsponsor">ContractSponsor. </span>
+<span class="contrib">Contrib. </span>
+<span class="copyright">Copyright © 1998 Copyright holder. </span>
+<span class="corpname">CorpName. </span>
+<span class="date">Date. </span>
+<span class="edition">Edition. </span>
+<span class="editor">EditorFirstName EditorSurname. </span>
+<span class="firstname">FirstName. </span>
+<span class="honorific">Honorific. </span>
+<span class="isbn">ISBN. </span>
+<span class="issn">ISSN. </span>
+<span class="invpartnumber">InvPartNumber. </span>
+<span class="issuenum">IssueNum. </span>
+<span class="lineage">Lineage. </span>
+<span class="orgname">OrgName. </span>
+<span class="othercredit">
+<span class="firstname">OCFirstName. </span>
+<span class="surname">OCSurname. </span>. </span>
+<span class="othername">OtherName. </span>
+<span class="pagenums">PageNums. </span>
+<span class="productname">ProductName. </span>
+<span class="productnumber">ProductNumber. </span>
+<span class="pubdate">PubDate. </span>
+<span class="publisher">
+<span class="publishername">PubPublisherName. </span>
+<span class="address">
+<fake>Any Street</fake>
+<fake>Anywhere</fake>, <fake>XX</fake> <fake>99999</fake>
+<fake>USA</fake>. </span>
+</span>
+<span class="publishername">PublisherName. </span>
+<span class="pubsnumber">PubsNumber. </span>
+<span class="releaseinfo">ReleaseInfo. </span>
+<span class="revhistory">
+<tr>
+<td align="left">Revision 1.0</td>
+<td align="left">20 Nov 1998</td>
+<td align="left">ndw</td>
+</tr>
+<tr><td align="left" colspan="3">Some remark about the revision</td></tr>
+<tr>
+<td align="left">Revision 0.9</td>
+<td align="left">19 Nov 1998</td>
+<td align="left">ndw</td>
+</tr>
+<tr><td align="left" colspan="3">Some remark about the revision</td></tr>
+<tr>
+<td align="left">Revision 0.4</td>
+<td align="left">18 Nov 1998</td>
+<td align="left">ndw</td>
+</tr>
+<tr><td align="left" colspan="3">Some remark about the revision</td></tr>. </span>
+<span class="seriesvolnums">SeriesVolNums. </span>
+<span class="surname">Surname. </span>
+<span class="titleabbrev">TitleAbbrev. </span>
+<span class="volumenum">VolumeNum. </span>
+</p>
+</div>
+</div>
+</div>
+<div class="glossary">
+<h2>Example Glossary</h2>
+<dl>
+<p>This is not a real glossary, it's just an example.</p>
+<div class="glossdiv">
+<h3 class="title">E</h3>
+<dt><a name="xml">Extensible Markup Language</a></dt>
+<dd>
+<p>Some reasonable definition here.</p>
+<p>See Also <a href="#sgml">Standard Generalized
+ Markup Language</a>.</p>
+</dd>
+</div>
+<div class="glossdiv">
+<h3 class="title">S</h3>
+<dt><a name="id2691829">SGML</a></dt>
+<dd><p>See <a href="#sgml">Standard Generalized
+ Markup Language</a>.</p></dd>
+<dt><a name="sgml">Standard Generalized
+ Markup Language</a></dt>
+<dd>
+<p>Some reasonable definition here.</p>
+<p>See Also <a href="#xml">Extensible Markup Language</a>.</p>
+</dd>
+</div>
+</dl>
+</div>
+<div class="index">
+<h2 class="title"><a name="index">Index</a></h2>
+<p>This is a test index.</p>
+<p>
+<b>a formal para</b> this is a formal paragraph.</p>
+<dt>Primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dt>primary</dt>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+</div>
+<div class="index">
+<h2 class="title"><a name="id2689922">Index</a></h2>
+<div class="indexdiv">Symbols<dl>
+<dt>!,
+ <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+ </dt>
+<dt>[,
+ <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+ </dt>
+</dl>
+</div>
+<div class="indexdiv">A<dl><dt>sect2-level,
+ <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+ </dt></dl>
+</div>
+<div class="indexdiv">C<dl>
+<dt>chap-level,
+ <a href="c3.htm" target="_top">Index Term Tests</a>
+ </dt>
+<dd><dl></dl></dd>
+</dl>
+</div>
+<div class="indexdiv">O<dl>
+<dt>oft-repeated,
+ <a href="c3.htm" target="_top">Index Term Tests</a>,
+ <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+ </dt>
+<dd><dl></dl></dd>
+</dl>
+</div>
+<div class="indexdiv">S<dl>
+<dt>sect1-level,
+ <a href="c3.htm#aen10" target="_top"><i><fake>Index Term Sect 1</fake></i></a>
+ </dt>
+<dd><dl></dl></dd>
+<dt>sect1-other
+ </dt>
+<dd><dl></dl></dd>
+</dl>
+</div>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/callout.html b/tests/docbook/result/html/callout.html
new file mode 100644
index 00000000..16644f05
--- /dev/null
+++ b/tests/docbook/result/html/callout.html
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Loops</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section">
+<a name="dsssl.expr.loop"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="dsssl.expr.loop"></a>
+<fake>Loops</fake>
+</h2></div></div>
+<p>
+<a class="indexterm" name="id2691231"></a>
+<a class="indexterm" name="id2691240"></a>
+<a class="indexterm" name="id2691250"></a>
+
+<fake>DSSSL</fake> doesn't have any construct that resembles the
+for loop that occurs in most imperative languages like C
+and Java. Instead, <fake>DSSSL</fake> employs a common trick in
+functional languages for implementing a loop: tail recursion.
+</p>
+<p>
+Loops in <fake>DSSSL</fake> use a special form of
+<tt><fake>let</fake></tt>. This loop counts from 1 to 10:
+<pre class="screen">
+(let <a name="dl1"></a>
+<img src="../images/callouts/1.png" alt="1" border="0">loopvar <a name="dl2"></a>
+<img src="../images/callouts/2.png" alt="2" border="0">((count 1))
+ <a name="dl3"></a>
+<img src="../images/callouts/3.png" alt="3" border="0">(if (&gt; count 10)
+ <a name="dl4"></a>
+<img src="../images/callouts/4.png" alt="4" border="0">#t
+ (<a name="dl5"></a>
+<img src="../images/callouts/5.png" alt="5" border="0">loopvar <a name="dl6"></a>
+<img src="../images/callouts/6.png" alt="6" border="0">(+ count 1))))</pre>
+</p>
+<div class="calloutlist"><table border="0" summary="Callout list">
+<tr>
+<td width="5%" valign="top" align="left">
+<a href="#dl1"><img src="../images/callouts/1.png" alt="1" border="0"></a> </td>
+<td valign="top" align="left"><p>This variable controls the loop. It is declared without an
+initial value, immediately after the <tt><fake>let</fake></tt>
+operand.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left">
+<a href="#dl2"><img src="../images/callouts/2.png" alt="2" border="0"></a> </td>
+<td valign="top" align="left"><p>
+<a class="indexterm" name="id2781319"></a>
+
+Any number of additional local variables can be defined after
+the loop variable, just as they can in any other
+<tt><fake>let</fake></tt> expression.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left">
+<a href="#dl3"><img src="../images/callouts/3.png" alt="3" border="0"></a> </td>
+<td valign="top" align="left"><p>If you ever want the loop to end, you have to put some sort of a
+test in it.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left">
+<a href="#dl4"><img src="../images/callouts/4.png" alt="4" border="0"></a> </td>
+<td valign="top" align="left"><p>This is the value that will be returned.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left">
+<a href="#dl5"><img src="../images/callouts/5.png" alt="5" border="0"></a> </td>
+<td valign="top" align="left"><p>Note that you iterate the loop by using the loop variable as if
+it was a function name.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left">
+<a href="#dl6"><img src="../images/callouts/6.png" alt="6" border="0"></a> </td>
+<td valign="top" align="left"><p>The arguments to this function are the values that
+you want the local variables declared in <a href="#dl2"><img src="../images/callouts/2.png" alt="2" border="0"></a> to have
+in the next iteration.</p></td>
+</tr>
+</table></div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/chunk.html b/tests/docbook/result/html/chunk.html
new file mode 100644
index 00000000..1d7d5338
--- /dev/null
+++ b/tests/docbook/result/html/chunk.html
@@ -0,0 +1,130 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Bookinfo Test Document Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2671677">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2671677"></a>Bookinfo Test Document Title</h1></div>
+<div><h2 class="subtitle">Book Subtitle</h2></div>
+<div><h3 class="author">Norman Walsh</h3></div>
+<hr>
+</div>
+<div id="dedication" class="dedication">
+<div class="titlepage"><div><h2 class="title">
+<a name="dedication"></a>First Dedication</h2></div></div>
+<p>Just a test.</p>
+</div>
+<div id="id2691128" class="dedication">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2691128"></a>Dedication</h2></div></div>
+<p>Just a test.</p>
+</div>
+<div id="preface" class="preface">
+<div class="titlepage"><div><h2 class="title">
+<a name="preface"></a>Foreword</h2></div></div>
+<p>This is a test paragraph. (<a href="#chapter">chapter</a>)</p>
+</div>
+<div id="xreftest" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="xreftest"></a>
+<fake>Chapter 1.</fake> XRef Tests</h2></div></div>
+<p><a href="#dedication">Dedication</a></p>
+<p><a href="#preface">Preface</a></p>
+<p><a href="#chapter">Chapter</a></p>
+<p><a href="#appendix">Appendix</a></p>
+<div class="sect1">
+<a name="id2691373"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2691373"></a>
+<fake>First sect1</fake>
+</h2></div></div>
+<p>...</p>
+</div>
+<div class="sect1">
+<a name="id2691404"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2691404"></a>
+<fake>Second sect1</fake>
+</h2></div></div>
+<p>...</p>
+</div>
+</div>
+<div id="chapter" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="chapter"></a>
+<fake>Chapter 2.</fake> Second Chapter</h2></div></div>
+<p>This is a test paragraph.</p>
+</div>
+<div id="id2691438" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2691438"></a>
+<fake>Chapter 3.</fake> Third Chapter</h2></div></div>
+<p>This is a test paragraph.</p>
+</div>
+<div id="appendix" class="appendix">
+<div class="titlepage"><div><h2 class="title">
+<a name="appendix"></a>
+<fake>Appendix A.</fake> First Appendix</h2></div></div>
+<p>This is just a test.</p>
+<p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p>
+<p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p>
+<p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p>
+<p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p>
+<p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p>
+<p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p>
+<p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p>
+<p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p>
+<p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p>
+<p>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</p>
+</div>
+<div id="id2795357" class="appendix">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2795357"></a>
+<fake>Appendix B.</fake> Second Appendix</h2></div></div>
+<p>This is just a test.</p>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/classsynop.html b/tests/docbook/result/html/classsynop.html
new file mode 100644
index 00000000..4fb9fca6
--- /dev/null
+++ b/tests/docbook/result/html/classsynop.html
@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>
+<fake>Chapter 1.</fake> Class Synopses</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="id2670159" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2670159"></a>
+<fake>Chapter 1.</fake> Class Synopses</h2></div></div>
+<p>This example is Perl; it's the standard DirHandle module. I've
+cut out the code, so you'll have to trust me on the parameters.
+</p>
+<p>ProgramListing version:</p>
+<pre class="programlisting">
+package DirHandle;
+
+require 5.000;
+use Carp;
+use Symbol;
+
+sub new {
+}
+</pre>
+<p>ClassSynopsis version:</p>
+<pre class="classsynopsis">package <span class="ooclass"><span class="classname">DirHandle</span></span>;
+@ISA = (<span class="ooclass"><span class="classname">superclass1</span></span>, <span class="ooclass"><span class="classname">superclass2</span></span>);
+
+require 5.000;
+use Carp;
+use Symbol;
+
+<div class="constructorsynopsis">sub <span class="methodname">new</span> { ... };</div>
+<div class="destructorsynopsis">sub <span class="methodname">DESTROY</span> { ... };</div>
+</pre>
+<p>This example is IDL from the DOM spec.</p>
+<p>ProgramListing version:</p>
+<pre class="programlisting">
+interface Element : Node {
+ readonly attribute DOMString tagName;
+ DOMString getAttribute(in DOMString name);
+ void setAttribute(in DOMString name,
+ in DOMString value)
+ raises(DOMException);
+};
+</pre>
+<p>ClassSynopsis version:</p>
+<pre class="classsynopsis">interface <span class="ooclass"><span class="classname">Element</span></span>: <span class="ooclass"><span class="classname">Node</span></span> {
+
+<div class="fieldsynopsis">  <span class="modifier">readonly </span>
+<span class="modifier">attribute </span>
+<span class="type">DOMString </span>
+<span class="varname">tagName </span>;</div>
+<div class="methodsynopsis"> <span class="type">DOMString </span>
+<span class="methodname">getAttribute</span>(<span class="methodparam">
+<span class="modifier">in </span>
+<span class="type">DOMString </span>
+<span class="parameter">name</span>
+</span>);</div>
+<div class="methodsynopsis"> <span class="void">void </span>
+<span class="methodname">setAttribute</span>(<span class="methodparam">
+<span class="modifier">in </span>
+<span class="type">DOMString </span>
+<span class="parameter">name</span>
+</span>, <span class="methodparam">
+<span class="modifier">in </span>
+<span class="type">DOMString </span>
+<span class="parameter">value</span>
+</span>)
+    raises(<span class="exceptionname">DOMException</span>);</div>}</pre>
+<pre class="classsynopsis"> <span class="ooclass">
+<span class="modifier">public </span>
+<span class="classname">TextFileWriter</span>
+</span> extends <span class="ooclass"><span class="classname">Superclass1</span></span>, <span class="ooclass"><span class="classname">Superclass2</span></span>
+    implements <span class="oointerface"><span class="interfacename">Interface1</span></span>, <span class="oointerface"><span class="interfacename">Interface2</span></span>
+    throws <span class="ooexception"><span class="exceptionname">Exception1</span></span>, <span class="ooexception"><span class="exceptionname">Exception2</span></span> {
+
+<div class="fieldsynopsis">  <span class="modifier">private </span>
+<span class="type">Writer </span>
+<span class="varname">writer </span>;</div>
+<div class="fieldsynopsis">  <span class="modifier">public </span>
+<span class="type">String </span>
+<span class="varname">writerName </span>
+<span class="initializer">= &quot;MyWriter&quot;</span>;</div>
+<div class="methodsynopsis">
+<fake> <span>static </span>
+<span>public </span>
+<span>void </span>
+<span>write</span>
+</fake>(<span class="methodparam">
+<span class="type">ResultTreeFragment </span>
+<span class="parameter">frag</span>
+</span>,
+<span class="methodparam">
+<span class="type">String </span>
+<span class="parameter">file</span>
+</span>)
+    throws <span class="exceptionname">Exception1</span>, <span class="exceptionname">Exception2</span>;</div>}</pre>
+<pre class="programlisting">
+class Rectangle_with_data: virtual Shape, virtual Data_container
+{
+...
+};
+</pre>
+<p>ClassSynopsis version:</p>
+<pre class="classsynopsis">
+<span class="ooclass"><span class="classname">Rectangle_with_data</span></span>: <span class="ooclass">
+<span class="modifier">virtual </span>
+<span class="classname">Shape</span>
+</span>, <span class="ooclass">
+<span class="modifier">virtual </span>
+<span class="classname">Data_container</span>
+</span> {
+
+...}</pre>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/condition.html b/tests/docbook/result/html/condition.html
new file mode 100644
index 00000000..4ec9b8f3
--- /dev/null
+++ b/tests/docbook/result/html/condition.html
@@ -0,0 +1,3307 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Book Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="book"></a>Book Title</h1></div>
+<div><h3 class="corpauthor">Some Corporation</h3></div>
+<div><h3 class="author">Norman Walsh</h3></div>
+<div><p class="copyright">Copyright © 1998 by Norman Walsh</p></div>
+<div><div class="legalnotice">
+<p class="legalnotice-title"><b>Legal Notice</b></p>
+<p>This is a test document. You can do what you will with it.</p>
+</div></div>
+<div><div class="legalnotice"><p>This is a second legal notice. But it's not noteworthy.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ </p></div></div>
+<hr>
+</div>
+<div id="id2694925" class="dedication">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2694925"></a>Dedication</h2></div></div>
+<p>This test book is dedicated to all the testers. This is the first para
+of the dedication.</p>
+<p>This is the second para of the dedication.</p>
+<p>This is the third para of the dedication.</p>
+</div>
+<div id="id2694946" class="preface">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2694946"></a>Preface Title</h2></div></div>
+<p>Preface content.</p>
+<p>This is the second para of the preface.</p>
+<p>This is the third para of the preface.</p>
+</div>
+<div class="part" id="id2694971">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2694971"></a>Part One Title</h1></div>
+<div><div class="legalnotice"><p>Foo! A legal notice in a part!</p></div></div>
+</div>
+<div class="partintro">
+<div><div><h1 class="title">
+<a name="id2695001"></a>PartIntro Title</h1></div></div>
+<p>Partintro content<sup>[<a name="id2695015" href="#ftn.id2695015">1</a>]</sup>.</p>
+<div class="sect1">
+<a name="id2695026"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2695026"></a>
+<fake>PartIntro Section</fake>
+</h2></div></div>
+<p>PartIntros can actually have section content as well.</p>
+</div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt>1. <a href="#chapter">XRef Tests</a>
+</dt>
+<dt>2. <a href="#stchap">Section Tests</a>
+</dt>
+<fake><dd><fake><dl>
+<dt> <a>a sect1 title</a>
+</dt>
+<fake><dd><fake><dl><dt> <a>a sect2 title</a>
+</dt></dl></fake></dd></fake>
+<dt> <a>another sect1 title</a>
+</dt>
+<fake><dd><fake><dl><dt> <a>another sect2 title</a>
+</dt></dl></fake></dd></fake>
+<dt> <a>another sect1 title</a>
+</dt>
+<dt> <a>another sect1 title</a>
+</dt>
+</dl></fake></dd></fake>
+<dt>3. <a href="#id2690485">Inline Tests</a>
+</dt>
+<dt>4. <a href="#id2807664">Block Tests</a>
+</dt>
+<dt>5. <a href="#id2808688">List Tests</a>
+</dt>
+<dt>6. <a href="#id2810722">Table Tests</a>
+</dt>
+<dt>7. <a href="#id2814708">Index Term Tests</a>
+</dt>
+<fake><dd><fake><dl>
+<dt> <a>Index Term Sect 1</a>
+</dt>
+<fake><dd><fake><dl>
+<dt> <a>Index Term Sect 2</a>
+</dt>
+<dt> <a>Index Term Sect 3</a>
+</dt>
+</dl></fake></dd></fake>
+</dl></fake></dd></fake>
+</dl>
+</div>
+<div class="footnotes">
+<br>
+<hr width="100" align="left">
+<div class="footnote"><p>
+<sup>[<a name="ftn.id2695015" href="#id2695015">1</a>] </sup>This is a footnote in a partintro.</p></div>
+<div class="footnote"><p>
+<sup>[<a name="ftn.fn1" href="#fn1">2</a>] </sup>Like this!</p></div>
+<div class="footnote"><p>
+<sup>[<a name="ftn.id2690536" href="#id2690536">3</a>] </sup>Well, the marks are, anyway!</p></div>
+</div>
+</div>
+<div id="chapter" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="chapter"></a>
+<fake>Chapter 1.</fake> XRef Tests</h2></div></div>
+<h3>Xrefs</h3>
+<table class="simplelist" border="0" summary="Simple list">
+<tr><td><a href="#book"><i><fake>Book Title</fake></i></a></td></tr>
+<tr><td><a href="#part">Part II.</a></td></tr>
+<tr><td><a href="#chapter">Chapter 1., <i>XRef Tests</i></a></td></tr>
+<tr><td><a href="#appendix">Appendix A.</a></td></tr>
+<tr><td><a href="#table">Table 4.0.</a></td></tr>
+<tr><td><a href="#figure">Figure 4.0.</a></td></tr>
+<tr><td><a href="#example">Example 4.0.</a></td></tr>
+<tr><td><a href="#equation">Equation 4.0.</a></td></tr>
+<tr><td><a href="#reference">Reference I.</a></td></tr>
+<tr><td><a href="#bib1">&#x201C;A Test Bibliography&#x201D;</a></td></tr>
+<tr><td><a href="#gloss">&#x201C;Example Glossary&#x201D;</a></td></tr>
+<tr><td><a href="#index">&#x201C;Index&#x201D;</a></td></tr>
+</table>
+<p>This is the first reference to <i><fake>XML</fake></i>.
+This is the second reference to <fake>XML</fake>.
+These are references without <fake>linkend</fake>
+attributes: <i><fake>XML</fake></i>, <fake>XML</fake>.</p>
+<h3>Links</h3>
+<p>More <a href="http://www.jclark.com/dsssl/" target="_top">DSSSL information</a>
+is available.</p>
+<p>There is <a href="#part">a second part</a> in this book.</p>
+<p>This is the <a href="#chapter"></a>
+chapter.</p>
+</div>
+<div id="stchap" class="chapter">
+<div class="titlepage">
+<div><h2 class="title">
+<a name="stchap"></a>
+<fake>Chapter 2.</fake> Section Tests</h2></div>
+<div><h2 class="subtitle">Section Tests Subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<a class="indexterm" name="id2691959"></a>
+<a class="indexterm" name="id2691969"></a>
+
+<a class="indexterm" name="id2691980"></a>
+<a class="indexterm" name="id2691996"></a>
+
+<a class="indexterm" name="id2692006"></a>
+<a class="indexterm" name="id2692027"></a>
+
+<a class="indexterm" name="id2691425"></a>
+<a class="indexterm" name="id2691519"></a>
+<a class="indexterm" name="id2691583"></a>
+</p>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect1">
+<a name="secttest1"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="secttest1"></a>
+<fake>a sect1 title</fake>
+</h2></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<a class="indexterm" name="id2689609"></a>
+<a class="indexterm" name="id2689629"></a>
+<a class="indexterm" name="id2689645"></a>
+
+<a class="indexterm" name="id2689655"></a>
+<a class="indexterm" name="id2689671"></a>
+<a class="indexterm" name="id2689692"></a>
+
+<a class="indexterm" name="id2689702"></a>
+<a class="indexterm" name="id2689718"></a>
+<a class="indexterm" name="id2689734"></a>
+<a class="indexterm" name="id2689855"></a>
+<a class="indexterm" name="id2689876"></a>
+<a class="indexterm" name="id2689892"></a>
+</p>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect2">
+<a name="id2689940"></a>
+<div class="titlepage"><div><h3 class="title">
+<a name="id2689940"></a>
+<fake>a sect2 title</fake>
+</h3></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect3">
+<a name="id2689963"></a>
+<div class="titlepage"><div><h4 class="title">
+<a name="id2689963"></a>
+<fake>a sect3 title</fake>
+</h4></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<a class="indexterm" name="id2689987"></a>
+<a class="indexterm" name="id2690008"></a>
+<a class="indexterm" name="id2690029"></a>
+
+<a class="indexterm" name="id2690039"></a>
+<a class="indexterm" name="id2690050"></a>
+<a class="indexterm" name="id2690065"></a>
+<a class="indexterm" name="id2690086"></a>
+<a class="indexterm" name="id2690107"></a>
+<a class="indexterm" name="id2690128"></a>
+</p>
+<div class="sect4">
+<a name="id2690136"></a>
+<div class="titlepage"><div><h5 class="title">
+<a name="id2690136"></a>
+<fake>a sect4 title</fake>
+</h5></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect5">
+<a name="id2690158"></a>
+<div class="titlepage"><div><h6 class="title">
+<a name="id2690158"></a>
+<fake>a sect5 title</fake>
+</h6></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<a name="secttest2"></a>
+<div class="titlepage">
+<div><h2 class="title" style="clear: all">
+<a name="secttest2"></a>
+<fake>another sect1 title</fake>
+</h2></div>
+<div><h2 class="subtitle">a sect1 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<a class="indexterm" name="id2690223"></a>
+<a class="indexterm" name="id2690233"></a>
+<a class="indexterm" name="id2690254"></a>
+<a class="indexterm" name="id2690275"></a>
+</p>
+<div class="sect2">
+<a name="id2690283"></a>
+<div class="titlepage">
+<div><h3 class="title">
+<a name="id2690283"></a>
+<fake>another sect2 title</fake>
+</h3></div>
+<div><h2 class="subtitle">a sect2 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect3">
+<a name="id2690318"></a>
+<div class="titlepage">
+<div><h4 class="title">
+<a name="id2690318"></a>
+<fake>another sect3 title</fake>
+</h4></div>
+<div><h2 class="subtitle">a sect3 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect4">
+<a name="id2690354"></a>
+<div class="titlepage">
+<div><h5 class="title">
+<a name="id2690354"></a>
+<fake>another sect4 title</fake>
+</h5></div>
+<div><h2 class="subtitle">a sect4 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect5">
+<a name="id2690391"></a>
+<div class="titlepage">
+<div><h6 class="title">
+<a name="id2690391"></a>
+<fake>another sect5 title</fake>
+</h6></div>
+<div><h2 class="subtitle">a sect5 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<a name="secttest3"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="secttest3"></a>
+<fake>another sect1 title</fake>
+</h2></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+<div class="sect1">
+<a name="secttest4"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="secttest4"></a>
+<fake>another sect1 title</fake>
+</h2></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+</div>
+<div id="id2690485" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2690485"></a>
+<fake>Chapter 3.</fake> Inline Tests</h2></div></div>
+<div class="simplesect">
+<a name="id2690492"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2690492"></a>
+<fake>Testing &#x201C;<fake>Quotes</fake>&#x201D; in a title</fake>
+</h2></div></div>
+<p>Footnotes<sup>[<a name="fn1" href="#ftn.fn1">2</a>]</sup> are inlines.
+Sort of<sup>[<a name="id2690536" href="#ftn.id2690536">3</a>]</sup>.
+Another footnote<sup>[<a href="#ftn.fn1">2</a>]</sup>.</p>
+<table class="simplelist" border="0" summary="Simple list">
+<tr>
+<td><fake>Abbrev</fake></td>
+<td><fake>GUIIcon</fake></td>
+<td>
+<fake>SGMLTag</fake> (Attribute)</td>
+</tr>
+<tr>
+<td><fake>Acronym</fake></td>
+<td><fake>GUILabel</fake></td>
+<td>
+<tt><fake>SGMLTag</fake></tt> (AttValue)</td>
+</tr>
+<tr>
+<td><fake>Action</fake></td>
+<td><fake>GUIMenu</fake></td>
+<td>
+<tt><fake>SGMLTag</fake></tt> (Element)</td>
+</tr>
+<tr>
+<td><fake>Application</fake></td>
+<td><fake>GUISubMenu</fake></td>
+<td>
+<tt><fake>&lt;/SGMLTag&gt;</fake></tt> (EndTag)</td>
+</tr>
+<tr>
+<td>[<fake>Citation</fake>]</td>
+<td><fake>Hardware</fake></td>
+<td>
+<tt><fake>&amp;SGMLTag;</fake></tt> (GenEntity)</td>
+</tr>
+<tr>
+<td><fake>
+<fake>CiteRefEntry RefEntryTitle</fake>(n)</fake></td>
+<td><p><img src="emc2.gif"></p></td>
+<td>
+<tt><fake>&amp;#SGMLTag;</fake></tt> (NumCharRef)</td>
+</tr>
+<tr>
+<td><i><fake>Citetitle</fake></i></td>
+<td><fake>Interface</fake></td>
+<td>
+<tt><fake>%SGMLTag;</fake></tt> (ParamEntity)</td>
+</tr>
+<tr>
+<td><tt><fake>ClassName</fake></tt></td>
+<td><fake>InterfaceDefinition</fake></td>
+<td>
+<tt><fake>&lt;?SGMLTag&gt;</fake></tt> (PI)</td>
+</tr>
+<tr>
+<td><b><fake>Command</fake></b></td>
+<td><b><fake>KeyCap</fake></b></td>
+<td>
+<tt><fake>&lt;!--SGMLTag--&gt;</fake></tt> (SGMLComment)</td>
+</tr>
+<tr>
+<td>
+<i><fake>Comment</fake></i> (Comment)</td>
+<td><fake>KeyCode</fake></td>
+<td>
+<tt><fake>&lt;SGMLTag&gt;</fake></tt> (StartTag)</td>
+</tr>
+<tr>
+<td><tt><fake>ComputerOutput</fake></tt></td>
+<td>Key-Combo</td>
+<td><tt><fake>SGMLTag</fake></tt></td>
+</tr>
+<tr>
+<td><fake>Database</fake></td>
+<td><fake>KeySym</fake></td>
+<td><i><tt><fake>StructField</fake></tt></i></td>
+</tr>
+<tr>
+<td><fake>ErrorName</fake></td>
+<td><tt><fake>Literal</fake></tt></td>
+<td><fake>StructName</fake></td>
+</tr>
+<tr>
+<td><fake>ErrorType</fake></td>
+<td><fake>Markup</fake></td>
+<td><sub><fake>Subscript</fake></sub></td>
+</tr>
+<tr>
+<td><tt><fake>&lt;<a>Email</a>&gt;</fake></tt></td>
+<td><i><fake>MediaLabel</fake></i></td>
+<td><sup><fake>Superscript</fake></sup></td>
+</tr>
+<tr>
+<td><i><fake>Emphasis</fake></i></td>
+<td><fake>MouseButton</fake></td>
+<td><fake>Symbol</fake></td>
+</tr>
+<tr>
+<td><tt><fake>EnVar</fake></tt></td>
+<td><tt><fake>Option</fake></tt></td>
+<td><tt><fake>SystemItem</fake></tt></td>
+</tr>
+<tr>
+<td><fake>ErrorCode</fake></td>
+<td>[<fake>Optional</fake>]</td>
+<td><fake>Token</fake></td>
+</tr>
+<tr>
+<td><tt><fake>Filename</fake></tt></td>
+<td><i><tt><fake>Parameter</fake></tt></i></td>
+<td><fake>Trademark</fake></td>
+</tr>
+<tr>
+<td><i><fake>Firstterm</fake></i></td>
+<td><fake>Phrase</fake></td>
+<td><fake>Type</fake></td>
+</tr>
+<tr>
+<td><i><fake>ForeignPhrase</fake></i></td>
+<td><tt><fake>Prompt</fake></tt></td>
+<td><b><tt><fake>UserInput</fake></tt></b></td>
+</tr>
+<tr>
+<td><tt><fake>Function</fake></tt></td>
+<td><fake>Property</fake></td>
+<td><i><fake>WordAsWord</fake></i></td>
+</tr>
+<tr>
+<td><fake>GUIMenuItem</fake></td>
+<td>&#x201C;<fake>Quote</fake>&#x201D;</td>
+<td><fake>ProductName</fake></td>
+</tr>
+<tr>
+<td><fake>GUIButton</fake></td>
+<td><i><tt><fake>Replaceable</fake></tt></i></td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td><fake>GUI<fake>B</fake>utton (with Accel)</fake></td>
+<td><fake>ReturnValue</fake></td>
+<td>&nbsp;</td>
+</tr>
+</table>
+<p>And here are a couple of index terms, as another test (of
+index terms, not inlines).
+<a class="indexterm" name="id2807635"></a>
+<a class="indexterm" name="id2807651"></a>
+</p>
+</div>
+</div>
+<div id="id2807664" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2807664"></a>
+<fake>Chapter 4.</fake> Block Tests</h2></div></div>
+<div class="simplesect">
+<a name="id2807670"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2807670"></a>
+<fake>Formal Objects</fake>
+</h2></div></div>
+<h3>Example</h3>
+<div class="example">
+<p>
+<a name="example"></a>
+<b><fake>
+<fake>Example 4.0.</fake> An Example</fake></b>
+</p>
+<p>This is an example of a trivial example.</p>
+</div>
+<h3>Figure</h3>
+<div class="figure">
+<p>
+<a name="figure"></a>
+<b><fake>
+<fake>Figure 4.0.</fake> A Figure</fake></b>
+</p>
+<pre class="screen">This is an example of a trivial figure.</pre>
+</div>
+<h3>Equation</h3>
+<div class="equation">
+<p>
+<a name="equation"></a>
+<b><fake>
+<fake>Equation 4.0.</fake> An Equation</fake></b>
+</p>
+<p><img src="emc2.gif"></p>
+</div>
+<h3>Table</h3>
+<div class="table">
+<p>
+<a name="table"></a>
+<b><fake>
+<fake>Table 4.0.</fake> A Table</fake></b>
+</p>
+<table summary="A Table" border="1">
+<fake><colgroup><col></colgroup></fake>
+<tbody>
+<tr>
+<td>1</td>
+<td>1</td>
+</tr>
+<tr>
+<td>2</td>
+<td>4</td>
+</tr>
+<tr>
+<td>3</td>
+<td>9</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="simplesect">
+<a name="id2807879"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2807879"></a>
+<fake>Informal Objects</fake>
+</h2></div></div>
+<h3>InformalExample</h3>
+<div class="informalexample" id="iexample">
+<p>
+<a name="iexample"></a>
+<p>This is an example of a trivial, informal example.</p>
+<p>
+</div>
+<h3>InformalEquation</h3>
+<div class="informalequation" id="iequation">
+<p>
+<a name="iequation"></a>
+<p><img src="emc2.gif"></p>
+<p>
+</div>
+<h3>InformalTable</h3>
+<div class="informaltable" id="itable">
+<p>
+<a name="itable"></a>
+<table border="1">
+<fake><colgroup><col></colgroup></fake>
+<tbody>
+<tr>
+<td>1</td>
+<td>1</td>
+</tr>
+<tr>
+<td>2</td>
+<td>8</td>
+</tr>
+<tr>
+<td>3</td>
+<td>27</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+</div>
+<div class="simplesect">
+<a name="id2808023"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2808023"></a>
+<fake>Admonitions</fake>
+</h2></div></div>
+<h3>Note</h3>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2808029">Note</a></h3>
+<p>Consider yourself noted.</p>
+<p>Second para.</p>
+</div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2808053">Note</a></h3>
+<p>Consider yourself noted, simply.</p>
+</div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2808062">NoteTitle</a></h3>
+<p>Consider yourself noted.</p>
+<p>Second para, with a title.</p>
+</div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2808081">Att</a></h3>
+<p>Consider yourself noted, simply.</p>
+<p>With a title</p>
+</div>
+<h3>Important</h3>
+<div class="important" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2808100">Important</a></h3>
+<p>Consider yourself important.</p>
+</div>
+<h3>Tip</h3>
+<div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2808118">Tip</a></h3>
+<p>Consider yourself tipped.</p>
+</div>
+<h3>Warning</h3>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2808138">Warning</a></h3>
+<p>Consider yourself warned.</p>
+</div>
+<h3>Caution</h3>
+<div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2808157">Caution</a></h3>
+<p>Consider yourself cautioned.</p>
+</div>
+<h3>SimPara in Caution</h3>
+<div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2808176">Simple Caution</a></h3>
+<p>A simpler caution.</p>
+</div>
+</div>
+<div class="simplesect">
+<a name="id2808200"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2808200"></a>
+<fake>Other Objects</fake>
+</h2></div></div>
+<h3>Screen</h3>
+<pre class="screen">This
+ is <fake>With a line-annotation</fake>
+ a
+ screen
+ This
+ is <fake>With a line-annotation</fake>
+ a
+screen
+This
+ is <fake>With a line-annotation</fake>
+ a
+ screen</pre>
+<h3>ProgramListing</h3>
+<pre class="programlisting">This
+ is
+ a
+programlisting</pre>
+<h3>Address</h3>
+<div class="address">Norman Walsh<br>
+ArborText, Inc.<br>
+<fake>1000 Victors Way</fake>
+<br>
+<fake>Ann Arbor</fake>, <fake>MI</fake> <fake>48108</fake>
+<br>
+<fake>US</fake>
+<br>
+<br>
+Voice: <fake>313.997.0200</fake>
+<br>
+Fax: <fake>313.997.0201</fake>
+<br>
+<br>
+Email: <tt><fake>&lt;<a>nwalsh@arbortext.com</a>&gt;</fake></tt>
+<br>
+WWW: <fake>http://www.arbortext.com/</fake>
+</div>
+<h3>BlockQuote</h3>
+<blockquote class="blockquote"><p>The universe that we observe has precisely the properties we should
+expect if there is, at bottom, no design, no purpose, no evil and
+no good, nothing but pitiless indifference.&#x2014;Richard Dawkins</p></blockquote>
+<h3>Procedure</h3>
+<div class="procedure"><ol>
+<li><p>This is the first step</p></li>
+<li>
+<p>This is the second step</p>
+<ol>
+<li><p>This is the first substep</p></li>
+<li><p>This is the second substep</p></li>
+</ol>
+</li>
+<li><p>This is the third step</p></li>
+</ol></div>
+<h3>Procedure With Title</h3>
+<div class="procedure">
+<p><b>Same Procedure with a Title</b></p>
+<ol>
+<li><p>This is the first step</p></li>
+<li>
+<p>This is the second step</p>
+<ol>
+<li><p>This is the first substep</p></li>
+<li><p>This is the second substep</p></li>
+</ol>
+</li>
+<li><p>This is the third step</p></li>
+</ol>
+</div>
+<h3>SideBar</h3>
+<div class="sidebar">
+<a name="id2808510"></a>
+<p class="title"><b>What About Bob?</b></p>
+<p>This is a sidebar.</p>
+</div>
+<h3>MsgSet</h3>
+<p>It's not really clear how <tt><fake>MsgSet</fake></tt> should be presented.
+I expect that it's fairly application, if not document, specific.</p>
+<div class="msgentry">
+<a name="id2808562"></a>
+<div class="msg">
+<a name="id2808566"></a>
+<p>Record failed CRC</p>
+<p>Record <i><tt><fake>n</fake></tt></i>
+ in <i><tt><fake>database</fake></tt></i>
+</p>
+<p>File read error on
+ <i><tt><fake>database</fake></tt></i>
+</p>
+<p>Panic! Corrupt record!</p>
+</div>
+<div class="msginfo">
+<a name="id2808634"></a>
+<p>
+<b>Level: </b>severe</p>
+<p>
+<b>Origin: </b>server</p>
+<p>
+<b>Audience: </b>all</p>
+</div>
+<div class="msgexplan">
+<a name="id2808650"></a>
+<p> Indicates that some sort of error occured attempting to load
+ a record from the database. Retry. If failure persists,
+ contact the database administrator.
+ </p>
+</div>
+</div>
+<h3>LiteralLayout</h3>
+<div class="literallayout"><fake>This is a<br>
+literal<br>
+       layout</fake></div>
+<p><div class="literallayout"><fake>This is a<br>
+literal<br>
+       layout<br>
+  in a para</fake></div></p>
+</div>
+</div>
+<div id="id2808688" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2808688"></a>
+<fake>Chapter 5.</fake> List Tests</h2></div></div>
+<div class="simplesect">
+<a name="id2808694"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2808694"></a>
+<fake>OrderedLists</fake>
+</h2></div></div>
+<h3>Default Numeration</h3>
+<div class="orderedlist"><ol type="1">
+<li><p>
+<a name="id2808715"></a>One</p></li>
+<li>
+<a name="id2808723"></a>
+<pre class="programlisting">this one starts with
+a program listing
+what happens?</pre>
+</li>
+<li>
+<a name="id2808733"></a>
+<pre class="synopsis">this one starts with
+a synopsis
+what happens?</pre>
+</li>
+<li>
+<p>
+<a name="id2808742"></a>para first</p>
+<pre class="synopsis">this one has
+a synopsis
+what happens?</pre>
+</li>
+<li>
+<p>
+<a name="id2808755"></a>Three</p>
+<pre class="screen">A
+Screen
+Here</pre>
+</li>
+<li><p>
+<a name="id2808768"></a>Four</p></li>
+</ol></div>
+<h3>Arabic Numeration</h3>
+<div class="orderedlist"><ol type="1">
+<li><p>
+<a name="id2808793"></a>One</p></li>
+<li><p>
+<a name="id2808803"></a>Two</p></li>
+<li><p>
+<a name="id2808811"></a>Three</p></li>
+<li><p>
+<a name="id2808818"></a>Four</p></li>
+</ol></div>
+<h3>Arabic Numeration (Long)</h3>
+<div class="orderedlist"><ol type="1">
+<li><p>
+<a name="id2808844"></a>One</p></li>
+<li><p>
+<a name="id2808854"></a>Two</p></li>
+<li><p>
+<a name="id2808862"></a>Three</p></li>
+<li><p>
+<a name="id2808869"></a>Four</p></li>
+<li><p>
+<a name="id2808877"></a>Five</p></li>
+<li><p>
+<a name="id2808885"></a>Six</p></li>
+<li><p>
+<a name="id2808893"></a>Seven</p></li>
+<li><p>
+<a name="id2808901"></a>Eight</p></li>
+<li><p>
+<a name="id2808909"></a>Nine</p></li>
+<li><p>
+<a name="id2808916"></a>Ten</p></li>
+<li><p>
+<a name="id2808924"></a>Eleven</p></li>
+</ol></div>
+<h3>UpperAlpha Numeration</h3>
+<div class="orderedlist"><ol type="A">
+<li><p>
+<a name="id2808950"></a>One</p></li>
+<li><p>
+<a name="id2808960"></a>Two</p></li>
+<li><p>
+<a name="id2808967"></a>Three</p></li>
+<li><p>
+<a name="id2808975"></a>Four</p></li>
+</ol></div>
+<h3>LowerAlpha Numeration</h3>
+<div class="orderedlist"><ol type="a">
+<li><p>
+<a name="id2809001"></a>One</p></li>
+<li><p>
+<a name="id2809010"></a>Two</p></li>
+<li><p>
+<a name="id2809018"></a>Three</p></li>
+<li><p>
+<a name="id2809026"></a>Four</p></li>
+</ol></div>
+<h3>UpperRoman Numeration</h3>
+<div class="orderedlist"><ol type="I">
+<li><p>
+<a name="id2809052"></a>One</p></li>
+<li><p>
+<a name="id2809061"></a>Two</p></li>
+<li><p>
+<a name="id2809069"></a>Three</p></li>
+<li><p>
+<a name="id2809077"></a>Four</p></li>
+</ol></div>
+<h3>LowerRoman Numeration</h3>
+<div class="orderedlist"><ol type="i">
+<li><p>
+<a name="id2809103"></a>One</p></li>
+<li><p>
+<a name="id2809112"></a>Two</p></li>
+<li><p>
+<a name="id2809120"></a>Three</p></li>
+<li><p>
+<a name="id2809128"></a>Four</p></li>
+</ol></div>
+<h3>Continued</h3>
+<p>First list:
+<div class="orderedlist"><ol type="1">
+<li><p>
+<a name="id2809156"></a>One</p></li>
+<li><p>
+<a name="id2809164"></a>Two</p></li>
+<li><p>
+<a name="id2809171"></a>Three</p></li>
+<li><p>
+<a name="id2809179"></a>Four</p></li>
+</ol></div>
+</p>
+<p>Second list:
+<div class="orderedlist"><ol start="5" type="1">
+<li><p>
+<a name="id2809192"></a>Five</p></li>
+<li><p>
+<a name="id2809208"></a>Six</p></li>
+<li><p>
+<a name="id2809216"></a>Seven</p></li>
+<li><p>
+<a name="id2809224"></a>Eight</p></li>
+<li><p>
+<a name="id2809232"></a>Nine</p></li>
+<li><p>
+<a name="id2809240"></a>Ten</p></li>
+</ol></div>
+</p>
+</div>
+<div class="simplesect">
+<a name="id2809248"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2809248"></a>
+<fake>ItemizedLists</fake>
+</h2></div></div>
+<h3>Default Presentation</h3>
+<div class="itemizedlist"><ul>
+<li><p>
+<a name="id2809269"></a>One</p></li>
+<li>
+<a name="id2809276"></a>
+<pre class="programlisting">One-point-five. This one starts with
+a program listing
+what happens?</pre>
+</li>
+<li><p>
+<a name="id2809279"></a>Two</p></li>
+<li><p>
+<a name="id2809294"></a>Three</p></li>
+<li><p>
+<a name="id2809302"></a>Four</p></li>
+</ul></div>
+<h3>Block Elements in a List</h3>
+<div class="itemizedlist"><ul>
+<li>
+<p>
+<a name="id2809324"></a>One</p>
+<p>Another para.</p>
+</li>
+<li><p>
+<a name="id2809338"></a>Two</p></li>
+<li><p>
+<a name="id2809344"></a>Three</p></li>
+<li><p>
+<a name="id2809352"></a>Four</p></li>
+</ul></div>
+<h3>Alternate Mark and OverRide</h3>
+<div class="itemizedlist"><ul>
+<li><p>
+<a name="id2809374"></a>TeX and LaTeX</p></li>
+<li style="list-style-type: disc"><p>
+<a name="id2809392"></a>Troff</p></li>
+<li><p>
+<a name="id2809401"></a>Lout</p></li>
+<li style="list-style-type: none"><p>
+<a name="id2809414"></a>Test</p></li>
+</ul></div>
+<h3>No mark Presentation</h3>
+<div class="itemizedlist"><ul>
+<li style="list-style-type: none"><p>
+<a name="id2809446"></a>One</p></li>
+<li style="list-style-type: disc"><p>
+<a name="id2809459"></a>Two</p></li>
+<li><p>
+<a name="id2809467"></a>Three</p></li>
+<li><p>
+<a name="id2809474"></a>Four</p></li>
+</ul></div>
+</div>
+<div class="simplesect">
+<a name="id2809482"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2809482"></a>
+<fake>VariableLists</fake>
+</h2></div></div>
+<div class="variablelist"><dl>
+<dt>
+<a name="id2809494"></a>
+<span class="term">Term1</span>
+</dt>
+<dd><p>
+<a name="id2809502"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd>
+<dt>
+<a name="id2809517"></a>
+<span class="term">Term2</span>
+</dt>
+<dd><p>
+<a name="id2809523"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd>
+<dt>
+<a name="id2809538"></a>
+<span class="term">Term3</span>
+</dt>
+<dd>
+<p>
+<a name="id2809545"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<div class="itemizedlist"><ul>
+<li><p>
+<a name="id2809565"></a>One</p></li>
+<li><p>
+<a name="id2809572"></a>Two</p></li>
+<li><p>
+<a name="id2809578"></a>Three</p></li>
+<li><p>
+<a name="id2809586"></a>Four</p></li>
+</ul></div>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+</dd>
+<dt>
+<a name="id2809605"></a>
+<span class="term">Term4</span>
+</dt>
+<dd><p>
+<a name="id2809612"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd>
+</dl></div>
+<div class="variablelist"><dl>
+<dt>
+<a name="id2809629"></a>
+<span class="term">Another List</span>
+</dt>
+<dd><p>
+<a name="id2809636"></a>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p></dd>
+<dt>
+<a name="id2809652"></a>
+<span class="term">ProgramListing</span>
+</dt>
+<dd>
+<pre class="programlisting">A ProgramListing
+Is the First Element
+of this VarListEntry</pre>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+</dd>
+</dl></div>
+</div>
+<div class="simplesect">
+<a name="id2809679"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2809679"></a>
+<fake>SimpleLists</fake>
+</h2></div></div>
+<h3>Inline</h3>
+<p>An inline simple list:
+<span class="simplelist">One, Two, Three, Four, Five, Six, Seven</span>
+</p>
+<h3>Horiz</h3>
+<table class="simplelist" border="0" summary="Simple list">
+<tr>
+<td>One</td>
+<td>Two</td>
+<td>Three</td>
+</tr>
+<tr>
+<td>Four</td>
+<td>Five</td>
+<td>Six</td>
+</tr>
+<tr>
+<td>Seven</td>
+<td>&nbsp;</td>
+<td>&nbsp;</td>
+</tr>
+</table>
+<h3>Vert</h3>
+<table class="simplelist" border="0" summary="Simple list">
+<tr>
+<td>One</td>
+<td>Four</td>
+<td>Seven</td>
+</tr>
+<tr>
+<td>Two</td>
+<td>Five</td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>Three</td>
+<td>Six</td>
+<td>&nbsp;</td>
+</tr>
+</table>
+</div>
+<div class="simplesect">
+<a name="id2809865"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2809865"></a>
+<fake>More Complex List Item Content</fake>
+</h2></div></div>
+<div class="itemizedlist"><ul>
+<li>
+<p>
+<a name="id2809878"></a>One</p>
+<p>Second para</p>
+</li>
+<li>
+<p>
+<a name="id2809890"></a>Two</p>
+<p>Second para</p>
+</li>
+<li>
+<a name="id2809903"></a>
+<p>Three</p>
+<p>Second para</p>
+</li>
+<li>
+<p>
+<a name="id2809916"></a>Four</p>
+<p>Second para</p>
+</li>
+<li>
+<a name="id2809929"></a>
+<p>
+<b>Formal Element</b> Five</p>
+<p>Second para</p>
+</li>
+<li><p>
+<a name="id2809950"></a>Six</p></li>
+</ul></div>
+<div class="orderedlist"><ol type="1">
+<li>
+<p>
+<a name="id2809961"></a>One</p>
+<p>Second para</p>
+</li>
+<li>
+<p>
+<a name="id2809974"></a>Two</p>
+<p>Second para</p>
+</li>
+<li>
+<a name="id2809987"></a>
+<p>Three</p>
+<p>Second para</p>
+</li>
+<li>
+<p>
+<a name="id2810000"></a>Four</p>
+<p>Second para</p>
+</li>
+<li>
+<a name="id2810013"></a>
+<p>
+<b>Formal Element</b> Five</p>
+<p>Second para</p>
+</li>
+<li><p>
+<a name="id2810034"></a>Six</p></li>
+</ol></div>
+</div>
+<div class="simplesect">
+<a name="id2810042"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2810042"></a>
+<fake>Segmented List</fake>
+</h2></div></div>
+<p><b>State Birds</b></p>
+<p>
+<b>State: </b>Alabama</p>
+<p>
+<b>Bird: </b>Yellowhammer</p>
+<p>
+<b>State: </b>Alaska</p>
+<p>
+<b>Bird: </b>Willow Ptarmigan</p>
+<p>
+<b>State: </b>Arizona</p>
+<p>
+<b>Bird: </b>Cactus Wren</p>
+<p>
+<b>State: </b>Arkansas</p>
+<p>
+<b>Bird: </b>Mockingbird</p>
+<p>
+<b>State: </b>California</p>
+<p>
+<b>Bird: </b>California Valley Quail</p>
+<p>
+<b>State: </b>Colorado</p>
+<p>
+<b>Bird: </b>Lark Bunting</p>
+<p>
+<b>State: </b>Connecticut</p>
+<p>
+<b>Bird: </b>Robin</p>
+<p>
+<b>State: </b>Delaware</p>
+<p>
+<b>Bird: </b>Blue Hen Chicken</p>
+<p>
+<b>State: </b>Florida</p>
+<p>
+<b>Bird: </b>Mockingbird</p>
+<p>
+<b>State: </b>Georgia</p>
+<p>
+<b>Bird: </b>Brown Thrasher</p>
+<p>
+<b>State: </b>Hawaii</p>
+<p>
+<b>Bird: </b>Nene</p>
+<p>
+<b>State: </b>Idaho</p>
+<p>
+<b>Bird: </b>Mountain Bluebird</p>
+<p>
+<b>State: </b>Illinois</p>
+<p>
+<b>Bird: </b>Cardinal</p>
+<p>
+<b>State: </b>Indiana</p>
+<p>
+<b>Bird: </b>Cardinal</p>
+<p>
+<b>State: </b>Iowa</p>
+<p>
+<b>Bird: </b>Eastern Goldfinch</p>
+<p>
+<b>State: </b>Kansas</p>
+<p>
+<b>Bird: </b>Western Meadowlark</p>
+<p>
+<b>State: </b>Kentucky</p>
+<p>
+<b>Bird: </b>Cardinal</p>
+<p>
+<b>State: </b>Louisiana</p>
+<p>
+<b>Bird: </b>Eastern Brown Pelican</p>
+<p>
+<b>State: </b>Maine</p>
+<p>
+<b>Bird: </b>Chickadee</p>
+<p>
+<b>State: </b>Maryland</p>
+<p>
+<b>Bird: </b>Baltimore Oriole</p>
+<p>
+<b>State: </b>Massachusetts</p>
+<p>
+<b>Bird: </b>Chickadee</p>
+<p>
+<b>State: </b>Michigan</p>
+<p>
+<b>Bird: </b>Robin</p>
+<p>
+<b>State: </b>Minnesota</p>
+<p>
+<b>Bird: </b>Common Loon</p>
+<p>
+<b>State: </b>Mississippi</p>
+<p>
+<b>Bird: </b>Mockingbird</p>
+<p>
+<b>State: </b>Missouri</p>
+<p>
+<b>Bird: </b>Bluebird</p>
+<p>
+<b>State: </b>Montana</p>
+<p>
+<b>Bird: </b>Western Meadowlark</p>
+<p>
+<b>State: </b>Nebraska</p>
+<p>
+<b>Bird: </b>Western Meadowlark</p>
+<p>
+<b>State: </b>Nevada</p>
+<p>
+<b>Bird: </b>Mountain Bluebird</p>
+<p>
+<b>State: </b>New Hampshire</p>
+<p>
+<b>Bird: </b>Purple Finch</p>
+<p>
+<b>State: </b>New Jersey</p>
+<p>
+<b>Bird: </b>Eastern Goldfinch</p>
+<p>
+<b>State: </b>New Mexico</p>
+<p>
+<b>Bird: </b>Roadrunner</p>
+<p>
+<b>State: </b>New York</p>
+<p>
+<b>Bird: </b>Bluebird</p>
+<p>
+<b>State: </b>North Carolina</p>
+<p>
+<b>Bird: </b>Cardinal</p>
+<p>
+<b>State: </b>North Dakota</p>
+<p>
+<b>Bird: </b>Western Meadowlark</p>
+<p>
+<b>State: </b>Ohio</p>
+<p>
+<b>Bird: </b>Cardinal</p>
+<p>
+<b>State: </b>Oklahoma</p>
+<p>
+<b>Bird: </b>Scissor-tailed Flycatcher</p>
+<p>
+<b>State: </b>Oregon</p>
+<p>
+<b>Bird: </b>Western Meadowlark</p>
+<p>
+<b>State: </b>Pennsylvania</p>
+<p>
+<b>Bird: </b>Ruffed Grouse</p>
+<p>
+<b>State: </b>Rhode Island</p>
+<p>
+<b>Bird: </b>Rhode Island Red</p>
+<p>
+<b>State: </b>South Carolina</p>
+<p>
+<b>Bird: </b>Great Carolina Wren</p>
+<p>
+<b>State: </b>South Dakota</p>
+<p>
+<b>Bird: </b>Ring-necked Pheasant</p>
+<p>
+<b>State: </b>Tennessee</p>
+<p>
+<b>Bird: </b>Mockingbird</p>
+<p>
+<b>State: </b>Texas</p>
+<p>
+<b>Bird: </b>Mockingbird</p>
+<p>
+<b>State: </b>Utah</p>
+<p>
+<b>Bird: </b>American Seagull</p>
+<p>
+<b>State: </b>Vermont</p>
+<p>
+<b>Bird: </b>Hermit Thrush</p>
+<p>
+<b>State: </b>Virginia</p>
+<p>
+<b>Bird: </b>Cardinal </p>
+<p>
+<b>State: </b>Washington</p>
+<p>
+<b>Bird: </b>Willow Goldfinch</p>
+<p>
+<b>State: </b>West Virginia</p>
+<p>
+<b>Bird: </b>Cardinal</p>
+<p>
+<b>State: </b>Wisconsin</p>
+<p>
+<b>Bird: </b>Robin</p>
+<p>
+<b>State: </b>Wyoming</p>
+<p>
+<b>Bird: </b>Western Meadowlark</p>
+</div>
+</div>
+<div id="id2810722" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2810722"></a>
+<fake>Chapter 6.</fake> Table Tests</h2></div></div>
+<h3>Alternate Alignment on Entry</h3>
+<div class="informaltable" id="id2810746">
+<p>
+<a name="id2810746"></a>
+<table border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<thead><tr>
+<th>h1</th>
+<th>h2</th>
+<th>h3</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">left</td>
+<td align="center">center</td>
+<td>center</td>
+</tr>
+<tr>
+<td align="center">center</td>
+<td align="right">right</td>
+<td align="right">right</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+<div class="informaltable" id="id2810901">
+<p>
+<a name="id2810901"></a>
+<table border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<thead><tr>
+<th>h1</th>
+<th>h2</th>
+<th>h3</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left">left</td>
+<td align="center">center</td>
+<td>center</td>
+</tr>
+<tr>
+<td align="center">center</td>
+<td align="right">right</td>
+<td align="right">right</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+<div class="informaltable" id="id2811020">
+<p>
+<a name="id2811020"></a>
+<table border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<thead><tr>
+<th>h1</th>
+<th>h2</th>
+<th>h3</th>
+</tr></thead>
+<tbody>
+<tr>
+<td align="left"><i><fake>left emph</fake></i></td>
+<td align="center"><b><fake>center emph/bold</fake></b></td>
+<td><tt><fake>center literal</fake></tt></td>
+</tr>
+<tr>
+<td align="center"><tt><fake>center filename</fake></tt></td>
+<td align="right"><b><fake>right command</fake></b></td>
+<td align="right">right</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+<h3>Absolute Widths</h3>
+<div class="informaltable" id="id2811232">
+<p>
+<a name="id2811232"></a>
+<table border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<thead><tr>
+<th>h1</th>
+<th>h2</th>
+<th>h3</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>e1</td>
+<td>e2</td>
+<td>e3</td>
+</tr>
+<tr>
+<td>e1</td>
+<td>e2</td>
+<td>e3</td>
+</tr>
+<tr>
+<td>e1</td>
+<td>e2</td>
+<td>e3</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+<h3>Relative Widths</h3>
+<div class="informaltable" id="id2811387">
+<p>
+<a name="id2811387"></a>
+<table border="1">
+<fake><colgroup><col></colgroup></fake>
+<tbody>
+<tr>
+<td align="left"><p>left</p></td>
+<td align="center"><p>center</p></td>
+</tr>
+<tr>
+<td align="center"><p>center</p></td>
+<td align="right"><p>right</p></td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+<h3>Too many cells</h3>
+<p>This is a broken table. There are too many cells in the second row.
+YMMV. Don't do this.</p>
+<div class="informaltable" id="id2811509">
+<p>
+<a name="id2811509"></a>
+<table border="1">
+<fake><colgroup><col></colgroup></fake>
+<tbody>
+<tr>
+<td>1</td>
+<td>2</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+<h3>Missing Entrys</h3>
+<div class="table">
+<p>
+<a name="t1"></a>
+<b><fake>
+<fake>Table 6.0.</fake> Table Title</fake></b>
+</p>
+<table summary="Table Title" width="100%" border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<thead><tr>
+<th><p>head1</p></th>
+<th><p>head2</p></th>
+<th><p>head3</p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>a1</p></td>
+<td><p>a2</p></td>
+<td><p>a3</p></td>
+</tr>
+<tr>
+<td><p>b1</p></td>
+<td> </td>
+<td><p>b3</p></td>
+</tr>
+<tr>
+<td> </td>
+<td colspan="0"><p>c2</p></td>
+<td><p>c3</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<h3>Complex</h3>
+<div class="informaltable" id="id2811762">
+<p>
+<a name="id2811762"></a>
+<table width="100%" border="1">
+<fake><colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup></fake>
+<tbody>
+<tr>
+<td>A1</td>
+<td>A2</td>
+<td>A3</td>
+<td rowspan="2">A4</td>
+<td>A5</td>
+<td>A6</td>
+</tr>
+<tr>
+<td>B1</td>
+<td>B2</td>
+<td>B3</td>
+<td>B5</td>
+<td>B6</td>
+</tr>
+<tr>
+<td>C1</td>
+<td>C2</td>
+<td>C3</td>
+<td>C4</td>
+<td rowspan="3" colspan="2" valign="middle">C5</td>
+</tr>
+<tr>
+<td> </td>
+<td colspan="0">D2</td>
+<td>D3</td>
+<td>D4</td>
+</tr>
+<tr>
+<td>E1</td>
+<td colspan="2" align="left">E2</td>
+<td>E4</td>
+</tr>
+<tr>
+<td>F1</td>
+<td>F2</td>
+<td>F3</td>
+<td>F4</td>
+<td>F5</td>
+<td>F6</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+<h3>With Footnotes</h3>
+<div class="informaltable" id="id2812072">
+<p>
+<a name="id2812072"></a>
+<table border="1">
+<fake><colgroup><col></colgroup></fake>
+<tbody>
+<tr>
+<td>foo<sup>[<a name="fnrex1a" href="#ftn.fnrex1a"></a>]</sup>
+</td>
+<td>3<sup>[<a name="fnrex1b" href="#ftn.fnrex1b">a</a>]</sup>
+</td>
+</tr>
+<tr>
+<td>bar<sup>[<a href="#ftn.fnrex1a"></a>]</sup>
+</td>
+<td>5<sup>[<a href="#ftn.fnrex1b">a</a>]</sup>
+</td>
+</tr>
+</tbody>
+<tr><td colspan="">
+<div class="footnote"><p>
+<sup>[<a name="ftn.fnrex1a" href="#fnrex1a"></a>] </sup>A meaningless
+word</p></div>
+<div class="footnote"><p>
+<sup>[<a name="ftn.fnrex1b" href="#fnrex1b">a</a>] </sup>A meaningless
+number</p></div>
+</td></tr>
+</table>
+<p>
+</div>
+<h3>A Big One</h3>
+<div class="informaltable" id="id2812164">
+<p>
+<a name="id2812164"></a>
+<table border="1">
+<fake><colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup></fake>
+<thead><tr>
+<th>H1</th>
+<th>H2</th>
+<th>H3</th>
+<th>H4</th>
+<th>H5</th>
+<th>H6</th>
+<th>H7</th>
+<th>H8</th>
+<th>H9</th>
+<th>H10</th>
+<th>H11</th>
+<th>H12</th>
+<th>H13</th>
+<th>H14</th>
+<th>H15</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+<td>4</td>
+<td>5</td>
+<td>6</td>
+<td>7</td>
+<td>8</td>
+<td>9</td>
+<td>10</td>
+<td>11</td>
+<td>12</td>
+<td>13</td>
+<td>14</td>
+<td>15</td>
+</tr>
+</tbody>
+</table>
+<p>
+</div>
+</div>
+<div id="id2814708" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2814708"></a>
+<fake>Chapter 7.</fake> Index Term Tests</h2></div></div>
+<p>Test data.</p>
+<a class="indexterm" name="idx1"></a>
+<a class="indexterm" name="idx2"></a>
+<div class="sect1">
+<a name="id2814740"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2814740"></a>
+<fake>Index Term Sect 1</fake>
+</h2></div></div>
+<p>Test data.</p>
+<a class="indexterm" name="idx3"></a>
+<a class="indexterm" name="fred"></a>
+<a class="indexterm" name="idx5"></a>
+<a class="indexterm" name="idx6"></a>
+<a class="indexterm" name="idx7"></a>
+<a class="indexterm" name="idx8"></a>
+<a class="indexterm" name="idx9"></a>
+<a class="indexterm" name="id2814921"></a>
+<a class="indexterm" name="idx11"></a>
+<div class="sect2">
+<a name="id2814958"></a>
+<div class="titlepage"><div><h3 class="title">
+<a name="id2814958"></a>
+<fake>Index Term Sect 2</fake>
+</h3></div></div>
+<p>Test data.</p>
+<a class="indexterm" name="idx12"></a>
+<a class="indexterm" name="idx13"></a>
+<a class="indexterm" name="idx14"></a>
+<a class="indexterm" name="idx15"></a>
+</div>
+<div class="sect2">
+<a name="id2815054"></a>
+<div class="titlepage"><div><h3 class="title">
+<a name="id2815054"></a>
+<fake>Index Term Sect 3</fake>
+</h3></div></div>
+<p>foo</p>
+</div>
+</div>
+</div>
+</div>
+<div class="part" id="part">
+<div class="titlepage"><div><h1 class="title">
+<a name="part"></a>Part Two Title</h1></div></div>
+<div id="id2815082" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2815082"></a>
+<fake>Chapter 8.</fake> CmdSynopsis Tests</h2></div></div>
+<h3>Very Simple CmdSynopsis</h3>
+<div class="cmdsynopsis" id="id2815092">
+<a name="id2815092"></a>
+<tt><fake>cd</fake></tt> {<i><tt><fake>directory</fake></tt></i>}</div>
+<h3>Simple CmdSynopsis</h3>
+<div class="cmdsynopsis" id="id2815123">
+<a name="id2815123"></a>
+<tt><fake>cal</fake></tt> [-j] [-y] [month [year]]</div>
+<h3>Another Simple CmdSynopsis</h3>
+<div class="cmdsynopsis" id="id2815163">
+<a name="id2815163"></a>
+<tt><fake>chgrp</fake></tt> [-R
+ [-H | -L | -P]
+ ] [-f] <i><tt><fake>group</fake></tt></i> <i><tt><fake>file</fake></tt></i>... </div>
+<h3>Slightly Complex CmdSynopsis</h3>
+<div class="cmdsynopsis" id="id2815228">
+<a name="id2815228"></a>
+<tt><fake>emacs</fake></tt> [-t <i><tt><fake>file</fake></tt></i>] [-q] [-u <i><tt><fake>user</fake></tt></i>] [+<i><tt><fake>number</fake></tt></i>] [-f <i><tt><fake>function</fake></tt></i>...] [-l <i><tt><fake>file</fake></tt></i>...] <i><tt><fake>file</fake></tt></i>... </div>
+<h3>Quite Complex CmdSynopsis</h3>
+<div class="cmdsynopsis" id="id2815332">
+<a name="id2815332"></a>
+<tt><fake>cccp</fake></tt> [-$] [-C] [-D<i><tt><fake>name</fake></tt></i> [=<i><tt><fake>definition</fake></tt></i>]...] [-dD] [-dM] [-I <i><tt><fake>directory</fake></tt></i>...] [-H] [-I-]<br> [-imacros <i><tt><fake>file</fake></tt></i>...] [-include <i><tt><fake>file</fake></tt></i>...] [-lang-c | -lang-c++ | -lang-objc] [-lint]<br> [-M | -MD | -MM | -MMD] [-nostdinc] [-P] [-pedantic] [-pedantic-errors] [-trigraphs] [-U<i><tt><fake>name</fake></tt></i>]<br> [-undef] [-Wtrigraphs] [-Wcomment] [-Wall] [-Wtraditional] {<i><tt><fake>infile</fake></tt></i> | -} {<i><tt><fake>outfile</fake></tt></i> | -}</div>
+</div>
+<div id="id2815622" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2815622"></a>
+<fake>Chapter 9.</fake> FuncSynopsis Tests</h2></div></div>
+<h3>Two Simple Parameters</h3>
+<div class="funcsynopsis" id="id2815633">
+<p>
+<a name="id2815633"></a>
+<p><code>
+<code class="funcdef">int <b class="fsfunc">max</b>
+</code>(<var class="pdparam">int1</var>, <var class="pdparam">int2</var>);<br>int <var class="pdparam">int1</var>;<br>int <var class="pdparam">int2</var>;</code></p>
+<p>
+</div>
+<h3>Variable Arguments</h3>
+<div class="funcsynopsis" id="id2815680">
+<p>
+<a name="id2815680"></a>
+<pre class="funcsynopsisinfo">#include &lt;varargs.h&gt;</pre>
+<p><code>
+<code class="funcdef">int <b class="fsfunc">max</b>
+</code>(...);</code></p>
+<p>
+</div>
+<h3>Void</h3>
+<div class="funcsynopsis" id="id2815727">
+<p>
+<a name="id2815727"></a>
+<p><code>
+<code class="funcdef">int <b class="fsfunc">rand</b>
+</code>();</code></p>
+<p>
+</div>
+<h3>Function Pointer Arguments</h3>
+<div class="funcsynopsis" id="id2815762">
+<p>
+<a name="id2815762"></a>
+<p><code>
+<code class="funcdef">void <b class="fsfunc">qsort</b>
+</code>(<var class="pdparam">dataptr</var>, <var class="pdparam">left</var>, <var class="pdparam">right</var>, <var class="pdparam">(* comp)</var>);<br>void *<var class="pdparam">dataptr</var>[];<br>int <var class="pdparam">left</var>;<br>int <var class="pdparam">right</var>;<br>int <var class="pdparam">(* comp)</var>
+ (void *, void *);</code></p>
+<p>
+</div>
+</div>
+<div id="id2815823" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2815823"></a>
+<fake>Chapter 10.</fake> Callout Tests</h2></div></div>
+<h3>CallOut (using AREASPEC)</h3>
+<div class="programlistingco">
+<pre class="programlisting">@rem = '--*-Perl-*--
+@echo off
+perl.exe %_batchname %$
+goto endofperl
+@rem ';
+
+# Compress mail...
+
+require 'n:/home/nwalsh/lib/cygnus.pl';
+require 'timelocal.pl';
+use Cwd;
+
+select (STDERR); $| = 1;
+select (STDOUT); $| = 1;
+
+@DIRS = (&quot;/home/nwalsh/Mail&quot;);
+while (@DIRS) {
+ $dir = shift @DIRS;
+ opendir (DIR, $dir);
+ while ($fname = readdir(DIR)) {
+ $file = &quot;$dir/$fname&quot;;
+ next if ! -d $file;
+ next if $fname =~ /^\.\.?$/;
+
+ print &quot;$file\n&quot;;
+ push (@DIRS, $file);
+ &amp;compress ($file);
+ }
+}
+
+exit;</pre>
+<div class="calloutlist"><table border="0" summary="Callout list">
+<tr>
+<td width="5%" valign="top" align="left"><img src="../images/callouts/1.png" alt="1" border="0"></td>
+<td valign="top" align="left"><p>The prologue handles embedding a Perl script in a DOS batch file.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><img src="../images/callouts/2.png" alt="2" border="0"></td>
+<td valign="top" align="left"><p>The <tt><fake>goto</fake></tt> statement, interpreted by the DOS batch
+file interpreter, skips over the body of the Perl script.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><img src="../images/callouts/3.png" alt="3" border="0"></td>
+<td valign="top" align="left"><p>The <tt><fake>require</fake></tt> statement sources in external program
+fragments.</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><img src="../images/callouts/4.png" alt="4" border="0"></td>
+<td valign="top" align="left"><p>The <tt><fake>use</fake></tt> statement is similar, but has additional
+utility. It is a Perl5 function. (Note that this callout area specifies
+both a line and a column.)</p></td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left"><img src="../images/callouts/5.png" alt="5" border="0"></td>
+<td valign="top" align="left"><p>This is a user subroutine call.</p></td>
+</tr>
+</table></div>
+</div>
+<h3>CallOut (using CO)</h3>
+<pre class="programlisting">this is a line
+this is another line
+there's a <a name="callout1"></a>
+<img src="../images/callouts/1.png" alt="1" border="0">callout in here.
+and there's another on the
+next line
+right here:<a name="callout2"></a>
+<img src="../images/callouts/2.png" alt="2" border="0">
+</pre>
+<div class="calloutlist"><table border="0" summary="Callout list">
+<tr>
+<td width="5%" valign="top" align="left">
+<a href="#callout1"><img src="../images/callouts/1.png" alt="1" border="0"></a> </td>
+<td valign="top" align="left">
+<p>First callout.</p>
+<p>Second para in first callout.</p>
+</td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left">
+<a href="#callout2"><img src="../images/callouts/2.png" alt="2" border="0"></a> </td>
+<td valign="top" align="left">
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Second callout.</p>
+<p>Third para in second callout.</p>
+</td>
+</tr>
+<tr>
+<td width="5%" valign="top" align="left">
+<a href="#callout1"><img src="../images/callouts/1.png" alt="1" border="0"></a> <a href="#callout2"><img src="../images/callouts/2.png" alt="2" border="0"></a> </td>
+<td valign="top" align="left"><p>This paragraph describes <i><fake>both</fake></i> callouts.</p></td>
+</tr>
+</table></div>
+</div>
+</div>
+<div class="part" id="id2816202">
+<div class="titlepage"><div><h1 class="title">
+<a name="id2816202"></a>A Reference Part</h1></div></div>
+<div class="reference">
+<a name="reference"></a>
+<div class="titlepage">
+<div><h1 class="title">
+<a name="reference"></a>Reference</h1></div>
+<hr>
+</div>
+<div class="refentry">
+<h1 class="title">
+<a name="id2816226"></a>
+<fake>RefEntryTitle</fake>
+</h1>
+<div class="refnamediv">
+<a name="id2816239"></a>
+<h2>Name</h2>RefName1, RefName2 &#x2014; Yes, there must be a purpose!</div>
+<div class="refsynopsisdiv">
+<a name="id2816264"></a>
+<h2>Synopsis</h2>
+<pre class="synopsis"> A
+ Synopsis
+ Goes
+ Here</pre>
+</div>
+<div class="refsect1">
+<a name="id2816272"></a>
+<h2>
+<a name="id2816272"></a>A RefSect1</h2>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<div class="refsect2">
+<a name="id2816290"></a>
+<h3>
+<a name="id2816290"></a>A RefSect2</h3>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<div class="refsect3">
+<a name="id2816310"></a>
+<h4>
+<a name="id2816310"></a>A RefSect3</h4>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah.<sup>[<a name="id2816328" href="#ftn.id2816328">6</a>]</sup>
+Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+</div>
+</div>
+</div>
+<div class="footnotes">
+<br>
+<hr width="100" align="left">
+<div class="footnote"><p>
+<sup>[<a name="ftn.id2816328" href="#id2816328">6</a>] </sup>This is a footnote in a refentry.</p></div>
+</div>
+</div>
+<div class="refentry">
+<h1 class="title">
+<a name="id2816343"></a>
+<fake><tt><fake>Chop</fake></tt></fake>
+</h1>
+<div class="refnamediv">
+<a name="id2816344"></a>
+<h2>Name</h2>
+<tt><fake>Chop</fake></tt> &#x2014; strip trailing whitespace</div>
+<div class="refsect1">
+<a name="id2816358"></a>
+<h2>
+<a name="id2816358"></a>Description</h2>
+<p> Returns the argument string without trailing whitespace.
+ <div class="example">
+<p>
+<a name="id2816373"></a>
+<b><fake>
+<fake>Example 2.</fake> chop() example</fake></b>
+</p>
+<pre class="programlisting">$trimmed = Chop($line);</pre>
+</div>
+ </p>
+</div>
+</div>
+</div>
+</div>
+<div id="appendix" class="appendix">
+<div class="titlepage"><div><h2 class="title">
+<a name="appendix"></a>
+<fake>Appendix A.</fake> A Very Short Appendix</h2></div></div>
+<p>Blah.</p>
+</div>
+<div id="id2816408" class="appendix">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2816408"></a>
+<fake>Appendix B.</fake> A Very Long Appendix</h2></div></div>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<p>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</p>
+<div class="sect1">
+<a name="id2816926"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2816926"></a>
+<fake>a sect1 title</fake>
+</h2></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect2">
+<a name="id2816949"></a>
+<div class="titlepage"><div><h3 class="title">
+<a name="id2816949"></a>
+<fake>a sect2 title</fake>
+</h3></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect3">
+<a name="id2816972"></a>
+<div class="titlepage"><div><h4 class="title">
+<a name="id2816972"></a>
+<fake>a sect3 title</fake>
+</h4></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect4">
+<a name="id2816994"></a>
+<div class="titlepage"><div><h5 class="title">
+<a name="id2816994"></a>
+<fake>a sect4 title</fake>
+</h5></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect5">
+<a name="id2817017"></a>
+<div class="titlepage"><div><h6 class="title">
+<a name="id2817017"></a>
+<fake>a sect5 title</fake>
+</h6></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<a name="id2817040"></a>
+<div class="titlepage">
+<div><h2 class="title" style="clear: all">
+<a name="id2817040"></a>
+<fake>another sect1 title</fake>
+</h2></div>
+<div><h2 class="subtitle">a sect1 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect2">
+<a name="id2817072"></a>
+<div class="titlepage">
+<div><h3 class="title">
+<a name="id2817072"></a>
+<fake>another sect2 title</fake>
+</h3></div>
+<div><h2 class="subtitle">a sect2 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect3">
+<a name="id2817108"></a>
+<div class="titlepage">
+<div><h4 class="title">
+<a name="id2817108"></a>
+<fake>another sect3 title</fake>
+</h4></div>
+<div><h2 class="subtitle">a sect3 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect4">
+<a name="id2817144"></a>
+<div class="titlepage">
+<div><h5 class="title">
+<a name="id2817144"></a>
+<fake>another sect4 title</fake>
+</h5></div>
+<div><h2 class="subtitle">a sect4 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+<div class="sect5">
+<a name="id2817180"></a>
+<div class="titlepage">
+<div><h6 class="title">
+<a name="id2817180"></a>
+<fake>another sect5 title</fake>
+</h6></div>
+<div><h2 class="subtitle">a sect5 subtitle</h2></div>
+</div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<a name="id2817216"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2817216"></a>
+<fake>another sect1 title</fake>
+</h2></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+<div class="sect1">
+<a name="id2817235"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2817235"></a>
+<fake>another sect1 title</fake>
+</h2></div></div>
+<p>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </p>
+</div>
+</div>
+<div class="bibliography">
+<h2 class="title"><a name="bib1">A Test Bibliography</a></h2>
+<p>The stock stylesheet attempts to do a Bibliography. It probably needs
+a lot of tweaking. It probably doesn't conform to any specific style.</p>
+<div class="bibliodiv">
+<h3 class="title"><a name="id2817280">Books</a></h3>
+<div id="id2817289" class="biblioentry">
+<a name="id2817289"></a>
+<p>
+<span class="abbrev">[AhoSethiUllman96] </span>
+<span class="authorgroup">Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. </span>
+<span class="title">
+<I>Compilers, Principles, Techniques, and Tools</I>. </span>
+<span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span>
+<span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span>
+<span class="isbn">0-201-10088-6. </span>
+<span class="editor">James T. DeWolf. </span>
+<span class="seriesinfo">
+<span class="title">
+<I>Computer Science</I>. </span>
+<span class="editor">Michael A. Harrison. </span>
+<span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span>
+</span>
+</p>
+</div>
+</div>
+<div class="bibliodiv">
+<h3 class="title"><a name="id2817425">Periodicals</a></h3>
+<div id="walsh97" class="biblioentry">
+<a name="walsh97"></a>
+<p>
+<span class="abbrev">[Walsh97] </span>
+<span class="biblioset">&#x201C;A Guide to XML&#x201D;. <span class="author">Norman Walsh. </span>
+<span class="pubdate">1997. </span>
+<span class="copyright">Copyright © 1997 ArborText, Inc.. </span>
+<span class="pagenums">97-108. </span>
+</span>
+<span class="biblioset">
+<I>XML: Principles, Tools, and Techniques</I>. <span class="publisher"><span class="publishername">O'Reilly &amp; Associates, Inc.. </span></span>
+<span class="issn">1085-2301. </span>
+<span class="editor">Dan Connolly. </span>
+</span>
+</p>
+</div>
+<div id="walsh96" class="bibliomixed">
+<a name="walsh96"></a>
+<p> <span class="bibliomset"> <span class="surname">Walsh</span>, <span class="firstname">Norman</span>.
+ &#x201C;Introduction to Cascading Style Sheets&#x201D;.
+ </span>
+ <span class="bibliomset"> <I>The World Wide Web Journal</I>.
+ <span class="volumenum">2</span>(<span class="issuenum">1</span>).
+ <span class="publishername">O'Reilly &amp; Associates, Inc.</span> and
+ <span class="corpname">The World Wide Web Consortium</span>.
+ <span class="pubdate">Winter, 1996</span>
+</span>.</p>
+</div>
+<div id="id2817656" class="biblioentry">
+<a name="id2817656"></a>
+<p>
+<span class="abbrev">[Abbrev] </span>
+<span class="title">
+<I>A Really Full BiblioEntry</I>. </span>
+<span class="subtitle">Subtitle. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>
+<span class="affiliation">
+<span class="shortaffil">shortaffil. </span>
+<span class="jobtitle">jobtitle. </span>
+<span class="orgname">orgname. </span>
+<span class="orgdiv">orgdiv. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>
+<span class="artpagenums">ArtPageNums. </span>
+<span class="author">AuthorFirstname AuthorSurname. </span>
+<span class="authorinitials">AuthorInitials. </span>
+<span class="collab">
+<span class="collabname">The names of some collaborators. </span>
+<span class="affiliation">
+<span class="shortaffil">shortaffil. </span>
+<span class="jobtitle">jobtitle. </span>
+<span class="orgname">orgname. </span>
+<span class="orgdiv">orgdiv. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>. </span>. </span>
+<span class="confgroup">
+<span class="confdates">confdates. </span>
+<span class="conftitle">conftitle. </span>
+<span class="confnum">confnum. </span>
+<span class="address">Any Street
+Anywhere, XX 99999
+USA. </span>
+<span class="confsponsor">confsponsor. </span>. </span>
+<span class="contractnum">ContractNum. </span>
+<span class="contractsponsor">ContractSponsor. </span>
+<span class="contrib">Contrib. </span>
+<span class="copyright">Copyright © 1998 Copyright holder. </span>
+<span class="corpname">CorpName. </span>
+<span class="date">Date. </span>
+<span class="edition">Edition. </span>
+<span class="editor">EditorFirstName EditorSurname. </span>
+<span class="firstname">FirstName. </span>
+<span class="honorific">Honorific. </span>
+<span class="isbn">ISBN. </span>
+<span class="issn">ISSN. </span>
+<span class="invpartnumber">InvPartNumber. </span>
+<span class="issuenum">IssueNum. </span>
+<span class="lineage">Lineage. </span>
+<span class="orgname">OrgName. </span>
+<span class="othercredit">
+<span class="firstname">OCFirstName. </span>
+<span class="surname">OCSurname. </span>. </span>
+<span class="othername">OtherName. </span>
+<span class="pagenums">PageNums. </span>
+<span class="productname">ProductName. </span>
+<span class="productnumber">ProductNumber. </span>
+<span class="pubdate">PubDate. </span>
+<span class="publisher">
+<span class="publishername">PubPublisherName. </span>
+<span class="address">
+<fake>Any Street</fake>
+<fake>Anywhere</fake>, <fake>XX</fake> <fake>99999</fake>
+<fake>USA</fake>. </span>
+</span>
+<span class="publishername">PublisherName. </span>
+<span class="pubsnumber">PubsNumber. </span>
+<span class="releaseinfo">ReleaseInfo. </span>
+<span class="revhistory">
+<tr>
+<td align="left">Revision 1.0</td>
+<td align="left">20 Nov 1998</td>
+<td align="left">ndw</td>
+</tr>
+<tr><td align="left" colspan="3">Some remark about the revision</td></tr>
+<tr>
+<td align="left">Revision 0.9</td>
+<td align="left">19 Nov 1998</td>
+<td align="left">ndw</td>
+</tr>
+<tr><td align="left" colspan="3">Some remark about the revision</td></tr>
+<tr>
+<td align="left">Revision 0.4</td>
+<td align="left">18 Nov 1998</td>
+<td align="left">ndw</td>
+</tr>
+<tr><td align="left" colspan="3">Some remark about the revision</td></tr>. </span>
+<span class="seriesinfo">
+<span class="title">
+<I>SeriesInfo Title</I>. </span>
+<span class="editor">SeriesInfo Editor Firstname SeriesInfo Editor Surname. </span>
+</span>
+<span class="seriesvolnums">SeriesVolNums. </span>
+<span class="surname">Surname. </span>
+<span class="titleabbrev">TitleAbbrev. </span>
+<span class="volumenum">VolumeNum. </span>
+</p>
+</div>
+</div>
+</div>
+<div class="glossary">
+<h2>Example Glossary</h2>
+<dl>
+<p>This is not a real glossary, it's just an example.</p>
+<div class="glossdiv">
+<h3 class="title">E</h3>
+<dt><a name="xml">Extensible Markup Language</a></dt>
+<dd>
+<p>Some reasonable definition here.</p>
+<p>See Also <a href="#sgml">Standard Generalized
+ Markup Language</a>.</p>
+</dd>
+</div>
+<div class="glossdiv">
+<h3 class="title">S</h3>
+<dt><a name="id2818261">SGML</a></dt>
+<dd><p>See <a href="#sgml">Standard Generalized
+ Markup Language</a>.</p></dd>
+<dt><a name="sgml">Standard Generalized
+ Markup Language</a></dt>
+<dd>
+<p>Some reasonable definition here.</p>
+<p>See Also <a href="#xml">Extensible Markup Language</a>.</p>
+</dd>
+</div>
+</dl>
+</div>
+<div class="index">
+<h2 class="title"><a name="index">Index</a></h2>
+<p>This is a test index.</p>
+<p>
+<b>a formal para</b> this is a formal paragraph.</p>
+<dt>Primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dt>primary</dt>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+<dt>primary</dt>
+<dd><dl></dl></dd>
+</div>
+<div class="index">
+<h2 class="title"><a name="id2818550">An Index with a Title</a></h2>
+<div class="indexdiv">Symbols<dl>
+<dt>!,
+ <a href="c3.htm#aen10" target="_top">Index Term Sect 1</a>
+ </dt>
+<dt>[,
+ <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+ </dt>
+</dl>
+</div>
+<div class="indexdiv">A<dl><dt>sect2-level,
+ <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+ </dt></dl>
+</div>
+<div class="indexdiv">C<dl>
+<dt>chap-level,
+ <a href="c3.htm" target="_top">Index Term Tests</a>
+ </dt>
+<dd><dl></dl></dd>
+</dl>
+</div>
+<div class="indexdiv">O<dl>
+<dt>oft-repeated,
+ <a href="c3.htm" target="_top">Index Term Tests</a>,
+ <a href="c3.htm#aen38" target="_top">Index Term Sect 2</a>
+ </dt>
+<dd><dl></dl></dd>
+</dl>
+</div>
+<div class="indexdiv">S<dl>
+<dt>sect1-level,
+ <a href="c3.htm#aen10" target="_top"><i><fake>Index Term Sect 1</fake></i></a>
+ </dt>
+<dd><dl></dl></dd>
+<dt>sect1-other
+ </dt>
+<dd><dl></dl></dd>
+</dl>
+</div>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/docbook40.html b/tests/docbook/result/html/docbook40.html
new file mode 100644
index 00000000..0c4949e9
--- /dev/null
+++ b/tests/docbook/result/html/docbook40.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>DocBook V4.0 Example Document</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2670159">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2670159"></a>DocBook V4.0 Example Document</h1></div>
+<div><h3 class="author">Norman Walsh</h3></div>
+<div><div class="abstract">
+<p>
+<a name="id2781641"></a>
+<b><fake>Abstract</fake></b>
+</p>
+<p>This document demonstrates the new tags in DocBook V4.0.</p>
+<p>The focus of this document is to present examples of new elements,
+minor changes such as the addition of new attribute values are not
+included.</p>
+</div></div>
+<hr>
+</div>
+<div id="id2781658" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2781658"></a>
+<fake>Chapter 1.</fake> Block-level Markup</h2></div></div>
+<p>There's a new simple-alternative for <tt><fake>msgentry</fake></tt>:
+<tt><fake>simplemsgentry</fake></tt>.</p>
+<div class="simplemsgentry">
+<a name="id2781688"></a>
+<p>The text of a message</p>
+<div class="msgexplan">
+<a name="id2781700"></a>
+<p>An explanation of the message.</p>
+</div>
+</div>
+<div class="simplemsgentry">
+<a name="id2781709"></a>
+<p>The text of a message</p>
+<div class="msgexplan">
+<a name="id2781719"></a>
+<p>An explanation of the message.</p>
+</div>
+</div>
+<p>Longer descriptions are possible in a <tt><fake>revhistory</fake></tt>:
+</p>
+<p>
+<div class="revhistory"><table border="0" width="100%" summary="Revision history">
+<tr><th align="left" valign="top" colspan="3"><b>Revision History</b></th></tr>
+<tr>
+<td align="left">Revision 2</td>
+<td align="left">today</td>
+<td align="left">nwalsh</td>
+</tr>
+<tr>
+<td align="left">Revision 1</td>
+<td align="left">yesterday</td>
+<td align="left">nwalsh</td>
+</tr>
+</table></div>
+</p>
+<p>Ordered and itemized lists can have titles:</p>
+<div class="itemizedlist">
+<p><b>Itemized List</b></p>
+<ul>
+<li><p>
+<a name="id2690979"></a>First thing</p></li>
+<li><p>
+<a name="id2690987"></a>Second thing</p></li>
+<li><p>
+<a name="id2690996"></a>Third thing</p></li>
+</ul>
+</div>
+<div class="itemizedlist">
+<p><b>Ordered List</b></p>
+<ul>
+<li><p>
+<a name="id2691011"></a>First thing</p></li>
+<li><p>
+<a name="id2691019"></a>Second thing</p></li>
+<li><p>
+<a name="id2691028"></a>Third thing</p></li>
+</ul>
+</div>
+<p>Linespecific environments can indicate line numbering:</p>
+<pre class="programlisting">
+&lt;!ENTITY % linespecific.attrib
+ &quot;format NOTATION
+ (linespecific) 'linespecific'
+ linenumbering (numbered|unnumbered) #IMPLIED&quot;&gt;
+</pre>
+<p>Added <tt><fake>classsynopsis</fake></tt> for documenting
+object-oriented programming language classes. Here's one example:</p>
+<pre class="classsynopsis"> <span class="ooclass">
+<span class="modifier">public </span>
+<span class="classname">TextFileWriter</span>
+</span> extends <span class="ooclass"><span class="classname">HandlerBase</span></span> {
+
+<div class="fieldsynopsis">  <span class="modifier">private </span>
+<span class="type">Writer </span>
+<span class="varname">writer </span>;</div>
+<div class="fieldsynopsis">  <span class="modifier">public </span>
+<span class="type">String </span>
+<span class="varname">writerName </span>
+<span class="initializer">= &quot;MyWriter&quot;</span>;</div>
+<div class="methodsynopsis">
+<fake> <span>static </span>
+<span>public </span>
+<span>void </span>
+<span>write</span>
+</fake>(<span class="methodparam">
+<span class="type">ResultTreeFragment </span>
+<span class="parameter">frag</span>
+</span>,
+<span class="methodparam">
+<span class="type">String </span>
+<span class="parameter">file</span>
+</span>)
+    throws <span class="exceptionname">SAXException</span>;</div>}</pre>
+</div>
+<div id="id2689760" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2689760"></a>
+<fake>Chapter 2.</fake> Inline markup</h2></div></div>
+<p>The <tt><fake>sgmltag</fake></tt> element has new
+<fake>class</fake> attribute values:
+<tt><fake>xmlpi</fake></tt> and
+<tt><fake>emptytag</fake></tt>. These produce
+<tt><fake>&lt;?processing instructions?&gt;</fake></tt>
+and <tt><fake>&lt;empty-tag/&gt;</fake></tt> markup
+suitable for XML.
+</p>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/emc2.gif b/tests/docbook/result/html/emc2.gif
new file mode 100644
index 00000000..830dc36a
--- /dev/null
+++ b/tests/docbook/result/html/emc2.gif
Binary files differ
diff --git a/tests/docbook/result/html/emc2.png b/tests/docbook/result/html/emc2.png
new file mode 100644
index 00000000..d222f72f
--- /dev/null
+++ b/tests/docbook/result/html/emc2.png
Binary files differ
diff --git a/tests/docbook/result/html/figtest.html b/tests/docbook/result/html/figtest.html
new file mode 100644
index 00000000..b9b81809
--- /dev/null
+++ b/tests/docbook/result/html/figtest.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Article Test Document Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="id2679360" class="article">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2679360"></a>Article Test Document Title</h1></div>
+<hr>
+</div>
+<p>
+This is a &#x201C;<fake>short quote</fake>&#x201D;.
+This is a &#x201C;<fake>Quotation with a &#x201C;<fake>nested quotation
+containing a &#x201C;<fake>nested quotation and another &#x201C;<fake>nested
+quotation</fake>&#x201D;</fake>&#x201D;</fake>&#x201D;</fake>&#x201D;.
+</p>
+<div class="figure">
+<p>
+<a name="testfig1"></a>
+<b><fake>
+<fake>Figure 1.</fake> Test Figure</fake></b>
+</p>
+<pre class="programlisting">This is a
+ ProgramListing
+</pre>
+</div>
+<p>This para contains an xref to a figure: <a href="#testfig1">Figure 1.</a>.
+</p>
+<div class="figure">
+<p>
+<a name="testfig2"></a>
+<b><fake>
+<fake>Figure 2.</fake> Test Figure2</fake></b>
+</p>
+<pre class="programlisting">A Second
+ Test Figure
+</pre>
+</div>
+<p>This para contains an <a href="#testfig2">link</a> to a
+figure. And an xref: <a href="#testfig2">Figure 2.</a>.
+</p>
+<div class="figure">
+<p>
+<a name="testfig3"></a>
+<b><fake>
+<fake>Figure 3.</fake> Test Figure</fake></b>
+</p>
+<pre class="programlisting">This is a
+ ProgramListing
+</pre>
+</div>
+<p>This para contains an xref to a figure: <a href="#testfig3">Figure 3.</a>.
+</p>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/foottest.html b/tests/docbook/result/html/foottest.html
new file mode 100644
index 00000000..d82241aa
--- /dev/null
+++ b/tests/docbook/result/html/foottest.html
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Artheader Test Document Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="id2677390" class="article">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2671677"></a>Artheader Test Document Title</h1></div>
+<div>
+<h3 class="corpauthor">nwalsh</h3>
+<h3 class="author">Norman Walsh</h3>
+<h3 class="othercredit">Other Credit</h3>
+<h4 class="editedby">Edited by</h4>
+<h3 class="editor">Someother Editor</h3>
+<h3 class="author">Someone Else</h3>
+</div>
+<div><p class="copyright">Copyright © 1999 by Norman Walsh</p></div>
+<div><p class="pubdate">Apr. 26, 1999</p></div>
+<div><div class="abstract">
+<p>
+<a name="id2690855"></a>
+<b><fake>Abstract</fake></b>
+</p>
+<p>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</p>
+</div></div>
+<hr>
+</div>
+<p>This is a footnote<sup>[<a name="id2690873" href="#ftn.id2690873">1</a>]</sup>.</p>
+<div class="informaltable" id="id2690884">
+<p>
+<a name="id2690884"></a>
+<table border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<tbody>
+<tr>
+<td>entry</td>
+<td>entry</td>
+<td>entry</td>
+</tr>
+<tr>
+<td>entry<sup>[<a name="id2690928" href="#ftn.id2690928">b</a>]</sup>
+</td>
+<td>entry</td>
+<td>entry</td>
+</tr>
+<tr>
+<td>entry</td>
+<td>entry</td>
+<td>entry</td>
+</tr>
+<tr>
+<td>Nebbiolo, Bonarda<sup>[<a name="ch15tb1" href="#ftn.ch15tb1">c</a>]</sup>
+</td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td>Sangiovese, Canaiolo, and others<sup>[<a href="#ftn.ch15tb1">c</a>]</sup>
+</td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+<tr><td colspan="">
+<div class="footnote"><p>
+<sup>[<a name="ftn.id2690928" href="#id2690928">b</a>] </sup>table cell footnote</p></div>
+<div class="footnote"><p>
+<sup>[<a name="ftn.ch15tb1" href="#ch15tb1">c</a>] </sup>
+<i><fake>Blended wines, made from two or more grapes</fake></i>
+</p></div>
+</td></tr>
+</table>
+<p>
+</div>
+<div id="id2689684" class="appendix">
+<h2 class="title" style="clear: all">
+<a name="id2689684"></a>
+<fake>
+<fake>Appendix A.</fake> Appendix</fake>
+</h2>
+<p>This is just a test.</p>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/fotest.html b/tests/docbook/result/html/fotest.html
new file mode 100644
index 00000000..2b3f36cf
--- /dev/null
+++ b/tests/docbook/result/html/fotest.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Bookinfo Test Document Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2671677">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2671677"></a>Bookinfo Test Document Title</h1></div>
+<div><h2 class="subtitle">Book Subtitle</h2></div>
+<div><h3 class="author">Norman Walsh</h3></div>
+<hr>
+</div>
+<div id="id2774570" class="preface">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2774570"></a>Foreword</h2></div></div>
+<p>This is a test paragraph.</p>
+<div class="table">
+<p>
+<a name="table"></a>
+<b><fake>
+<fake>Table 1.</fake> A Table</fake></b>
+</p>
+<table summary="A Table" border="1">
+<fake><colgroup><col></colgroup></fake>
+<tbody>
+<tr>
+<td>1</td>
+<td>1</td>
+</tr>
+<tr>
+<td>2</td>
+<td>4</td>
+</tr>
+<tr>
+<td>3</td>
+<td>9</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div id="id2694164" class="chapter">
+<div class="titlepage">
+<div><h2 class="title">
+<a name="id2694164"></a>
+<fake>Chapter 1.</fake> First Chapter</h2></div>
+<div><h2 class="subtitle">Chapter Subtitle</h2></div>
+</div>
+<p>This is a test paragraph.</p>
+</div>
+<div id="id2692610" class="appendix">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2692610"></a>
+<fake>Appendix A.</fake> First Appendix</h2></div></div>
+<p>This is just a test.</p>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/func.html b/tests/docbook/result/html/func.html
new file mode 100644
index 00000000..9e8728a4
--- /dev/null
+++ b/tests/docbook/result/html/func.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>
+<fake>Chapter 1.</fake> test</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="ch1" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="ch1"></a>
+<fake>Chapter 1.</fake> test</h2></div></div>
+<p>
+This is a <tt><fake>foo<i><tt><fake>x</fake></tt></i>, <i><tt><fake>y</fake></tt></i>
+</fake></tt>. This is just a <i><tt><fake>x</fake></tt></i>.
+</p>
+<p>
+This is a <tt><fake>bar<i><tt><fake>x</fake></tt></i>, <tt><fake>y<i><tt><fake>z</fake></tt></i>
+</fake></tt>
+</fake></tt>. This is just a <i><tt><fake>x</fake></tt></i>.
+</p>
+<p>
+This is a <tt><fake>bar<i><tt><fake>x</fake></tt></i>, <i><tt><fake>z</fake></tt></i>
+</fake></tt>. This is just a <i><tt><fake>x</fake></tt></i>.
+</p>
+<p>
+This is a just a function <tt><fake>bar</fake></tt>.
+</p>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/graphics.html b/tests/docbook/result/html/graphics.html
new file mode 100644
index 00000000..93b75800
--- /dev/null
+++ b/tests/docbook/result/html/graphics.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Graphics Test Document Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="id2679360" class="article">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2679360"></a>Graphics Test Document Title</h1></div>
+<hr>
+</div>
+<div class="section">
+<a name="id2676107"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2676107"></a>
+<fake>Graphic</fake>
+</h2></div></div>
+<p>fileref:</p>
+<p><img src="emc2.png"></p>
+<p>entityref:</p>
+<p><img src="emc2"></p>
+<p>fileref, scale=200:</p>
+<p><img src="emc2.png" width="200%"></p>
+<p>fileref, width=20, depth=20</p>
+<p><img src="emc2.png" height="20" width="20"></p>
+</div>
+<div class="section">
+<a name="id2691313"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2691313"></a>
+<fake>Inlinegraphic</fake>
+</h2></div></div>
+<p>fileref: <img src="emc2.png">
+</p>
+<p>entityref: <img src="emc2">
+</p>
+<p>fileref, scale=200: <img src="emc2.png" width="200%">
+</p>
+</div>
+<div class="section">
+<a name="id2691382"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2691382"></a>
+<fake>MediaObject</fake>
+</h2></div></div>
+<p>fileref:</p>
+<div class="mediaobject"><img src="emc2.png"></div>
+<p>entityref:</p>
+<div class="mediaobject"><img src="emc2"></div>
+<p>fileref, scale=20:</p>
+<div class="mediaobject"><img src="emc2.png" width="20%"></div>
+<p>fileref, width=200, depth=400:</p>
+<div class="mediaobject"><img src="emc2.png" height="400" width="200"></div>
+<p>fileref, width=20, depth=20, alt=Alt text:</p>
+<div class="mediaobject"><img src="emc2.png" height="20" width="20" alt="Alt text"></div>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/gtest.html b/tests/docbook/result/html/gtest.html
new file mode 100644
index 00000000..48e75646
--- /dev/null
+++ b/tests/docbook/result/html/gtest.html
@@ -0,0 +1,17 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>
+<fake>Chapter 1.</fake> Graphics Test</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="id2670786" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2670786"></a>
+<fake>Chapter 1.</fake> Graphics Test</h2></div></div>
+<p>A graphic by fileref:</p>
+<div class="mediaobject"><img src="emc2.gif"></div>
+<p>A graphic by entityref:</p>
+<div class="mediaobject"><img src="emc2.gif"></div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/idxbook.html b/tests/docbook/result/html/idxbook.html
new file mode 100644
index 00000000..d3921626
--- /dev/null
+++ b/tests/docbook/result/html/idxbook.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Bookinfo Test Index Document Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2683486">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2683486"></a>Bookinfo Test Index Document Title</h1></div>
+<div><h2 class="subtitle">Book Subtitle</h2></div>
+<div><h3 class="author">Norman Walsh</h3></div>
+<hr>
+</div>
+<div id="id2691261" class="preface">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2691261"></a>Foreword</h2></div></div>
+<p>This is a test paragraph<a class="indexterm" name="id2691273"></a>.</p>
+</div>
+<div id="chapter" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="chapter"></a>
+<fake>Chapter 1.</fake> First Chapter</h2></div></div>
+<p>Paragraph<a class="indexterm" name="id2691412"></a>.</p>
+<div class="sect1">
+<a name="id2691420"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2691420"></a>
+<fake>First Sect1</fake>
+</h2></div></div>
+<p>Another paragraph<a class="indexterm" name="id2691435"></a>.</p>
+</div>
+</div>
+<div id="ch2" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="ch2"></a>
+<fake>Chapter 2.</fake> Second Chapter</h2></div></div>
+<p>This is a test paragraph.
+<a class="indexterm" name="id2807172"></a>
+<a class="indexterm" name="id2807175"></a>
+<a class="indexterm" name="id2781517"></a>
+
+<a class="indexterm" name="id2781527"></a>
+<a class="indexterm" name="id2781415"></a>
+
+<a class="indexterm" name="id2781425"></a>
+
+<a class="indexterm" name="id2781446"></a>
+<a class="indexterm" name="id2781457"></a>
+
+<a class="indexterm" name="id2781477"></a>
+<a class="indexterm" name="id2690947"></a>
+<a class="indexterm" name="id2690963"></a>
+</p>
+</div>
+<div id="id2690971" class="appendix">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2690971"></a>
+<fake>Appendix A.</fake> First Appendix</h2></div></div>
+<p>This is just a test.
+<a class="indexterm" name="id2690984"></a>
+<a class="indexterm" name="id2690995"></a>
+
+<a class="indexterm" name="id2691005"></a>
+<a class="indexterm" name="id2691021"></a>
+
+<a class="indexterm" name="id2691031"></a>
+<a class="indexterm" name="id2691052"></a>
+
+<a class="indexterm" name="id2691063"></a>
+<a class="indexterm" name="id2691078"></a>
+<a class="indexterm" name="id2695136"></a>
+
+<a class="indexterm" name="id2695147"></a>
+<a class="indexterm" name="id2695157"></a>
+<a class="indexterm" name="id2695168"></a>
+</p>
+</div>
+<div class="index">
+<h2 class="title"><a name="id2695184">Index</a></h2>
+<div class="index"></div>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/multilingual.html b/tests/docbook/result/html/multilingual.html
new file mode 100644
index 00000000..c578e865
--- /dev/null
+++ b/tests/docbook/result/html/multilingual.html
@@ -0,0 +1,736 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Multilingual Test Document</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2671677">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2671677"></a>Multilingual Test Document</h1></div>
+<hr>
+</div>
+<div id="cachap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="cachap"></a>
+<fake>Capítol 1.</fake> Catalan</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2682414">NOTA</a></h3>
+<p>
+This paragraph would be in Catalan, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="cschap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="cschap"></a>
+<fake>Kapitola 2.</fake> Czech</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2691171">Poznámka</a></h3>
+<p>
+This paragraph would be in Czech, if I knew any.
+&#x201E;<fake>Quote test.</fake>&#x201C;
+</p>
+</div>
+<p>
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="dachap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="dachap"></a>
+<fake>Kapitel 3.</fake> Danish</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2692491">NOTE</a></h3>
+<p>
+This paragraph would be in Danish, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="eschap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="eschap"></a>
+<fake>Capítulo 4.</fake> Spanish</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2692350">NOTA</a></h3>
+<p>
+This paragraph would be in Spanish, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="fichap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="fichap"></a>
+<fake>Luku 5.</fake> Finnish</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2689950">HUOMAA</a></h3>
+<p>
+This paragraph would be in Finnish, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="frchap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="frchap"></a>
+<fake>Chapitre 6.</fake> French</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2690329">Note</a></h3>
+<p>
+This paragraph would be in French, if I knew any.
+«<fake>Quote test.</fake>»
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="itchap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="itchap"></a>
+<fake>Capitolo 7.</fake> Italian</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2690708">NOTA</a></h3>
+<p>
+This paragraph would be in Italian, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="dechap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="dechap"></a>
+<fake>Kapitel 8.</fake> German</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2689768">Anmerkung</a></h3>
+<p>
+This paragraph would be in German, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="elchap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="elchap"></a>
+<fake>ÊåöÜëáéï 9.</fake> Greek</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2795922">ÓÇÌÅÉÙÓÇ</a></h3>
+<p>
+This paragraph would be in Greek, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="enchap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="enchap"></a>
+<fake>Chapter 10.</fake> English</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2795942">Note</a></h3>
+<p>
+This paragraph is in English.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="jachap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="jachap"></a>
+<fake>&#x7AE0; 11.</fake> Japanese</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2796263">&#x6CE8;&#x610F;</a></h3>
+<p>
+This paragraph would be in Japanese, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="rochap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="rochap"></a>
+<fake>Cap. 12.</fake> Romanian</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2796584">NOTÃ</a></h3>
+<p>
+This paragraph would be in Romanian, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="ruchap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="ruchap"></a>
+<fake>&#x413;&#x43B;&#x430;&#x432;&#x430; 13.</fake> Russian</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2796905">&#x417;&#x410;&#x41C;&#x415;&#x427;&#x410;&#x41D;&#x418;&#x415;</a></h3>
+<p>
+This paragraph would be in Russian, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="nochap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="nochap"></a>
+<fake>Kapittel 14.</fake> Norsk</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2797226">NOTAT</a></h3>
+<p>
+This paragraph would be in Norsk, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="nlchap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="nlchap"></a>
+<fake>Hoofdstuk 15.</fake> Dutch</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2797548">N.B.</a></h3>
+<p>
+This paragraph would be in Dutch, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="plchap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="plchap"></a>
+<fake>Rozdzia³ 16.</fake> Polish</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2797869">NOTATKA</a></h3>
+<p>
+This paragraph would be in Polish, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="ptchap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="ptchap"></a>
+<fake>Capítulo 17.</fake> Portuguese</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2798190">NOTA</a></h3>
+<p>
+This paragraph would be in Portugeuse, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="ptbrchap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="ptbrchap"></a>
+<fake>Capítulo 18.</fake> Portuguese (Brazilian)</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2798512">NOTA</a></h3>
+<p>
+This paragraph would be in Brazilian Portugeuse, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="skchap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="skchap"></a>
+<fake>Kapitola 19.</fake> Slovak</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2798833">POZNÁMKA</a></h3>
+<p>
+This paragraph would be in Slovak, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div id="svchap" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="svchap"></a>
+<fake>Kapitel 20.</fake> Swedish</h2></div></div>
+<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title"><a name="id2799154">NOT</a></h3>
+<p>
+This paragraph would be in Swedish, if I knew any.
+&#x201C;<fake>Quote test.</fake>&#x201D;
+</p>
+</div>
+<p>
+See <a href="#cachap">Capítol 1., <i>Catalan</i></a>.
+See <a href="#cschap">Kapitola 2., <i>Czech</i></a>.
+See <a href="#dachap">Kapitel 3., <i>Danish</i></a>.
+See <a href="#dechap">Kapitel 8., <i>German</i></a>.
+See <a href="#elchap">ÊåöÜëáéï 9., <i>Greek</i></a>.
+See <a href="#enchap">Chapter 10., <i>English</i></a>.
+See <a href="#eschap">Capítulo 4., <i>Spanish</i></a>.
+See <a href="#fichap">Luku 5., <i>Finnish</i></a>.
+See <a href="#frchap">Chapitre 6., <i>French</i></a>.
+See <a href="#itchap">Capitolo 7., <i>Italian</i></a>.
+See <a href="#jachap">&#x7AE0; 11., <i>Japanese</i></a>.
+See <a href="#nlchap">Hoofdstuk 15., <i>Dutch</i></a>.
+See <a href="#nochap">Kapittel 14., <i>Norsk</i></a>.
+See <a href="#plchap">Rozdzia³ 16., <i>Polish</i></a>.
+See <a href="#ptchap">Capítulo 17., <i>Portuguese</i></a>.
+See <a href="#ptbrchap">Capítulo 18., <i>Portuguese (Brazilian)</i></a>.
+See <a href="#rochap">Cap. 12., <i>Romanian</i></a>.
+See <a href="#ruchap">&#x413;&#x43B;&#x430;&#x432;&#x430; 13., <i>Russian</i></a>.
+See <a href="#skchap">Kapitola 19., <i>Slovak</i></a>.
+See <a href="#svchap">Kapitel 20., <i>Swedish</i></a>.
+See <a href="#bibl">&#x201C;Bibliography&#x201D;</a>.
+</p>
+</div>
+<div class="bibliography">
+<h2 class="title"><a name="bibl">Bibliography</a></h2>
+<div id="id2799475" class="biblioentry">
+<a name="id2799475"></a>
+<p>
+<span class="abbrev">[AhoSethiUllman96] </span>
+<span class="authorgroup">Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. </span>
+<span class="title">
+<I>Compilers, Principles, Techniques, and Tools</I>. </span>
+<span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span>
+<span class="copyright">Copyright © 1996 Bell Telephone Laboratories, Inc.. </span>
+<span class="isbn">0-201-10088-6. </span>
+<span class="editor">James T. DeWolf. </span>
+<span class="seriesinfo">
+<span class="title">
+<I>Computer Science</I>. </span>
+<span class="editor">Michael A. Harrison. </span>
+<span class="publisher"><span class="publishername">Addison-Wesley Publishing Company. </span></span>
+</span>
+</p>
+</div>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/qa.html b/tests/docbook/result/html/qa.html
new file mode 100644
index 00000000..c896e21d
--- /dev/null
+++ b/tests/docbook/result/html/qa.html
@@ -0,0 +1,982 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>book title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2670159">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2670159"></a>book title</h1></div>
+<hr>
+</div>
+<div id="id2679360" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2679360"></a>
+<fake>Chapter 1.</fake> chapter test</h2></div></div>
+<div class="qandaset">
+<h2 class="title">Q&amp;A Set (unspecified)</h2>
+<dl>
+<dt>1.1. <a href="#id2774684">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>1.1.Q1. <a href="#id2694684">Question para 1</a>
+</dt></dl></dd>
+<dt>1.2. <a href="#id2774684">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt> <a href="#id2694731">Question para 1</a>
+</dt>
+<dt> <a href="#id2694760">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h3 class="title"><a name="id2694679">1.1. Q&amp;A Div 1</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2694684">
+<b>1.1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>1.1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h3 class="title"><a name="id2694723">1.2. Q&amp;A Div 2</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2694731">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2694760">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="qandaset">
+<h2 class="title">Q&amp;A Set (none)</h2>
+<dl>
+<dt>1.1. <a href="#id2694796">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>1.1.Q1. <a href="#id2694819">Question para 1</a>
+</dt></dl></dd>
+<dt>1.2. <a href="#id2694796">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt> <a href="#id2774704">Question para 1</a>
+</dt>
+<dt> <a href="#id2774734">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h3 class="title"><a name="id2694806">1.1. Q&amp;A Div 1</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2694819">
+<b>1.1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>1.1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h3 class="title"><a name="id2774696">1.2. Q&amp;A Div 2</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2774704">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2774734">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="qandaset">
+<h2 class="title">Q&amp;A Set (number)</h2>
+<dl>
+<dt>1.1. <a href="#id2774769">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>1.1.Q1. <a href="#id2774772">Question para 1</a>
+</dt></dl></dd>
+<dt>1.2. <a href="#id2774769">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt>1.2.1. <a href="#id2693428">Question para 1</a>
+</dt>
+<dt>1.2.2. <a href="#id2693457">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h3 class="title"><a name="id2774779">1.1. Q&amp;A Div 1</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2774772">
+<b>1.1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>1.1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h3 class="title"><a name="id2693420">1.2. Q&amp;A Div 2</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2693428">
+<b>1.2.1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2693457">
+<b>1.2.2. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="qandaset">
+<h2 class="title">Q&amp;A Set (qanda)</h2>
+<dl>
+<dt>1.1. <a href="#id2693493">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>1.1.Q1. <a href="#id2693517">Question para 1</a>
+</dt></dl></dd>
+<dt>1.2. <a href="#id2693493">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt>Q: <a href="#id2693566">Question para 1</a>
+</dt>
+<dt>Q: <a href="#id2693596">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h3 class="title"><a name="id2693503">1.1. Q&amp;A Div 1</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2693517">
+<b>1.1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>1.1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h3 class="title"><a name="id2693559">1.2. Q&amp;A Div 2</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2693566">
+<b>Q: </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>A: </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2693596">
+<b>Q: </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>A: </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="section">
+<a name="id2693626"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2693626"></a>
+<fake>Section title</fake>
+</h2></div></div>
+<div class="qandaset">
+<h3 class="title">Q&amp;A Set (unspecified)</h3>
+<dl>
+<dt>1. <a href="#id2693635">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>1.Q1. <a href="#id2693651">Question para 1</a>
+</dt></dl></dd>
+<dt>2. <a href="#id2693635">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt> <a href="#id2693700">Question para 1</a>
+</dt>
+<dt> <a href="#id2690978">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h4 class="title"><a name="id2693645">1. Q&amp;A Div 1</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2693651">
+<b>1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h4 class="title"><a name="id2693693">2. Q&amp;A Div 2</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2693700">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2690978">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="qandaset">
+<h3 class="title">Q&amp;A Set (none)</h3>
+<dl>
+<dt>1. <a href="#id2691014">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>1.Q1. <a href="#id2691037">Question para 1</a>
+</dt></dl></dd>
+<dt>2. <a href="#id2691014">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt> <a href="#id2691086">Question para 1</a>
+</dt>
+<dt> <a href="#id2691116">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h4 class="title"><a name="id2691024">1. Q&amp;A Div 1</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2691037">
+<b>1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h4 class="title"><a name="id2691078">2. Q&amp;A Div 2</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2691086">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2691116">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="qandaset">
+<h3 class="title">Q&amp;A Set (number)</h3>
+<dl>
+<dt>1. <a href="#id2691151">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>1.Q1. <a href="#id2691175">Question para 1</a>
+</dt></dl></dd>
+<dt>2. <a href="#id2691151">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt>2.1. <a href="#id2691225">Question para 1</a>
+</dt>
+<dt>2.2. <a href="#id2691254">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h4 class="title"><a name="id2691161">1. Q&amp;A Div 1</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2691175">
+<b>1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h4 class="title"><a name="id2691217">2. Q&amp;A Div 2</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2691225">
+<b>2.1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2691254">
+<b>2.2. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="qandaset">
+<h3 class="title">Q&amp;A Set (qanda)</h3>
+<dl>
+<dt>1. <a href="#id2691290">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>1.Q1. <a href="#id2691313">Question para 1</a>
+</dt></dl></dd>
+<dt>2. <a href="#id2691290">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt>Q: <a href="#id2691363">Question para 1</a>
+</dt>
+<dt>Q: <a href="#id2691393">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h4 class="title"><a name="id2691300">1. Q&amp;A Div 1</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2691313">
+<b>1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h4 class="title"><a name="id2691355">2. Q&amp;A Div 2</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2691363">
+<b>Q: </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>A: </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2691393">
+<b>Q: </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>A: </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div id="id2691422" class="appendix">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2691422"></a>
+<fake>Appendix A.</fake> appendix test</h2></div></div>
+<div class="qandaset">
+<h2 class="title">Q&amp;A Set (unspecified)</h2>
+<dl>
+<dt>A.1. <a href="#id2691430">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>A.1.Q1. <a href="#id2691446">Question para 1</a>
+</dt></dl></dd>
+<dt>A.2. <a href="#id2691430">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt> <a href="#id2691495">Question para 1</a>
+</dt>
+<dt> <a href="#id2691525">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h3 class="title"><a name="id2691440">A.1. Q&amp;A Div 1</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2691446">
+<b>A.1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>A.1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h3 class="title"><a name="id2691488">A.2. Q&amp;A Div 2</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2691495">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2691525">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="qandaset">
+<h2 class="title">Q&amp;A Set (none)</h2>
+<dl>
+<dt>A.1. <a href="#id2691560">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>A.1.Q1. <a href="#id2691584">Question para 1</a>
+</dt></dl></dd>
+<dt>A.2. <a href="#id2691560">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt> <a href="#id2689628">Question para 1</a>
+</dt>
+<dt> <a href="#id2689658">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h3 class="title"><a name="id2691570">A.1. Q&amp;A Div 1</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2691584">
+<b>A.1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>A.1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h3 class="title"><a name="id2689620">A.2. Q&amp;A Div 2</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2689628">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2689658">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="qandaset">
+<h2 class="title">Q&amp;A Set (number)</h2>
+<dl>
+<dt>A.1. <a href="#id2689693">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>A.1.Q1. <a href="#id2689717">Question para 1</a>
+</dt></dl></dd>
+<dt>A.2. <a href="#id2689693">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt>A.2.1. <a href="#id2689767">Question para 1</a>
+</dt>
+<dt>A.2.2. <a href="#id2689796">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h3 class="title"><a name="id2689703">A.1. Q&amp;A Div 1</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2689717">
+<b>A.1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>A.1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h3 class="title"><a name="id2689759">A.2. Q&amp;A Div 2</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2689767">
+<b>A.2.1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2689796">
+<b>A.2.2. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="qandaset">
+<h2 class="title">Q&amp;A Set (qanda)</h2>
+<dl>
+<dt>A.1. <a href="#id2689832">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>A.1.Q1. <a href="#id2689855">Question para 1</a>
+</dt></dl></dd>
+<dt>A.2. <a href="#id2689832">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt>Q: <a href="#id2689905">Question para 1</a>
+</dt>
+<dt>Q: <a href="#id2689935">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h3 class="title"><a name="id2689842">A.1. Q&amp;A Div 1</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2689855">
+<b>A.1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>A.1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h3 class="title"><a name="id2689897">A.2. Q&amp;A Div 2</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2689905">
+<b>Q: </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>A: </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2689935">
+<b>Q: </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>A: </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="section">
+<a name="id2689965"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2689965"></a>
+<fake>Section title</fake>
+</h2></div></div>
+<div class="qandaset">
+<h3 class="title">Q&amp;A Set (unspecified)</h3>
+<dl>
+<dt>1. <a href="#id2689974">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>1.Q1. <a href="#id2689989">Question para 1</a>
+</dt></dl></dd>
+<dt>2. <a href="#id2689974">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt> <a href="#id2690039">Question para 1</a>
+</dt>
+<dt> <a href="#id2690069">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h4 class="title"><a name="id2689983">1. Q&amp;A Div 1</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2689989">
+<b>1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h4 class="title"><a name="id2690031">2. Q&amp;A Div 2</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2690039">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2690069">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="qandaset">
+<h3 class="title">Q&amp;A Set (none)</h3>
+<dl>
+<dt>1. <a href="#id2690104">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>1.Q1. <a href="#id2690128">Question para 1</a>
+</dt></dl></dd>
+<dt>2. <a href="#id2690104">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt> <a href="#id2690178">Question para 1</a>
+</dt>
+<dt> <a href="#id2690207">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h4 class="title"><a name="id2690114">1. Q&amp;A Div 1</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2690128">
+<b>1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h4 class="title"><a name="id2690170">2. Q&amp;A Div 2</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2690178">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2690207">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="qandaset">
+<h3 class="title">Q&amp;A Set (number)</h3>
+<dl>
+<dt>1. <a href="#id2690242">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>1.Q1. <a href="#id2690266">Question para 1</a>
+</dt></dl></dd>
+<dt>2. <a href="#id2690242">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt>2.1. <a href="#id2690316">Question para 1</a>
+</dt>
+<dt>2.2. <a href="#id2690345">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h4 class="title"><a name="id2690252">1. Q&amp;A Div 1</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2690266">
+<b>1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h4 class="title"><a name="id2690308">2. Q&amp;A Div 2</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2690316">
+<b>2.1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2690345">
+<b>2.2. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+<div class="qandaset">
+<h3 class="title">Q&amp;A Set (qanda)</h3>
+<dl>
+<dt>1. <a href="#id2690381">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>1.Q1. <a href="#id2690405">Question para 1</a>
+</dt></dl></dd>
+<dt>2. <a href="#id2690381">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt>Q: <a href="#id2690454">Question para 1</a>
+</dt>
+<dt>Q: <a href="#id2690484">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h4 class="title"><a name="id2690391">1. Q&amp;A Div 1</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2690405">
+<b>1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h4 class="title"><a name="id2690447">2. Q&amp;A Div 2</a></h4>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2690454">
+<b>Q: </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>A: </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2690484">
+<b>Q: </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>A: </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/qa2.html b/tests/docbook/result/html/qa2.html
new file mode 100644
index 00000000..89ec1e4f
--- /dev/null
+++ b/tests/docbook/result/html/qa2.html
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>book title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2665285">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2665285"></a>book title</h1></div>
+<hr>
+</div>
+<div id="id2677390" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2677390"></a>
+<fake>Chapter 1.</fake> chapter test</h2></div></div>
+<p>Test a cross reference to a question: <a href="#q1">Q: 1.1.Q1.</a>.
+</p>
+<div class="qandaset">
+<h2 class="title">Q&amp;A Set (unspecified)</h2>
+<dl>
+<dt>1.1. <a href="#id2691249">Q&amp;A Div 1</a>
+</dt>
+<dd><dl><dt>1.1.Q1. <a href="#id2693073">Question para 1</a>
+</dt></dl></dd>
+<dt>1.2. <a href="#id2691249">Q&amp;A Div 2</a>
+</dt>
+<dd><dl>
+<dt> <a href="#id2693244">Question para 1</a>
+</dt>
+<dt> <a href="#id2693275">Question para 1</a>
+</dt>
+</dl></dd>
+</dl>
+<div class="qandadiv">
+<h3 class="title"><a name="id2693064">1.1. Q&amp;A Div 1</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2693073">
+<b>1.1.Q1. </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b>1.1.A1. </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+<div class="qandadiv">
+<h3 class="title"><a name="id2693238">1.2. Q&amp;A Div 2</a></h3>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2693244">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+<div class="qandaentry">
+<div class="question">
+<p><a name="id2693275">
+<b> </b>Question para 1</a></p>
+<p>Question para 2</p>
+</div>
+<div class="answer">
+<p>
+<b> </b>Answer para 1</p>
+<p>Answer para 2</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/sectest.html b/tests/docbook/result/html/sectest.html
new file mode 100644
index 00000000..c3e52dac
--- /dev/null
+++ b/tests/docbook/result/html/sectest.html
@@ -0,0 +1,733 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Book Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="book"></a>Book Title</h1></div>
+<div><h3 class="corpauthor">Some Corporation</h3></div>
+<div><h3 class="author">Norman Walsh</h3></div>
+<div><p class="copyright">Copyright © 1998 by Norman Walsh</p></div>
+<div><div class="legalnotice">
+<p class="legalnotice-title"><b>Legal Notice</b></p>
+<p>This is a test document. You can do what you will with it.</p>
+</div></div>
+<div><div class="legalnotice"><p>This is a second legal notice. But it's not noteworthy.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ </p></div></div>
+<hr>
+</div>
+<div id="id2795377" class="dedication">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2795377"></a>Dedication</h2></div></div>
+<p>This test book is dedicated to all the testers. This is the first para
+of the dedication.</p>
+<p>This is the second para of the dedication.</p>
+<p>This is the third para of the dedication.</p>
+</div>
+<div id="id2686567" class="preface">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2686567"></a>Preface Title</h2></div></div>
+<p>Preface content.</p>
+<p>This is the second para of the preface.</p>
+<p>This is the third para of the preface.</p>
+</div>
+<div id="chapter" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="chapter"></a>
+<fake>Chapter 1.</fake> XRef Tests</h2></div></div>
+<h3>Xrefs</h3>
+<table class="simplelist" border="0" summary="Simple list">
+<tr><td><a href="#book"><i><fake>Book Title</fake></i></a></td></tr>
+<tr><td>???</td></tr>
+<tr><td><a href="#chapter">Chapter 1., <i>XRef Tests</i></a></td></tr>
+<tr><td>???</td></tr>
+<tr><td>???</td></tr>
+<tr><td>???</td></tr>
+<tr><td>???</td></tr>
+<tr><td>???</td></tr>
+<tr><td>???</td></tr>
+<tr><td>???</td></tr>
+<tr><td>???</td></tr>
+<tr><td>???</td></tr>
+</table>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<div class="section">
+<a name="id2691491"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2691491"></a>
+<fake>Section 1 Title</fake>
+</h2></div></div>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+</div>
+<div class="section">
+<a name="id2690130"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2690130"></a>
+<fake>Section 1 Title</fake>
+</h2></div></div>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+<p>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</p>
+</div>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/set.html b/tests/docbook/result/html/set.html
new file mode 100644
index 00000000..ed859508
--- /dev/null
+++ b/tests/docbook/result/html/set.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Set Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="set" id="id2671677">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2671677"></a>Set Title</h1></div>
+<hr>
+</div>
+<div class="book" id="id2670159">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2670159"></a>Bookinfo Test Document Title</h1></div>
+<div><h2 class="subtitle">Book Subtitle</h2></div>
+<div><h3 class="author">Norman Walsh</h3></div>
+<hr>
+</div>
+<div id="id2774560" class="preface">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2774560"></a>Foreword</h2></div></div>
+<p>This is a test paragraph.</p>
+</div>
+<div id="chapter" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="chapter"></a>
+<fake>Chapter 1.</fake> Section Tests</h2></div></div>
+<div class="sect1">
+<a name="id2695432"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2695432"></a>
+<fake>First Sect1</fake>
+</h2></div></div>
+<p>Paragraph.</p>
+</div>
+<div class="sect1">
+<a name="id2695445"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2695445"></a>
+<fake>Second Sect1</fake>
+</h2></div></div>
+<p>Paragraph.</p>
+</div>
+<div class="sect1">
+<a name="id2695458"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2695458"></a>
+<fake>Third Sect1</fake>
+</h2></div></div>
+<p>Paragraph.</p>
+</div>
+</div>
+<div id="id2695471" class="appendix">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2695471"></a>
+<fake>Appendix A.</fake> First Appendix</h2></div></div>
+<p>This is just a test.</p>
+<div class="sect1">
+<a name="id2695485"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2695485"></a>
+<fake>First Sect1</fake>
+</h2></div></div>
+<p>Paragraph.</p>
+</div>
+<div class="sect1">
+<a name="id2695498"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2695498"></a>
+<fake>Second Sect1</fake>
+</h2></div></div>
+<p>Paragraph.</p>
+</div>
+<div class="sect1">
+<a name="id2695511"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2695511"></a>
+<fake>Third Sect1</fake>
+</h2></div></div>
+<p>Paragraph.</p>
+</div>
+</div>
+</div>
+<div class="book" id="id2695524">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2695524"></a>Bookinfo Test Document Title</h1></div>
+<div><h2 class="subtitle">Book Subtitle</h2></div>
+<div><h3 class="author">Norman Walsh</h3></div>
+<hr>
+</div>
+<div id="id2795267" class="preface">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2795267"></a>Foreword</h2></div></div>
+<p>This is a test paragraph.</p>
+</div>
+<div id="id2795280" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2795280"></a>
+<fake>Chapter 1.</fake> Section Tests</h2></div></div>
+<div class="sect1">
+<a name="id2795288"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2795288"></a>
+<fake>First Sect1</fake>
+</h2></div></div>
+<p>Paragraph.</p>
+</div>
+<div class="sect1">
+<a name="id2694781"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2694781"></a>
+<fake>Second Sect1</fake>
+</h2></div></div>
+<p>Paragraph.</p>
+</div>
+<div class="sect1">
+<a name="id2694793"></a>
+<div class="titlepage"><div><h2 class="title" style="clear: all">
+<a name="id2694793"></a>
+<fake>Third Sect1</fake>
+</h2></div></div>
+<p>Paragraph.</p>
+</div>
+</div>
+<div id="id2694806" class="appendix">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2694806"></a>
+<fake>Appendix A.</fake> First Appendix</h2></div></div>
+<p>This is just a test.</p>
+</div>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/table.html b/tests/docbook/result/html/table.html
new file mode 100644
index 00000000..318eb95a
--- /dev/null
+++ b/tests/docbook/result/html/table.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>
+<fake>Chapter 1.</fake> test</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="ch1" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="ch1"></a>
+<fake>Chapter 1.</fake> test</h2></div></div>
+<p>How many ° can you ©.</p>
+<div class="table">
+<p>
+<a name="id2693993"></a>
+<b><fake>
+<fake>Table 1.1.</fake> A Table</fake></b>
+</p>
+<table summary="A Table" border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<tbody>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td rowspan="2">2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td colspan="2">2</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td> </td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td> </td>
+<td colspan="2">2</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="table">
+<p>
+<a name="id2694131"></a>
+<b><fake>
+<fake>Table 1.2.</fake> A Table</fake></b>
+</p>
+<table summary="A Table" border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<tbody>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td rowspan="2">2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td colspan="2">2</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td> </td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td> </td>
+<td colspan="2">2</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="table">
+<p>
+<a name="id2692906"></a>
+<b><fake>
+<fake>Table 1.3.</fake> A Table</fake></b>
+</p>
+<table summary="A Table" border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<tbody>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td rowspan="2">2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td colspan="2">2</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td> </td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td> </td>
+<td colspan="2">2</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="table">
+<p>
+<a name="id2691088"></a>
+<b><fake>
+<fake>Table 1.4.</fake> A Table</fake></b>
+</p>
+<table summary="A Table" border="1">
+<fake><colgroup>
+<col>
+<col>
+</colgroup></fake>
+<tbody>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td rowspan="2">2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td colspan="2">2</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td> </td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+<tr>
+<td> </td>
+<td colspan="2">2</td>
+</tr>
+<tr>
+<td>1</td>
+<td>2</td>
+<td>3</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/test.html b/tests/docbook/result/html/test.html
new file mode 100644
index 00000000..f1f23b35
--- /dev/null
+++ b/tests/docbook/result/html/test.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Article Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+<meta name="keywords" content="keyword1, keyword2, keyword3">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="id2665285" class="article">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2665285"></a>Article Title</h1></div>
+<hr>
+</div>
+<pre class="screen">This
+ is <fake>With a line-annotation</fake>
+ a
+ screen<a name="foo"></a>
+<img src="../images/callouts/1.png" alt="1" border="0">
+ This
+ is <fake>With a line-annotation</fake>
+ a
+screen
+This
+ is <fake>With a line-annotation</fake>
+ a
+ screen</pre>
+<p>What about <a href="#foo"><img src="../images/callouts/1.png" alt="1" border="0"></a>?</p>
+<div class="mediaobjectco"><img src="http://maps.example.com/EARTH?USA?MA?AMHERST"></div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/testmath.html b/tests/docbook/result/html/testmath.html
new file mode 100644
index 00000000..ef8b1048
--- /dev/null
+++ b/tests/docbook/result/html/testmath.html
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Book Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="id2670786">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="id2670786"></a>Book Title</h1></div>
+<hr>
+</div>
+<div id="id2678891" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="id2678891"></a>
+<fake>Chapter 1.</fake> Chapter Title</h2></div></div>
+<p>Here are two representations of x^2 + 4x + 4 = 0.</p>
+<div class="equation">
+<p>
+<a name="id2687892"></a>
+<b><fake>
+<fake>Equation 1.1.</fake> Presentational MathML</fake></b>
+</p>
+<font color="red">&lt;mml:math&gt;<font color="red">&lt;mml:mrow&gt;
+ <font color="red">&lt;mml:mrow&gt;
+ <font color="red">&lt;mml:msup&gt; <font color="red">&lt;mml:mi&gt;x&lt;/mml:mi&gt;</font> <font color="red">&lt;mml:mn&gt;2&lt;/mml:mn&gt;</font> &lt;/mml:msup&gt;</font> <font color="red">&lt;mml:mo&gt;+&lt;/mml:mo&gt;</font>
+ <font color="red">&lt;mml:mrow&gt;
+ <font color="red">&lt;mml:mn&gt;4&lt;/mml:mn&gt;</font>
+ <font color="red">&lt;mml:mo&gt;&lt;/mml:mo&gt;</font>
+ <font color="red">&lt;mml:mi&gt;x&lt;/mml:mi&gt;</font>
+ &lt;/mml:mrow&gt;</font>
+ <font color="red">&lt;mml:mo&gt;+&lt;/mml:mo&gt;</font>
+ <font color="red">&lt;mml:mn&gt;4&lt;/mml:mn&gt;</font>
+ &lt;/mml:mrow&gt;</font>
+ <font color="red">&lt;mml:mo&gt;=&lt;/mml:mo&gt;</font>
+ <font color="red">&lt;mml:mn&gt;0&lt;/mml:mn&gt;</font>
+ &lt;/mml:mrow&gt;</font>
+&lt;/mml:math&gt;</font>
+</div>
+<div class="equation">
+<p>
+<a name="id2599743"></a>
+<b><fake>
+<fake>Equation 1.2.</fake> Semantic MathML</fake></b>
+</p>
+<font color="red">&lt;mml:math&gt;<font color="red">&lt;mml:apply&gt;
+ <font color="red">&lt;mml:plus&gt;&lt;/mml:plus&gt;</font>
+ <font color="red">&lt;mml:apply&gt;
+ <font color="red">&lt;mml:power&gt;&lt;/mml:power&gt;</font>
+ <font color="red">&lt;mml:ci&gt;x&lt;/mml:ci&gt;</font>
+ <font color="red">&lt;mml:cn&gt;2&lt;/mml:cn&gt;</font>
+ &lt;/mml:apply&gt;</font>
+ <font color="red">&lt;mml:apply&gt;
+ <font color="red">&lt;mml:times&gt;&lt;/mml:times&gt;</font>
+ <font color="red">&lt;mml:cn&gt;4&lt;/mml:cn&gt;</font>
+ <font color="red">&lt;mml:ci&gt;x&lt;/mml:ci&gt;</font>
+ &lt;/mml:apply&gt;</font>
+ <font color="red">&lt;mml:cn&gt;4&lt;/mml:cn&gt;</font>
+ &lt;/mml:apply&gt;</font>
+&lt;/mml:math&gt;</font>
+</div>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/result/html/verbtest.html b/tests/docbook/result/html/verbtest.html
new file mode 100644
index 00000000..12068552
--- /dev/null
+++ b/tests/docbook/result/html/verbtest.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>Book Title</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.29">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" id="book">
+<div class="titlepage">
+<div><h1 class="title">
+<a name="book"></a>Book Title</h1></div>
+<hr>
+</div>
+<div id="ch1" class="chapter">
+<div class="titlepage"><div><h2 class="title">
+<a name="ch1"></a>
+<fake>Chapter 1.</fake> test</h2></div></div>
+<p>How many ° can you ©.</p>
+<p>And what about <a href="#ch1">Chapter 1., <i>test</i></a>.</p>
+<p>And what about ???.</p>
+<pre class="programlisting">
+This is a program
+listing.
+</pre>
+</div>
+</div></body>
+</html>
diff --git a/tests/docbook/test/ChangeLog b/tests/docbook/test/ChangeLog
new file mode 100644
index 00000000..344167f3
--- /dev/null
+++ b/tests/docbook/test/ChangeLog
@@ -0,0 +1,70 @@
+2001-01-30 Norman Walsh <ndw@nwalsh.com>
+
+ * Makefile: Changes
+
+2001-01-28 Norman Walsh <ndw@nwalsh.com>
+
+ * Makefile: Tweaks
+
+ * book.xml, graphics.xml, idxbook.xml, test.xml: Hacking
+
+2001-01-12 Norman Walsh <ndw@nwalsh.com>
+
+ * Makefile: Turn on PT extensions, cause that's what I'm using most
+
+ * emc2.png: New file.
+
+ * table.xml: Added frame attributes, needs more testing
+
+ * test.xml: Hackery
+
+2001-01-07 Norman Walsh <ndw@nwalsh.com>
+
+ * Makefile, book.xml, mlang.pl: Updated
+
+2000-12-14 Norman Walsh <ndw@nwalsh.com>
+
+ * Makefile, foottest.xml, sectest.xml, table.xml, testmath.xml:
+ Updated tests
+
+2000-11-29 Norman Walsh <ndw@nwalsh.com>
+
+ * Makefile: Support PassiveTeX or FOP
+
+ * condition.xml: Fixed doctype and table
+
+ * test.xml: Hacking
+
+2000-11-15 Norman Walsh <ndw@nwalsh.com>
+
+ * Makefile: Updated
+
+ * book3.xml: Fixes for 4.1.2
+
+ * callout.xml: New file.
+
+2000-11-09 Norman Walsh <ndw@nwalsh.com>
+
+ * Makefile: Added call to 'tidy'
+
+ * book3.xml: Fixed doctype
+
+ * test.xml: Hacked
+
+2000-10-29 Norman Walsh <ndw@nwalsh.com>
+
+ * table.xml: Added a few more tests
+
+2000-10-26 Norman Walsh <ndw@nwalsh.com>
+
+ * Makefile, idxbook.xml, mlang.pl, test.xml: Added localization tests; indexing tests
+
+2000-10-14 Norman Walsh <ndw@nwalsh.com>
+
+ * graphics.xml: New file.
+
+2000-10-09 Norman Walsh <ndw@nwalsh.com>
+
+ * LostLog, article.xml, article2.xml, article3.xml, bib.xml, book.xml, book2.xml, book3.xml, chunk.xml, classsynop.xml, condition.xml, docbook.css, docbook40.xml, emc2.gif, figtest.xml, foottest.xml, fotest.xml, func.xml, gtest.xml, idxbook.xml, multilingual.xml, qa.xml, qa2.xml, set.xml, table.xml, test.xml, verbtest.xml:
+ New file.
+
diff --git a/tests/docbook/test/LostLog b/tests/docbook/test/LostLog
new file mode 100644
index 00000000..ed707041
--- /dev/null
+++ b/tests/docbook/test/LostLog
@@ -0,0 +1,127 @@
+2000-08-08 Norman Walsh <ndw@nwalsh.com>
+
+ * article.xml, test.xml: Test case hacking
+
+ * idxbook.xml: New file.
+
+2000-06-29 Norman Walsh <ndw@nwalsh.com>
+
+ * test.xml: Added another table test
+
+2000-06-26 Norman Walsh <ndw@nwalsh.com>
+
+ * qa2.xml: New file.
+
+2000-04-19 Norman Walsh <ndw@nwalsh.com>
+
+ * book2.xml: Remove broken tables; PassiveTeX can't handle them at all
+
+ * test.xml: Hackery
+
+2000-04-06 Norman Walsh <ndw@nwalsh.com>
+
+ * classsynop.xml, docbook40.xml: New file.
+
+2000-04-03 Norman Walsh <ndw@nwalsh.com>
+
+ * book.xml: Added some indexterm tests
+
+ * func.xml: Added an unadorned function
+
+ * test.xml: Hacked
+
+2000-03-23 Norman Walsh <ndw@nwalsh.com>
+
+ * article.xml, article2.xml, article3.xml, bib.xml, book.xml, book2.xml, book3.xml, chunk.xml, condition.xml, figtest.xml, foottest.xml, fotest.xml, func.xml, gtest.xml, multilingual.xml, qa.xml, set.xml, table.xml, test.xml, verbtest.xml:
+ Updated doctypes
+
+2000-02-16 Norman Walsh <ndw@nwalsh.com>
+
+ * test.xml: Just tweaking
+
+2000-02-07 Norman Walsh <ndw@nwalsh.com>
+
+ * test.xml: Misc. testcase hacking
+
+2000-01-27 Norman Walsh <ndw@nwalsh.com>
+
+ * test.xml: Added char entity test
+
+2000-01-14 Norman Walsh <ndw@nwalsh.com>
+
+ * multilingual.xml: Added ptbr
+
+2000-01-10 Norman Walsh <ndw@nwalsh.com>
+
+ * multilingual.xml: New file.
+
+ * qa.xml: New file.
+
+1999-12-28 Norman Walsh <ndw@nwalsh.com>
+
+ * test.xml: Added glossary test case
+
+1999-12-24 Norman Walsh <ndw@nwalsh.com>
+
+ * book.xml: Added dbhtml test
+
+1999-12-22 Norman Walsh <ndw@nwalsh.com>
+
+ * book.xml: Fiddled with the content
+
+ * set.xml: New file.
+
+1999-11-16 Norman Walsh <ndw@nwalsh.com>
+
+ * emc2.gif, gtest.xml: New file.
+
+1999-11-10 Norman Walsh <ndw@nwalsh.com>
+
+ * article.xml, article2.xml, article3.xml, bib.xml, book.xml, book2.xml, book3.xml, chunk.xml, foottest.xml, fotest.xml, test.xml:
+ Updated system identifiers to make them proper URIs
+
+1999-11-03 Norman Walsh <ndw@nwalsh.com>
+
+ * book.xml: Test revhistory and character entities
+
+1999-07-16 Norman Walsh <ndw@nwalsh.com>
+
+ * fixfo.pl: New file.
+
+1999-07-06 Norman Walsh <ndw@nwalsh.com>
+
+ * article.xml: Added a literallayout
+
+ * foottest.xml: New file.
+
+1999-07-02 Norman Walsh <ndw@nwalsh.com>
+
+ * fotest.xml: New file.
+
+1999-06-14 Norman Walsh <ndw@nwalsh.com>
+
+ * bib.xml: New file.
+
+ * book2.xml: Added title to index
+
+ * chunk.xml: New file.
+
+ * docbook.css: Move abstracts in titlepages back to the left
+
+ * test.xml: Removed a bunch of stuff
+
+1999-06-03 Norman Walsh <ndw@nwalsh.com>
+
+ * book3.xml: New file.
+
+1999-05-20 Norman Walsh <ndw@nwalsh.com>
+
+ * article.xml, book.xml, book2.xml, docbook.css, test.xml:
+ More test files
+
+ * test.xml: Updates
+
+1999-05-19 Norman Walsh <ndw@nwalsh.com>
+
+ * article.xml, article2.xml, article3.xml: New file.
+
diff --git a/tests/docbook/test/Makefile.am b/tests/docbook/test/Makefile.am
new file mode 100644
index 00000000..cdcbde41
--- /dev/null
+++ b/tests/docbook/test/Makefile.am
@@ -0,0 +1,11 @@
+## Process this file with automake to produce Makefile.in
+
+all:
+
+EXTRA_DIST = \
+ ChangeLog LostLog article.xml article2.xml article3.xml bib.xml \
+ book.xml book2.xml book3.xml callout.xml chunk.xml classsynop.xml \
+ condition.xml docbook.css docbook40.xml figtest.xml foottest.xml \
+ fotest.xml func.xml graphics.xml gtest.xml idxbook.xml multilingual.xml \
+ qa.xml qa2.xml sectest.xml set.xml table.xml test.xml test.xsl \
+ testmath.xml verbtest.xml
diff --git a/tests/docbook/test/article.xml b/tests/docbook/test/article.xml
new file mode 100644
index 00000000..4a1e2796
--- /dev/null
+++ b/tests/docbook/test/article.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+ "../dtd/simple/3.1.7.1/sdocbook.dtd">
+
+<!-- "../dtd/simple/3.1.7.1/sdocbook.dtd">-->
+
+<!-- test document -->
+
+<article><title>Article Test Document Title</title>
+<artheader>
+<title>Artheader Test Document Title</title>
+<authorgroup>
+<corpauthor>nwalsh</corpauthor>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+<othercredit><firstname>Other</firstname><surname>Credit</surname></othercredit>
+<editor><firstname>Someother</firstname><surname>Editor</surname></editor>
+<author><firstname>Someone</firstname><surname>Else</surname></author>
+</authorgroup>
+<pubdate>Apr. 26, 1999</pubdate>
+<copyright><year>1999</year><holder>Norman Walsh</holder></copyright>
+
+<abstract>
+<para>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</para>
+</abstract>
+</artheader>
+
+<para>
+This is a <quote>short quote</quote>.
+This is a <quote>Quotation with a <quote>nested quotation
+containing a <quote>nested quotation and another <quote>nested
+quotation</quote></quote></quote></quote>.
+</para>
+
+<literallayout>This is a <emphasis>literal layout</emphasis>
+ It'll be a &lt;pre&gt; until the <filename>chunk.pl</filename>
+script fixes things up.</literallayout>
+
+<para>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</para>
+
+<figure id="testfig"><title>Test Figure</title>
+<programlisting>This is a
+ ProgramListing
+</programlisting>
+</figure>
+
+<para>This para contains an xref to a figure: <xref linkend="testfig"/>.
+</para>
+
+<figure id="testfig2"><title>Test Figure2</title>
+<programlisting>A Second
+ Test Figure
+</programlisting>
+</figure>
+
+<para>This para contains an <link linkend="testfig2">link</link> to a
+figure.
+</para>
+
+<itemizedlist>
+<listitem><para>Test item.</para></listitem>
+<listitem><para>Test item.</para></listitem>
+<listitem><para>Test item.</para></listitem>
+</itemizedlist>
+
+<orderedlist>
+<listitem><para>Test item.</para></listitem>
+<listitem><para>Test item.</para></listitem>
+<listitem><para>Test item.</para></listitem>
+</orderedlist>
+
+<para>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</para>
+
+<section><title>First level section</title>
+<section><title>Second level section</title>
+<section><title>Third level section</title>
+<section><title>Fourth level section</title>
+<section>
+<sectioninfo>
+<title>Fifth level section (SI)</title>
+</sectioninfo>
+<title>Fifth level section</title>
+<section><title>Sixth level section</title>
+<section><title>Seventh level section</title>
+<para>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</para>
+</section>
+</section>
+</section>
+</section>
+</section>
+</section>
+</section>
+
+<appendix><title>Appendix</title>
+
+<para>This is just a test.</para>
+
+</appendix>
+</article>
+
diff --git a/tests/docbook/test/article2.xml b/tests/docbook/test/article2.xml
new file mode 100644
index 00000000..36b65124
--- /dev/null
+++ b/tests/docbook/test/article2.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+ "../dtd/simple/3.1.7.1/sdocbook.dtd">
+
+<!-- test document -->
+
+<article><title>Article Test Document Title</title>
+<artheader>
+<title>Artheader Test Document Title</title>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+<pubdate>Apr. 26, 1999</pubdate>
+<copyright><year>1999</year><holder>Norman Walsh</holder></copyright>
+
+<abstract>
+<para>This article is just a test. This <emphasis>article</emphasis>
+is just a test.
+This <userinput>article</userinput> is just a test.
+This <email>ndw@nwalsh.com</email> is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</para>
+</abstract>
+</artheader>
+
+<para>This article is just a test. This <emphasis>article</emphasis>
+is just a test.
+This <userinput>article</userinput> is just a test.
+This <email>ndw@nwalsh.com</email> is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</para>
+
+<table><title>This is a test table</title>
+<tgroup cols="3">
+<colspec colname="c2" colnum="2" align="right" colwidth="2*"/>
+<colspec colname="c3"/>
+<thead>
+ <row><entry>Head1</entry><entry align="center">Head2</entry><entry>Head3</entry></row>
+</thead>
+<tbody>
+ <row><entry>Entry1</entry><entry>Entry2</entry><entry>Entry3</entry></row>
+ <row><entry>Entry1</entry><entry namest="c2" nameend="c3" align="center">span 2-3</entry></row>
+ <row><entry>Entry1</entry><entry morerows="2" valign="middle">morerows2</entry><entry>Entry3</entry></row>
+ <row><entry>Entry1</entry><entry>Entry3</entry></row>
+ <row><entry>Entry1</entry><entry>Entry3</entry></row>
+ <row><entry namest="c1" nameend="c3" align="center">fullspan</entry></row>
+ <row align="center"><entry>Entry1</entry><entry>Entry2</entry><entry align="left">Entry3</entry></row>
+ <row><entry>Entry1</entry><entry>Entry2</entry><entry>Entry3</entry></row>
+ <row><entry>Entry1</entry><entry>Entry2</entry><entry>Entry3</entry></row>
+</tbody>
+</tgroup>
+</table>
+
+<variablelist>
+<varlistentry><term>term</term>
+<listitem>
+<para>some text</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>term2a</term><term>term2b</term>
+<listitem>
+<para>some text</para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>term3</term>
+<listitem>
+<para>some text</para>
+<para>some text</para>
+<para>some text</para>
+</listitem>
+</varlistentry>
+</variablelist>
+
+</article>
+
diff --git a/tests/docbook/test/article3.xml b/tests/docbook/test/article3.xml
new file mode 100644
index 00000000..2015b7ce
--- /dev/null
+++ b/tests/docbook/test/article3.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+ "../dtd/simple/3.1.7.1/sdocbook.dtd">
+
+<!-- test document -->
+
+<article><title>Article Test Document Title</title>
+
+<para>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</para>
+
+<section><title>First level section</title>
+<section><title>Second level section</title>
+<section>
+<sectioninfo>
+<title>Third level section</title>
+</sectioninfo>
+<section><title>Fourth level section</title>
+<section><title>Fifth level section</title>
+<sectioninfo>
+<title>Fifth level section (SI)</title>
+</sectioninfo>
+<para>This is just a test.</para>
+</section>
+</section>
+</section>
+</section>
+</section>
+
+<section><title>Another Section</title>
+<simplesect><title>SimpleSect @ level 2</title>
+<para>This is just a test.</para>
+</simplesect>
+</section>
+
+<section><title>Another Section</title>
+<section><title>Another Section</title>
+<simplesect><title>SimpleSect @ level 3</title>
+<para>This is just a test.</para>
+</simplesect>
+</section>
+</section>
+
+<section><title>Another Section</title>
+<section><title>Another Section</title>
+<section><title>Another Section</title>
+<simplesect><title>SimpleSect @ level 4</title>
+<para>This is just a test.</para>
+</simplesect>
+</section>
+</section>
+</section>
+
+</article>
+
diff --git a/tests/docbook/test/bib.xml b/tests/docbook/test/bib.xml
new file mode 100644
index 00000000..83ac459b
--- /dev/null
+++ b/tests/docbook/test/bib.xml
@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+ PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "../dtd/3.1.7/docbookx.dtd">
+
+<book id="book"><title>Test Book</title>
+<bibliography id="bib1">
+<title>A Test Bibliography</title>
+<para>The stock stylesheet attempts to do a Bibliography. It probably needs
+a lot of tweaking. It probably doesn't conform to any specific style.</para>
+<bibliodiv>
+<title>Books</title>
+<biblioentry>
+<abbrev>AhoSethiUllman96</abbrev>
+<authorgroup>
+<author>
+<firstname>Alfred V.</firstname>
+<surname>Aho</surname>
+</author>
+<author>
+<firstname>Ravi</firstname>
+<surname>Sethi</surname>
+</author>
+<author>
+<firstname>Jeffrey D.</firstname>
+<surname>Ullman</surname>
+</author>
+</authorgroup>
+<title>Compilers, Principles, Techniques, and Tools</title>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+<copyright>
+<year>1996</year>
+<holder>Bell Telephone Laboratories, Inc.</holder>
+</copyright>
+<isbn>0-201-10088-6</isbn>
+<editor>
+<firstname>James T.</firstname>
+<surname>DeWolf</surname>
+</editor>
+<seriesinfo>
+<title>Computer Science</title>
+<editor>
+<firstname>Michael A.</firstname>
+<surname>Harrison</surname>
+</editor>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+</seriesinfo>
+</biblioentry>
+</bibliodiv>
+<bibliodiv>
+<title>Periodicals</title>
+<biblioentry id="walsh97">
+<abbrev>Walsh97</abbrev>
+<biblioset relation="article">
+<title>A Guide to XML</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<pubdate>1997</pubdate>
+<copyright>
+<year>1997</year>
+<holder>ArborText, Inc.</holder>
+</copyright>
+<pagenums>97-108</pagenums>
+</biblioset>
+<biblioset relation="journal">
+<title>XML: Principles, Tools, and Techniques</title>
+<publisher>
+<publishername>O'Reilly &amp; Associates, Inc.</publishername>
+</publisher>
+<issn>1085-2301</issn>
+<editor>
+<firstname>Dan</firstname>
+<surname>Connolly</surname>
+</editor>
+</biblioset>
+</biblioentry>
+<bibliomixed id="walsh96"> <bibliomset relation="article"> <surname>Walsh</surname>, <firstname>Norman</firstname>.
+ <title role="article">Introduction to Cascading Style Sheets</title>.
+ </bibliomset>
+ <bibliomset relation="journal"> <title>The World Wide Web Journal</title>.
+ <volumenum>2</volumenum>(<issuenum>1</issuenum>).
+ <publishername>O'Reilly &amp; Associates, Inc.</publishername> and
+ <corpname>The World Wide Web Consortium</corpname>.
+ <pubdate>Winter, 1996</pubdate></bibliomset>.</bibliomixed>
+<biblioentry>
+<abbrev>Abbrev</abbrev>
+<title>A Really Full BiblioEntry</title>
+<subtitle>Subtitle</subtitle>
+<abstract>
+<para>Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract. </para>
+</abstract>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+<artpagenums>ArtPageNums</artpagenums>
+<author>
+<firstname>AuthorFirstname</firstname>
+<surname>AuthorSurname</surname>
+</author>
+<authorblurb>
+<para>AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. </para>
+</authorblurb>
+<authorinitials>AuthorInitials</authorinitials>
+<collab>
+<collabname>The names of some collaborators</collabname>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+</collab>
+<confgroup>
+<confdates>confdates</confdates>
+<conftitle>conftitle</conftitle>
+<confnum>confnum</confnum>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<confsponsor>confsponsor</confsponsor>
+</confgroup>
+<contractnum>ContractNum</contractnum>
+<contractsponsor>ContractSponsor</contractsponsor>
+<contrib>Contrib</contrib>
+<copyright>
+<year>1998</year>
+<holder>Copyright holder</holder>
+</copyright>
+<corpname>CorpName</corpname>
+<date>Date</date>
+<edition>Edition</edition>
+<editor>
+<firstname>EditorFirstName</firstname>
+<surname>EditorSurname</surname>
+</editor>
+<firstname>FirstName</firstname>
+<honorific>Honorific</honorific>
+<isbn>ISBN</isbn>
+<issn>ISSN</issn>
+<invpartnumber>InvPartNumber</invpartnumber>
+<issuenum>IssueNum</issuenum>
+<lineage>Lineage</lineage>
+<orgname>OrgName</orgname>
+<othercredit>
+<firstname>OCFirstName</firstname>
+<surname>OCSurname</surname>
+</othercredit>
+<othername>OtherName</othername>
+<pagenums>PageNums</pagenums>
+<printhistory>
+<para>PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.</para>
+</printhistory>
+<productname>ProductName</productname>
+<productnumber>ProductNumber</productnumber>
+<pubdate>PubDate</pubdate>
+<publisher>
+<publishername>PubPublisherName</publishername>
+<address><street>Any Street</street>
+<city>Anywhere</city>, <state>XX</state> <postcode>99999</postcode>
+<country>USA</country></address>
+</publisher>
+<publishername>PublisherName</publishername>
+<pubsnumber>PubsNumber</pubsnumber>
+<releaseinfo>ReleaseInfo</releaseinfo>
+<revhistory>
+<revision>
+<revnumber>1.0</revnumber>
+<date>20 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.9</revnumber>
+<date>19 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.4</revnumber>
+<date>18 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+</revhistory>
+<seriesinfo>
+<title>SeriesInfo Title</title>
+<editor>
+<firstname>SeriesInfo Editor Firstname</firstname>
+<surname>SeriesInfo Editor Surname</surname>
+</editor>
+</seriesinfo>
+<seriesvolnums>SeriesVolNums</seriesvolnums>
+<surname>Surname</surname>
+<titleabbrev>TitleAbbrev</titleabbrev>
+<volumenum>VolumeNum</volumenum>
+</biblioentry>
+</bibliodiv>
+</bibliography>
+</book>
diff --git a/tests/docbook/test/book.xml b/tests/docbook/test/book.xml
new file mode 100644
index 00000000..49c6a713
--- /dev/null
+++ b/tests/docbook/test/book.xml
@@ -0,0 +1,410 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+ PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "../dtd/3.1.7/docbookx.dtd">
+
+<!-- test document -->
+<book><title>Book Test Document Title</title>
+<bookinfo>
+<title>Bookinfo Test Document Title</title>
+<subtitle>Book Subtitle</subtitle>
+<authorgroup>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+<author><firstname>John</firstname><surname>Doe</surname></author>
+</authorgroup>
+<releaseinfo>Some releaseinfo</releaseinfo>
+<copyright><year>2000</year><holder>Norman Walsh</holder></copyright>
+<legalnotice>
+<para>Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+Some legal notice. Some legal notice. Some legal notice.
+</para>
+</legalnotice>
+<pubdate>16 December 2000</pubdate>
+<abstract>
+<para>Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+</para>
+<para>Some abstract. Some abstract. Some abstract. Some abstract.
+Some abstract. Some abstract. Some abstract. Some abstract.
+</para>
+</abstract>
+<!--
+<revhistory>
+<revision>
+<revnumber>1.0</revnumber>
+<date>20 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.9</revnumber>
+<date>19 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.4</revnumber>
+<date>18 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+</revhistory>
+-->
+</bookinfo>
+
+<dedication><title>First Dedication</title>
+<para>Just a test. &ldquo;What about&mdash;this?&rdquo;</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+Blah blah blah blah blah blah blah blah. Blah blah blah blah.
+Blah. Blah blah blah blah. Blah blah. Blah blah blah blah.
+</para>
+</dedication>
+
+<dedication>
+<para>Just a test dedication.</para>
+</dedication>
+
+<preface><title>Foreword</title>
+<?dbhtml filename="forward.htm"?>
+<para>This is a test paragraph.</para>
+</preface>
+
+<preface>
+<para>This is a test preface.</para>
+</preface>
+
+<part>
+<docinfo>
+<title>Part One Title</title>
+<legalnotice>
+<para>Foo! A legal notice in a part!</para>
+</legalnotice>
+</docinfo>
+<title>Part One Title</title>
+<partintro>
+<title>PartIntro Title</title>
+<para>Partintro content<footnote>
+<para>This is a footnote in a partintro.</para>
+</footnote>.</para>
+<sect1>
+<title>PartIntro Section</title>
+<para>PartIntros can actually have section content as well.</para>
+</sect1>
+</partintro>
+<chapter id="chapter">
+<title id="chaptertitle">Section <anchor id="stestfoo"/>Tests</title>
+
+<sect1><title>First Sect1</title>
+<para>Paragraph.</para>
+<figure id="testfig1"><title>Test Figure</title>
+<programlisting>This is a
+ ProgramListing
+</programlisting>
+</figure>
+</sect1>
+<sect1><title>Second Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Third Sect1</title>
+<para>Paragraph.</para>
+<figure id="testfig2"><title>Test Figure</title>
+<programlisting>This is a
+ ProgramListing
+</programlisting>
+</figure>
+</sect1>
+
+</chapter>
+</part>
+
+<chapter>
+ <docinfo><title>First Chapter</title><subtitle>Chapter Subtitle</subtitle>
+ </docinfo><title>First Chapter</title>
+<para>This is a test paragraph.</para>
+<figure id="testfig3"><title>Test Figure</title>
+<programlisting>This is a
+ ProgramListing
+</programlisting>
+</figure>
+</chapter>
+
+<chapter><title>Second Chapter</title>
+<para>This is a test paragraph.
+<indexterm>
+<primary>ap1</primary>
+</indexterm>
+<indexterm>
+<primary>ap2</primary>
+</indexterm>
+
+<indexterm>
+<primary>bp1</primary>
+<secondary>bp1bs1</secondary>
+</indexterm>
+<indexterm>
+<primary>bp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>cp1</primary>
+<secondary>cp1cs1</secondary>
+<tertiary>cp1cs1ct1</tertiary>
+</indexterm>
+
+<indexterm>
+<primary>cp2</primary>
+</indexterm>
+<indexterm>
+<primary>cp2see</primary><see>cp2</see>
+</indexterm>
+
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds1</secondary>
+</indexterm>
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds2</secondary>
+</indexterm>
+<indexterm>
+<primary>dp2</primary>
+</indexterm></para>
+</chapter>
+
+<chapter><title>Third Chapter</title>
+<para>This is a test paragraph.</para>
+</chapter>
+
+<appendix><title>First Appendix</title>
+<para>This is just a test.</para>
+<figure id="testfig4"><title>Test Figure</title>
+<programlisting>This is a
+ ProgramListing
+</programlisting>
+</figure>
+</appendix>
+
+<appendix><title>Second Appendix</title>
+<para>This is just a test.
+<indexterm>
+<primary>ap1</primary>
+</indexterm>
+<indexterm>
+<primary>ap2</primary>
+</indexterm>
+
+<indexterm>
+<primary>bp1</primary>
+<secondary>bp1bs1</secondary>
+</indexterm>
+<indexterm>
+<primary>bp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>cp1</primary>
+<secondary>cp1cs1</secondary>
+<tertiary>cp1cs1ct1</tertiary>
+</indexterm>
+<indexterm>
+<primary>cp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds1</secondary>
+</indexterm>
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds2</secondary>
+</indexterm>
+<indexterm>
+<primary>dp2</primary>
+</indexterm></para>
+</appendix>
+
+</book>
+
+
diff --git a/tests/docbook/test/book2.xml b/tests/docbook/test/book2.xml
new file mode 100644
index 00000000..d9e79fff
--- /dev/null
+++ b/tests/docbook/test/book2.xml
@@ -0,0 +1,3249 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+ PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "../dtd/3.1.7/docbookx.dtd">
+<book id="book">
+<bookinfo>
+<title>Book Title</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<corpauthor>Some Corporation</corpauthor>
+<legalnotice>
+<title>Legal Notice</title>
+<para>This is a test document. You can do what you will with it.</para>
+</legalnotice>
+<legalnotice>
+<para>This is a second legal notice. But it's not noteworthy.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ </para>
+</legalnotice>
+<copyright>
+<year>1998</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</bookinfo>
+<dedication>
+<para>This test book is dedicated to all the testers. This is the first para
+of the dedication.</para>
+<para>This is the second para of the dedication.</para>
+<para>This is the third para of the dedication.</para>
+</dedication>
+<preface>
+<title>Preface Title</title>
+<para>Preface content.</para>
+<para>This is the second para of the preface.</para>
+<para>This is the third para of the preface.</para>
+</preface>
+<part>
+<docinfo>
+<title>Part One Title</title>
+<legalnotice>
+<para>Foo! A legal notice in a part!</para>
+</legalnotice>
+</docinfo>
+<title>Part One Title</title>
+<partintro>
+<title>PartIntro Title</title>
+<para>Partintro content<footnote>
+<para>This is a footnote in a partintro.</para>
+</footnote>.</para>
+<sect1>
+<title>PartIntro Section</title>
+<para>PartIntros can actually have section content as well.</para>
+</sect1>
+</partintro>
+<chapter id="chapter">
+<title id="chaptertitle">XRef Tests</title>
+<bridgehead renderas="sect3">Xrefs</bridgehead>
+<simplelist>
+<member><xref linkend="book"/></member>
+<member><xref linkend="part"/></member>
+<member><xref linkend="chapter"/></member>
+<member><xref linkend="appendix"/></member>
+<member><xref linkend="table"/></member>
+<member><xref linkend="figure"/></member>
+<member><xref linkend="example"/></member>
+<member><xref linkend="equation"/></member>
+<member><xref linkend="reference"/></member>
+<member><xref linkend="bib1"/></member>
+<member><xref linkend="gloss"/></member>
+<member><xref linkend="index"/></member>
+</simplelist>
+<para>This is the first reference to <firstterm linkend="xml">XML</firstterm>.
+This is the second reference to <glossterm linkend="xml">XML</glossterm>.
+These are references without <sgmltag class="attribute">linkend</sgmltag>
+attributes: <firstterm>XML</firstterm>, <glossterm>XML</glossterm>.</para>
+<bridgehead renderas="sect3">Links</bridgehead>
+<para>More <ulink url="http://www.jclark.com/dsssl/">DSSSL information</ulink>
+is available.</para>
+<para>There is <link linkend="part">a second part</link> in this book.</para>
+<para>This is the <link endterm="chaptertitle" linkend="chapter"></link>
+chapter.</para>
+</chapter>
+<chapter id="stchap">
+<docinfo>
+<title>Section Tests</title>
+<subtitle>Section Tests Subtitle</subtitle>
+</docinfo>
+<title>Section Tests</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<indexterm>
+<primary>ap1</primary>
+</indexterm>
+<indexterm>
+<primary>ap2</primary>
+</indexterm>
+
+<indexterm>
+<primary>bp1</primary>
+<secondary>bp1bs1</secondary>
+</indexterm>
+<indexterm>
+<primary>bp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>cp1</primary>
+<secondary>cp1cs1</secondary>
+<tertiary>cp1cs1ct1</tertiary>
+</indexterm>
+<indexterm>
+<primary>cp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds1</secondary>
+</indexterm>
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds2</secondary>
+</indexterm>
+<indexterm>
+<primary>dp2</primary>
+</indexterm></para>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect1 id="secttest1">
+<title>a sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<indexterm>
+<primary>ep1</primary>
+<secondary>ep1es1</secondary>
+<tertiary>ep1es1et1</tertiary>
+</indexterm>
+<indexterm>
+<primary>ep1</primary>
+<secondary>ep1es2</secondary>
+</indexterm>
+<indexterm>
+<primary>ep2</primary>
+</indexterm>
+
+<indexterm>
+<primary>fp1</primary>
+<secondary>fp1fs1</secondary>
+</indexterm>
+<indexterm>
+<primary>fp1</primary>
+<secondary>fp1fs2</secondary>
+<tertiary>fp1fs2ft1</tertiary>
+</indexterm>
+<indexterm>
+<primary>fp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs1</secondary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs2</secondary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs2</secondary>
+<tertiary>gp1gs2gt1</tertiary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs2</secondary>
+<tertiary>gp1gs2gt2</tertiary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs3</secondary>
+</indexterm>
+<indexterm>
+<primary>gp2</primary>
+</indexterm></para>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect2>
+<title>a sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<title>a sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<indexterm>
+<primary>hp1</primary>
+<secondary>hp1hs1</secondary>
+<tertiary>hp1hs1ht1</tertiary>
+</indexterm>
+<indexterm>
+<primary>hp1</primary>
+<secondary>hp1hs1</secondary>
+<tertiary>hp1hs1ht2</tertiary>
+</indexterm>
+<indexterm>
+<primary>hp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>ip1</primary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is1</secondary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is1</secondary>
+<tertiary>ip1is1it1</tertiary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is1</secondary>
+<tertiary>ip1is1it2</tertiary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is2</secondary>
+<tertiary>ip1is2it1</tertiary>
+</indexterm>
+<indexterm>
+<primary>ip2</primary>
+</indexterm></para>
+<sect4>
+<title>a sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<title>a sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1 id="secttest2">
+<sect1info>
+<title>another sect1 title</title>
+<subtitle>a sect1 subtitle</subtitle>
+</sect1info>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<indexterm>
+<primary>jp1</primary>
+</indexterm>
+<indexterm>
+<primary>jp1</primary>
+<secondary>jp1js1</secondary>
+<tertiary>jp1js1jt1</tertiary>
+</indexterm>
+<indexterm>
+<primary>jp1</primary>
+<secondary>jp1js1</secondary>
+<tertiary>jp1js1jt2</tertiary>
+</indexterm>
+<indexterm>
+<primary>jp2</primary>
+</indexterm></para>
+<sect2>
+<sect2info>
+<title>another sect2 title</title>
+<subtitle>a sect2 subtitle</subtitle>
+</sect2info>
+<title>another sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<sect3info>
+<title>another sect3 title</title>
+<subtitle>a sect3 subtitle</subtitle>
+</sect3info>
+<title>another sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect4>
+<sect4info>
+<title>another sect4 title</title>
+<subtitle>a sect4 subtitle</subtitle>
+</sect4info>
+<title>another sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<sect5info>
+<title>another sect5 title</title>
+<subtitle>a sect5 subtitle</subtitle>
+</sect5info>
+<title>another sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1 id="secttest3">
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+<sect1 id="secttest4">
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+</chapter>
+<chapter>
+<title>Inline Tests</title>
+<simplesect>
+<title>Testing <quote>Quotes</quote> in a title</title>
+<para>Footnotes<footnote id="fn1">
+<para>Like this!</para>
+</footnote> are inlines.
+Sort of<footnote>
+<para>Well, the marks are, anyway!</para>
+</footnote>.
+Another footnote<footnoteref linkend="fn1"/>.</para>
+<simplelist columns="3" type="vert">
+<member><abbrev>Abbrev</abbrev></member>
+<member><acronym>Acronym</acronym></member>
+<member><action>Action</action></member>
+<member><application>Application</application></member>
+<member><citation>Citation</citation></member>
+<member><citerefentry>
+<refentrytitle>CiteRefEntry RefEntryTitle</refentrytitle>
+<manvolnum>n</manvolnum>
+</citerefentry></member>
+<member><citetitle>Citetitle</citetitle></member>
+<member><classname>ClassName</classname></member>
+<member><command>Command</command></member>
+<member><comment>Comment</comment> (Comment)</member>
+<member><computeroutput>ComputerOutput</computeroutput></member>
+<member><database>Database</database></member>
+<member><errorname>ErrorName</errorname></member>
+<member><errortype>ErrorType</errortype></member>
+<member><email>Email</email></member>
+<member><emphasis>Emphasis</emphasis></member>
+<member><envar>EnVar</envar></member>
+<member><errorcode>ErrorCode</errorcode></member>
+<member><filename>Filename</filename></member>
+<member><firstterm>Firstterm</firstterm></member>
+<member><foreignphrase>ForeignPhrase</foreignphrase></member>
+<member><function>Function</function></member>
+<member><guimenuitem>GUIMenuItem</guimenuitem></member>
+<member><guibutton>GUIButton</guibutton></member>
+<member><guibutton>GUI<accel>B</accel>utton (with Accel)</guibutton></member>
+<member><guiicon>GUIIcon</guiicon></member>
+<member><guilabel>GUILabel</guilabel></member>
+<member><guimenu>GUIMenu</guimenu></member>
+<member><guisubmenu>GUISubMenu</guisubmenu></member>
+<member><hardware>Hardware</hardware></member>
+<member><inlineequation>
+<alt>e=mc^2</alt>
+<graphic fileref="emc2.gif"/>
+</inlineequation></member>
+<member><interface>Interface</interface></member>
+<member><interfacedefinition>InterfaceDefinition</interfacedefinition></member>
+<member><keycap>KeyCap</keycap></member>
+<member><keycode>KeyCode</keycode></member>
+<member><keycombo>
+<keycap>Key</keycap>
+<keycap>Combo</keycap>
+</keycombo></member>
+<member><keysym>KeySym</keysym></member>
+<member><literal>Literal</literal></member>
+<member><markup>Markup</markup></member>
+<member><medialabel>MediaLabel</medialabel></member>
+<member><mousebutton>MouseButton</mousebutton></member>
+<member><option>Option</option></member>
+<member><optional>Optional</optional></member>
+<member><parameter>Parameter</parameter></member>
+<member><phrase>Phrase</phrase></member>
+<member><prompt>Prompt</prompt></member>
+<member><property>Property</property></member>
+<member><quote>Quote</quote></member>
+<member><replaceable>Replaceable</replaceable></member>
+<member><returnvalue>ReturnValue</returnvalue></member>
+<member><sgmltag class="attribute">SGMLTag</sgmltag> (Attribute)</member>
+<member><sgmltag class="attvalue">SGMLTag</sgmltag> (AttValue)</member>
+<member><sgmltag class="element">SGMLTag</sgmltag> (Element)</member>
+<member><sgmltag class="endtag">SGMLTag</sgmltag> (EndTag)</member>
+<member><sgmltag class="genentity">SGMLTag</sgmltag> (GenEntity)</member>
+<member><sgmltag class="numcharref">SGMLTag</sgmltag> (NumCharRef)</member>
+<member><sgmltag class="paramentity">SGMLTag</sgmltag> (ParamEntity)</member>
+<member><sgmltag class="pi">SGMLTag</sgmltag> (PI)</member>
+<member><sgmltag class="sgmlcomment">SGMLTag</sgmltag> (SGMLComment)</member>
+<member><sgmltag class="starttag">SGMLTag</sgmltag> (StartTag)</member>
+<member><sgmltag>SGMLTag</sgmltag></member>
+<member><structfield>StructField</structfield></member>
+<member><structname>StructName</structname></member>
+<member><subscript>Subscript</subscript></member>
+<member><superscript>Superscript</superscript></member>
+<member><symbol>Symbol</symbol></member>
+<member><systemitem>SystemItem</systemitem></member>
+<member><token>Token</token></member>
+<member><trademark>Trademark</trademark></member>
+<member><type>Type</type></member>
+<member><userinput>UserInput</userinput></member>
+<member><wordasword>WordAsWord</wordasword></member>
+<member><productname>ProductName</productname></member>
+</simplelist>
+<para>And here are a couple of index terms, as another test (of
+index terms, not inlines).
+<indexterm>
+<primary>aap1</primary>
+<see>ap1</see>
+</indexterm>
+<indexterm>
+<primary>bbp1</primary>
+<seealso>bp1</seealso>
+</indexterm></para>
+</simplesect>
+</chapter>
+<chapter>
+<title>Block Tests</title>
+<simplesect>
+<title>Formal Objects</title>
+<bridgehead renderas="sect4">Example</bridgehead>
+<example id="example">
+<title>An Example</title>
+<para>This is an example of a trivial example.</para>
+</example>
+<bridgehead renderas="sect4">Figure</bridgehead>
+<figure id="figure">
+<title>A Figure</title>
+<screen>This is an example of a trivial figure.</screen>
+</figure>
+<bridgehead renderas="sect4">Equation</bridgehead>
+<equation id="equation">
+<title>An Equation</title>
+<alt>e=mc^2</alt>
+<graphic fileref="emc2.gif"/>
+</equation>
+<bridgehead renderas="sect4">Table</bridgehead>
+<table id="table">
+<title>A Table</title>
+<tgroup cols="2">
+<colspec colwidth="0.5in"/>
+<colspec colwidth="0.5in"/>
+<tbody>
+<row>
+<entry>1</entry>
+<entry>1</entry>
+</row>
+<row>
+<entry>2</entry>
+<entry>4</entry>
+</row>
+<row>
+<entry>3</entry>
+<entry>9</entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+</simplesect>
+<simplesect>
+<title>Informal Objects</title>
+<bridgehead renderas="sect4">InformalExample</bridgehead>
+<informalexample id="iexample">
+<para>This is an example of a trivial, informal example.</para>
+</informalexample>
+<bridgehead renderas="sect4">InformalEquation</bridgehead>
+<informalequation id="iequation">
+<alt>e=mc^2</alt>
+<graphic fileref="emc2.gif"/>
+</informalequation>
+<bridgehead renderas="sect4">InformalTable</bridgehead>
+<informaltable id="itable">
+<tgroup cols="2">
+<tbody>
+<row>
+<entry>1</entry>
+<entry>1</entry>
+</row>
+<row>
+<entry>2</entry>
+<entry>8</entry>
+</row>
+<row>
+<entry>3</entry>
+<entry>27</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</simplesect>
+<simplesect>
+<title>Admonitions</title>
+<bridgehead renderas="sect4">Note</bridgehead>
+<note>
+<para>Consider yourself noted.</para>
+<para>Second para.</para>
+</note>
+<note>
+<simpara>Consider yourself noted, simply.</simpara>
+</note>
+<note>
+<title>NoteTitle</title>
+<para>Consider yourself noted.</para>
+<para>Second para, with a title.</para>
+</note>
+<note>
+<title>Att</title>
+<simpara>Consider yourself noted, simply.</simpara>
+<simpara>With a title</simpara>
+</note>
+<bridgehead renderas="sect4">Important</bridgehead>
+<important>
+<para>Consider yourself important.</para>
+</important>
+<bridgehead renderas="sect4">Tip</bridgehead>
+<tip>
+<para>Consider yourself tipped.</para>
+</tip>
+<bridgehead renderas="sect4">Warning</bridgehead>
+<warning>
+<para>Consider yourself warned.</para>
+</warning>
+<bridgehead renderas="sect4">Caution</bridgehead>
+<caution>
+<para>Consider yourself cautioned.</para>
+</caution>
+<bridgehead renderas="sect4">SimPara in Caution</bridgehead>
+<caution>
+<title>Simple Caution</title>
+<simpara>A simpler caution.</simpara>
+</caution>
+</simplesect>
+<simplesect>
+<title>Other Objects</title>
+<bridgehead renderas="sect4">Screen</bridgehead>
+<screen>This
+ is <lineannotation>With a line-annotation</lineannotation>
+ a
+ screen
+ This
+ is <lineannotation>With a line-annotation</lineannotation>
+ a
+screen
+This
+ is <lineannotation>With a line-annotation</lineannotation>
+ a
+ screen</screen>
+<bridgehead renderas="sect4">ProgramListing</bridgehead>
+<programlisting>This
+ is
+ a
+programlisting</programlisting>
+<bridgehead renderas="sect4">Address</bridgehead>
+<address>Norman Walsh
+ArborText, Inc.
+<street>1000 Victors Way</street>
+<city>Ann Arbor</city>, <state>MI</state> <postcode>48108</postcode>
+<country>US</country>
+
+Voice: <phone>313.997.0200</phone>
+Fax: <fax>313.997.0201</fax>
+
+Email: <email>nwalsh@arbortext.com</email>
+WWW: <otheraddr role="homepage">http://www.arbortext.com/</otheraddr></address>
+<bridgehead renderas="sect4">BlockQuote</bridgehead>
+<blockquote>
+<para>The universe that we observe has precisely the properties we should
+expect if there is, at bottom, no design, no purpose, no evil and
+no good, nothing but pitiless indifference.&mdash;Richard Dawkins</para>
+</blockquote>
+<bridgehead renderas="sect4">Procedure</bridgehead>
+<procedure>
+<step>
+<para>This is the first step</para>
+</step>
+<step>
+<para>This is the second step</para>
+<substeps>
+<step>
+<para>This is the first substep</para>
+</step>
+<step>
+<para>This is the second substep</para>
+</step>
+</substeps>
+</step>
+<step>
+<para>This is the third step</para>
+</step>
+</procedure>
+<bridgehead renderas="sect4">Procedure With Title</bridgehead>
+<procedure>
+<title>Same Procedure with a Title</title>
+<step>
+<para>This is the first step</para>
+</step>
+<step>
+<para>This is the second step</para>
+<substeps>
+<step>
+<para>This is the first substep</para>
+</step>
+<step>
+<para>This is the second substep</para>
+</step>
+</substeps>
+</step>
+<step>
+<para>This is the third step</para>
+</step>
+</procedure>
+<bridgehead renderas="sect4">SideBar</bridgehead>
+<sidebar>
+<title>What About Bob?</title>
+<para>This is a sidebar.</para>
+</sidebar>
+<bridgehead renderas="sect4">MsgSet</bridgehead>
+<para>It's not really clear how <sgmltag>MsgSet</sgmltag> should be presented.
+I expect that it's fairly application, if not document, specific.</para>
+<msgset>
+<msgentry>
+<msg>
+<msgmain>
+<msgtext>
+<para>Record failed CRC</para>
+</msgtext>
+</msgmain>
+<msgsub>
+<msgtext>
+<para>Record <replaceable>n</replaceable>
+ in <replaceable>database</replaceable></para>
+</msgtext>
+</msgsub>
+<msgrel>
+<msgtext>
+<para>File read error on
+ <replaceable>database</replaceable></para>
+</msgtext>
+</msgrel>
+<msgrel>
+<msgtext>
+<para>Panic! Corrupt record!</para>
+</msgtext>
+</msgrel>
+</msg>
+<msginfo>
+<msglevel>severe</msglevel>
+<msgorig>server</msgorig>
+<msgaud>all</msgaud>
+</msginfo>
+<msgexplan>
+<para> Indicates that some sort of error occured attempting to load
+ a record from the database. Retry. If failure persists,
+ contact the database administrator.
+ </para>
+</msgexplan>
+</msgentry>
+</msgset>
+<bridgehead renderas="sect4">LiteralLayout</bridgehead>
+<literallayout>This is a
+literal
+ layout</literallayout>
+<para><literallayout>This is a
+literal
+ layout
+ in a para</literallayout></para>
+</simplesect>
+</chapter>
+<chapter>
+<title>List Tests</title>
+<simplesect>
+<title>OrderedLists</title>
+<bridgehead renderas="sect4">Default Numeration</bridgehead>
+<orderedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<programlisting>this one starts with
+a program listing
+what happens?</programlisting>
+</listitem>
+<listitem>
+<synopsis>this one starts with
+a synopsis
+what happens?</synopsis>
+</listitem>
+<listitem>
+<para>para first</para>
+<synopsis>this one has
+a synopsis
+what happens?</synopsis>
+</listitem>
+<listitem>
+<para>Three</para>
+<screen>A
+Screen
+Here</screen>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">Arabic Numeration</bridgehead>
+<orderedlist numeration="arabic">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">Arabic Numeration (Long)</bridgehead>
+<orderedlist numeration="arabic">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+<listitem>
+<para>Five</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+<listitem>
+<para>Seven</para>
+</listitem>
+<listitem>
+<para>Eight</para>
+</listitem>
+<listitem>
+<para>Nine</para>
+</listitem>
+<listitem>
+<para>Ten</para>
+</listitem>
+<listitem>
+<para>Eleven</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">UpperAlpha Numeration</bridgehead>
+<orderedlist numeration="upperalpha">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">LowerAlpha Numeration</bridgehead>
+<orderedlist numeration="loweralpha">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">UpperRoman Numeration</bridgehead>
+<orderedlist numeration="upperroman">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">LowerRoman Numeration</bridgehead>
+<orderedlist numeration="lowerroman">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">Continued</bridgehead>
+<para>First list:
+<orderedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist></para>
+<para>Second list:
+<orderedlist continuation="continues">
+<listitem>
+<para>Five</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+<listitem>
+<para>Seven</para>
+</listitem>
+<listitem>
+<para>Eight</para>
+</listitem>
+<listitem>
+<para>Nine</para>
+</listitem>
+<listitem>
+<para>Ten</para>
+</listitem>
+</orderedlist></para>
+</simplesect>
+<simplesect>
+<title>ItemizedLists</title>
+<bridgehead renderas="sect4">Default Presentation</bridgehead>
+<itemizedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<programlisting>One-point-five. This one starts with
+a program listing
+what happens?</programlisting>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+<bridgehead renderas="sect4">Block Elements in a List</bridgehead>
+<itemizedlist>
+<listitem>
+<para>One</para>
+<para>Another para.</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+<bridgehead renderas="sect4">Alternate Mark and OverRide</bridgehead>
+<itemizedlist mark="box">
+<listitem>
+<para>TeX and LaTeX</para>
+</listitem>
+<listitem override="bullet">
+<para>Troff</para>
+</listitem>
+<listitem>
+<para>Lout</para>
+</listitem>
+<listitem override="none">
+<para>Test</para>
+</listitem>
+</itemizedlist>
+<bridgehead renderas="sect4">No mark Presentation</bridgehead>
+<itemizedlist mark="none">
+<listitem override="none">
+<para>One</para>
+</listitem>
+<listitem override="bullet">
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+</simplesect>
+<simplesect>
+<title>VariableLists</title>
+<variablelist>
+<varlistentry>
+<term>Term1</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Term2</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Term3</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<itemizedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Term4</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<variablelist>
+<varlistentry>
+<term>Another List</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>ProgramListing</term>
+<listitem>
+<programlisting>A ProgramListing
+Is the First Element
+of this VarListEntry</programlisting>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</simplesect>
+<simplesect>
+<title>SimpleLists</title>
+<bridgehead renderas="sect4">Inline</bridgehead>
+<para>An inline simple list:
+<simplelist type="inline">
+<member>One</member>
+<member>Two</member>
+<member>Three</member>
+<member>Four</member>
+<member>Five</member>
+<member>Six</member>
+<member>Seven</member>
+</simplelist></para>
+<bridgehead renderas="sect4">Horiz</bridgehead>
+<simplelist columns="3" type="horiz">
+<member>One</member>
+<member>Two</member>
+<member>Three</member>
+<member>Four</member>
+<member>Five</member>
+<member>Six</member>
+<member>Seven</member>
+</simplelist>
+<bridgehead renderas="sect4">Vert</bridgehead>
+<simplelist columns="3" type="vert">
+<member>One</member>
+<member>Two</member>
+<member>Three</member>
+<member>Four</member>
+<member>Five</member>
+<member>Six</member>
+<member>Seven</member>
+</simplelist>
+</simplesect>
+<simplesect>
+<title>More Complex List Item Content</title>
+<itemizedlist>
+<listitem>
+<para>One</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Two</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<simpara>Three</simpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Four</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<formalpara>
+<title>Formal Element</title>
+<para>Five</para>
+</formalpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+</itemizedlist>
+<orderedlist>
+<listitem>
+<para>One</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Two</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<simpara>Three</simpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Four</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<formalpara>
+<title>Formal Element</title>
+<para>Five</para>
+</formalpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+</orderedlist>
+</simplesect>
+<simplesect>
+<title>Segmented List</title>
+<segmentedlist>
+<title>State Birds</title>
+<segtitle>State</segtitle>
+<segtitle>Bird</segtitle>
+<seglistitem>
+<seg>Alabama</seg>
+<seg>Yellowhammer</seg>
+</seglistitem>
+<seglistitem>
+<seg>Alaska</seg>
+<seg>Willow Ptarmigan</seg>
+</seglistitem>
+<seglistitem>
+<seg>Arizona</seg>
+<seg>Cactus Wren</seg>
+</seglistitem>
+<seglistitem>
+<seg>Arkansas</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>California</seg>
+<seg>California Valley Quail</seg>
+</seglistitem>
+<seglistitem>
+<seg>Colorado</seg>
+<seg>Lark Bunting</seg>
+</seglistitem>
+<seglistitem>
+<seg>Connecticut</seg>
+<seg>Robin</seg>
+</seglistitem>
+<seglistitem>
+<seg>Delaware</seg>
+<seg>Blue Hen Chicken</seg>
+</seglistitem>
+<seglistitem>
+<seg>Florida</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Georgia</seg>
+<seg>Brown Thrasher</seg>
+</seglistitem>
+<seglistitem>
+<seg>Hawaii</seg>
+<seg>Nene</seg>
+</seglistitem>
+<seglistitem>
+<seg>Idaho</seg>
+<seg>Mountain Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Illinois</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Indiana</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Iowa</seg>
+<seg>Eastern Goldfinch</seg>
+</seglistitem>
+<seglistitem>
+<seg>Kansas</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Kentucky</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Louisiana</seg>
+<seg>Eastern Brown Pelican</seg>
+</seglistitem>
+<seglistitem>
+<seg>Maine</seg>
+<seg>Chickadee</seg>
+</seglistitem>
+<seglistitem>
+<seg>Maryland</seg>
+<seg>Baltimore Oriole</seg>
+</seglistitem>
+<seglistitem>
+<seg>Massachusetts</seg>
+<seg>Chickadee</seg>
+</seglistitem>
+<seglistitem>
+<seg>Michigan</seg>
+<seg>Robin</seg>
+</seglistitem>
+<seglistitem>
+<seg>Minnesota</seg>
+<seg>Common Loon</seg>
+</seglistitem>
+<seglistitem>
+<seg>Mississippi</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Missouri</seg>
+<seg>Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Montana</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Nebraska</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Nevada</seg>
+<seg>Mountain Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>New Hampshire</seg>
+<seg>Purple Finch</seg>
+</seglistitem>
+<seglistitem>
+<seg>New Jersey</seg>
+<seg>Eastern Goldfinch</seg>
+</seglistitem>
+<seglistitem>
+<seg>New Mexico</seg>
+<seg>Roadrunner</seg>
+</seglistitem>
+<seglistitem>
+<seg>New York</seg>
+<seg>Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>North Carolina</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>North Dakota</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Ohio</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Oklahoma</seg>
+<seg>Scissor-tailed Flycatcher</seg>
+</seglistitem>
+<seglistitem>
+<seg>Oregon</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Pennsylvania</seg>
+<seg>Ruffed Grouse</seg>
+</seglistitem>
+<seglistitem>
+<seg>Rhode Island</seg>
+<seg>Rhode Island Red</seg>
+</seglistitem>
+<seglistitem>
+<seg>South Carolina</seg>
+<seg>Great Carolina Wren</seg>
+</seglistitem>
+<seglistitem>
+<seg>South Dakota</seg>
+<seg>Ring-necked Pheasant</seg>
+</seglistitem>
+<seglistitem>
+<seg>Tennessee</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Texas</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Utah</seg>
+<seg>American Seagull</seg>
+</seglistitem>
+<seglistitem>
+<seg>Vermont</seg>
+<seg>Hermit Thrush</seg>
+</seglistitem>
+<seglistitem>
+<seg>Virginia</seg>
+<seg>Cardinal </seg>
+</seglistitem>
+<seglistitem>
+<seg>Washington</seg>
+<seg>Willow Goldfinch</seg>
+</seglistitem>
+<seglistitem>
+<seg>West Virginia</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Wisconsin</seg>
+<seg>Robin</seg>
+</seglistitem>
+<seglistitem>
+<seg>Wyoming</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+</segmentedlist>
+</simplesect>
+</chapter>
+<chapter>
+<title>Table Tests</title>
+<bridgehead renderas="sect4">Alternate Alignment on Entry</bridgehead>
+<informaltable frame="all">
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="2in"/>
+<colspec colnum="2" colname="c2" colwidth="2in"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left">left</entry>
+<entry align="center">center</entry>
+<entry>center</entry>
+</row>
+<row>
+<entry align="center">center</entry>
+<entry align="right">right</entry>
+<entry align="right">right</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<informaltable frame="topbot">
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="2in"/>
+<colspec colnum="2" colname="c2" colwidth="2in"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left">left</entry>
+<entry align="center">center</entry>
+<entry>center</entry>
+</row>
+<row>
+<entry align="center">center</entry>
+<entry align="right">right</entry>
+<entry align="right">right</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<informaltable>
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="2in"/>
+<colspec colnum="2" colname="c2" colwidth="2in"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left"><emphasis>left emph</emphasis></entry>
+<entry align="center"><emphasis role="bold">center emph/bold</emphasis></entry>
+<entry><literal>center literal</literal></entry>
+</row>
+<row>
+<entry align="center"><filename>center filename</filename></entry>
+<entry align="right"><command>right command</command></entry>
+<entry align="right">right</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Absolute Widths</bridgehead>
+<informaltable>
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="1in"/>
+<colspec colnum="2" colname="c2" colwidth="1in"/>
+<colspec colnum="3" colname="c3" colwidth="1in" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>e1</entry>
+<entry>e2</entry>
+<entry>e3</entry>
+</row>
+<row>
+<entry>e1</entry>
+<entry>e2</entry>
+<entry>e3</entry>
+</row>
+<row>
+<entry>e1</entry>
+<entry>e2</entry>
+<entry>e3</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Relative Widths</bridgehead>
+<informaltable>
+<tgroup cols="2">
+<colspec colnum="1" colname="c1" colwidth="3*"/>
+<colspec colnum="2" colname="c2" colwidth="2*"/>
+<tbody>
+<row>
+<entry align="left"><para>left</para></entry>
+<entry align="center"><para>center</para></entry>
+</row>
+<row>
+<entry align="center"><para>center</para></entry>
+<entry align="right"><para>right</para></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Complex</bridgehead>
+<informaltable pgwide="1">
+<tgroup cols="6">
+<colspec colnum="2" colname="c2" align="right"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<colspec colnum="5" colname="c5"/>
+<colspec colname="c6" align="left"/>
+<spanspec namest="c2" nameend="c3" spanname="span"/>
+<tbody>
+<row>
+<entry>A1</entry>
+<entry>A2</entry>
+<entry>A3</entry>
+<entry morerows="1">A4</entry>
+<entry>A5</entry>
+<entry>A6</entry>
+</row>
+<row>
+<entry>B1</entry>
+<entry colsep="1" rowsep="1">B2</entry>
+<entry rowsep="1">B3</entry>
+<entry>B5</entry>
+<entry>B6</entry>
+</row>
+<row>
+<entry>C1</entry>
+<entry colsep="1">C2</entry>
+<entry>C3</entry>
+<entry>C4</entry>
+<entry namest="c5" nameend="c6" morerows="2" valign="middle">C5</entry>
+</row>
+<row>
+<entry namest="c2">D2</entry>
+<entry>D3</entry>
+<entry>D4</entry>
+</row>
+<row>
+<entry>E1</entry>
+<entry spanname="span" align="left">E2</entry>
+<entry>E4</entry>
+</row>
+<row>
+<entry>F1</entry>
+<entry>F2</entry>
+<entry>F3</entry>
+<entry>F4</entry>
+<entry>F5</entry>
+<entry>F6</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">With Footnotes</bridgehead>
+<informaltable>
+<tgroup cols="2">
+<tbody>
+<row>
+<entry>foo<footnote id="fnrex1a">
+<para>A meaningless
+word</para>
+</footnote></entry>
+<entry>3<footnote id="fnrex1b">
+<para>A meaningless
+number</para>
+</footnote></entry>
+</row>
+<row>
+<entry>bar<footnoteref linkend="fnrex1a"/></entry>
+<entry>5<footnoteref linkend="fnrex1b"/></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">A Big One</bridgehead>
+<informaltable>
+<tgroup cols="15">
+<thead>
+<row>
+<entry>H1</entry>
+<entry>H2</entry>
+<entry>H3</entry>
+<entry>H4</entry>
+<entry>H5</entry>
+<entry>H6</entry>
+<entry>H7</entry>
+<entry>H8</entry>
+<entry>H9</entry>
+<entry>H10</entry>
+<entry>H11</entry>
+<entry>H12</entry>
+<entry>H13</entry>
+<entry>H14</entry>
+<entry>H15</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</chapter>
+<chapter>
+<title>Index Term Tests</title>
+<para>Test data.</para>
+<indexterm id="idx1">
+<primary>oft-repeated</primary>
+</indexterm>
+<indexterm id="idx2">
+<primary>chap-level</primary>
+</indexterm>
+<sect1>
+<title>Index Term Sect 1</title>
+<para>Test data.</para>
+<indexterm id="idx3">
+<primary>!</primary>
+</indexterm>
+<indexterm id="fred">
+<primary>oft-repeated</primary>
+<secondary>with id</secondary>
+</indexterm>
+<indexterm significance="preferred" id="idx5">
+<primary>sect1-level</primary>
+</indexterm>
+<indexterm id="idx6">
+<primary>sect1-level</primary>
+</indexterm>
+<indexterm id="idx7">
+<primary>sect1-level</primary>
+<secondary>sec</secondary>
+</indexterm>
+<indexterm id="idx8">
+<primary>sect1-other</primary>
+<secondary>sec</secondary>
+</indexterm>
+<indexterm id="idx9">
+<primary>chap-level</primary>
+<secondary>sec</secondary>
+<tertiary>tert</tertiary>
+</indexterm>
+<indexterm scope="local">
+<primary>chap-level</primary>
+<secondary>sec</secondary>
+<tertiary>tert</tertiary>
+</indexterm>
+<indexterm id="idx11">
+<primary>sect1-level</primary>
+</indexterm>
+<sect2>
+<title>Index Term Sect 2</title>
+<para>Test data.</para>
+<indexterm id="idx12">
+<primary>[</primary>
+</indexterm>
+<indexterm id="idx13">
+<primary>oft-repeated</primary>
+</indexterm>
+<indexterm id="idx14">
+<primary sortas="abracadabra">sect2-level</primary>
+</indexterm>
+<indexterm id="idx15">
+<primary>chap-level</primary>
+<secondary>sec</secondary>
+<tertiary>tert</tertiary>
+</indexterm>
+</sect2>
+<sect2>
+<title>Index Term Sect 3</title>
+<para>foo</para>
+</sect2>
+</sect1>
+</chapter>
+</part>
+<part id="part">
+<title>Part Two Title</title>
+<chapter>
+<title>CmdSynopsis Tests</title>
+<bridgehead renderas="sect4">Very Simple CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>cd</command>
+<arg choice="req"><replaceable>directory</replaceable></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Simple CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>cal</command>
+<arg>-j</arg>
+<arg>-y</arg>
+<arg>month <arg>year</arg></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Another Simple CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>chgrp</command>
+<arg>-R
+ <group>
+<arg>-H</arg>
+<arg>-L</arg>
+<arg>-P</arg>
+</group>
+ </arg>
+<arg>-f</arg>
+<arg choice="plain"><replaceable>group</replaceable></arg>
+<arg choice="plain" rep="repeat"><replaceable>file</replaceable></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Slightly Complex CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>emacs</command>
+<arg>-t <replaceable>file</replaceable></arg>
+<arg>-q</arg>
+<arg>-u <replaceable>user</replaceable></arg>
+<arg>+<replaceable>number</replaceable></arg>
+<arg rep="repeat">-f <replaceable>function</replaceable></arg>
+<arg rep="repeat">-l <replaceable>file</replaceable></arg>
+<arg choice="plain" rep="repeat"><replaceable>file</replaceable></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Quite Complex CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>cccp</command>
+<arg>-$</arg>
+<arg>-C</arg>
+<arg rep="repeat">-D<replaceable>name</replaceable><arg>=<replaceable>definition</replaceable></arg></arg>
+<arg>-dD</arg>
+<arg>-dM</arg>
+<arg rep="repeat">-I <replaceable>directory</replaceable></arg>
+<arg>-H</arg>
+<arg>-I-</arg>
+<sbr/>
+<arg rep="repeat">-imacros <replaceable>file</replaceable></arg>
+<arg rep="repeat">-include <replaceable>file</replaceable></arg>
+<group>
+<arg>-lang-c</arg>
+<arg>-lang-c++</arg>
+<arg>-lang-objc</arg>
+</group>
+<arg>-lint</arg>
+<sbr/>
+<group>
+<arg>-M</arg>
+<arg>-MD</arg>
+<arg>-MM</arg>
+<arg>-MMD</arg>
+</group>
+<arg>-nostdinc</arg>
+<arg>-P</arg>
+<arg>-pedantic</arg>
+<arg>-pedantic-errors</arg>
+<arg>-trigraphs</arg>
+<arg>-U<replaceable>name</replaceable></arg>
+<sbr/>
+<arg>-undef</arg>
+<arg>-Wtrigraphs</arg>
+<arg>-Wcomment</arg>
+<arg>-Wall</arg>
+<arg>-Wtraditional</arg>
+<group choice="req">
+<arg><replaceable>infile</replaceable></arg>
+<arg>-</arg>
+</group>
+<group choice="req">
+<arg><replaceable>outfile</replaceable></arg>
+<arg>-</arg>
+</group>
+</cmdsynopsis>
+</chapter>
+<chapter>
+<title>FuncSynopsis Tests</title>
+<bridgehead renderas="sect4">Two Simple Parameters</bridgehead>
+<funcsynopsis>
+<funcprototype>
+<funcdef>int <function>max</function></funcdef>
+<paramdef>int <parameter>int1</parameter></paramdef>
+<paramdef>int <parameter>int2</parameter></paramdef>
+</funcprototype>
+</funcsynopsis>
+<bridgehead renderas="sect4">Variable Arguments</bridgehead>
+<funcsynopsis>
+<funcsynopsisinfo>#include &lt;varargs.h&gt;</funcsynopsisinfo>
+<funcprototype>
+<funcdef>int <function>max</function></funcdef>
+<varargs/>
+</funcprototype>
+</funcsynopsis>
+<bridgehead renderas="sect4">Void</bridgehead>
+<funcsynopsis>
+<funcprototype>
+<funcdef>int <function>rand</function></funcdef>
+<void/>
+</funcprototype>
+</funcsynopsis>
+<bridgehead renderas="sect4">Function Pointer Arguments</bridgehead>
+<funcsynopsis>
+<funcprototype>
+<funcdef>void <function>qsort</function></funcdef>
+<paramdef>void *<parameter>dataptr</parameter>[]</paramdef>
+<paramdef>int <parameter>left</parameter></paramdef>
+<paramdef>int <parameter>right</parameter></paramdef>
+<paramdef>int <parameter>(* comp)</parameter>
+ <funcparams>void *, void *</funcparams></paramdef>
+</funcprototype>
+</funcsynopsis>
+</chapter>
+<chapter>
+<title>Callout Tests</title>
+<bridgehead renderas="sect4">CallOut (using AREASPEC)</bridgehead>
+<programlistingco>
+<areaspec>
+<area coords="1" id="prologue"/>
+<area coords="4" id="skipeof"/>
+<areaset coords="" id="xreq">
+<area coords="9" id="require1"/>
+<area coords="10" id="require2"/>
+</areaset>
+<area coords="11 12" id="use"/>
+<area coords="27" id="funccall"/>
+</areaspec>
+<programlisting>@rem = '--*-Perl-*--
+@echo off
+perl.exe %_batchname %$
+goto endofperl
+@rem ';
+
+# Compress mail...
+
+require 'n:/home/nwalsh/lib/cygnus.pl';
+require 'timelocal.pl';
+use Cwd;
+
+select (STDERR); $| = 1;
+select (STDOUT); $| = 1;
+
+@DIRS = ("/home/nwalsh/Mail");
+while (@DIRS) {
+ $dir = shift @DIRS;
+ opendir (DIR, $dir);
+ while ($fname = readdir(DIR)) {
+ $file = "$dir/$fname";
+ next if ! -d $file;
+ next if $fname =~ /^\.\.?$/;
+
+ print "$file\n";
+ push (@DIRS, $file);
+ &amp;compress ($file);
+ }
+}
+
+exit;</programlisting>
+<calloutlist>
+<callout arearefs="prologue">
+<para>The prologue handles embedding a Perl script in a DOS batch file.</para>
+</callout>
+<callout arearefs="skipeof">
+<para>The <literal>goto</literal> statement, interpreted by the DOS batch
+file interpreter, skips over the body of the Perl script.</para>
+</callout>
+<callout arearefs="require1">
+<para>The <literal>require</literal> statement sources in external program
+fragments.</para>
+</callout>
+<callout arearefs="use">
+<para>The <literal>use</literal> statement is similar, but has additional
+utility. It is a Perl5 function. (Note that this callout area specifies
+both a line and a column.)</para>
+</callout>
+<callout arearefs="funccall">
+<para>This is a user subroutine call.</para>
+</callout>
+</calloutlist>
+</programlistingco>
+<bridgehead renderas="sect4">CallOut (using CO)</bridgehead>
+<programlisting>this is a line
+this is another line
+there's a <co id="callout1"/>callout in here.
+and there's another on the
+next line
+right here:<co id="callout2"/></programlisting>
+<calloutlist>
+<callout arearefs="callout1">
+<para>First callout.</para>
+<para>Second para in first callout.</para>
+</callout>
+<callout arearefs="callout2">
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Second callout.</para>
+<para>Third para in second callout.</para>
+</callout>
+<callout arearefs="callout1 callout2">
+<para>This paragraph describes <emphasis>both</emphasis> callouts.</para>
+</callout>
+</calloutlist>
+</chapter>
+</part>
+<part>
+<title>A Reference Part</title>
+<reference id="reference">
+<title>Reference</title>
+<refentry>
+<refmeta>
+<refentrytitle>RefEntryTitle</refentrytitle>
+</refmeta>
+<refnamediv>
+<refdescriptor>RefDescriptor</refdescriptor>
+<refname>RefName1</refname>
+<refname>RefName2</refname>
+<refpurpose>Yes, there must be a purpose!</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis> A
+ Synopsis
+ Goes
+ Here</synopsis>
+</refsynopsisdiv>
+<refsect1>
+<title>A RefSect1</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<refsect2>
+<title>A RefSect2</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<refsect3>
+<title>A RefSect3</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah.<footnote>
+<para>This is a footnote in a refentry.</para>
+</footnote>
+Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</refsect3>
+</refsect2>
+</refsect1>
+</refentry>
+<refentry>
+<refnamediv>
+<refname><function>Chop</function></refname>
+<refpurpose>strip trailing whitespace</refpurpose>
+</refnamediv>
+<refsect1>
+<title>Description</title>
+<para> Returns the argument string without trailing whitespace.
+ <example>
+<title>chop() example</title>
+<programlisting>$trimmed = Chop($line);</programlisting>
+</example>
+ </para>
+</refsect1>
+</refentry>
+</reference>
+</part>
+<appendix id="appendix">
+<title>A Very Short Appendix</title>
+<para>Blah.</para>
+</appendix>
+<appendix>
+<title>A Very Long Appendix</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<sect1>
+<title>a sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect2>
+<title>a sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<title>a sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect4>
+<title>a sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<title>a sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1>
+<sect1info>
+<title>another sect1 title</title>
+<subtitle>a sect1 subtitle</subtitle>
+</sect1info>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect2>
+<sect2info>
+<title>another sect2 title</title>
+<subtitle>a sect2 subtitle</subtitle>
+</sect2info>
+<title>another sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<sect3info>
+<title>another sect3 title</title>
+<subtitle>a sect3 subtitle</subtitle>
+</sect3info>
+<title>another sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect4>
+<sect4info>
+<title>another sect4 title</title>
+<subtitle>a sect4 subtitle</subtitle>
+</sect4info>
+<title>another sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<sect5info>
+<title>another sect5 title</title>
+<subtitle>a sect5 subtitle</subtitle>
+</sect5info>
+<title>another sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+<sect1>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+</appendix>
+<bibliography id="bib1">
+<title>A Test Bibliography</title>
+<para>The stock stylesheet attempts to do a Bibliography. It probably needs
+a lot of tweaking. It probably doesn't conform to any specific style.</para>
+<bibliodiv>
+<title>Books</title>
+<biblioentry>
+<abbrev>AhoSethiUllman96</abbrev>
+<authorgroup>
+<author>
+<firstname>Alfred V.</firstname>
+<surname>Aho</surname>
+</author>
+<author>
+<firstname>Ravi</firstname>
+<surname>Sethi</surname>
+</author>
+<author>
+<firstname>Jeffrey D.</firstname>
+<surname>Ullman</surname>
+</author>
+</authorgroup>
+<title>Compilers, Principles, Techniques, and Tools</title>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+<copyright>
+<year>1996</year>
+<holder>Bell Telephone Laboratories, Inc.</holder>
+</copyright>
+<isbn>0-201-10088-6</isbn>
+<editor>
+<firstname>James T.</firstname>
+<surname>DeWolf</surname>
+</editor>
+<seriesinfo>
+<title>Computer Science</title>
+<editor>
+<firstname>Michael A.</firstname>
+<surname>Harrison</surname>
+</editor>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+</seriesinfo>
+</biblioentry>
+</bibliodiv>
+<bibliodiv>
+<title>Periodicals</title>
+<biblioentry id="walsh97">
+<abbrev>Walsh97</abbrev>
+<biblioset relation="article">
+<title>A Guide to XML</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<pubdate>1997</pubdate>
+<copyright>
+<year>1997</year>
+<holder>ArborText, Inc.</holder>
+</copyright>
+<pagenums>97-108</pagenums>
+</biblioset>
+<biblioset relation="journal">
+<title>XML: Principles, Tools, and Techniques</title>
+<publisher>
+<publishername>O'Reilly &amp; Associates, Inc.</publishername>
+</publisher>
+<issn>1085-2301</issn>
+<editor>
+<firstname>Dan</firstname>
+<surname>Connolly</surname>
+</editor>
+</biblioset>
+</biblioentry>
+<bibliomixed id="walsh96"> <bibliomset relation="article"> <surname>Walsh</surname>, <firstname>Norman</firstname>.
+ <title role="article">Introduction to Cascading Style Sheets</title>.
+ </bibliomset>
+ <bibliomset relation="journal"> <title>The World Wide Web Journal</title>.
+ <volumenum>2</volumenum>(<issuenum>1</issuenum>).
+ <publishername>O'Reilly &amp; Associates, Inc.</publishername> and
+ <corpname>The World Wide Web Consortium</corpname>.
+ <pubdate>Winter, 1996</pubdate></bibliomset>.</bibliomixed>
+<biblioentry>
+<abbrev>Abbrev</abbrev>
+<title>A Really Full BiblioEntry</title>
+<subtitle>Subtitle</subtitle>
+<abstract>
+<para>Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract. </para>
+</abstract>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+<artpagenums>ArtPageNums</artpagenums>
+<author>
+<firstname>AuthorFirstname</firstname>
+<surname>AuthorSurname</surname>
+</author>
+<authorblurb>
+<para>AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. </para>
+</authorblurb>
+<authorinitials>AuthorInitials</authorinitials>
+<collab>
+<collabname>The names of some collaborators</collabname>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+</collab>
+<confgroup>
+<confdates>confdates</confdates>
+<conftitle>conftitle</conftitle>
+<confnum>confnum</confnum>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<confsponsor>confsponsor</confsponsor>
+</confgroup>
+<contractnum>ContractNum</contractnum>
+<contractsponsor>ContractSponsor</contractsponsor>
+<contrib>Contrib</contrib>
+<copyright>
+<year>1998</year>
+<holder>Copyright holder</holder>
+</copyright>
+<corpname>CorpName</corpname>
+<date>Date</date>
+<edition>Edition</edition>
+<editor>
+<firstname>EditorFirstName</firstname>
+<surname>EditorSurname</surname>
+</editor>
+<firstname>FirstName</firstname>
+<honorific>Honorific</honorific>
+<isbn>ISBN</isbn>
+<issn>ISSN</issn>
+<invpartnumber>InvPartNumber</invpartnumber>
+<issuenum>IssueNum</issuenum>
+<lineage>Lineage</lineage>
+<orgname>OrgName</orgname>
+<othercredit>
+<firstname>OCFirstName</firstname>
+<surname>OCSurname</surname>
+</othercredit>
+<othername>OtherName</othername>
+<pagenums>PageNums</pagenums>
+<printhistory>
+<para>PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.</para>
+</printhistory>
+<productname>ProductName</productname>
+<productnumber>ProductNumber</productnumber>
+<pubdate>PubDate</pubdate>
+<publisher>
+<publishername>PubPublisherName</publishername>
+<address><street>Any Street</street>
+<city>Anywhere</city>, <state>XX</state> <postcode>99999</postcode>
+<country>USA</country></address>
+</publisher>
+<publishername>PublisherName</publishername>
+<pubsnumber>PubsNumber</pubsnumber>
+<releaseinfo>ReleaseInfo</releaseinfo>
+<revhistory>
+<revision>
+<revnumber>1.0</revnumber>
+<date>20 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.9</revnumber>
+<date>19 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.4</revnumber>
+<date>18 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+</revhistory>
+<seriesinfo>
+<title>SeriesInfo Title</title>
+<editor>
+<firstname>SeriesInfo Editor Firstname</firstname>
+<surname>SeriesInfo Editor Surname</surname>
+</editor>
+</seriesinfo>
+<seriesvolnums>SeriesVolNums</seriesvolnums>
+<surname>Surname</surname>
+<titleabbrev>TitleAbbrev</titleabbrev>
+<volumenum>VolumeNum</volumenum>
+</biblioentry>
+</bibliodiv>
+</bibliography>
+<glossary id="gloss">
+<title>Example Glossary</title>
+<para>This is not a real glossary, it's just an example.</para>
+<glossdiv>
+<title>E</title>
+<glossentry id="xml">
+<glossterm>Extensible Markup Language</glossterm>
+<acronym>XML</acronym>
+<glossdef>
+<para>Some reasonable definition here.</para>
+<glossseealso otherterm="sgml"/>
+</glossdef>
+</glossentry>
+</glossdiv>
+<glossdiv>
+<title>S</title>
+<glossentry>
+<glossterm>SGML</glossterm>
+<glosssee otherterm="sgml"/>
+</glossentry>
+<glossentry id="sgml">
+<glossterm>Standard Generalized
+ Markup Language</glossterm>
+<acronym>SGML</acronym>
+<abbrev>ISO 8879:1986</abbrev>
+<glossdef>
+<para>Some reasonable definition here.</para>
+<glossseealso otherterm="xml"/>
+</glossdef>
+</glossentry>
+</glossdiv>
+</glossary>
+<index id="index">
+<para>This is a test index.</para>
+<formalpara>
+<title>a formal para</title>
+<para>this is a formal paragraph.</para>
+</formalpara>
+<indexentry>
+<primaryie>Primary</primaryie>
+<secondaryie>Secondary 1</secondaryie>
+<tertiaryie>Tertiary 11</tertiaryie>
+<tertiaryie>Tertiary 12</tertiaryie>
+<secondaryie>Secondary 2</secondaryie>
+<tertiaryie>Tertiary 21</tertiaryie>
+</indexentry>
+<indexentry id="prim1">
+<primaryie>primary</primaryie>
+</indexentry>
+<indexentry id="prim2">
+<primaryie>primary</primaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+<tertiaryie>tertiary1</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+<tertiaryie>tertiary2</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary2</secondaryie>
+<tertiaryie>tertiary3</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<seeie linkend="prim2">see ie</seeie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary2</secondaryie>
+<tertiaryie>tertiary3</tertiaryie>
+<seealsoie linkends="prim2 prim1">seealso ie</seealsoie>
+</indexentry>
+</index>
+<index><title>An Index with a Title</title>
+<indexdiv>
+<title>Symbols</title>
+<indexentry>
+<primaryie>!,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+ </primaryie>
+</indexentry>
+<indexentry>
+<primaryie>[,
+ <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+ </primaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>A</title>
+<indexentry>
+<primaryie>sect2-level,
+ <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+ </primaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>C</title>
+<indexentry>
+<primaryie>chap-level,
+ <ulink url="c3.htm" role="c3.htm">Index Term Tests</ulink>
+ </primaryie>
+<secondaryie>sec
+ </secondaryie>
+<tertiaryie>tert,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>,
+ <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+ </tertiaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>O</title>
+<indexentry>
+<primaryie>oft-repeated,
+ <ulink url="c3.htm" role="c3.htm">Index Term Tests</ulink>,
+ <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+ </primaryie>
+<secondaryie>with id,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+ </secondaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>S</title>
+<indexentry>
+<primaryie>sect1-level,
+ <ulink url="c3.htm#aen10" role="aen10"><emphasis>Index Term Sect 1</emphasis></ulink>
+ </primaryie>
+<secondaryie>sec,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+ </secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>sect1-other
+ </primaryie>
+<secondaryie>sec,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+ </secondaryie>
+</indexentry>
+</indexdiv>
+</index>
+</book>
diff --git a/tests/docbook/test/book3.xml b/tests/docbook/test/book3.xml
new file mode 100644
index 00000000..11c3a825
--- /dev/null
+++ b/tests/docbook/test/book3.xml
@@ -0,0 +1,391 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "../dtd/4.1.2/docbookx.dtd">
+<book id="book">
+<bookinfo>
+<title>Book Title</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<corpauthor>Some Corporation</corpauthor>
+<legalnotice>
+<title>Legal Notice</title>
+<para>This is a test document. You can do what you will with it.</para>
+</legalnotice>
+<legalnotice>
+<para>This is a second legal notice. But it's not noteworthy.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ </para>
+</legalnotice>
+<copyright>
+<year>1998</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</bookinfo>
+<bibliography id="bib1">
+<title>A Test Bibliography</title>
+<para>The stock stylesheet attempts to do a Bibliography. It probably needs
+a lot of tweaking. It probably doesn't conform to any specific style.</para>
+<bibliodiv>
+<title>Books</title>
+<biblioentry>
+<abbrev>AhoSethiUllman96</abbrev>
+<authorgroup>
+<author>
+<firstname>Alfred V.</firstname>
+<surname>Aho</surname>
+</author>
+<author>
+<firstname>Ravi</firstname>
+<surname>Sethi</surname>
+</author>
+<author>
+<firstname>Jeffrey D.</firstname>
+<surname>Ullman</surname>
+</author>
+</authorgroup>
+<title>Compilers, Principles, Techniques, and Tools</title>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+<copyright>
+<year>1996</year>
+<holder>Bell Telephone Laboratories, Inc.</holder>
+</copyright>
+<isbn>0-201-10088-6</isbn>
+<editor>
+<firstname>James T.</firstname>
+<surname>DeWolf</surname>
+</editor>
+</biblioentry>
+</bibliodiv>
+<bibliodiv>
+<title>Periodicals</title>
+<biblioentry id="walsh97">
+<abbrev>Walsh97</abbrev>
+<biblioset relation="article">
+<title>A Guide to XML</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<pubdate>1997</pubdate>
+<copyright>
+<year>1997</year>
+<holder>ArborText, Inc.</holder>
+</copyright>
+<pagenums>97-108</pagenums>
+</biblioset>
+<biblioset relation="journal">
+<title>XML: Principles, Tools, and Techniques</title>
+<publisher>
+<publishername>O'Reilly &amp; Associates, Inc.</publishername>
+</publisher>
+<issn>1085-2301</issn>
+<editor>
+<firstname>Dan</firstname>
+<surname>Connolly</surname>
+</editor>
+</biblioset>
+</biblioentry>
+<bibliomixed id="walsh96"> <bibliomset relation="article"> <surname>Walsh</surname>, <firstname>Norman</firstname>.
+ <title role="article">Introduction to Cascading Style Sheets</title>.
+ </bibliomset>
+ <bibliomset relation="journal"> <title>The World Wide Web Journal</title>.
+ <volumenum>2</volumenum>(<issuenum>1</issuenum>).
+ <publishername>O'Reilly &amp; Associates, Inc.</publishername> and
+ <corpname>The World Wide Web Consortium</corpname>.
+ <pubdate>Winter, 1996</pubdate></bibliomset>.</bibliomixed>
+<biblioentry>
+<abbrev>Abbrev</abbrev>
+<title>A Really Full BiblioEntry</title>
+<subtitle>Subtitle</subtitle>
+<abstract>
+<para>Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract. </para>
+</abstract>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+<artpagenums>ArtPageNums</artpagenums>
+<author>
+<firstname>AuthorFirstname</firstname>
+<surname>AuthorSurname</surname>
+</author>
+<authorblurb>
+<para>AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. </para>
+</authorblurb>
+<authorinitials>AuthorInitials</authorinitials>
+<collab>
+<collabname>The names of some collaborators</collabname>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+</collab>
+<confgroup>
+<confdates>confdates</confdates>
+<conftitle>conftitle</conftitle>
+<confnum>confnum</confnum>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<confsponsor>confsponsor</confsponsor>
+</confgroup>
+<contractnum>ContractNum</contractnum>
+<contractsponsor>ContractSponsor</contractsponsor>
+<contrib>Contrib</contrib>
+<copyright>
+<year>1998</year>
+<holder>Copyright holder</holder>
+</copyright>
+<corpname>CorpName</corpname>
+<date>Date</date>
+<edition>Edition</edition>
+<editor>
+<firstname>EditorFirstName</firstname>
+<surname>EditorSurname</surname>
+</editor>
+<firstname>FirstName</firstname>
+<honorific>Honorific</honorific>
+<isbn>ISBN</isbn>
+<issn>ISSN</issn>
+<invpartnumber>InvPartNumber</invpartnumber>
+<issuenum>IssueNum</issuenum>
+<lineage>Lineage</lineage>
+<orgname>OrgName</orgname>
+<othercredit>
+<firstname>OCFirstName</firstname>
+<surname>OCSurname</surname>
+</othercredit>
+<othername>OtherName</othername>
+<pagenums>PageNums</pagenums>
+<printhistory>
+<para>PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.</para>
+</printhistory>
+<productname>ProductName</productname>
+<productnumber>ProductNumber</productnumber>
+<pubdate>PubDate</pubdate>
+<publisher>
+<publishername>PubPublisherName</publishername>
+<address><street>Any Street</street>
+<city>Anywhere</city>, <state>XX</state> <postcode>99999</postcode>
+<country>USA</country></address>
+</publisher>
+<publishername>PublisherName</publishername>
+<pubsnumber>PubsNumber</pubsnumber>
+<releaseinfo>ReleaseInfo</releaseinfo>
+<revhistory>
+<revision>
+<revnumber>1.0</revnumber>
+<date>20 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.9</revnumber>
+<date>19 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.4</revnumber>
+<date>18 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+</revhistory>
+<seriesvolnums>SeriesVolNums</seriesvolnums>
+<surname>Surname</surname>
+<titleabbrev>TitleAbbrev</titleabbrev>
+<volumenum>VolumeNum</volumenum>
+</biblioentry>
+</bibliodiv>
+</bibliography>
+<glossary id="gloss">
+<title>Example Glossary</title>
+<para>This is not a real glossary, it's just an example.</para>
+<glossdiv>
+<title>E</title>
+<glossentry id="xml">
+<glossterm>Extensible Markup Language</glossterm>
+<acronym>XML</acronym>
+<glossdef>
+<para>Some reasonable definition here.</para>
+<glossseealso otherterm="sgml"/>
+</glossdef>
+</glossentry>
+</glossdiv>
+<glossdiv>
+<title>S</title>
+<glossentry>
+<glossterm>SGML</glossterm>
+<glosssee otherterm="sgml"/>
+</glossentry>
+<glossentry id="sgml">
+<glossterm>Standard Generalized
+ Markup Language</glossterm>
+<acronym>SGML</acronym>
+<abbrev>ISO 8879:1986</abbrev>
+<glossdef>
+<para>Some reasonable definition here.</para>
+<glossseealso otherterm="xml"/>
+</glossdef>
+</glossentry>
+</glossdiv>
+</glossary>
+<index id="index">
+<para>This is a test index.</para>
+<formalpara>
+<title>a formal para</title>
+<para>this is a formal paragraph.</para>
+</formalpara>
+<indexentry>
+<primaryie>Primary</primaryie>
+<secondaryie>Secondary 1</secondaryie>
+<tertiaryie>Tertiary 11</tertiaryie>
+<tertiaryie>Tertiary 12</tertiaryie>
+<secondaryie>Secondary 2</secondaryie>
+<tertiaryie>Tertiary 21</tertiaryie>
+</indexentry>
+<indexentry id="prim1">
+<primaryie>primary</primaryie>
+</indexentry>
+<indexentry id="prim2">
+<primaryie>primary</primaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+<tertiaryie>tertiary1</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+<tertiaryie>tertiary2</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary2</secondaryie>
+<tertiaryie>tertiary3</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<seeie linkend="prim2">see ie</seeie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary2</secondaryie>
+<tertiaryie>tertiary3</tertiaryie>
+<seealsoie linkends="prim2 prim1">seealso ie</seealsoie>
+</indexentry>
+</index>
+<index>
+<indexdiv>
+<title>Symbols</title>
+<indexentry>
+<primaryie>!,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+ </primaryie>
+</indexentry>
+<indexentry>
+<primaryie>[,
+ <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+ </primaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>A</title>
+<indexentry>
+<primaryie>sect2-level,
+ <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+ </primaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>C</title>
+<indexentry>
+<primaryie>chap-level,
+ <ulink url="c3.htm" role="c3.htm">Index Term Tests</ulink>
+ </primaryie>
+<secondaryie>sec
+ </secondaryie>
+<tertiaryie>tert,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>,
+ <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+ </tertiaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>O</title>
+<indexentry>
+<primaryie>oft-repeated,
+ <ulink url="c3.htm" role="c3.htm">Index Term Tests</ulink>,
+ <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+ </primaryie>
+<secondaryie>with id,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+ </secondaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>S</title>
+<indexentry>
+<primaryie>sect1-level,
+ <ulink url="c3.htm#aen10" role="aen10"><emphasis>Index Term Sect 1</emphasis></ulink>
+ </primaryie>
+<secondaryie>sec,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+ </secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>sect1-other
+ </primaryie>
+<secondaryie>sec,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+ </secondaryie>
+</indexentry>
+</indexdiv>
+</index>
+</book>
diff --git a/tests/docbook/test/callout.xml b/tests/docbook/test/callout.xml
new file mode 100644
index 00000000..777c180b
--- /dev/null
+++ b/tests/docbook/test/callout.xml
@@ -0,0 +1,55 @@
+<?xml version='1.0'?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "../dtd/4.1.2/docbookx.dtd">
+<section id="dsssl.expr.loop"><title>Loops</title>
+<para>
+<indexterm><primary>for loop, DSSSL and</primary></indexterm>
+<indexterm><primary>loops, implementing (DSSSL)</primary></indexterm>
+<indexterm><primary>tail recursion (DSSSL)</primary></indexterm>
+
+<acronym>DSSSL</acronym> doesn't have any construct that resembles the
+for loop that occurs in most imperative languages like C
+and Java. Instead, <acronym>DSSSL</acronym> employs a common trick in
+functional languages for implementing a loop: tail recursion.
+</para>
+<para>
+Loops in <acronym>DSSSL</acronym> use a special form of
+<literal>let</literal>. This loop counts from 1 to 10:
+<screen>
+(let <co id="dl1"/>loopvar <co id="dl2"/>((count 1))
+ <co id="dl3"/>(if (> count 10)
+ <co id="dl4"/>#t
+ (<co id="dl5"/>loopvar <co id="dl6"/>(+ count 1))))</screen></para>
+<calloutlist>
+<callout arearefs="dl1">
+<para>This variable controls the loop. It is declared without an
+initial value, immediately after the <literal>let</literal>
+operand.</para>
+</callout>
+<callout arearefs="dl2">
+<para>
+<indexterm><primary>variables (DSSSL)</primary>
+ <secondary>local, defining after loop variable</secondary></indexterm>
+
+Any number of additional local variables can be defined after
+the loop variable, just as they can in any other
+<literal>let</literal> expression.</para>
+</callout>
+<callout arearefs="dl3">
+<para>If you ever want the loop to end, you have to put some sort of a
+test in it.</para>
+</callout>
+<callout arearefs="dl4">
+<para>This is the value that will be returned.</para>
+</callout>
+<callout arearefs="dl5">
+<para>Note that you iterate the loop by using the loop variable as if
+it was a function name.</para>
+</callout>
+<callout arearefs="dl6">
+<para>The arguments to this function are the values that
+you want the local variables declared in <xref linkend="dl2"/> to have
+in the next iteration.</para>
+</callout>
+</calloutlist>
+</section>
diff --git a/tests/docbook/test/chunk.xml b/tests/docbook/test/chunk.xml
new file mode 100644
index 00000000..a9f56463
--- /dev/null
+++ b/tests/docbook/test/chunk.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+ PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "../dtd/3.1.7/docbookx.dtd">
+
+<!-- test document -->
+
+<book><title>Book Test Document Title</title>
+<bookinfo>
+<title>Bookinfo Test Document Title</title>
+<subtitle>Book Subtitle</subtitle>
+<authorgroup>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+</authorgroup>
+</bookinfo>
+
+<dedication id="dedication"><title>First Dedication</title>
+<para>Just a test.</para>
+</dedication>
+
+<dedication>
+<para>Just a test.</para>
+</dedication>
+
+<preface id="preface"><title>Foreword</title>
+<?dbhtml filename="preface.html" dir="x"?>
+<para>This is a test paragraph. (<link linkend="chapter">chapter</link>)</para>
+</preface>
+
+<chapter id="xreftest">
+<?dbhtml filename="xreftest.html"?>
+<title id="chaptertitle">XRef Tests</title>
+
+<para><link linkend="dedication">Dedication</link></para>
+<para><link linkend="preface">Preface</link></para>
+<para><link linkend="chapter">Chapter</link></para>
+<para><link linkend="appendix">Appendix</link></para>
+
+<sect1><title>First sect1</title>
+<para>...</para>
+</sect1>
+
+<sect1><title>Second sect1</title>
+<para>...</para>
+</sect1>
+
+</chapter>
+
+<chapter id="chapter"><title>Second Chapter</title>
+<para>This is a test paragraph.</para>
+</chapter>
+
+<chapter><title>Third Chapter</title>
+<para>This is a test paragraph.</para>
+</chapter>
+
+<appendix id="appendix"><title>First Appendix</title>
+<para>This is just a test.</para>
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+<para>This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.
+This makes the appendix long. This makes the appendix long.</para>
+
+</appendix>
+
+<appendix><title>Second Appendix</title>
+<para>This is just a test.</para>
+</appendix>
+
+</book>
+
+
diff --git a/tests/docbook/test/classsynop.xml b/tests/docbook/test/classsynop.xml
new file mode 100644
index 00000000..9a9aa05b
--- /dev/null
+++ b/tests/docbook/test/classsynop.xml
@@ -0,0 +1,160 @@
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
+ "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd">
+<chapter><title>Class Synopses</title>
+
+<para>This example is Perl; it's the standard DirHandle module. I've
+cut out the code, so you'll have to trust me on the parameters.
+</para>
+
+<para>ProgramListing version:</para>
+
+<programlisting>
+package DirHandle;
+
+require 5.000;
+use Carp;
+use Symbol;
+
+sub new {
+}
+</programlisting>
+
+<para>ClassSynopsis version:</para>
+
+<classsynopsis language="perl">
+ <ooclass><classname>DirHandle</classname></ooclass>
+ <ooclass><classname>superclass1</classname></ooclass>
+ <ooclass><classname>superclass2</classname></ooclass>
+
+ <classsynopsisinfo>
+require 5.000;
+use Carp;
+use Symbol;
+
+</classsynopsisinfo>
+
+ <constructorsynopsis>
+ <methodname>new</methodname>
+ <methodparam choice="opt"><parameter>$dirname</parameter></methodparam>
+ </constructorsynopsis>
+ <destructorsynopsis>
+ <methodname>DESTROY</methodname>
+ </destructorsynopsis>
+
+</classsynopsis>
+
+<para>This example is IDL from the DOM spec.</para>
+
+<para>ProgramListing version:</para>
+
+<programlisting>
+interface Element : Node {
+ readonly attribute DOMString tagName;
+ DOMString getAttribute(in DOMString name);
+ void setAttribute(in DOMString name,
+ in DOMString value)
+ raises(DOMException);
+};
+</programlisting>
+
+<para>ClassSynopsis version:</para>
+
+<classsynopsis class="interface" language="idl">
+ <ooclass><classname>Element</classname></ooclass>
+ <ooclass><classname>Node</classname></ooclass>
+
+ <fieldsynopsis>
+ <modifier>readonly</modifier>
+ <modifier>attribute</modifier>
+ <type>DOMString</type>
+ <varname>tagName</varname>
+ </fieldsynopsis>
+
+ <methodsynopsis>
+ <type>DOMString</type>
+ <methodname>getAttribute</methodname>
+ <methodparam>
+ <modifier>in</modifier>
+ <type>DOMString</type>
+ <parameter>name</parameter>
+ </methodparam>
+ </methodsynopsis>
+
+ <methodsynopsis>
+ <void/>
+ <methodname>setAttribute</methodname>
+ <methodparam>
+ <modifier>in</modifier>
+ <type>DOMString</type>
+ <parameter>name</parameter>
+ </methodparam>
+ <methodparam>
+ <modifier>in</modifier>
+ <type>DOMString</type>
+ <parameter>value</parameter>
+ </methodparam>
+ <exceptionname>DOMException</exceptionname>
+ </methodsynopsis>
+</classsynopsis>
+
+<classsynopsis language="java">
+ <ooclass><modifier>public</modifier>
+ <classname>TextFileWriter</classname>
+ </ooclass>
+ <ooclass><classname>Superclass1</classname></ooclass>
+ <ooclass><classname>Superclass2</classname></ooclass>
+ <oointerface><interfacename>Interface1</interfacename></oointerface>
+ <oointerface><interfacename>Interface2</interfacename></oointerface>
+ <ooexception><exceptionname>Exception1</exceptionname></ooexception>
+ <ooexception><exceptionname>Exception2</exceptionname></ooexception>
+
+ <fieldsynopsis>
+ <modifier>private</modifier>
+ <type>Writer</type>
+ <varname>writer</varname>
+ </fieldsynopsis>
+
+ <fieldsynopsis>
+ <modifier>public</modifier>
+ <type>String</type>
+ <varname>writerName</varname>
+ <initializer>"MyWriter"</initializer>
+ </fieldsynopsis>
+
+ <methodsynopsis>
+ <modifier>static</modifier>
+ <modifier>public</modifier>
+ <void/>
+ <methodname>write</methodname>
+ <methodparam>
+ <type>ResultTreeFragment</type>
+ <parameter>frag</parameter>
+ </methodparam>
+ <methodparam>
+ <type>String</type>
+ <parameter>file</parameter>
+ </methodparam>
+ <exceptionname>Exception1</exceptionname>
+ <exceptionname>Exception2</exceptionname>
+ </methodsynopsis>
+</classsynopsis>
+
+<programlisting>
+class Rectangle_with_data: virtual Shape, virtual Data_container
+{
+...
+};
+</programlisting>
+
+<para>ClassSynopsis version:</para>
+
+<classsynopsis language="cpp">
+ <ooclass><classname>Rectangle_with_data</classname></ooclass>
+ <ooclass><modifier>virtual</modifier><classname>Shape</classname>
+ </ooclass>
+ <ooclass><modifier>virtual</modifier><classname>Data_container</classname>
+ </ooclass>
+ <classsynopsisinfo>...</classsynopsisinfo>
+</classsynopsis>
+
+</chapter>
diff --git a/tests/docbook/test/condition.xml b/tests/docbook/test/condition.xml
new file mode 100644
index 00000000..86daa7cd
--- /dev/null
+++ b/tests/docbook/test/condition.xml
@@ -0,0 +1,3303 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD XML DocBook V4.1.2//EN"
+ "../dtd/4.1.2/docbookx.dtd" [
+<!ENTITY use-chap-2 "ignore">
+]>
+<book id="book">
+<bookinfo>
+<title>Book Title</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<corpauthor>Some Corporation</corpauthor>
+<legalnotice>
+<title>Legal Notice</title>
+<para>This is a test document. You can do what you will with it.</para>
+</legalnotice>
+<legalnotice>
+<para>This is a second legal notice. But it's not noteworthy.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ </para>
+</legalnotice>
+<copyright>
+<year>1998</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</bookinfo>
+<dedication>
+<para>This test book is dedicated to all the testers. This is the first para
+of the dedication.</para>
+<para>This is the second para of the dedication.</para>
+<para>This is the third para of the dedication.</para>
+</dedication>
+<preface>
+<title>Preface Title</title>
+<para>Preface content.</para>
+<para>This is the second para of the preface.</para>
+<para>This is the third para of the preface.</para>
+</preface>
+<part>
+<docinfo>
+<title>Part One Title</title>
+<legalnotice>
+<para>Foo! A legal notice in a part!</para>
+</legalnotice>
+</docinfo>
+<title>Part One Title</title>
+<partintro>
+<title>PartIntro Title</title>
+<para>Partintro content<footnote>
+<para>This is a footnote in a partintro.</para>
+</footnote>.</para>
+<sect1>
+<title>PartIntro Section</title>
+<para>PartIntros can actually have section content as well.</para>
+</sect1>
+</partintro>
+<chapter id="chapter">
+<title id="chaptertitle">XRef Tests</title>
+<bridgehead renderas="sect3">Xrefs</bridgehead>
+<simplelist>
+<member><xref linkend="book"/></member>
+<member><xref linkend="part"/></member>
+<member><xref linkend="chapter"/></member>
+<member><xref linkend="appendix"/></member>
+<member><xref linkend="table"/></member>
+<member><xref linkend="figure"/></member>
+<member><xref linkend="example"/></member>
+<member><xref linkend="equation"/></member>
+<member><xref linkend="reference"/></member>
+<member><xref linkend="bib1"/></member>
+<member><xref linkend="gloss"/></member>
+<member><xref linkend="index"/></member>
+</simplelist>
+<para>This is the first reference to <firstterm linkend="xml">XML</firstterm>.
+This is the second reference to <glossterm linkend="xml">XML</glossterm>.
+These are references without <sgmltag class="attribute">linkend</sgmltag>
+attributes: <firstterm>XML</firstterm>, <glossterm>XML</glossterm>.</para>
+<bridgehead renderas="sect3">Links</bridgehead>
+<para>More <ulink url="http://www.jclark.com/dsssl/">DSSSL information</ulink>
+is available.</para>
+<para>There is <link linkend="part">a second part</link> in this book.</para>
+<para>This is the <link endterm="chaptertitle" linkend="chapter"></link>
+chapter.</para>
+</chapter>
+<chapter id="stchap" condition="&use-chap-2;">
+<docinfo>
+<title>Section Tests</title>
+<subtitle>Section Tests Subtitle</subtitle>
+</docinfo>
+<title>Section Tests</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<indexterm>
+<primary>ap1</primary>
+</indexterm>
+<indexterm>
+<primary>ap2</primary>
+</indexterm>
+
+<indexterm>
+<primary>bp1</primary>
+<secondary>bp1bs1</secondary>
+</indexterm>
+<indexterm>
+<primary>bp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>cp1</primary>
+<secondary>cp1cs1</secondary>
+<tertiary>cp1cs1ct1</tertiary>
+</indexterm>
+<indexterm>
+<primary>cp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds1</secondary>
+</indexterm>
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds2</secondary>
+</indexterm>
+<indexterm>
+<primary>dp2</primary>
+</indexterm></para>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect1 id="secttest1">
+<title>a sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<indexterm>
+<primary>ep1</primary>
+<secondary>ep1es1</secondary>
+<tertiary>ep1es1et1</tertiary>
+</indexterm>
+<indexterm>
+<primary>ep1</primary>
+<secondary>ep1es2</secondary>
+</indexterm>
+<indexterm>
+<primary>ep2</primary>
+</indexterm>
+
+<indexterm>
+<primary>fp1</primary>
+<secondary>fp1fs1</secondary>
+</indexterm>
+<indexterm>
+<primary>fp1</primary>
+<secondary>fp1fs2</secondary>
+<tertiary>fp1fs2ft1</tertiary>
+</indexterm>
+<indexterm>
+<primary>fp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs1</secondary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs2</secondary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs2</secondary>
+<tertiary>gp1gs2gt1</tertiary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs2</secondary>
+<tertiary>gp1gs2gt2</tertiary>
+</indexterm>
+<indexterm>
+<primary>gp1</primary>
+<secondary>gp1gs3</secondary>
+</indexterm>
+<indexterm>
+<primary>gp2</primary>
+</indexterm></para>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect2>
+<title>a sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<title>a sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<indexterm>
+<primary>hp1</primary>
+<secondary>hp1hs1</secondary>
+<tertiary>hp1hs1ht1</tertiary>
+</indexterm>
+<indexterm>
+<primary>hp1</primary>
+<secondary>hp1hs1</secondary>
+<tertiary>hp1hs1ht2</tertiary>
+</indexterm>
+<indexterm>
+<primary>hp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>ip1</primary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is1</secondary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is1</secondary>
+<tertiary>ip1is1it1</tertiary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is1</secondary>
+<tertiary>ip1is1it2</tertiary>
+</indexterm>
+<indexterm>
+<primary>ip1</primary>
+<secondary>ip1is2</secondary>
+<tertiary>ip1is2it1</tertiary>
+</indexterm>
+<indexterm>
+<primary>ip2</primary>
+</indexterm></para>
+<sect4>
+<title>a sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<title>a sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1 id="secttest2">
+<sect1info>
+<title>another sect1 title</title>
+<subtitle>a sect1 subtitle</subtitle>
+</sect1info>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+<indexterm>
+<primary>jp1</primary>
+</indexterm>
+<indexterm>
+<primary>jp1</primary>
+<secondary>jp1js1</secondary>
+<tertiary>jp1js1jt1</tertiary>
+</indexterm>
+<indexterm>
+<primary>jp1</primary>
+<secondary>jp1js1</secondary>
+<tertiary>jp1js1jt2</tertiary>
+</indexterm>
+<indexterm>
+<primary>jp2</primary>
+</indexterm></para>
+<sect2>
+<sect2info>
+<title>another sect2 title</title>
+<subtitle>a sect2 subtitle</subtitle>
+</sect2info>
+<title>another sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<sect3info>
+<title>another sect3 title</title>
+<subtitle>a sect3 subtitle</subtitle>
+</sect3info>
+<title>another sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect4>
+<sect4info>
+<title>another sect4 title</title>
+<subtitle>a sect4 subtitle</subtitle>
+</sect4info>
+<title>another sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<sect5info>
+<title>another sect5 title</title>
+<subtitle>a sect5 subtitle</subtitle>
+</sect5info>
+<title>another sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1 id="secttest3">
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+<sect1 id="secttest4">
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+</chapter>
+<chapter>
+<title>Inline Tests</title>
+<simplesect>
+<title>Testing <quote>Quotes</quote> in a title</title>
+<para>Footnotes<footnote id="fn1">
+<para>Like this!</para>
+</footnote> are inlines.
+Sort of<footnote>
+<para>Well, the marks are, anyway!</para>
+</footnote>.
+Another footnote<footnoteref linkend="fn1"/>.</para>
+<simplelist columns="3" type="vert">
+<member><abbrev>Abbrev</abbrev></member>
+<member><acronym>Acronym</acronym></member>
+<member><action>Action</action></member>
+<member><application>Application</application></member>
+<member><citation>Citation</citation></member>
+<member><citerefentry>
+<refentrytitle>CiteRefEntry RefEntryTitle</refentrytitle>
+<manvolnum>n</manvolnum>
+</citerefentry></member>
+<member><citetitle>Citetitle</citetitle></member>
+<member><classname>ClassName</classname></member>
+<member><command>Command</command></member>
+<member><comment>Comment</comment> (Comment)</member>
+<member><computeroutput>ComputerOutput</computeroutput></member>
+<member><database>Database</database></member>
+<member><errorname>ErrorName</errorname></member>
+<member><errortype>ErrorType</errortype></member>
+<member><email>Email</email></member>
+<member><emphasis>Emphasis</emphasis></member>
+<member><envar>EnVar</envar></member>
+<member><errorcode>ErrorCode</errorcode></member>
+<member><filename>Filename</filename></member>
+<member><firstterm>Firstterm</firstterm></member>
+<member><foreignphrase>ForeignPhrase</foreignphrase></member>
+<member><function>Function</function></member>
+<member><guimenuitem>GUIMenuItem</guimenuitem></member>
+<member><guibutton>GUIButton</guibutton></member>
+<member><guibutton>GUI<accel>B</accel>utton (with Accel)</guibutton></member>
+<member><guiicon>GUIIcon</guiicon></member>
+<member><guilabel>GUILabel</guilabel></member>
+<member><guimenu>GUIMenu</guimenu></member>
+<member><guisubmenu>GUISubMenu</guisubmenu></member>
+<member><hardware>Hardware</hardware></member>
+<member><inlineequation>
+<alt>e=mc^2</alt>
+<graphic fileref="emc2.gif"/>
+</inlineequation></member>
+<member><interface>Interface</interface></member>
+<member><interfacedefinition>InterfaceDefinition</interfacedefinition></member>
+<member><keycap>KeyCap</keycap></member>
+<member><keycode>KeyCode</keycode></member>
+<member><keycombo>
+<keycap>Key</keycap>
+<keycap>Combo</keycap>
+</keycombo></member>
+<member><keysym>KeySym</keysym></member>
+<member><literal>Literal</literal></member>
+<member><markup>Markup</markup></member>
+<member><medialabel>MediaLabel</medialabel></member>
+<member><mousebutton>MouseButton</mousebutton></member>
+<member><option>Option</option></member>
+<member><optional>Optional</optional></member>
+<member><parameter>Parameter</parameter></member>
+<member><phrase>Phrase</phrase></member>
+<member><prompt>Prompt</prompt></member>
+<member><property>Property</property></member>
+<member><quote>Quote</quote></member>
+<member><replaceable>Replaceable</replaceable></member>
+<member><returnvalue>ReturnValue</returnvalue></member>
+<member><sgmltag class="attribute">SGMLTag</sgmltag> (Attribute)</member>
+<member><sgmltag class="attvalue">SGMLTag</sgmltag> (AttValue)</member>
+<member><sgmltag class="element">SGMLTag</sgmltag> (Element)</member>
+<member><sgmltag class="endtag">SGMLTag</sgmltag> (EndTag)</member>
+<member><sgmltag class="genentity">SGMLTag</sgmltag> (GenEntity)</member>
+<member><sgmltag class="numcharref">SGMLTag</sgmltag> (NumCharRef)</member>
+<member><sgmltag class="paramentity">SGMLTag</sgmltag> (ParamEntity)</member>
+<member><sgmltag class="pi">SGMLTag</sgmltag> (PI)</member>
+<member><sgmltag class="sgmlcomment">SGMLTag</sgmltag> (SGMLComment)</member>
+<member><sgmltag class="starttag">SGMLTag</sgmltag> (StartTag)</member>
+<member><sgmltag>SGMLTag</sgmltag></member>
+<member><structfield>StructField</structfield></member>
+<member><structname>StructName</structname></member>
+<member><subscript>Subscript</subscript></member>
+<member><superscript>Superscript</superscript></member>
+<member><symbol>Symbol</symbol></member>
+<member><systemitem>SystemItem</systemitem></member>
+<member><token>Token</token></member>
+<member><trademark>Trademark</trademark></member>
+<member><type>Type</type></member>
+<member><userinput>UserInput</userinput></member>
+<member><wordasword>WordAsWord</wordasword></member>
+<member><productname>ProductName</productname></member>
+</simplelist>
+<para>And here are a couple of index terms, as another test (of
+index terms, not inlines).
+<indexterm>
+<primary>aap1</primary>
+<see>ap1</see>
+</indexterm>
+<indexterm>
+<primary>bbp1</primary>
+<seealso>bp1</seealso>
+</indexterm></para>
+</simplesect>
+</chapter>
+<chapter>
+<title>Block Tests</title>
+<simplesect>
+<title>Formal Objects</title>
+<bridgehead renderas="sect4">Example</bridgehead>
+<example id="example">
+<title>An Example</title>
+<para>This is an example of a trivial example.</para>
+</example>
+<bridgehead renderas="sect4">Figure</bridgehead>
+<figure id="figure">
+<title>A Figure</title>
+<screen>This is an example of a trivial figure.</screen>
+</figure>
+<bridgehead renderas="sect4">Equation</bridgehead>
+<equation id="equation">
+<title>An Equation</title>
+<alt>e=mc^2</alt>
+<graphic fileref="emc2.gif"/>
+</equation>
+<bridgehead renderas="sect4">Table</bridgehead>
+<table id="table">
+<title>A Table</title>
+<tgroup cols="2">
+<colspec colwidth="0.5in"/>
+<colspec colwidth="0.5in"/>
+<tbody>
+<row>
+<entry>1</entry>
+<entry>1</entry>
+</row>
+<row>
+<entry>2</entry>
+<entry>4</entry>
+</row>
+<row>
+<entry>3</entry>
+<entry>9</entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+</simplesect>
+<simplesect>
+<title>Informal Objects</title>
+<bridgehead renderas="sect4">InformalExample</bridgehead>
+<informalexample id="iexample">
+<para>This is an example of a trivial, informal example.</para>
+</informalexample>
+<bridgehead renderas="sect4">InformalEquation</bridgehead>
+<informalequation id="iequation">
+<alt>e=mc^2</alt>
+<graphic fileref="emc2.gif"/>
+</informalequation>
+<bridgehead renderas="sect4">InformalTable</bridgehead>
+<informaltable id="itable">
+<tgroup cols="2">
+<tbody>
+<row>
+<entry>1</entry>
+<entry>1</entry>
+</row>
+<row>
+<entry>2</entry>
+<entry>8</entry>
+</row>
+<row>
+<entry>3</entry>
+<entry>27</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</simplesect>
+<simplesect>
+<title>Admonitions</title>
+<bridgehead renderas="sect4">Note</bridgehead>
+<note>
+<para>Consider yourself noted.</para>
+<para>Second para.</para>
+</note>
+<note>
+<simpara>Consider yourself noted, simply.</simpara>
+</note>
+<note>
+<title>NoteTitle</title>
+<para>Consider yourself noted.</para>
+<para>Second para, with a title.</para>
+</note>
+<note>
+<title>Att</title>
+<simpara>Consider yourself noted, simply.</simpara>
+<simpara>With a title</simpara>
+</note>
+<bridgehead renderas="sect4">Important</bridgehead>
+<important>
+<para>Consider yourself important.</para>
+</important>
+<bridgehead renderas="sect4">Tip</bridgehead>
+<tip>
+<para>Consider yourself tipped.</para>
+</tip>
+<bridgehead renderas="sect4">Warning</bridgehead>
+<warning>
+<para>Consider yourself warned.</para>
+</warning>
+<bridgehead renderas="sect4">Caution</bridgehead>
+<caution>
+<para>Consider yourself cautioned.</para>
+</caution>
+<bridgehead renderas="sect4">SimPara in Caution</bridgehead>
+<caution>
+<title>Simple Caution</title>
+<simpara>A simpler caution.</simpara>
+</caution>
+</simplesect>
+<simplesect>
+<title>Other Objects</title>
+<bridgehead renderas="sect4">Screen</bridgehead>
+<screen>This
+ is <lineannotation>With a line-annotation</lineannotation>
+ a
+ screen
+ This
+ is <lineannotation>With a line-annotation</lineannotation>
+ a
+screen
+This
+ is <lineannotation>With a line-annotation</lineannotation>
+ a
+ screen</screen>
+<bridgehead renderas="sect4">ProgramListing</bridgehead>
+<programlisting linenumbering="numbered">This
+ is
+ a
+programlisting</programlisting>
+<bridgehead renderas="sect4">Address</bridgehead>
+<address>Norman Walsh
+ArborText, Inc.
+<street>1000 Victors Way</street>
+<city>Ann Arbor</city>, <state>MI</state> <postcode>48108</postcode>
+<country>US</country>
+
+Voice: <phone>313.997.0200</phone>
+Fax: <fax>313.997.0201</fax>
+
+Email: <email>nwalsh@arbortext.com</email>
+WWW: <otheraddr role="homepage">http://www.arbortext.com/</otheraddr></address>
+<bridgehead renderas="sect4">BlockQuote</bridgehead>
+<blockquote>
+<para>The universe that we observe has precisely the properties we should
+expect if there is, at bottom, no design, no purpose, no evil and
+no good, nothing but pitiless indifference.&mdash;Richard Dawkins</para>
+</blockquote>
+<bridgehead renderas="sect4">Procedure</bridgehead>
+<procedure>
+<step>
+<para>This is the first step</para>
+</step>
+<step>
+<para>This is the second step</para>
+<substeps>
+<step>
+<para>This is the first substep</para>
+</step>
+<step>
+<para>This is the second substep</para>
+</step>
+</substeps>
+</step>
+<step>
+<para>This is the third step</para>
+</step>
+</procedure>
+<bridgehead renderas="sect4">Procedure With Title</bridgehead>
+<procedure>
+<title>Same Procedure with a Title</title>
+<step>
+<para>This is the first step</para>
+</step>
+<step>
+<para>This is the second step</para>
+<substeps>
+<step>
+<para>This is the first substep</para>
+</step>
+<step>
+<para>This is the second substep</para>
+</step>
+</substeps>
+</step>
+<step>
+<para>This is the third step</para>
+</step>
+</procedure>
+<bridgehead renderas="sect4">SideBar</bridgehead>
+<sidebar>
+<title>What About Bob?</title>
+<para>This is a sidebar.</para>
+</sidebar>
+<bridgehead renderas="sect4">MsgSet</bridgehead>
+<para>It's not really clear how <sgmltag>MsgSet</sgmltag> should be presented.
+I expect that it's fairly application, if not document, specific.</para>
+<msgset>
+<msgentry>
+<msg>
+<msgmain>
+<msgtext>
+<para>Record failed CRC</para>
+</msgtext>
+</msgmain>
+<msgsub>
+<msgtext>
+<para>Record <replaceable>n</replaceable>
+ in <replaceable>database</replaceable></para>
+</msgtext>
+</msgsub>
+<msgrel>
+<msgtext>
+<para>File read error on
+ <replaceable>database</replaceable></para>
+</msgtext>
+</msgrel>
+<msgrel>
+<msgtext>
+<para>Panic! Corrupt record!</para>
+</msgtext>
+</msgrel>
+</msg>
+<msginfo>
+<msglevel>severe</msglevel>
+<msgorig>server</msgorig>
+<msgaud>all</msgaud>
+</msginfo>
+<msgexplan>
+<para> Indicates that some sort of error occured attempting to load
+ a record from the database. Retry. If failure persists,
+ contact the database administrator.
+ </para>
+</msgexplan>
+</msgentry>
+</msgset>
+<bridgehead renderas="sect4">LiteralLayout</bridgehead>
+<literallayout>This is a
+literal
+ layout</literallayout>
+<para><literallayout>This is a
+literal
+ layout
+ in a para</literallayout></para>
+</simplesect>
+</chapter>
+<chapter>
+<title>List Tests</title>
+<simplesect>
+<title>OrderedLists</title>
+<bridgehead renderas="sect4">Default Numeration</bridgehead>
+<orderedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<programlisting>this one starts with
+a program listing
+what happens?</programlisting>
+</listitem>
+<listitem>
+<synopsis>this one starts with
+a synopsis
+what happens?</synopsis>
+</listitem>
+<listitem>
+<para>para first</para>
+<synopsis>this one has
+a synopsis
+what happens?</synopsis>
+</listitem>
+<listitem>
+<para>Three</para>
+<screen>A
+Screen
+Here</screen>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">Arabic Numeration</bridgehead>
+<orderedlist numeration="arabic">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">Arabic Numeration (Long)</bridgehead>
+<orderedlist numeration="arabic">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+<listitem>
+<para>Five</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+<listitem>
+<para>Seven</para>
+</listitem>
+<listitem>
+<para>Eight</para>
+</listitem>
+<listitem>
+<para>Nine</para>
+</listitem>
+<listitem>
+<para>Ten</para>
+</listitem>
+<listitem>
+<para>Eleven</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">UpperAlpha Numeration</bridgehead>
+<orderedlist numeration="upperalpha">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">LowerAlpha Numeration</bridgehead>
+<orderedlist numeration="loweralpha">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">UpperRoman Numeration</bridgehead>
+<orderedlist numeration="upperroman">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">LowerRoman Numeration</bridgehead>
+<orderedlist numeration="lowerroman">
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist>
+<bridgehead renderas="sect4">Continued</bridgehead>
+<para>First list:
+<orderedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</orderedlist></para>
+<para>Second list:
+<orderedlist continuation="continues">
+<listitem>
+<para>Five</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+<listitem>
+<para>Seven</para>
+</listitem>
+<listitem>
+<para>Eight</para>
+</listitem>
+<listitem>
+<para>Nine</para>
+</listitem>
+<listitem>
+<para>Ten</para>
+</listitem>
+</orderedlist></para>
+</simplesect>
+<simplesect>
+<title>ItemizedLists</title>
+<bridgehead renderas="sect4">Default Presentation</bridgehead>
+<itemizedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<programlisting>One-point-five. This one starts with
+a program listing
+what happens?</programlisting>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+<bridgehead renderas="sect4">Block Elements in a List</bridgehead>
+<itemizedlist>
+<listitem>
+<para>One</para>
+<para>Another para.</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+<bridgehead renderas="sect4">Alternate Mark and OverRide</bridgehead>
+<itemizedlist mark="box">
+<listitem>
+<para>TeX and LaTeX</para>
+</listitem>
+<listitem override="bullet">
+<para>Troff</para>
+</listitem>
+<listitem>
+<para>Lout</para>
+</listitem>
+<listitem override="none">
+<para>Test</para>
+</listitem>
+</itemizedlist>
+<bridgehead renderas="sect4">No mark Presentation</bridgehead>
+<itemizedlist mark="none">
+<listitem override="none">
+<para>One</para>
+</listitem>
+<listitem override="bullet">
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+</simplesect>
+<simplesect>
+<title>VariableLists</title>
+<variablelist>
+<varlistentry>
+<term>Term1</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Term2</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Term3</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<itemizedlist>
+<listitem>
+<para>One</para>
+</listitem>
+<listitem>
+<para>Two</para>
+</listitem>
+<listitem>
+<para>Three</para>
+</listitem>
+<listitem>
+<para>Four</para>
+</listitem>
+</itemizedlist>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>Term4</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+<variablelist>
+<varlistentry>
+<term>Another List</term>
+<listitem>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+<varlistentry>
+<term>ProgramListing</term>
+<listitem>
+<programlisting>A ProgramListing
+Is the First Element
+of this VarListEntry</programlisting>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</listitem>
+</varlistentry>
+</variablelist>
+</simplesect>
+<simplesect>
+<title>SimpleLists</title>
+<bridgehead renderas="sect4">Inline</bridgehead>
+<para>An inline simple list:
+<simplelist type="inline">
+<member>One</member>
+<member>Two</member>
+<member>Three</member>
+<member>Four</member>
+<member>Five</member>
+<member>Six</member>
+<member>Seven</member>
+</simplelist></para>
+<bridgehead renderas="sect4">Horiz</bridgehead>
+<simplelist columns="3" type="horiz">
+<member>One</member>
+<member>Two</member>
+<member>Three</member>
+<member>Four</member>
+<member>Five</member>
+<member>Six</member>
+<member>Seven</member>
+</simplelist>
+<bridgehead renderas="sect4">Vert</bridgehead>
+<simplelist columns="3" type="vert">
+<member>One</member>
+<member>Two</member>
+<member>Three</member>
+<member>Four</member>
+<member>Five</member>
+<member>Six</member>
+<member>Seven</member>
+</simplelist>
+</simplesect>
+<simplesect>
+<title>More Complex List Item Content</title>
+<itemizedlist>
+<listitem>
+<para>One</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Two</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<simpara>Three</simpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Four</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<formalpara>
+<title>Formal Element</title>
+<para>Five</para>
+</formalpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+</itemizedlist>
+<orderedlist>
+<listitem>
+<para>One</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Two</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<simpara>Three</simpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Four</para>
+<para>Second para</para>
+</listitem>
+<listitem>
+<formalpara>
+<title>Formal Element</title>
+<para>Five</para>
+</formalpara>
+<para>Second para</para>
+</listitem>
+<listitem>
+<para>Six</para>
+</listitem>
+</orderedlist>
+</simplesect>
+<simplesect>
+<title>Segmented List</title>
+<segmentedlist>
+<title>State Birds</title>
+<segtitle>State</segtitle>
+<segtitle>Bird</segtitle>
+<seglistitem>
+<seg>Alabama</seg>
+<seg>Yellowhammer</seg>
+</seglistitem>
+<seglistitem>
+<seg>Alaska</seg>
+<seg>Willow Ptarmigan</seg>
+</seglistitem>
+<seglistitem>
+<seg>Arizona</seg>
+<seg>Cactus Wren</seg>
+</seglistitem>
+<seglistitem>
+<seg>Arkansas</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>California</seg>
+<seg>California Valley Quail</seg>
+</seglistitem>
+<seglistitem>
+<seg>Colorado</seg>
+<seg>Lark Bunting</seg>
+</seglistitem>
+<seglistitem>
+<seg>Connecticut</seg>
+<seg>Robin</seg>
+</seglistitem>
+<seglistitem>
+<seg>Delaware</seg>
+<seg>Blue Hen Chicken</seg>
+</seglistitem>
+<seglistitem>
+<seg>Florida</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Georgia</seg>
+<seg>Brown Thrasher</seg>
+</seglistitem>
+<seglistitem>
+<seg>Hawaii</seg>
+<seg>Nene</seg>
+</seglistitem>
+<seglistitem>
+<seg>Idaho</seg>
+<seg>Mountain Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Illinois</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Indiana</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Iowa</seg>
+<seg>Eastern Goldfinch</seg>
+</seglistitem>
+<seglistitem>
+<seg>Kansas</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Kentucky</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Louisiana</seg>
+<seg>Eastern Brown Pelican</seg>
+</seglistitem>
+<seglistitem>
+<seg>Maine</seg>
+<seg>Chickadee</seg>
+</seglistitem>
+<seglistitem>
+<seg>Maryland</seg>
+<seg>Baltimore Oriole</seg>
+</seglistitem>
+<seglistitem>
+<seg>Massachusetts</seg>
+<seg>Chickadee</seg>
+</seglistitem>
+<seglistitem>
+<seg>Michigan</seg>
+<seg>Robin</seg>
+</seglistitem>
+<seglistitem>
+<seg>Minnesota</seg>
+<seg>Common Loon</seg>
+</seglistitem>
+<seglistitem>
+<seg>Mississippi</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Missouri</seg>
+<seg>Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Montana</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Nebraska</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Nevada</seg>
+<seg>Mountain Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>New Hampshire</seg>
+<seg>Purple Finch</seg>
+</seglistitem>
+<seglistitem>
+<seg>New Jersey</seg>
+<seg>Eastern Goldfinch</seg>
+</seglistitem>
+<seglistitem>
+<seg>New Mexico</seg>
+<seg>Roadrunner</seg>
+</seglistitem>
+<seglistitem>
+<seg>New York</seg>
+<seg>Bluebird</seg>
+</seglistitem>
+<seglistitem>
+<seg>North Carolina</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>North Dakota</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Ohio</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Oklahoma</seg>
+<seg>Scissor-tailed Flycatcher</seg>
+</seglistitem>
+<seglistitem>
+<seg>Oregon</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+<seglistitem>
+<seg>Pennsylvania</seg>
+<seg>Ruffed Grouse</seg>
+</seglistitem>
+<seglistitem>
+<seg>Rhode Island</seg>
+<seg>Rhode Island Red</seg>
+</seglistitem>
+<seglistitem>
+<seg>South Carolina</seg>
+<seg>Great Carolina Wren</seg>
+</seglistitem>
+<seglistitem>
+<seg>South Dakota</seg>
+<seg>Ring-necked Pheasant</seg>
+</seglistitem>
+<seglistitem>
+<seg>Tennessee</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Texas</seg>
+<seg>Mockingbird</seg>
+</seglistitem>
+<seglistitem>
+<seg>Utah</seg>
+<seg>American Seagull</seg>
+</seglistitem>
+<seglistitem>
+<seg>Vermont</seg>
+<seg>Hermit Thrush</seg>
+</seglistitem>
+<seglistitem>
+<seg>Virginia</seg>
+<seg>Cardinal </seg>
+</seglistitem>
+<seglistitem>
+<seg>Washington</seg>
+<seg>Willow Goldfinch</seg>
+</seglistitem>
+<seglistitem>
+<seg>West Virginia</seg>
+<seg>Cardinal</seg>
+</seglistitem>
+<seglistitem>
+<seg>Wisconsin</seg>
+<seg>Robin</seg>
+</seglistitem>
+<seglistitem>
+<seg>Wyoming</seg>
+<seg>Western Meadowlark</seg>
+</seglistitem>
+</segmentedlist>
+</simplesect>
+</chapter>
+<chapter>
+<title>Table Tests</title>
+<bridgehead renderas="sect4">Alternate Alignment on Entry</bridgehead>
+<informaltable frame="all">
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="2in"/>
+<colspec colnum="2" colname="c2" colwidth="2in"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left">left</entry>
+<entry align="center">center</entry>
+<entry>center</entry>
+</row>
+<row>
+<entry align="center">center</entry>
+<entry align="right">right</entry>
+<entry align="right">right</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<informaltable frame="topbot">
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="2in"/>
+<colspec colnum="2" colname="c2" colwidth="2in"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left">left</entry>
+<entry align="center">center</entry>
+<entry>center</entry>
+</row>
+<row>
+<entry align="center">center</entry>
+<entry align="right">right</entry>
+<entry align="right">right</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<informaltable>
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="2in"/>
+<colspec colnum="2" colname="c2" colwidth="2in"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry align="left"><emphasis>left emph</emphasis></entry>
+<entry align="center"><emphasis role="bold">center emph/bold</emphasis></entry>
+<entry><literal>center literal</literal></entry>
+</row>
+<row>
+<entry align="center"><filename>center filename</filename></entry>
+<entry align="right"><command>right command</command></entry>
+<entry align="right">right</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Absolute Widths</bridgehead>
+<informaltable>
+<tgroup cols="3">
+<colspec colnum="1" colname="c1" colwidth="1in"/>
+<colspec colnum="2" colname="c2" colwidth="1in"/>
+<colspec colnum="3" colname="c3" colwidth="1in" align="center"/>
+<thead>
+<row>
+<entry>h1</entry>
+<entry>h2</entry>
+<entry>h3</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>e1</entry>
+<entry>e2</entry>
+<entry>e3</entry>
+</row>
+<row>
+<entry>e1</entry>
+<entry>e2</entry>
+<entry>e3</entry>
+</row>
+<row>
+<entry>e1</entry>
+<entry>e2</entry>
+<entry>e3</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Relative Widths</bridgehead>
+<informaltable>
+<tgroup cols="2">
+<colspec colnum="1" colname="c1" colwidth="3*"/>
+<colspec colnum="2" colname="c2" colwidth="2*"/>
+<tbody>
+<row>
+<entry align="left"><para>left</para></entry>
+<entry align="center"><para>center</para></entry>
+</row>
+<row>
+<entry align="center"><para>center</para></entry>
+<entry align="right"><para>right</para></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Too many cells</bridgehead>
+<para>This is a broken table. There are too many cells in the second row.
+YMMV. Don't do this.</para>
+<informaltable>
+<tgroup cols="2">
+<tbody>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">Missing Entrys</bridgehead>
+<table pgwide="1" id="t1">
+<title>Table Title</title>
+<tgroup cols="3">
+<colspec colnum="1" colname="c1"/>
+<colspec colnum="2" colname="c2"/>
+<colspec colnum="3" colname="c3"/>
+<thead>
+<row>
+<entry><para>head1</para></entry>
+<entry><para>head2</para></entry>
+<entry><para>head3</para></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><para>a1</para></entry>
+<entry><para>a2</para></entry>
+<entry><para>a3</para></entry>
+</row>
+<row>
+<entry><para>b1</para></entry>
+<entry colname="c3"><para>b3</para></entry>
+</row>
+<row>
+<entry namest="c2"><para>c2</para></entry>
+<entry><para>c3</para></entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+<bridgehead renderas="sect4">Complex</bridgehead>
+<informaltable pgwide="1">
+<tgroup cols="6">
+<colspec colnum="2" colname="c2" align="right"/>
+<colspec colnum="3" colname="c3" align="center"/>
+<colspec colnum="5" colname="c5"/>
+<colspec colname="c6" align="left"/>
+<tbody>
+<row>
+<entry>A1</entry>
+<entry>A2</entry>
+<entry>A3</entry>
+<entry morerows="1">A4</entry>
+<entry>A5</entry>
+<entry>A6</entry>
+</row>
+<row>
+<entry>B1</entry>
+<entry colsep="1" rowsep="1">B2</entry>
+<entry rowsep="1">B3</entry>
+<entry>B5</entry>
+<entry>B6</entry>
+</row>
+<row>
+<entry>C1</entry>
+<entry colsep="1">C2</entry>
+<entry>C3</entry>
+<entry>C4</entry>
+<entry namest="c5" nameend="c6" morerows="2" valign="middle">C5</entry>
+</row>
+<row>
+<entry namest="c2">D2</entry>
+<entry>D3</entry>
+<entry>D4</entry>
+</row>
+<row>
+<entry>E1</entry>
+<entry namest="c2" nameend="c3" align="left">E2</entry>
+<entry>E4</entry>
+</row>
+<row>
+<entry>F1</entry>
+<entry>F2</entry>
+<entry>F3</entry>
+<entry>F4</entry>
+<entry>F5</entry>
+<entry>F6</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">With Footnotes</bridgehead>
+<informaltable>
+<tgroup cols="2">
+<tbody>
+<row>
+<entry>foo<footnote id="fnrex1a">
+<para>A meaningless
+word</para>
+</footnote></entry>
+<entry>3<footnote id="fnrex1b">
+<para>A meaningless
+number</para>
+</footnote></entry>
+</row>
+<row>
+<entry>bar<footnoteref linkend="fnrex1a"/></entry>
+<entry>5<footnoteref linkend="fnrex1b"/></entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+<bridgehead renderas="sect4">A Big One</bridgehead>
+<informaltable>
+<tgroup cols="15">
+<thead>
+<row>
+<entry>H1</entry>
+<entry>H2</entry>
+<entry>H3</entry>
+<entry>H4</entry>
+<entry>H5</entry>
+<entry>H6</entry>
+<entry>H7</entry>
+<entry>H8</entry>
+<entry>H9</entry>
+<entry>H10</entry>
+<entry>H11</entry>
+<entry>H12</entry>
+<entry>H13</entry>
+<entry>H14</entry>
+<entry>H15</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+<row>
+<entry>1</entry>
+<entry>2</entry>
+<entry>3</entry>
+<entry>4</entry>
+<entry>5</entry>
+<entry>6</entry>
+<entry>7</entry>
+<entry>8</entry>
+<entry>9</entry>
+<entry>10</entry>
+<entry>11</entry>
+<entry>12</entry>
+<entry>13</entry>
+<entry>14</entry>
+<entry>15</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+</chapter>
+<chapter>
+<title>Index Term Tests</title>
+<para>Test data.</para>
+<indexterm id="idx1">
+<primary>oft-repeated</primary>
+</indexterm>
+<indexterm id="idx2">
+<primary>chap-level</primary>
+</indexterm>
+<sect1>
+<title>Index Term Sect 1</title>
+<para>Test data.</para>
+<indexterm id="idx3">
+<primary>!</primary>
+</indexterm>
+<indexterm id="fred">
+<primary>oft-repeated</primary>
+<secondary>with id</secondary>
+</indexterm>
+<indexterm significance="preferred" id="idx5">
+<primary>sect1-level</primary>
+</indexterm>
+<indexterm id="idx6">
+<primary>sect1-level</primary>
+</indexterm>
+<indexterm id="idx7">
+<primary>sect1-level</primary>
+<secondary>sec</secondary>
+</indexterm>
+<indexterm id="idx8">
+<primary>sect1-other</primary>
+<secondary>sec</secondary>
+</indexterm>
+<indexterm id="idx9">
+<primary>chap-level</primary>
+<secondary>sec</secondary>
+<tertiary>tert</tertiary>
+</indexterm>
+<indexterm scope="local">
+<primary>chap-level</primary>
+<secondary>sec</secondary>
+<tertiary>tert</tertiary>
+</indexterm>
+<indexterm id="idx11">
+<primary>sect1-level</primary>
+</indexterm>
+<sect2>
+<title>Index Term Sect 2</title>
+<para>Test data.</para>
+<indexterm id="idx12">
+<primary>[</primary>
+</indexterm>
+<indexterm id="idx13">
+<primary>oft-repeated</primary>
+</indexterm>
+<indexterm id="idx14">
+<primary sortas="abracadabra">sect2-level</primary>
+</indexterm>
+<indexterm id="idx15">
+<primary>chap-level</primary>
+<secondary>sec</secondary>
+<tertiary>tert</tertiary>
+</indexterm>
+</sect2>
+<sect2>
+<title>Index Term Sect 3</title>
+<para>foo</para>
+</sect2>
+</sect1>
+</chapter>
+</part>
+<part id="part">
+<title>Part Two Title</title>
+<chapter>
+<title>CmdSynopsis Tests</title>
+<bridgehead renderas="sect4">Very Simple CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>cd</command>
+<arg choice="req"><replaceable>directory</replaceable></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Simple CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>cal</command>
+<arg>-j</arg>
+<arg>-y</arg>
+<arg>month <arg>year</arg></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Another Simple CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>chgrp</command>
+<arg>-R
+ <group>
+<arg>-H</arg>
+<arg>-L</arg>
+<arg>-P</arg>
+</group>
+ </arg>
+<arg>-f</arg>
+<arg choice="plain"><replaceable>group</replaceable></arg>
+<arg choice="plain" rep="repeat"><replaceable>file</replaceable></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Slightly Complex CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>emacs</command>
+<arg>-t <replaceable>file</replaceable></arg>
+<arg>-q</arg>
+<arg>-u <replaceable>user</replaceable></arg>
+<arg>+<replaceable>number</replaceable></arg>
+<arg rep="repeat">-f <replaceable>function</replaceable></arg>
+<arg rep="repeat">-l <replaceable>file</replaceable></arg>
+<arg choice="plain" rep="repeat"><replaceable>file</replaceable></arg>
+</cmdsynopsis>
+<bridgehead renderas="sect4">Quite Complex CmdSynopsis</bridgehead>
+<cmdsynopsis>
+<command>cccp</command>
+<arg>-$</arg>
+<arg>-C</arg>
+<arg rep="repeat">-D<replaceable>name</replaceable><arg>=<replaceable>definition</replaceable></arg></arg>
+<arg>-dD</arg>
+<arg>-dM</arg>
+<arg rep="repeat">-I <replaceable>directory</replaceable></arg>
+<arg>-H</arg>
+<arg>-I-</arg>
+<sbr/>
+<arg rep="repeat">-imacros <replaceable>file</replaceable></arg>
+<arg rep="repeat">-include <replaceable>file</replaceable></arg>
+<group>
+<arg>-lang-c</arg>
+<arg>-lang-c++</arg>
+<arg>-lang-objc</arg>
+</group>
+<arg>-lint</arg>
+<sbr/>
+<group>
+<arg>-M</arg>
+<arg>-MD</arg>
+<arg>-MM</arg>
+<arg>-MMD</arg>
+</group>
+<arg>-nostdinc</arg>
+<arg>-P</arg>
+<arg>-pedantic</arg>
+<arg>-pedantic-errors</arg>
+<arg>-trigraphs</arg>
+<arg>-U<replaceable>name</replaceable></arg>
+<sbr/>
+<arg>-undef</arg>
+<arg>-Wtrigraphs</arg>
+<arg>-Wcomment</arg>
+<arg>-Wall</arg>
+<arg>-Wtraditional</arg>
+<group choice="req">
+<arg><replaceable>infile</replaceable></arg>
+<arg>-</arg>
+</group>
+<group choice="req">
+<arg><replaceable>outfile</replaceable></arg>
+<arg>-</arg>
+</group>
+</cmdsynopsis>
+</chapter>
+<chapter>
+<title>FuncSynopsis Tests</title>
+<bridgehead renderas="sect4">Two Simple Parameters</bridgehead>
+<funcsynopsis>
+<funcprototype>
+<funcdef>int <function>max</function></funcdef>
+<paramdef>int <parameter>int1</parameter></paramdef>
+<paramdef>int <parameter>int2</parameter></paramdef>
+</funcprototype>
+</funcsynopsis>
+<bridgehead renderas="sect4">Variable Arguments</bridgehead>
+<funcsynopsis>
+<funcsynopsisinfo>#include &lt;varargs.h&gt;</funcsynopsisinfo>
+<funcprototype>
+<funcdef>int <function>max</function></funcdef>
+<varargs/>
+</funcprototype>
+</funcsynopsis>
+<bridgehead renderas="sect4">Void</bridgehead>
+<funcsynopsis>
+<funcprototype>
+<funcdef>int <function>rand</function></funcdef>
+<void/>
+</funcprototype>
+</funcsynopsis>
+<bridgehead renderas="sect4">Function Pointer Arguments</bridgehead>
+<funcsynopsis>
+<funcprototype>
+<funcdef>void <function>qsort</function></funcdef>
+<paramdef>void *<parameter>dataptr</parameter>[]</paramdef>
+<paramdef>int <parameter>left</parameter></paramdef>
+<paramdef>int <parameter>right</parameter></paramdef>
+<paramdef>int <parameter>(* comp)</parameter>
+ <funcparams>void *, void *</funcparams></paramdef>
+</funcprototype>
+</funcsynopsis>
+</chapter>
+<chapter>
+<title>Callout Tests</title>
+<bridgehead renderas="sect4">CallOut (using AREASPEC)</bridgehead>
+<programlistingco>
+<areaspec>
+<area coords="1" id="prologue"/>
+<area coords="4" id="skipeof"/>
+<areaset coords="" id="xreq">
+<area coords="9" id="require1"/>
+<area coords="10" id="require2"/>
+</areaset>
+<area coords="11 12" id="use"/>
+<area coords="27" id="funccall"/>
+</areaspec>
+<programlisting>@rem = '--*-Perl-*--
+@echo off
+perl.exe %_batchname %$
+goto endofperl
+@rem ';
+
+# Compress mail...
+
+require 'n:/home/nwalsh/lib/cygnus.pl';
+require 'timelocal.pl';
+use Cwd;
+
+select (STDERR); $| = 1;
+select (STDOUT); $| = 1;
+
+@DIRS = ("/home/nwalsh/Mail");
+while (@DIRS) {
+ $dir = shift @DIRS;
+ opendir (DIR, $dir);
+ while ($fname = readdir(DIR)) {
+ $file = "$dir/$fname";
+ next if ! -d $file;
+ next if $fname =~ /^\.\.?$/;
+
+ print "$file\n";
+ push (@DIRS, $file);
+ &amp;compress ($file);
+ }
+}
+
+exit;</programlisting>
+<calloutlist>
+<callout arearefs="prologue">
+<para>The prologue handles embedding a Perl script in a DOS batch file.</para>
+</callout>
+<callout arearefs="skipeof">
+<para>The <literal>goto</literal> statement, interpreted by the DOS batch
+file interpreter, skips over the body of the Perl script.</para>
+</callout>
+<callout arearefs="require1">
+<para>The <literal>require</literal> statement sources in external program
+fragments.</para>
+</callout>
+<callout arearefs="use">
+<para>The <literal>use</literal> statement is similar, but has additional
+utility. It is a Perl5 function. (Note that this callout area specifies
+both a line and a column.)</para>
+</callout>
+<callout arearefs="funccall">
+<para>This is a user subroutine call.</para>
+</callout>
+</calloutlist>
+</programlistingco>
+<bridgehead renderas="sect4">CallOut (using CO)</bridgehead>
+<programlisting>this is a line
+this is another line
+there's a <co id="callout1"/>callout in here.
+and there's another on the
+next line
+right here:<co id="callout2"/></programlisting>
+<calloutlist>
+<callout arearefs="callout1">
+<para>First callout.</para>
+<para>Second para in first callout.</para>
+</callout>
+<callout arearefs="callout2">
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Second callout.</para>
+<para>Third para in second callout.</para>
+</callout>
+<callout arearefs="callout1 callout2">
+<para>This paragraph describes <emphasis>both</emphasis> callouts.</para>
+</callout>
+</calloutlist>
+</chapter>
+</part>
+<part>
+<title>A Reference Part</title>
+<reference id="reference">
+<title>Reference</title>
+<refentry>
+<refmeta>
+<refentrytitle>RefEntryTitle</refentrytitle>
+</refmeta>
+<refnamediv>
+<refdescriptor>RefDescriptor</refdescriptor>
+<refname>RefName1</refname>
+<refname>RefName2</refname>
+<refpurpose>Yes, there must be a purpose!</refpurpose>
+</refnamediv>
+<refsynopsisdiv>
+<synopsis> A
+ Synopsis
+ Goes
+ Here</synopsis>
+</refsynopsisdiv>
+<refsect1>
+<title>A RefSect1</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<refsect2>
+<title>A RefSect2</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<refsect3>
+<title>A RefSect3</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah.<footnote>
+<para>This is a footnote in a refentry.</para>
+</footnote>
+Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+</refsect3>
+</refsect2>
+</refsect1>
+</refentry>
+<refentry>
+<refnamediv>
+<refname><function>Chop</function></refname>
+<refpurpose>strip trailing whitespace</refpurpose>
+</refnamediv>
+<refsect1>
+<title>Description</title>
+<para> Returns the argument string without trailing whitespace.
+ <example>
+<title>chop() example</title>
+<programlisting>$trimmed = Chop($line);</programlisting>
+</example>
+ </para>
+</refsect1>
+</refentry>
+</reference>
+</part>
+<appendix id="appendix">
+<title>A Very Short Appendix</title>
+<para>Blah.</para>
+</appendix>
+<appendix>
+<title>A Very Long Appendix</title>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<para>Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.
+Blah blah blah blah. Blah blah blah blah. Blah blah blah blah.</para>
+<sect1>
+<title>a sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect2>
+<title>a sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<title>a sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect4>
+<title>a sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<title>a sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1>
+<sect1info>
+<title>another sect1 title</title>
+<subtitle>a sect1 subtitle</subtitle>
+</sect1info>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect2>
+<sect2info>
+<title>another sect2 title</title>
+<subtitle>a sect2 subtitle</subtitle>
+</sect2info>
+<title>another sect2 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect3>
+<sect3info>
+<title>another sect3 title</title>
+<subtitle>a sect3 subtitle</subtitle>
+</sect3info>
+<title>another sect3 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect4>
+<sect4info>
+<title>another sect4 title</title>
+<subtitle>a sect4 subtitle</subtitle>
+</sect4info>
+<title>another sect4 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+<sect5>
+<sect5info>
+<title>another sect5 title</title>
+<subtitle>a sect5 subtitle</subtitle>
+</sect5info>
+<title>another sect5 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect5>
+</sect4>
+</sect3>
+</sect2>
+</sect1>
+<sect1>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+<sect1>
+<title>another sect1 title</title>
+<para>some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text.
+some text. some text. some text. some text. some text. some text. some text. </para>
+</sect1>
+</appendix>
+<bibliography id="bib1">
+<title>A Test Bibliography</title>
+<para>The stock stylesheet attempts to do a Bibliography. It probably needs
+a lot of tweaking. It probably doesn't conform to any specific style.</para>
+<bibliodiv>
+<title>Books</title>
+<biblioentry>
+<abbrev>AhoSethiUllman96</abbrev>
+<authorgroup>
+<author>
+<firstname>Alfred V.</firstname>
+<surname>Aho</surname>
+</author>
+<author>
+<firstname>Ravi</firstname>
+<surname>Sethi</surname>
+</author>
+<author>
+<firstname>Jeffrey D.</firstname>
+<surname>Ullman</surname>
+</author>
+</authorgroup>
+<title>Compilers, Principles, Techniques, and Tools</title>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+<copyright>
+<year>1996</year>
+<holder>Bell Telephone Laboratories, Inc.</holder>
+</copyright>
+<isbn>0-201-10088-6</isbn>
+<editor>
+<firstname>James T.</firstname>
+<surname>DeWolf</surname>
+</editor>
+<seriesinfo>
+<title>Computer Science</title>
+<editor>
+<firstname>Michael A.</firstname>
+<surname>Harrison</surname>
+</editor>
+<publisher>
+<publishername>Addison-Wesley Publishing Company</publishername>
+</publisher>
+</seriesinfo>
+</biblioentry>
+</bibliodiv>
+<bibliodiv>
+<title>Periodicals</title>
+<biblioentry id="walsh97">
+<abbrev>Walsh97</abbrev>
+<biblioset relation="article">
+<title>A Guide to XML</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<pubdate>1997</pubdate>
+<copyright>
+<year>1997</year>
+<holder>ArborText, Inc.</holder>
+</copyright>
+<pagenums>97-108</pagenums>
+</biblioset>
+<biblioset relation="journal">
+<title>XML: Principles, Tools, and Techniques</title>
+<publisher>
+<publishername>O'Reilly &amp; Associates, Inc.</publishername>
+</publisher>
+<issn>1085-2301</issn>
+<editor>
+<firstname>Dan</firstname>
+<surname>Connolly</surname>
+</editor>
+</biblioset>
+</biblioentry>
+<bibliomixed id="walsh96"> <bibliomset relation="article"> <surname>Walsh</surname>, <firstname>Norman</firstname>.
+ <title role="article">Introduction to Cascading Style Sheets</title>.
+ </bibliomset>
+ <bibliomset relation="journal"> <title>The World Wide Web Journal</title>.
+ <volumenum>2</volumenum>(<issuenum>1</issuenum>).
+ <publishername>O'Reilly &amp; Associates, Inc.</publishername> and
+ <corpname>The World Wide Web Consortium</corpname>.
+ <pubdate>Winter, 1996</pubdate></bibliomset>.</bibliomixed>
+<biblioentry>
+<abbrev>Abbrev</abbrev>
+<title>A Really Full BiblioEntry</title>
+<subtitle>Subtitle</subtitle>
+<abstract>
+<para>Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract.
+Abstract, abstract, abstract. Abstract, abstract, abstract. </para>
+</abstract>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+<artpagenums>ArtPageNums</artpagenums>
+<author>
+<firstname>AuthorFirstname</firstname>
+<surname>AuthorSurname</surname>
+</author>
+<authorblurb>
+<para>AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb.
+AuthorBlurb, authorblurb, authorblurb. AuthorBlurb, authorblurb, authorblurb. </para>
+</authorblurb>
+<authorinitials>AuthorInitials</authorinitials>
+<collab>
+<collabname>The names of some collaborators</collabname>
+<affiliation>
+<shortaffil>shortaffil</shortaffil>
+<jobtitle>jobtitle</jobtitle>
+<orgname>orgname</orgname>
+<orgdiv>orgdiv</orgdiv>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+</affiliation>
+</collab>
+<confgroup>
+<confdates>confdates</confdates>
+<conftitle>conftitle</conftitle>
+<confnum>confnum</confnum>
+<address>Any Street
+Anywhere, XX 99999
+USA</address>
+<confsponsor>confsponsor</confsponsor>
+</confgroup>
+<contractnum>ContractNum</contractnum>
+<contractsponsor>ContractSponsor</contractsponsor>
+<contrib>Contrib</contrib>
+<copyright>
+<year>1998</year>
+<holder>Copyright holder</holder>
+</copyright>
+<corpname>CorpName</corpname>
+<date>Date</date>
+<edition>Edition</edition>
+<editor>
+<firstname>EditorFirstName</firstname>
+<surname>EditorSurname</surname>
+</editor>
+<firstname>FirstName</firstname>
+<honorific>Honorific</honorific>
+<isbn>ISBN</isbn>
+<issn>ISSN</issn>
+<invpartnumber>InvPartNumber</invpartnumber>
+<issuenum>IssueNum</issuenum>
+<lineage>Lineage</lineage>
+<orgname>OrgName</orgname>
+<othercredit>
+<firstname>OCFirstName</firstname>
+<surname>OCSurname</surname>
+</othercredit>
+<othername>OtherName</othername>
+<pagenums>PageNums</pagenums>
+<printhistory>
+<para>PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.
+PrintHistory, printhistory, printhistory. PrintHistory, printhistory.</para>
+</printhistory>
+<productname>ProductName</productname>
+<productnumber>ProductNumber</productnumber>
+<pubdate>PubDate</pubdate>
+<publisher>
+<publishername>PubPublisherName</publishername>
+<address><street>Any Street</street>
+<city>Anywhere</city>, <state>XX</state> <postcode>99999</postcode>
+<country>USA</country></address>
+</publisher>
+<publishername>PublisherName</publishername>
+<pubsnumber>PubsNumber</pubsnumber>
+<releaseinfo>ReleaseInfo</releaseinfo>
+<revhistory>
+<revision>
+<revnumber>1.0</revnumber>
+<date>20 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.9</revnumber>
+<date>19 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+<revision>
+<revnumber>0.4</revnumber>
+<date>18 Nov 1998</date>
+<authorinitials>ndw</authorinitials>
+<revremark>Some remark about the revision</revremark>
+</revision>
+</revhistory>
+<seriesinfo>
+<title>SeriesInfo Title</title>
+<editor>
+<firstname>SeriesInfo Editor Firstname</firstname>
+<surname>SeriesInfo Editor Surname</surname>
+</editor>
+</seriesinfo>
+<seriesvolnums>SeriesVolNums</seriesvolnums>
+<surname>Surname</surname>
+<titleabbrev>TitleAbbrev</titleabbrev>
+<volumenum>VolumeNum</volumenum>
+</biblioentry>
+</bibliodiv>
+</bibliography>
+<glossary id="gloss">
+<title>Example Glossary</title>
+<para>This is not a real glossary, it's just an example.</para>
+<glossdiv>
+<title>E</title>
+<glossentry id="xml">
+<glossterm>Extensible Markup Language</glossterm>
+<acronym>XML</acronym>
+<glossdef>
+<para>Some reasonable definition here.</para>
+<glossseealso otherterm="sgml"/>
+</glossdef>
+</glossentry>
+</glossdiv>
+<glossdiv>
+<title>S</title>
+<glossentry>
+<glossterm>SGML</glossterm>
+<glosssee otherterm="sgml"/>
+</glossentry>
+<glossentry id="sgml">
+<glossterm>Standard Generalized
+ Markup Language</glossterm>
+<acronym>SGML</acronym>
+<abbrev>ISO 8879:1986</abbrev>
+<glossdef>
+<para>Some reasonable definition here.</para>
+<glossseealso otherterm="xml"/>
+</glossdef>
+</glossentry>
+</glossdiv>
+</glossary>
+<index id="index">
+<para>This is a test index.</para>
+<formalpara>
+<title>a formal para</title>
+<para>this is a formal paragraph.</para>
+</formalpara>
+<indexentry>
+<primaryie>Primary</primaryie>
+<secondaryie>Secondary 1</secondaryie>
+<tertiaryie>Tertiary 11</tertiaryie>
+<tertiaryie>Tertiary 12</tertiaryie>
+<secondaryie>Secondary 2</secondaryie>
+<tertiaryie>Tertiary 21</tertiaryie>
+</indexentry>
+<indexentry id="prim1">
+<primaryie>primary</primaryie>
+</indexentry>
+<indexentry id="prim2">
+<primaryie>primary</primaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+<tertiaryie>tertiary1</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary</secondaryie>
+<tertiaryie>tertiary2</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary2</secondaryie>
+<tertiaryie>tertiary3</tertiaryie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<seeie linkend="prim2">see ie</seeie>
+</indexentry>
+<indexentry>
+<primaryie>primary</primaryie>
+<secondaryie>secondary2</secondaryie>
+<tertiaryie>tertiary3</tertiaryie>
+<seealsoie linkends="prim2 prim1">seealso ie</seealsoie>
+</indexentry>
+</index>
+<index><title>An Index with a Title</title>
+<indexdiv>
+<title>Symbols</title>
+<indexentry>
+<primaryie>!,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+ </primaryie>
+</indexentry>
+<indexentry>
+<primaryie>[,
+ <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+ </primaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>A</title>
+<indexentry>
+<primaryie>sect2-level,
+ <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+ </primaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>C</title>
+<indexentry>
+<primaryie>chap-level,
+ <ulink url="c3.htm" role="c3.htm">Index Term Tests</ulink>
+ </primaryie>
+<secondaryie>sec
+ </secondaryie>
+<tertiaryie>tert,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>,
+ <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+ </tertiaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>O</title>
+<indexentry>
+<primaryie>oft-repeated,
+ <ulink url="c3.htm" role="c3.htm">Index Term Tests</ulink>,
+ <ulink url="c3.htm#aen38" role="aen38">Index Term Sect 2</ulink>
+ </primaryie>
+<secondaryie>with id,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+ </secondaryie>
+</indexentry>
+</indexdiv>
+<indexdiv>
+<title>S</title>
+<indexentry>
+<primaryie>sect1-level,
+ <ulink url="c3.htm#aen10" role="aen10"><emphasis>Index Term Sect 1</emphasis></ulink>
+ </primaryie>
+<secondaryie>sec,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+ </secondaryie>
+</indexentry>
+<indexentry>
+<primaryie>sect1-other
+ </primaryie>
+<secondaryie>sec,
+ <ulink url="c3.htm#aen10" role="aen10">Index Term Sect 1</ulink>
+ </secondaryie>
+</indexentry>
+</indexdiv>
+</index>
+</book>
diff --git a/tests/docbook/test/docbook.css b/tests/docbook/test/docbook.css
new file mode 100644
index 00000000..01339d43
--- /dev/null
+++ b/tests/docbook/test/docbook.css
@@ -0,0 +1,2 @@
+DIV.TITLEPAGE { text-align: center; }
+DIV.TITLEPAGE DIV.ABSTRACT { text-align: left; }
diff --git a/tests/docbook/test/docbook40.xml b/tests/docbook/test/docbook40.xml
new file mode 100644
index 00000000..269f700b
--- /dev/null
+++ b/tests/docbook/test/docbook40.xml
@@ -0,0 +1,128 @@
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
+ "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd">
+<book>
+<bookinfo>
+<title>DocBook V4.0 Example Document</title>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+<abstract>
+<para>This document demonstrates the new tags in DocBook V4.0.</para>
+<para>The focus of this document is to present examples of new elements,
+minor changes such as the addition of new attribute values are not
+included.</para>
+</abstract>
+</bookinfo>
+<chapter><title>Block-level Markup</title>
+<para>There's a new simple-alternative for <sgmltag>msgentry</sgmltag>:
+<sgmltag>simplemsgentry</sgmltag>.</para>
+<msgset>
+<simplemsgentry>
+<msgtext><para>The text of a message</para></msgtext>
+<msgexplan><para>An explanation of the message.</para></msgexplan>
+</simplemsgentry>
+<simplemsgentry>
+<msgtext><para>The text of a message</para></msgtext>
+<msgexplan><para>An explanation of the message.</para></msgexplan>
+</simplemsgentry>
+</msgset>
+
+<para>Longer descriptions are possible in a <sgmltag>revhistory</sgmltag>:
+</para>
+
+<para>
+<revhistory>
+<revision>
+<revnumber>2</revnumber>
+<date>today</date>
+<authorinitials>nwalsh</authorinitials>
+<revdescription>
+<para>Here are a few paragraphs of description:</para>
+<para>Did some stuff.</para>
+<para>Did some other stuff.</para>
+</revdescription>
+</revision>
+<revision>
+<revnumber>1</revnumber>
+<date>yesterday</date>
+<authorinitials>nwalsh</authorinitials>
+<revdescription>
+<para>Here are a few paragraphs of description:</para>
+<para>Did some stuff.</para>
+<para>Did some other stuff.</para>
+</revdescription>
+</revision>
+</revhistory>
+</para>
+
+<para>Ordered and itemized lists can have titles:</para>
+
+<itemizedlist><title>Itemized List</title>
+<listitem><para>First thing</para></listitem>
+<listitem><para>Second thing</para></listitem>
+<listitem><para>Third thing</para></listitem>
+</itemizedlist>
+
+<itemizedlist><title>Ordered List</title>
+<listitem><para>First thing</para></listitem>
+<listitem><para>Second thing</para></listitem>
+<listitem><para>Third thing</para></listitem>
+</itemizedlist>
+
+<para>Linespecific environments can indicate line numbering:</para>
+
+<programlisting linenumbering="numbered">
+&lt;!ENTITY % linespecific.attrib
+ "format NOTATION
+ (linespecific) 'linespecific'
+ linenumbering (numbered|unnumbered) #IMPLIED">
+</programlisting>
+
+<para>Added <sgmltag>classsynopsis</sgmltag> for documenting
+object-oriented programming language classes. Here's one example:</para>
+
+<classsynopsis language="java">
+ <ooclass><modifier>public</modifier>
+ <classname>TextFileWriter</classname></ooclass>
+ <ooclass><classname>HandlerBase</classname></ooclass>
+
+ <fieldsynopsis>
+ <modifier>private</modifier>
+ <type>Writer</type>
+ <varname>writer</varname>
+ </fieldsynopsis>
+
+ <fieldsynopsis>
+ <modifier>public</modifier>
+ <type>String</type>
+ <varname>writerName</varname>
+ <initializer>"MyWriter"</initializer>
+ </fieldsynopsis>
+
+ <methodsynopsis>
+ <modifier>static</modifier>
+ <modifier>public</modifier>
+ <void/>
+ <methodname>write</methodname>
+ <methodparam>
+ <type>ResultTreeFragment</type>
+ <parameter>frag</parameter>
+ </methodparam>
+ <methodparam>
+ <type>String</type>
+ <parameter>file</parameter>
+ </methodparam>
+ <exceptionname>SAXException</exceptionname>
+ </methodsynopsis>
+</classsynopsis>
+</chapter>
+
+<chapter><title>Inline markup</title>
+<para>The <sgmltag>sgmltag</sgmltag> element has new
+<sgmltag class="attribute">class</sgmltag> attribute values:
+<literal>xmlpi</literal> and
+<literal>emptytag</literal>. These produce
+<sgmltag class="xmlpi">processing instructions</sgmltag>
+and <sgmltag class="emptytag">empty-tag</sgmltag> markup
+suitable for XML.
+</para>
+</chapter>
+</book>
diff --git a/tests/docbook/test/emc2.gif b/tests/docbook/test/emc2.gif
new file mode 100644
index 00000000..830dc36a
--- /dev/null
+++ b/tests/docbook/test/emc2.gif
Binary files differ
diff --git a/tests/docbook/test/emc2.png b/tests/docbook/test/emc2.png
new file mode 100644
index 00000000..d222f72f
--- /dev/null
+++ b/tests/docbook/test/emc2.png
Binary files differ
diff --git a/tests/docbook/test/figtest.xml b/tests/docbook/test/figtest.xml
new file mode 100644
index 00000000..fae97b69
--- /dev/null
+++ b/tests/docbook/test/figtest.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+ "../dtd/simple/3.1.7.1/sdocbook.dtd">
+
+<!-- test document -->
+
+<article><title>Article Test Document Title</title>
+
+<para>
+This is a <quote>short quote</quote>.
+This is a <quote>Quotation with a <quote>nested quotation
+containing a <quote>nested quotation and another <quote>nested
+quotation</quote></quote></quote></quote>.
+</para>
+
+<figure id="testfig1"><title>Test Figure</title>
+<programlisting>This is a
+ ProgramListing
+</programlisting>
+</figure>
+
+<para>This para contains an xref to a figure: <xref linkend="testfig1"/>.
+</para>
+
+<figure id="testfig2"><title>Test Figure2</title>
+<programlisting>A Second
+ Test Figure
+</programlisting>
+</figure>
+
+<para>This para contains an <link linkend="testfig2">link</link> to a
+figure. And an xref: <xref linkend="testfig2"/>.
+</para>
+
+<figure id="testfig3"><title>Test Figure</title>
+<programlisting>This is a
+ ProgramListing
+</programlisting>
+</figure>
+
+<para>This para contains an xref to a figure: <xref linkend="testfig3"/>.
+</para>
+
+</article>
+
diff --git a/tests/docbook/test/foottest.xml b/tests/docbook/test/foottest.xml
new file mode 100644
index 00000000..50d2f16c
--- /dev/null
+++ b/tests/docbook/test/foottest.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article
+ PUBLIC "-//Norman Walsh//DTD Simplified DocBk XML V3.1.7.1//EN"
+ "../dtd/simple/3.1.7.1/sdocbook.dtd">
+
+<!-- test document -->
+
+<article><title>Article Test Document Title</title>
+<artheader>
+<title>Artheader Test Document Title</title>
+<authorgroup>
+<corpauthor>nwalsh</corpauthor>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+<othercredit><firstname>Other</firstname><surname>Credit</surname></othercredit>
+<editor><firstname>Someother</firstname><surname>Editor</surname></editor>
+<author><firstname>Someone</firstname><surname>Else</surname></author>
+</authorgroup>
+<pubdate>Apr. 26, 1999</pubdate>
+<copyright><year>1999</year><holder>Norman Walsh</holder></copyright>
+
+<abstract>
+<para>This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+This article is just a test. This article is just a test.
+</para>
+</abstract>
+</artheader>
+
+<para>This is a footnote<footnote><para>See?</para></footnote>.</para>
+
+<informaltable>
+<tgroup cols="3">
+<tbody>
+<row><entry>entry</entry><entry>entry</entry><entry>entry</entry></row>
+<row><entry>entry<footnote><para>table cell footnote</para></footnote></entry>
+<entry>entry</entry><entry>entry</entry></row>
+<row><entry>entry</entry><entry>entry</entry><entry>entry</entry></row>
+<row>
+<entry>Nebbiolo, Bonarda<footnote role="tablenote" label="1" id="ch15tb1">
+<para>
+<emphasis>Blended wines, made from two or more grapes</emphasis>
+</para>
+</footnote>
+</entry>
+<entry/>
+<entry/>
+</row>
+<row>
+<entry>Sangiovese, Canaiolo, and others<footnoteref label="1"
+linkend="ch15tb1"></footnoteref>
+</entry>
+<entry/>
+<entry/>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+
+<appendix><title>Appendix</title>
+
+<para>This is just a test.</para>
+
+</appendix>
+</article>
+
diff --git a/tests/docbook/test/fotest.xml b/tests/docbook/test/fotest.xml
new file mode 100644
index 00000000..8a029890
--- /dev/null
+++ b/tests/docbook/test/fotest.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+ PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "../dtd/3.1.7/docbookx.dtd">
+
+<!-- test document -->
+
+<book><title>Book Test Document Title</title>
+<bookinfo>
+<title>Bookinfo Test Document Title</title>
+<subtitle>Book Subtitle</subtitle>
+<authorgroup>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+</authorgroup>
+</bookinfo>
+
+<preface><title>Foreword</title>
+<para>This is a test paragraph.</para>
+
+<table id="table">
+<title>A Table</title>
+<tgroup cols="2">
+<colspec colwidth="0.5in"/>
+<colspec colwidth="0.5in"/>
+<tbody>
+<row>
+<entry>1</entry>
+<entry>1</entry>
+</row>
+<row>
+<entry>2</entry>
+<entry>4</entry>
+</row>
+<row>
+<entry>3</entry>
+<entry>9</entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+
+
+</preface>
+
+<chapter>
+ <docinfo><title>First Chapter</title><subtitle>Chapter Subtitle</subtitle>
+ </docinfo><title>First Chapter</title>
+<para>This is a test paragraph.</para>
+</chapter>
+
+<appendix><title>First Appendix</title>
+<para>This is just a test.</para>
+</appendix>
+
+</book>
+
+
diff --git a/tests/docbook/test/func.xml b/tests/docbook/test/func.xml
new file mode 100644
index 00000000..b596dcf4
--- /dev/null
+++ b/tests/docbook/test/func.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter
+ PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "../dtd/3.1.7/docbookx.dtd">
+<chapter id="ch1">
+<title>test</title>
+
+<para>
+This is a <function>foo<parameter>x</parameter><parameter>y</parameter></function>. This is just a <parameter>x</parameter>.
+</para>
+
+<para>
+This is a <function>bar<parameter>x</parameter><function>y<parameter>z</parameter></function></function>. This is just a <parameter>x</parameter>.
+</para>
+
+<para>
+This is a <function>bar<parameter>x</parameter><replaceable>z</replaceable></function>. This is just a <parameter>x</parameter>.
+</para>
+
+<para>
+This is a just a function <function>bar</function>.
+</para>
+
+</chapter>
diff --git a/tests/docbook/test/graphics.xml b/tests/docbook/test/graphics.xml
new file mode 100644
index 00000000..6eaeff8e
--- /dev/null
+++ b/tests/docbook/test/graphics.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "../dtd/4.1.2/docbookx.dtd" [
+<!ENTITY emc2 SYSTEM "emc2.png" NDATA PNG>
+]>
+
+<!-- test document -->
+
+<article><title>Graphics Test Document Title</title>
+
+<section><title>Graphic</title>
+
+ <para>fileref:</para>
+ <graphic fileref="emc2.png"/>
+
+ <para>entityref:</para>
+ <graphic entityref="emc2"/>
+
+ <para>fileref, scale=200:</para>
+ <graphic fileref="emc2.png" scale="200"/>
+
+ <para>fileref, width=20, depth=20</para>
+ <graphic fileref="emc2.png" width="20" depth="20"/>
+
+</section>
+
+<section><title>Inlinegraphic</title>
+
+ <para>fileref: <inlinegraphic fileref="emc2.png"/></para>
+
+ <para>entityref: <inlinegraphic entityref="emc2"/></para>
+
+ <para>fileref, scale=200: <inlinegraphic fileref="emc2.png" scale="200"/></para>
+
+</section>
+
+<section><title>MediaObject</title>
+ <para>fileref:</para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="emc2.png"/>
+ </imageobject>
+ </mediaobject>
+
+ <para>entityref:</para>
+ <mediaobject>
+ <imageobject>
+ <imagedata entityref="emc2"/>
+ </imageobject>
+ </mediaobject>
+
+ <para>fileref, scale=20:</para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="emc2.png" scale="20"/>
+ </imageobject>
+ </mediaobject>
+
+ <para>fileref, width=200, depth=400:</para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="xyzzy.foo"/>
+ </imageobject>
+ <imageobject>
+ <imagedata fileref="emc2.png" width="200" depth="400"/>
+ </imageobject>
+ <textobject>
+ <para>This is a text object</para>
+ </textobject>
+ </mediaobject>
+
+ <para>fileref, width=20, depth=20, alt=Alt text:</para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="xyzzy.foo"/>
+ </imageobject>
+ <imageobject>
+ <imagedata fileref="emc2.png" width="20" depth="20"/>
+ </imageobject>
+ <textobject>
+ <phrase>Alt text</phrase>
+ </textobject>
+ </mediaobject>
+
+</section>
+
+</article>
+
diff --git a/tests/docbook/test/gtest.xml b/tests/docbook/test/gtest.xml
new file mode 100644
index 00000000..69aadd7a
--- /dev/null
+++ b/tests/docbook/test/gtest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter
+ PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "../dtd/3.1.7/docbookx.dtd" [
+<!ENTITY emc2.gif SYSTEM "emc2.gif" NDATA GIF>
+]>
+<chapter>
+<title>Graphics Test</title>
+<para>A graphic by fileref:</para>
+<mediaobject>
+<imageobject>
+<imagedata fileref="emc2.gif"/>
+</imageobject>
+</mediaobject>
+
+<para>A graphic by entityref:</para>
+<mediaobject>
+<imageobject>
+<imagedata entityref="emc2.gif"/>
+</imageobject>
+</mediaobject>
+</chapter>
+
diff --git a/tests/docbook/test/idxbook.xml b/tests/docbook/test/idxbook.xml
new file mode 100644
index 00000000..70776bc7
--- /dev/null
+++ b/tests/docbook/test/idxbook.xml
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "../dtd/4.1.2/docbookx.dtd" [
+<!ENTITY idxbook.idx SYSTEM "idxbook.idx">
+]>
+<book><title>Book Test Index Document Title</title>
+<bookinfo>
+<indexterm zone="chapter ch2">
+<primary>chapter zone</primary></indexterm>
+<title>Bookinfo Test Index Document Title</title>
+<subtitle>Book Subtitle</subtitle>
+<authorgroup>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+</authorgroup>
+</bookinfo>
+
+<preface><title>Foreword</title>
+<para>This is a test paragraph<indexterm>
+<primary>paragraph</primary>
+<secondary>test</secondary></indexterm>.</para>
+</preface>
+
+<chapter id="chapter">
+<title>First Chapter</title>
+
+<para>Paragraph<indexterm>
+<primary>paragraph</primary></indexterm>.</para>
+
+<sect1><title>First Sect1</title>
+<para>Another paragraph<indexterm>
+<primary>paragraph</primary>
+<secondary>another</secondary>
+</indexterm>.</para>
+</sect1>
+</chapter>
+
+<chapter id="ch2"><title>Second Chapter</title>
+<para>This is a test paragraph.
+<indexterm>
+<primary sortas="ap1">the ap1</primary>
+</indexterm>
+<indexterm>
+<primary sortas="ap1">the ap1</primary>
+<seealso>see also ap2</seealso>
+</indexterm>
+<indexterm>
+<primary>ap2</primary>
+</indexterm>
+
+<indexterm>
+<primary>bp1</primary>
+<secondary>bp1bs1</secondary>
+</indexterm>
+<indexterm>
+<primary>bp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>cp1</primary>
+<secondary>cp1cs1</secondary>
+<tertiary>cp1cs1ct1</tertiary>
+</indexterm>
+
+<indexterm>
+<primary>cp2</primary>
+</indexterm>
+<indexterm>
+<primary>cp2see</primary>
+<secondary>cp2seesec</secondary>
+<see>cp2</see>
+</indexterm>
+
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds1</secondary>
+</indexterm>
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds2</secondary>
+</indexterm>
+<indexterm>
+<primary>dp2</primary>
+</indexterm></para>
+</chapter>
+
+<appendix><title>First Appendix</title>
+<para>This is just a test.
+<indexterm>
+<primary>ap1</primary>
+</indexterm>
+<indexterm>
+<primary>ap2</primary>
+</indexterm>
+
+<indexterm>
+<primary>bp1</primary>
+<secondary>bp1bs1</secondary>
+</indexterm>
+<indexterm>
+<primary>bp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>cp1</primary>
+<secondary>cp1cs1</secondary>
+<tertiary>cp1cs1ct1</tertiary>
+</indexterm>
+<indexterm>
+<primary>cp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds1</secondary>
+</indexterm>
+<indexterm>
+<primary>dp1</primary>
+<secondary>dp1ds2</secondary>
+</indexterm>
+<indexterm>
+<primary>dp2</primary>
+</indexterm>
+
+<indexterm>
+<primary>1 digit test</primary>
+</indexterm>
+<indexterm>
+<primary>[square bracket test]</primary>
+</indexterm>
+<indexterm>
+<primary>2 digit test</primary>
+</indexterm>
+</para>
+</appendix>
+
+<!--&idxbook.idx;-->
+<index/>
+
+</book>
+
+
diff --git a/tests/docbook/test/multilingual.xml b/tests/docbook/test/multilingual.xml
new file mode 100644
index 00000000..7ea256ae
--- /dev/null
+++ b/tests/docbook/test/multilingual.xml
@@ -0,0 +1,700 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+ PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "../dtd/3.1.7/docbookx.dtd">
+
+<!-- test document -->
+
+<book><title>Multilingual Test Document</title>
+
+<chapter lang="ca" id="cachap">
+<title>Catalan</title>
+<note>
+<para>
+This paragraph would be in Catalan, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="cs" id="cschap">
+<title>Czech</title>
+<note>
+<para>
+This paragraph would be in Czech, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="da" id="dachap">
+<title>Danish</title>
+<note>
+<para>
+This paragraph would be in Danish, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="es" id="eschap">
+<title>Spanish</title>
+<note>
+<para>
+This paragraph would be in Spanish, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="fi" id="fichap">
+<title>Finnish</title>
+<note>
+<para>
+This paragraph would be in Finnish, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="fr" id="frchap">
+<title>French</title>
+<note>
+<para>
+This paragraph would be in French, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="it" id="itchap">
+<title>Italian</title>
+<note>
+<para>
+This paragraph would be in Italian, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="de" id="dechap">
+<title>German</title>
+<note>
+<para>
+This paragraph would be in German, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="el" id="elchap">
+<title>Greek</title>
+<note>
+<para>
+This paragraph would be in Greek, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="en" id="enchap">
+<title>English</title>
+<note>
+<para>
+This paragraph is in English.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="ja" id="jachap">
+<title>Japanese</title>
+<note>
+<para>
+This paragraph would be in Japanese, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="ro" id="rochap">
+<title>Romanian</title>
+<note>
+<para>
+This paragraph would be in Romanian, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="ru" id="ruchap">
+<title>Russian</title>
+<note>
+<para>
+This paragraph would be in Russian, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="no" id="nochap">
+<title>Norsk</title>
+<note>
+<para>
+This paragraph would be in Norsk, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="nl" id="nlchap">
+<title>Dutch</title>
+<note>
+<para>
+This paragraph would be in Dutch, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="pl" id="plchap">
+<title>Polish</title>
+<note>
+<para>
+This paragraph would be in Polish, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="pt" id="ptchap">
+<title>Portuguese</title>
+<note>
+<para>
+This paragraph would be in Portugeuse, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="pt-br" id="ptbrchap">
+<title>Portuguese (Brazilian)</title>
+<note>
+<para>
+This paragraph would be in Brazilian Portugeuse, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="sk" id="skchap">
+<title>Slovak</title>
+<note>
+<para>
+This paragraph would be in Slovak, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<chapter lang="sv" id="svchap">
+<title>Swedish</title>
+<note>
+<para>
+This paragraph would be in Swedish, if I knew any.
+<quote>Quote test.</quote>
+</para>
+</note>
+<para>
+See <xref linkend="cachap"/>.
+See <xref linkend="cschap"/>.
+See <xref linkend="dachap"/>.
+See <xref linkend="dechap"/>.
+See <xref linkend="elchap"/>.
+See <xref linkend="enchap"/>.
+See <xref linkend="eschap"/>.
+See <xref linkend="fichap"/>.
+See <xref linkend="frchap"/>.
+See <xref linkend="itchap"/>.
+See <xref linkend="jachap"/>.
+See <xref linkend="nlchap"/>.
+See <xref linkend="nochap"/>.
+See <xref linkend="plchap"/>.
+See <xref linkend="ptchap"/>.
+See <xref linkend="ptbrchap"/>.
+See <xref linkend="rochap"/>.
+See <xref linkend="ruchap"/>.
+See <xref linkend="skchap"/>.
+See <xref linkend="svchap"/>.
+See <xref linkend="bibl"/>.
+</para>
+</chapter>
+
+<bibliography id="bibl">
+<biblioentry>
+ <abbrev>AhoSethiUllman96</abbrev>
+ <authorgroup>
+ <author><firstname>Alfred V.</firstname><surname>Aho</surname></author>
+ <author><firstname>Ravi</firstname><surname>Sethi</surname></author>
+ <author><firstname>Jeffrey D.</firstname><surname>Ullman</surname></author>
+ </authorgroup>
+ <title>Compilers, Principles, Techniques, and Tools</title>
+ <publisher>
+ <publishername>Addison-Wesley Publishing Company</publishername>
+ </publisher>
+ <copyright><year>1996</year>
+ <holder>Bell Telephone Laboratories, Inc.</holder></copyright>
+ <isbn>0-201-10088-6</isbn>
+ <editor><firstname>James T.</firstname><surname>DeWolf</surname></editor>
+ <seriesinfo>
+ <title>Computer Science</title>
+ <editor>
+ <firstname>Michael A.</firstname>
+ <surname>Harrison</surname>
+ </editor>
+ <publisher>
+ <publishername>Addison-Wesley Publishing Company</publishername>
+ </publisher>
+ </seriesinfo>
+</biblioentry>
+
+</bibliography>
+
+</book>
diff --git a/tests/docbook/test/qa.xml b/tests/docbook/test/qa.xml
new file mode 100644
index 00000000..282bb4fc
--- /dev/null
+++ b/tests/docbook/test/qa.xml
@@ -0,0 +1,136 @@
+<!DOCTYPE book
+ PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "../dtd/3.1.7/docbookx.dtd" [
+<!ENTITY qandasetbody "<qandadiv><title>Q&amp;A Div 1</title>
+<qandaentry>
+<question><label>Q1</label>
+<para>Question para 1</para>
+<para>Question para 2</para>
+</question>
+<answer><label>A1</label>
+<para>Answer para 1</para>
+<para>Answer para 2</para>
+</answer>
+</qandaentry>
+</qandadiv>
+<qandadiv><title>Q&amp;A Div 2</title>
+<qandaentry>
+<question>
+<para>Question para 1</para>
+<para>Question para 2</para>
+</question>
+<answer>
+<para>Answer para 1</para>
+<para>Answer para 2</para>
+</answer>
+</qandaentry>
+<qandaentry>
+<question>
+<para>Question para 1</para>
+<para>Question para 2</para>
+</question>
+<answer>
+<para>Answer para 1</para>
+<para>Answer para 2</para>
+</answer>
+</qandaentry>
+</qandadiv>">
+]>
+<book><title>book title</title>
+<chapter><title>chapter test</title>
+
+<qandaset>
+<title>Q&amp;A Set (unspecified)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="none">
+<title>Q&amp;A Set (none)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="number">
+<title>Q&amp;A Set (number)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="qanda">
+<title>Q&amp;A Set (qanda)</title>
+&qandasetbody;
+</qandaset>
+
+<section><title>Section title</title>
+
+<qandaset>
+<title>Q&amp;A Set (unspecified)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="none">
+<title>Q&amp;A Set (none)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="number">
+<title>Q&amp;A Set (number)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="qanda">
+<title>Q&amp;A Set (qanda)</title>
+&qandasetbody;
+</qandaset>
+
+</section>
+
+</chapter>
+
+<appendix><title>appendix test</title>
+
+<qandaset>
+<title>Q&amp;A Set (unspecified)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="none">
+<title>Q&amp;A Set (none)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="number">
+<title>Q&amp;A Set (number)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="qanda">
+<title>Q&amp;A Set (qanda)</title>
+&qandasetbody;
+</qandaset>
+
+<section><title>Section title</title>
+
+<qandaset>
+<title>Q&amp;A Set (unspecified)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="none">
+<title>Q&amp;A Set (none)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="number">
+<title>Q&amp;A Set (number)</title>
+&qandasetbody;
+</qandaset>
+
+<qandaset defaultlabel="qanda">
+<title>Q&amp;A Set (qanda)</title>
+&qandasetbody;
+</qandaset>
+
+</section>
+
+</appendix>
+</book>
+
diff --git a/tests/docbook/test/qa2.xml b/tests/docbook/test/qa2.xml
new file mode 100644
index 00000000..32505126
--- /dev/null
+++ b/tests/docbook/test/qa2.xml
@@ -0,0 +1,50 @@
+<!DOCTYPE book
+ PUBLIC "-//OASIS//DTD DocBook XML V4.0//EN"
+ "../dtd/4.1.2/docbookx.dtd" [
+]>
+<book><title>book title</title>
+<chapter><title>chapter test</title>
+
+<para>Test a cross reference to a question: <xref linkend="q1"/>.
+</para>
+
+<qandaset>
+<title>Q&amp;A Set (unspecified)</title>
+<qandadiv><title>Q&amp;A Div 1</title>
+<qandaentry>
+<question id="q1"><label>Q1</label>
+<para>Question para 1</para>
+<para>Question para 2</para>
+</question>
+<answer id="a1"><label>A1</label>
+<para>Answer para 1</para>
+<para>Answer para 2</para>
+</answer>
+</qandaentry>
+</qandadiv>
+<qandadiv><title>Q&amp;A Div 2</title>
+<qandaentry>
+<question>
+<para>Question para 1</para>
+<para>Question para 2</para>
+</question>
+<answer>
+<para>Answer para 1</para>
+<para>Answer para 2</para>
+</answer>
+</qandaentry>
+<qandaentry>
+<question>
+<para>Question para 1</para>
+<para>Question para 2</para>
+</question>
+<answer>
+<para>Answer para 1</para>
+<para>Answer para 2</para>
+</answer>
+</qandaentry>
+</qandadiv>
+</qandaset>
+</chapter>
+</book>
+
diff --git a/tests/docbook/test/sectest.xml b/tests/docbook/test/sectest.xml
new file mode 100644
index 00000000..03b7202d
--- /dev/null
+++ b/tests/docbook/test/sectest.xml
@@ -0,0 +1,832 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+ PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "../dtd/3.1.7/docbookx.dtd">
+<book id="book">
+<bookinfo>
+<title>Book Title</title>
+<author>
+<surname>Walsh</surname>
+<firstname>Norman</firstname>
+</author>
+<corpauthor>Some Corporation</corpauthor>
+<legalnotice>
+<title>Legal Notice</title>
+<para>This is a test document. You can do what you will with it.</para>
+</legalnotice>
+<legalnotice>
+<para>This is a second legal notice. But it's not noteworthy.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ Some more text. Some more text. Some more text. Some more text.
+ </para>
+</legalnotice>
+<copyright>
+<year>1998</year>
+<holder>Norman Walsh</holder>
+</copyright>
+</bookinfo>
+<dedication>
+<para>This test book is dedicated to all the testers. This is the first para
+of the dedication.</para>
+<para>This is the second para of the dedication.</para>
+<para>This is the third para of the dedication.</para>
+</dedication>
+<preface>
+<title>Preface Title</title>
+<para>Preface content.</para>
+<para>This is the second para of the preface.</para>
+<para>This is the third para of the preface.</para>
+</preface>
+<chapter id="chapter">
+<title id="chaptertitle">XRef Tests</title>
+<bridgehead renderas="sect3">Xrefs</bridgehead>
+<simplelist>
+<member><xref linkend="book"/></member>
+<member><xref linkend="part"/></member>
+<member><xref linkend="chapter"/></member>
+<member><xref linkend="appendix"/></member>
+<member><xref linkend="table"/></member>
+<member><xref linkend="figure"/></member>
+<member><xref linkend="example"/></member>
+<member><xref linkend="equation"/></member>
+<member><xref linkend="reference"/></member>
+<member><xref linkend="bib1"/></member>
+<member><xref linkend="gloss"/></member>
+<member><xref linkend="index"/></member>
+</simplelist>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<section><title>Section 1 Title</title>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+</section>
+<section><title>Section 1 Title</title>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+
+<para>blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah
+</para>
+</section>
+</chapter>
+</book>
diff --git a/tests/docbook/test/set.xml b/tests/docbook/test/set.xml
new file mode 100644
index 00000000..192e4dbf
--- /dev/null
+++ b/tests/docbook/test/set.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE set
+ PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "../dtd/3.1.7/docbookx.dtd">
+<!-- test document -->
+<set><title>Set Title</title>
+<book><title>Book Test Document Title</title>
+<bookinfo>
+<title>Bookinfo Test Document Title</title>
+<subtitle>Book Subtitle</subtitle>
+<authorgroup>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+</authorgroup>
+</bookinfo>
+
+<preface><title>Foreword</title>
+<para>This is a test paragraph.</para>
+</preface>
+
+<chapter id="chapter">
+<title id="chaptertitle">Section Tests</title>
+
+<sect1><title>First Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Second Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Third Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+
+</chapter>
+<appendix><title>First Appendix</title>
+<para>This is just a test.</para>
+<sect1><title>First Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Second Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Third Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+</appendix>
+</book>
+<book><title>Book Test Document Title</title>
+<bookinfo>
+<title>Bookinfo Test Document Title</title>
+<subtitle>Book Subtitle</subtitle>
+<authorgroup>
+<author><firstname>Norman</firstname><surname>Walsh</surname></author>
+</authorgroup>
+</bookinfo>
+
+<preface><title>Foreword</title>
+<para>This is a test paragraph.</para>
+</preface>
+
+<chapter>
+<title>Section Tests</title>
+
+<sect1><title>First Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Second Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+<sect1><title>Third Sect1</title>
+<para>Paragraph.</para>
+</sect1>
+
+</chapter>
+<appendix><title>First Appendix</title>
+<para>This is just a test.</para>
+</appendix>
+</book>
+</set>
+
diff --git a/tests/docbook/test/table.xml b/tests/docbook/test/table.xml
new file mode 100644
index 00000000..d343efde
--- /dev/null
+++ b/tests/docbook/test/table.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter
+ PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "../dtd/3.1.7/docbookx.dtd">
+<chapter id="ch1">
+<title>test</title>
+<para>How many &deg; can you &copy;.</para>
+
+<table frame="topbot"><title>A Table</title>
+<tgroup cols="3">
+<colspec align="right" colname="c2" colnum="2" colwidth="1.5*+2in"/>
+<colspec colname="c3" colwidth="2*+4pt"/>
+<tbody>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry morerows="1">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+</tbody>
+</tgroup>
+</table>
+
+<table frame="all"><title>A Table</title>
+<?dbhtml table-width="4in"?>
+<tgroup cols="3">
+<colspec align="right" colname="c2" colnum="2" colwidth="1.5*"/>
+<colspec colname="c3" colwidth="2*"/>
+<tbody>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry morerows="1">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+</tbody>
+</tgroup>
+</table>
+
+<table><title>A Table</title>
+<?dbhtml table-width="7in"?>
+<tgroup cols="3">
+<colspec colname="c1" colwidth="2in"/>
+<colspec align="right" colname="c2" colnum="2" colwidth="2in"/>
+<colspec colname="c3" colwidth="3in"/>
+<tbody>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry morerows="1">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+</tbody>
+</tgroup>
+</table>
+
+<table><title>A Table</title>
+<?dbhtml table-width="85%"?>
+<tgroup cols="3">
+<colspec align="right" colname="c2" colnum="2" colwidth="2in"/>
+<colspec colname="c3" colwidth="3in"/>
+<tbody>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry morerows="1">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry colname="c2">2</entry><entry>3</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+<row><entry namest="c2" nameend="c3">2</entry></row>
+<row><entry>1</entry><entry>2</entry><entry>3</entry></row>
+</tbody>
+</tgroup>
+</table>
+
+</chapter>
+
diff --git a/tests/docbook/test/test.xml b/tests/docbook/test/test.xml
new file mode 100644
index 00000000..007abbcc
--- /dev/null
+++ b/tests/docbook/test/test.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE article
+ PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "../dtd/4.1.2/docbookx.dtd">
+<article>
+<articleinfo>
+<title>Article Title</title>
+<keywordset>
+<keyword>keyword1</keyword>
+<keyword>keyword2</keyword>
+<keyword>keyword3</keyword>
+</keywordset>
+</articleinfo>
+
+<screen linenumbering="numbered"><?dbhtml linenumbering.everyNth="3" linenumbering.separator=" XX"?>This
+ is <lineannotation>With a line-annotation</lineannotation>
+ a
+ screen<co id="foo"/>
+ This
+ is <lineannotation>With a line-annotation</lineannotation>
+ a
+screen
+This
+ is <lineannotation>With a line-annotation</lineannotation>
+ a
+ screen</screen>
+
+<para>What about <xref linkend="foo"/>?</para>
+
+<mediaobjectco>
+<imageobjectco>
+<areaspec units="calspair">
+ <areaset id="oneway" coords="">
+ <area id="oneway1" coords="300 400"/>
+ <area id="oneway2" coords="325 340"/>
+ </areaset>
+ <area id="myhouse" coords="425 590"/>
+</areaspec>
+<!-- This is not a real URL! -->
+<imageobject>
+<imagedata fileref="http://maps.example.com/EARTH?USA?MA?AMHERST"/>
+</imageobject>
+</imageobjectco>
+</mediaobjectco>
+
+</article>
diff --git a/tests/docbook/test/test.xsl b/tests/docbook/test/test.xsl
new file mode 100644
index 00000000..5d5a7e80
--- /dev/null
+++ b/tests/docbook/test/test.xsl
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<xsl:import href="../html/docbook.xsl"/>
+
+<xsl:output doctype-public="..." doctype-system="..."/>
+
+</xsl:stylesheet>
diff --git a/tests/docbook/test/verbtest.xml b/tests/docbook/test/verbtest.xml
new file mode 100644
index 00000000..b1cd2ced
--- /dev/null
+++ b/tests/docbook/test/verbtest.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book
+ PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.7//EN"
+ "../dtd/3.1.7/docbookx.dtd">
+<book id="book">
+<title>Book Title</title>
+
+<chapter id="ch1">
+<title>test</title>
+<para>How many &deg; can you &copy;.</para>
+<para>And what about <xref linkend="ch1"/>.</para>
+<para>And what about <xref linkend="s1"/>.</para>
+
+<programlisting>
+This is a program
+listing.
+</programlisting>
+
+</chapter>
+</book>