[lfs-fr] r1294 - in trunk/clfs: . cross-tools/common final-system/64 final-system/alpha final-system/common final-system/mips final-system/mips64 final-system/mips64-64 final-system/multilib final-system/ppc final-system/ppc64 final-system/sparc64 final-system/sparc64-64 final-system/x86 final-system/x86_64 final-system/x86_64-64 introduction/common materials/common schema schema/docbook schema/docbook/4.5 schema/docbook/4.5/rng temp-system/64 temp-system/common temp-system/multilib

jmengual at linuxfromscratch.org jmengual at linuxfromscratch.org
Dim 17 Avr 14:49:19 PDT 2011


Author: jmengual
Date: 2011-04-17 23:49:19 +0200 (Sun, 17 Apr 2011)
New Revision: 1294

Added:
   trunk/clfs/schema/
   trunk/clfs/schema/docbook/
   trunk/clfs/schema/docbook/4.5/
   trunk/clfs/schema/docbook/4.5/rng/
   trunk/clfs/schema/docbook/4.5/rng/calstblx.rnc
   trunk/clfs/schema/docbook/4.5/rng/calstblx.rng
   trunk/clfs/schema/docbook/4.5/rng/dbhierx.rnc
   trunk/clfs/schema/docbook/4.5/rng/dbhierx.rng
   trunk/clfs/schema/docbook/4.5/rng/dbnotnx.rnc
   trunk/clfs/schema/docbook/4.5/rng/dbnotnx.rng
   trunk/clfs/schema/docbook/4.5/rng/dbpoolx.rnc
   trunk/clfs/schema/docbook/4.5/rng/dbpoolx.rng
   trunk/clfs/schema/docbook/4.5/rng/docbook.rnc
   trunk/clfs/schema/docbook/4.5/rng/docbook.rng
   trunk/clfs/schema/docbook/4.5/rng/htmltblx.rnc
   trunk/clfs/schema/docbook/4.5/rng/htmltblx.rng
Modified:
   trunk/clfs/Makefile
   trunk/clfs/cross-tools/common/cloog-ppl.xml
   trunk/clfs/cross-tools/common/ppl.xml
   trunk/clfs/final-system/64/binutils.xml
   trunk/clfs/final-system/alpha/eglibc.xml
   trunk/clfs/final-system/common/binutils.xml
   trunk/clfs/final-system/common/cloog-ppl.xml
   trunk/clfs/final-system/common/eglibc.xml
   trunk/clfs/final-system/common/gcc.xml
   trunk/clfs/final-system/common/gmp.xml
   trunk/clfs/final-system/common/mpc.xml
   trunk/clfs/final-system/common/mpfr.xml
   trunk/clfs/final-system/common/ppl.xml
   trunk/clfs/final-system/common/zlib.xml
   trunk/clfs/final-system/mips/eglibc.xml
   trunk/clfs/final-system/mips64-64/eglibc.xml
   trunk/clfs/final-system/mips64/binutils.xml
   trunk/clfs/final-system/mips64/eglibc-64bit.xml
   trunk/clfs/final-system/mips64/eglibc-n32.xml
   trunk/clfs/final-system/mips64/eglibc.xml
   trunk/clfs/final-system/mips64/gcc.xml
   trunk/clfs/final-system/mips64/ppl-64bit.xml
   trunk/clfs/final-system/multilib/binutils.xml
   trunk/clfs/final-system/multilib/cloog-ppl-64bit.xml
   trunk/clfs/final-system/multilib/cloog-ppl-n32.xml
   trunk/clfs/final-system/multilib/cloog-ppl.xml
   trunk/clfs/final-system/multilib/eglibc-64bit.xml
   trunk/clfs/final-system/multilib/eglibc.xml
   trunk/clfs/final-system/multilib/gcc.xml
   trunk/clfs/final-system/multilib/gmp-64bit.xml
   trunk/clfs/final-system/multilib/gmp-n32.xml
   trunk/clfs/final-system/multilib/gmp.xml
   trunk/clfs/final-system/multilib/mpc-64bit.xml
   trunk/clfs/final-system/multilib/mpc-n32.xml
   trunk/clfs/final-system/multilib/mpc.xml
   trunk/clfs/final-system/multilib/mpfr-64bit.xml
   trunk/clfs/final-system/multilib/mpfr-n32.xml
   trunk/clfs/final-system/multilib/mpfr.xml
   trunk/clfs/final-system/multilib/ppl-64bit.xml
   trunk/clfs/final-system/multilib/ppl-n32.xml
   trunk/clfs/final-system/multilib/ppl.xml
   trunk/clfs/final-system/multilib/zlib-64bit.xml
   trunk/clfs/final-system/multilib/zlib-n32.xml
   trunk/clfs/final-system/multilib/zlib.xml
   trunk/clfs/final-system/ppc/eglibc.xml
   trunk/clfs/final-system/ppc64/eglibc-64bit.xml
   trunk/clfs/final-system/ppc64/eglibc.xml
   trunk/clfs/final-system/sparc64-64/eglibc.xml
   trunk/clfs/final-system/sparc64/eglibc-64bit.xml
   trunk/clfs/final-system/x86/eglibc.xml
   trunk/clfs/final-system/x86_64-64/eglibc.xml
   trunk/clfs/final-system/x86_64/eglibc-64bit.xml
   trunk/clfs/final-system/x86_64/eglibc.xml
   trunk/clfs/general.ent
   trunk/clfs/introduction/common/changelog.xml
   trunk/clfs/materials/common/patches.xml
   trunk/clfs/packages.ent
   trunk/clfs/patches.ent
   trunk/clfs/temp-system/64/cloog-ppl.xml
   trunk/clfs/temp-system/64/mpc.xml
   trunk/clfs/temp-system/64/ppl.xml
   trunk/clfs/temp-system/common/cloog-ppl.xml
   trunk/clfs/temp-system/common/ppl.xml
   trunk/clfs/temp-system/common/vim.xml
   trunk/clfs/temp-system/multilib/cloog-ppl.xml
   trunk/clfs/temp-system/multilib/ppl.xml
   trunk/clfs/temp-system/multilib/vim.xml
Log:
Mises a jour


Modified: trunk/clfs/Makefile
===================================================================
--- trunk/clfs/Makefile	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/Makefile	2011-04-17 21:49:19 UTC (rev 1294)
@@ -1,59 +1,41 @@
 TOP		:= $(PWD)
+RENDERDIR	:= $(TOP)/../render
 
-WORKDIR		:= $(TOP)/render-output
+VALIDATEDIR	:= $(RENDERDIR)/validate
+PROFILEDIR	:= $(RENDERDIR)/profile
 
-BASEDIR		:= $(WORKDIR)/cross-lfs-book
-DUMPDIR		:= $(WORKDIR)/cross-lfs-commands
-DLLISTDIR	:= $(WORKDIR)/cross-lfs-dllist
-RENDERTMP       := $(WORKDIR)/tmp
+HTMLDIR		:= $(RENDERDIR)/html
+NOCHUNKDIR	:= $(RENDERDIR)/nochunk
+
+FODIR		:= $(RENDERDIR)/fo
+PDFDIR		:= $(RENDERDIR)/pdf
+
+TROUBLEDIR	:= $(RENDERDIR)/trouble
+DUMPDIR		:= $(RENDERDIR)/commands
+DLLISTDIR	:= $(RENDERDIR)/download-list
+
 CHUNK_QUIET	:= 1
-ROOT_ID	 :=
+ROOT_ID		:=
 
-FG_GREEN	:= $(shell echo -e '\e[0;32m')
-FG_BLUE		:= $(shell echo -e '\e[0;34m')
-FG_DEFAULT	:= $(shell echo -e '\e[0;0m')
-
 ARCHS		:= x86 x86_64 x86_64-64 \
 		   sparc sparc64 sparc64-64 \
 		   mips mips64 mips64-64 \
 		   ppc ppc64 \
 		   alpha
 
-ARCHS_VD_XML	:= $(ARCHS:%=%-validate_dump-xml)
-ARCHS_P_XML	:= $(ARCHS:%=%-profiled-xml)
-
-ARCHS_HTML	:= $(ARCHS:%=%-html)
-ARCHS_NOCHUNKS	:= $(ARCHS:%=%-nochunks)
-ARCHS_PDF	:= $(ARCHS:%=%-pdf)
-ARCHS_VALIDATE	:= $(ARCHS:%=%-validate)
-ARCHS_TROUBLE	:= $(ARCHS:%=%-trouble)
-ARCHS_DUMP	:= $(ARCHS:%=%-dump)
-ARCHS_DLLIST	:= $(ARCHS:%=%-dllist)
-
 ifdef V
   Q =
 else
   Q = @
 endif
 
-.PHONY: clfs lfs render nochunks pdf validate trouble dump-commands download-list
-clfs lfs: tmpdir render
-render: $(ARCHS_HTML) titlepage
-nochunks: tmpdir $(ARCHS_NOCHUNKS)
-pdf: tmpdir $(ARCHS_PDF)
-validate: $(ARCHS_VALIDATE)
-trouble: tmpdir $(ARCHS_TROUBLE)
-dump-commands: $(ARCHS_DUMP)
-download-list: $(ARCHS_DLLIST)
+.PHONY: clfs lfs
+clfs lfs: html
 
-.PHONY: tmpdir
-tmpdir:
-	$(Q)mkdir -p $(RENDERTMP)
-
 .PHONY: tidy tidy-f tidy-d
 ifeq ($(shell which tidy >/dev/null 2>&1 && echo yes),yes)
 tidy:
-	@$(MAKE) --no-print-directory tidy-d TIDY_DIR=$(BASEDIR)
+	@$(MAKE) --no-print-directory tidy-d TIDY_DIR=$(HTMLDIR)
 
 tidy-f:
 	@echo "Running tidy on F:$(shell basename $(TIDY_FILE))"
@@ -70,118 +52,166 @@
 .PHONY: titlepage
 titlepage:
 	@echo "Rendering the top-level index..."
-	$(Q)xsltproc --nonet --output $(BASEDIR)/index.html \
-	  $(PWD)/stylesheets/top-index.xsl $(PWD)/index.xml
-	@$(MAKE) --no-print-directory tidy-f TIDY_FILE=$(BASEDIR)/index.html
+	$(Q)xsltproc --nonet --output $(HTMLDIR)/index.html \
+	  $(PWD)/stylesheets/top-index.xsl \
+	  $(PWD)/index.xml
+	@$(MAKE) --no-print-directory tidy-f TIDY_FILE=$(HTMLDIR)/index.html
 
-
+ARCHS_VD_XML := $(ARCHS:%=%-validate_dump-xml)
 .PHONY: $(ARCHS_VD_XML)
 $(ARCHS_VD_XML): override arch = $(@:%-validate_dump-xml=%)
-$(ARCHS_VD_XML): tmpdir
+$(ARCHS_VD_XML):
 	@echo "Validating $(arch) book..."
-	$(Q)xmllint --nonet --noent --xinclude --postvalid \
-	  -o $(RENDERTMP)/$(arch)-full.xml $(PWD)/$(arch)-index.xml
+	$(Q)mkdir -p $(VALIDATEDIR)
+	$(Q)xmllint --nonet --noent --xinclude \
+	  --relaxng $(TOP)/schema/docbook/4.5/rng/docbook.rng \
+	  -o $(VALIDATEDIR)/$(arch)-full.xml \
+	  $(PWD)/$(arch)-index.xml
 
+ARCHS_P_XML := $(ARCHS:%=%-profiled-xml)
 .PHONY: $(ARCHS_P_XML)
 $(ARCHS_P_XML): override arch = $(@:%-profiled-xml=%)
-$(ARCHS_P_XML): tmpdir
+$(ARCHS_P_XML):
 	@$(MAKE) --no-print-directory $(arch)-validate_dump-xml
-
-	@echo "Generating profiled $(arch) book for XHTML..."
+	@echo "Generating profiled $(arch) book..."
+	$(Q)mkdir -p $(PROFILEDIR)
 	$(Q)xsltproc --nonet --stringparam profile.condition html \
-	  --output $(RENDERTMP)/$(arch)-html.xml \
-	  $(PWD)/stylesheets/lfs-xsl/profile.xsl $(RENDERTMP)/$(arch)-full.xml
+	  --output $(PROFILEDIR)/$(arch)-html.xml \
+	  $(PWD)/stylesheets/lfs-xsl/profile.xsl \
+	  $(VALIDATEDIR)/$(arch)-full.xml
 
-.PHONY: $(ARCHS_HTML)
+ARCHS_HTML := $(ARCHS:%=%-html)
+.PHONY: html render $(ARCHS_HTML)
+html render: $(ARCHS_HTML) titlepage
 $(ARCHS_HTML): override arch = $(@:%-html=%)
-$(ARCHS_HTML): tmpdir
+$(ARCHS_HTML):
 	@$(MAKE) --no-print-directory $(arch)-profiled-xml
 
 	@echo "Rendering chunked XHTML of $(arch)..."
-	$(Q)mkdir -p $(BASEDIR)/$(arch)
+	$(Q)mkdir -p $(HTMLDIR)/$(arch)
 	$(Q)xsltproc --nonet -stringparam chunk.quietly $(CHUNK_QUIET) \
 	  -stringparam rootid "$(ROOT_ID)" \
-	  -stringparam base.dir $(BASEDIR)/$(arch)/ \
-	  $(PWD)/stylesheets/clfs-chunked.xsl $(RENDERTMP)/$(arch)-html.xml
+	  -stringparam base.dir $(HTMLDIR)/$(arch)/ \
+	  $(PWD)/stylesheets/clfs-chunked.xsl \
+	  $(PROFILEDIR)/$(arch)-html.xml
 
 	@echo "Copying CSS code and images for $(arch)..."
-	$(Q)mkdir -p $(BASEDIR)/$(arch)/stylesheets
-	$(Q)cp $(PWD)/stylesheets/lfs-xsl/*.css $(BASEDIR)/$(arch)/stylesheets
-	$(Q)sed -i -e "s at ../stylesheets at stylesheets@g" $(BASEDIR)/$(arch)/*.html
-	$(Q)mkdir -p $(BASEDIR)/$(arch)/images
-	$(Q)cp $(PWD)/images/*.png $(BASEDIR)/$(arch)/images
-	$(Q)sed -i -e "s at ../images at images@g" $(BASEDIR)/$(arch)/*.html
+	$(Q)mkdir -p $(HTMLDIR)/$(arch)/stylesheets
+	$(Q)cp $(PWD)/stylesheets/lfs-xsl/*.css $(HTMLDIR)/$(arch)/stylesheets
+	$(Q)sed -i -e "s at ../stylesheets at stylesheets@g" $(HTMLDIR)/$(arch)/*.html
+	$(Q)mkdir -p $(HTMLDIR)/$(arch)/images
+	$(Q)cp $(PWD)/images/*.png $(HTMLDIR)/$(arch)/images
+	$(Q)sed -i -e "s at ../images at images@g" $(HTMLDIR)/$(arch)/*.html
 
-	@$(MAKE) --no-print-directory tidy-d TIDY_DIR=$(BASEDIR)/$(arch)
+	@$(MAKE) --no-print-directory tidy-d TIDY_DIR=$(HTMLDIR)/$(arch)
 
-.PHONY: $(ARCHS_NOCHUNKS)
+ARCHS_NOCHUNKS := $(ARCHS:%=%-nochunks)
+.PHONY: nochunks $(ARCHS_NOCHUNKS)
+nochunks: $(ARCHS_NOCHUNKS)
 $(ARCHS_NOCHUNKS): override arch = $(@:%-nochunks=%)
-$(ARCHS_NOCHUNKS): tmpdir
+$(ARCHS_NOCHUNKS):
 	@$(MAKE) --no-print-directory $(arch)-profiled-xml
 
 	@echo "Rendering Single File HTML of $(arch)..."
-	$(Q)mkdir -p $(BASEDIR)
+	$(Q)mkdir -p $(NOCHUNKDIR)
 	$(Q)xsltproc --nonet -stringparam rootid "$(ROOT_ID)" \
-	  --output $(BASEDIR)/CLFS-$(arch).html \
-	  $(PWD)/stylesheets/clfs-nochunks.xsl $(RENDERTMP)/$(arch)-html.xml
+	  --output $(NOCHUNKDIR)/CLFS-$(arch).html \
+	  $(PWD)/stylesheets/clfs-nochunks.xsl \
+	  $(PROFILEDIR)/$(arch)-html.xml
 
-	@$(MAKE) --no-print-directory tidy-f TIDY_FILE=$(BASEDIR)/CLFS-$(arch).html
+	@$(MAKE) --no-print-directory tidy-f TIDY_FILE=$(NOCHUNKDIR)/CLFS-$(arch).html
 
-.PHONY: $(ARCHS_PDF)
-$(ARCHS_PDF): override arch =  $(@:%-pdf=%)
-$(ARCHS_PDF): tmpdir
+ARCHS_FO := $(ARCHS:%=%-fo)
+.PHONY: fo $(ARCHS_FO)
+fo: $(ARCHS_FO)
+$(ARCHS_FO): override arch = $(@:%-fo=%)
+$(ARCHS_FO):
 	@$(MAKE) --no-print-directory $(arch)-profiled-xml
 
 	@echo "Generating FO file of $(arch)..."
+	@mkdir -p $(FODIR)
 	$(Q)xsltproc --nonet -stringparam rootid "$(ROOT_ID)" \
-	  --output $(RENDERTMP)/$(arch).fo $(PWD)/stylesheets/clfs-pdf.xsl \
-	  $(RENDERTMP)/$(arch)-html.xml
-	$(Q)sed -i -e 's/span="inherit"/span="all"/' $(RENDERTMP)/$(arch).fo
+	  --output $(FODIR)/$(arch).fo \
+	  $(PWD)/stylesheets/clfs-pdf.xsl \
+	  $(PROFILEDIR)/$(arch)-html.xml
+	$(Q)sed -i -e 's/span="inherit"/span="all"/' $(FODIR)/$(arch).fo
 
+ARCHS_PDF := $(ARCHS:%=%-pdf)
+.PHONY: pdf $(ARCHS_PDF)
+pdf: $(ARCHS_PDF)
+$(ARCHS_PDF): override arch = $(@:%-pdf=%)
+$(ARCHS_PDF):
+	@$(MAKE) --no-print-directory $(arch)-fo
+
 	@echo "Rendering PDF of $(arch)..."
-	$(Q)mkdir -p $(BASEDIR)
-	$(Q)fop $(RENDERTMP)/$(arch).fo $(BASEDIR)/CLFS-$(arch).pdf
+	$(Q)mkdir -p $(PDFDIR)
+	$(Q)fop $(FODIR)/$(arch).fo $(PDFDIR)/CLFS-$(arch).pdf
 
-.PHONY: $(ARCHS_VALIDATE)
+ARCHS_VALIDATE := $(ARCHS:%=%-validate)
+.PHONY: validate $(ARCHS_VALIDATE)
+validate: $(ARCHS_VALIDATE)
 $(ARCHS_VALIDATE): override arch =  $(@:%-validate=%)
 $(ARCHS_VALIDATE):
 	@echo "Validating $(arch)..."
-	$(Q)xmllint --xinclude --noout --nonet --postvalid $(PWD)/$(arch)-index.xml
+	$(Q)xmllint --xinclude --noout --nonet \
+	  --relaxng $(TOP)/schema/docbook/4.5/rng/docbook.rng \
+	  $(PWD)/$(arch)-index.xml
 
-.PHONY: $(ARCHS_TROUBLE)
-$(ARCHS_TROUBLE): override trouble_arch =  $(@:%-trouble=%)
-$(ARCHS_TROUBLE): tmpdir
-	@echo "Troubleshooting $(trouble_arch)..."
-	$(Q)xmllint --xinclude --nonet --postvalid \
-	  -o $(RENDERTMP)/dump-$(arch) $(PWD)/$(arch)-index.xml
-	$(Q)xmllint --xinclude --noout --nonet --valid $(RENDERTMP)/dump-$(arch)
-	@echo "You can now look at $(RENDERTMP)/dump-$(arch) to see the errors"
+ARCHS_TROUBLE := $(ARCHS:%=%-trouble)
+.PHONY: trouble $(ARCHS_TROUBLE)
+trouble: $(ARCHS_TROUBLE)
+$(ARCHS_TROUBLE): override arch = $(@:%-trouble=%)
+$(ARCHS_TROUBLE):
+	@echo "Troubleshooting $(arch)..."
+	@mkdir -p $(TROUBLEDIR)
+	$(Q)xmllint --xinclude --nonet \
+	  --relaxng $(TOP)/schema/docbook/4.5/rng/docbook.rng \
+	  -o $(TROUBLEDIR)/dump-$(arch) \
+	  $(PWD)/$(arch)-index.xml
+	$(Q)xmllint --xinclude --noout --nonet \
+	  --relaxng $(TOP)/schema/docbook/4.5/rng/docbook.rng \
+	  $(TROUBLEDIR)/dump-$(arch)
+	@echo "You can now look at $(TROUBLEDIR)/dump-$(arch) to see the errors"
 
-.PHONY: $(ARCHS_DUMP)
-$(ARCHS_DUMP): override arch =  $(@:%-dump=%)
+ARCHS_DUMP := $(ARCHS:%=%-dump)
+.PHONY: dump-commands $(ARCHS_DUMP)
+dump-commands: $(ARCHS_DUMP)
+$(ARCHS_DUMP): override arch = $(@:%-dump=%)
 $(ARCHS_DUMP):
 	@echo "Extracting commands from $(arch)..."
 	$(Q)mkdir -p $(DUMPDIR)/$(arch)
-	$(Q)xsltproc --xinclude --nonet --output $(DUMPDIR)/$(arch)/ \
-	  $(PWD)/stylesheets/dump-commands.xsl $(PWD)/$(arch)-index.xml
+	$(Q)xsltproc --xinclude --nonet \
+	  --output $(DUMPDIR)/$(arch)/ \
+	  $(PWD)/stylesheets/dump-commands.xsl \
+	  $(PWD)/$(arch)-index.xml
 
-.PHONY: $(ARCHS_DLLIST)
+ARCHS_DLLIST := $(ARCHS:%=%-dllist)
+.PHONY: download-list $(ARCHS_DLLIST)
+download-list: $(ARCHS_DLLIST)
 $(ARCHS_DLLIST): override arch = $(@:%-dllist=%)
 $(ARCHS_DLLIST):
 	@echo "Creating download list for $(arch)..."
 	$(Q)mkdir -p $(DLLISTDIR)
-	$(Q)xsltproc --xinclude --nonet --output $(DLLISTDIR)/$(arch)/dl.list \
-	  $(PWD)/stylesheets/wget.xsl $(PWD)/$(arch)-index.xml
+	$(Q)xsltproc --xinclude --nonet \
+	  --output $(DLLISTDIR)/$(arch).list \
+	  $(PWD)/stylesheets/wget.xsl \
+	  $(PWD)/$(arch)-index.xml
 
+FG_GREEN := $(shell echo -e '\e[0;32m')
+FG_BLUE := $(shell echo -e '\e[0;34m')
+FG_DEFAULT := $(shell echo -e '\e[0;0m')
 help:
-	@echo "Output: $(WORKDIR)"
+	@echo "Output: $(RENDERDIR)"
 	@echo
 	@echo "HTML Targets"
-	@echo "  $(FG_GREEN)clfs lfs tidy render titlepage $(FG_BLUE)$(ARCHS_HTML)$(FG_DEFAULT)"
+	@echo "  $(FG_GREEN)clfs lfs tidy html render titlepage $(FG_BLUE)$(ARCHS_HTML)$(FG_DEFAULT)"
 	@echo
 	@echo "NoChunks Targets"
 	@echo "  $(FG_GREEN)nochunks tidy $(FG_BLUE)$(ARCHS_NOCHUNKS)$(FG_DEFAULT)"
 	@echo
+	@echo "FO Targets"
+	@echo "  $(FG_GREEN)fo $(FG_BLUE)$(ARCHS_FO)$(FG_DEFAULT)"
+	@echo
 	@echo "PDF Targets"
 	@echo "  $(FG_GREEN)pdf $(FG_BLUE)$(ARCHS_PDF)$(FG_DEFAULT)"
 	@echo

Modified: trunk/clfs/cross-tools/common/cloog-ppl.xml
===================================================================
--- trunk/clfs/cross-tools/common/cloog-ppl.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/cross-tools/common/cloog-ppl.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -23,14 +23,6 @@
     <title>Installation de CLooG-PPL</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../../final-system/common/cloog-ppl.xml"
-    xpointer="xpointer(//*[@os='p1'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../../final-system/common/cloog-ppl.xml"
-    xpointer="xpointer(//*[@os='p2'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../../temp-system/common/cloog-ppl.xml"
     xpointer="xpointer(//*[@os='s1'])"/>
 

Modified: trunk/clfs/cross-tools/common/ppl.xml
===================================================================
--- trunk/clfs/cross-tools/common/ppl.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/cross-tools/common/ppl.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -22,15 +22,6 @@
   <sect2 role="installation">
     <title>Installation de PPL</title>
 
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../../final-system/common/ppl.xml"
-    xpointer="xpointer(//*[@os='s1'])"/>
-
-<screen os="s2"><userinput>cp -v configure{,.orig}
-sed -e "s/__GMP_BITS_PER_MP_LIMB/GMP_LIMB_BITS/g" \
-    configure.orig > configure</userinput></screen>
-
     <para os="a">Préparez la compilation de PPL :</para>
 
 <screen os="b"><userinput>LDFLAGS="-Wl,-rpath,/cross-tools/lib" \

Modified: trunk/clfs/final-system/64/binutils.xml
===================================================================
--- trunk/clfs/final-system/64/binutils.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/64/binutils.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -54,8 +54,8 @@
     xpointer="xpointer(//*[@os='i'])"/>
 
 <screen os="ca"><userinput>CC="gcc -isystem /usr/include" \
-    LDFLAGS="-Wl,-rpath-link,/lib" \
-     ../binutils-&binutils-version;/configure --prefix=/usr \
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib" \
+  ../binutils-&binutils-version;/configure --prefix=/usr \
      --libdir=/usr/lib --enable-shared \
      --disable-multilib --enable-64-bit-bfd</userinput></screen>
 

Modified: trunk/clfs/final-system/alpha/eglibc.xml
===================================================================
--- trunk/clfs/final-system/alpha/eglibc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/alpha/eglibc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -27,6 +27,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -35,6 +43,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='b'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/final-system/common/binutils.xml
===================================================================
--- trunk/clfs/final-system/common/binutils.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/common/binutils.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -49,8 +49,8 @@
     <para os="i">Préparez la compilation de Binutils :</para>
 
 <screen os="ca"><userinput>CC="gcc -isystem /usr/include" \
-    LDFLAGS="-Wl,-rpath-link,/lib" \
-     ../binutils-&binutils-version;/configure --prefix=/usr \
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib" \
+  ../binutils-&binutils-version;/configure --prefix=/usr \
      --enable-shared</userinput></screen>
 
     <para os="j">Compilez le paquet :</para>

Modified: trunk/clfs/final-system/common/cloog-ppl.xml
===================================================================
--- trunk/clfs/final-system/common/cloog-ppl.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/common/cloog-ppl.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -28,16 +28,11 @@
   <sect2 role="installation">
     <title>Installation de CLooG-PPL</title>
 
-    <para os="p1">Quand cette version de CLooG-PPL a été empaquetée, il manquait
-    quelques fichiers liés à Libtool. Le correctif suivant les rajoute et 
-    régénère Automake et Autoconf.</para>
-
-<screen os="p2"><userinput>patch -Np1 -i ../&cloog-ppl-autogen-patch;</userinput></screen>
-
     <para os="a">Préparez la compilation de CLooG-PPL :</para>
 
-<screen os="b"><userinput>CC="gcc -isystem /usr/include" LDFLAGS="-Wl,-rpath-link,/lib" \
-    ./configure --prefix=/usr --enable-shared --with-gmp \
+<screen os="b"><userinput>CC="gcc -isystem /usr/include" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib" \
+  ./configure --prefix=/usr --enable-shared --with-gmp \
     --with-ppl</userinput></screen>
 
     <para os="c">Compilez le paquet :</para>

Modified: trunk/clfs/final-system/common/eglibc.xml
===================================================================
--- trunk/clfs/final-system/common/eglibc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/common/eglibc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -39,14 +39,32 @@
       l'Unicode, du coup libiconv n'est pas requis sur un système CLFS.</para>
     </note>
 
-    <para os="l3">Le sed suivant s'assure que l'EGLIBC construit sera testé pendant le make install et non celui qu'on a
-    préalablement construit :</para>
+    <para os="l1">À la fin de l'installation, le système de construction
+    exécutera un test de propreté pour s'assurer que tout s'est installé
+    correctement. Ce script essaiera de tester la présence d'une bibliothèque
+    utilisée uniquement pour la suite de tests, et elle n'est jamais installée.
+    Empêchez le script de tester la présence de cette bibliothèque avec la
+    commande suivante :</para>
 
-<screen os="l4"><userinput>LINKER=$(readelf -l $(file /tools/lib/libc-* | cut -f1 -d:) | sed -n 's at .*interpret.*/tools\(.*\)]$@\1 at p')
+<screen os="l2"><userinput>sed -i 's/\(&& $name ne\) "db1"/ & \1 "nss_test1"/' scripts/test-installation.pl</userinput></screen>
+
+    <para os="l3">Ce même script effectue ses tests en essayant de compiler
+    des programmes de test contre certaines bibliothèques. Cependant, il ne
+    spécifie pas le ld.so, or notre ensemble d'outils est configuré pour utiliser
+    celui de /tools. L'ensemble de commandes suivant obligera le script à
+    utiliser le chemin complet du nouveau ld.so qu'on vient d'installer :</para>
+ 
+<screen os="l4"><userinput>LINKER=$(readelf -l /tools/bin/bash | sed -n 's at .*interpret.*/tools\(.*\)]$@\1 at p')
 sed -i "s|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=${LINKER} -o|" \
-  scripts/test-installation.pl
+   scripts/test-installation.pl
 unset LINKER</userinput></screen>
 
+    <para os="p1">Le correctif suivant corrige un problème où EGLIBC gèrera mal
+    une condition au terme de laquelle un binaire elf a des dépendances 
+    manquantes :</para>
+
+<screen os="p2"><userinput>patch -Np1 -i ../&eglibc-dl_dep_fix-patch;</userinput></screen>
+
     <para os="b">Le système de construction d'EGLIBC est autosuffisant et s'installe
     parfaitement, même si notre fichier specs pour le compilateur et l'éditeur de
     liens pointent toujours vers <filename class="directory">/tools</filename>. Les
@@ -94,7 +112,7 @@
 
 
 <screen os="n"><userinput>cp -v ../eglibc-&eglibc-version;/iconvdata/gconv-modules iconvdata
-make -k check >eglibc-check-log 2>&1 ; grep Error eglibc-check-log</userinput></screen>
+make -k check 2>&1 | tee eglibc-check-log; grep Error eglibc-check-log</userinput></screen>
 
     <para os="o">La suite de tests EGLIBC est très dépendante de certaines fonctions du système hôte, en particulier du noyau. 
     Normalement, le test posix/annexc échoue et vous devriez voir <literal>Error 1 (ignored)</literal> dans la sortie. 

Modified: trunk/clfs/final-system/common/gcc.xml
===================================================================
--- trunk/clfs/final-system/common/gcc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/common/gcc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -41,9 +41,10 @@
 
     <para os="h">Préparez la compilation de GCC :</para>
 
-<screen os="i"><userinput>CC="gcc -Wl,-rpath-link,/lib -isystem /usr/include"
-    CXX="g++ -Wl,-rpath-link,/lib -isystem /usr/include" \
-     ../gcc-&gcc-version;/configure --prefix=/usr \
+<screen os="i"><userinput>CC="gcc -isystem /usr/include" \
+CXX="g++ -isystem /usr/include" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib" \
+  ../gcc-&gcc-version;/configure --prefix=/usr \
     --libexecdir=/usr/lib --enable-shared --enable-threads=posix \
     --enable-__cxa_atexit --enable-c99 --enable-long-long \
     --enable-clocale=gnu --enable-languages=c,c++ \

Modified: trunk/clfs/final-system/common/gmp.xml
===================================================================
--- trunk/clfs/final-system/common/gmp.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/common/gmp.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -42,8 +42,9 @@
     <para os="a">Préparez la compilation de GMP :</para>
 
 <screen os="b"><userinput>CPPFLAGS=-fexceptions CC="gcc -isystem /usr/include" \
-    CXX="g++ -isystem /usr/include" LDFLAGS="-Wl,-rpath-link,/lib" \
-    ./configure --prefix=/usr --enable-cxx --enable-mpbsd</userinput></screen>
+CXX="g++ -isystem /usr/include" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib" \
+  ./configure --prefix=/usr --enable-cxx --enable-mpbsd</userinput></screen>
 
     <para os="c">Compilez le paquet :</para>
 

Modified: trunk/clfs/final-system/common/mpc.xml
===================================================================
--- trunk/clfs/final-system/common/mpc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/common/mpc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -29,8 +29,8 @@
     <para os="a">Préparez la compilation de MPC :</para>
 
 <screen os="b"><userinput>CC="gcc -isystem /usr/include" \
-LDFLAGS="-Wl,-rpath-link,/lib" \
-./configure --prefix=/usr</userinput></screen>
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib" \
+  EGREP="grep -E" ./configure --prefix=/usr</userinput></screen>
 
     <para os="c">Compilez le paquet :</para>
 

Modified: trunk/clfs/final-system/common/mpfr.xml
===================================================================
--- trunk/clfs/final-system/common/mpfr.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/common/mpfr.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -27,9 +27,11 @@
 
     <para os="a">Préparez la compilation de MPFR :</para>
 
-<screen os="b"><userinput>CC="gcc -isystem /usr/include" LDFLAGS="-Wl,-rpath-link,/lib" \
-     ./configure --prefix=/usr --enable-shared \
-     --with-gmp=/usr</userinput></screen>
+<screen os="b"><userinput>CC="gcc -isystem /usr/include" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib" \
+  ./configure --prefix=/usr --enable-shared \
+    --with-gmp=/usr</userinput></screen>
+
     <para os="c">Compilez le paquet :</para>
 
 <screen os="d"><userinput>make</userinput></screen>

Modified: trunk/clfs/final-system/common/ppl.xml
===================================================================
--- trunk/clfs/final-system/common/ppl.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/common/ppl.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -27,17 +27,12 @@
   <sect2 role="installation">
     <title>Installation de PPL</title>
 
-    <para os="s1">Ce qui suit corrige un problème lors de la détection de versions
-    récentes de GMP.</para>
-
-<screen os="s2"><userinput>sed -i "s/__GMP_BITS_PER_MP_LIMB/GMP_LIMB_BITS/g" configure</userinput></screen>
-
     <para os="a">Préparez la compilation de PPL :</para>
 
 <screen os="b"><userinput>CPPFLAGS=-fexceptions CC="gcc -isystem /usr/include" \
-    CXX="g++ -isystem /usr/include" \
-    LDFLAGS="-Wl,-rpath-link,/lib" \
-    ./configure --prefix=/usr --enable-shared \
+CXX="g++ -isystem /usr/include" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib" \
+  ./configure --prefix=/usr --enable-shared \
     --disable-optimization</userinput></screen>
 
     <para os="c">Compilez le paquet :</para>

Modified: trunk/clfs/final-system/common/zlib.xml
===================================================================
--- trunk/clfs/final-system/common/zlib.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/common/zlib.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -27,10 +27,11 @@
 
     <para os="a">Préparez la compilation de Zlib :</para>
 
-<screen os="b"><userinput>CC="gcc -isystem /usr/include" CXX="g++ -isystem /usr/include" \
-    LDFLAGS="-Wl,-rpath-link,/lib" ./configure --prefix=/usr</userinput></screen>
+<screen os="b"><userinput>CC="gcc -isystem /usr/include" \
+CXX="g++ -isystem /usr/include" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib" \
+  ./configure --prefix=/usr</userinput></screen>
 
-
     <para os="c">Compilez le paquet :</para>
 
 <screen os="d"><userinput>make</userinput></screen>

Modified: trunk/clfs/final-system/mips/eglibc.xml
===================================================================
--- trunk/clfs/final-system/mips/eglibc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/mips/eglibc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -27,6 +27,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -35,6 +43,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='b'])"/>
 
     <para os="g1">MIPS is not supported in the main EGLIBC tree, so

Modified: trunk/clfs/final-system/mips64/binutils.xml
===================================================================
--- trunk/clfs/final-system/mips64/binutils.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/mips64/binutils.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -54,8 +54,8 @@
     xpointer="xpointer(//*[@os='i'])"/>
 
 <screen os="ca"><userinput>CC="gcc -isystem /usr/include ${BUILD64}" \
-    LDFLAGS="-Wl,-rpath-link,/lib64:/lib32:/lib ${BUILD64}" \
-    ../binutils-&binutils-version;/configure --prefix=/usr \
+LDFLAGS="-Wl,-rpath-link,/usr/lib64:/lib64:/usr/lib32:/lib32:/usr/lib:/lib ${BUILD64}" \
+  ../binutils-&binutils-version;/configure --prefix=/usr \
     --enable-shared --enable-64-bit-bfd --libdir=/usr/lib64</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/final-system/mips64/eglibc-64bit.xml
===================================================================
--- trunk/clfs/final-system/mips64/eglibc-64bit.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/mips64/eglibc-64bit.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -26,10 +26,26 @@
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../multilib/eglibc-64bit.xml"
     xpointer="xpointer(//*[@os='l4'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="eglibc.xml"
     xpointer="xpointer(//*[@os='b'])"/>
 

Modified: trunk/clfs/final-system/mips64/eglibc-n32.xml
===================================================================
--- trunk/clfs/final-system/mips64/eglibc-n32.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/mips64/eglibc-n32.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -23,14 +23,30 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
-<screen os="l4"><userinput>LINKER=$(readelf -l $(file /tools/lib32/libc-* | cut -f1 -d:) | sed -n 's at .*interpret.*/tools\(.*\)]$@\1 at p')
+<screen os="l4"><userinput>LINKER=$(readelf -l /tools/bin/bash | sed -n 's at .*interpret.*/tools\(.*\)]$@\1 at p')
 sed -i "s|libs -o|libs -L/usr/lib32 -Wl,-dynamic-linker=${LINKER} -o|" \
   scripts/test-installation.pl
 unset LINKER</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="eglibc.xml"
     xpointer="xpointer(//*[@os='b'])"/>
 

Modified: trunk/clfs/final-system/mips64/eglibc.xml
===================================================================
--- trunk/clfs/final-system/mips64/eglibc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/mips64/eglibc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -28,6 +28,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -36,6 +44,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='b'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/final-system/mips64/gcc.xml
===================================================================
--- trunk/clfs/final-system/mips64/gcc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/mips64/gcc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -41,9 +41,10 @@
     href="../common/gcc.xml"
     xpointer="xpointer(//*[@os='h'])"/>
 
-<screen os="i"><userinput>CC="gcc -Wl,-rpath-link,/lib64:/lib32:/lib -isystem /usr/include ${BUILD64}" \
-    CXX="g++ -Wl,-rpath-link,/lib64:/lib32:/lib -isystem /usr/include ${BUILD64}" \
-    ../gcc-&gcc-version;/configure --prefix=/usr --libdir=/usr/lib64 \
+<screen os="i"><userinput>CC="gcc -isystem /usr/include ${BUILD64}" \
+CXX="g++ -isystem /usr/include ${BUILD64}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib64:/lib64:/usr/lib32:/lib32:/usr/lib:/lib" \
+  ../gcc-&gcc-version;/configure --prefix=/usr --libdir=/usr/lib64 \
     --libexecdir=/usr/lib64 --enable-shared --enable-threads=posix \
     --enable-__cxa_atexit --enable-c99 --enable-long-long --with-abi=64 \
     --enable-clocale=gnu --enable-languages=c,c++ --disable-libstdcxx-pch</userinput></screen>

Modified: trunk/clfs/final-system/mips64/ppl-64bit.xml
===================================================================
--- trunk/clfs/final-system/mips64/ppl-64bit.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/mips64/ppl-64bit.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -23,14 +23,6 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/ppl.xml"
-    xpointer="xpointer(//*[@os='s1'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/ppl.xml"
-    xpointer="xpointer(//*[@os='s2'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/ppl.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/final-system/mips64-64/eglibc.xml
===================================================================
--- trunk/clfs/final-system/mips64-64/eglibc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/mips64-64/eglibc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -27,6 +27,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -35,6 +43,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='b'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/final-system/multilib/binutils.xml
===================================================================
--- trunk/clfs/final-system/multilib/binutils.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/binutils.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -19,7 +19,7 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de Binutils</title>
+    <title>Installation of Binutils</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/binutils.xml"
@@ -43,6 +43,10 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/binutils.xml"
+    xpointer="xpointer(//*[@os='g'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/binutils.xml"
     xpointer="xpointer(//*[@os='h'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -50,8 +54,8 @@
     xpointer="xpointer(//*[@os='i'])"/>
 
 <screen os="ca"><userinput>CC="gcc -isystem /usr/include ${BUILD64}" \
-    LDFLAGS="-Wl,-rpath-link,/lib64:/lib ${BUILD64}" \
-    ../binutils-&binutils-version;/configure --prefix=/usr \
+LDFLAGS="-Wl,-rpath-link,/usr/lib64:/lib64:/usr/lib:/lib ${BUILD64}" \
+  ../binutils-&binutils-version;/configure --prefix=/usr \
     --enable-shared --enable-64-bit-bfd --libdir=/usr/lib64</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/final-system/multilib/cloog-ppl-64bit.xml
===================================================================
--- trunk/clfs/final-system/multilib/cloog-ppl-64bit.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/cloog-ppl-64bit.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,7 +8,7 @@
 <sect1 id="ch-system-cloog-ppl" role="wrap">
   <?dbhtml filename="cloog-ppl-64bit.html"?>
 
-  <title>CLooG-PPL-&cloog-ppl-version; 64 bits</title>
+  <title>CLooG-PPL-&cloog-ppl-version; 64 Bit</title>
 
   <indexterm zone="ch-system-cloog-ppl">
     <primary sortas="a-CLooG-PPL">CLooG-PPL</primary>
@@ -19,22 +19,15 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de CLooG-PPL</title>
+    <title>Installation of CLooG-PPL</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/cloog-ppl.xml"
-    xpointer="xpointer(//*[@os='p1'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/cloog-ppl.xml"
-    xpointer="xpointer(//*[@os='p2'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/cloog-ppl.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILD64}" \
-    LDFLAGS="-Wl,-rpath-link,/lib64 ${BUILD64}" ./configure --prefix=/usr \
+LDFLAGS="-Wl,-rpath-link,/usr/lib64:/lib64 ${BUILD64}" \
+  ./configure --prefix=/usr \
     --libdir=/usr/lib64 --enable-shared --with-gmp \
     --with-ppl</userinput></screen>
 

Modified: trunk/clfs/final-system/multilib/cloog-ppl-n32.xml
===================================================================
--- trunk/clfs/final-system/multilib/cloog-ppl-n32.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/cloog-ppl-n32.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,7 +8,7 @@
 <sect1 id="ch-system-cloog-ppl-n32" role="wrap">
   <?dbhtml filename="cloog-ppl-n32.html"?>
 
-  <title>Bibliothèques CLooG-PPL-&cloog-ppl-version; N32</title>
+  <title>CLooG-PPL-&cloog-ppl-version; N32 Libraries</title>
 
   <indexterm zone="ch-system-cloog-ppl-n32">
     <primary sortas="a-CLooG-PPL">CLooG-PPL</primary>
@@ -20,22 +20,15 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de CLooG-PPL</title>
+    <title>Installation of CLooG-PPL</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/cloog-ppl.xml"
-    xpointer="xpointer(//*[@os='p1'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/cloog-ppl.xml"
-    xpointer="xpointer(//*[@os='p2'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/cloog-ppl.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
-<screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILDM32}" \
-    LDFLAGS="-Wl,-rpath-link,/lib32 ${BUILDN32}" ./configure --prefix=/usr \
+<screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILDN32}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib32:/lib32 ${BUILDN32}" \
+  ./configure --prefix=/usr \
     --libdir=/usr/lib32 --enable-shared --with-gmp \
     --with-ppl</userinput></screen>
 
@@ -72,7 +65,7 @@
   <sect2 role="content">
     <title/>
 
-    <para>Les détails sur ce paquet sont disponibles dans <xref
+    <para>Details on this package are located in <xref
     linkend="contents-cloog-ppl" role="."/></para>
 
   </sect2>

Modified: trunk/clfs/final-system/multilib/cloog-ppl.xml
===================================================================
--- trunk/clfs/final-system/multilib/cloog-ppl.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/cloog-ppl.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,11 +8,11 @@
 <sect1 id="ch-system-cloog-ppl-32" role="wrap">
   <?dbhtml filename="cloog-ppl.html"?>
 
-  <title>Bibliothèques CLooG-PPL-&cloog-ppl-version; 32 bits</title>
+  <title>CLooG-PPL-&cloog-ppl-version; 32 Bit Libraries</title>
 
   <indexterm zone="ch-system-cloog-ppl-32">
     <primary sortas="a-CLooG-PPL">CLooG-PPL</primary>
-    <secondary>32 bit</secondary>
+    <secondary>32 Bit</secondary>
   </indexterm>
 
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -20,22 +20,15 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de CLooG-PPL</title>
+    <title>Installation of CLooG-PPL</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/cloog-ppl.xml"
-    xpointer="xpointer(//*[@os='p1'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/cloog-ppl.xml"
-    xpointer="xpointer(//*[@os='p2'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/cloog-ppl.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILD32}" \
-    LDFLAGS="-Wl,-rpath-link,/lib ${BUILD32}" ./configure --prefix=/usr \
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib ${BUILD32}" \
+  ./configure --prefix=/usr \
     --host=${CLFS_TARGET32} --enable-shared \
     --with-gmp --with-ppl</userinput></screen>
 
@@ -72,7 +65,7 @@
   <sect2 role="content">
     <title/>
 
-    <para>Les détails sur ce paquet sont disponibles dans <xref
+    <para>Details on this package are located in <xref
     linkend="contents-cloog-ppl" role="."/></para>
 
   </sect2>

Modified: trunk/clfs/final-system/multilib/eglibc-64bit.xml
===================================================================
--- trunk/clfs/final-system/multilib/eglibc-64bit.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/eglibc-64bit.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,7 +8,7 @@
 <sect1 id="ch-system-eglibc" role="wrap">
   <?dbhtml filename="eglibc-64bit.html"?>
 
-  <title>Glibc-&eglibc-version; 64 bits</title>
+  <title>Glibc-&eglibc-version; 64-Bit</title>
 
   <indexterm zone="ch-system-eglibc">
     <primary sortas="a-EGLIBC">EGLIBC</primary>
@@ -19,18 +19,34 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de EGLIBC</title>
+    <title>Installation of EGLIBC</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
-<screen os="l4"><userinput>LINKER=$(readelf -l $(file /tools/lib64/libc-* | cut -f1 -d:) | sed -n 's at .*interpret.*/tools\(.*\)]$@\1 at p')
+<screen os="l4"><userinput>LINKER=$(readelf -l /tools/bin/bash | sed -n 's at .*interpret.*/tools\(.*\)]$@\1 at p')
 sed -i "s|libs -o|libs -L/usr/lib64 -Wl,-dynamic-linker=${LINKER} -o|" \
   scripts/test-installation.pl
 unset LINKER</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="eglibc.xml"
     xpointer="xpointer(//*[@os='b'])"/>
 
@@ -42,8 +58,8 @@
     href="eglibc.xml"
     xpointer="xpointer(//*[@os='f'])"/>
 
-    <para os="m1">Dites à EGLIBC d'installer ses bibliothèques 64 bits dans 
-    <filename class="directory">/lib64</filename> :</para>
+    <para os="m1">Tell EGLIBC to install its 64-bit libraries into
+    <filename class="directory">/lib64</filename>:</para>
 
 <screen os="m2"><userinput>echo "slibdir=/lib64" >> configparms</userinput></screen>
 
@@ -57,13 +73,14 @@
     --libexecdir=/usr/lib64/glibc --libdir=/usr/lib64</userinput></screen>
 
     <variablelist os="i">
-      <title>Voici la signification des options de configure :</title>
+      <title>The meaning of the new configure option:</title>
 
       <varlistentry>
         <term><parameter>--libexecdir=/usr/lib64/glibc</parameter></term>
         <listitem>
-          <para>Ceci change l'emplacement du programme <command>pt_chown</command>
-          par défaut,  <filename class="directory">/usr/libexec</filename>, en <filename
+          <para>This changes the location of the <command>pt_chown</command>
+          program from its default of <filename
+          class="directory">/usr/libexec</filename> to <filename
           class="directory">/usr/lib64/glibc</filename>.</para>
         </listitem>
       </varlistentry>
@@ -116,31 +133,33 @@
   xpointer="xpointer(id('conf-eglibc'))"/>
 
   <sect2 id="conf-ld" role="configuration">
-    <title>Configuration du chargeur dynamique</title>
+    <title>Configuring The Dynamic Loader</title>
 
     <indexterm zone="conf-ld">
       <primary sortas="e-/etc/ld.so.conf">/etc/ld.so.conf</primary>
     </indexterm>
 
-    <para os="ld-a">Par défaut, le chargeur dynamique (<filename
-    class="libraryfile">/lib/ld-linux.so.2</filename> pour les exécutables 32 bits et 
-    <filename class="libraryfile">/lib64/ld-linux.so.2</filename> pour 
-    les exécutable 64 bits) recherchent les bibliothèques dynamiques dans 
+    <para os="ld-a">By default, the dynamic loader (<filename
+    class="libraryfile">/lib/ld-linux.so.2</filename> for 32bit executables and
+    <filename class="libraryfile">/lib64/ld-linux.so.2</filename> for
+    64bit executables) searches through
     <filename class="directory">/lib</filename>,
     <filename class="directory">/lib64</filename>,
     <filename class="directory">/usr/lib</filename>,
-    et <filename class="directory">/usr/lib64</filename> lors de l'exécution de programmes 
-    nécessitant ces bibliothèques. Cependant, si des bibliothèques existent dans d'autres répertoires, 
-    ceux-ci dovent être ajoutés au fichier <filename>/etc/ld.so.conf</filename> pour que 
-    le chargeur dynamique les trouve. Certains répertoires bien connus pour contenir des 
-    bibliothèques supplémentaires sont <filename class="directory">/usr/local/lib</filename>, 
-    <filename class="directory">/usr/local/lib64</filename>, 
-    <filename class="directory">/opt/lib</filename> 
-    et <filename class="directory">/opt/lib64</filename>. Ajoutez donc ces répertoires 
-    aux chemins de recherche du chargeur dynamique.</para>
+    and <filename class="directory">/usr/lib64</filename> for dynamic
+    libraries that are needed by programs as they are run. However, if
+    there are libraries in directories other than these, they need to be
+    added to the <filename>/etc/ld.so.conf</filename> file in order
+    for the dynamic loader to find them. Some directories that are commonly
+    known to contain additional libraries are
+    <filename class="directory">/usr/local/lib</filename>,
+    <filename class="directory">/usr/local/lib64</filename>,
+    <filename class="directory">/opt/lib</filename>,
+    and <filename class="directory">/opt/lib64</filename>,
+    so add those directories to the dynamic loader's search path.</para>
 
-    <para os="ld-b">Créez un nouveau fichier <filename>/etc/ld.so.conf</filename> en lançant la commande 
-    suivante :</para>
+    <para os="ld-b">Create a new file <filename>/etc/ld.so.conf</filename> by running the
+    following:</para>
 
 <screen os="ld-c"><userinput>cat > /etc/ld.so.conf << "EOF"
 <literal># Begin /etc/ld.so.conf

Modified: trunk/clfs/final-system/multilib/eglibc.xml
===================================================================
--- trunk/clfs/final-system/multilib/eglibc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/eglibc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,11 +8,11 @@
 <sect1 id="ch-system-eglibc-32" role="wrap">
   <?dbhtml filename="eglibc.html"?>
 
-  <title>Bibliothèques EGLIBC-&eglibc-version; 32 bits</title>
+  <title>EGLIBC-&eglibc-version; 32 Bit Libraries</title>
 
   <indexterm zone="ch-system-eglibc-32">
     <primary sortas="a-EGLIBC">EGLIBC</primary>
-    <secondary>32 bits</secondary>
+    <secondary>32 Bit</secondary>
   </indexterm>
 
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -20,7 +20,7 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de EGLIBC</title>
+    <title>Installation of EGLIBC</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
@@ -28,6 +28,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -36,6 +44,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='b'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -71,13 +87,13 @@
     href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l'])"/>
 
-    <para os="l1">En multilib, nous avons tendance à penser que
-    la compilation pour <literal>${CLFS_TARGET32}</literal> <emphasis>n'est pas</emphasis>
-    une compilation croisée. EGLIBC considère traditionnellement que si vous construisez
-    pour un hôte différent, alors vous faites une compilation croisée, donc vous n'exécuterez pas
-    les tests et vous n'avez donc pas besoin des fichiers de locales. Quand nous exécuterons
-    les tests, beaucoup échoueront si les fichiers de locale sont absents. Le sed suivant
-    permet à ces tests de réussir :</para>
+    <para os="l1">In multilib, we tend to think that compiling for
+    <literal>${CLFS_TARGET32}</literal> is <emphasis>not</emphasis>
+    cross-compiling. EGLIBC takes the traditional view that if you are building
+    for a different host then you are cross-compiling, so you won't be running
+    the tests and therefore you don't need the locale files. When we run
+    the tests, many will fail if the locale files are missing. The following
+    sed allows these tests to succeed:</para>
 
 <screen os="l2"><userinput>sed -i '/cross-compiling/s at ifeq@ifneq at g' ../eglibc-&eglibc-version;/localedata/Makefile</userinput></screen>
 
@@ -118,7 +134,7 @@
   <sect2 role="content">
     <title/>
 
-    <para>Les détails sur ce paquet sont disponibles dans <xref
+    <para>Details on this package are located in <xref
     linkend="contents-eglibc" role="."/></para>
 
   </sect2>

Modified: trunk/clfs/final-system/multilib/gcc.xml
===================================================================
--- trunk/clfs/final-system/multilib/gcc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/gcc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -19,7 +19,7 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de GCC</title>
+    <title>Installation of GCC</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/gcc.xml"
@@ -41,9 +41,10 @@
     href="../common/gcc.xml"
     xpointer="xpointer(//*[@os='h'])"/>
 
-<screen os="i"><userinput>CC="gcc -Wl,-rpath-link,/lib64:/lib -isystem /usr/include ${BUILD64}" \
-    CXX="g++ -Wl,-rpath-link,/lib64:/lib -isystem /usr/include ${BUILD64}" \
-    ../gcc-&gcc-version;/configure --prefix=/usr --libdir=/usr/lib64 \
+<screen os="i"><userinput>CC="gcc -isystem /usr/include ${BUILD64}" \
+CXX="g++ -isystem /usr/include ${BUILD64}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib64:/lib64:/usr/lib:/lib" \
+  ../gcc-&gcc-version;/configure --prefix=/usr --libdir=/usr/lib64 \
     --libexecdir=/usr/lib64 --enable-shared --enable-threads=posix \
     --enable-__cxa_atexit --enable-c99 --enable-long-long \
     --enable-clocale=gnu --enable-languages=c,c++ --disable-libstdcxx-pch</userinput></screen>

Modified: trunk/clfs/final-system/multilib/gmp-64bit.xml
===================================================================
--- trunk/clfs/final-system/multilib/gmp-64bit.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/gmp-64bit.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,7 +8,7 @@
 <sect1 id="ch-system-gmp" role="wrap">
   <?dbhtml filename="gmp-64bit.html"?>
 
-  <title>Bibliothèques GMP-&gmp-version; 64 bits</title>
+  <title>GMP-&gmp-version; 64 Bit</title>
 
   <indexterm zone="ch-system-gmp">
     <primary sortas="a-GMP">GMP</primary>
@@ -19,7 +19,7 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de GMP</title>
+    <title>Installation of GMP</title>
 
 <!--
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -31,7 +31,6 @@
     xpointer="xpointer(//*[@os='p2'])"/>
 
 -->
-
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/gmp.xml"
     xpointer="xpointer(//*[@os='n1'])"/>
@@ -41,8 +40,9 @@
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CPPFLAGS=-fexceptions CC="gcc -isystem /usr/include ${BUILD64}" \
-    CXX="g++ -isystem /usr/include ${BUILD64}" \
-    LDFLAGS="-Wl,-rpath-link,/lib64 ${BUILD64}" ./configure --prefix=/usr \
+CXX="g++ -isystem /usr/include ${BUILD64}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib64:/lib64 ${BUILD64}" \
+  ./configure --prefix=/usr \
     --libdir=/usr/lib64 --enable-cxx --enable-mpbsd</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -73,11 +73,11 @@
     href="../common/gmp.xml"
     xpointer="xpointer(//*[@os='i'])"/>
 
-    <para os="j">Créez le fichier en-tête 64 bits :</para>
+    <para os="j">Create the 64bit header file:</para>
 
 <screen os="k"><userinput>mv -v /usr/include/gmp{,-64}.h</userinput></screen>
 
-    <para os="l">Enfin, créez une en-tête stub à la place des originaux :</para>
+    <para os="l">Finally, create a stub header in the place of the originals:</para>
 
 <screen os="m"><userinput>cat > /usr/include/gmp.h << "EOF"
 /* gmp.h - Stub Header  */

Modified: trunk/clfs/final-system/multilib/gmp-n32.xml
===================================================================
--- trunk/clfs/final-system/multilib/gmp-n32.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/gmp-n32.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,7 +8,7 @@
 <sect1 id="ch-system-gmp-n32" role="wrap">
   <?dbhtml filename="gmp-n32.html"?>
 
-  <title>Bibliothèques GMP-&gmp-version; N32</title>
+  <title>GMP-&gmp-version; N32 Libraries</title>
 
   <indexterm zone="ch-system-gmp-n32">
     <primary sortas="a-GMP">GMP</primary>
@@ -20,7 +20,7 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de GMP</title>
+    <title>Installation of GMP</title>
 
 <!--
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -42,9 +42,9 @@
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CPPFLAGS=-fexceptions CC="gcc -isystem /usr/include ${BUILDN32}" \
-    CXX="g++ -isystem /usr/include ${BUILDN32}" \
-    LDFLAGS="-Wl,-rpath-link,/lib32 ${BUILDN32}" ABI=n32 \
-    ./configure --prefix=/usr \
+CXX="g++ -isystem /usr/include ${BUILDN32}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib32:/lib32 ${BUILDN32}" \
+  ABI=n32 ./configure --prefix=/usr \
     --libdir=/usr/lib32 --enable-cxx --enable-mpbsd</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -75,7 +75,7 @@
     href="../common/gmp.xml"
     xpointer="xpointer(//*[@os='i'])"/>
 
-    <para os="j">Créez le fichier d'en-tête N32 :</para>
+    <para os="j">Create the N32 header file:</para>
 
 <screen os="k"><userinput>mv -v /usr/include/gmp{,-n32}.h</userinput></screen>
 
@@ -84,7 +84,7 @@
   <sect2 role="content">
     <title/>
 
-    <para>Les détails sur ce paquet sont disponibles dans <xref
+    <para>Details on this package are located in <xref
     linkend="contents-gmp" role="."/></para>
 
   </sect2>

Modified: trunk/clfs/final-system/multilib/gmp.xml
===================================================================
--- trunk/clfs/final-system/multilib/gmp.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/gmp.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,11 +8,11 @@
 <sect1 id="ch-system-gmp-32" role="wrap">
   <?dbhtml filename="gmp.html"?>
 
-  <title>Bibliothèques GMP-&gmp-version; 32 bits</title>
+  <title>GMP-&gmp-version; 32 Bit Libraries</title>
 
   <indexterm zone="ch-system-gmp-32">
     <primary sortas="a-GMP">MPFR</primary>
-    <secondary>32 bits</secondary>
+    <secondary>32 Bit</secondary>
   </indexterm>
 
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -20,7 +20,7 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de GMP</title>
+    <title>Installation of GMP</title>
 
 <!--
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -41,9 +41,9 @@
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CPPFLAGS=-fexceptions CC="gcc -isystem /usr/include ${BUILD32}" \
-    CXX="g++ -isystem /usr/include ${BUILD32}" \
-    LDFLAGS="-Wl,-rpath-link,/lib ${BUILD32}" ABI=32 \
-    ./configure --prefix=/usr \
+CXX="g++ -isystem /usr/include ${BUILD32}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib ${BUILD32}" \
+  ABI=32 ./configure --prefix=/usr \
     -enable-cxx --enable-mpbsd</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -74,9 +74,7 @@
     href="../common/gmp.xml"
     xpointer="xpointer(//*[@os='i'])"/>
 
-    <para os="j">Le fichier en-tête installé par GMP est spécifique à l'architecture. Les programmes compilés pour s'exécuter 
-    en 32 bits nécessiteront les en-têtes d'une installation 32 bits de GMP. C'est également le cas pour les 
-    programmes 64 bits. Déplacez l'en-tête afin qu'un script enveloppe puisse être mis en place plus tard :</para>
+    <para os="j">The header installed by GMP is architecture specific. Programs compiled as 32bit will require the header provided by the 32bit installation of GMP. The same applies for 64bit programs. Move the header so a wrapper can be put in its place later:</para>
 
 <screen os="k"><userinput>mv -v /usr/include/gmp{,-32}.h</userinput></screen>
 
@@ -85,7 +83,7 @@
   <sect2 role="content">
     <title/>
 
-    <para>Les détails sur ce paquet sont disponibles dans <xref
+    <para>Details on this package are located in <xref
     linkend="contents-gmp" role="."/></para>
 
   </sect2>

Modified: trunk/clfs/final-system/multilib/mpc-64bit.xml
===================================================================
--- trunk/clfs/final-system/multilib/mpc-64bit.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/mpc-64bit.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -19,15 +19,15 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de MPC</title>
+    <title>Installation of MPC</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/mpc.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILD64}" \
-LDFLAGS="-Wl,-rpath-link,/lib64 ${BUILD64}" \
-./configure --prefix=/usr --libdir=/usr/lib64</userinput></screen>
+LDFLAGS="-Wl,-rpath-link,/usr/lib64:/lib64 ${BUILD64}" \
+  EGREP="grep -E" ./configure --prefix=/usr --libdir=/usr/lib64</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/mpc.xml"

Modified: trunk/clfs/final-system/multilib/mpc-n32.xml
===================================================================
--- trunk/clfs/final-system/multilib/mpc-n32.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/mpc-n32.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -20,15 +20,15 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de MPC</title>
+    <title>Installation of MPC</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/mpc.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILDN32}" \
-LDFLAGS="-Wl,-rpath-link,/lib32 ${BUILDN32}" \
-./configure --prefix=/usr --libdir=/usr/lib32</userinput></screen>
+LDFLAGS="-Wl,-rpath-link,/usr/lib32:/lib32 ${BUILDN32}" \
+  EGREP="grep -E" ./configure --prefix=/usr --libdir=/usr/lib32</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/mpc.xml"
@@ -63,7 +63,7 @@
   <sect2 role="content">
     <title/>
 
-    <para>Les détails sur ce paquet sont disponibles dans <xref
+    <para>Details on this package are located in <xref
     linkend="contents-mpc" role="."/></para>
 
   </sect2>

Modified: trunk/clfs/final-system/multilib/mpc.xml
===================================================================
--- trunk/clfs/final-system/multilib/mpc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/mpc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -20,16 +20,15 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de MPC</title>
+    <title>Installation of MPC</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/mpc.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILD32}" \
-LDFLAGS="-Wl,-rpath-link,/lib ${BUILD32}" \
-./configure --prefix=/usr \
-    --host=${CLFS_TARGET32}</userinput></screen>
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib ${BUILD32}" \
+  EGREP="grep -E" ./configure --prefix=/usr --host=${CLFS_TARGET32}</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/mpc.xml"
@@ -64,7 +63,7 @@
   <sect2 role="content">
     <title/>
 
-    <para>Les détails sur ce paquet sont disponibles dans <xref
+    <para>Details on this package are located in <xref
     linkend="contents-mpc" role="."/></para>
 
   </sect2>

Modified: trunk/clfs/final-system/multilib/mpfr-64bit.xml
===================================================================
--- trunk/clfs/final-system/multilib/mpfr-64bit.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/mpfr-64bit.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,7 +8,7 @@
 <sect1 id="ch-system-mpfr" role="wrap">
   <?dbhtml filename="mpfr-64bit.html"?>
 
-  <title>MPFR-&mpfr-version; 64 bits</title>
+  <title>MPFR-&mpfr-version; 64 Bit</title>
 
   <indexterm zone="ch-system-mpfr">
     <primary sortas="a-MPFR">MPFR</primary>
@@ -19,14 +19,15 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de MPFR</title>
+    <title>Installation of MPFR</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/mpfr.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
-<screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILD64}" LDFLAGS="-Wl,-rpath-link,/lib64 ${BUILD64}" \
-    ./configure --prefix=/usr --libdir=/usr/lib64 --enable-shared</userinput></screen>
+<screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILD64}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib64:/lib64 ${BUILD64}" \
+  ./configure --prefix=/usr --libdir=/usr/lib64 --enable-shared</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/mpfr.xml"

Modified: trunk/clfs/final-system/multilib/mpfr-n32.xml
===================================================================
--- trunk/clfs/final-system/multilib/mpfr-n32.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/mpfr-n32.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,7 +8,7 @@
 <sect1 id="ch-system-mpfr-n32" role="wrap">
   <?dbhtml filename="mpfr-n32.html"?>
 
-  <title>Bibliothèques MPFR-&mpfr-version; N32</title>
+  <title>MPFR-&mpfr-version; N32 Libraries</title>
 
   <indexterm zone="ch-system-mpfr-n32">
     <primary sortas="a-MPFR">MPFR</primary>
@@ -20,14 +20,15 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de MPFR</title>
+    <title>Installation of MPFR</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/mpfr.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
-<screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILDN32}" LDFLAGS="-Wl,-rpath-link,/lib32 ${BUILDN32}" \
-    ./configure --prefix=/usr --libdir=/usr/lib32 --enable-shared</userinput></screen>
+<screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILDN32}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib32:/lib32 ${BUILDN32}" \
+  ./configure --prefix=/usr --libdir=/usr/lib32 --enable-shared</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/mpfr.xml"
@@ -62,7 +63,7 @@
   <sect2 role="content">
     <title/>
 
-    <para>Les détails sur ce paquet sont disponibles dans <xref
+    <para>Details on this package are located in <xref
     linkend="contents-mpfr" role="."/></para>
 
   </sect2>

Modified: trunk/clfs/final-system/multilib/mpfr.xml
===================================================================
--- trunk/clfs/final-system/multilib/mpfr.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/mpfr.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,11 +8,11 @@
 <sect1 id="ch-system-mpfr-32" role="wrap">
   <?dbhtml filename="mpfr.html"?>
 
-  <title>Bibliothèques MPFR-&mpfr-version; 32 bits</title>
+  <title>MPFR-&mpfr-version; 32 Bit Libraries</title>
 
   <indexterm zone="ch-system-mpfr-32">
     <primary sortas="a-MPFR">MPFR</primary>
-    <secondary>32 bits</secondary>
+    <secondary>32 Bit</secondary>
   </indexterm>
 
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -20,14 +20,15 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de MPFR</title>
+    <title>Installation of MPFR</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/mpfr.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
-<screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILD32}" LDFLAGS="-Wl,-rpath-link,/lib ${BUILD32}" \
-    ./configure --prefix=/usr --host=${CLFS_TARGET32} --enable-shared</userinput></screen>
+<screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILD32}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib ${BUILD32}" \
+  ./configure --prefix=/usr --host=${CLFS_TARGET32} --enable-shared</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/mpfr.xml"
@@ -62,7 +63,7 @@
   <sect2 role="content">
     <title/>
 
-    <para>Les détails sur ce paquet sont disponibles dans <xref
+    <para>Details on this package are located in <xref
     linkend="contents-mpfr" role="."/></para>
 
   </sect2>

Modified: trunk/clfs/final-system/multilib/ppl-64bit.xml
===================================================================
--- trunk/clfs/final-system/multilib/ppl-64bit.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/ppl-64bit.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,7 +8,7 @@
 <sect1 id="ch-system-ppl" role="wrap">
   <?dbhtml filename="ppl-64bit.html"?>
 
-  <title>PPL-&ppl-version; 64 bits</title>
+  <title>PPL-&ppl-version; 64 Bit</title>
 
   <indexterm zone="ch-system-ppl">
     <primary sortas="a-PPL">PPL</primary>
@@ -19,25 +19,17 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de PPL</title>
+    <title>Installation of PPL</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/ppl.xml"
-    xpointer="xpointer(//*[@os='s1'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/ppl.xml"
-    xpointer="xpointer(//*[@os='s2'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/ppl.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CPPFLAGS=-fexceptions CC="gcc -isystem /usr/include ${BUILD64}" \
-    CXX="g++ -isystem /usr/include ${BUILD64}" \
-    LDFLAGS="-Wl,-rpath-link,/lib64 ${BUILD64}" \
-    ./configure --prefix=/usr --libdir=/usr/lib64 \
-      --enable-shared --disable-optimization</userinput></screen>
+CXX="g++ -isystem /usr/include ${BUILD64}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib64:/lib64 ${BUILD64}" \
+  ./configure --prefix=/usr --libdir=/usr/lib64 \
+    --enable-shared --disable-optimization</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/ppl.xml"
@@ -67,17 +59,17 @@
     href="../common/ppl.xml"
     xpointer="xpointer(//*[@os='i'])"/>
 
-    <para os="m1">Préparez <filename>ppl-config</filename> à être emballé par le 
-    multiarch wrapper puis créez un lien pour l'emballer :</para>
+    <para os="m1">Prepare <filename>ppl-config</filename> to be wrapped by
+    the multiarch wrapper and then wrap it:</para>
 
 <screen os="m2"><userinput>mv -v /usr/bin/ppl-config{,-64}
 ln -svf multiarch_wrapper /usr/bin/ppl-config</userinput></screen>
 
-    <para os="j">Créez le fichier d'en-tête 64 bits :</para>
+    <para os="j">Create the 64bit header file:</para>
 
 <screen os="k"><userinput>mv -v /usr/include/ppl{,-64}.hh</userinput></screen>
 
-    <para os="l">Enfin, créez le fichier d'en-tête stub en lieu et place de l'original :</para>
+    <para os="l">Finally, create a stub header in the place of the originals:</para>
 
 <screen os="m"><userinput>cat > /usr/include/ppl.hh << "EOF"
 /* ppl.hh - Stub Header  */

Modified: trunk/clfs/final-system/multilib/ppl-n32.xml
===================================================================
--- trunk/clfs/final-system/multilib/ppl-n32.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/ppl-n32.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,7 +8,7 @@
 <sect1 id="ch-system-ppl-n32" role="wrap">
   <?dbhtml filename="ppl-n32.html"?>
 
-  <title>Bibliothèques PPL-&ppl-version; N32</title>
+  <title>PPL-&ppl-version; N32 Libraries</title>
 
   <indexterm zone="ch-system-ppl-n32">
     <primary sortas="a-PPL">PPL</primary>
@@ -20,25 +20,17 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de PPL</title>
+    <title>Installation of PPL</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/ppl.xml"
-    xpointer="xpointer(//*[@os='s1'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/ppl.xml"
-    xpointer="xpointer(//*[@os='s2'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/ppl.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CPPFLAGS=-fexceptions CC="gcc -isystem /usr/include ${BUILDN32}" \
-    CXX="g++ -isystem /usr/include ${BUILDN32}" \
-    LDFLAGS="-Wl,-rpath-link,/lib32 ${BUILDN32}" \
-    ./configure --prefix=/usr --libdir=/usr/lib32 \
-      --enable-shared --disable-optimization</userinput></screen>
+CXX="g++ -isystem /usr/include ${BUILDN32}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib32:/lib32 ${BUILDN32}" \
+  ./configure --prefix=/usr --libdir=/usr/lib32 \
+    --enable-shared --disable-optimization</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/ppl.xml"
@@ -74,7 +66,7 @@
 
 <screen os="m2"><userinput>mv -v /usr/bin/ppl-config{,-n32}</userinput></screen>
 
-    <para os="j">Créez le fichier d'en-tête N32 :</para>
+    <para os="j">Create the N32 header file:</para>
 
 <screen os="k"><userinput>mv -v /usr/include/ppl{,-n32}.hh</userinput></screen>
 
@@ -83,7 +75,7 @@
   <sect2 role="content">
     <title/>
 
-    <para>Les détails sur ce paquet sont disponibles dans <xref
+    <para>Details on this package are located in <xref
     linkend="contents-ppl" role="."/></para>
 
   </sect2>

Modified: trunk/clfs/final-system/multilib/ppl.xml
===================================================================
--- trunk/clfs/final-system/multilib/ppl.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/ppl.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,11 +8,11 @@
 <sect1 id="ch-system-ppl-32" role="wrap">
   <?dbhtml filename="ppl.html"?>
 
-  <title>Bibliothèques PPL-&ppl-version; 32 bits</title>
+  <title>PPL-&ppl-version; 32 Bit Libraries</title>
 
   <indexterm zone="ch-system-ppl-32">
     <primary sortas="a-PPL">PPL</primary>
-    <secondary>32 bits</secondary>
+    <secondary>32 Bit</secondary>
   </indexterm>
 
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -20,25 +20,17 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de PPL</title>
+    <title>Installation of PPL</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/ppl.xml"
-    xpointer="xpointer(//*[@os='s1'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/ppl.xml"
-    xpointer="xpointer(//*[@os='s2'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/ppl.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CPPFLAGS=-fexceptions CC="gcc -isystem /usr/include ${BUILD32}" \
-    CXX="g++ -isystem /usr/include ${BUILD32}" \
-    LDFLAGS="-Wl,-rpath-link,/lib ${BUILD32}" \
-    ./configure --prefix=/usr --host=${CLFS_TARGET32} \
-      --enable-shared --disable-optimization</userinput></screen>
+CXX="g++ -isystem /usr/include ${BUILD32}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib ${BUILD32}" \
+  ./configure --prefix=/usr --host=${CLFS_TARGET32} \
+    --enable-shared --disable-optimization</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/ppl.xml"
@@ -68,14 +60,12 @@
     href="../common/ppl.xml"
     xpointer="xpointer(//*[@os='i'])"/>
 
-    <para os="m1">Préparez <filename>ppl-config</filename> à être emballé par le 
-    multiarch wrapper :</para>
+    <para os="m1">Prepare <filename>ppl-config</filename> to be wrapped by
+    the multiarch wrapper:</para>
 
 <screen os="m2"><userinput>mv -v /usr/bin/ppl-config{,-32}</userinput></screen>
 
-    <para os="j">L'un des fichiers en-têtes installé par PPL est spécifique à l'architecture. Les programmes compilés 
-    pour s'exécuter en 32 bits nécessiteront la présence d'un en-tête fourni par une installlation 32 bits de PPL. 
-    C'est également vrai pour les programmes 64 bits. Renommez l'en-tête afin qu'un programme enveloppe puisse être mis en place plus tard :</para>
+    <para os="j">One of the headers installed by PPL is architecture specific. Programs compiled as 32bit will require the header provided by the 32bit installation of PPL. The same applies for 64bit programs. Move the header so a wrapper can be put in its place later:</para>
 
 <screen os="k"><userinput>mv -v /usr/include/ppl{,-32}.hh</userinput></screen>
 
@@ -85,7 +75,7 @@
   <sect2 role="content">
     <title/>
 
-    <para>Les détails sur ce paquet sont disponibles dans <xref
+    <para>Details on this package are located in <xref
     linkend="contents-ppl" role="."/></para>
 
   </sect2>

Modified: trunk/clfs/final-system/multilib/zlib-64bit.xml
===================================================================
--- trunk/clfs/final-system/multilib/zlib-64bit.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/zlib-64bit.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,7 +8,7 @@
 <sect1 id="ch-system-zlib" role="wrap">
   <?dbhtml filename="zlib-64bit.html"?>
 
-  <title>Zlib-&zlib-version; 64 bits</title>
+  <title>Zlib-&zlib-version; 64 Bit</title>
 
   <indexterm zone="ch-system-zlib">
     <primary sortas="a-Zlib">Zlib</primary>
@@ -19,16 +19,16 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de Zlib</title>
+    <title>Installation of Zlib</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="zlib.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILD64}" \
-    CXX="g++ -isystem /usr/include ${BUILD64}" \
-    LDFLAGS="-Wl,-rpath-link,/lib64 ${BUILD64}" \
-    ./configure --prefix=/usr --shared --libdir=/usr/lib64</userinput></screen>
+CXX="g++ -isystem /usr/include ${BUILD64}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib64:/lib64 ${BUILD64}" \
+  ./configure --prefix=/usr --libdir=/usr/lib64</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="zlib.xml"
@@ -50,11 +50,11 @@
     href="zlib.xml"
     xpointer="xpointer(//*[@os='g'])"/>
 
-    <para os="h">La commande précédente a installé deux fichiers <filename
-    class="extension">.so</filename> dans <filename
-    class="directory">/usr/lib64</filename>. Nous les déplaçons dans 
-    <filename class="directory">/lib64</filename> puis nous créons les liens
-    symboliques dans <filename class="directory">/usr/lib64</filename> :</para>
+    <para os="h">The previous command installed two <filename
+    class="extension">.so</filename> files into <filename
+    class="directory">/usr/lib64</filename>. We will move it into
+    <filename class="directory">/lib64</filename> and then relink it
+    to <filename class="directory">/usr/lib64</filename>:</para>
 
 <screen os="i"><userinput>mv -v /usr/lib64/libz.so.* /lib64
 ln -svf ../../lib64/libz.so.1 /usr/lib64/libz.so</userinput></screen>

Modified: trunk/clfs/final-system/multilib/zlib-n32.xml
===================================================================
--- trunk/clfs/final-system/multilib/zlib-n32.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/zlib-n32.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,7 +8,7 @@
 <sect1 id="ch-system-zlib-n32" role="wrap">
   <?dbhtml filename="zlib-n32.html"?>
 
-  <title>Bibliothèques Zlib-&zlib-version; N32</title>
+  <title>Zlib-&zlib-version; N32 Libraries</title>
 
   <indexterm zone="ch-system-zlib-n32">
     <primary sortas="a-Zlib">Zlib</primary>
@@ -20,16 +20,16 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de Zlib</title>
+    <title>Installation of Zlib</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="zlib.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILDN32}" \
-    CXX="g++ -isystem /usr/include ${BUILDN32}" \
-    LDFLAGS="-Wl,-rpath-link,/lib32 ${BUILDN32}" \
-   ./configure --prefix=/usr --shared --libdir=/usr/lib32</userinput></screen>
+CXX="g++ -isystem /usr/include ${BUILDN32}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib32:/lib32 ${BUILDN32}" \
+ ./configure --prefix=/usr --libdir=/usr/lib32</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="zlib.xml"
@@ -51,11 +51,11 @@
     href="zlib.xml"
     xpointer="xpointer(//*[@os='g'])"/>
 
-    <para os="h">La commande précédente a installé deux fichiers <filename
-    class="extension">.so</filename> dans <filename
-    class="directory">/usr/lib32</filename>. Nous les déplaçons dans 
-    <filename class="directory">/lib32</filename> et créons des liens dans 
-    <filename class="directory">/usr/lib32</filename> :</para>
+    <para os="h">The previous command installed two <filename
+    class="extension">.so</filename> files into <filename
+    class="directory">/usr/lib32</filename>. We will remove itinto
+    <filename class="directory">/lib32</filename> and then relink it
+    to <filename class="directory">/usr/lib32</filename>:</para>
 
 <screen os="i"><userinput>mv -v /usr/lib32/libz.so.* /lib32
 ln -svf ../../lib32/libz.so.1 /usr/lib32/libz.so</userinput></screen>
@@ -65,7 +65,7 @@
   <sect2 role="content">
     <title/>
 
-    <para>Les détails sur ce paquet sont disponibles dans <xref
+    <para>Details on this package are located in <xref
     linkend="contents-zlib" role="."/></para>
 
   </sect2>

Modified: trunk/clfs/final-system/multilib/zlib.xml
===================================================================
--- trunk/clfs/final-system/multilib/zlib.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/multilib/zlib.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -8,11 +8,11 @@
 <sect1 id="ch-system-zlib-32" role="wrap">
   <?dbhtml filename="zlib.html"?>
 
-  <title>Bibliothèques Zlib-&zlib-version; 32 bits</title>
+  <title>Zlib-&zlib-version; 32 Bit Libraries</title>
 
   <indexterm zone="ch-system-zlib-32">
     <primary sortas="a-Zlib">Zlib</primary>
-    <secondary>32 bits</secondary>
+    <secondary>32 Bit</secondary>
   </indexterm>
 
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -20,16 +20,16 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de Zlib</title>
+    <title>Installation of Zlib</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/zlib.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
 <screen os="b"><userinput>CC="gcc -isystem /usr/include ${BUILD32}" \
-    CXX="g++ -isystem /usr/include ${BUILD32}" \
-    LDFLAGS="-Wl,-rpath-link,/lib ${BUILD32}" \
-    ./configure --prefix=/usr --shared</userinput></screen>
+CXX="g++ -isystem /usr/include ${BUILD32}" \
+LDFLAGS="-Wl,-rpath-link,/usr/lib:/lib ${BUILD32}" \
+  ./configure --prefix=/usr</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/zlib.xml"
@@ -64,7 +64,7 @@
   <sect2 role="content">
     <title/>
 
-    <para>Les détails sur ce paquet sont disponibles dans <xref
+    <para>Details on this package are located in <xref
     linkend="contents-zlib" role="."/></para>
 
   </sect2>

Modified: trunk/clfs/final-system/ppc/eglibc.xml
===================================================================
--- trunk/clfs/final-system/ppc/eglibc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/ppc/eglibc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -27,6 +27,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/final-system/ppc64/eglibc-64bit.xml
===================================================================
--- trunk/clfs/final-system/ppc64/eglibc-64bit.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/ppc64/eglibc-64bit.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -23,6 +23,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -30,6 +38,14 @@
     xpointer="xpointer(//*[@os='l4'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="eglibc.xml"
     xpointer="xpointer(//*[@os='b'])"/>
 

Modified: trunk/clfs/final-system/ppc64/eglibc.xml
===================================================================
--- trunk/clfs/final-system/ppc64/eglibc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/ppc64/eglibc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -28,6 +28,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
@@ -36,6 +44,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='p2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='b'])"/>
 
     <para os="u1">The powerpc (32) architecture is expected to fail the

Modified: trunk/clfs/final-system/sparc64/eglibc-64bit.xml
===================================================================
--- trunk/clfs/final-system/sparc64/eglibc-64bit.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/sparc64/eglibc-64bit.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -23,6 +23,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/final-system/sparc64-64/eglibc.xml
===================================================================
--- trunk/clfs/final-system/sparc64-64/eglibc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/sparc64-64/eglibc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -27,6 +27,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/final-system/x86/eglibc.xml
===================================================================
--- trunk/clfs/final-system/x86/eglibc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/x86/eglibc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -19,7 +19,7 @@
   xpointer="xpointer(//*[@role='package'])"/>
 
   <sect2 role="installation">
-    <title>Installation de EGLIBC</title>
+    <title>Installation of EGLIBC</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
@@ -27,6 +27,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/final-system/x86_64/eglibc-64bit.xml
===================================================================
--- trunk/clfs/final-system/x86_64/eglibc-64bit.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/x86_64/eglibc-64bit.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -22,6 +22,14 @@
     <title>Installation d'EGLIBC</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../multilib/eglibc-64bit.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 

Modified: trunk/clfs/final-system/x86_64/eglibc.xml
===================================================================
--- trunk/clfs/final-system/x86_64/eglibc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/x86_64/eglibc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -28,6 +28,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/final-system/x86_64-64/eglibc.xml
===================================================================
--- trunk/clfs/final-system/x86_64-64/eglibc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/final-system/x86_64-64/eglibc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -27,6 +27,14 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l1'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
+    xpointer="xpointer(//*[@os='l2'])"/>
+
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="../common/eglibc.xml"
     xpointer="xpointer(//*[@os='l3'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/general.ent
===================================================================
--- trunk/clfs/general.ent	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/general.ent	2011-04-17 21:49:19 UTC (rev 1294)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<!ENTITY month "02"> <!-- Use two digits -->
-<!ENTITY month_name "février">
-<!ENTITY day "13"> <!-- Use two digits -->
+<!ENTITY month "04"> <!-- Use two digits -->
+<!ENTITY month_name "avril">
+<!ENTITY day "16"> <!-- Use two digits -->
 <!ENTITY year "2011"> <!-- Use four digits -->
 
 <!ENTITY releasedate "&month_name; &day;, &year;">

Modified: trunk/clfs/introduction/common/changelog.xml
===================================================================
--- trunk/clfs/introduction/common/changelog.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/introduction/common/changelog.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -38,6 +38,75 @@
 
 -->
     <listitem>
+      <para>16 avril 2011</para>
+      <itemizedlist>
+        <listitem>
+          <para>[jciccone] - Mise à jour d'Udev vers 167.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de Less vers 443.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de Groff vers 1.21.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de Readline vers 6.2.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de DejaDNU vers 1.5.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour d'Util-linux vers 2.19.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de XZ Utils vers 5.0.2.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de Tar vers 1.26.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de M4 vers 1.4.16.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de Coreutils vers 8.11.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de Bash vers 4.2.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour d'EGLIBC vers 2.13 r13356.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de GCC vers 4.6.0.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de Binutils vers 2.21.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de ClooG-PPL vers 0.15.11.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de PPL vers 0.11.2.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de MPC vers 0.9.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de MPFR vers 3.0.1.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de NCurses vers 5.9.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour de File vers 5.06.</para>
+        </listitem>
+        <listitem>
+          <para>[jciccone] - Mise à jour du noyau vers 2.6.38.3.</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+
+    <listitem>
       <para>February 10, 2011</para>
       <itemizedlist>
         <listitem>

Modified: trunk/clfs/materials/common/patches.xml
===================================================================
--- trunk/clfs/materials/common/patches.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/materials/common/patches.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -48,6 +48,15 @@
     </varlistentry>
 
     <varlistentry>
+      <term>EGLIBC correctif Dep Dl - <token>&eglibc-dl_dep_fix-patch-size;</token> :</term>
+      <listitem>
+        <para>Téléchargement : <ulink
+        url="&patches-root;&eglibc-dl_dep_fix-patch;"/></para>
+        <para>Somme de contrôle MD5 : <literal>&eglibc-dl_dep_fix-patch-md5;</literal></para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
       <term>Flex correctif GCC 4.4.x - <token>&flex-gcc44-patch-size;</token> :</term>
       <listitem>
         <para>Téléchargement : <ulink

Modified: trunk/clfs/packages.ent
===================================================================
--- trunk/clfs/packages.ent	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/packages.ent	2011-04-17 21:49:19 UTC (rev 1294)
@@ -30,17 +30,17 @@
 <!ENTITY automake-md5 "c2972c4d9b3e29c03d5f2af86249876f">
 <!ENTITY automake-home "&gnu-software;automake">
 
-<!ENTITY bash-version "4.1">
-<!ENTITY bash-size "6,444 Kio">
+<!ENTITY bash-version "4.2">
+<!ENTITY bash-size "6,848 Kio">
 <!ENTITY bash-url "&gnu;bash/bash-&bash-version;.tar.gz">
-<!ENTITY bash-md5 "9800d8724815fd84994d9be65ab5e7b8">
+<!ENTITY bash-md5 "3fb927c7c33022f1c327f14a81c0d4b0">
 <!ENTITY bash-home "&gnu-software;bash">
 
-<!ENTITY binutils-version "2.20.1">
-<!ENTITY binutils-size "17,092 Kio">
+<!ENTITY binutils-version "2.21">
+<!ENTITY binutils-size "18,304 Kio">
 <!ENTITY binutils-url "&gnu;binutils/binutils-&binutils-version;.tar.bz2">
 <!ENTITY binutils-url "&packages-root;binutils-&binutils-version;.tar.bz2">
-<!ENTITY binutils-md5 "9cdfb9d6ec0578c166d3beae5e15c4e5">
+<!ENTITY binutils-md5 "c84c5acc9d266f1a7044b51c85a823f5">
 <!ENTITY binutils-home "http://sources.redhat.com/binutils">
 
 <!ENTITY bison-version "2.4.3">
@@ -61,10 +61,10 @@
 <!ENTITY bzip2-md5 "00b516f4704d4a7cb50a1d97e6e8e15b">
 <!ENTITY bzip2-home "http://www.bzip.org/">
 
-<!ENTITY cloog-ppl-version "0.15.10">
-<!ENTITY cloog-ppl-size "688 Kio">
+<!ENTITY cloog-ppl-version "0.15.11">
+<!ENTITY cloog-ppl-size "756 Kio">
 <!ENTITY cloog-ppl-url "ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-ppl-&cloog-ppl-version;.tar.gz">
-<!ENTITY cloog-ppl-md5 "04aa756179b6d850d9ffa50f61b91895">
+<!ENTITY cloog-ppl-md5 "060ae4df6fb8176e021b4d033a6c0b9e">
 <!ENTITY cloog-ppl-home "http://cloog.org">
 
 <!ENTITY colo-version "1.22">
@@ -73,16 +73,16 @@
 <!ENTITY colo-md5 "52c16ad31f3b88f710f0fdb5abed0457">
 <!ENTITY colo-home "http://www.colonel-panic.org/cobalt-mips">
 
-<!ENTITY coreutils-version "8.9">
-<!ENTITY coreutils-size "10,998 Kio">
+<!ENTITY coreutils-version "8.11">
+<!ENTITY coreutils-size "11,228 Kio">
 <!ENTITY coreutils-url "&gnu;coreutils/coreutils-&coreutils-version;.tar.gz">
-<!ENTITY coreutils-md5 "36909ae68840d73a800120cf74af794a">
+<!ENTITY coreutils-md5 "eabaf2593f4b978dea13044d6acc2dc8">
 <!ENTITY coreutils-home "&gnu-software;coreutils">
 
-<!ENTITY dejagnu-version "1.4.4">
-<!ENTITY dejagnu-size "1,055 Kio">
+<!ENTITY dejagnu-version "1.5">
+<!ENTITY dejagnu-size "564 Kio">
 <!ENTITY dejagnu-url "&gnu;dejagnu/dejagnu-&dejagnu-version;.tar.gz">
-<!ENTITY dejagnu-md5 "053f18fd5d00873de365413cab17a666">
+<!ENTITY dejagnu-md5 "3df1cbca885e751e22d3ebd1ac64dc3c">
 <!ENTITY dejagnu-home "&gnu-software;dejagnu">
 
 <!ENTITY dhcpcd-version "5.2.10">
@@ -109,19 +109,19 @@
 <!ENTITY e2fsprogs-md5 "05f70470aea2ef7efbb0845b2b116720">
 <!ENTITY e2fsprogs-home "http://e2fsprogs.sourceforge.net">
 
-<!ENTITY eglibc-version "2.12">
-<!ENTITY eglibc-revision "12509">
+<!ENTITY eglibc-version "2.13">
+<!ENTITY eglibc-revision "13356">
 <!ENTITY eglibc-fversion "&eglibc-version;-r&eglibc-revision;">
-<!ENTITY eglibc-size "16,016 Kio">
+<!ENTITY eglibc-size "16,100 Kio">
 <!ENTITY eglibc-url "&packages-root;eglibc-&eglibc-fversion;.tar.bz2">
-<!ENTITY eglibc-md5 "78d31bca19920f2de591910545dcd564">
+<!ENTITY eglibc-md5 "689231137135771df3637e99ad169083">
 <!ENTITY eglibc-home "http://www.eglibc.org/home">
 <!ENTITY eglibc-ld-name "ld-&eglibc-version;.so">
 
 <!ENTITY eglibc-ports-version "&eglibc-version;">
-<!ENTITY eglibc-ports-size "632 Kio">
+<!ENTITY eglibc-ports-size "640 Kio">
 <!ENTITY eglibc-ports-url "&packages-root;eglibc-ports-&eglibc-version;-r&eglibc-revision;.tar.bz2">
-<!ENTITY eglibc-ports-md5 "a90dc5cd2104d68b54a9edae46e8f82b">
+<!ENTITY eglibc-ports-md5 "7b1241cc3e3d5c606c960d841ab692bd">
 <!ENTITY eglibc-ports-home " ">
 
 <!ENTITY elftoaout-version "2.3">
@@ -137,11 +137,11 @@
 <!ENTITY expect-home "http://expect.sourceforge.net">
 <!ENTITY expect-lib-version "5.43">
 
-<!ENTITY file-version "5.04">
-<!ENTITY file-size "608 Kio">
+<!ENTITY file-version "5.06">
+<!ENTITY file-size "588 Kio">
 <!ENTITY file-url "ftp://ftp.astron.com/pub/file/file-&file-version;.tar.gz">
 <!--<!ENTITY file-url "&packages-root;file-&file-version;.tar.gz">-->
-<!ENTITY file-md5 "accade81ff1cc774904b47c72c8aeea0">
+<!ENTITY file-md5 "deb12b0fb9d09e7681be72bad6eba4e0">
 <!ENTITY file-home "http://www.darwinsys.com/file">
 
 <!ENTITY findutils-version "4.4.2">
@@ -162,10 +162,10 @@
 <!ENTITY gawk-md5 "52b41c6c4418b3226dfb8f82076193bb">
 <!ENTITY gawk-home "&gnu-software;gawk">
 
-<!ENTITY gcc-version "4.5.2">
-<!ENTITY gcc-size "64,776 Kio">
+<!ENTITY gcc-version "4.6.0">
+<!ENTITY gcc-size "69,904 Kio">
 <!ENTITY gcc-url "ftp://gcc.gnu.org/pub/gcc/releases/gcc-&gcc-version;/gcc-&gcc-version;.tar.bz2">
-<!ENTITY gcc-md5 "d6559145853fbaaa0fd7556ed93bce9a">
+<!ENTITY gcc-md5 "93d1c436bf991564524701259b6285a2">
 <!ENTITY gcc-home "http://gcc.gnu.org">
 
 <!ENTITY gettext-version "0.18.1.1">
@@ -186,10 +186,10 @@
  <!ENTITY grep-md5 "3095b57837b312f087c0680559de7f13">
 <!ENTITY grep-home "&gnu-software;grep">
 
-<!ENTITY groff-version "1.20.1">
-<!ENTITY groff-size "3,510 Kio">
+<!ENTITY groff-version "1.21">
+<!ENTITY groff-size "3,776 Kio">
 <!ENTITY groff-url "&gnu;groff/groff-&groff-version;.tar.gz">
-<!ENTITY groff-md5 "48fa768dd6fdeb7968041dd5ae8e2b02">
+<!ENTITY groff-md5 "8b8cd29385b97616a0f0d96d0951c5bf">
 <!ENTITY groff-home "&gnu-software;groff">
 
 <!ENTITY grub-version "1.98">
@@ -235,10 +235,10 @@
 <!ENTITY kbd-md5 "77d0b51454522bc6c170bbdc6e31202a">
 <!ENTITY kbd-home " ">
 
-<!ENTITY less-version "436">
-<!ENTITY less-size "296 Kio">
+<!ENTITY less-version "443">
+<!ENTITY less-size "304 Kio">
 <!ENTITY less-url "http://www.greenwoodsoftware.com/less/less-&less-version;.tar.gz">
-<!ENTITY less-md5 "817bf051953ad2dea825a1cdf460caa4">
+<!ENTITY less-md5 "47db098fb3cdaf847b3c4be05ee954fc">
 <!ENTITY less-home "http://www.greenwoodsoftware.com/less">
 
 <!ENTITY libtool-version "2.4">
@@ -249,16 +249,16 @@
 
 <!ENTITY linux-dl-version "2.6">
 
-<!ENTITY linux-version "2.6.37">
-<!ENTITY linux-size "71,860 Kio">
+<!ENTITY linux-version "2.6.38.3">
+<!ENTITY linux-size "73,048 Kio">
 <!ENTITY linux-url "&kernel;linux/kernel/v&linux-dl-version;/linux-&linux-version;.tar.bz2">
-<!ENTITY linux-md5 "c8ee37b4fdccdb651e0603d35350b434">
+<!ENTITY linux-md5 "d3071407a33a7bd2ffb47181f200f22c">
 <!ENTITY linux-home "http://www.kernel.org">
 
-<!ENTITY m4-version "1.4.15">
-<!ENTITY m4-size "1,176 Kio">
+<!ENTITY m4-version "1.4.16">
+<!ENTITY m4-size "1,232 Kio">
 <!ENTITY m4-url "&gnu;m4/m4-&m4-version;.tar.bz2">
-<!ENTITY m4-md5 "c7c32540bc3842d5550f88d47ef551d8">
+<!ENTITY m4-md5 "8a7cef47fecab6272eb86a6be6363b2f">
 <!ENTITY m4-home "&gnu-software;m4">
 
 <!ENTITY make-version "3.82">
@@ -285,22 +285,22 @@
 <!ENTITY module-init-tools-md5 "8b2257ce9abef74c4a44d825d23140f3">
 <!ENTITY module-init-tools-home "http://www.kerneltools.org/KernelTools.org">
 
-<!ENTITY mpc-version "0.8.2">
-<!ENTITY mpc-size "536 Kio">
+<!ENTITY mpc-version "0.9">
+<!ENTITY mpc-size "556 Kio">
 <!ENTITY mpc-url "http://www.multiprecision.org/mpc/download/mpc-&mpc-version;.tar.gz">
-<!ENTITY mpc-md5 "e98267ebd5648a39f881d66797122fb6">
+<!ENTITY mpc-md5 "0d6acab8d214bd7d1fbbc593e83dd00d">
 <!ENTITY mpc-home "http://www.multiprecision.org/">
 
-<!ENTITY mpfr-version "3.0.0">
-<!ENTITY mpfr-size "1,112 Kio">
-<!ENTITY mpfr-url "http://www.mpfr.org/mpfr-current/mpfr-3.0.0.tar.bz2">
-<!ENTITY mpfr-md5 "f45bac3584922c8004a10060ab1a8f9f">
+<!ENTITY mpfr-version "3.0.1">
+<!ENTITY mpfr-size "1,128 Kio">
+<!ENTITY mpfr-url "http://www.mpfr.org/mpfr-current/mpfr-&mpfr-version;.tar.bz2">
+<!ENTITY mpfr-md5 "bfbecb2eacb6d48432ead5cfc3f7390a">
 <!ENTITY mpfr-home "http://www.mpfr.org/">
 
-<!ENTITY ncurses-version "5.7">
-<!ENTITY ncurses-size "2,387 Kio">
+<!ENTITY ncurses-version "5.9">
+<!ENTITY ncurses-size "2,764 Kio">
 <!ENTITY ncurses-url "ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses-&ncurses-version;.tar.gz">
-<!ENTITY ncurses-md5 "cce05daf61a64501ef6cd8da1f727ec6">
+<!ENTITY ncurses-md5 "8cb9c412e5f2d96bc6f459aa8c6282a1">
 <!ENTITY ncurses-home "&gnu-software;ncurses">
 
 <!ENTITY parted-version "1.9.0">
@@ -333,10 +333,10 @@
 <!ENTITY powerpcutils-md5 "d879b109bb8f0d726304b60b147bff13">
 <!ENTITY powerpcutils-home "http://packages.qa.debian.org/p/powerpc-utils.html">
 
-<!ENTITY ppl-version "0.10.2">
-<!ENTITY ppl-size "9,592 Kio">
+<!ENTITY ppl-version "0.11.2">
+<!ENTITY ppl-size "12,060 Kio">
 <!ENTITY ppl-url "http://www.cs.unipr.it/ppl/Download/ftp/releases/&ppl-version;/ppl-&ppl-version;.tar.bz2">
-<!ENTITY ppl-md5 "5667111f53150618b0fa522ffc53fc3e">
+<!ENTITY ppl-md5 "c24429e6c3bc97d45976a63f40f489a1">
 <!ENTITY ppl-home "http://www.cs.unipr.it/ppl">
 
 <!ENTITY procps-version "3.2.8">
@@ -352,10 +352,10 @@
 <!ENTITY psmisc-home "http://psmisc.sourceforge.net">
 
 <!ENTITY readline-version2 "6">
-<!ENTITY readline-version "&readline-version2;.1">
-<!ENTITY readline-size "2,212 Kio">
+<!ENTITY readline-version "&readline-version2;.2">
+<!ENTITY readline-size "2,228 Kio">
 <!ENTITY readline-url "&gnu;readline/readline-&readline-version;.tar.gz">
-<!ENTITY readline-md5 "fc2f7e714fe792db1ce6ddc4c9fb4ef3">
+<!ENTITY readline-md5 "67948acb2ca081f23359d0256e9a271c">
 <!ENTITY readline-home "http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html">
 
 <!ENTITY rsyslog-version "4.4.2">
@@ -388,10 +388,10 @@
 <!ENTITY sysvinit-md5 "6eda8a97b86e0a6f59dabbf25202aa6f">
 <!ENTITY sysvinit-home "http://savannah.nongnu.org/projects/sysvinit">
 
-<!ENTITY tar-version "1.25">
-<!ENTITY tar-size "2,276 Kio">
+<!ENTITY tar-version "1.26">
+<!ENTITY tar-size "2,288 Kio">
 <!ENTITY tar-url "&gnu;tar/tar-&tar-version;.tar.bz2">
-<!ENTITY tar-md5 "6e497f861c77bbba2f7da4e10270995b">
+<!ENTITY tar-md5 "2cee42a2ff4f1cd4f9298eeeb2264519">
 <!ENTITY tar-home "&gnu-software;tar">
 
 <!ENTITY tcl-version2 "8.5">
@@ -407,10 +407,10 @@
 <!ENTITY texinfo-md5 "71ba711519209b5fb583fed2b3d86fcb">
 <!ENTITY texinfo-home "&gnu-software;texinfo">
 
-<!ENTITY udev-version "165">
-<!ENTITY udev-size "566 Kio">
+<!ENTITY udev-version "167">
+<!ENTITY udev-size "584 Kio">
 <!ENTITY udev-url "&kernel;linux/utils/kernel/hotplug/udev-&udev-version;.tar.bz2">
-<!ENTITY udev-md5 "74c62aa82969278960b7ee81e94b6d8f">
+<!ENTITY udev-md5 "4b37e1222f06c14c24147de346aa0bad">
 <!ENTITY udev-home "http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html">
 
 <!ENTITY uname_hack-version "20080713">
@@ -431,15 +431,15 @@
 
 <!ENTITY vim-version "7.3">
 <!ENTITY vim-version2 "73">
-<!ENTITY vim-size "8,868 Kio">
+<!ENTITY vim-size "4,726 Kio">
 <!ENTITY vim-url "ftp://ftp.vim.org/pub/vim/unix/vim-&vim-version;.tar.bz2">
-<!ENTITY vim-md5 "5b9510a17074e2b37d8bb38ae09edbf2">
+<!ENTITY vim-md5 "590ca71aad0b254e2631d84401f28255">
 <!ENTITY vim-home "http://www.vim.org">
 
-<!ENTITY xz-version "5.0.0">
-<!ENTITY xz-size "984 Kio">
+<!ENTITY xz-version "5.0.2">
+<!ENTITY xz-size "1,000 Kio">
 <!ENTITY xz-url "http://tukaani.org/xz/xz-&xz-version;.tar.bz2">
-<!ENTITY xz-md5 "0652c09fdbb93ae2ce78c1368ffda612">
+<!ENTITY xz-md5 "ee05b17a4062bb55cba099ef46eca007">
 <!ENTITY xz-home "http://tukaani.org/xz/">
 
 <!ENTITY yaboot-version "1.3.14">

Modified: trunk/clfs/patches.ent
===================================================================
--- trunk/clfs/patches.ent	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/patches.ent	2011-04-17 21:49:19 UTC (rev 1294)
@@ -4,9 +4,9 @@
 
 <!-- Start of Common Patches -->
 
-<!ENTITY bash-branch_update-patch "bash-&bash-version;-branch_update-2.patch">
-<!ENTITY bash-branch_update-patch-md5 "7645587a6efcefa67936dcaeb9b2bee7">
-<!ENTITY bash-branch_update-patch-size "8 Kio">
+<!ENTITY bash-branch_update-patch "bash-&bash-version;-branch_update-1.patch">
+<!ENTITY bash-branch_update-patch-md5 "ee7bbf5d36058487cbe23f5571a2c21c">
+<!ENTITY bash-branch_update-patch-size "12 Kio">
 
 <!ENTITY cloog-ppl-autogen-patch "cloog-ppl-&cloog-ppl-version;-autogen-1.patch">
 <!ENTITY cloog-ppl-autogen-patch-md5 "7e571071c0105f012bbe41f97f8d1da8">
@@ -20,8 +20,12 @@
 <!ENTITY flex-gcc44-patch-md5 "a6ffbba93d034380e12110bb6d399113">
 <!ENTITY flex-gcc44-patch-size "12 Kio">
 
+<!ENTITY eglibc-dl_dep_fix-patch "eglibc-&eglibc-fversion;-dl_dep_fix-1.patch">
+<!ENTITY eglibc-dl_dep_fix-patch-md5 "fd640e7758e8560839bde1358ee44885">
+<!ENTITY eglibc-dl_dep_fix-patch-size "4 Kio">
+
 <!ENTITY gcc-specs-patch "gcc-&gcc-version;-specs-1.patch">
-<!ENTITY gcc-specs-patch-md5 "15e207e152928cb307f38aa0c0924429">
+<!ENTITY gcc-specs-patch-md5 "61d583984f9f12b6f37141e132fc7d57">
 <!ENTITY gcc-specs-patch-size "16 Kio">
 
 <!ENTITY grep-fixes-patch "grep-&grep-version;-fixes-1.patch">
@@ -42,11 +46,11 @@
 
 <!ENTITY ncurses-bashfix-patch "ncurses-&ncurses-version;-bash_fix-1.patch">
 <!ENTITY ncurses-bashfix-patch-md5 "c6f7f2ab0ebaf7721ebeb266641352db">
-<!ENTITY ncurses-bashfix-patch-size ".7 Kio">
+<!ENTITY ncurses-bashfix-patch-size "4 Kio">
 
-<!ENTITY ncurses-branch_update-patch "ncurses-&ncurses-version;-branch_update-22.patch">
-<!ENTITY ncurses-branch_update-patch-md5 "3b543b078fe0703e9277b75076209a79">
-<!ENTITY ncurses-branch_update-patch-size "6,280 Kio">
+<!ENTITY ncurses-branch_update-patch "ncurses-&ncurses-version;-branch_update-1.patch">
+<!ENTITY ncurses-branch_update-patch-md5 "5361bccf700849ba968a8886cdfaa879">
+<!ENTITY ncurses-branch_update-patch-size "324 Kio">
 
 <!ENTITY perl-libc-patch "perl-&perl-version;-libc-1.patch">
 <!ENTITY perl-libc-patch-md5 "d572b0cc87b35f1806fd84f88803fb66">
@@ -61,11 +65,11 @@
 <!ENTITY procps-ps_cgroup-patch-size "4 Kio">
 
 <!ENTITY readline-branch_update-patch "readline-&readline-version;-branch_update-1.patch">
-<!ENTITY readline-branch_update-patch-md5 "91bb18428fcacb91b3f4c09d219e1258">
+<!ENTITY readline-branch_update-patch-md5 "482e35a552bc8c4744aab0ddaa545559">
 <!ENTITY readline-branch_update-patch-size "4 Kio">
 
 <!ENTITY tar-man-patch "tar-&tar-version;-man-1.patch">
-<!ENTITY tar-man-patch-md5 "6a1a1d8bdc00fc149c28aa1f8405fc93">
+<!ENTITY tar-man-patch-md5 "79d962bddc4871b394e5f8e3267680fe">
 <!ENTITY tar-man-patch-size "20 Kio">
 
 <!ENTITY texinfo-new_compressors-patch "texinfo-&texinfo-version;-new_compressors-1.patch">
@@ -93,11 +97,11 @@
 <!-- Start of Pure64 patches -->
 
 <!ENTITY gcc-pure64-patch "gcc-&gcc-version;-pure64-1.patch">
-<!ENTITY gcc-pure64-patch-md5 "9f230c4d6fc288405d831aaf02ef8a69">
+<!ENTITY gcc-pure64-patch-md5 "7c41d649fe266f11e4dbdd2392f7729b">
 <!ENTITY gcc-pure64-patch-size "12 Kio">
 
 <!ENTITY gcc-specs_pure64-patch "gcc-&gcc-version;-pure64_specs-1.patch">
-<!ENTITY gcc-specs_pure64-patch-md5 "bdf42c85af936319438f912a3870e3ea">
+<!ENTITY gcc-specs_pure64-patch-md5 "24f012f5d407d48bf6191ec5aa6bed60">
 <!ENTITY gcc-specs_pure64-patch-size "24 Kio">
 
 <!-- Start of Alpha patches -->

Added: trunk/clfs/schema/docbook/4.5/rng/calstblx.rnc
===================================================================
--- trunk/clfs/schema/docbook/4.5/rng/calstblx.rnc	                        (rev 0)
+++ trunk/clfs/schema/docbook/4.5/rng/calstblx.rnc	2011-04-17 21:49:19 UTC (rev 1294)
@@ -0,0 +1,164 @@
+# ......................................................................
+
+# DocBook CALS Table Model V4.5 ........................................
+
+# File calstblx.mod ....................................................
+
+# Copyright 1992-2002 HaL Computer Systems, Inc.,
+# O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+# Corporation, Norman Walsh, Sun Microsystems, Inc., 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: calstblx.dtd 6340 2006-10-03 13:23:24Z nwalsh $
+# 
+# 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.
+# 
+# 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 at 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. It has been modified slightly for use in the
+# combined HTML/CALS models supported by DocBook V4.5.
+
+# 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.
+
+# no if zero(s),
+# yes if any other digits value
+
+yesorno = string
+titles = title?
+# default for use in entry content
+
+# 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.
+tbl.table-titles.mdl = titles
+tbl.table-main.mdl = tgroup+ | graphic+
+tbl.tgroup.mdl = colspec*, spanspec*, thead?, tfoot?, tbody
+tbl.tgroup.att = attribute tgroupstyle { text }?
+tbl.row.mdl = (entry | entrytbl)+
+tbl.entrytbl.mdl = colspec*, spanspec*, thead?, tbody
+# =====  Element and attribute declarations follow. =====
+
+# doc:A formal table in a document.
+table = element table { table.attlist, tbl.table.mdl }
+table.attlist &=
+  attribute frame { tbl.frame.attval }?,
+  attribute colsep { yesorno }?,
+  attribute rowsep { yesorno }?,
+  tbl.table.att,
+  bodyatt,
+  secur
+# doc:A wrapper for the main content of a table, or part of a table.
+tgroup = element tgroup { tgroup.attlist, tbl.tgroup.mdl }
+tgroup.attlist &=
+  attribute cols { text },
+  tbl.tgroup.att,
+  attribute colsep { yesorno }?,
+  attribute rowsep { yesorno }?,
+  attribute align { "left" | "right" | "center" | "justify" | "char" }?,
+  attribute char { text }?,
+  attribute charoff { text }?,
+  secur
+# doc:Specifications for a column in a table.
+colspec = element colspec { colspec.attlist, empty }
+colspec.attlist &=
+  attribute colnum { text }?,
+  attribute colname { text }?,
+  attribute colwidth { text }?,
+  attribute colsep { yesorno }?,
+  attribute rowsep { yesorno }?,
+  attribute align { "left" | "right" | "center" | "justify" | "char" }?,
+  attribute char { text }?,
+  attribute charoff { text }?
+# doc:Formatting information for a spanned column in a table.
+spanspec = element spanspec { spanspec.attlist, empty }
+spanspec.attlist &=
+  attribute namest { text },
+  attribute nameend { text },
+  attribute spanname { text },
+  attribute colsep { yesorno }?,
+  attribute rowsep { yesorno }?,
+  attribute align { "left" | "right" | "center" | "justify" | "char" }?,
+  attribute char { text }?,
+  attribute charoff { text }?
+# doc:A table header consisting of one or more rows.
+thead = element thead { thead.attlist, tbl.hdft.mdl }
+thead.attlist &=
+  attribute valign { "top" | "middle" | "bottom" }?,
+  secur
+# doc:A table footer consisting of one or more rows.
+tfoot = element tfoot { tfoot.attlist, tbl.hdft.mdl }
+tfoot.attlist &=
+  attribute valign { "top" | "middle" | "bottom" }?,
+  secur
+# doc:A wrapper for the rows of a table or informal table.
+tbody = element tbody { tbody.attlist, tbl.tbody.mdl }
+tbody.attlist &=
+  attribute valign { "top" | "middle" | "bottom" }?,
+  secur
+# doc:A row in a table.
+row = element row { row.attlist, tbl.row.mdl }
+row.attlist &=
+  attribute rowsep { yesorno }?,
+  attribute valign { "top" | "middle" | "bottom" }?,
+  secur
+# doc:A subtable appearing in place of an Entry in a table.
+entrytbl = element entrytbl { entrytbl.attlist, tbl.entrytbl.mdl }
+entrytbl.attlist &=
+  attribute cols { text },
+  tbl.tgroup.att,
+  attribute colname { text }?,
+  attribute spanname { text }?,
+  attribute namest { text }?,
+  attribute nameend { text }?,
+  attribute colsep { yesorno }?,
+  attribute rowsep { yesorno }?,
+  attribute align { "left" | "right" | "center" | "justify" | "char" }?,
+  attribute char { text }?,
+  attribute charoff { text }?,
+  secur
+# doc:A cell in a table.
+entry = element entry { entry.attlist, tbl.entry.mdl* }
+entry.attlist &=
+  attribute colname { text }?,
+  attribute namest { text }?,
+  attribute nameend { text }?,
+  attribute spanname { text }?,
+  attribute morerows { text }?,
+  attribute colsep { yesorno }?,
+  attribute rowsep { yesorno }?,
+  attribute align { "left" | "right" | "center" | "justify" | "char" }?,
+  attribute char { text }?,
+  attribute charoff { text }?,
+  attribute rotate { yesorno }?,
+  attribute valign { "top" | "middle" | "bottom" }?,
+  secur
+# End of DocBook CALS Table Model V4.5 .................................
+
+# ......................................................................

Added: trunk/clfs/schema/docbook/4.5/rng/calstblx.rng
===================================================================
--- trunk/clfs/schema/docbook/4.5/rng/calstblx.rng	                        (rev 0)
+++ trunk/clfs/schema/docbook/4.5/rng/calstblx.rng	2011-04-17 21:49:19 UTC (rev 1294)
@@ -0,0 +1,477 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ...................................................................... -->
+<!-- DocBook CALS Table Model V4.5 ........................................ -->
+<!-- File calstblx.mod .................................................... -->
+<!--
+  Copyright 1992-2002 HaL Computer Systems, Inc.,
+  O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+  Corporation, Norman Walsh, Sun Microsystems, Inc., 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: calstblx.dtd 6340 2006-10-03 13:23:24Z nwalsh $
+  
+  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.
+  
+  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 at 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. It has been modified slightly for use in the
+  combined HTML/CALS models supported by DocBook V4.5.
+-->
+<!--
+  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.
+-->
+<!--
+  no if zero(s),
+  yes if any other digits value
+-->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="">
+  <define name="yesorno">
+    <data type="string"/>
+  </define>
+  <define name="titles">
+    <optional>
+      <ref name="title"/>
+    </optional>
+  </define>
+  <!-- default for use in entry content -->
+  <!--
+    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.
+  -->
+  <define name="tbl.table-titles.mdl">
+    <ref name="titles"/>
+  </define>
+  <define name="tbl.table-main.mdl">
+    <choice>
+      <oneOrMore>
+        <ref name="tgroup"/>
+      </oneOrMore>
+      <oneOrMore>
+        <ref name="graphic"/>
+      </oneOrMore>
+    </choice>
+  </define>
+  <define name="tbl.tgroup.mdl">
+    <zeroOrMore>
+      <ref name="colspec"/>
+    </zeroOrMore>
+    <zeroOrMore>
+      <ref name="spanspec"/>
+    </zeroOrMore>
+    <optional>
+      <ref name="thead"/>
+    </optional>
+    <optional>
+      <ref name="tfoot"/>
+    </optional>
+    <ref name="tbody"/>
+  </define>
+  <define name="tbl.tgroup.att">
+    <optional>
+      <attribute name="tgroupstyle"/>
+    </optional>
+  </define>
+  <define name="tbl.row.mdl">
+    <oneOrMore>
+      <choice>
+        <ref name="entry"/>
+        <ref name="entrytbl"/>
+      </choice>
+    </oneOrMore>
+  </define>
+  <define name="tbl.entrytbl.mdl">
+    <zeroOrMore>
+      <ref name="colspec"/>
+    </zeroOrMore>
+    <zeroOrMore>
+      <ref name="spanspec"/>
+    </zeroOrMore>
+    <optional>
+      <ref name="thead"/>
+    </optional>
+    <ref name="tbody"/>
+  </define>
+  <!-- =====  Element and attribute declarations follow. ===== -->
+  <!-- doc:A formal table in a document. -->
+  <define name="table">
+    <element name="table">
+      <ref name="table.attlist"/>
+      <ref name="tbl.table.mdl"/>
+    </element>
+  </define>
+  <define name="table.attlist" combine="interleave">
+    <optional>
+      <attribute name="frame">
+        <choice>
+          <ref name="tbl.frame.attval"/>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="colsep">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rowsep">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <ref name="tbl.table.att"/>
+    <ref name="bodyatt"/>
+    <ref name="secur"/>
+  </define>
+  <!-- doc:A wrapper for the main content of a table, or part of a table. -->
+  <define name="tgroup">
+    <element name="tgroup">
+      <ref name="tgroup.attlist"/>
+      <ref name="tbl.tgroup.mdl"/>
+    </element>
+  </define>
+  <define name="tgroup.attlist" combine="interleave">
+    <attribute name="cols"/>
+    <ref name="tbl.tgroup.att"/>
+    <optional>
+      <attribute name="colsep">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rowsep">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="align">
+        <choice>
+          <value>left</value>
+          <value>right</value>
+          <value>center</value>
+          <value>justify</value>
+          <value>char</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="char"/>
+    </optional>
+    <optional>
+      <attribute name="charoff"/>
+    </optional>
+    <ref name="secur"/>
+  </define>
+  <!-- doc:Specifications for a column in a table. -->
+  <define name="colspec">
+    <element name="colspec">
+      <ref name="colspec.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="colspec.attlist" combine="interleave">
+    <optional>
+      <attribute name="colnum"/>
+    </optional>
+    <optional>
+      <attribute name="colname"/>
+    </optional>
+    <optional>
+      <attribute name="colwidth"/>
+    </optional>
+    <optional>
+      <attribute name="colsep">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rowsep">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="align">
+        <choice>
+          <value>left</value>
+          <value>right</value>
+          <value>center</value>
+          <value>justify</value>
+          <value>char</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="char"/>
+    </optional>
+    <optional>
+      <attribute name="charoff"/>
+    </optional>
+  </define>
+  <!-- doc:Formatting information for a spanned column in a table. -->
+  <define name="spanspec">
+    <element name="spanspec">
+      <ref name="spanspec.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <define name="spanspec.attlist" combine="interleave">
+    <attribute name="namest"/>
+    <attribute name="nameend"/>
+    <attribute name="spanname"/>
+    <optional>
+      <attribute name="colsep">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rowsep">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="align">
+        <choice>
+          <value>left</value>
+          <value>right</value>
+          <value>center</value>
+          <value>justify</value>
+          <value>char</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="char"/>
+    </optional>
+    <optional>
+      <attribute name="charoff"/>
+    </optional>
+  </define>
+  <!-- doc:A table header consisting of one or more rows. -->
+  <define name="thead">
+    <element name="thead">
+      <ref name="thead.attlist"/>
+      <ref name="tbl.hdft.mdl"/>
+    </element>
+  </define>
+  <define name="thead.attlist" combine="interleave">
+    <optional>
+      <attribute name="valign">
+        <choice>
+          <value>top</value>
+          <value>middle</value>
+          <value>bottom</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="secur"/>
+  </define>
+  <!-- doc:A table footer consisting of one or more rows. -->
+  <define name="tfoot">
+    <element name="tfoot">
+      <ref name="tfoot.attlist"/>
+      <ref name="tbl.hdft.mdl"/>
+    </element>
+  </define>
+  <define name="tfoot.attlist" combine="interleave">
+    <optional>
+      <attribute name="valign">
+        <choice>
+          <value>top</value>
+          <value>middle</value>
+          <value>bottom</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="secur"/>
+  </define>
+  <!-- doc:A wrapper for the rows of a table or informal table. -->
+  <define name="tbody">
+    <element name="tbody">
+      <ref name="tbody.attlist"/>
+      <ref name="tbl.tbody.mdl"/>
+    </element>
+  </define>
+  <define name="tbody.attlist" combine="interleave">
+    <optional>
+      <attribute name="valign">
+        <choice>
+          <value>top</value>
+          <value>middle</value>
+          <value>bottom</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="secur"/>
+  </define>
+  <!-- doc:A row in a table. -->
+  <define name="row">
+    <element name="row">
+      <ref name="row.attlist"/>
+      <ref name="tbl.row.mdl"/>
+    </element>
+  </define>
+  <define name="row.attlist" combine="interleave">
+    <optional>
+      <attribute name="rowsep">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="valign">
+        <choice>
+          <value>top</value>
+          <value>middle</value>
+          <value>bottom</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="secur"/>
+  </define>
+  <!-- doc:A subtable appearing in place of an Entry in a table. -->
+  <define name="entrytbl">
+    <element name="entrytbl">
+      <ref name="entrytbl.attlist"/>
+      <ref name="tbl.entrytbl.mdl"/>
+    </element>
+  </define>
+  <define name="entrytbl.attlist" combine="interleave">
+    <attribute name="cols"/>
+    <ref name="tbl.tgroup.att"/>
+    <optional>
+      <attribute name="colname"/>
+    </optional>
+    <optional>
+      <attribute name="spanname"/>
+    </optional>
+    <optional>
+      <attribute name="namest"/>
+    </optional>
+    <optional>
+      <attribute name="nameend"/>
+    </optional>
+    <optional>
+      <attribute name="colsep">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rowsep">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="align">
+        <choice>
+          <value>left</value>
+          <value>right</value>
+          <value>center</value>
+          <value>justify</value>
+          <value>char</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="char"/>
+    </optional>
+    <optional>
+      <attribute name="charoff"/>
+    </optional>
+    <ref name="secur"/>
+  </define>
+  <!-- doc:A cell in a table. -->
+  <define name="entry">
+    <element name="entry">
+      <ref name="entry.attlist"/>
+      <zeroOrMore>
+        <ref name="tbl.entry.mdl"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="entry.attlist" combine="interleave">
+    <optional>
+      <attribute name="colname"/>
+    </optional>
+    <optional>
+      <attribute name="namest"/>
+    </optional>
+    <optional>
+      <attribute name="nameend"/>
+    </optional>
+    <optional>
+      <attribute name="spanname"/>
+    </optional>
+    <optional>
+      <attribute name="morerows"/>
+    </optional>
+    <optional>
+      <attribute name="colsep">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rowsep">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="align">
+        <choice>
+          <value>left</value>
+          <value>right</value>
+          <value>center</value>
+          <value>justify</value>
+          <value>char</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="char"/>
+    </optional>
+    <optional>
+      <attribute name="charoff"/>
+    </optional>
+    <optional>
+      <attribute name="rotate">
+        <ref name="yesorno"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="valign">
+        <choice>
+          <value>top</value>
+          <value>middle</value>
+          <value>bottom</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="secur"/>
+  </define>
+</grammar>
+<!-- End of DocBook CALS Table Model V4.5 ................................. -->
+<!-- ...................................................................... -->

Added: trunk/clfs/schema/docbook/4.5/rng/dbhierx.rnc
===================================================================
--- trunk/clfs/schema/docbook/4.5/rng/dbhierx.rnc	                        (rev 0)
+++ trunk/clfs/schema/docbook/4.5/rng/dbhierx.rnc	2011-04-17 21:49:19 UTC (rev 1294)
@@ -0,0 +1,1549 @@
+# ......................................................................
+
+# DocBook document hierarchy module V4.5 ...............................
+
+# File dbhierx.mod .....................................................
+
+# Copyright 1992-2004 HaL Computer Systems, Inc.,
+# O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+# Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+# Organization for the Advancement of Structured Information
+# Standards (OASIS).
+# 
+# $Id: dbhierx.mod 6340 2006-10-03 13:23:24Z nwalsh $
+# 
+# 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.
+# 
+# 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 at 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 Document Hierarchy V4.5//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 .......................................
+
+# ......................................................................
+
+# Entities for element classes .........................................
+
+local.appendix.class = notAllowed
+appendix.class = appendix | local.appendix.class
+local.article.class = notAllowed
+article.class = article | local.article.class
+local.book.class = notAllowed
+book.class = book | local.book.class
+local.chapter.class = notAllowed
+chapter.class = chapter | local.chapter.class
+local.index.class = notAllowed
+index.class = index | setindex | local.index.class
+local.refentry.class = notAllowed
+refentry.class = refentry | local.refentry.class
+local.section.class = notAllowed
+section.class = section | local.section.class
+local.nav.class = notAllowed
+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
+
+# ......................................................................
+
+# Entities for element mixtures ........................................
+local.divcomponent.mix = notAllowed
+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
+local.refcomponent.mix = notAllowed
+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
+  | forms.hook
+  | local.refcomponent.mix
+local.indexdivcomponent.mix = notAllowed
+indexdivcomponent.mix =
+  itemizedlist
+  | orderedlist
+  | variablelist
+  | simplelist
+  | linespecific.class
+  | synop.class
+  | para.class
+  | informal.class
+  | anchor
+  | remark
+  | link.char.class
+  | beginpage
+  | local.indexdivcomponent.mix
+local.refname.char.mix = notAllowed
+refname.char.mix = text | tech.char.class | local.refname.char.mix
+local.partcontent.mix = notAllowed
+partcontent.mix =
+  appendix.class
+  | chapter.class
+  | nav.class
+  | article.class
+  | preface
+  | refentry.class
+  | reference
+  | local.partcontent.mix
+local.refinline.char.mix = notAllowed
+refinline.char.mix =
+  text
+  | 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
+local.refclass.char.mix = notAllowed
+refclass.char.mix = text | 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
+
+# ......................................................................
+
+# Entities for content models ..........................................
+div.title.content = title, subtitle?, titleabbrev?
+bookcomponent.title.content = title, subtitle?, titleabbrev?
+sect.title.content = title, subtitle?, titleabbrev?
+refsect.title.content = title, subtitle?, titleabbrev?
+bookcomponent.content =
+  (divcomponent.mix+,
+   (sect1* | refentry.class* | simplesect* | section.class*))
+  | (sect1+ | refentry.class+ | simplesect+ | section.class+)
+# ......................................................................
+
+# Set and SetInfo ......................................................
+local.set.attrib = empty
+set.role.attrib = role.attrib
+# doc:A collection of books.
+set =
+  element set {
+    set.attlist,
+    div.title.content?,
+    setinfo?,
+    toc?,
+    (set | book.class)+,
+    setindex?
+  }
+# end of set.element
+
+# FPI: SGML formal public identifier
+set.attlist &=
+  attribute fpi { text }?,
+  status.attrib,
+  common.attrib,
+  set.role.attrib,
+  local.set.attrib
+# end of set.attlist
+
+# end of set.module
+local.setinfo.attrib = empty
+setinfo.role.attrib = role.attrib
+# doc:Meta-information for a Set.
+setinfo = element setinfo { setinfo.attlist, info.class+ }
+# end of setinfo.element
+
+# Contents: IDs of the ToC, Books, and SetIndex that comprise
+# the set, in the order of their appearance
+setinfo.attlist &=
+  attribute contents { xsd:IDREFS }?,
+  common.attrib,
+  setinfo.role.attrib,
+  local.setinfo.attrib
+# end of setinfo.attlist
+
+# end of setinfo.module
+
+# end of set.content.module
+
+# ......................................................................
+
+# Book and BookInfo ....................................................
+local.book.attrib = empty
+book.role.attrib = role.attrib
+# doc:A book.
+book =
+  element book {
+    book.attlist,
+    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
+book.attlist &=
+  attribute fpi { text }?,
+  label.attrib,
+  status.attrib,
+  common.attrib,
+  book.role.attrib,
+  local.book.attrib
+# end of book.attlist
+
+# end of book.module
+local.bookinfo.attrib = empty
+bookinfo.role.attrib = role.attrib
+# doc:Meta-information for a Book.
+bookinfo = element bookinfo { bookinfo.attlist, info.class+ }
+# 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
+bookinfo.attlist &=
+  attribute contents { xsd:IDREFS }?,
+  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 .............................................
+local.dedication.attrib = empty
+dedication.role.attrib = role.attrib
+# doc:A wrapper for the dedication section of a book.
+dedication =
+  element dedication {
+    dedication.attlist, sect.title.content?, legalnotice.mix+
+  }
+# end of dedication.element
+dedication.attlist &=
+  status.attrib,
+  common.attrib,
+  dedication.role.attrib,
+  local.dedication.attrib
+# end of dedication.attlist
+
+# end of dedication.module
+local.colophon.attrib = empty
+colophon.role.attrib = role.attrib
+# doc:Text at the back of a book describing facts about its production.
+colophon =
+  element colophon {
+    colophon.attlist, sect.title.content?, textobject.mix+
+  }
+# end of colophon.element
+colophon.attlist &=
+  status.attrib,
+  common.attrib,
+  colophon.role.attrib,
+  local.colophon.attrib
+# end of colophon.attlist
+
+# end of colophon.module
+local.toc.attrib = empty
+toc.role.attrib = role.attrib
+# doc:A table of contents.
+toc =
+  element toc {
+    toc.attlist,
+    beginpage?,
+    bookcomponent.title.content?,
+    tocfront*,
+    (tocpart | tocchap)*,
+    tocback*
+  }
+# end of toc.element
+toc.attlist &=
+  pagenum.attrib, common.attrib, toc.role.attrib, local.toc.attrib
+# end of toc.attlist
+
+# end of toc.module
+local.tocfront.attrib = empty
+tocfront.role.attrib = role.attrib
+# doc:An entry in a table of contents for a front matter component.
+tocfront = element tocfront { tocfront.attlist, para.char.mix* }
+# end of tocfront.element
+
+# to element that this entry represents
+tocfront.attlist &=
+  label.attrib,
+  linkend.attrib,
+  pagenum.attrib,
+  common.attrib,
+  tocfront.role.attrib,
+  local.tocfront.attrib
+# end of tocfront.attlist
+
+# end of tocfront.module
+local.tocentry.attrib = empty
+tocentry.role.attrib = role.attrib
+# doc:A component title in a table of contents.
+tocentry = element tocentry { tocentry.attlist, para.char.mix* }
+# end of tocentry.element
+
+# to element that this entry represents
+tocentry.attlist &=
+  linkend.attrib,
+  pagenum.attrib,
+  common.attrib,
+  tocentry.role.attrib,
+  local.tocentry.attrib
+# end of tocentry.attlist
+
+# end of tocentry.module
+local.tocpart.attrib = empty
+tocpart.role.attrib = role.attrib
+# doc:An entry in a table of contents for a part of a book.
+tocpart = element tocpart { tocpart.attlist, tocentry+, tocchap* }
+# end of tocpart.element
+tocpart.attlist &=
+  common.attrib, tocpart.role.attrib, local.tocpart.attrib
+# end of tocpart.attlist
+
+# end of tocpart.module
+local.tocchap.attrib = empty
+tocchap.role.attrib = role.attrib
+# doc:An entry in a table of contents for a component in the body of a document.
+tocchap = element tocchap { tocchap.attlist, tocentry+, toclevel1* }
+# end of tocchap.element
+tocchap.attlist &=
+  label.attrib, common.attrib, tocchap.role.attrib, local.tocchap.attrib
+# end of tocchap.attlist
+
+# end of tocchap.module
+local.toclevel1.attrib = empty
+toclevel1.role.attrib = role.attrib
+# doc:A top-level entry within a table of contents entry for a chapter-like component.
+toclevel1 =
+  element toclevel1 { toclevel1.attlist, tocentry+, toclevel2* }
+# end of toclevel1.element
+toclevel1.attlist &=
+  common.attrib, toclevel1.role.attrib, local.toclevel1.attrib
+# end of toclevel1.attlist
+
+# end of toclevel1.module
+local.toclevel2.attrib = empty
+toclevel2.role.attrib = role.attrib
+# doc:A second-level entry within a table of contents entry for a chapter-like component.
+toclevel2 =
+  element toclevel2 { toclevel2.attlist, tocentry+, toclevel3* }
+# end of toclevel2.element
+toclevel2.attlist &=
+  common.attrib, toclevel2.role.attrib, local.toclevel2.attrib
+# end of toclevel2.attlist
+
+# end of toclevel2.module
+local.toclevel3.attrib = empty
+toclevel3.role.attrib = role.attrib
+# doc:A third-level entry within a table of contents entry for a chapter-like component.
+toclevel3 =
+  element toclevel3 { toclevel3.attlist, tocentry+, toclevel4* }
+# end of toclevel3.element
+toclevel3.attlist &=
+  common.attrib, toclevel3.role.attrib, local.toclevel3.attrib
+# end of toclevel3.attlist
+
+# end of toclevel3.module
+local.toclevel4.attrib = empty
+toclevel4.role.attrib = role.attrib
+# doc:A fourth-level entry within a table of contents entry for a chapter-like component.
+toclevel4 =
+  element toclevel4 { toclevel4.attlist, tocentry+, toclevel5* }
+# end of toclevel4.element
+toclevel4.attlist &=
+  common.attrib, toclevel4.role.attrib, local.toclevel4.attrib
+# end of toclevel4.attlist
+
+# end of toclevel4.module
+local.toclevel5.attrib = empty
+toclevel5.role.attrib = role.attrib
+# doc:A fifth-level entry within a table of contents entry for a chapter-like component.
+toclevel5 = element toclevel5 { toclevel5.attlist, tocentry+ }
+# end of toclevel5.element
+toclevel5.attlist &=
+  common.attrib, toclevel5.role.attrib, local.toclevel5.attrib
+# end of toclevel5.attlist
+
+# end of toclevel5.module
+local.tocback.attrib = empty
+tocback.role.attrib = role.attrib
+# doc:An entry in a table of contents for a back matter component.
+tocback = element tocback { tocback.attlist, para.char.mix* }
+# end of tocback.element
+
+# to element that this entry represents
+tocback.attlist &=
+  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
+local.lot.attrib = empty
+lot.role.attrib = role.attrib
+# doc:A list of the titles of formal objects (as tables or figures) in a document.
+lot =
+  element lot {
+    lot.attlist, beginpage?, bookcomponent.title.content?, lotentry*
+  }
+# end of lot.element
+lot.attlist &=
+  label.attrib, common.attrib, lot.role.attrib, local.lot.attrib
+# end of lot.attlist
+
+# end of lot.module
+local.lotentry.attrib = empty
+lotentry.role.attrib = role.attrib
+# doc:An entry in a list of titles.
+lotentry = element lotentry { lotentry.attlist, 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
+lotentry.attlist &=
+  linkend.attrib,
+  pagenum.attrib,
+  attribute srccredit { text }?,
+  common.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 ...............
+local.appendix.attrib = empty
+appendix.role.attrib = role.attrib
+# doc:An appendix in a Book or Article.
+appendix =
+  element appendix {
+    appendix.attlist,
+    beginpage?,
+    appendixinfo?,
+    bookcomponent.title.content,
+    nav.class*,
+    tocchap?,
+    bookcomponent.content,
+    nav.class*
+  }
+# end of appendix.element
+appendix.attlist &=
+  label.attrib,
+  status.attrib,
+  common.attrib,
+  appendix.role.attrib,
+  local.appendix.attrib
+# end of appendix.attlist
+
+# end of appendix.module
+local.chapter.attrib = empty
+chapter.role.attrib = role.attrib
+# doc:A chapter, as of a book.
+chapter =
+  element chapter {
+    chapter.attlist,
+    beginpage?,
+    chapterinfo?,
+    bookcomponent.title.content,
+    nav.class*,
+    tocchap?,
+    bookcomponent.content,
+    nav.class*
+  }
+# end of chapter.element
+chapter.attlist &=
+  label.attrib,
+  status.attrib,
+  common.attrib,
+  chapter.role.attrib,
+  local.chapter.attrib
+# end of chapter.attlist
+
+# end of chapter.module
+
+# Note that Part was to have its content model reduced in V4.5.  This
+# change will not be made after all.
+local.part.attrib = empty
+part.role.attrib = role.attrib
+# doc:A division in a book.
+part =
+  element part {
+    part.attlist,
+    beginpage?,
+    partinfo?,
+    bookcomponent.title.content,
+    partintro?,
+    partcontent.mix+
+  }
+# end of part.element
+part.attlist &=
+  label.attrib,
+  status.attrib,
+  common.attrib,
+  part.role.attrib,
+  local.part.attrib
+# end of part.attlist
+
+# ELEMENT PartIntro (defined below)
+
+# end of part.module
+local.preface.attrib = empty
+preface.role.attrib = role.attrib
+# doc:Introductory matter preceding the first chapter of a book.
+preface =
+  element preface {
+    preface.attlist,
+    beginpage?,
+    prefaceinfo?,
+    bookcomponent.title.content,
+    nav.class*,
+    tocchap?,
+    bookcomponent.content,
+    nav.class*
+  }
+# end of preface.element
+preface.attlist &=
+  status.attrib,
+  common.attrib,
+  preface.role.attrib,
+  local.preface.attrib
+# end of preface.attlist
+
+# end of preface.module
+local.reference.attrib = empty
+reference.role.attrib = role.attrib
+# doc:A collection of reference entries.
+reference =
+  element reference {
+    reference.attlist,
+    beginpage?,
+    referenceinfo?,
+    bookcomponent.title.content,
+    partintro?,
+    refentry.class+
+  }
+# end of reference.element
+reference.attlist &=
+  label.attrib,
+  status.attrib,
+  common.attrib,
+  reference.role.attrib,
+  local.reference.attrib
+# end of reference.attlist
+
+# ELEMENT PartIntro (defined below)
+
+# end of reference.module
+local.partintro.attrib = empty
+partintro.role.attrib = role.attrib
+# doc:An introduction to the contents of a part.
+partintro =
+  element partintro {
+    partintro.attlist, div.title.content?, bookcomponent.content
+  }
+# end of partintro.element
+partintro.attlist &=
+  label.attrib,
+  common.attrib,
+  partintro.role.attrib,
+  local.partintro.attrib
+# end of partintro.attlist
+
+# end of partintro.module
+
+# ......................................................................
+
+# Other Info elements ..................................................
+local.appendixinfo.attrib = empty
+appendixinfo.role.attrib = role.attrib
+# doc:Meta-information for an Appendix.
+appendixinfo =
+  element appendixinfo { appendixinfo.attlist, info.class+ }
+# end of appendixinfo.element
+appendixinfo.attlist &=
+  common.attrib, appendixinfo.role.attrib, local.appendixinfo.attrib
+# end of appendixinfo.attlist
+
+# end of appendixinfo.module
+local.bibliographyinfo.attrib = empty
+bibliographyinfo.role.attrib = role.attrib
+# doc:Meta-information for a Bibliography.
+bibliographyinfo =
+  element bibliographyinfo { bibliographyinfo.attlist, info.class+ }
+# end of bibliographyinfo.element
+bibliographyinfo.attlist &=
+  common.attrib,
+  bibliographyinfo.role.attrib,
+  local.bibliographyinfo.attrib
+# end of bibliographyinfo.attlist
+
+# end of bibliographyinfo.module
+local.chapterinfo.attrib = empty
+chapterinfo.role.attrib = role.attrib
+# doc:Meta-information for a Chapter.
+chapterinfo = element chapterinfo { chapterinfo.attlist, info.class+ }
+# end of chapterinfo.element
+chapterinfo.attlist &=
+  common.attrib, chapterinfo.role.attrib, local.chapterinfo.attrib
+# end of chapterinfo.attlist
+
+# end of chapterinfo.module
+local.glossaryinfo.attrib = empty
+glossaryinfo.role.attrib = role.attrib
+# doc:Meta-information for a Glossary.
+glossaryinfo =
+  element glossaryinfo { glossaryinfo.attlist, info.class+ }
+# end of glossaryinfo.element
+glossaryinfo.attlist &=
+  common.attrib, glossaryinfo.role.attrib, local.glossaryinfo.attrib
+# end of glossaryinfo.attlist
+
+# end of glossaryinfo.module
+local.indexinfo.attrib = empty
+indexinfo.role.attrib = role.attrib
+# doc:Meta-information for an Index.
+indexinfo = element indexinfo { indexinfo.attlist, info.class+ }
+# end of indexinfo.element
+indexinfo.attlist &=
+  common.attrib, indexinfo.role.attrib, local.indexinfo.attrib
+# end of indexinfo.attlist
+
+# end of indexinfo.module
+local.setindexinfo.attrib = empty
+setindexinfo.role.attrib = role.attrib
+# doc:Meta-information for a SetIndex.
+setindexinfo =
+  element setindexinfo { setindexinfo.attlist, info.class+ }
+# end of setindexinfo.element
+setindexinfo.attlist &=
+  common.attrib, setindexinfo.role.attrib, local.setindexinfo.attrib
+# end of setindexinfo.attlist
+
+# end of setindexinfo.module
+local.partinfo.attrib = empty
+partinfo.role.attrib = role.attrib
+# doc:Meta-information for a Part.
+partinfo = element partinfo { partinfo.attlist, info.class+ }
+# end of partinfo.element
+partinfo.attlist &=
+  common.attrib, partinfo.role.attrib, local.partinfo.attrib
+# end of partinfo.attlist
+
+# end of partinfo.module
+local.prefaceinfo.attrib = empty
+prefaceinfo.role.attrib = role.attrib
+# doc:Meta-information for a Preface.
+prefaceinfo = element prefaceinfo { prefaceinfo.attlist, info.class+ }
+# end of prefaceinfo.element
+prefaceinfo.attlist &=
+  common.attrib, prefaceinfo.role.attrib, local.prefaceinfo.attrib
+# end of prefaceinfo.attlist
+
+# end of prefaceinfo.module
+local.refentryinfo.attrib = empty
+refentryinfo.role.attrib = role.attrib
+# doc:Meta-information for a Refentry.
+refentryinfo =
+  element refentryinfo { refentryinfo.attlist, info.class+ }
+# end of refentryinfo.element
+refentryinfo.attlist &=
+  common.attrib, refentryinfo.role.attrib, local.refentryinfo.attrib
+# end of refentryinfo.attlist
+
+# end of refentryinfo.module
+local.refsectioninfo.attrib = empty
+refsectioninfo.role.attrib = role.attrib
+# doc:Meta-information for a refsection.
+refsectioninfo =
+  element refsectioninfo { refsectioninfo.attlist, info.class+ }
+# end of refsectioninfo.element
+refsectioninfo.attlist &=
+  common.attrib, refsectioninfo.role.attrib, local.refsectioninfo.attrib
+# end of refsectioninfo.attlist
+
+# end of refsectioninfo.module
+local.refsect1info.attrib = empty
+refsect1info.role.attrib = role.attrib
+# doc:Meta-information for a RefSect1.
+refsect1info =
+  element refsect1info { refsect1info.attlist, info.class+ }
+# end of refsect1info.element
+refsect1info.attlist &=
+  common.attrib, refsect1info.role.attrib, local.refsect1info.attrib
+# end of refsect1info.attlist
+
+# end of refsect1info.module
+local.refsect2info.attrib = empty
+refsect2info.role.attrib = role.attrib
+# doc:Meta-information for a RefSect2.
+refsect2info =
+  element refsect2info { refsect2info.attlist, info.class+ }
+# end of refsect2info.element
+refsect2info.attlist &=
+  common.attrib, refsect2info.role.attrib, local.refsect2info.attrib
+# end of refsect2info.attlist
+
+# end of refsect2info.module
+local.refsect3info.attrib = empty
+refsect3info.role.attrib = role.attrib
+# doc:Meta-information for a RefSect3.
+refsect3info =
+  element refsect3info { refsect3info.attlist, info.class+ }
+# end of refsect3info.element
+refsect3info.attlist &=
+  common.attrib, refsect3info.role.attrib, local.refsect3info.attrib
+# end of refsect3info.attlist
+
+# end of refsect3info.module
+local.refsynopsisdivinfo.attrib = empty
+refsynopsisdivinfo.role.attrib = role.attrib
+# doc:Meta-information for a RefSynopsisDiv.
+refsynopsisdivinfo =
+  element refsynopsisdivinfo { refsynopsisdivinfo.attlist, info.class+ }
+# end of refsynopsisdivinfo.element
+refsynopsisdivinfo.attlist &=
+  common.attrib,
+  refsynopsisdivinfo.role.attrib,
+  local.refsynopsisdivinfo.attrib
+# end of refsynopsisdivinfo.attlist
+
+# end of refsynopsisdivinfo.module
+local.referenceinfo.attrib = empty
+referenceinfo.role.attrib = role.attrib
+# doc:Meta-information for a Reference.
+referenceinfo =
+  element referenceinfo { referenceinfo.attlist, info.class+ }
+# end of referenceinfo.element
+referenceinfo.attlist &=
+  common.attrib, referenceinfo.role.attrib, local.referenceinfo.attrib
+# end of referenceinfo.attlist
+
+# end of referenceinfo.module
+local.sect1info.attrib = empty
+sect1info.role.attrib = role.attrib
+# doc:Meta-information for a Sect1.
+sect1info = element sect1info { sect1info.attlist, info.class+ }
+# end of sect1info.element
+sect1info.attlist &=
+  common.attrib, sect1info.role.attrib, local.sect1info.attrib
+# end of sect1info.attlist
+local.sect2info.attrib = empty
+sect2info.role.attrib = role.attrib
+# doc:Meta-information for a Sect2.
+sect2info = element sect2info { sect2info.attlist, info.class+ }
+# end of sect2info.element
+sect2info.attlist &=
+  common.attrib, sect2info.role.attrib, local.sect2info.attrib
+# end of sect2info.attlist
+local.sect3info.attrib = empty
+sect3info.role.attrib = role.attrib
+# doc:Meta-information for a Sect3.
+sect3info = element sect3info { sect3info.attlist, info.class+ }
+# end of sect3info.element
+sect3info.attlist &=
+  common.attrib, sect3info.role.attrib, local.sect3info.attrib
+# end of sect3info.attlist
+local.sect4info.attrib = empty
+sect4info.role.attrib = role.attrib
+# doc:Meta-information for a Sect4.
+sect4info = element sect4info { sect4info.attlist, info.class+ }
+# end of sect4info.element
+sect4info.attlist &=
+  common.attrib, sect4info.role.attrib, local.sect4info.attrib
+# end of sect4info.attlist
+local.sect5info.attrib = empty
+sect5info.role.attrib = role.attrib
+# doc:Meta-information for a Sect5.
+sect5info = element sect5info { sect5info.attlist, info.class+ }
+# end of sect5info.element
+sect5info.attlist &=
+  common.attrib, sect5info.role.attrib, local.sect5info.attrib
+# end of sect5info.attlist
+
+# ......................................................................
+
+# Section (parallel to Sect*) .........................................
+local.section.attrib = empty
+section.role.attrib = role.attrib
+# doc:A recursive section.
+section =
+  element section {
+    section.attlist,
+    sectioninfo?,
+    sect.title.content,
+    nav.class*,
+    ((divcomponent.mix+,
+      (refentry.class* | section.class* | simplesect*))
+     | refentry.class+
+     | section.class+
+     | simplesect+),
+    nav.class*
+  }
+# end of section.element
+section.attlist &=
+  label.attrib,
+  status.attrib,
+  common.attrib,
+  section.role.attrib,
+  local.section.attrib
+# end of section.attlist
+
+# end of section.module
+sectioninfo.role.attrib = role.attrib
+local.sectioninfo.attrib = empty
+# doc:Meta-information for a recursive section.
+sectioninfo = element sectioninfo { sectioninfo.attlist, info.class+ }
+# end of sectioninfo.element
+sectioninfo.attlist &=
+  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 ....................................
+local.sect1.attrib = empty
+sect1.role.attrib = role.attrib
+# doc:A top-level section of document.
+sect1 =
+  element sect1 {
+    sect1.attlist,
+    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
+sect1.attlist &=
+  attribute renderas { "sect2" | "sect3" | "sect4" | "sect5" }?,
+  label.attrib,
+  status.attrib,
+  common.attrib,
+  sect1.role.attrib,
+  local.sect1.attrib
+# end of sect1.attlist
+
+# end of sect1.module
+local.sect2.attrib = empty
+sect2.role.attrib = role.attrib
+# doc:A subsection within a Sect1.
+sect2 =
+  element sect2 {
+    sect2.attlist,
+    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
+sect2.attlist &=
+  attribute renderas { "sect1" | "sect3" | "sect4" | "sect5" }?,
+  label.attrib,
+  status.attrib,
+  common.attrib,
+  sect2.role.attrib,
+  local.sect2.attrib
+# end of sect2.attlist
+
+# end of sect2.module
+local.sect3.attrib = empty
+sect3.role.attrib = role.attrib
+# doc:A subsection within a Sect2.
+sect3 =
+  element sect3 {
+    sect3.attlist,
+    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
+sect3.attlist &=
+  attribute renderas { "sect1" | "sect2" | "sect4" | "sect5" }?,
+  label.attrib,
+  status.attrib,
+  common.attrib,
+  sect3.role.attrib,
+  local.sect3.attrib
+# end of sect3.attlist
+
+# end of sect3.module
+local.sect4.attrib = empty
+sect4.role.attrib = role.attrib
+# doc:A subsection within a Sect3.
+sect4 =
+  element sect4 {
+    sect4.attlist,
+    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
+sect4.attlist &=
+  attribute renderas { "sect1" | "sect2" | "sect3" | "sect5" }?,
+  label.attrib,
+  status.attrib,
+  common.attrib,
+  sect4.role.attrib,
+  local.sect4.attrib
+# end of sect4.attlist
+
+# end of sect4.module
+local.sect5.attrib = empty
+sect5.role.attrib = role.attrib
+# doc:A subsection within a Sect4.
+sect5 =
+  element sect5 {
+    sect5.attlist,
+    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
+sect5.attlist &=
+  attribute renderas { "sect1" | "sect2" | "sect3" | "sect4" }?,
+  label.attrib,
+  status.attrib,
+  common.attrib,
+  sect5.role.attrib,
+  local.sect5.attrib
+# end of sect5.attlist
+
+# end of sect5.module
+local.simplesect.attrib = empty
+simplesect.role.attrib = role.attrib
+# doc:A section of a document with no subdivisions.
+simplesect =
+  element simplesect {
+    simplesect.attlist, sect.title.content, divcomponent.mix+
+  }
+# end of simplesect.element
+simplesect.attlist &=
+  common.attrib, simplesect.role.attrib, local.simplesect.attrib
+# end of simplesect.attlist
+
+# end of simplesect.module
+
+# ......................................................................
+
+# Bibliography .........................................................
+local.bibliography.attrib = empty
+bibliography.role.attrib = role.attrib
+# doc:A bibliography.
+bibliography =
+  element bibliography {
+    bibliography.attlist,
+    bibliographyinfo?,
+    bookcomponent.title.content?,
+    component.mix*,
+    (bibliodiv+ | (biblioentry | bibliomixed)+)
+  }
+# end of bibliography.element
+bibliography.attlist &=
+  status.attrib,
+  common.attrib,
+  bibliography.role.attrib,
+  local.bibliography.attrib
+# end of bibliography.attlist
+
+# end of bibliography.module
+local.bibliodiv.attrib = empty
+bibliodiv.role.attrib = role.attrib
+# doc:A section of a Bibliography.
+bibliodiv =
+  element bibliodiv {
+    bibliodiv.attlist,
+    sect.title.content?,
+    component.mix*,
+    (biblioentry | bibliomixed)+
+  }
+# end of bibliodiv.element
+bibliodiv.attlist &=
+  status.attrib,
+  common.attrib,
+  bibliodiv.role.attrib,
+  local.bibliodiv.attrib
+# end of bibliodiv.attlist
+
+# end of bibliodiv.module
+
+# end of bibliography.content.module
+
+# ......................................................................
+
+# Glossary .............................................................
+local.glossary.attrib = empty
+glossary.role.attrib = role.attrib
+# doc:A glossary.
+glossary =
+  element glossary {
+    glossary.attlist,
+    glossaryinfo?,
+    bookcomponent.title.content?,
+    component.mix*,
+    (glossdiv+ | glossentry+),
+    bibliography?
+  }
+# end of glossary.element
+glossary.attlist &=
+  status.attrib,
+  common.attrib,
+  glossary.role.attrib,
+  local.glossary.attrib
+# end of glossary.attlist
+
+# end of glossary.module
+local.glossdiv.attrib = empty
+glossdiv.role.attrib = role.attrib
+# doc:A division in a Glossary.
+glossdiv =
+  element glossdiv {
+    glossdiv.attlist, sect.title.content, component.mix*, glossentry+
+  }
+# end of glossdiv.element
+glossdiv.attlist &=
+  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 ...................................................
+local.indexes.attrib = empty
+indexes.role.attrib = role.attrib
+# doc:An index.
+index =
+  element index {
+    index.attlist,
+    indexinfo?,
+    bookcomponent.title.content?,
+    component.mix*,
+    (indexdiv* | indexentry*)
+  }
+# end of index.element
+index.attlist &=
+  attribute type { text }?,
+  common.attrib,
+  indexes.role.attrib,
+  local.indexes.attrib
+# end of index.attlist
+
+# doc:An index to a set of books.
+setindex =
+  element setindex {
+    setindex.attlist,
+    setindexinfo?,
+    bookcomponent.title.content?,
+    component.mix*,
+    (indexdiv* | indexentry*)
+  }
+# end of setindex.element
+setindex.attlist &=
+  common.attrib, indexes.role.attrib, local.indexes.attrib
+# end of setindex.attlist
+
+# end of indexes.module
+
+# SegmentedList in this content is useful for marking up permuted
+# indices.
+local.indexdiv.attrib = empty
+indexdiv.role.attrib = role.attrib
+# doc:A division in an index.
+indexdiv =
+  element indexdiv {
+    indexdiv.attlist,
+    sect.title.content?,
+    (indexdivcomponent.mix*, (indexentry+ | segmentedlist))
+  }
+# end of indexdiv.element
+indexdiv.attlist &=
+  common.attrib, indexdiv.role.attrib, local.indexdiv.attrib
+# end of indexdiv.attlist
+
+# end of indexdiv.module
+
+# Index entries appear in the index, not the text.
+local.indexentry.attrib = empty
+indexentry.role.attrib = role.attrib
+# doc:An entry in an index.
+indexentry =
+  element indexentry {
+    indexentry.attlist,
+    primaryie,
+    (seeie | seealsoie)*,
+    (secondaryie, (seeie | seealsoie | tertiaryie)*)*
+  }
+# end of indexentry.element
+indexentry.attlist &=
+  common.attrib, indexentry.role.attrib, local.indexentry.attrib
+# end of indexentry.attlist
+
+# end of indexentry.module
+local.primsecterie.attrib = empty
+primsecterie.role.attrib = role.attrib
+# doc:A primary term in an index entry, not in the text.
+primaryie = element primaryie { primaryie.attlist, ndxterm.char.mix* }
+# end of primaryie.element
+
+# to IndexTerms that these entries represent
+primaryie.attlist &=
+  linkends.attrib,
+  common.attrib,
+  primsecterie.role.attrib,
+  local.primsecterie.attrib
+# end of primaryie.attlist
+
+# doc:A secondary term in an index entry, rather than in the text.
+secondaryie =
+  element secondaryie { secondaryie.attlist, ndxterm.char.mix* }
+# end of secondaryie.element
+
+# to IndexTerms that these entries represent
+secondaryie.attlist &=
+  linkends.attrib,
+  common.attrib,
+  primsecterie.role.attrib,
+  local.primsecterie.attrib
+# end of secondaryie.attlist
+
+# doc:A tertiary term in an index entry, rather than in the text.
+tertiaryie =
+  element tertiaryie { tertiaryie.attlist, ndxterm.char.mix* }
+# end of tertiaryie.element
+
+# to IndexTerms that these entries represent
+tertiaryie.attlist &=
+  linkends.attrib,
+  common.attrib,
+  primsecterie.role.attrib,
+  local.primsecterie.attrib
+# end of tertiaryie.attlist
+
+# end of primsecterie.module
+local.seeie.attrib = empty
+seeie.role.attrib = role.attrib
+# doc:A See entry in an index, rather than in the text.
+seeie = element seeie { seeie.attlist, ndxterm.char.mix* }
+# end of seeie.element
+
+# to IndexEntry to look up
+seeie.attlist &=
+  linkend.attrib, common.attrib, seeie.role.attrib, local.seeie.attrib
+# end of seeie.attlist
+
+# end of seeie.module
+local.seealsoie.attrib = empty
+seealsoie.role.attrib = role.attrib
+# doc:A See also entry in an index, rather than in the text.
+seealsoie = element seealsoie { seealsoie.attlist, ndxterm.char.mix* }
+# end of seealsoie.element
+
+# to related IndexEntries
+seealsoie.attlist &=
+  linkends.attrib,
+  common.attrib,
+  seealsoie.role.attrib,
+  local.seealsoie.attrib
+# end of seealsoie.attlist
+
+# end of seealsoie.module
+
+# end of index.content.module
+
+# ......................................................................
+
+# RefEntry .............................................................
+local.refentry.attrib = empty
+refentry.role.attrib = role.attrib
+# doc:A reference page (originally a UNIX man-style reference page).
+refentry =
+  element refentry {
+    refentry.attlist,
+    beginpage?,
+    ndxterm.class*,
+    refentryinfo?,
+    refmeta?,
+    (remark | link.char.class)*,
+    refnamediv+,
+    refsynopsisdiv?,
+    (refsect1+ | refsection+)
+  }
+# end of refentry.element
+refentry.attlist &=
+  status.attrib,
+  common.attrib,
+  refentry.role.attrib,
+  local.refentry.attrib
+# end of refentry.attlist
+
+# end of refentry.module
+local.refmeta.attrib = empty
+refmeta.role.attrib = role.attrib
+# doc:Meta-information for a reference entry.
+refmeta =
+  element refmeta {
+    refmeta.attlist,
+    ndxterm.class*,
+    refentrytitle,
+    manvolnum?,
+    refmiscinfo*,
+    ndxterm.class*
+  }
+# end of refmeta.element
+refmeta.attlist &=
+  common.attrib, refmeta.role.attrib, local.refmeta.attrib
+# end of refmeta.attlist
+
+# end of refmeta.module
+local.refmiscinfo.attrib = empty
+refmiscinfo.role.attrib = role.attrib
+# doc:Meta-information for a reference entry other than the title and volume number.
+refmiscinfo =
+  element refmiscinfo { refmiscinfo.attlist, docinfo.char.mix* }
+# end of refmiscinfo.element
+
+# Class: Freely assignable parameter; no default
+refmiscinfo.attlist &=
+  attribute class { text }?,
+  common.attrib,
+  refmiscinfo.role.attrib,
+  local.refmiscinfo.attrib
+# end of refmiscinfo.attlist
+
+# end of refmiscinfo.module
+local.refnamediv.attrib = empty
+refnamediv.role.attrib = role.attrib
+# doc:The name, purpose, and classification of a reference page.
+refnamediv =
+  element refnamediv {
+    refnamediv.attlist,
+    refdescriptor?,
+    refname+,
+    refpurpose,
+    refclass*,
+    (remark | link.char.class)*
+  }
+# end of refnamediv.element
+refnamediv.attlist &=
+  common.attrib, refnamediv.role.attrib, local.refnamediv.attrib
+# end of refnamediv.attlist
+
+# end of refnamediv.module
+local.refdescriptor.attrib = empty
+refdescriptor.role.attrib = role.attrib
+# doc:A description of the topic of a reference page.
+refdescriptor =
+  element refdescriptor { refdescriptor.attlist, refname.char.mix* }
+# end of refdescriptor.element
+refdescriptor.attlist &=
+  common.attrib, refdescriptor.role.attrib, local.refdescriptor.attrib
+# end of refdescriptor.attlist
+
+# end of refdescriptor.module
+local.refname.attrib = empty
+refname.role.attrib = role.attrib
+# doc:The name of (one of) the subject(s) of a reference page.
+refname = element refname { refname.attlist, refname.char.mix* }
+# end of refname.element
+refname.attlist &=
+  common.attrib, refname.role.attrib, local.refname.attrib
+# end of refname.attlist
+
+# end of refname.module
+local.refpurpose.attrib = empty
+refpurpose.role.attrib = role.attrib
+# doc:A short (one sentence) synopsis of the topic of a reference page.
+refpurpose =
+  element refpurpose { refpurpose.attlist, refinline.char.mix* }
+# end of refpurpose.element
+refpurpose.attlist &=
+  common.attrib, refpurpose.role.attrib, local.refpurpose.attrib
+# end of refpurpose.attlist
+
+# end of refpurpose.module
+local.refclass.attrib = empty
+refclass.role.attrib = role.attrib
+# doc:The scope or other indication of applicability of a reference entry.
+refclass = element refclass { refclass.attlist, refclass.char.mix* }
+# end of refclass.element
+refclass.attlist &=
+  common.attrib, refclass.role.attrib, local.refclass.attrib
+# end of refclass.attlist
+
+# end of refclass.module
+local.refsynopsisdiv.attrib = empty
+refsynopsisdiv.role.attrib = role.attrib
+# doc:A syntactic synopsis of the subject of the reference page.
+refsynopsisdiv =
+  element refsynopsisdiv {
+    refsynopsisdiv.attlist,
+    refsynopsisdivinfo?,
+    refsect.title.content?,
+    ((refcomponent.mix+, refsect2*) | refsect2+)
+  }
+# end of refsynopsisdiv.element
+refsynopsisdiv.attlist &=
+  common.attrib, refsynopsisdiv.role.attrib, local.refsynopsisdiv.attrib
+# end of refsynopsisdiv.attlist
+
+# end of refsynopsisdiv.module
+local.refsection.attrib = empty
+refsection.role.attrib = role.attrib
+# doc:A recursive section in a refentry.
+refsection =
+  element refsection {
+    refsection.attlist,
+    refsectioninfo?,
+    refsect.title.content,
+    ((refcomponent.mix+, refsection*) | refsection+)
+  }
+# end of refsection.element
+refsection.attlist &=
+  status.attrib,
+  common.attrib,
+  refsection.role.attrib,
+  local.refsection.attrib
+# end of refsection.attlist
+
+# end of refsection.module
+local.refsect1.attrib = empty
+refsect1.role.attrib = role.attrib
+# doc:A major subsection of a reference entry.
+refsect1 =
+  element refsect1 {
+    refsect1.attlist,
+    refsect1info?,
+    refsect.title.content,
+    ((refcomponent.mix+, refsect2*) | refsect2+)
+  }
+# end of refsect1.element
+refsect1.attlist &=
+  status.attrib,
+  common.attrib,
+  refsect1.role.attrib,
+  local.refsect1.attrib
+# end of refsect1.attlist
+
+# end of refsect1.module
+local.refsect2.attrib = empty
+refsect2.role.attrib = role.attrib
+# doc:A subsection of a RefSect1.
+refsect2 =
+  element refsect2 {
+    refsect2.attlist,
+    refsect2info?,
+    refsect.title.content,
+    ((refcomponent.mix+, refsect3*) | refsect3+)
+  }
+# end of refsect2.element
+refsect2.attlist &=
+  status.attrib,
+  common.attrib,
+  refsect2.role.attrib,
+  local.refsect2.attrib
+# end of refsect2.attlist
+
+# end of refsect2.module
+local.refsect3.attrib = empty
+refsect3.role.attrib = role.attrib
+# doc:A subsection of a RefSect2.
+refsect3 =
+  element refsect3 {
+    refsect3.attlist,
+    refsect3info?,
+    refsect.title.content,
+    refcomponent.mix+
+  }
+# end of refsect3.element
+refsect3.attlist &=
+  status.attrib,
+  common.attrib,
+  refsect3.role.attrib,
+  local.refsect3.attrib
+# end of refsect3.attlist
+
+# end of refsect3.module
+
+# end of refentry.content.module
+
+# ......................................................................
+
+# Article ..............................................................
+
+# An Article is a chapter-level, stand-alone document that is often,
+# but need not be, collected into a Book.
+local.article.attrib = empty
+article.role.attrib = role.attrib
+# doc:An article.
+article =
+  element article {
+    article.attlist,
+    div.title.content?,
+    articleinfo?,
+    tocchap?,
+    lot*,
+    bookcomponent.content,
+    (nav.class | appendix.class | colophon | 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
+article.attlist &=
+  attribute class {
+    "journalarticle"
+    | "productsheet"
+    | "whitepaper"
+    | "techreport"
+    | "specification"
+    | "faq"
+  }?,
+  attribute parentbook { xsd:IDREF }?,
+  status.attrib,
+  common.attrib,
+  article.role.attrib,
+  local.article.attrib
+# end of article.attlist
+
+# end of article.module
+
+# End of DocBook document hierarchy module V4.5 ........................
+
+# ......................................................................

Added: trunk/clfs/schema/docbook/4.5/rng/dbhierx.rng
===================================================================
--- trunk/clfs/schema/docbook/4.5/rng/dbhierx.rng	                        (rev 0)
+++ trunk/clfs/schema/docbook/4.5/rng/dbhierx.rng	2011-04-17 21:49:19 UTC (rev 1294)
@@ -0,0 +1,2978 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ...................................................................... -->
+<!-- DocBook document hierarchy module V4.5 ............................... -->
+<!-- File dbhierx.mod ..................................................... -->
+<!--
+  Copyright 1992-2004 HaL Computer Systems, Inc.,
+  O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+  Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+  Organization for the Advancement of Structured Information
+  Standards (OASIS).
+  
+  $Id: dbhierx.mod 6340 2006-10-03 13:23:24Z nwalsh $
+  
+  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.
+  
+  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 at 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 Document Hierarchy V4.5//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 ....................................... -->
+<!-- ...................................................................... -->
+<!-- Entities for element classes ......................................... -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="local.appendix.class">
+    <notAllowed/>
+  </define>
+  <define name="appendix.class">
+    <choice>
+      <ref name="appendix"/>
+      <ref name="local.appendix.class"/>
+    </choice>
+  </define>
+  <define name="local.article.class">
+    <notAllowed/>
+  </define>
+  <define name="article.class">
+    <choice>
+      <ref name="article"/>
+      <ref name="local.article.class"/>
+    </choice>
+  </define>
+  <define name="local.book.class">
+    <notAllowed/>
+  </define>
+  <define name="book.class">
+    <choice>
+      <ref name="book"/>
+      <ref name="local.book.class"/>
+    </choice>
+  </define>
+  <define name="local.chapter.class">
+    <notAllowed/>
+  </define>
+  <define name="chapter.class">
+    <choice>
+      <ref name="chapter"/>
+      <ref name="local.chapter.class"/>
+    </choice>
+  </define>
+  <define name="local.index.class">
+    <notAllowed/>
+  </define>
+  <define name="index.class">
+    <choice>
+      <ref name="index"/>
+      <ref name="setindex"/>
+      <ref name="local.index.class"/>
+    </choice>
+  </define>
+  <define name="local.refentry.class">
+    <notAllowed/>
+  </define>
+  <define name="refentry.class">
+    <choice>
+      <ref name="refentry"/>
+      <ref name="local.refentry.class"/>
+    </choice>
+  </define>
+  <define name="local.section.class">
+    <notAllowed/>
+  </define>
+  <define name="section.class">
+    <choice>
+      <ref name="section"/>
+      <ref name="local.section.class"/>
+    </choice>
+  </define>
+  <define name="local.nav.class">
+    <notAllowed/>
+  </define>
+  <define name="nav.class">
+    <choice>
+      <ref name="toc"/>
+      <ref name="lot"/>
+      <ref name="index"/>
+      <ref name="glossary"/>
+      <ref name="bibliography"/>
+      <ref name="local.nav.class"/>
+    </choice>
+  </define>
+  <!-- Redeclaration placeholder ............................................ -->
+  <!--
+    For redeclaring entities that are declared after this point while
+    retaining their references to the entities that are declared before
+    this point
+  -->
+  <!-- ...................................................................... -->
+  <!-- Entities for element mixtures ........................................ -->
+  <define name="local.divcomponent.mix">
+    <notAllowed/>
+  </define>
+  <define name="divcomponent.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="admon.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="synop.class"/>
+      <ref name="para.class"/>
+      <ref name="informal.class"/>
+      <ref name="formal.class"/>
+      <ref name="compound.class"/>
+      <ref name="genobj.class"/>
+      <ref name="descobj.class"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="forms.hook"/>
+      <ref name="local.divcomponent.mix"/>
+    </choice>
+  </define>
+  <define name="local.refcomponent.mix">
+    <notAllowed/>
+  </define>
+  <define name="refcomponent.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="admon.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="synop.class"/>
+      <ref name="para.class"/>
+      <ref name="informal.class"/>
+      <ref name="formal.class"/>
+      <ref name="compound.class"/>
+      <ref name="genobj.class"/>
+      <ref name="descobj.class"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="forms.hook"/>
+      <ref name="local.refcomponent.mix"/>
+    </choice>
+  </define>
+  <define name="local.indexdivcomponent.mix">
+    <notAllowed/>
+  </define>
+  <define name="indexdivcomponent.mix">
+    <choice>
+      <ref name="itemizedlist"/>
+      <ref name="orderedlist"/>
+      <ref name="variablelist"/>
+      <ref name="simplelist"/>
+      <ref name="linespecific.class"/>
+      <ref name="synop.class"/>
+      <ref name="para.class"/>
+      <ref name="informal.class"/>
+      <ref name="anchor"/>
+      <ref name="remark"/>
+      <ref name="link.char.class"/>
+      <ref name="beginpage"/>
+      <ref name="local.indexdivcomponent.mix"/>
+    </choice>
+  </define>
+  <define name="local.refname.char.mix">
+    <notAllowed/>
+  </define>
+  <define name="refname.char.mix">
+    <choice>
+      <text/>
+      <ref name="tech.char.class"/>
+      <ref name="local.refname.char.mix"/>
+    </choice>
+  </define>
+  <define name="local.partcontent.mix">
+    <notAllowed/>
+  </define>
+  <define name="partcontent.mix">
+    <choice>
+      <ref name="appendix.class"/>
+      <ref name="chapter.class"/>
+      <ref name="nav.class"/>
+      <ref name="article.class"/>
+      <ref name="preface"/>
+      <ref name="refentry.class"/>
+      <ref name="reference"/>
+      <ref name="local.partcontent.mix"/>
+    </choice>
+  </define>
+  <define name="local.refinline.char.mix">
+    <notAllowed/>
+  </define>
+  <define name="refinline.char.mix">
+    <choice>
+      <text/>
+      <ref name="xref.char.class"/>
+      <ref name="gen.char.class"/>
+      <ref name="link.char.class"/>
+      <ref name="tech.char.class"/>
+      <ref name="base.char.class"/>
+      <ref name="docinfo.char.class"/>
+      <ref name="other.char.class"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="local.refinline.char.mix"/>
+    </choice>
+  </define>
+  <define name="local.refclass.char.mix">
+    <notAllowed/>
+  </define>
+  <define name="refclass.char.mix">
+    <choice>
+      <text/>
+      <ref name="application"/>
+      <ref name="local.refclass.char.mix"/>
+    </choice>
+  </define>
+  <!-- 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
+  -->
+  <!-- ...................................................................... -->
+  <!-- Entities for content models .......................................... -->
+  <define name="div.title.content">
+    <ref name="title"/>
+    <optional>
+      <ref name="subtitle"/>
+    </optional>
+    <optional>
+      <ref name="titleabbrev"/>
+    </optional>
+  </define>
+  <define name="bookcomponent.title.content">
+    <ref name="title"/>
+    <optional>
+      <ref name="subtitle"/>
+    </optional>
+    <optional>
+      <ref name="titleabbrev"/>
+    </optional>
+  </define>
+  <define name="sect.title.content">
+    <ref name="title"/>
+    <optional>
+      <ref name="subtitle"/>
+    </optional>
+    <optional>
+      <ref name="titleabbrev"/>
+    </optional>
+  </define>
+  <define name="refsect.title.content">
+    <ref name="title"/>
+    <optional>
+      <ref name="subtitle"/>
+    </optional>
+    <optional>
+      <ref name="titleabbrev"/>
+    </optional>
+  </define>
+  <define name="bookcomponent.content">
+    <choice>
+      <group>
+        <oneOrMore>
+          <ref name="divcomponent.mix"/>
+        </oneOrMore>
+        <choice>
+          <zeroOrMore>
+            <ref name="sect1"/>
+          </zeroOrMore>
+          <zeroOrMore>
+            <ref name="refentry.class"/>
+          </zeroOrMore>
+          <zeroOrMore>
+            <ref name="simplesect"/>
+          </zeroOrMore>
+          <zeroOrMore>
+            <ref name="section.class"/>
+          </zeroOrMore>
+        </choice>
+      </group>
+      <choice>
+        <oneOrMore>
+          <ref name="sect1"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="refentry.class"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="simplesect"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="section.class"/>
+        </oneOrMore>
+      </choice>
+    </choice>
+  </define>
+  <!-- ...................................................................... -->
+  <!-- Set and SetInfo ...................................................... -->
+  <define name="local.set.attrib">
+    <empty/>
+  </define>
+  <define name="set.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A collection of books. -->
+  <define name="set">
+    <element name="set">
+      <ref name="set.attlist"/>
+      <optional>
+        <ref name="div.title.content"/>
+      </optional>
+      <optional>
+        <ref name="setinfo"/>
+      </optional>
+      <optional>
+        <ref name="toc"/>
+      </optional>
+      <oneOrMore>
+        <choice>
+          <ref name="set"/>
+          <ref name="book.class"/>
+        </choice>
+      </oneOrMore>
+      <optional>
+        <ref name="setindex"/>
+      </optional>
+    </element>
+  </define>
+  <!-- end of set.element -->
+  <!-- FPI: SGML formal public identifier -->
+  <define name="set.attlist" combine="interleave">
+    <optional>
+      <attribute name="fpi"/>
+    </optional>
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="set.role.attrib"/>
+    <ref name="local.set.attrib"/>
+  </define>
+  <!-- end of set.attlist -->
+  <!-- end of set.module -->
+  <define name="local.setinfo.attrib">
+    <empty/>
+  </define>
+  <define name="setinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Set. -->
+  <define name="setinfo">
+    <element name="setinfo">
+      <ref name="setinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of setinfo.element -->
+  <!--
+    Contents: IDs of the ToC, Books, and SetIndex that comprise
+    the set, in the order of their appearance
+  -->
+  <define name="setinfo.attlist" combine="interleave">
+    <optional>
+      <attribute name="contents">
+        <data type="IDREFS"/>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="setinfo.role.attrib"/>
+    <ref name="local.setinfo.attrib"/>
+  </define>
+  <!-- end of setinfo.attlist -->
+  <!-- end of setinfo.module -->
+  <!-- end of set.content.module -->
+  <!-- ...................................................................... -->
+  <!-- Book and BookInfo .................................................... -->
+  <define name="local.book.attrib">
+    <empty/>
+  </define>
+  <define name="book.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A book. -->
+  <define name="book">
+    <element name="book">
+      <ref name="book.attlist"/>
+      <optional>
+        <ref name="div.title.content"/>
+      </optional>
+      <optional>
+        <ref name="bookinfo"/>
+      </optional>
+      <zeroOrMore>
+        <choice>
+          <ref name="dedication"/>
+          <ref name="toc"/>
+          <ref name="lot"/>
+          <ref name="glossary"/>
+          <ref name="bibliography"/>
+          <ref name="preface"/>
+          <ref name="chapter.class"/>
+          <ref name="reference"/>
+          <ref name="part"/>
+          <ref name="article.class"/>
+          <ref name="appendix.class"/>
+          <ref name="index.class"/>
+          <ref name="colophon"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of book.element -->
+  <!-- FPI: SGML formal public identifier -->
+  <define name="book.attlist" combine="interleave">
+    <optional>
+      <attribute name="fpi"/>
+    </optional>
+    <ref name="label.attrib"/>
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="book.role.attrib"/>
+    <ref name="local.book.attrib"/>
+  </define>
+  <!-- end of book.attlist -->
+  <!-- end of book.module -->
+  <define name="local.bookinfo.attrib">
+    <empty/>
+  </define>
+  <define name="bookinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Book. -->
+  <define name="bookinfo">
+    <element name="bookinfo">
+      <ref name="bookinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- 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
+  -->
+  <define name="bookinfo.attlist" combine="interleave">
+    <optional>
+      <attribute name="contents">
+        <data type="IDREFS"/>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="bookinfo.role.attrib"/>
+    <ref name="local.bookinfo.attrib"/>
+  </define>
+  <!-- end of bookinfo.attlist -->
+  <!-- end of bookinfo.module -->
+  <!-- end of book.content.module -->
+  <!-- ...................................................................... -->
+  <!-- Dedication, ToC, and LoT ............................................. -->
+  <define name="local.dedication.attrib">
+    <empty/>
+  </define>
+  <define name="dedication.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for the dedication section of a book. -->
+  <define name="dedication">
+    <element name="dedication">
+      <ref name="dedication.attlist"/>
+      <optional>
+        <ref name="sect.title.content"/>
+      </optional>
+      <oneOrMore>
+        <ref name="legalnotice.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of dedication.element -->
+  <define name="dedication.attlist" combine="interleave">
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="dedication.role.attrib"/>
+    <ref name="local.dedication.attrib"/>
+  </define>
+  <!-- end of dedication.attlist -->
+  <!-- end of dedication.module -->
+  <define name="local.colophon.attrib">
+    <empty/>
+  </define>
+  <define name="colophon.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Text at the back of a book describing facts about its production. -->
+  <define name="colophon">
+    <element name="colophon">
+      <ref name="colophon.attlist"/>
+      <optional>
+        <ref name="sect.title.content"/>
+      </optional>
+      <oneOrMore>
+        <ref name="textobject.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of colophon.element -->
+  <define name="colophon.attlist" combine="interleave">
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="colophon.role.attrib"/>
+    <ref name="local.colophon.attrib"/>
+  </define>
+  <!-- end of colophon.attlist -->
+  <!-- end of colophon.module -->
+  <define name="local.toc.attrib">
+    <empty/>
+  </define>
+  <define name="toc.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A table of contents. -->
+  <define name="toc">
+    <element name="toc">
+      <ref name="toc.attlist"/>
+      <optional>
+        <ref name="beginpage"/>
+      </optional>
+      <optional>
+        <ref name="bookcomponent.title.content"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="tocfront"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <choice>
+          <ref name="tocpart"/>
+          <ref name="tocchap"/>
+        </choice>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="tocback"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of toc.element -->
+  <define name="toc.attlist" combine="interleave">
+    <ref name="pagenum.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="toc.role.attrib"/>
+    <ref name="local.toc.attrib"/>
+  </define>
+  <!-- end of toc.attlist -->
+  <!-- end of toc.module -->
+  <define name="local.tocfront.attrib">
+    <empty/>
+  </define>
+  <define name="tocfront.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An entry in a table of contents for a front matter component. -->
+  <define name="tocfront">
+    <element name="tocfront">
+      <ref name="tocfront.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of tocfront.element -->
+  <!-- to element that this entry represents -->
+  <define name="tocfront.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="linkend.attrib"/>
+    <ref name="pagenum.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="tocfront.role.attrib"/>
+    <ref name="local.tocfront.attrib"/>
+  </define>
+  <!-- end of tocfront.attlist -->
+  <!-- end of tocfront.module -->
+  <define name="local.tocentry.attrib">
+    <empty/>
+  </define>
+  <define name="tocentry.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A component title in a table of contents. -->
+  <define name="tocentry">
+    <element name="tocentry">
+      <ref name="tocentry.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of tocentry.element -->
+  <!-- to element that this entry represents -->
+  <define name="tocentry.attlist" combine="interleave">
+    <ref name="linkend.attrib"/>
+    <ref name="pagenum.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="tocentry.role.attrib"/>
+    <ref name="local.tocentry.attrib"/>
+  </define>
+  <!-- end of tocentry.attlist -->
+  <!-- end of tocentry.module -->
+  <define name="local.tocpart.attrib">
+    <empty/>
+  </define>
+  <define name="tocpart.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An entry in a table of contents for a part of a book. -->
+  <define name="tocpart">
+    <element name="tocpart">
+      <ref name="tocpart.attlist"/>
+      <oneOrMore>
+        <ref name="tocentry"/>
+      </oneOrMore>
+      <zeroOrMore>
+        <ref name="tocchap"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of tocpart.element -->
+  <define name="tocpart.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="tocpart.role.attrib"/>
+    <ref name="local.tocpart.attrib"/>
+  </define>
+  <!-- end of tocpart.attlist -->
+  <!-- end of tocpart.module -->
+  <define name="local.tocchap.attrib">
+    <empty/>
+  </define>
+  <define name="tocchap.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An entry in a table of contents for a component in the body of a document. -->
+  <define name="tocchap">
+    <element name="tocchap">
+      <ref name="tocchap.attlist"/>
+      <oneOrMore>
+        <ref name="tocentry"/>
+      </oneOrMore>
+      <zeroOrMore>
+        <ref name="toclevel1"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of tocchap.element -->
+  <define name="tocchap.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="tocchap.role.attrib"/>
+    <ref name="local.tocchap.attrib"/>
+  </define>
+  <!-- end of tocchap.attlist -->
+  <!-- end of tocchap.module -->
+  <define name="local.toclevel1.attrib">
+    <empty/>
+  </define>
+  <define name="toclevel1.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A top-level entry within a table of contents entry for a chapter-like component. -->
+  <define name="toclevel1">
+    <element name="toclevel1">
+      <ref name="toclevel1.attlist"/>
+      <oneOrMore>
+        <ref name="tocentry"/>
+      </oneOrMore>
+      <zeroOrMore>
+        <ref name="toclevel2"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of toclevel1.element -->
+  <define name="toclevel1.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="toclevel1.role.attrib"/>
+    <ref name="local.toclevel1.attrib"/>
+  </define>
+  <!-- end of toclevel1.attlist -->
+  <!-- end of toclevel1.module -->
+  <define name="local.toclevel2.attrib">
+    <empty/>
+  </define>
+  <define name="toclevel2.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A second-level entry within a table of contents entry for a chapter-like component. -->
+  <define name="toclevel2">
+    <element name="toclevel2">
+      <ref name="toclevel2.attlist"/>
+      <oneOrMore>
+        <ref name="tocentry"/>
+      </oneOrMore>
+      <zeroOrMore>
+        <ref name="toclevel3"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of toclevel2.element -->
+  <define name="toclevel2.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="toclevel2.role.attrib"/>
+    <ref name="local.toclevel2.attrib"/>
+  </define>
+  <!-- end of toclevel2.attlist -->
+  <!-- end of toclevel2.module -->
+  <define name="local.toclevel3.attrib">
+    <empty/>
+  </define>
+  <define name="toclevel3.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A third-level entry within a table of contents entry for a chapter-like component. -->
+  <define name="toclevel3">
+    <element name="toclevel3">
+      <ref name="toclevel3.attlist"/>
+      <oneOrMore>
+        <ref name="tocentry"/>
+      </oneOrMore>
+      <zeroOrMore>
+        <ref name="toclevel4"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of toclevel3.element -->
+  <define name="toclevel3.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="toclevel3.role.attrib"/>
+    <ref name="local.toclevel3.attrib"/>
+  </define>
+  <!-- end of toclevel3.attlist -->
+  <!-- end of toclevel3.module -->
+  <define name="local.toclevel4.attrib">
+    <empty/>
+  </define>
+  <define name="toclevel4.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A fourth-level entry within a table of contents entry for a chapter-like component. -->
+  <define name="toclevel4">
+    <element name="toclevel4">
+      <ref name="toclevel4.attlist"/>
+      <oneOrMore>
+        <ref name="tocentry"/>
+      </oneOrMore>
+      <zeroOrMore>
+        <ref name="toclevel5"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of toclevel4.element -->
+  <define name="toclevel4.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="toclevel4.role.attrib"/>
+    <ref name="local.toclevel4.attrib"/>
+  </define>
+  <!-- end of toclevel4.attlist -->
+  <!-- end of toclevel4.module -->
+  <define name="local.toclevel5.attrib">
+    <empty/>
+  </define>
+  <define name="toclevel5.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A fifth-level entry within a table of contents entry for a chapter-like component. -->
+  <define name="toclevel5">
+    <element name="toclevel5">
+      <ref name="toclevel5.attlist"/>
+      <oneOrMore>
+        <ref name="tocentry"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of toclevel5.element -->
+  <define name="toclevel5.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="toclevel5.role.attrib"/>
+    <ref name="local.toclevel5.attrib"/>
+  </define>
+  <!-- end of toclevel5.attlist -->
+  <!-- end of toclevel5.module -->
+  <define name="local.tocback.attrib">
+    <empty/>
+  </define>
+  <define name="tocback.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An entry in a table of contents for a back matter component. -->
+  <define name="tocback">
+    <element name="tocback">
+      <ref name="tocback.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of tocback.element -->
+  <!-- to element that this entry represents -->
+  <define name="tocback.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="linkend.attrib"/>
+    <ref name="pagenum.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="tocback.role.attrib"/>
+    <ref name="local.tocback.attrib"/>
+  </define>
+  <!-- end of tocback.attlist -->
+  <!-- end of tocback.module -->
+  <!-- end of toc.content.module -->
+  <define name="local.lot.attrib">
+    <empty/>
+  </define>
+  <define name="lot.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A list of the titles of formal objects (as tables or figures) in a document. -->
+  <define name="lot">
+    <element name="lot">
+      <ref name="lot.attlist"/>
+      <optional>
+        <ref name="beginpage"/>
+      </optional>
+      <optional>
+        <ref name="bookcomponent.title.content"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="lotentry"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of lot.element -->
+  <define name="lot.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="lot.role.attrib"/>
+    <ref name="local.lot.attrib"/>
+  </define>
+  <!-- end of lot.attlist -->
+  <!-- end of lot.module -->
+  <define name="local.lotentry.attrib">
+    <empty/>
+  </define>
+  <define name="lotentry.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An entry in a list of titles. -->
+  <define name="lotentry">
+    <element name="lotentry">
+      <ref name="lotentry.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- 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 -->
+  <define name="lotentry.attlist" combine="interleave">
+    <ref name="linkend.attrib"/>
+    <ref name="pagenum.attrib"/>
+    <optional>
+      <attribute name="srccredit"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="lotentry.role.attrib"/>
+    <ref name="local.lotentry.attrib"/>
+  </define>
+  <!-- end of lotentry.attlist -->
+  <!-- end of lotentry.module -->
+  <!-- end of lot.content.module -->
+  <!-- ...................................................................... -->
+  <!-- Appendix, Chapter, Part, Preface, Reference, PartIntro ............... -->
+  <define name="local.appendix.attrib">
+    <empty/>
+  </define>
+  <define name="appendix.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An appendix in a Book or Article. -->
+  <define name="appendix">
+    <element name="appendix">
+      <ref name="appendix.attlist"/>
+      <optional>
+        <ref name="beginpage"/>
+      </optional>
+      <optional>
+        <ref name="appendixinfo"/>
+      </optional>
+      <ref name="bookcomponent.title.content"/>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="tocchap"/>
+      </optional>
+      <ref name="bookcomponent.content"/>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of appendix.element -->
+  <define name="appendix.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="appendix.role.attrib"/>
+    <ref name="local.appendix.attrib"/>
+  </define>
+  <!-- end of appendix.attlist -->
+  <!-- end of appendix.module -->
+  <define name="local.chapter.attrib">
+    <empty/>
+  </define>
+  <define name="chapter.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A chapter, as of a book. -->
+  <define name="chapter">
+    <element name="chapter">
+      <ref name="chapter.attlist"/>
+      <optional>
+        <ref name="beginpage"/>
+      </optional>
+      <optional>
+        <ref name="chapterinfo"/>
+      </optional>
+      <ref name="bookcomponent.title.content"/>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="tocchap"/>
+      </optional>
+      <ref name="bookcomponent.content"/>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of chapter.element -->
+  <define name="chapter.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="chapter.role.attrib"/>
+    <ref name="local.chapter.attrib"/>
+  </define>
+  <!-- end of chapter.attlist -->
+  <!-- end of chapter.module -->
+  <!--
+    Note that Part was to have its content model reduced in V4.5.  This
+    change will not be made after all.
+  -->
+  <define name="local.part.attrib">
+    <empty/>
+  </define>
+  <define name="part.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A division in a book. -->
+  <define name="part">
+    <element name="part">
+      <ref name="part.attlist"/>
+      <optional>
+        <ref name="beginpage"/>
+      </optional>
+      <optional>
+        <ref name="partinfo"/>
+      </optional>
+      <ref name="bookcomponent.title.content"/>
+      <optional>
+        <ref name="partintro"/>
+      </optional>
+      <oneOrMore>
+        <ref name="partcontent.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of part.element -->
+  <define name="part.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="part.role.attrib"/>
+    <ref name="local.part.attrib"/>
+  </define>
+  <!-- end of part.attlist -->
+  <!-- ELEMENT PartIntro (defined below) -->
+  <!-- end of part.module -->
+  <define name="local.preface.attrib">
+    <empty/>
+  </define>
+  <define name="preface.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Introductory matter preceding the first chapter of a book. -->
+  <define name="preface">
+    <element name="preface">
+      <ref name="preface.attlist"/>
+      <optional>
+        <ref name="beginpage"/>
+      </optional>
+      <optional>
+        <ref name="prefaceinfo"/>
+      </optional>
+      <ref name="bookcomponent.title.content"/>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="tocchap"/>
+      </optional>
+      <ref name="bookcomponent.content"/>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of preface.element -->
+  <define name="preface.attlist" combine="interleave">
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="preface.role.attrib"/>
+    <ref name="local.preface.attrib"/>
+  </define>
+  <!-- end of preface.attlist -->
+  <!-- end of preface.module -->
+  <define name="local.reference.attrib">
+    <empty/>
+  </define>
+  <define name="reference.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A collection of reference entries. -->
+  <define name="reference">
+    <element name="reference">
+      <ref name="reference.attlist"/>
+      <optional>
+        <ref name="beginpage"/>
+      </optional>
+      <optional>
+        <ref name="referenceinfo"/>
+      </optional>
+      <ref name="bookcomponent.title.content"/>
+      <optional>
+        <ref name="partintro"/>
+      </optional>
+      <oneOrMore>
+        <ref name="refentry.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of reference.element -->
+  <define name="reference.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="reference.role.attrib"/>
+    <ref name="local.reference.attrib"/>
+  </define>
+  <!-- end of reference.attlist -->
+  <!-- ELEMENT PartIntro (defined below) -->
+  <!-- end of reference.module -->
+  <define name="local.partintro.attrib">
+    <empty/>
+  </define>
+  <define name="partintro.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An introduction to the contents of a part. -->
+  <define name="partintro">
+    <element name="partintro">
+      <ref name="partintro.attlist"/>
+      <optional>
+        <ref name="div.title.content"/>
+      </optional>
+      <ref name="bookcomponent.content"/>
+    </element>
+  </define>
+  <!-- end of partintro.element -->
+  <define name="partintro.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="partintro.role.attrib"/>
+    <ref name="local.partintro.attrib"/>
+  </define>
+  <!-- end of partintro.attlist -->
+  <!-- end of partintro.module -->
+  <!-- ...................................................................... -->
+  <!-- Other Info elements .................................................. -->
+  <define name="local.appendixinfo.attrib">
+    <empty/>
+  </define>
+  <define name="appendixinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for an Appendix. -->
+  <define name="appendixinfo">
+    <element name="appendixinfo">
+      <ref name="appendixinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of appendixinfo.element -->
+  <define name="appendixinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="appendixinfo.role.attrib"/>
+    <ref name="local.appendixinfo.attrib"/>
+  </define>
+  <!-- end of appendixinfo.attlist -->
+  <!-- end of appendixinfo.module -->
+  <define name="local.bibliographyinfo.attrib">
+    <empty/>
+  </define>
+  <define name="bibliographyinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Bibliography. -->
+  <define name="bibliographyinfo">
+    <element name="bibliographyinfo">
+      <ref name="bibliographyinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of bibliographyinfo.element -->
+  <define name="bibliographyinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="bibliographyinfo.role.attrib"/>
+    <ref name="local.bibliographyinfo.attrib"/>
+  </define>
+  <!-- end of bibliographyinfo.attlist -->
+  <!-- end of bibliographyinfo.module -->
+  <define name="local.chapterinfo.attrib">
+    <empty/>
+  </define>
+  <define name="chapterinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Chapter. -->
+  <define name="chapterinfo">
+    <element name="chapterinfo">
+      <ref name="chapterinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of chapterinfo.element -->
+  <define name="chapterinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="chapterinfo.role.attrib"/>
+    <ref name="local.chapterinfo.attrib"/>
+  </define>
+  <!-- end of chapterinfo.attlist -->
+  <!-- end of chapterinfo.module -->
+  <define name="local.glossaryinfo.attrib">
+    <empty/>
+  </define>
+  <define name="glossaryinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Glossary. -->
+  <define name="glossaryinfo">
+    <element name="glossaryinfo">
+      <ref name="glossaryinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of glossaryinfo.element -->
+  <define name="glossaryinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="glossaryinfo.role.attrib"/>
+    <ref name="local.glossaryinfo.attrib"/>
+  </define>
+  <!-- end of glossaryinfo.attlist -->
+  <!-- end of glossaryinfo.module -->
+  <define name="local.indexinfo.attrib">
+    <empty/>
+  </define>
+  <define name="indexinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for an Index. -->
+  <define name="indexinfo">
+    <element name="indexinfo">
+      <ref name="indexinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of indexinfo.element -->
+  <define name="indexinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="indexinfo.role.attrib"/>
+    <ref name="local.indexinfo.attrib"/>
+  </define>
+  <!-- end of indexinfo.attlist -->
+  <!-- end of indexinfo.module -->
+  <define name="local.setindexinfo.attrib">
+    <empty/>
+  </define>
+  <define name="setindexinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a SetIndex. -->
+  <define name="setindexinfo">
+    <element name="setindexinfo">
+      <ref name="setindexinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of setindexinfo.element -->
+  <define name="setindexinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="setindexinfo.role.attrib"/>
+    <ref name="local.setindexinfo.attrib"/>
+  </define>
+  <!-- end of setindexinfo.attlist -->
+  <!-- end of setindexinfo.module -->
+  <define name="local.partinfo.attrib">
+    <empty/>
+  </define>
+  <define name="partinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Part. -->
+  <define name="partinfo">
+    <element name="partinfo">
+      <ref name="partinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of partinfo.element -->
+  <define name="partinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="partinfo.role.attrib"/>
+    <ref name="local.partinfo.attrib"/>
+  </define>
+  <!-- end of partinfo.attlist -->
+  <!-- end of partinfo.module -->
+  <define name="local.prefaceinfo.attrib">
+    <empty/>
+  </define>
+  <define name="prefaceinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Preface. -->
+  <define name="prefaceinfo">
+    <element name="prefaceinfo">
+      <ref name="prefaceinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of prefaceinfo.element -->
+  <define name="prefaceinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="prefaceinfo.role.attrib"/>
+    <ref name="local.prefaceinfo.attrib"/>
+  </define>
+  <!-- end of prefaceinfo.attlist -->
+  <!-- end of prefaceinfo.module -->
+  <define name="local.refentryinfo.attrib">
+    <empty/>
+  </define>
+  <define name="refentryinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Refentry. -->
+  <define name="refentryinfo">
+    <element name="refentryinfo">
+      <ref name="refentryinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of refentryinfo.element -->
+  <define name="refentryinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refentryinfo.role.attrib"/>
+    <ref name="local.refentryinfo.attrib"/>
+  </define>
+  <!-- end of refentryinfo.attlist -->
+  <!-- end of refentryinfo.module -->
+  <define name="local.refsectioninfo.attrib">
+    <empty/>
+  </define>
+  <define name="refsectioninfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a refsection. -->
+  <define name="refsectioninfo">
+    <element name="refsectioninfo">
+      <ref name="refsectioninfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of refsectioninfo.element -->
+  <define name="refsectioninfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refsectioninfo.role.attrib"/>
+    <ref name="local.refsectioninfo.attrib"/>
+  </define>
+  <!-- end of refsectioninfo.attlist -->
+  <!-- end of refsectioninfo.module -->
+  <define name="local.refsect1info.attrib">
+    <empty/>
+  </define>
+  <define name="refsect1info.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a RefSect1. -->
+  <define name="refsect1info">
+    <element name="refsect1info">
+      <ref name="refsect1info.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of refsect1info.element -->
+  <define name="refsect1info.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refsect1info.role.attrib"/>
+    <ref name="local.refsect1info.attrib"/>
+  </define>
+  <!-- end of refsect1info.attlist -->
+  <!-- end of refsect1info.module -->
+  <define name="local.refsect2info.attrib">
+    <empty/>
+  </define>
+  <define name="refsect2info.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a RefSect2. -->
+  <define name="refsect2info">
+    <element name="refsect2info">
+      <ref name="refsect2info.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of refsect2info.element -->
+  <define name="refsect2info.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refsect2info.role.attrib"/>
+    <ref name="local.refsect2info.attrib"/>
+  </define>
+  <!-- end of refsect2info.attlist -->
+  <!-- end of refsect2info.module -->
+  <define name="local.refsect3info.attrib">
+    <empty/>
+  </define>
+  <define name="refsect3info.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a RefSect3. -->
+  <define name="refsect3info">
+    <element name="refsect3info">
+      <ref name="refsect3info.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of refsect3info.element -->
+  <define name="refsect3info.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refsect3info.role.attrib"/>
+    <ref name="local.refsect3info.attrib"/>
+  </define>
+  <!-- end of refsect3info.attlist -->
+  <!-- end of refsect3info.module -->
+  <define name="local.refsynopsisdivinfo.attrib">
+    <empty/>
+  </define>
+  <define name="refsynopsisdivinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a RefSynopsisDiv. -->
+  <define name="refsynopsisdivinfo">
+    <element name="refsynopsisdivinfo">
+      <ref name="refsynopsisdivinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of refsynopsisdivinfo.element -->
+  <define name="refsynopsisdivinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refsynopsisdivinfo.role.attrib"/>
+    <ref name="local.refsynopsisdivinfo.attrib"/>
+  </define>
+  <!-- end of refsynopsisdivinfo.attlist -->
+  <!-- end of refsynopsisdivinfo.module -->
+  <define name="local.referenceinfo.attrib">
+    <empty/>
+  </define>
+  <define name="referenceinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Reference. -->
+  <define name="referenceinfo">
+    <element name="referenceinfo">
+      <ref name="referenceinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of referenceinfo.element -->
+  <define name="referenceinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="referenceinfo.role.attrib"/>
+    <ref name="local.referenceinfo.attrib"/>
+  </define>
+  <!-- end of referenceinfo.attlist -->
+  <!-- end of referenceinfo.module -->
+  <define name="local.sect1info.attrib">
+    <empty/>
+  </define>
+  <define name="sect1info.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Sect1. -->
+  <define name="sect1info">
+    <element name="sect1info">
+      <ref name="sect1info.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of sect1info.element -->
+  <define name="sect1info.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="sect1info.role.attrib"/>
+    <ref name="local.sect1info.attrib"/>
+  </define>
+  <!-- end of sect1info.attlist -->
+  <define name="local.sect2info.attrib">
+    <empty/>
+  </define>
+  <define name="sect2info.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Sect2. -->
+  <define name="sect2info">
+    <element name="sect2info">
+      <ref name="sect2info.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of sect2info.element -->
+  <define name="sect2info.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="sect2info.role.attrib"/>
+    <ref name="local.sect2info.attrib"/>
+  </define>
+  <!-- end of sect2info.attlist -->
+  <define name="local.sect3info.attrib">
+    <empty/>
+  </define>
+  <define name="sect3info.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Sect3. -->
+  <define name="sect3info">
+    <element name="sect3info">
+      <ref name="sect3info.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of sect3info.element -->
+  <define name="sect3info.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="sect3info.role.attrib"/>
+    <ref name="local.sect3info.attrib"/>
+  </define>
+  <!-- end of sect3info.attlist -->
+  <define name="local.sect4info.attrib">
+    <empty/>
+  </define>
+  <define name="sect4info.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Sect4. -->
+  <define name="sect4info">
+    <element name="sect4info">
+      <ref name="sect4info.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of sect4info.element -->
+  <define name="sect4info.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="sect4info.role.attrib"/>
+    <ref name="local.sect4info.attrib"/>
+  </define>
+  <!-- end of sect4info.attlist -->
+  <define name="local.sect5info.attrib">
+    <empty/>
+  </define>
+  <define name="sect5info.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Sect5. -->
+  <define name="sect5info">
+    <element name="sect5info">
+      <ref name="sect5info.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of sect5info.element -->
+  <define name="sect5info.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="sect5info.role.attrib"/>
+    <ref name="local.sect5info.attrib"/>
+  </define>
+  <!-- end of sect5info.attlist -->
+  <!-- ...................................................................... -->
+  <!-- Section (parallel to Sect*) ......................................... -->
+  <define name="local.section.attrib">
+    <empty/>
+  </define>
+  <define name="section.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A recursive section. -->
+  <define name="section">
+    <element name="section">
+      <ref name="section.attlist"/>
+      <optional>
+        <ref name="sectioninfo"/>
+      </optional>
+      <ref name="sect.title.content"/>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+      <choice>
+        <group>
+          <oneOrMore>
+            <ref name="divcomponent.mix"/>
+          </oneOrMore>
+          <choice>
+            <zeroOrMore>
+              <ref name="refentry.class"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="section.class"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="simplesect"/>
+            </zeroOrMore>
+          </choice>
+        </group>
+        <oneOrMore>
+          <ref name="refentry.class"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="section.class"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="simplesect"/>
+        </oneOrMore>
+      </choice>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of section.element -->
+  <define name="section.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="section.role.attrib"/>
+    <ref name="local.section.attrib"/>
+  </define>
+  <!-- end of section.attlist -->
+  <!-- end of section.module -->
+  <define name="sectioninfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <define name="local.sectioninfo.attrib">
+    <empty/>
+  </define>
+  <!-- doc:Meta-information for a recursive section. -->
+  <define name="sectioninfo">
+    <element name="sectioninfo">
+      <ref name="sectioninfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of sectioninfo.element -->
+  <define name="sectioninfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="sectioninfo.role.attrib"/>
+    <ref name="local.sectioninfo.attrib"/>
+  </define>
+  <!-- end of sectioninfo.attlist -->
+  <!-- end of sectioninfo.module -->
+  <!-- end of section.content.module -->
+  <!-- ...................................................................... -->
+  <!-- Sect1, Sect2, Sect3, Sect4, Sect5 .................................... -->
+  <define name="local.sect1.attrib">
+    <empty/>
+  </define>
+  <define name="sect1.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A top-level section of document. -->
+  <define name="sect1">
+    <element name="sect1">
+      <ref name="sect1.attlist"/>
+      <optional>
+        <ref name="sect1info"/>
+      </optional>
+      <ref name="sect.title.content"/>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+      <choice>
+        <group>
+          <oneOrMore>
+            <ref name="divcomponent.mix"/>
+          </oneOrMore>
+          <choice>
+            <zeroOrMore>
+              <ref name="refentry.class"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="sect2"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="simplesect"/>
+            </zeroOrMore>
+          </choice>
+        </group>
+        <oneOrMore>
+          <ref name="refentry.class"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="sect2"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="simplesect"/>
+        </oneOrMore>
+      </choice>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of sect1.element -->
+  <!--
+    Renderas: Indicates the format in which the heading should
+    appear
+  -->
+  <define name="sect1.attlist" combine="interleave">
+    <optional>
+      <attribute name="renderas">
+        <choice>
+          <value>sect2</value>
+          <value>sect3</value>
+          <value>sect4</value>
+          <value>sect5</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="label.attrib"/>
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="sect1.role.attrib"/>
+    <ref name="local.sect1.attrib"/>
+  </define>
+  <!-- end of sect1.attlist -->
+  <!-- end of sect1.module -->
+  <define name="local.sect2.attrib">
+    <empty/>
+  </define>
+  <define name="sect2.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A subsection within a Sect1. -->
+  <define name="sect2">
+    <element name="sect2">
+      <ref name="sect2.attlist"/>
+      <optional>
+        <ref name="sect2info"/>
+      </optional>
+      <ref name="sect.title.content"/>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+      <choice>
+        <group>
+          <oneOrMore>
+            <ref name="divcomponent.mix"/>
+          </oneOrMore>
+          <choice>
+            <zeroOrMore>
+              <ref name="refentry.class"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="sect3"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="simplesect"/>
+            </zeroOrMore>
+          </choice>
+        </group>
+        <oneOrMore>
+          <ref name="refentry.class"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="sect3"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="simplesect"/>
+        </oneOrMore>
+      </choice>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of sect2.element -->
+  <!--
+    Renderas: Indicates the format in which the heading should
+    appear
+  -->
+  <define name="sect2.attlist" combine="interleave">
+    <optional>
+      <attribute name="renderas">
+        <choice>
+          <value>sect1</value>
+          <value>sect3</value>
+          <value>sect4</value>
+          <value>sect5</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="label.attrib"/>
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="sect2.role.attrib"/>
+    <ref name="local.sect2.attrib"/>
+  </define>
+  <!-- end of sect2.attlist -->
+  <!-- end of sect2.module -->
+  <define name="local.sect3.attrib">
+    <empty/>
+  </define>
+  <define name="sect3.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A subsection within a Sect2. -->
+  <define name="sect3">
+    <element name="sect3">
+      <ref name="sect3.attlist"/>
+      <optional>
+        <ref name="sect3info"/>
+      </optional>
+      <ref name="sect.title.content"/>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+      <choice>
+        <group>
+          <oneOrMore>
+            <ref name="divcomponent.mix"/>
+          </oneOrMore>
+          <choice>
+            <zeroOrMore>
+              <ref name="refentry.class"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="sect4"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="simplesect"/>
+            </zeroOrMore>
+          </choice>
+        </group>
+        <oneOrMore>
+          <ref name="refentry.class"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="sect4"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="simplesect"/>
+        </oneOrMore>
+      </choice>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of sect3.element -->
+  <!--
+    Renderas: Indicates the format in which the heading should
+    appear
+  -->
+  <define name="sect3.attlist" combine="interleave">
+    <optional>
+      <attribute name="renderas">
+        <choice>
+          <value>sect1</value>
+          <value>sect2</value>
+          <value>sect4</value>
+          <value>sect5</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="label.attrib"/>
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="sect3.role.attrib"/>
+    <ref name="local.sect3.attrib"/>
+  </define>
+  <!-- end of sect3.attlist -->
+  <!-- end of sect3.module -->
+  <define name="local.sect4.attrib">
+    <empty/>
+  </define>
+  <define name="sect4.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A subsection within a Sect3. -->
+  <define name="sect4">
+    <element name="sect4">
+      <ref name="sect4.attlist"/>
+      <optional>
+        <ref name="sect4info"/>
+      </optional>
+      <ref name="sect.title.content"/>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+      <choice>
+        <group>
+          <oneOrMore>
+            <ref name="divcomponent.mix"/>
+          </oneOrMore>
+          <choice>
+            <zeroOrMore>
+              <ref name="refentry.class"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="sect5"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="simplesect"/>
+            </zeroOrMore>
+          </choice>
+        </group>
+        <oneOrMore>
+          <ref name="refentry.class"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="sect5"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="simplesect"/>
+        </oneOrMore>
+      </choice>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of sect4.element -->
+  <!--
+    Renderas: Indicates the format in which the heading should
+    appear
+  -->
+  <define name="sect4.attlist" combine="interleave">
+    <optional>
+      <attribute name="renderas">
+        <choice>
+          <value>sect1</value>
+          <value>sect2</value>
+          <value>sect3</value>
+          <value>sect5</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="label.attrib"/>
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="sect4.role.attrib"/>
+    <ref name="local.sect4.attrib"/>
+  </define>
+  <!-- end of sect4.attlist -->
+  <!-- end of sect4.module -->
+  <define name="local.sect5.attrib">
+    <empty/>
+  </define>
+  <define name="sect5.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A subsection within a Sect4. -->
+  <define name="sect5">
+    <element name="sect5">
+      <ref name="sect5.attlist"/>
+      <optional>
+        <ref name="sect5info"/>
+      </optional>
+      <ref name="sect.title.content"/>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+      <choice>
+        <group>
+          <oneOrMore>
+            <ref name="divcomponent.mix"/>
+          </oneOrMore>
+          <choice>
+            <zeroOrMore>
+              <ref name="refentry.class"/>
+            </zeroOrMore>
+            <zeroOrMore>
+              <ref name="simplesect"/>
+            </zeroOrMore>
+          </choice>
+        </group>
+        <oneOrMore>
+          <ref name="refentry.class"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="simplesect"/>
+        </oneOrMore>
+      </choice>
+      <zeroOrMore>
+        <ref name="nav.class"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of sect5.element -->
+  <!--
+    Renderas: Indicates the format in which the heading should
+    appear
+  -->
+  <define name="sect5.attlist" combine="interleave">
+    <optional>
+      <attribute name="renderas">
+        <choice>
+          <value>sect1</value>
+          <value>sect2</value>
+          <value>sect3</value>
+          <value>sect4</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="label.attrib"/>
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="sect5.role.attrib"/>
+    <ref name="local.sect5.attrib"/>
+  </define>
+  <!-- end of sect5.attlist -->
+  <!-- end of sect5.module -->
+  <define name="local.simplesect.attrib">
+    <empty/>
+  </define>
+  <define name="simplesect.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A section of a document with no subdivisions. -->
+  <define name="simplesect">
+    <element name="simplesect">
+      <ref name="simplesect.attlist"/>
+      <ref name="sect.title.content"/>
+      <oneOrMore>
+        <ref name="divcomponent.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of simplesect.element -->
+  <define name="simplesect.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="simplesect.role.attrib"/>
+    <ref name="local.simplesect.attrib"/>
+  </define>
+  <!-- end of simplesect.attlist -->
+  <!-- end of simplesect.module -->
+  <!-- ...................................................................... -->
+  <!-- Bibliography ......................................................... -->
+  <define name="local.bibliography.attrib">
+    <empty/>
+  </define>
+  <define name="bibliography.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A bibliography. -->
+  <define name="bibliography">
+    <element name="bibliography">
+      <ref name="bibliography.attlist"/>
+      <optional>
+        <ref name="bibliographyinfo"/>
+      </optional>
+      <optional>
+        <ref name="bookcomponent.title.content"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="component.mix"/>
+      </zeroOrMore>
+      <choice>
+        <oneOrMore>
+          <ref name="bibliodiv"/>
+        </oneOrMore>
+        <oneOrMore>
+          <choice>
+            <ref name="biblioentry"/>
+            <ref name="bibliomixed"/>
+          </choice>
+        </oneOrMore>
+      </choice>
+    </element>
+  </define>
+  <!-- end of bibliography.element -->
+  <define name="bibliography.attlist" combine="interleave">
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="bibliography.role.attrib"/>
+    <ref name="local.bibliography.attrib"/>
+  </define>
+  <!-- end of bibliography.attlist -->
+  <!-- end of bibliography.module -->
+  <define name="local.bibliodiv.attrib">
+    <empty/>
+  </define>
+  <define name="bibliodiv.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A section of a Bibliography. -->
+  <define name="bibliodiv">
+    <element name="bibliodiv">
+      <ref name="bibliodiv.attlist"/>
+      <optional>
+        <ref name="sect.title.content"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="component.mix"/>
+      </zeroOrMore>
+      <oneOrMore>
+        <choice>
+          <ref name="biblioentry"/>
+          <ref name="bibliomixed"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of bibliodiv.element -->
+  <define name="bibliodiv.attlist" combine="interleave">
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="bibliodiv.role.attrib"/>
+    <ref name="local.bibliodiv.attrib"/>
+  </define>
+  <!-- end of bibliodiv.attlist -->
+  <!-- end of bibliodiv.module -->
+  <!-- end of bibliography.content.module -->
+  <!-- ...................................................................... -->
+  <!-- Glossary ............................................................. -->
+  <define name="local.glossary.attrib">
+    <empty/>
+  </define>
+  <define name="glossary.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A glossary. -->
+  <define name="glossary">
+    <element name="glossary">
+      <ref name="glossary.attlist"/>
+      <optional>
+        <ref name="glossaryinfo"/>
+      </optional>
+      <optional>
+        <ref name="bookcomponent.title.content"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="component.mix"/>
+      </zeroOrMore>
+      <choice>
+        <oneOrMore>
+          <ref name="glossdiv"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="glossentry"/>
+        </oneOrMore>
+      </choice>
+      <optional>
+        <ref name="bibliography"/>
+      </optional>
+    </element>
+  </define>
+  <!-- end of glossary.element -->
+  <define name="glossary.attlist" combine="interleave">
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="glossary.role.attrib"/>
+    <ref name="local.glossary.attrib"/>
+  </define>
+  <!-- end of glossary.attlist -->
+  <!-- end of glossary.module -->
+  <define name="local.glossdiv.attrib">
+    <empty/>
+  </define>
+  <define name="glossdiv.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A division in a Glossary. -->
+  <define name="glossdiv">
+    <element name="glossdiv">
+      <ref name="glossdiv.attlist"/>
+      <ref name="sect.title.content"/>
+      <zeroOrMore>
+        <ref name="component.mix"/>
+      </zeroOrMore>
+      <oneOrMore>
+        <ref name="glossentry"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of glossdiv.element -->
+  <define name="glossdiv.attlist" combine="interleave">
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="glossdiv.role.attrib"/>
+    <ref name="local.glossdiv.attrib"/>
+  </define>
+  <!-- end of glossdiv.attlist -->
+  <!-- end of glossdiv.module -->
+  <!-- end of glossary.content.module -->
+  <!-- ...................................................................... -->
+  <!-- Index and SetIndex ................................................... -->
+  <define name="local.indexes.attrib">
+    <empty/>
+  </define>
+  <define name="indexes.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An index. -->
+  <define name="index">
+    <element name="index">
+      <ref name="index.attlist"/>
+      <optional>
+        <ref name="indexinfo"/>
+      </optional>
+      <optional>
+        <ref name="bookcomponent.title.content"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="component.mix"/>
+      </zeroOrMore>
+      <choice>
+        <zeroOrMore>
+          <ref name="indexdiv"/>
+        </zeroOrMore>
+        <zeroOrMore>
+          <ref name="indexentry"/>
+        </zeroOrMore>
+      </choice>
+    </element>
+  </define>
+  <!-- end of index.element -->
+  <define name="index.attlist" combine="interleave">
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="indexes.role.attrib"/>
+    <ref name="local.indexes.attrib"/>
+  </define>
+  <!-- end of index.attlist -->
+  <!-- doc:An index to a set of books. -->
+  <define name="setindex">
+    <element name="setindex">
+      <ref name="setindex.attlist"/>
+      <optional>
+        <ref name="setindexinfo"/>
+      </optional>
+      <optional>
+        <ref name="bookcomponent.title.content"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="component.mix"/>
+      </zeroOrMore>
+      <choice>
+        <zeroOrMore>
+          <ref name="indexdiv"/>
+        </zeroOrMore>
+        <zeroOrMore>
+          <ref name="indexentry"/>
+        </zeroOrMore>
+      </choice>
+    </element>
+  </define>
+  <!-- end of setindex.element -->
+  <define name="setindex.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="indexes.role.attrib"/>
+    <ref name="local.indexes.attrib"/>
+  </define>
+  <!-- end of setindex.attlist -->
+  <!-- end of indexes.module -->
+  <!--
+    SegmentedList in this content is useful for marking up permuted
+    indices.
+  -->
+  <define name="local.indexdiv.attrib">
+    <empty/>
+  </define>
+  <define name="indexdiv.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A division in an index. -->
+  <define name="indexdiv">
+    <element name="indexdiv">
+      <ref name="indexdiv.attlist"/>
+      <optional>
+        <ref name="sect.title.content"/>
+      </optional>
+      <group>
+        <zeroOrMore>
+          <ref name="indexdivcomponent.mix"/>
+        </zeroOrMore>
+        <choice>
+          <oneOrMore>
+            <ref name="indexentry"/>
+          </oneOrMore>
+          <ref name="segmentedlist"/>
+        </choice>
+      </group>
+    </element>
+  </define>
+  <!-- end of indexdiv.element -->
+  <define name="indexdiv.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="indexdiv.role.attrib"/>
+    <ref name="local.indexdiv.attrib"/>
+  </define>
+  <!-- end of indexdiv.attlist -->
+  <!-- end of indexdiv.module -->
+  <!-- Index entries appear in the index, not the text. -->
+  <define name="local.indexentry.attrib">
+    <empty/>
+  </define>
+  <define name="indexentry.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An entry in an index. -->
+  <define name="indexentry">
+    <element name="indexentry">
+      <ref name="indexentry.attlist"/>
+      <ref name="primaryie"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="seeie"/>
+          <ref name="seealsoie"/>
+        </choice>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="secondaryie"/>
+        <zeroOrMore>
+          <choice>
+            <ref name="seeie"/>
+            <ref name="seealsoie"/>
+            <ref name="tertiaryie"/>
+          </choice>
+        </zeroOrMore>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of indexentry.element -->
+  <define name="indexentry.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="indexentry.role.attrib"/>
+    <ref name="local.indexentry.attrib"/>
+  </define>
+  <!-- end of indexentry.attlist -->
+  <!-- end of indexentry.module -->
+  <define name="local.primsecterie.attrib">
+    <empty/>
+  </define>
+  <define name="primsecterie.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A primary term in an index entry, not in the text. -->
+  <define name="primaryie">
+    <element name="primaryie">
+      <ref name="primaryie.attlist"/>
+      <zeroOrMore>
+        <ref name="ndxterm.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of primaryie.element -->
+  <!-- to IndexTerms that these entries represent -->
+  <define name="primaryie.attlist" combine="interleave">
+    <ref name="linkends.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="primsecterie.role.attrib"/>
+    <ref name="local.primsecterie.attrib"/>
+  </define>
+  <!-- end of primaryie.attlist -->
+  <!-- doc:A secondary term in an index entry, rather than in the text. -->
+  <define name="secondaryie">
+    <element name="secondaryie">
+      <ref name="secondaryie.attlist"/>
+      <zeroOrMore>
+        <ref name="ndxterm.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of secondaryie.element -->
+  <!-- to IndexTerms that these entries represent -->
+  <define name="secondaryie.attlist" combine="interleave">
+    <ref name="linkends.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="primsecterie.role.attrib"/>
+    <ref name="local.primsecterie.attrib"/>
+  </define>
+  <!-- end of secondaryie.attlist -->
+  <!-- doc:A tertiary term in an index entry, rather than in the text. -->
+  <define name="tertiaryie">
+    <element name="tertiaryie">
+      <ref name="tertiaryie.attlist"/>
+      <zeroOrMore>
+        <ref name="ndxterm.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of tertiaryie.element -->
+  <!-- to IndexTerms that these entries represent -->
+  <define name="tertiaryie.attlist" combine="interleave">
+    <ref name="linkends.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="primsecterie.role.attrib"/>
+    <ref name="local.primsecterie.attrib"/>
+  </define>
+  <!-- end of tertiaryie.attlist -->
+  <!-- end of primsecterie.module -->
+  <define name="local.seeie.attrib">
+    <empty/>
+  </define>
+  <define name="seeie.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A See entry in an index, rather than in the text. -->
+  <define name="seeie">
+    <element name="seeie">
+      <ref name="seeie.attlist"/>
+      <zeroOrMore>
+        <ref name="ndxterm.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of seeie.element -->
+  <!-- to IndexEntry to look up -->
+  <define name="seeie.attlist" combine="interleave">
+    <ref name="linkend.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="seeie.role.attrib"/>
+    <ref name="local.seeie.attrib"/>
+  </define>
+  <!-- end of seeie.attlist -->
+  <!-- end of seeie.module -->
+  <define name="local.seealsoie.attrib">
+    <empty/>
+  </define>
+  <define name="seealsoie.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A See also entry in an index, rather than in the text. -->
+  <define name="seealsoie">
+    <element name="seealsoie">
+      <ref name="seealsoie.attlist"/>
+      <zeroOrMore>
+        <ref name="ndxterm.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of seealsoie.element -->
+  <!-- to related IndexEntries -->
+  <define name="seealsoie.attlist" combine="interleave">
+    <ref name="linkends.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="seealsoie.role.attrib"/>
+    <ref name="local.seealsoie.attrib"/>
+  </define>
+  <!-- end of seealsoie.attlist -->
+  <!-- end of seealsoie.module -->
+  <!-- end of index.content.module -->
+  <!-- ...................................................................... -->
+  <!-- RefEntry ............................................................. -->
+  <define name="local.refentry.attrib">
+    <empty/>
+  </define>
+  <define name="refentry.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A reference page (originally a UNIX man-style reference page). -->
+  <define name="refentry">
+    <element name="refentry">
+      <ref name="refentry.attlist"/>
+      <optional>
+        <ref name="beginpage"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="ndxterm.class"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="refentryinfo"/>
+      </optional>
+      <optional>
+        <ref name="refmeta"/>
+      </optional>
+      <zeroOrMore>
+        <choice>
+          <ref name="remark"/>
+          <ref name="link.char.class"/>
+        </choice>
+      </zeroOrMore>
+      <oneOrMore>
+        <ref name="refnamediv"/>
+      </oneOrMore>
+      <optional>
+        <ref name="refsynopsisdiv"/>
+      </optional>
+      <choice>
+        <oneOrMore>
+          <ref name="refsect1"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="refsection"/>
+        </oneOrMore>
+      </choice>
+    </element>
+  </define>
+  <!-- end of refentry.element -->
+  <define name="refentry.attlist" combine="interleave">
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="refentry.role.attrib"/>
+    <ref name="local.refentry.attrib"/>
+  </define>
+  <!-- end of refentry.attlist -->
+  <!-- end of refentry.module -->
+  <define name="local.refmeta.attrib">
+    <empty/>
+  </define>
+  <define name="refmeta.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a reference entry. -->
+  <define name="refmeta">
+    <element name="refmeta">
+      <ref name="refmeta.attlist"/>
+      <zeroOrMore>
+        <ref name="ndxterm.class"/>
+      </zeroOrMore>
+      <ref name="refentrytitle"/>
+      <optional>
+        <ref name="manvolnum"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="refmiscinfo"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="ndxterm.class"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of refmeta.element -->
+  <define name="refmeta.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refmeta.role.attrib"/>
+    <ref name="local.refmeta.attrib"/>
+  </define>
+  <!-- end of refmeta.attlist -->
+  <!-- end of refmeta.module -->
+  <define name="local.refmiscinfo.attrib">
+    <empty/>
+  </define>
+  <define name="refmiscinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a reference entry other than the title and volume number. -->
+  <define name="refmiscinfo">
+    <element name="refmiscinfo">
+      <ref name="refmiscinfo.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of refmiscinfo.element -->
+  <!-- Class: Freely assignable parameter; no default -->
+  <define name="refmiscinfo.attlist" combine="interleave">
+    <optional>
+      <attribute name="class"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="refmiscinfo.role.attrib"/>
+    <ref name="local.refmiscinfo.attrib"/>
+  </define>
+  <!-- end of refmiscinfo.attlist -->
+  <!-- end of refmiscinfo.module -->
+  <define name="local.refnamediv.attrib">
+    <empty/>
+  </define>
+  <define name="refnamediv.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name, purpose, and classification of a reference page. -->
+  <define name="refnamediv">
+    <element name="refnamediv">
+      <ref name="refnamediv.attlist"/>
+      <optional>
+        <ref name="refdescriptor"/>
+      </optional>
+      <oneOrMore>
+        <ref name="refname"/>
+      </oneOrMore>
+      <ref name="refpurpose"/>
+      <zeroOrMore>
+        <ref name="refclass"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <choice>
+          <ref name="remark"/>
+          <ref name="link.char.class"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of refnamediv.element -->
+  <define name="refnamediv.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refnamediv.role.attrib"/>
+    <ref name="local.refnamediv.attrib"/>
+  </define>
+  <!-- end of refnamediv.attlist -->
+  <!-- end of refnamediv.module -->
+  <define name="local.refdescriptor.attrib">
+    <empty/>
+  </define>
+  <define name="refdescriptor.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A description of the topic of a reference page. -->
+  <define name="refdescriptor">
+    <element name="refdescriptor">
+      <ref name="refdescriptor.attlist"/>
+      <zeroOrMore>
+        <ref name="refname.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of refdescriptor.element -->
+  <define name="refdescriptor.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refdescriptor.role.attrib"/>
+    <ref name="local.refdescriptor.attrib"/>
+  </define>
+  <!-- end of refdescriptor.attlist -->
+  <!-- end of refdescriptor.module -->
+  <define name="local.refname.attrib">
+    <empty/>
+  </define>
+  <define name="refname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of (one of) the subject(s) of a reference page. -->
+  <define name="refname">
+    <element name="refname">
+      <ref name="refname.attlist"/>
+      <zeroOrMore>
+        <ref name="refname.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of refname.element -->
+  <define name="refname.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refname.role.attrib"/>
+    <ref name="local.refname.attrib"/>
+  </define>
+  <!-- end of refname.attlist -->
+  <!-- end of refname.module -->
+  <define name="local.refpurpose.attrib">
+    <empty/>
+  </define>
+  <define name="refpurpose.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A short (one sentence) synopsis of the topic of a reference page. -->
+  <define name="refpurpose">
+    <element name="refpurpose">
+      <ref name="refpurpose.attlist"/>
+      <zeroOrMore>
+        <ref name="refinline.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of refpurpose.element -->
+  <define name="refpurpose.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refpurpose.role.attrib"/>
+    <ref name="local.refpurpose.attrib"/>
+  </define>
+  <!-- end of refpurpose.attlist -->
+  <!-- end of refpurpose.module -->
+  <define name="local.refclass.attrib">
+    <empty/>
+  </define>
+  <define name="refclass.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The scope or other indication of applicability of a reference entry. -->
+  <define name="refclass">
+    <element name="refclass">
+      <ref name="refclass.attlist"/>
+      <zeroOrMore>
+        <ref name="refclass.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of refclass.element -->
+  <define name="refclass.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refclass.role.attrib"/>
+    <ref name="local.refclass.attrib"/>
+  </define>
+  <!-- end of refclass.attlist -->
+  <!-- end of refclass.module -->
+  <define name="local.refsynopsisdiv.attrib">
+    <empty/>
+  </define>
+  <define name="refsynopsisdiv.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A syntactic synopsis of the subject of the reference page. -->
+  <define name="refsynopsisdiv">
+    <element name="refsynopsisdiv">
+      <ref name="refsynopsisdiv.attlist"/>
+      <optional>
+        <ref name="refsynopsisdivinfo"/>
+      </optional>
+      <optional>
+        <ref name="refsect.title.content"/>
+      </optional>
+      <choice>
+        <group>
+          <oneOrMore>
+            <ref name="refcomponent.mix"/>
+          </oneOrMore>
+          <zeroOrMore>
+            <ref name="refsect2"/>
+          </zeroOrMore>
+        </group>
+        <oneOrMore>
+          <ref name="refsect2"/>
+        </oneOrMore>
+      </choice>
+    </element>
+  </define>
+  <!-- end of refsynopsisdiv.element -->
+  <define name="refsynopsisdiv.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refsynopsisdiv.role.attrib"/>
+    <ref name="local.refsynopsisdiv.attrib"/>
+  </define>
+  <!-- end of refsynopsisdiv.attlist -->
+  <!-- end of refsynopsisdiv.module -->
+  <define name="local.refsection.attrib">
+    <empty/>
+  </define>
+  <define name="refsection.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A recursive section in a refentry. -->
+  <define name="refsection">
+    <element name="refsection">
+      <ref name="refsection.attlist"/>
+      <optional>
+        <ref name="refsectioninfo"/>
+      </optional>
+      <ref name="refsect.title.content"/>
+      <choice>
+        <group>
+          <oneOrMore>
+            <ref name="refcomponent.mix"/>
+          </oneOrMore>
+          <zeroOrMore>
+            <ref name="refsection"/>
+          </zeroOrMore>
+        </group>
+        <oneOrMore>
+          <ref name="refsection"/>
+        </oneOrMore>
+      </choice>
+    </element>
+  </define>
+  <!-- end of refsection.element -->
+  <define name="refsection.attlist" combine="interleave">
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="refsection.role.attrib"/>
+    <ref name="local.refsection.attrib"/>
+  </define>
+  <!-- end of refsection.attlist -->
+  <!-- end of refsection.module -->
+  <define name="local.refsect1.attrib">
+    <empty/>
+  </define>
+  <define name="refsect1.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A major subsection of a reference entry. -->
+  <define name="refsect1">
+    <element name="refsect1">
+      <ref name="refsect1.attlist"/>
+      <optional>
+        <ref name="refsect1info"/>
+      </optional>
+      <ref name="refsect.title.content"/>
+      <choice>
+        <group>
+          <oneOrMore>
+            <ref name="refcomponent.mix"/>
+          </oneOrMore>
+          <zeroOrMore>
+            <ref name="refsect2"/>
+          </zeroOrMore>
+        </group>
+        <oneOrMore>
+          <ref name="refsect2"/>
+        </oneOrMore>
+      </choice>
+    </element>
+  </define>
+  <!-- end of refsect1.element -->
+  <define name="refsect1.attlist" combine="interleave">
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="refsect1.role.attrib"/>
+    <ref name="local.refsect1.attrib"/>
+  </define>
+  <!-- end of refsect1.attlist -->
+  <!-- end of refsect1.module -->
+  <define name="local.refsect2.attrib">
+    <empty/>
+  </define>
+  <define name="refsect2.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A subsection of a RefSect1. -->
+  <define name="refsect2">
+    <element name="refsect2">
+      <ref name="refsect2.attlist"/>
+      <optional>
+        <ref name="refsect2info"/>
+      </optional>
+      <ref name="refsect.title.content"/>
+      <choice>
+        <group>
+          <oneOrMore>
+            <ref name="refcomponent.mix"/>
+          </oneOrMore>
+          <zeroOrMore>
+            <ref name="refsect3"/>
+          </zeroOrMore>
+        </group>
+        <oneOrMore>
+          <ref name="refsect3"/>
+        </oneOrMore>
+      </choice>
+    </element>
+  </define>
+  <!-- end of refsect2.element -->
+  <define name="refsect2.attlist" combine="interleave">
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="refsect2.role.attrib"/>
+    <ref name="local.refsect2.attrib"/>
+  </define>
+  <!-- end of refsect2.attlist -->
+  <!-- end of refsect2.module -->
+  <define name="local.refsect3.attrib">
+    <empty/>
+  </define>
+  <define name="refsect3.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A subsection of a RefSect2. -->
+  <define name="refsect3">
+    <element name="refsect3">
+      <ref name="refsect3.attlist"/>
+      <optional>
+        <ref name="refsect3info"/>
+      </optional>
+      <ref name="refsect.title.content"/>
+      <oneOrMore>
+        <ref name="refcomponent.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of refsect3.element -->
+  <define name="refsect3.attlist" combine="interleave">
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="refsect3.role.attrib"/>
+    <ref name="local.refsect3.attrib"/>
+  </define>
+  <!-- end of refsect3.attlist -->
+  <!-- end of refsect3.module -->
+  <!-- end of refentry.content.module -->
+  <!-- ...................................................................... -->
+  <!-- Article .............................................................. -->
+  <!--
+    An Article is a chapter-level, stand-alone document that is often,
+    but need not be, collected into a Book.
+  -->
+  <define name="local.article.attrib">
+    <empty/>
+  </define>
+  <define name="article.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An article. -->
+  <define name="article">
+    <element name="article">
+      <ref name="article.attlist"/>
+      <optional>
+        <ref name="div.title.content"/>
+      </optional>
+      <optional>
+        <ref name="articleinfo"/>
+      </optional>
+      <optional>
+        <ref name="tocchap"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="lot"/>
+      </zeroOrMore>
+      <ref name="bookcomponent.content"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="nav.class"/>
+          <ref name="appendix.class"/>
+          <ref name="colophon"/>
+          <ref name="ackno"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- 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 -->
+  <define name="article.attlist" combine="interleave">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>journalarticle</value>
+          <value>productsheet</value>
+          <value>whitepaper</value>
+          <value>techreport</value>
+          <value>specification</value>
+          <value>faq</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="parentbook">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <ref name="status.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="article.role.attrib"/>
+    <ref name="local.article.attrib"/>
+  </define>
+</grammar>
+<!-- end of article.attlist -->
+<!-- end of article.module -->
+<!-- End of DocBook document hierarchy module V4.5 ........................ -->
+<!-- ...................................................................... -->

Added: trunk/clfs/schema/docbook/4.5/rng/dbnotnx.rnc
===================================================================
--- trunk/clfs/schema/docbook/4.5/rng/dbnotnx.rnc	                        (rev 0)
+++ trunk/clfs/schema/docbook/4.5/rng/dbnotnx.rnc	2011-04-17 21:49:19 UTC (rev 1294)
@@ -0,0 +1,85 @@
+# ......................................................................
+
+# DocBook notations module V4.5 ........................................
+
+# File dbnotnx.mod .....................................................
+
+# Copyright 1992-2004 HaL Computer Systems, Inc.,
+# O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+# Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+# Organization for the Advancement of Structured Information
+# Standards (OASIS).
+# 
+# $Id: dbnotnx.mod 6340 2006-10-03 13:23:24Z nwalsh $
+# 
+# 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.
+# 
+# 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 at lists.oasis-open.org mailing list. For more
+# information, see http://www.oasis-open.org/docbook/.
+
+# ......................................................................
+
+# This module contains the notation declarations 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 Notations V4.5//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.
+
+local.notation.class = notAllowed
+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"
+  | "SVG"
+  | "PDF"
+  | "SWF"
+  | "linespecific"
+  | local.notation.class
+# WordPerfect Graphic format
+
+# End of DocBook notations module V4.5 .................................
+
+# ......................................................................

Added: trunk/clfs/schema/docbook/4.5/rng/dbnotnx.rng
===================================================================
--- trunk/clfs/schema/docbook/4.5/rng/dbnotnx.rng	                        (rev 0)
+++ trunk/clfs/schema/docbook/4.5/rng/dbnotnx.rng	2011-04-17 21:49:19 UTC (rev 1294)
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ...................................................................... -->
+<!-- DocBook notations module V4.5 ........................................ -->
+<!-- File dbnotnx.mod ..................................................... -->
+<!--
+  Copyright 1992-2004 HaL Computer Systems, Inc.,
+  O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+  Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+  Organization for the Advancement of Structured Information
+  Standards (OASIS).
+  
+  $Id: dbnotnx.mod 6340 2006-10-03 13:23:24Z nwalsh $
+  
+  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.
+  
+  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 at lists.oasis-open.org mailing list. For more
+  information, see http://www.oasis-open.org/docbook/.
+-->
+<!-- ...................................................................... -->
+<!--
+  This module contains the notation declarations 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 Notations V4.5//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.
+-->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+  <define name="local.notation.class">
+    <notAllowed/>
+  </define>
+  <define name="notation.class">
+    <choice>
+      <value>BMP</value>
+      <value>CGM-CHAR</value>
+      <value>CGM-BINARY</value>
+      <value>CGM-CLEAR</value>
+      <value>DITROFF</value>
+      <value>DVI</value>
+      <value>EPS</value>
+      <value>EQN</value>
+      <value>FAX</value>
+      <value>GIF</value>
+      <value>GIF87a</value>
+      <value>GIF89a</value>
+      <value>JPG</value>
+      <value>JPEG</value>
+      <value>IGES</value>
+      <value>PCX</value>
+      <value>PIC</value>
+      <value>PNG</value>
+      <value>PS</value>
+      <value>SGML</value>
+      <value>TBL</value>
+      <value>TEX</value>
+      <value>TIFF</value>
+      <value>WMF</value>
+      <value>WPG</value>
+      <value>SVG</value>
+      <value>PDF</value>
+      <value>SWF</value>
+      <value>linespecific</value>
+      <ref name="local.notation.class"/>
+    </choice>
+  </define>
+</grammar>
+<!-- WordPerfect Graphic format -->
+<!-- End of DocBook notations module V4.5 ................................. -->
+<!-- ...................................................................... -->

Added: trunk/clfs/schema/docbook/4.5/rng/dbpoolx.rnc
===================================================================
--- trunk/clfs/schema/docbook/4.5/rng/dbpoolx.rnc	                        (rev 0)
+++ trunk/clfs/schema/docbook/4.5/rng/dbpoolx.rnc	2011-04-17 21:49:19 UTC (rev 1294)
@@ -0,0 +1,5785 @@
+# ......................................................................
+
+# DocBook XML information pool module V4.5 .............................
+
+# File dbpoolx.mod .....................................................
+
+# Copyright 1992-2004 HaL Computer Systems, Inc.,
+# O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+# Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+# Organization for the Advancement of Structured Information
+# Standards (OASIS).
+# 
+# $Id: dbpoolx.mod 6340 2006-10-03 13:23:24Z nwalsh $
+# 
+# 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 at 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.5//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.
+
+# ......................................................................
+
+# Forms entities .......................................................
+
+# These PEs provide the hook by which the forms module can be inserted
+
+# into the DTD.
+
+namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
+
+forminlines.hook = notAllowed
+forms.hook = notAllowed
+# ......................................................................
+
+# General-purpose semantics entities ...................................
+yesorno.attvals = string
+# ......................................................................
+
+# Entities for module inclusions .......................................
+
+# ......................................................................
+
+# Entities for element classes and mixtures ............................
+
+# "Ubiquitous" classes: ndxterm.class and beginpage
+local.ndxterm.class = notAllowed
+ndxterm.class = indexterm | local.ndxterm.class
+# Object-level classes .................................................
+local.list.class = notAllowed
+list.class =
+  calloutlist
+  | glosslist
+  | bibliolist
+  | itemizedlist
+  | orderedlist
+  | segmentedlist
+  | simplelist
+  | variablelist
+  | local.list.class
+local.admon.class = notAllowed
+admon.class =
+  caution | important | note | tip | warning | local.admon.class
+local.linespecific.class = notAllowed
+linespecific.class =
+  literallayout
+  | programlisting
+  | programlistingco
+  | screen
+  | screenco
+  | screenshot
+  | local.linespecific.class
+local.method.synop.class = notAllowed
+method.synop.class =
+  constructorsynopsis
+  | destructorsynopsis
+  | methodsynopsis
+  | local.method.synop.class
+local.synop.class = notAllowed
+synop.class =
+  synopsis
+  | cmdsynopsis
+  | funcsynopsis
+  | classsynopsis
+  | fieldsynopsis
+  | method.synop.class
+  | local.synop.class
+local.para.class = notAllowed
+para.class = formalpara | para | simpara | local.para.class
+local.informal.class = notAllowed
+informal.class =
+  address
+  | blockquote
+  | graphic
+  | graphicco
+  | mediaobject
+  | mediaobjectco
+  | informalequation
+  | informalexample
+  | informalfigure
+  | informaltable
+  | local.informal.class
+local.formal.class = notAllowed
+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.
+ebnf.block.hook = notAllowed
+local.compound.class = notAllowed
+compound.class =
+  msgset
+  | procedure
+  | sidebar
+  | qandaset
+  | task
+  | ebnf.block.hook
+  | local.compound.class
+local.genobj.class = notAllowed
+genobj.class =
+  anchor | bridgehead | remark | highlights | local.genobj.class
+local.descobj.class = notAllowed
+descobj.class = abstract | authorblurb | epigraph | local.descobj.class
+# Character-level classes ..............................................
+local.xref.char.class = notAllowed
+xref.char.class = footnoteref | xref | biblioref | local.xref.char.class
+local.gen.char.class = notAllowed
+gen.char.class =
+  abbrev
+  | acronym
+  | citation
+  | citerefentry
+  | citetitle
+  | citebiblioid
+  | emphasis
+  | firstterm
+  | foreignphrase
+  | glossterm
+  | termdef
+  | footnote
+  | phrase
+  | orgname
+  | quote
+  | trademark
+  | wordasword
+  | personname
+  | local.gen.char.class
+local.link.char.class = notAllowed
+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.
+ebnf.inline.hook = notAllowed
+local.tech.char.class = notAllowed
+tech.char.class =
+  action
+  | application
+  | classname
+  | methodname
+  | interfacename
+  | exceptionname
+  | ooclass
+  | oointerface
+  | ooexception
+  | package
+  | command
+  | computeroutput
+  | database
+  | email
+  | envar
+  | errorcode
+  | errorname
+  | errortype
+  | errortext
+  | filename
+  | function
+  | guibutton
+  | guiicon
+  | guilabel
+  | guimenu
+  | guimenuitem
+  | guisubmenu
+  | hardware
+  | interface
+  | keycap
+  | keycode
+  | keycombo
+  | keysym
+  | literal
+  | code
+  | constant
+  | markup
+  | medialabel
+  | menuchoice
+  | mousebutton
+  | option
+  | optional
+  | parameter
+  | prompt
+  | property
+  | replaceable
+  | returnvalue
+  | sgmltag
+  | structfield
+  | structname
+  | symbol
+  | systemitem
+  | uri
+  | \token
+  | type
+  | userinput
+  | varname
+  | ebnf.inline.hook
+  | local.tech.char.class
+local.base.char.class = notAllowed
+base.char.class = anchor | local.base.char.class
+local.docinfo.char.class = notAllowed
+docinfo.char.class =
+  author
+  | authorinitials
+  | corpauthor
+  | corpcredit
+  | modespec
+  | othercredit
+  | productname
+  | productnumber
+  | revhistory
+  | local.docinfo.char.class
+local.other.char.class = notAllowed
+other.char.class =
+  remark | subscript | superscript | local.other.char.class
+local.inlineobj.char.class = notAllowed
+inlineobj.char.class =
+  inlinegraphic
+  | inlinemediaobject
+  | inlineequation
+  | local.inlineobj.char.class
+# ......................................................................
+
+# Entities for content models ..........................................
+formalobject.title.content = title, titleabbrev?
+# Redeclaration placeholder ............................................
+
+# For redeclaring entities that are declared after this point while
+# retaining their references to the entities that are declared before
+# this point
+
+# 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.
+local.component.mix = notAllowed
+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
+  | forms.hook
+  | local.component.mix
+local.sidebar.mix = notAllowed
+sidebar.mix =
+  list.class
+  | admon.class
+  | linespecific.class
+  | synop.class
+  | para.class
+  | informal.class
+  | formal.class
+  | procedure
+  | genobj.class
+  | ndxterm.class
+  | beginpage
+  | forms.hook
+  | local.sidebar.mix
+local.qandaset.mix = notAllowed
+qandaset.mix =
+  list.class
+  | admon.class
+  | linespecific.class
+  | synop.class
+  | para.class
+  | informal.class
+  | formal.class
+  | procedure
+  | genobj.class
+  | ndxterm.class
+  | forms.hook
+  | local.qandaset.mix
+local.revdescription.mix = notAllowed
+revdescription.mix =
+  list.class
+  | admon.class
+  | linespecific.class
+  | synop.class
+  | para.class
+  | informal.class
+  | formal.class
+  | procedure
+  | genobj.class
+  | ndxterm.class
+  | local.revdescription.mix
+local.footnote.mix = notAllowed
+footnote.mix =
+  list.class
+  | linespecific.class
+  | synop.class
+  | para.class
+  | informal.class
+  | local.footnote.mix
+local.example.mix = notAllowed
+example.mix =
+  list.class
+  | linespecific.class
+  | synop.class
+  | para.class
+  | informal.class
+  | ndxterm.class
+  | beginpage
+  | procedure
+  | forms.hook
+  | local.example.mix
+local.highlights.mix = notAllowed
+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
+local.para.mix = notAllowed
+para.mix =
+  list.class
+  | admon.class
+  | linespecific.class
+  | informal.class
+  | formal.class
+  | local.para.mix
+local.admon.mix = notAllowed
+admon.mix =
+  list.class
+  | linespecific.class
+  | synop.class
+  | para.class
+  | informal.class
+  | formal.class
+  | procedure
+  | sidebar
+  | anchor
+  | bridgehead
+  | remark
+  | ndxterm.class
+  | beginpage
+  | forms.hook
+  | local.admon.mix
+local.figure.mix = notAllowed
+figure.mix =
+  linespecific.class
+  | synop.class
+  | informal.class
+  | ndxterm.class
+  | beginpage
+  | forms.hook
+  | local.figure.mix
+local.tabentry.mix = notAllowed
+tabentry.mix =
+  list.class
+  | admon.class
+  | linespecific.class
+  | para.class
+  | graphic
+  | mediaobject
+  | forms.hook
+  | local.tabentry.mix
+local.glossdef.mix = notAllowed
+glossdef.mix =
+  list.class
+  | linespecific.class
+  | synop.class
+  | para.class
+  | informal.class
+  | formal.class
+  | remark
+  | ndxterm.class
+  | beginpage
+  | local.glossdef.mix
+local.legalnotice.mix = notAllowed
+legalnotice.mix =
+  list.class
+  | admon.class
+  | linespecific.class
+  | para.class
+  | blockquote
+  | ndxterm.class
+  | beginpage
+  | local.legalnotice.mix
+local.textobject.mix = notAllowed
+textobject.mix =
+  list.class
+  | admon.class
+  | linespecific.class
+  | para.class
+  | blockquote
+  | local.textobject.mix
+local.mediaobject.mix = notAllowed
+mediaobject.mix =
+  videoobject
+  | audioobject
+  | imageobject
+  | imageobjectco
+  | textobject
+  | local.mediaobject.mix
+local.listpreamble.mix = notAllowed
+listpreamble.mix =
+  admon.class
+  | linespecific.class
+  | synop.class
+  | para.class
+  | informal.class
+  | genobj.class
+  | descobj.class
+  | ndxterm.class
+  | beginpage
+  | forms.hook
+  | local.listpreamble.mix
+# Character-level mixtures .............................................
+
+# sgml.features
+
+# not [sgml.features[
+
+# ]] not sgml.features
+
+#                     #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.
+local.para.char.mix = notAllowed
+para.char.mix =
+  text
+  | 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
+local.title.char.mix = notAllowed
+title.char.mix =
+  text
+  | 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
+local.ndxterm.char.mix = notAllowed
+ndxterm.char.mix =
+  text
+  | 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
+local.cptr.char.mix = notAllowed
+cptr.char.mix =
+  text
+  | link.char.class
+  | tech.char.class
+  | base.char.class
+  | other.char.class
+  | inlinegraphic
+  | inlinemediaobject
+  | ndxterm.class
+  | beginpage
+  | local.cptr.char.mix
+local.smallcptr.char.mix = notAllowed
+smallcptr.char.mix =
+  text
+  | replaceable
+  | inlinegraphic
+  | inlinemediaobject
+  | ndxterm.class
+  | beginpage
+  | local.smallcptr.char.mix
+local.word.char.mix = notAllowed
+word.char.mix =
+  text
+  | acronym
+  | emphasis
+  | trademark
+  | link.char.class
+  | base.char.class
+  | other.char.class
+  | inlinegraphic
+  | inlinemediaobject
+  | ndxterm.class
+  | beginpage
+  | local.word.char.mix
+local.docinfo.char.mix = notAllowed
+docinfo.char.mix =
+  text
+  | 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 attributes and attribute components .....................
+
+# Effectivity attributes ...............................................
+
+# Arch: Computer or chip architecture to which element applies; no
+# default
+arch.attrib = attribute arch { text }?
+# Condition: General-purpose effectivity attribute
+condition.attrib = attribute condition { text }?
+# Conformance: Standards conformance characteristics
+conformance.attrib = attribute conformance { xsd:NMTOKENS }?
+# OS: Operating system to which element applies; no default
+os.attrib = attribute os { text }?
+# Revision: Editorial revision to which element belongs; no default
+revision.attrib = attribute revision { text }?
+# Security: Security classification; no default
+security.attrib = attribute security { text }?
+# UserLevel: Level of user experience to which element applies; no
+# default
+userlevel.attrib = attribute userlevel { text }?
+# Vendor: Computer vendor to which element applies; no default
+vendor.attrib = attribute vendor { text }?
+# Wordsize: Computer word size (32 bit, 64 bit, etc.); no default
+wordsize.attrib = attribute wordsize { text }?
+local.effectivity.attrib = empty
+effectivity.attrib =
+  arch.attrib,
+  condition.attrib,
+  conformance.attrib,
+  os.attrib,
+  revision.attrib,
+  security.attrib,
+  userlevel.attrib,
+  vendor.attrib,
+  wordsize.attrib,
+  local.effectivity.attrib
+# Common attributes ....................................................
+
+# Id: Unique identifier of element; no default
+id.attrib = attribute id { xsd:ID }?
+# Id: Unique identifier of element; a value must be supplied; no
+# default
+idreq.attrib = attribute id { xsd:ID }
+# Lang: Indicator of language in which element is written, for
+# translation, character set management, etc.; no default
+lang.attrib = attribute lang { text }?
+# Remap: Previous role of element before conversion; no default
+remap.attrib = attribute remap { text }?
+# Role: New role of element in local environment; no default
+role.attrib = attribute role { text }?
+# XRefLabel: Alternate labeling string for XRef text generation;
+# default is usually title or other appropriate label text already
+# contained in element
+xreflabel.attrib = attribute xreflabel { text }?
+# RevisionFlag: Revision status of element; default is that element
+# wasn't revised
+revisionflag.attrib =
+  attribute revisionflag { "changed" | "added" | "deleted" | "off" }?
+local.common.attrib = empty
+# dir: Bidirectional override
+dir.attrib = attribute dir { "ltr" | "rtl" | "lro" | "rlo" }?
+# xml:base: base URI
+xml-base.attrib = attribute xml:base { text }?
+# Role is included explicitly on each element
+common.attrib =
+  id.attrib,
+  lang.attrib,
+  remap.attrib,
+  xreflabel.attrib,
+  revisionflag.attrib,
+  effectivity.attrib,
+  dir.attrib,
+  xml-base.attrib,
+  local.common.attrib
+# Role is included explicitly on each element
+idreq.common.attrib =
+  idreq.attrib,
+  lang.attrib,
+  remap.attrib,
+  xreflabel.attrib,
+  revisionflag.attrib,
+  effectivity.attrib,
+  dir.attrib,
+  xml-base.attrib,
+  local.common.attrib
+# Semi-common attributes and other attribute entities ..................
+local.graphics.attrib = empty
+# 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
+graphics.attrib =
+  attribute entityref { xsd:ENTITY }?,
+  attribute fileref { text }?,
+  attribute format { notation.class }?,
+  attribute srccredit { text }?,
+  attribute width { text }?,
+  attribute contentwidth { text }?,
+  attribute depth { text }?,
+  attribute contentdepth { text }?,
+  attribute align { "left" | "right" | "center" }?,
+  attribute valign { "top" | "middle" | "bottom" }?,
+  attribute scale { text }?,
+  attribute scalefit { yesorno.attvals }?,
+  local.graphics.attrib
+local.keyaction.attrib = empty
+# 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
+keyaction.attrib =
+  attribute action {
+    "click" | "double-click" | "press" | "seq" | "simul" | "other"
+  }?,
+  attribute otheraction { text }?,
+  local.keyaction.attrib
+# Label: Identifying number or string; default is usually the
+# appropriate number or string autogenerated by a formatter
+label.attrib = attribute label { text }?
+# xml:space: whitespace treatment
+xml-space.attrib = attribute xml:space { "preserve" }?
+# Format: whether element is assumed to contain significant white
+# space
+linespecific.attrib =
+  [ a:defaultValue = "linespecific" ]
+  attribute format { "linespecific" }?,
+  xml-space.attrib,
+  attribute linenumbering { "numbered" | "unnumbered" }?,
+  attribute continuation { "continues" | "restarts" }?,
+  attribute startinglinenumber { text }?,
+  attribute language { text }?
+# Linkend: link to related information; no default
+linkend.attrib = attribute linkend { xsd:IDREF }?
+# Linkend: required link to related information
+linkendreq.attrib = attribute linkend { xsd:IDREF }
+# Linkends: link to one or more sets of related information; no
+# default
+linkends.attrib = attribute linkends { xsd:IDREFS }?
+local.mark.attrib = empty
+mark.attrib =
+  attribute mark { text }?,
+  local.mark.attrib
+# MoreInfo: whether element's content has an associated RefEntry
+moreinfo.attrib =
+  [ a:defaultValue = "none" ]
+  attribute moreinfo { "refentry" | "none" }?
+# Pagenum: number of page on which element appears; no default
+pagenum.attrib = attribute pagenum { text }?
+local.status.attrib = empty
+# Status: Editorial or publication status of the element
+# it applies to, such as "in review" or "approved for distribution"
+status.attrib =
+  attribute status { text }?,
+  local.status.attrib
+# Width: width of the longest line in the element to which it
+# pertains, in number of characters
+width.attrib = attribute width { text }?
+# ......................................................................
+
+# Title elements .......................................................
+local.title.attrib = empty
+title.role.attrib = role.attrib
+# doc:The text of the title of a section of a document or of a formal block-level element.
+title = element title { title.attlist, title.char.mix* }
+# end of title.element
+title.attlist &=
+  pagenum.attrib, common.attrib, title.role.attrib, local.title.attrib
+# end of title.attlist
+
+# end of title.module
+local.titleabbrev.attrib = empty
+titleabbrev.role.attrib = role.attrib
+# doc:The abbreviation of a Title.
+titleabbrev =
+  element titleabbrev { titleabbrev.attlist, title.char.mix* }
+# end of titleabbrev.element
+titleabbrev.attlist &=
+  common.attrib, titleabbrev.role.attrib, local.titleabbrev.attrib
+# end of titleabbrev.attlist
+
+# end of titleabbrev.module
+local.subtitle.attrib = empty
+subtitle.role.attrib = role.attrib
+# doc:The subtitle of a document.
+subtitle = element subtitle { subtitle.attlist, title.char.mix* }
+# end of subtitle.element
+subtitle.attlist &=
+  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.
+local.person.ident.mix = notAllowed
+person.ident.mix =
+  honorific
+  | firstname
+  | surname
+  | lineage
+  | othername
+  | affiliation
+  | authorblurb
+  | contrib
+  | local.person.ident.mix
+local.bibliocomponent.mix = notAllowed
+bibliocomponent.mix =
+  abbrev
+  | abstract
+  | address
+  | artpagenums
+  | author
+  | authorgroup
+  | authorinitials
+  | bibliomisc
+  | biblioset
+  | collab
+  | confgroup
+  | contractnum
+  | contractsponsor
+  | copyright
+  | corpauthor
+  | corpname
+  | corpcredit
+  | date
+  | edition
+  | editor
+  | invpartnumber
+  | isbn
+  | issn
+  | issuenum
+  | orgname
+  | biblioid
+  | citebiblioid
+  | bibliosource
+  | bibliorelation
+  | bibliocoverage
+  | othercredit
+  | pagenums
+  | printhistory
+  | productname
+  | productnumber
+  | pubdate
+  | publisher
+  | publishername
+  | pubsnumber
+  | releaseinfo
+  | revhistory
+  | seriesvolnums
+  | subtitle
+  | title
+  | titleabbrev
+  | volumenum
+  | citetitle
+  | personname
+  | person.ident.mix
+  | ndxterm.class
+  | local.bibliocomponent.mix
+# I don't think this is well placed, but it needs to be here because of
+
+# the reference to bibliocomponent.mix
+local.info.class = notAllowed
+info.class =
+  graphic
+  | mediaobject
+  | legalnotice
+  | modespec
+  | subjectset
+  | keywordset
+  | itermset
+  | bibliocomponent.mix
+  | local.info.class
+# BiblioList ........................
+local.bibliolist.attrib = empty
+bibliolist.role.attrib = role.attrib
+# doc:A wrapper for a set of bibliography entries.
+bibliolist =
+  element bibliolist {
+    bibliolist.attlist,
+    blockinfo?,
+    formalobject.title.content?,
+    (biblioentry | bibliomixed)+
+  }
+# end of bibliolist.element
+bibliolist.attlist &=
+  common.attrib, bibliolist.role.attrib, local.bibliolist.attrib
+# end of bibliolist.attlist
+
+# end of bibliolist.module
+local.biblioentry.attrib = empty
+biblioentry.role.attrib = role.attrib
+# doc:An entry in a Bibliography.
+biblioentry =
+  element biblioentry {
+    biblioentry.attlist, (articleinfo | bibliocomponent.mix)+
+  }
+# end of biblioentry.element
+biblioentry.attlist &=
+  common.attrib, biblioentry.role.attrib, local.biblioentry.attrib
+# end of biblioentry.attlist
+
+# end of biblioentry.module
+local.bibliomixed.attrib = empty
+bibliomixed.role.attrib = role.attrib
+# doc:An entry in a Bibliography.
+bibliomixed =
+  element bibliomixed {
+    bibliomixed.attlist, (text | bibliocomponent.mix | bibliomset)*
+  }
+# end of bibliomixed.element
+bibliomixed.attlist &=
+  common.attrib, bibliomixed.role.attrib, local.bibliomixed.attrib
+# end of bibliomixed.attlist
+
+# end of bibliomixed.module
+local.articleinfo.attrib = empty
+articleinfo.role.attrib = role.attrib
+# doc:Meta-information for an Article.
+articleinfo = element articleinfo { articleinfo.attlist, info.class+ }
+# end of articleinfo.element
+articleinfo.attlist &=
+  common.attrib, articleinfo.role.attrib, local.articleinfo.attrib
+# end of articleinfo.attlist
+
+# end of articleinfo.module
+local.biblioset.attrib = empty
+biblioset.role.attrib = role.attrib
+# doc:A "raw" container for related bibliographic information.
+biblioset =
+  element biblioset { biblioset.attlist, bibliocomponent.mix+ }
+# end of biblioset.element
+
+# Relation: Relationship of elements contained within BiblioSet
+biblioset.attlist &=
+  attribute relation { text }?,
+  common.attrib,
+  biblioset.role.attrib,
+  local.biblioset.attrib
+# end of biblioset.attlist
+
+# end of biblioset.module
+bibliomset.role.attrib = role.attrib
+local.bibliomset.attrib = empty
+# doc:A "cooked" container for related bibliographic information.
+bibliomset =
+  element bibliomset {
+    bibliomset.attlist, (text | bibliocomponent.mix | bibliomset)*
+  }
+# end of bibliomset.element
+
+# Relation: Relationship of elements contained within BiblioMSet
+bibliomset.attlist &=
+  attribute relation { text }?,
+  common.attrib,
+  bibliomset.role.attrib,
+  local.bibliomset.attrib
+# end of bibliomset.attlist
+
+# end of bibliomset.module
+local.bibliomisc.attrib = empty
+bibliomisc.role.attrib = role.attrib
+# doc:Untyped bibliographic information.
+bibliomisc = element bibliomisc { bibliomisc.attlist, para.char.mix* }
+# end of bibliomisc.element
+bibliomisc.attlist &=
+  common.attrib, bibliomisc.role.attrib, local.bibliomisc.attrib
+# end of bibliomisc.attlist
+
+# end of bibliomisc.module
+
+# ......................................................................
+
+# Subject, Keyword, and ITermSet elements ..............................
+local.subjectset.attrib = empty
+subjectset.role.attrib = role.attrib
+# doc:A set of terms describing the subject matter of a document.
+subjectset = element subjectset { subjectset.attlist, subject+ }
+# end of subjectset.element
+
+# Scheme: Controlled vocabulary employed in SubjectTerms
+subjectset.attlist &=
+  attribute scheme { xsd:NMTOKEN }?,
+  common.attrib,
+  subjectset.role.attrib,
+  local.subjectset.attrib
+# end of subjectset.attlist
+
+# end of subjectset.module
+local.subject.attrib = empty
+subject.role.attrib = role.attrib
+# doc:One of a group of terms describing the subject matter of a document.
+subject = element subject { subject.attlist, subjectterm+ }
+# end of subject.element
+
+# Weight: Ranking of this group of SubjectTerms relative
+# to others, 0 is low, no highest value specified
+subject.attlist &=
+  attribute weight { text }?,
+  common.attrib,
+  subject.role.attrib,
+  local.subject.attrib
+# end of subject.attlist
+
+# end of subject.module
+local.subjectterm.attrib = empty
+subjectterm.role.attrib = role.attrib
+# doc:A term in a group of terms describing the subject matter of a document.
+subjectterm = element subjectterm { subjectterm.attlist, text }
+# end of subjectterm.element
+subjectterm.attlist &=
+  common.attrib, subjectterm.role.attrib, local.subjectterm.attrib
+# end of subjectterm.attlist
+
+# end of subjectterm.module
+
+# end of subjectset.content.module
+local.keywordset.attrib = empty
+keywordset.role.attrib = role.attrib
+# doc:A set of keywords describing the content of a document.
+keywordset = element keywordset { keywordset.attlist, keyword+ }
+# end of keywordset.element
+keywordset.attlist &=
+  common.attrib, keywordset.role.attrib, local.keywordset.attrib
+# end of keywordset.attlist
+
+# end of keywordset.module
+local.keyword.attrib = empty
+keyword.role.attrib = role.attrib
+# doc:One of a set of keywords describing the content of a document.
+keyword = element keyword { keyword.attlist, text }
+# end of keyword.element
+keyword.attlist &=
+  common.attrib, keyword.role.attrib, local.keyword.attrib
+# end of keyword.attlist
+
+# end of keyword.module
+
+# end of keywordset.content.module
+local.itermset.attrib = empty
+itermset.role.attrib = role.attrib
+# doc:A set of index terms in the meta-information of a document.
+itermset = element itermset { itermset.attlist, indexterm+ }
+# end of itermset.element
+itermset.attlist &=
+  common.attrib, itermset.role.attrib, local.itermset.attrib
+# end of itermset.attlist
+
+# end of itermset.module
+
+# Bibliographic info for "blocks"
+local.blockinfo.attrib = empty
+blockinfo.role.attrib = role.attrib
+# doc:Meta-information for a block element.
+blockinfo = element blockinfo { blockinfo.attlist, info.class+ }
+# end of blockinfo.element
+blockinfo.attlist &=
+  common.attrib, blockinfo.role.attrib, local.blockinfo.attrib
+# end of blockinfo.attlist
+
+# end of blockinfo.module
+
+# ......................................................................
+
+# Compound (section-ish) elements ......................................
+
+# Message set ......................
+local.msgset.attrib = empty
+msgset.role.attrib = role.attrib
+# doc:A detailed set of messages, usually error messages.
+msgset =
+  element msgset {
+    msgset.attlist,
+    blockinfo?,
+    formalobject.title.content?,
+    (msgentry+ | simplemsgentry+)
+  }
+# end of msgset.element
+msgset.attlist &= common.attrib, msgset.role.attrib, local.msgset.attrib
+# end of msgset.attlist
+
+# end of msgset.module
+local.msgentry.attrib = empty
+msgentry.role.attrib = role.attrib
+# doc:A wrapper for an entry in a message set.
+msgentry =
+  element msgentry { msgentry.attlist, msg+, msginfo?, msgexplan* }
+# end of msgentry.element
+msgentry.attlist &=
+  common.attrib, msgentry.role.attrib, local.msgentry.attrib
+# end of msgentry.attlist
+
+# end of msgentry.module
+local.simplemsgentry.attrib = empty
+simplemsgentry.role.attrib = role.attrib
+# doc:A wrapper for a simpler entry in a message set.
+simplemsgentry =
+  element simplemsgentry { simplemsgentry.attlist, msgtext, msgexplan+ }
+# end of simplemsgentry.element
+simplemsgentry.attlist &=
+  attribute audience { text }?,
+  attribute level { text }?,
+  attribute origin { text }?,
+  common.attrib,
+  simplemsgentry.role.attrib,
+  local.simplemsgentry.attrib
+# end of simplemsgentry.attlist
+
+# end of simplemsgentry.module
+local.msg.attrib = empty
+msg.role.attrib = role.attrib
+# doc:A message in a message set.
+msg = element msg { msg.attlist, title?, msgmain, (msgsub | msgrel)* }
+# end of msg.element
+msg.attlist &= common.attrib, msg.role.attrib, local.msg.attrib
+# end of msg.attlist
+
+# end of msg.module
+local.msgmain.attrib = empty
+msgmain.role.attrib = role.attrib
+# doc:The primary component of a message in a message set.
+msgmain = element msgmain { msgmain.attlist, title?, msgtext }
+# end of msgmain.element
+msgmain.attlist &=
+  common.attrib, msgmain.role.attrib, local.msgmain.attrib
+# end of msgmain.attlist
+
+# end of msgmain.module
+local.msgsub.attrib = empty
+msgsub.role.attrib = role.attrib
+# doc:A subcomponent of a message in a message set.
+msgsub = element msgsub { msgsub.attlist, title?, msgtext }
+# end of msgsub.element
+msgsub.attlist &= common.attrib, msgsub.role.attrib, local.msgsub.attrib
+# end of msgsub.attlist
+
+# end of msgsub.module
+local.msgrel.attrib = empty
+msgrel.role.attrib = role.attrib
+# doc:A related component of a message in a message set.
+msgrel = element msgrel { msgrel.attlist, title?, msgtext }
+# end of msgrel.element
+msgrel.attlist &= common.attrib, msgrel.role.attrib, local.msgrel.attrib
+# end of msgrel.attlist
+
+# end of msgrel.module
+
+# MsgText (defined in the Inlines section, below)
+local.msginfo.attrib = empty
+msginfo.role.attrib = role.attrib
+# doc:Information about a message in a message set.
+msginfo =
+  element msginfo { msginfo.attlist, (msglevel | msgorig | msgaud)* }
+# end of msginfo.element
+msginfo.attlist &=
+  common.attrib, msginfo.role.attrib, local.msginfo.attrib
+# end of msginfo.attlist
+
+# end of msginfo.module
+local.msglevel.attrib = empty
+msglevel.role.attrib = role.attrib
+# doc:The level of importance or severity of a message in a message set.
+msglevel = element msglevel { msglevel.attlist, smallcptr.char.mix* }
+# end of msglevel.element
+msglevel.attlist &=
+  common.attrib, msglevel.role.attrib, local.msglevel.attrib
+# end of msglevel.attlist
+
+# end of msglevel.module
+local.msgorig.attrib = empty
+msgorig.role.attrib = role.attrib
+# doc:The origin of a message in a message set.
+msgorig = element msgorig { msgorig.attlist, smallcptr.char.mix* }
+# end of msgorig.element
+msgorig.attlist &=
+  common.attrib, msgorig.role.attrib, local.msgorig.attrib
+# end of msgorig.attlist
+
+# end of msgorig.module
+local.msgaud.attrib = empty
+msgaud.role.attrib = role.attrib
+# doc:The audience to which a message in a message set is relevant.
+msgaud = element msgaud { msgaud.attlist, para.char.mix* }
+# end of msgaud.element
+msgaud.attlist &= common.attrib, msgaud.role.attrib, local.msgaud.attrib
+# end of msgaud.attlist
+
+# end of msgaud.module
+local.msgexplan.attrib = empty
+msgexplan.role.attrib = role.attrib
+# doc:Explanatory material relating to a message in a message set.
+msgexplan =
+  element msgexplan { msgexplan.attlist, title?, component.mix+ }
+# end of msgexplan.element
+msgexplan.attlist &=
+  common.attrib, msgexplan.role.attrib, local.msgexplan.attrib
+# end of msgexplan.attlist
+
+# end of msgexplan.module
+
+# end of msgset.content.module
+local.task.attrib = empty
+task.role.attrib = role.attrib
+# doc:A task to be completed.
+task =
+  element task {
+    task.attlist,
+    blockinfo?,
+    ndxterm.class*,
+    formalobject.title.content,
+    tasksummary?,
+    taskprerequisites?,
+    procedure,
+    example*,
+    taskrelated?
+  }
+# end of task.element
+task.attlist &= common.attrib, task.role.attrib, local.task.attrib
+# end of task.attlist
+
+# end of task.module
+local.tasksummary.attrib = empty
+tasksummary.role.attrib = role.attrib
+# doc:A summary of a task.
+tasksummary =
+  element tasksummary {
+    tasksummary.attlist,
+    blockinfo?,
+    formalobject.title.content?,
+    component.mix+
+  }
+# end of tasksummary.element
+tasksummary.attlist &=
+  common.attrib, tasksummary.role.attrib, local.tasksummary.attrib
+# end of tasksummary.attlist
+
+# end of tasksummary.module
+local.taskprerequisites.attrib = empty
+taskprerequisites.role.attrib = role.attrib
+# doc:The prerequisites for a task.
+taskprerequisites =
+  element taskprerequisites {
+    taskprerequisites.attlist,
+    blockinfo?,
+    formalobject.title.content?,
+    component.mix+
+  }
+# end of taskprerequisites.element
+taskprerequisites.attlist &=
+  common.attrib,
+  taskprerequisites.role.attrib,
+  local.taskprerequisites.attrib
+# end of taskprerequisites.attlist
+
+# end of taskprerequisites.module
+local.taskrelated.attrib = empty
+taskrelated.role.attrib = role.attrib
+# doc:Information related to a task.
+taskrelated =
+  element taskrelated {
+    taskrelated.attlist,
+    blockinfo?,
+    formalobject.title.content?,
+    component.mix+
+  }
+# end of taskrelated.element
+taskrelated.attlist &=
+  common.attrib, taskrelated.role.attrib, local.taskrelated.attrib
+# end of taskrelated.attlist
+
+# end of taskrelated.module
+
+# end of task.content.module
+
+# QandASet ........................
+local.qandaset.attrib = empty
+qandaset.role.attrib = role.attrib
+# doc:A question-and-answer set.
+qandaset =
+  element qandaset {
+    qandaset.attlist,
+    blockinfo?,
+    formalobject.title.content?,
+    qandaset.mix*,
+    (qandadiv+ | qandaentry+)
+  }
+# end of qandaset.element
+qandaset.attlist &=
+  attribute defaultlabel { "qanda" | "number" | "none" }?,
+  common.attrib,
+  qandaset.role.attrib,
+  local.qandaset.attrib
+# end of qandaset.attlist
+
+# end of qandaset.module
+local.qandadiv.attrib = empty
+qandadiv.role.attrib = role.attrib
+# doc:A titled division in a QandASet.
+qandadiv =
+  element qandadiv {
+    qandadiv.attlist,
+    blockinfo?,
+    formalobject.title.content?,
+    qandaset.mix*,
+    (qandadiv+ | qandaentry+)
+  }
+# end of qandadiv.element
+qandadiv.attlist &=
+  common.attrib, qandadiv.role.attrib, local.qandadiv.attrib
+# end of qandadiv.attlist
+
+# end of qandadiv.module
+local.qandaentry.attrib = empty
+qandaentry.role.attrib = role.attrib
+# doc:A question/answer set within a QandASet.
+qandaentry =
+  element qandaentry {
+    qandaentry.attlist, blockinfo?, revhistory?, question, answer*
+  }
+# end of qandaentry.element
+qandaentry.attlist &=
+  common.attrib, qandaentry.role.attrib, local.qandaentry.attrib
+# end of qandaentry.attlist
+
+# end of qandaentry.module
+local.question.attrib = empty
+question.role.attrib = role.attrib
+# doc:A question in a QandASet.
+question = element question { question.attlist, label?, qandaset.mix+ }
+# end of question.element
+question.attlist &=
+  common.attrib, question.role.attrib, local.question.attrib
+# end of question.attlist
+
+# end of question.module
+local.answer.attrib = empty
+answer.role.attrib = role.attrib
+# doc:An answer to a question posed in a QandASet.
+answer =
+  element answer { answer.attlist, label?, qandaset.mix*, qandaentry* }
+# end of answer.element
+answer.attlist &= common.attrib, answer.role.attrib, local.answer.attrib
+# end of answer.attlist
+
+# end of answer.module
+local.label.attrib = empty
+label.role.attrib = role.attrib
+# doc:A label on a Question or Answer.
+label = element label { label.attlist, word.char.mix* }
+# end of label.element
+label.attlist &= common.attrib, label.role.attrib, local.label.attrib
+# end of label.attlist
+
+# end of label.module
+
+# end of qandaset.content.module
+
+# Procedure ........................
+local.procedure.attrib = empty
+procedure.role.attrib = role.attrib
+# doc:A list of operations to be performed in a well-defined sequence.
+procedure =
+  element procedure {
+    procedure.attlist,
+    blockinfo?,
+    formalobject.title.content?,
+    component.mix*,
+    step+
+  }
+# end of procedure.element
+procedure.attlist &=
+  common.attrib, procedure.role.attrib, local.procedure.attrib
+# end of procedure.attlist
+
+# end of procedure.module
+local.step.attrib = empty
+step.role.attrib = role.attrib
+# doc:A unit of action in a procedure.
+step =
+  element step {
+    step.attlist,
+    title?,
+    ((component.mix+,
+      ((substeps | stepalternatives), component.mix*)?)
+     | ((substeps | stepalternatives), component.mix*))
+  }
+# end of step.element
+
+# Performance: Whether the Step must be performed
+
+# not #REQUIRED!
+step.attlist &=
+  [ a:defaultValue = "required" ]
+  attribute performance { "optional" | "required" }?,
+  common.attrib,
+  step.role.attrib,
+  local.step.attrib
+# end of step.attlist
+
+# end of step.module
+local.substeps.attrib = empty
+substeps.role.attrib = role.attrib
+# doc:A wrapper for steps that occur within steps in a procedure.
+substeps = element substeps { substeps.attlist, step+ }
+# end of substeps.element
+
+# Performance: whether entire set of substeps must be performed
+
+# not #REQUIRED!
+substeps.attlist &=
+  [ a:defaultValue = "required" ]
+  attribute performance { "optional" | "required" }?,
+  common.attrib,
+  substeps.role.attrib,
+  local.substeps.attrib
+# end of substeps.attlist
+
+# end of substeps.module
+local.stepalternatives.attrib = empty
+stepalternatives.role.attrib = role.attrib
+# doc:Alternative steps in a procedure.
+stepalternatives =
+  element stepalternatives { stepalternatives.attlist, step+ }
+# end of stepalternatives.element
+
+# Performance: Whether (one of) the alternatives must be performed
+
+# not #REQUIRED!
+stepalternatives.attlist &=
+  [ a:defaultValue = "required" ]
+  attribute performance { "optional" | "required" }?,
+  common.attrib,
+  stepalternatives.role.attrib,
+  local.stepalternatives.attrib
+# end of stepalternatives.attlist
+
+# end of stepalternatives.module
+
+# end of procedure.content.module
+
+# Sidebar ..........................
+local.sidebarinfo.attrib = empty
+sidebarinfo.role.attrib = role.attrib
+# doc:Meta-information for a Sidebar.
+sidebarinfo = element sidebarinfo { sidebarinfo.attlist, info.class+ }
+# end of sidebarinfo.element
+sidebarinfo.attlist &=
+  common.attrib, sidebarinfo.role.attrib, local.sidebarinfo.attrib
+# end of sidebarinfo.attlist
+
+# end of sidebarinfo.module
+local.sidebar.attrib = empty
+sidebar.role.attrib = role.attrib
+# doc:A portion of a document that is isolated from the main narrative flow.
+sidebar =
+  element sidebar {
+    sidebar.attlist,
+    sidebarinfo?,
+    formalobject.title.content?,
+    sidebar.mix+
+  }
+# end of sidebar.element
+sidebar.attlist &=
+  common.attrib, sidebar.role.attrib, local.sidebar.attrib
+# end of sidebar.attlist
+
+# end of sidebar.module
+
+# end of sidebar.content.model
+
+# ......................................................................
+
+# Paragraph-related elements ...........................................
+local.abstract.attrib = empty
+abstract.role.attrib = role.attrib
+# doc:A summary.
+abstract = element abstract { abstract.attlist, title?, para.class+ }
+# end of abstract.element
+abstract.attlist &=
+  common.attrib, abstract.role.attrib, local.abstract.attrib
+# end of abstract.attlist
+
+# end of abstract.module
+local.authorblurb.attrib = empty
+authorblurb.role.attrib = role.attrib
+# doc:A short description or note about an author.
+authorblurb =
+  element authorblurb { authorblurb.attlist, title?, para.class+ }
+# end of authorblurb.element
+authorblurb.attlist &=
+  common.attrib, authorblurb.role.attrib, local.authorblurb.attrib
+# end of authorblurb.attlist
+
+# end of authorblurb.module
+local.personblurb.attrib = empty
+personblurb.role.attrib = role.attrib
+# doc:A short description or note about a person.
+personblurb =
+  element personblurb { personblurb.attlist, title?, para.class+ }
+# end of personblurb.element
+personblurb.attlist &=
+  common.attrib, personblurb.role.attrib, local.personblurb.attrib
+# end of personblurb.attlist
+
+# end of personblurb.module
+local.blockquote.attrib = empty
+blockquote.role.attrib = role.attrib
+# doc:A quotation set off from the main text.
+blockquote =
+  element blockquote {
+    blockquote.attlist, blockinfo?, title?, attribution?, component.mix+
+  }
+# end of blockquote.element
+blockquote.attlist &=
+  common.attrib, blockquote.role.attrib, local.blockquote.attrib
+# end of blockquote.attlist
+
+# end of blockquote.module
+local.attribution.attrib = empty
+attribution.role.attrib = role.attrib
+# doc:The source of a block quote or epigraph.
+attribution =
+  element attribution { attribution.attlist, para.char.mix* }
+# end of attribution.element
+attribution.attlist &=
+  common.attrib, attribution.role.attrib, local.attribution.attrib
+# end of attribution.attlist
+
+# end of attribution.module
+local.bridgehead.attrib = empty
+bridgehead.role.attrib = role.attrib
+# doc:A free-floating heading.
+bridgehead = element bridgehead { bridgehead.attlist, title.char.mix* }
+# end of bridgehead.element
+
+# Renderas: Indicates the format in which the BridgeHead
+# should appear
+bridgehead.attlist &=
+  attribute renderas {
+    "other" | "sect1" | "sect2" | "sect3" | "sect4" | "sect5"
+  }?,
+  common.attrib,
+  bridgehead.role.attrib,
+  local.bridgehead.attrib
+# end of bridgehead.attlist
+
+# end of bridgehead.module
+local.remark.attrib = empty
+remark.role.attrib = role.attrib
+# doc:A remark (or comment) intended for presentation in a draft manuscript.
+remark = element remark { remark.attlist, para.char.mix* }
+# end of remark.element
+remark.attlist &= common.attrib, remark.role.attrib, local.remark.attrib
+# end of remark.attlist
+
+# end of remark.module
+local.epigraph.attrib = empty
+epigraph.role.attrib = role.attrib
+# doc:A short inscription at the beginning of a document or component.
+epigraph =
+  element epigraph {
+    epigraph.attlist, attribution?, (para.class | literallayout)+
+  }
+# end of epigraph.element
+epigraph.attlist &=
+  common.attrib, epigraph.role.attrib, local.epigraph.attrib
+# end of epigraph.attlist
+
+# Attribution (defined above)
+
+# end of epigraph.module
+local.footnote.attrib = empty
+footnote.role.attrib = role.attrib
+# doc:A footnote.
+footnote = element footnote { footnote.attlist, footnote.mix+ }
+# end of footnote.element
+footnote.attlist &=
+  label.attrib,
+  common.attrib,
+  footnote.role.attrib,
+  local.footnote.attrib
+# end of footnote.attlist
+
+# end of footnote.module
+local.highlights.attrib = empty
+highlights.role.attrib = role.attrib
+# doc:A summary of the main points of the discussed component.
+highlights = element highlights { highlights.attlist, highlights.mix+ }
+# end of highlights.element
+highlights.attlist &=
+  common.attrib, highlights.role.attrib, local.highlights.attrib
+# end of highlights.attlist
+
+# end of highlights.module
+local.formalpara.attrib = empty
+formalpara.role.attrib = role.attrib
+# doc:A paragraph with a title.
+formalpara =
+  element formalpara { formalpara.attlist, title, ndxterm.class*, para }
+# end of formalpara.element
+formalpara.attlist &=
+  common.attrib, formalpara.role.attrib, local.formalpara.attrib
+# end of formalpara.attlist
+
+# end of formalpara.module
+local.para.attrib = empty
+para.role.attrib = role.attrib
+# doc:A paragraph.
+para = element para { para.attlist, (para.char.mix | para.mix)* }
+# end of para.element
+para.attlist &= common.attrib, para.role.attrib, local.para.attrib
+# end of para.attlist
+
+# end of para.module
+local.simpara.attrib = empty
+simpara.role.attrib = role.attrib
+# doc:A paragraph that contains only text and inline markup, no block elements.
+simpara = element simpara { simpara.attlist, para.char.mix* }
+# end of simpara.element
+simpara.attlist &=
+  common.attrib, simpara.role.attrib, local.simpara.attrib
+# end of simpara.attlist
+
+# end of simpara.module
+local.admon.attrib = empty
+admon.role.attrib = role.attrib
+# doc:A note of caution.
+caution = element caution { caution.attlist, title?, admon.mix+ }
+# end of caution.element
+caution.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
+# end of caution.attlist
+
+# doc:An admonition set off from the text.
+important = element important { important.attlist, title?, admon.mix+ }
+# end of important.element
+important.attlist &=
+  common.attrib, admon.role.attrib, local.admon.attrib
+# end of important.attlist
+
+# doc:A message set off from the text.
+note = element note { note.attlist, title?, admon.mix+ }
+# end of note.element
+note.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
+# end of note.attlist
+
+# doc:A suggestion to the user, set off from the text.
+tip = element tip { tip.attlist, title?, admon.mix+ }
+# end of tip.element
+tip.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
+# end of tip.attlist
+
+# doc:An admonition set off from the text.
+warning = element warning { warning.attlist, title?, admon.mix+ }
+# end of warning.element
+warning.attlist &= common.attrib, admon.role.attrib, local.admon.attrib
+# end of warning.attlist
+
+# end of admon.module
+
+# ......................................................................
+
+# Lists ................................................................
+
+# GlossList ........................
+local.glosslist.attrib = empty
+glosslist.role.attrib = role.attrib
+# doc:A wrapper for a set of GlossEntrys.
+glosslist =
+  element glosslist {
+    glosslist.attlist,
+    blockinfo?,
+    formalobject.title.content?,
+    glossentry+
+  }
+# end of glosslist.element
+glosslist.attlist &=
+  common.attrib, glosslist.role.attrib, local.glosslist.attrib
+# end of glosslist.attlist
+
+# end of glosslist.module
+local.glossentry.attrib = empty
+glossentry.role.attrib = role.attrib
+# doc:An entry in a Glossary or GlossList.
+glossentry =
+  element glossentry {
+    glossentry.attlist,
+    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
+glossentry.attlist &=
+  attribute sortas { text }?,
+  common.attrib,
+  glossentry.role.attrib,
+  local.glossentry.attrib
+# end of glossentry.attlist
+
+# end of glossentry.module
+
+# GlossTerm (defined in the Inlines section, below)
+local.glossdef.attrib = empty
+glossdef.role.attrib = role.attrib
+# doc:A definition in a GlossEntry.
+glossdef =
+  element glossdef { glossdef.attlist, glossdef.mix+, glossseealso* }
+# end of glossdef.element
+
+# Subject: List of subjects; keywords for the definition
+glossdef.attlist &=
+  attribute subject { text }?,
+  common.attrib,
+  glossdef.role.attrib,
+  local.glossdef.attrib
+# end of glossdef.attlist
+
+# end of glossdef.module
+local.glosssee.attrib = empty
+glosssee.role.attrib = role.attrib
+# doc:A cross-reference from one GlossEntry to another.
+glosssee = element glosssee { glosssee.attlist, para.char.mix* }
+# end of glosssee.element
+
+# OtherTerm: Reference to the GlossEntry whose GlossTerm
+# should be displayed at the point of the GlossSee
+glosssee.attlist &=
+  attribute otherterm { xsd:IDREF }?,
+  common.attrib,
+  glosssee.role.attrib,
+  local.glosssee.attrib
+# end of glosssee.attlist
+
+# end of glosssee.module
+local.glossseealso.attrib = empty
+glossseealso.role.attrib = role.attrib
+# doc:A cross-reference from one GlossEntry to another.
+glossseealso =
+  element glossseealso { glossseealso.attlist, para.char.mix* }
+# end of glossseealso.element
+
+# OtherTerm: Reference to the GlossEntry whose GlossTerm
+# should be displayed at the point of the GlossSeeAlso
+glossseealso.attlist &=
+  attribute otherterm { xsd:IDREF }?,
+  common.attrib,
+  glossseealso.role.attrib,
+  local.glossseealso.attrib
+# end of glossseealso.attlist
+
+# end of glossseealso.module
+
+# end of glossentry.content.module
+
+# ItemizedList and OrderedList .....
+local.itemizedlist.attrib = empty
+itemizedlist.role.attrib = role.attrib
+# doc:A list in which each entry is marked with a bullet or other dingbat.
+itemizedlist =
+  element itemizedlist {
+    itemizedlist.attlist,
+    blockinfo?,
+    formalobject.title.content?,
+    listpreamble.mix*,
+    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
+itemizedlist.attlist &=
+  attribute spacing { "normal" | "compact" }?,
+  mark.attrib,
+  common.attrib,
+  itemizedlist.role.attrib,
+  local.itemizedlist.attrib
+# end of itemizedlist.attlist
+
+# end of itemizedlist.module
+local.orderedlist.attrib = empty
+orderedlist.role.attrib = role.attrib
+# doc:A list in which each entry is marked with a sequentially incremented label.
+orderedlist =
+  element orderedlist {
+    orderedlist.attlist,
+    blockinfo?,
+    formalobject.title.content?,
+    listpreamble.mix*,
+    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
+orderedlist.attlist &=
+  attribute numeration {
+    "arabic" | "upperalpha" | "loweralpha" | "upperroman" | "lowerroman"
+  }?,
+  [ a:defaultValue = "ignore" ]
+  attribute inheritnum { "inherit" | "ignore" }?,
+  [ a:defaultValue = "restarts" ]
+  attribute continuation { "continues" | "restarts" }?,
+  attribute spacing { "normal" | "compact" }?,
+  common.attrib,
+  orderedlist.role.attrib,
+  local.orderedlist.attrib
+# end of orderedlist.attlist
+
+# end of orderedlist.module
+local.listitem.attrib = empty
+listitem.role.attrib = role.attrib
+# doc:A wrapper for the elements of a list item.
+listitem = element listitem { listitem.attlist, 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
+listitem.attlist &=
+  attribute override { text }?,
+  common.attrib,
+  listitem.role.attrib,
+  local.listitem.attrib
+# end of listitem.attlist
+
+# end of listitem.module
+
+# SegmentedList ....................
+local.segmentedlist.attrib = empty
+segmentedlist.role.attrib = role.attrib
+# doc:A segmented list, a list of sets of elements.
+segmentedlist =
+  element segmentedlist {
+    segmentedlist.attlist,
+    formalobject.title.content?,
+    segtitle+,
+    seglistitem+
+  }
+# end of segmentedlist.element
+segmentedlist.attlist &=
+  common.attrib, segmentedlist.role.attrib, local.segmentedlist.attrib
+# end of segmentedlist.attlist
+
+# end of segmentedlist.module
+local.segtitle.attrib = empty
+segtitle.role.attrib = role.attrib
+# doc:The title of an element of a list item in a segmented list.
+segtitle = element segtitle { segtitle.attlist, title.char.mix* }
+# end of segtitle.element
+segtitle.attlist &=
+  common.attrib, segtitle.role.attrib, local.segtitle.attrib
+# end of segtitle.attlist
+
+# end of segtitle.module
+local.seglistitem.attrib = empty
+seglistitem.role.attrib = role.attrib
+# doc:A list item in a segmented list.
+seglistitem = element seglistitem { seglistitem.attlist, seg+ }
+# end of seglistitem.element
+seglistitem.attlist &=
+  common.attrib, seglistitem.role.attrib, local.seglistitem.attrib
+# end of seglistitem.attlist
+
+# end of seglistitem.module
+local.seg.attrib = empty
+seg.role.attrib = role.attrib
+# doc:An element of a list item in a segmented list.
+seg = element seg { seg.attlist, para.char.mix* }
+# end of seg.element
+seg.attlist &= common.attrib, seg.role.attrib, local.seg.attrib
+# end of seg.attlist
+
+# end of seg.module
+
+# end of segmentedlist.content.module
+
+# SimpleList .......................
+local.simplelist.attrib = empty
+simplelist.role.attrib = role.attrib
+# doc:An undecorated list of single words or short phrases.
+simplelist = element simplelist { simplelist.attlist, 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.
+simplelist.attlist &=
+  attribute columns { text }?,
+  [ a:defaultValue = "vert" ]
+  attribute type { "inline" | "vert" | "horiz" }?,
+  common.attrib,
+  simplelist.role.attrib,
+  local.simplelist.attrib
+# end of simplelist.attlist
+
+# end of simplelist.module
+local.member.attrib = empty
+member.role.attrib = role.attrib
+# doc:An element of a simple list.
+member = element member { member.attlist, para.char.mix* }
+# end of member.element
+member.attlist &= common.attrib, member.role.attrib, local.member.attrib
+# end of member.attlist
+
+# end of member.module
+
+# end of simplelist.content.module
+
+# VariableList .....................
+local.variablelist.attrib = empty
+variablelist.role.attrib = role.attrib
+# doc:A list in which each entry is composed of a set of one or more terms and an associated description.
+variablelist =
+  element variablelist {
+    variablelist.attlist,
+    blockinfo?,
+    formalobject.title.content?,
+    listpreamble.mix*,
+    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.
+variablelist.attlist &=
+  attribute termlength { text }?,
+  attribute spacing { "normal" | "compact" }?,
+  common.attrib,
+  variablelist.role.attrib,
+  local.variablelist.attrib
+# end of variablelist.attlist
+
+# end of variablelist.module
+local.varlistentry.attrib = empty
+varlistentry.role.attrib = role.attrib
+# doc:A wrapper for a set of terms and the associated description in a variable list.
+varlistentry =
+  element varlistentry { varlistentry.attlist, term+, listitem }
+# end of varlistentry.element
+varlistentry.attlist &=
+  common.attrib, varlistentry.role.attrib, local.varlistentry.attrib
+# end of varlistentry.attlist
+
+# end of varlistentry.module
+local.term.attrib = empty
+term.role.attrib = role.attrib
+# doc:The word or phrase being defined or described in a variable list.
+term = element term { term.attlist, para.char.mix* }
+# end of term.element
+term.attlist &= 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 ......................
+local.calloutlist.attrib = empty
+calloutlist.role.attrib = role.attrib
+# doc:A list of Callouts.
+calloutlist =
+  element calloutlist {
+    calloutlist.attlist, formalobject.title.content?, callout+
+  }
+# end of calloutlist.element
+calloutlist.attlist &=
+  common.attrib, calloutlist.role.attrib, local.calloutlist.attrib
+# end of calloutlist.attlist
+
+# end of calloutlist.module
+local.callout.attrib = empty
+callout.role.attrib = role.attrib
+# doc:A “called out” description of a marked Area.
+callout = element callout { callout.attlist, component.mix+ }
+# end of callout.element
+
+# AreaRefs: IDs of one or more Areas or AreaSets described
+# by this Callout
+callout.attlist &=
+  attribute arearefs { xsd:IDREFS },
+  common.attrib,
+  callout.role.attrib,
+  local.callout.attrib
+# end of callout.attlist
+
+# end of callout.module
+
+# end of calloutlist.content.module
+
+# ......................................................................
+
+# Objects ..............................................................
+
+# Examples etc. ....................
+local.example.attrib = empty
+example.role.attrib = role.attrib
+# doc:A formal example, with a title.
+example =
+  element example {
+    example.attlist,
+    blockinfo?,
+    formalobject.title.content,
+    example.mix+
+  }
+# end of example.element
+example.attlist &=
+  attribute floatstyle { text }?,
+  label.attrib,
+  width.attrib,
+  common.attrib,
+  example.role.attrib,
+  local.example.attrib
+# end of example.attlist
+
+# end of example.module
+local.informalexample.attrib = empty
+informalexample.role.attrib = role.attrib
+# doc:A displayed example without a title.
+informalexample =
+  element informalexample {
+    informalexample.attlist, blockinfo?, example.mix+
+  }
+# end of informalexample.element
+informalexample.attlist &=
+  attribute floatstyle { text }?,
+  width.attrib,
+  common.attrib,
+  informalexample.role.attrib,
+  local.informalexample.attrib
+# end of informalexample.attlist
+
+# end of informalexample.module
+local.programlistingco.attrib = empty
+programlistingco.role.attrib = role.attrib
+# doc:A program listing with associated areas used in callouts.
+programlistingco =
+  element programlistingco {
+    programlistingco.attlist, areaspec, programlisting, calloutlist*
+  }
+# end of programlistingco.element
+programlistingco.attlist &=
+  common.attrib,
+  programlistingco.role.attrib,
+  local.programlistingco.attrib
+# end of programlistingco.attlist
+
+# CalloutList (defined above in Lists)
+
+# end of informalexample.module
+local.areaspec.attrib = empty
+areaspec.role.attrib = role.attrib
+# doc:A collection of regions in a graphic or code example.
+areaspec = element areaspec { areaspec.attlist, (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
+areaspec.attlist &=
+  attribute units {
+    "calspair" | "linecolumn" | "linerange" | "linecolumnpair" | "other"
+  }?,
+  attribute otherunits { xsd:NMTOKEN }?,
+  common.attrib,
+  areaspec.role.attrib,
+  local.areaspec.attrib
+# end of areaspec.attlist
+
+# end of areaspec.module
+local.area.attrib = empty
+area.role.attrib = role.attrib
+# doc:A region defined for a Callout in a graphic or code example.
+area = element area { area.attlist, 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
+area.attlist &=
+  label.attrib,
+  linkends.attrib,
+  attribute units {
+    "calspair" | "linecolumn" | "linerange" | "linecolumnpair" | "other"
+  }?,
+  attribute otherunits { xsd:NMTOKEN }?,
+  attribute coords { text },
+  idreq.common.attrib,
+  area.role.attrib,
+  local.area.attrib
+# end of area.attlist
+
+# end of area.module
+local.areaset.attrib = empty
+areaset.role.attrib = role.attrib
+# doc:A set of related areas in a graphic or code example.
+areaset = element areaset { areaset.attlist, 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
+areaset.attlist &=
+  label.attrib,
+  attribute units {
+    "calspair" | "linecolumn" | "linerange" | "linecolumnpair" | "other"
+  }?,
+  attribute otherunits { xsd:NMTOKEN }?,
+  attribute coords { text },
+  idreq.common.attrib,
+  areaset.role.attrib,
+  local.areaset.attrib
+# end of areaset.attlist
+
+# end of areaset.module
+
+# end of areaspec.content.module
+local.programlisting.attrib = empty
+programlisting.role.attrib = role.attrib
+# doc:A literal listing of all or part of a program.
+programlisting =
+  element programlisting {
+    programlisting.attlist,
+    (para.char.mix | co | coref | lineannotation | textobject)*
+  }
+# end of programlisting.element
+programlisting.attlist &=
+  width.attrib,
+  linespecific.attrib,
+  common.attrib,
+  programlisting.role.attrib,
+  local.programlisting.attrib
+# end of programlisting.attlist
+
+# end of programlisting.module
+local.literallayout.attrib = empty
+literallayout.role.attrib = role.attrib
+# doc:A block of text in which line breaks and white space are to be reproduced faithfully.
+literallayout =
+  element literallayout {
+    literallayout.attlist,
+    (para.char.mix | co | coref | textobject | lineannotation)*
+  }
+# end of literallayout.element
+literallayout.attlist &=
+  width.attrib,
+  linespecific.attrib,
+  [ a:defaultValue = "normal" ]
+  attribute class { "monospaced" | "normal" }?,
+  common.attrib,
+  literallayout.role.attrib,
+  local.literallayout.attrib
+# end of literallayout.attlist
+
+# LineAnnotation (defined in the Inlines section, below)
+
+# end of literallayout.module
+local.screenco.attrib = empty
+screenco.role.attrib = role.attrib
+# doc:A screen with associated areas used in callouts.
+screenco =
+  element screenco { screenco.attlist, areaspec, screen, calloutlist* }
+# end of screenco.element
+screenco.attlist &=
+  common.attrib, screenco.role.attrib, local.screenco.attrib
+# end of screenco.attlist
+
+# AreaSpec (defined above)
+
+# CalloutList (defined above in Lists)
+
+# end of screenco.module
+local.screen.attrib = empty
+screen.role.attrib = role.attrib
+# doc:Text that a user sees or might see on a computer screen.
+screen =
+  element screen {
+    screen.attlist,
+    (para.char.mix | co | coref | textobject | lineannotation)*
+  }
+# end of screen.element
+screen.attlist &=
+  width.attrib,
+  linespecific.attrib,
+  common.attrib,
+  screen.role.attrib,
+  local.screen.attrib
+# end of screen.attlist
+
+# end of screen.module
+local.screenshot.attrib = empty
+screenshot.role.attrib = role.attrib
+# doc:A representation of what the user sees or might see on a computer screen.
+screenshot =
+  element screenshot {
+    screenshot.attlist,
+    screeninfo?,
+    (graphic | graphicco | mediaobject | mediaobjectco)
+  }
+# end of screenshot.element
+screenshot.attlist &=
+  common.attrib, screenshot.role.attrib, local.screenshot.attrib
+# end of screenshot.attlist
+
+# end of screenshot.module
+local.screeninfo.attrib = empty
+screeninfo.role.attrib = role.attrib
+# doc:Information about how a screen shot was produced.
+screeninfo = element screeninfo { screeninfo.attlist, para.char.mix* }
+# end of screeninfo.element
+screeninfo.attlist &=
+  common.attrib, screeninfo.role.attrib, local.screeninfo.attrib
+# end of screeninfo.attlist
+
+# end of screeninfo.module
+
+# end of screenshot.content.module
+
+# Figures etc. .....................
+local.figure.attrib = empty
+figure.role.attrib = role.attrib
+# doc:A formal figure, generally an illustration, with a title.
+figure =
+  element figure {
+    figure.attlist,
+    blockinfo?,
+    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)
+figure.attlist &=
+  [ a:defaultValue = "0" ] attribute float { yesorno.attvals }?,
+  attribute floatstyle { text }?,
+  attribute pgwide { yesorno.attvals }?,
+  label.attrib,
+  common.attrib,
+  figure.role.attrib,
+  local.figure.attrib
+# end of figure.attlist
+
+# end of figure.module
+local.informalfigure.attrib = empty
+informalfigure.role.attrib = role.attrib
+# doc:A untitled figure.
+informalfigure =
+  element informalfigure {
+    informalfigure.attlist, blockinfo?, (figure.mix | link.char.class)+
+  }
+# end of informalfigure.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)
+informalfigure.attlist &=
+  [ a:defaultValue = "0" ] attribute float { yesorno.attvals }?,
+  attribute floatstyle { text }?,
+  attribute pgwide { yesorno.attvals }?,
+  label.attrib,
+  common.attrib,
+  informalfigure.role.attrib,
+  local.informalfigure.attrib
+# end of informalfigure.attlist
+
+# end of informalfigure.module
+local.graphicco.attrib = empty
+graphicco.role.attrib = role.attrib
+# doc:A graphic that contains callout areas.
+graphicco =
+  element graphicco {
+    graphicco.attlist, areaspec, graphic, calloutlist*
+  }
+# end of graphicco.element
+graphicco.attlist &=
+  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).
+local.graphic.attrib = empty
+graphic.role.attrib = role.attrib
+# doc:A displayed graphical object (not an inline).
+graphic = element graphic { graphic.attlist, empty }
+# end of graphic.element
+graphic.attlist &=
+  graphics.attrib,
+  common.attrib,
+  graphic.role.attrib,
+  local.graphic.attrib
+# end of graphic.attlist
+
+# end of graphic.module
+local.inlinegraphic.attrib = empty
+inlinegraphic.role.attrib = role.attrib
+# doc:An object containing or pointing to graphical data that will be rendered inline.
+inlinegraphic = element inlinegraphic { inlinegraphic.attlist, empty }
+# end of inlinegraphic.element
+inlinegraphic.attlist &=
+  graphics.attrib,
+  common.attrib,
+  inlinegraphic.role.attrib,
+  local.inlinegraphic.attrib
+# end of inlinegraphic.attlist
+
+# end of inlinegraphic.module
+local.mediaobject.attrib = empty
+mediaobject.role.attrib = role.attrib
+# doc:A displayed media object (video, audio, image, etc.).
+mediaobject =
+  element mediaobject {
+    mediaobject.attlist, objectinfo?, mediaobject.mix+, caption?
+  }
+# end of mediaobject.element
+mediaobject.attlist &=
+  common.attrib, mediaobject.role.attrib, local.mediaobject.attrib
+# end of mediaobject.attlist
+
+# end of mediaobject.module
+local.inlinemediaobject.attrib = empty
+inlinemediaobject.role.attrib = role.attrib
+# doc:An inline media object (video, audio, image, and so on).
+inlinemediaobject =
+  element inlinemediaobject {
+    inlinemediaobject.attlist, objectinfo?, mediaobject.mix+
+  }
+# end of inlinemediaobject.element
+inlinemediaobject.attlist &=
+  common.attrib,
+  inlinemediaobject.role.attrib,
+  local.inlinemediaobject.attrib
+# end of inlinemediaobject.attlist
+
+# end of inlinemediaobject.module
+local.videoobject.attrib = empty
+videoobject.role.attrib = role.attrib
+# doc:A wrapper for video data and its associated meta-information.
+videoobject =
+  element videoobject { videoobject.attlist, objectinfo?, videodata }
+# end of videoobject.element
+videoobject.attlist &=
+  common.attrib, videoobject.role.attrib, local.videoobject.attrib
+# end of videoobject.attlist
+
+# end of videoobject.module
+local.audioobject.attrib = empty
+audioobject.role.attrib = role.attrib
+# doc:A wrapper for audio data and its associated meta-information.
+audioobject =
+  element audioobject { audioobject.attlist, objectinfo?, audiodata }
+# end of audioobject.element
+audioobject.attlist &=
+  common.attrib, audioobject.role.attrib, local.audioobject.attrib
+# end of audioobject.attlist
+
+# end of audioobject.module
+local.imageobject.attrib = empty
+imageobject.role.attrib = role.attrib
+# doc:A wrapper for image data and its associated meta-information.
+imageobject =
+  element imageobject { imageobject.attlist, objectinfo?, imagedata }
+# end of imageobject.element
+imageobject.attlist &=
+  common.attrib, imageobject.role.attrib, local.imageobject.attrib
+# end of imageobject.attlist
+
+# end of imageobject.module
+local.textobject.attrib = empty
+textobject.role.attrib = role.attrib
+# doc:A wrapper for a text description of an object and its associated meta-information.
+textobject =
+  element textobject {
+    textobject.attlist,
+    objectinfo?,
+    (phrase | textdata | textobject.mix+)
+  }
+# end of textobject.element
+textobject.attlist &=
+  common.attrib, textobject.role.attrib, local.textobject.attrib
+# end of textobject.attlist
+
+# end of textobject.module
+local.objectinfo.attrib = empty
+objectinfo.role.attrib = role.attrib
+# doc:Meta-information for an object.
+objectinfo = element objectinfo { objectinfo.attlist, info.class+ }
+# end of objectinfo.element
+objectinfo.attlist &=
+  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
+local.objectdata.attrib = empty
+objectdata.attrib =
+  attribute entityref { xsd:ENTITY }?,
+  attribute fileref { text }?,
+  attribute format { notation.class }?,
+  attribute srccredit { text }?,
+  local.objectdata.attrib
+local.videodata.attrib = empty
+videodata.role.attrib = role.attrib
+# doc:Pointer to external video data.
+videodata = element videodata { videodata.attlist, empty }
+# end of videodata.element
+
+# 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
+videodata.attlist &=
+  attribute width { text }?,
+  attribute contentwidth { text }?,
+  attribute depth { text }?,
+  attribute contentdepth { text }?,
+  attribute align { "left" | "right" | "center" }?,
+  attribute valign { "top" | "middle" | "bottom" }?,
+  attribute scale { text }?,
+  attribute scalefit { yesorno.attvals }?,
+  objectdata.attrib,
+  common.attrib,
+  videodata.role.attrib,
+  local.videodata.attrib
+# end of videodata.attlist
+
+# end of videodata.module
+local.audiodata.attrib = empty
+audiodata.role.attrib = role.attrib
+# doc:Pointer to external audio data.
+audiodata = element audiodata { audiodata.attlist, empty }
+# end of audiodata.element
+audiodata.attlist &=
+  objectdata.attrib,
+  common.attrib,
+  audiodata.role.attrib,
+  local.audiodata.attrib
+# end of audiodata.attlist
+
+# end of audiodata.module
+local.imagedata.attrib = empty
+imagedata.role.attrib = role.attrib
+# doc:Pointer to external image data.
+imagedata = element imagedata { imagedata.attlist, empty }
+# end of imagedata.element
+
+# 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
+imagedata.attlist &=
+  attribute width { text }?,
+  attribute contentwidth { text }?,
+  attribute depth { text }?,
+  attribute contentdepth { text }?,
+  attribute align { "left" | "right" | "center" }?,
+  attribute valign { "top" | "middle" | "bottom" }?,
+  attribute scale { text }?,
+  attribute scalefit { yesorno.attvals }?,
+  objectdata.attrib,
+  common.attrib,
+  imagedata.role.attrib,
+  local.imagedata.attrib
+# end of imagedata.attlist
+
+# end of imagedata.module
+local.textdata.attrib = empty
+textdata.role.attrib = role.attrib
+# doc:Pointer to external text data.
+textdata = element textdata { textdata.attlist, empty }
+# end of textdata.element
+textdata.attlist &=
+  attribute encoding { text }?,
+  objectdata.attrib,
+  common.attrib,
+  textdata.role.attrib,
+  local.textdata.attrib
+# end of textdata.attlist
+
+# end of textdata.module
+local.mediaobjectco.attrib = empty
+mediaobjectco.role.attrib = role.attrib
+# doc:A media object that contains callouts.
+mediaobjectco =
+  element mediaobjectco {
+    mediaobjectco.attlist,
+    objectinfo?,
+    imageobjectco,
+    (imageobjectco | textobject)*
+  }
+# end of mediaobjectco.element
+mediaobjectco.attlist &=
+  common.attrib, mediaobjectco.role.attrib, local.mediaobjectco.attrib
+# end of mediaobjectco.attlist
+
+# end of mediaobjectco.module
+local.imageobjectco.attrib = empty
+imageobjectco.role.attrib = role.attrib
+# doc:A wrapper for an image object with callouts.
+imageobjectco =
+  element imageobjectco {
+    imageobjectco.attlist, areaspec, imageobject, calloutlist*
+  }
+# end of imageobjectco.element
+imageobjectco.attlist &=
+  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)
+equation.content = alt?, (graphic+ | mediaobject+ | mathphrase+)
+inlineequation.content =
+  alt?, (graphic+ | inlinemediaobject+ | mathphrase+)
+local.equation.attrib = empty
+equation.role.attrib = role.attrib
+# doc:A displayed mathematical equation.
+equation =
+  element equation {
+    equation.attlist,
+    blockinfo?,
+    formalobject.title.content?,
+    (informalequation | equation.content)
+  }
+# end of equation.element
+equation.attlist &=
+  attribute floatstyle { text }?,
+  label.attrib,
+  common.attrib,
+  equation.role.attrib,
+  local.equation.attrib
+# end of equation.attlist
+
+# end of equation.module
+local.informalequation.attrib = empty
+informalequation.role.attrib = role.attrib
+# doc:A displayed mathematical equation without a title.
+informalequation =
+  element informalequation {
+    informalequation.attlist, blockinfo?, equation.content
+  }
+# end of informalequation.element
+informalequation.attlist &=
+  attribute floatstyle { text }?,
+  common.attrib,
+  informalequation.role.attrib,
+  local.informalequation.attrib
+# end of informalequation.attlist
+
+# end of informalequation.module
+local.inlineequation.attrib = empty
+inlineequation.role.attrib = role.attrib
+# doc:A mathematical equation or expression occurring inline.
+inlineequation =
+  element inlineequation {
+    inlineequation.attlist, inlineequation.content
+  }
+# end of inlineequation.element
+inlineequation.attlist &=
+  common.attrib, inlineequation.role.attrib, local.inlineequation.attrib
+# end of inlineequation.attlist
+
+# end of inlineequation.module
+local.alt.attrib = empty
+alt.role.attrib = role.attrib
+# doc:Text representation for a graphical element.
+alt = element alt { alt.attlist, text }
+# end of alt.element
+alt.attlist &= common.attrib, alt.role.attrib, local.alt.attrib
+# end of alt.attlist
+
+# end of alt.module
+local.mathphrase.attrib = empty
+mathphrase.role.attrib = role.attrib
+# doc:A mathematical phrase, an expression that can be represented with ordinary text and a small amount of markup.
+mathphrase =
+  element mathphrase {
+    mathphrase.attlist, (text | subscript | superscript | emphasis)*
+  }
+# end of mathphrase.element
+mathphrase.attlist &=
+  common.attrib, mathphrase.role.attrib, local.mathphrase.attrib
+# end of mathphrase.attlist
+
+# end of mathphrase.module
+
+# Tables ...........................
+
+# Choose a table model. CALS or OASIS XML Exchange
+
+# Do we allow the HTML table model as well?
+
+# ======================================================
+
+# xhtmltbl.mod defines HTML tables and sets parameter
+# entities so that, when the CALS table module is read,
+# we end up allowing any table to be CALS or HTML.
+# i.e. This include must come first!
+
+# ======================================================
+include "htmltblx.rnc"
+# end of allow.html.tables
+
+# Add label and role attributes to table and informaltable
+
+# Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
+# EntryTbl, and Entry (and InformalTable element).
+
+# Content model for Table.
+
+# Allow either objects or inlines; beware of REs between elements.
+
+# Reference CALS Table Model
+include "calstblx.rnc"
+# end of table.module
+
+# Note that InformalTable is dependent on some of the entity
+# declarations that customize Table.
+local.informaltable.attrib = empty
+# the following entity may have been declared by the XHTML table module
+
+# doc:A table without a title.
+informaltable =
+  element informaltable {
+    informaltable.attlist, blockinfo?, informal.tbl.table.mdl
+  }
+# 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
+informaltable.attlist &=
+  attribute frame { tbl.frame.attval }?,
+  attribute colsep { yesorno.attvals }?,
+  attribute rowsep { yesorno.attvals }?,
+  common.table.attribs,
+  tbl.table.att,
+  local.informaltable.attrib
+# end of informaltable.attlist
+
+# end of informaltable.module
+local.caption.attrib = empty
+caption.role.attrib = role.attrib
+# doc:A caption.
+caption = element caption { caption.attlist, (text | textobject.mix)* }
+# end of caption.element
+
+# attrs comes from HTML tables ...
+
+# common.attrib, but without ID because ID is in attrs
+caption.attlist.content =
+  caption.role.attrib,
+  attrs,
+  attribute align { "top" | "bottom" | "left" | "right" }?,
+  local.caption.attrib
+caption.attlist &= caption.attlist.content
+# end of caption.attlist
+
+# end of caption.module
+
+# ......................................................................
+
+# Synopses .............................................................
+
+# Synopsis .........................
+local.synopsis.attrib = empty
+synopsis.role.attrib = role.attrib
+# doc:A general-purpose element for representing the syntax of commands or functions.
+synopsis =
+  element synopsis {
+    synopsis.attlist,
+    (para.char.mix
+     | graphic
+     | mediaobject
+     | co
+     | coref
+     | textobject
+     | lineannotation)*
+  }
+# end of synopsis.element
+synopsis.attlist &=
+  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 ......................
+local.cmdsynopsis.attrib = empty
+cmdsynopsis.role.attrib = role.attrib
+# doc:A syntax summary for a software command.
+cmdsynopsis =
+  element cmdsynopsis {
+    cmdsynopsis.attlist, (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., Δ
+cmdsynopsis.attlist &=
+  label.attrib,
+  [ a:defaultValue = " " ] attribute sepchar { text }?,
+  attribute cmdlength { text }?,
+  common.attrib,
+  cmdsynopsis.role.attrib,
+  local.cmdsynopsis.attrib
+# end of cmdsynopsis.attlist
+
+# end of cmdsynopsis.module
+local.arg.attrib = empty
+arg.role.attrib = role.attrib
+# doc:An argument in a CmdSynopsis.
+arg =
+  element arg {
+    arg.attlist,
+    (text
+     | 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...)
+arg.attlist &=
+  [ a:defaultValue = "opt" ]
+  attribute choice { "opt" | "req" | "plain" }?,
+  [ a:defaultValue = "norepeat" ]
+  attribute rep { "norepeat" | "repeat" }?,
+  common.attrib,
+  arg.role.attrib,
+  local.arg.attrib
+# end of arg.attlist
+
+# end of arg.module
+local.group.attrib = empty
+group.role.attrib = role.attrib
+# doc:A group of elements in a CmdSynopsis.
+group =
+  element group {
+    group.attlist,
+    (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...)
+group.attlist &=
+  [ a:defaultValue = "opt" ]
+  attribute choice { "opt" | "req" | "plain" }?,
+  [ a:defaultValue = "norepeat" ]
+  attribute rep { "norepeat" | "repeat" }?,
+  common.attrib,
+  group.role.attrib,
+  local.group.attrib
+# end of group.attlist
+
+# end of group.module
+local.sbr.attrib = empty
+# Synopsis break
+sbr.role.attrib = role.attrib
+# doc:An explicit line break in a command synopsis.
+sbr = element sbr { sbr.attlist, empty }
+# end of sbr.element
+sbr.attlist &= common.attrib, sbr.role.attrib, local.sbr.attrib
+# end of sbr.attlist
+
+# end of sbr.module
+local.synopfragmentref.attrib = empty
+synopfragmentref.role.attrib = role.attrib
+# doc:A reference to a fragment of a command synopsis.
+synopfragmentref =
+  element synopfragmentref { synopfragmentref.attlist, text }
+# end of synopfragmentref.element
+
+# to SynopFragment of complex synopsis
+# material for separate referencing
+synopfragmentref.attlist &=
+  linkendreq.attrib,
+  common.attrib,
+  synopfragmentref.role.attrib,
+  local.synopfragmentref.attrib
+# end of synopfragmentref.attlist
+
+# end of synopfragmentref.module
+local.synopfragment.attrib = empty
+synopfragment.role.attrib = role.attrib
+# doc:A portion of a CmdSynopsis broken out from the main body of the synopsis.
+synopfragment =
+  element synopfragment { synopfragment.attlist, (arg | group)+ }
+# end of synopfragment.element
+synopfragment.attlist &=
+  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 .....................
+local.funcsynopsis.attrib = empty
+funcsynopsis.role.attrib = role.attrib
+# doc:The syntax summary for a function definition.
+funcsynopsis =
+  element funcsynopsis {
+    funcsynopsis.attlist, (funcsynopsisinfo | funcprototype)+
+  }
+# end of funcsynopsis.element
+funcsynopsis.attlist &=
+  label.attrib,
+  common.attrib,
+  funcsynopsis.role.attrib,
+  local.funcsynopsis.attrib
+# end of funcsynopsis.attlist
+
+# end of funcsynopsis.module
+local.funcsynopsisinfo.attrib = empty
+funcsynopsisinfo.role.attrib = role.attrib
+# doc:Information supplementing the FuncDefs of a FuncSynopsis.
+funcsynopsisinfo =
+  element funcsynopsisinfo {
+    funcsynopsisinfo.attlist,
+    (cptr.char.mix | textobject | lineannotation)*
+  }
+# end of funcsynopsisinfo.element
+funcsynopsisinfo.attlist &=
+  linespecific.attrib,
+  common.attrib,
+  funcsynopsisinfo.role.attrib,
+  local.funcsynopsisinfo.attrib
+# end of funcsynopsisinfo.attlist
+
+# end of funcsynopsisinfo.module
+local.funcprototype.attrib = empty
+funcprototype.role.attrib = role.attrib
+# doc:The prototype of a function.
+funcprototype =
+  element funcprototype {
+    funcprototype.attlist,
+    modifier*,
+    funcdef,
+    (void | varargs | (paramdef+, varargs?)),
+    modifier*
+  }
+# end of funcprototype.element
+funcprototype.attlist &=
+  common.attrib, funcprototype.role.attrib, local.funcprototype.attrib
+# end of funcprototype.attlist
+
+# end of funcprototype.module
+local.funcdef.attrib = empty
+funcdef.role.attrib = role.attrib
+# doc:A function (subroutine) name and its return type.
+funcdef =
+  element funcdef {
+    funcdef.attlist, (text | type | replaceable | function)*
+  }
+# end of funcdef.element
+funcdef.attlist &=
+  common.attrib, funcdef.role.attrib, local.funcdef.attrib
+# end of funcdef.attlist
+
+# end of funcdef.module
+local.void.attrib = empty
+void.role.attrib = role.attrib
+# doc:An empty element in a function synopsis indicating that the function in question takes no arguments.
+void = element void { void.attlist, empty }
+# end of void.element
+void.attlist &= common.attrib, void.role.attrib, local.void.attrib
+# end of void.attlist
+
+# end of void.module
+local.varargs.attrib = empty
+varargs.role.attrib = role.attrib
+# doc:An empty element in a function synopsis indicating a variable number of arguments.
+varargs = element varargs { varargs.attlist, empty }
+# end of varargs.element
+varargs.attlist &=
+  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.
+local.paramdef.attrib = empty
+paramdef.role.attrib = role.attrib
+# doc:Information about a function parameter in a programming language.
+paramdef =
+  element paramdef {
+    paramdef.attlist,
+    (text | initializer | type | replaceable | parameter | funcparams)*
+  }
+# end of paramdef.element
+paramdef.attlist &=
+  attribute choice { "opt" | "req" }?,
+  common.attrib,
+  paramdef.role.attrib,
+  local.paramdef.attrib
+# end of paramdef.attlist
+
+# end of paramdef.module
+local.funcparams.attrib = empty
+funcparams.role.attrib = role.attrib
+# doc:Parameters for a function referenced through a function pointer in a synopsis.
+funcparams = element funcparams { funcparams.attlist, cptr.char.mix* }
+# end of funcparams.element
+funcparams.attlist &=
+  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 .....................
+local.classsynopsis.attrib = empty
+classsynopsis.role.attrib = role.attrib
+# doc:The syntax summary for a class definition.
+classsynopsis =
+  element classsynopsis {
+    classsynopsis.attlist,
+    (ooclass | oointerface | ooexception)+,
+    (classsynopsisinfo | fieldsynopsis | method.synop.class)*
+  }
+# end of classsynopsis.element
+classsynopsis.attlist &=
+  attribute language { text }?,
+  [ a:defaultValue = "class" ]
+  attribute class { "class" | "interface" }?,
+  common.attrib,
+  classsynopsis.role.attrib,
+  local.classsynopsis.attrib
+# end of classsynopsis.attlist
+
+# end of classsynopsis.module
+local.classsynopsisinfo.attrib = empty
+classsynopsisinfo.role.attrib = role.attrib
+# doc:Information supplementing the contents of a ClassSynopsis.
+classsynopsisinfo =
+  element classsynopsisinfo {
+    classsynopsisinfo.attlist,
+    (cptr.char.mix | textobject | lineannotation)*
+  }
+# end of classsynopsisinfo.element
+classsynopsisinfo.attlist &=
+  linespecific.attrib,
+  common.attrib,
+  classsynopsisinfo.role.attrib,
+  local.classsynopsisinfo.attrib
+# end of classsynopsisinfo.attlist
+
+# end of classsynopsisinfo.module
+local.ooclass.attrib = empty
+ooclass.role.attrib = role.attrib
+# doc:A class in an object-oriented programming language.
+ooclass =
+  element ooclass { ooclass.attlist, (modifier | package)*, classname }
+# end of ooclass.element
+ooclass.attlist &=
+  common.attrib, ooclass.role.attrib, local.ooclass.attrib
+# end of ooclass.attlist
+
+# end of ooclass.module
+local.oointerface.attrib = empty
+oointerface.role.attrib = role.attrib
+# doc:An interface in an object-oriented programming language.
+oointerface =
+  element oointerface {
+    oointerface.attlist, (modifier | package)*, interfacename
+  }
+# end of oointerface.element
+oointerface.attlist &=
+  common.attrib, oointerface.role.attrib, local.oointerface.attrib
+# end of oointerface.attlist
+
+# end of oointerface.module
+local.ooexception.attrib = empty
+ooexception.role.attrib = role.attrib
+# doc:An exception in an object-oriented programming language.
+ooexception =
+  element ooexception {
+    ooexception.attlist, (modifier | package)*, exceptionname
+  }
+# end of ooexception.element
+ooexception.attlist &=
+  common.attrib, ooexception.role.attrib, local.ooexception.attrib
+# end of ooexception.attlist
+
+# end of ooexception.module
+local.modifier.attrib = empty
+modifier.role.attrib = role.attrib
+# doc:Modifiers in a synopsis.
+modifier = element modifier { modifier.attlist, smallcptr.char.mix* }
+# end of modifier.element
+modifier.attlist &=
+  common.attrib, modifier.role.attrib, local.modifier.attrib
+# end of modifier.attlist
+
+# end of modifier.module
+local.interfacename.attrib = empty
+interfacename.role.attrib = role.attrib
+# doc:The name of an interface.
+interfacename =
+  element interfacename { interfacename.attlist, cptr.char.mix* }
+# end of interfacename.element
+interfacename.attlist &=
+  common.attrib, interfacename.role.attrib, local.interfacename.attrib
+# end of interfacename.attlist
+
+# end of interfacename.module
+local.exceptionname.attrib = empty
+exceptionname.role.attrib = role.attrib
+# doc:The name of an exception.
+exceptionname =
+  element exceptionname { exceptionname.attlist, smallcptr.char.mix* }
+# end of exceptionname.element
+exceptionname.attlist &=
+  common.attrib, exceptionname.role.attrib, local.exceptionname.attrib
+# end of exceptionname.attlist
+
+# end of exceptionname.module
+local.fieldsynopsis.attrib = empty
+fieldsynopsis.role.attrib = role.attrib
+# doc:The name of a field in a class definition.
+fieldsynopsis =
+  element fieldsynopsis {
+    fieldsynopsis.attlist, modifier*, type?, varname, initializer?
+  }
+# end of fieldsynopsis.element
+fieldsynopsis.attlist &=
+  attribute language { text }?,
+  common.attrib,
+  fieldsynopsis.role.attrib,
+  local.fieldsynopsis.attrib
+# end of fieldsynopsis.attlist
+
+# end of fieldsynopsis.module
+local.initializer.attrib = empty
+initializer.role.attrib = role.attrib
+# doc:The initializer for a FieldSynopsis.
+initializer =
+  element initializer { initializer.attlist, smallcptr.char.mix* }
+# end of initializer.element
+initializer.attlist &=
+  common.attrib, initializer.role.attrib, local.initializer.attrib
+# end of initializer.attlist
+
+# end of initializer.module
+local.constructorsynopsis.attrib = empty
+constructorsynopsis.role.attrib = role.attrib
+# doc:A syntax summary for a constructor.
+constructorsynopsis =
+  element constructorsynopsis {
+    constructorsynopsis.attlist,
+    modifier*,
+    methodname?,
+    (methodparam+ | void?),
+    exceptionname*
+  }
+# end of constructorsynopsis.element
+constructorsynopsis.attlist &=
+  attribute language { text }?,
+  common.attrib,
+  constructorsynopsis.role.attrib,
+  local.constructorsynopsis.attrib
+# end of constructorsynopsis.attlist
+
+# end of constructorsynopsis.module
+local.destructorsynopsis.attrib = empty
+destructorsynopsis.role.attrib = role.attrib
+# doc:A syntax summary for a destructor.
+destructorsynopsis =
+  element destructorsynopsis {
+    destructorsynopsis.attlist,
+    modifier*,
+    methodname?,
+    (methodparam+ | void?),
+    exceptionname*
+  }
+# end of destructorsynopsis.element
+destructorsynopsis.attlist &=
+  attribute language { text }?,
+  common.attrib,
+  destructorsynopsis.role.attrib,
+  local.destructorsynopsis.attrib
+# end of destructorsynopsis.attlist
+
+# end of destructorsynopsis.module
+local.methodsynopsis.attrib = empty
+methodsynopsis.role.attrib = role.attrib
+# doc:A syntax summary for a method.
+methodsynopsis =
+  element methodsynopsis {
+    methodsynopsis.attlist,
+    modifier*,
+    (type | void)?,
+    methodname,
+    (methodparam+ | void?),
+    exceptionname*,
+    modifier*
+  }
+# end of methodsynopsis.element
+methodsynopsis.attlist &=
+  attribute language { text }?,
+  common.attrib,
+  methodsynopsis.role.attrib,
+  local.methodsynopsis.attrib
+# end of methodsynopsis.attlist
+
+# end of methodsynopsis.module
+local.methodname.attrib = empty
+methodname.role.attrib = role.attrib
+# doc:The name of a method.
+methodname =
+  element methodname { methodname.attlist, smallcptr.char.mix* }
+# end of methodname.element
+methodname.attlist &=
+  common.attrib, methodname.role.attrib, local.methodname.attrib
+# end of methodname.attlist
+
+# end of methodname.module
+local.methodparam.attrib = empty
+methodparam.role.attrib = role.attrib
+# doc:Parameters to a method.
+methodparam =
+  element methodparam {
+    methodparam.attlist,
+    modifier*,
+    type?,
+    ((parameter, initializer?) | funcparams),
+    modifier*
+  }
+# end of methodparam.element
+methodparam.attlist &=
+  [ a:defaultValue = "req" ]
+  attribute choice { "opt" | "req" | "plain" }?,
+  [ a:defaultValue = "norepeat" ]
+  attribute rep { "norepeat" | "repeat" }?,
+  common.attrib,
+  methodparam.role.attrib,
+  local.methodparam.attrib
+# 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.
+
+# ..................................
+
+# Ackno ............................
+local.ackno.attrib = empty
+ackno.role.attrib = role.attrib
+# doc:Acknowledgements in an Article.
+ackno = element ackno { ackno.attlist, docinfo.char.mix* }
+# end of ackno.element
+ackno.attlist &= common.attrib, ackno.role.attrib, local.ackno.attrib
+# end of ackno.attlist
+
+# end of ackno.module
+
+# Address ..........................
+local.address.attrib = empty
+address.role.attrib = role.attrib
+# doc:A real-world address, generally a postal address.
+address =
+  element address {
+    address.attlist,
+    (text
+     | personname
+     | person.ident.mix
+     | street
+     | pob
+     | postcode
+     | city
+     | state
+     | country
+     | phone
+     | fax
+     | email
+     | otheraddr)*
+  }
+# end of address.element
+address.attlist &=
+  linespecific.attrib,
+  common.attrib,
+  address.role.attrib,
+  local.address.attrib
+# end of address.attlist
+
+# end of address.module
+local.street.attrib = empty
+street.role.attrib = role.attrib
+# doc:A street address in an address.
+street = element street { street.attlist, docinfo.char.mix* }
+# end of street.element
+street.attlist &= common.attrib, street.role.attrib, local.street.attrib
+# end of street.attlist
+
+# end of street.module
+local.pob.attrib = empty
+pob.role.attrib = role.attrib
+# doc:A post office box in an address.
+pob = element pob { pob.attlist, docinfo.char.mix* }
+# end of pob.element
+pob.attlist &= common.attrib, pob.role.attrib, local.pob.attrib
+# end of pob.attlist
+
+# end of pob.module
+local.postcode.attrib = empty
+postcode.role.attrib = role.attrib
+# doc:A postal code in an address.
+postcode = element postcode { postcode.attlist, docinfo.char.mix* }
+# end of postcode.element
+postcode.attlist &=
+  common.attrib, postcode.role.attrib, local.postcode.attrib
+# end of postcode.attlist
+
+# end of postcode.module
+local.city.attrib = empty
+city.role.attrib = role.attrib
+# doc:The name of a city in an address.
+city = element city { city.attlist, docinfo.char.mix* }
+# end of city.element
+city.attlist &= common.attrib, city.role.attrib, local.city.attrib
+# end of city.attlist
+
+# end of city.module
+local.state.attrib = empty
+state.role.attrib = role.attrib
+# doc:A state or province in an address.
+state = element state { state.attlist, docinfo.char.mix* }
+# end of state.element
+state.attlist &= common.attrib, state.role.attrib, local.state.attrib
+# end of state.attlist
+
+# end of state.module
+local.country.attrib = empty
+country.role.attrib = role.attrib
+# doc:The name of a country.
+country = element country { country.attlist, docinfo.char.mix* }
+# end of country.element
+country.attlist &=
+  common.attrib, country.role.attrib, local.country.attrib
+# end of country.attlist
+
+# end of country.module
+local.phone.attrib = empty
+phone.role.attrib = role.attrib
+# doc:A telephone number.
+phone = element phone { phone.attlist, docinfo.char.mix* }
+# end of phone.element
+phone.attlist &= common.attrib, phone.role.attrib, local.phone.attrib
+# end of phone.attlist
+
+# end of phone.module
+local.fax.attrib = empty
+fax.role.attrib = role.attrib
+# doc:A fax number.
+fax = element fax { fax.attlist, docinfo.char.mix* }
+# end of fax.element
+fax.attlist &= common.attrib, fax.role.attrib, local.fax.attrib
+# end of fax.attlist
+
+# end of fax.module
+
+# Email (defined in the Inlines section, below)
+local.otheraddr.attrib = empty
+otheraddr.role.attrib = role.attrib
+# doc:Uncategorized information in address.
+otheraddr = element otheraddr { otheraddr.attlist, docinfo.char.mix* }
+# end of otheraddr.element
+otheraddr.attlist &=
+  common.attrib, otheraddr.role.attrib, local.otheraddr.attrib
+# end of otheraddr.attlist
+
+# end of otheraddr.module
+
+# end of address.content.module
+
+# Affiliation ......................
+local.affiliation.attrib = empty
+affiliation.role.attrib = role.attrib
+# doc:The institutional affiliation of an individual.
+affiliation =
+  element affiliation {
+    affiliation.attlist,
+    shortaffil?,
+    jobtitle*,
+    orgname?,
+    orgdiv*,
+    address*
+  }
+# end of affiliation.element
+affiliation.attlist &=
+  common.attrib, affiliation.role.attrib, local.affiliation.attrib
+# end of affiliation.attlist
+
+# end of affiliation.module
+local.shortaffil.attrib = empty
+shortaffil.role.attrib = role.attrib
+# doc:A brief description of an affiliation.
+shortaffil =
+  element shortaffil { shortaffil.attlist, docinfo.char.mix* }
+# end of shortaffil.element
+shortaffil.attlist &=
+  common.attrib, shortaffil.role.attrib, local.shortaffil.attrib
+# end of shortaffil.attlist
+
+# end of shortaffil.module
+local.jobtitle.attrib = empty
+jobtitle.role.attrib = role.attrib
+# doc:The title of an individual in an organization.
+jobtitle = element jobtitle { jobtitle.attlist, docinfo.char.mix* }
+# end of jobtitle.element
+jobtitle.attlist &=
+  common.attrib, jobtitle.role.attrib, local.jobtitle.attrib
+# end of jobtitle.attlist
+
+# end of jobtitle.module
+
+# OrgName (defined elsewhere in this section)
+local.orgdiv.attrib = empty
+orgdiv.role.attrib = role.attrib
+# doc:A division of an organization.
+orgdiv = element orgdiv { orgdiv.attlist, docinfo.char.mix* }
+# end of orgdiv.element
+orgdiv.attlist &= 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 ......................
+local.artpagenums.attrib = empty
+artpagenums.role.attrib = role.attrib
+# doc:The page numbers of an article as published.
+artpagenums =
+  element artpagenums { artpagenums.attlist, docinfo.char.mix* }
+# end of artpagenums.element
+artpagenums.attlist &=
+  common.attrib, artpagenums.role.attrib, local.artpagenums.attrib
+# end of artpagenums.attlist
+
+# end of artpagenums.module
+
+# PersonName
+local.personname.attrib = empty
+personname.role.attrib = role.attrib
+# doc:The personal name of an individual.
+personname =
+  element personname {
+    personname.attlist,
+    (honorific | firstname | surname | lineage | othername)+
+  }
+# end of personname.element
+personname.attlist &=
+  common.attrib, personname.role.attrib, local.personname.attrib
+# end of personname.attlist
+
+# end of personname.module
+
+# Author ...........................
+local.author.attrib = empty
+author.role.attrib = role.attrib
+# doc:The name of an individual author.
+author =
+  element author {
+    author.attlist,
+    (personname | person.ident.mix+),
+    (personblurb | email | address)*
+  }
+# end of author.element
+author.attlist &= 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 ......................
+local.authorgroup.attrib = empty
+authorgroup.role.attrib = role.attrib
+# doc:Wrapper for author information when a document has multiple authors or collabarators.
+authorgroup =
+  element authorgroup {
+    authorgroup.attlist,
+    (author | editor | collab | corpauthor | corpcredit | othercredit)+
+  }
+# end of authorgroup.element
+authorgroup.attlist &=
+  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)
+local.collab.attrib = empty
+collab.role.attrib = role.attrib
+# doc:Identifies a collaborator.
+collab = element collab { collab.attlist, collabname, affiliation* }
+# end of collab.element
+collab.attlist &= common.attrib, collab.role.attrib, local.collab.attrib
+# end of collab.attlist
+
+# end of collab.module
+local.collabname.attrib = empty
+collabname.role.attrib = role.attrib
+# doc:The name of a collaborator.
+collabname =
+  element collabname { collabname.attlist, docinfo.char.mix* }
+# end of collabname.element
+collabname.attlist &=
+  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 ...................
+local.authorinitials.attrib = empty
+authorinitials.role.attrib = role.attrib
+# doc:The initials or other short identifier for an author.
+authorinitials =
+  element authorinitials { authorinitials.attlist, docinfo.char.mix* }
+# end of authorinitials.element
+authorinitials.attlist &=
+  common.attrib, authorinitials.role.attrib, local.authorinitials.attrib
+# end of authorinitials.attlist
+
+# end of authorinitials.module
+
+# ConfGroup ........................
+local.confgroup.attrib = empty
+confgroup.role.attrib = role.attrib
+# doc:A wrapper for document meta-information about a conference.
+confgroup =
+  element confgroup {
+    confgroup.attlist,
+    (confdates | conftitle | confnum | address | confsponsor)*
+  }
+# end of confgroup.element
+confgroup.attlist &=
+  common.attrib, confgroup.role.attrib, local.confgroup.attrib
+# end of confgroup.attlist
+
+# end of confgroup.module
+local.confdates.attrib = empty
+confdates.role.attrib = role.attrib
+# doc:The dates of a conference for which a document was written.
+confdates = element confdates { confdates.attlist, docinfo.char.mix* }
+# end of confdates.element
+confdates.attlist &=
+  common.attrib, confdates.role.attrib, local.confdates.attrib
+# end of confdates.attlist
+
+# end of confdates.module
+local.conftitle.attrib = empty
+conftitle.role.attrib = role.attrib
+# doc:The title of a conference for which a document was written.
+conftitle = element conftitle { conftitle.attlist, docinfo.char.mix* }
+# end of conftitle.element
+conftitle.attlist &=
+  common.attrib, conftitle.role.attrib, local.conftitle.attrib
+# end of conftitle.attlist
+
+# end of conftitle.module
+local.confnum.attrib = empty
+confnum.role.attrib = role.attrib
+# doc:An identifier, frequently numerical, associated with a conference for which a document was written.
+confnum = element confnum { confnum.attlist, docinfo.char.mix* }
+# end of confnum.element
+confnum.attlist &=
+  common.attrib, confnum.role.attrib, local.confnum.attrib
+# end of confnum.attlist
+
+# end of confnum.module
+
+# Address (defined elsewhere in this section)
+local.confsponsor.attrib = empty
+confsponsor.role.attrib = role.attrib
+# doc:The sponsor of a conference for which a document was written.
+confsponsor =
+  element confsponsor { confsponsor.attlist, docinfo.char.mix* }
+# end of confsponsor.element
+confsponsor.attlist &=
+  common.attrib, confsponsor.role.attrib, local.confsponsor.attrib
+# end of confsponsor.attlist
+
+# end of confsponsor.module
+
+# end of confgroup.content.module
+
+# ContractNum ......................
+local.contractnum.attrib = empty
+contractnum.role.attrib = role.attrib
+# doc:The contract number of a document.
+contractnum =
+  element contractnum { contractnum.attlist, docinfo.char.mix* }
+# end of contractnum.element
+contractnum.attlist &=
+  common.attrib, contractnum.role.attrib, local.contractnum.attrib
+# end of contractnum.attlist
+
+# end of contractnum.module
+
+# ContractSponsor ..................
+local.contractsponsor.attrib = empty
+contractsponsor.role.attrib = role.attrib
+# doc:The sponsor of a contract.
+contractsponsor =
+  element contractsponsor { contractsponsor.attlist, docinfo.char.mix* }
+# end of contractsponsor.element
+contractsponsor.attlist &=
+  common.attrib,
+  contractsponsor.role.attrib,
+  local.contractsponsor.attrib
+# end of contractsponsor.attlist
+
+# end of contractsponsor.module
+
+# Copyright ........................
+local.copyright.attrib = empty
+copyright.role.attrib = role.attrib
+# doc:Copyright information about a document.
+copyright = element copyright { copyright.attlist, year+, holder* }
+# end of copyright.element
+copyright.attlist &=
+  common.attrib, copyright.role.attrib, local.copyright.attrib
+# end of copyright.attlist
+
+# end of copyright.module
+local.year.attrib = empty
+year.role.attrib = role.attrib
+# doc:The year of publication of a document.
+year = element year { year.attlist, docinfo.char.mix* }
+# end of year.element
+year.attlist &= common.attrib, year.role.attrib, local.year.attrib
+# end of year.attlist
+
+# end of year.module
+local.holder.attrib = empty
+holder.role.attrib = role.attrib
+# doc:The name of the individual or organization that holds a copyright.
+holder = element holder { holder.attlist, docinfo.char.mix* }
+# end of holder.element
+holder.attlist &= common.attrib, holder.role.attrib, local.holder.attrib
+# end of holder.attlist
+
+# end of holder.module
+
+# end of copyright.content.module
+
+# CorpAuthor .......................
+local.corpauthor.attrib = empty
+corpauthor.role.attrib = role.attrib
+# doc:A corporate author, as opposed to an individual.
+corpauthor =
+  element corpauthor { corpauthor.attlist, docinfo.char.mix* }
+# end of corpauthor.element
+corpauthor.attlist &=
+  common.attrib, corpauthor.role.attrib, local.corpauthor.attrib
+# end of corpauthor.attlist
+
+# end of corpauthor.module
+
+# CorpCredit ......................
+local.corpcredit.attrib = empty
+corpcredit.role.attrib = role.attrib
+# doc:A corporation or organization credited in a document.
+corpcredit =
+  element corpcredit { corpcredit.attlist, docinfo.char.mix* }
+# end of corpcredit.element
+corpcredit.attlist &=
+  attribute class {
+    "graphicdesigner"
+    | "productioneditor"
+    | "copyeditor"
+    | "technicaleditor"
+    | "translator"
+    | "other"
+  }?,
+  common.attrib,
+  corpcredit.role.attrib,
+  local.corpcredit.attrib
+# end of corpcredit.attlist
+
+# end of corpcredit.module
+
+# CorpName .........................
+local.corpname.attrib = empty
+# doc:The name of a corporation.
+corpname = element corpname { corpname.attlist, docinfo.char.mix* }
+# end of corpname.element
+corpname.role.attrib = role.attrib
+corpname.attlist &=
+  common.attrib, corpname.role.attrib, local.corpname.attrib
+# end of corpname.attlist
+
+# end of corpname.module
+
+# Date .............................
+local.date.attrib = empty
+date.role.attrib = role.attrib
+# doc:The date of publication or revision of a document.
+date = element date { date.attlist, docinfo.char.mix* }
+# end of date.element
+date.attlist &= common.attrib, date.role.attrib, local.date.attrib
+# end of date.attlist
+
+# end of date.module
+
+# Edition ..........................
+local.edition.attrib = empty
+edition.role.attrib = role.attrib
+# doc:The name or number of an edition of a document.
+edition = element edition { edition.attlist, docinfo.char.mix* }
+# end of edition.element
+edition.attlist &=
+  common.attrib, edition.role.attrib, local.edition.attrib
+# end of edition.attlist
+
+# end of edition.module
+
+# Editor ...........................
+local.editor.attrib = empty
+editor.role.attrib = role.attrib
+# doc:The name of the editor of a document.
+editor =
+  element editor {
+    editor.attlist,
+    (personname | person.ident.mix+),
+    (personblurb | email | address)*
+  }
+# end of editor.element
+editor.attlist &= 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 .............................
+local.isbn.attrib = empty
+isbn.role.attrib = role.attrib
+# doc:The International Standard Book Number of a document.
+isbn = element isbn { isbn.attlist, docinfo.char.mix* }
+# end of isbn.element
+isbn.attlist &= common.attrib, isbn.role.attrib, local.isbn.attrib
+# end of isbn.attlist
+
+# end of isbn.module
+
+# ISSN .............................
+local.issn.attrib = empty
+issn.role.attrib = role.attrib
+# doc:The International Standard Serial Number of a periodical.
+issn = element issn { issn.attlist, docinfo.char.mix* }
+# end of issn.element
+issn.attlist &= common.attrib, issn.role.attrib, local.issn.attrib
+# end of issn.attlist
+
+# end of issn.module
+
+# BiblioId .................
+biblio.class.attrib =
+  attribute class {
+    "uri"
+    | "doi"
+    | "isbn"
+    | "isrn"
+    | "issn"
+    | "libraryofcongress"
+    | "pubnumber"
+    | "other"
+  }?,
+  attribute otherclass { text }?
+local.biblioid.attrib = empty
+biblioid.role.attrib = role.attrib
+# doc:An identifier for a document.
+biblioid = element biblioid { biblioid.attlist, docinfo.char.mix* }
+# end of biblioid.element
+biblioid.attlist &=
+  biblio.class.attrib,
+  common.attrib,
+  biblioid.role.attrib,
+  local.biblioid.attrib
+# end of biblioid.attlist
+
+# end of biblioid.module
+
+# CiteBiblioId .................
+local.citebiblioid.attrib = empty
+citebiblioid.role.attrib = role.attrib
+# doc:A citation of a bibliographic identifier.
+citebiblioid =
+  element citebiblioid { citebiblioid.attlist, docinfo.char.mix* }
+# end of citebiblioid.element
+citebiblioid.attlist &=
+  biblio.class.attrib,
+  common.attrib,
+  citebiblioid.role.attrib,
+  local.citebiblioid.attrib
+# end of citebiblioid.attlist
+
+# end of citebiblioid.module
+
+# BiblioSource .................
+local.bibliosource.attrib = empty
+bibliosource.role.attrib = role.attrib
+# doc:The source of a document.
+bibliosource =
+  element bibliosource { bibliosource.attlist, docinfo.char.mix* }
+# end of bibliosource.element
+bibliosource.attlist &=
+  biblio.class.attrib,
+  common.attrib,
+  bibliosource.role.attrib,
+  local.bibliosource.attrib
+# end of bibliosource.attlist
+
+# end of bibliosource.module
+
+# BiblioRelation .................
+local.bibliorelation.attrib = empty
+local.bibliorelation.types = notAllowed
+bibliorelation.type.attrib =
+  attribute type {
+    "isversionof"
+    | "hasversion"
+    | "isreplacedby"
+    | "replaces"
+    | "isrequiredby"
+    | "requires"
+    | "ispartof"
+    | "haspart"
+    | "isreferencedby"
+    | "references"
+    | "isformatof"
+    | "hasformat"
+    | "othertype"
+    | local.bibliorelation.types
+  }?,
+  attribute othertype { text }?
+bibliorelation.role.attrib = role.attrib
+# doc:The relationship of a document to another.
+bibliorelation =
+  element bibliorelation { bibliorelation.attlist, docinfo.char.mix* }
+# end of bibliorelation.element
+bibliorelation.attlist &=
+  biblio.class.attrib,
+  bibliorelation.type.attrib,
+  common.attrib,
+  bibliorelation.role.attrib,
+  local.bibliorelation.attrib
+# end of bibliorelation.attlist
+
+# end of bibliorelation.module
+
+# BiblioCoverage .................
+local.bibliocoverage.attrib = empty
+bibliocoverage.role.attrib = role.attrib
+# doc:The spatial or temporal coverage of a document.
+bibliocoverage =
+  element bibliocoverage { bibliocoverage.attlist, docinfo.char.mix* }
+# end of bibliocoverage.element
+bibliocoverage.attlist &=
+  attribute spatial {
+    "dcmipoint" | "iso3166" | "dcmibox" | "tgn" | "otherspatial"
+  }?,
+  attribute otherspatial { text }?,
+  attribute temporal { "dcmiperiod" | "w3c-dtf" | "othertemporal" }?,
+  attribute othertemporal { text }?,
+  common.attrib,
+  bibliocoverage.role.attrib,
+  local.bibliocoverage.attrib
+# end of bibliocoverage.attlist
+
+# end of bibliocoverage.module
+
+# InvPartNumber ....................
+local.invpartnumber.attrib = empty
+invpartnumber.role.attrib = role.attrib
+# doc:An inventory part number.
+invpartnumber =
+  element invpartnumber { invpartnumber.attlist, docinfo.char.mix* }
+# end of invpartnumber.element
+invpartnumber.attlist &=
+  common.attrib, invpartnumber.role.attrib, local.invpartnumber.attrib
+# end of invpartnumber.attlist
+
+# end of invpartnumber.module
+
+# IssueNum .........................
+local.issuenum.attrib = empty
+issuenum.role.attrib = role.attrib
+# doc:The number of an issue of a journal.
+issuenum = element issuenum { issuenum.attlist, docinfo.char.mix* }
+# end of issuenum.element
+issuenum.attlist &=
+  common.attrib, issuenum.role.attrib, local.issuenum.attrib
+# end of issuenum.attlist
+
+# end of issuenum.module
+
+# LegalNotice ......................
+local.legalnotice.attrib = empty
+legalnotice.role.attrib = role.attrib
+# doc:A statement of legal obligations or requirements.
+legalnotice =
+  element legalnotice {
+    legalnotice.attlist, blockinfo?, title?, legalnotice.mix+
+  }
+# end of legalnotice.element
+legalnotice.attlist &=
+  common.attrib, legalnotice.role.attrib, local.legalnotice.attrib
+# end of legalnotice.attlist
+
+# end of legalnotice.module
+
+# ModeSpec .........................
+local.modespec.attrib = empty
+modespec.role.attrib = role.attrib
+# doc:Application-specific information necessary for the completion of an OLink.
+modespec = element modespec { modespec.attlist, 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)
+modespec.attlist &=
+  attribute application { notation.class }?,
+  common.attrib,
+  modespec.role.attrib,
+  local.modespec.attrib
+# end of modespec.attlist
+
+# end of modespec.module
+
+# OrgName ..........................
+local.orgname.attrib = empty
+orgname.role.attrib = role.attrib
+# doc:The name of an organization other than a corporation.
+orgname = element orgname { orgname.attlist, docinfo.char.mix* }
+# end of orgname.element
+orgname.attlist &=
+  common.attrib,
+  attribute class {
+    "corporation" | "nonprofit" | "consortium" | "informal" | "other"
+  }?,
+  attribute otherclass { text }?,
+  orgname.role.attrib,
+  local.orgname.attrib
+# end of orgname.attlist
+
+# end of orgname.module
+
+# OtherCredit ......................
+local.othercredit.attrib = empty
+othercredit.role.attrib = role.attrib
+# doc:A person or entity, other than an author or editor, credited in a document.
+othercredit =
+  element othercredit {
+    othercredit.attlist,
+    (personname | person.ident.mix+),
+    (personblurb | email | address)*
+  }
+# end of othercredit.element
+othercredit.attlist &=
+  attribute class {
+    "graphicdesigner"
+    | "productioneditor"
+    | "copyeditor"
+    | "technicaleditor"
+    | "translator"
+    | "other"
+  }?,
+  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 .........................
+local.pagenums.attrib = empty
+pagenums.role.attrib = role.attrib
+# doc:The numbers of the pages in a book, for use in a bibliographic entry.
+pagenums = element pagenums { pagenums.attlist, docinfo.char.mix* }
+# end of pagenums.element
+pagenums.attlist &=
+  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.
+local.contrib.attrib = empty
+contrib.role.attrib = role.attrib
+# doc:A summary of the contributions made to a document by a credited source.
+contrib = element contrib { contrib.attlist, docinfo.char.mix* }
+# end of contrib.element
+contrib.attlist &=
+  common.attrib, contrib.role.attrib, local.contrib.attrib
+# end of contrib.attlist
+
+# end of contrib.module
+local.firstname.attrib = empty
+firstname.role.attrib = role.attrib
+# doc:The first name of a person.
+firstname = element firstname { firstname.attlist, docinfo.char.mix* }
+# end of firstname.element
+firstname.attlist &=
+  common.attrib, firstname.role.attrib, local.firstname.attrib
+# end of firstname.attlist
+
+# end of firstname.module
+local.honorific.attrib = empty
+honorific.role.attrib = role.attrib
+# doc:The title of a person.
+honorific = element honorific { honorific.attlist, docinfo.char.mix* }
+# end of honorific.element
+honorific.attlist &=
+  common.attrib, honorific.role.attrib, local.honorific.attrib
+# end of honorific.attlist
+
+# end of honorific.module
+local.lineage.attrib = empty
+lineage.role.attrib = role.attrib
+# doc:The portion of a person's name indicating a relationship to ancestors.
+lineage = element lineage { lineage.attlist, docinfo.char.mix* }
+# end of lineage.element
+lineage.attlist &=
+  common.attrib, lineage.role.attrib, local.lineage.attrib
+# end of lineage.attlist
+
+# end of lineage.module
+local.othername.attrib = empty
+othername.role.attrib = role.attrib
+# doc:A component of a persons name that is not a first name, surname, or lineage.
+othername = element othername { othername.attlist, docinfo.char.mix* }
+# end of othername.element
+othername.attlist &=
+  common.attrib, othername.role.attrib, local.othername.attrib
+# end of othername.attlist
+
+# end of othername.module
+local.surname.attrib = empty
+surname.role.attrib = role.attrib
+# doc:A family name; in western cultures the last name.
+surname = element surname { surname.attlist, docinfo.char.mix* }
+# end of surname.element
+surname.attlist &=
+  common.attrib, surname.role.attrib, local.surname.attrib
+# end of surname.attlist
+
+# end of surname.module
+
+# end of person.ident.module
+
+# PrintHistory .....................
+local.printhistory.attrib = empty
+printhistory.role.attrib = role.attrib
+# doc:The printing history of a document.
+printhistory =
+  element printhistory { printhistory.attlist, para.class+ }
+# end of printhistory.element
+printhistory.attlist &=
+  common.attrib, printhistory.role.attrib, local.printhistory.attrib
+# end of printhistory.attlist
+
+# end of printhistory.module
+
+# ProductName ......................
+local.productname.attrib = empty
+productname.role.attrib = role.attrib
+# doc:The formal name of a product.
+productname =
+  element productname { productname.attlist, para.char.mix* }
+# end of productname.element
+
+# Class: More precisely identifies the item the element names
+productname.attlist &=
+  [ a:defaultValue = "trade" ]
+  attribute class { "service" | "trade" | "registered" | "copyright" }?,
+  common.attrib,
+  productname.role.attrib,
+  local.productname.attrib
+# end of productname.attlist
+
+# end of productname.module
+
+# ProductNumber ....................
+local.productnumber.attrib = empty
+productnumber.role.attrib = role.attrib
+# doc:A number assigned to a product.
+productnumber =
+  element productnumber { productnumber.attlist, docinfo.char.mix* }
+# end of productnumber.element
+productnumber.attlist &=
+  common.attrib, productnumber.role.attrib, local.productnumber.attrib
+# end of productnumber.attlist
+
+# end of productnumber.module
+
+# PubDate ..........................
+local.pubdate.attrib = empty
+pubdate.role.attrib = role.attrib
+# doc:The date of publication of a document.
+pubdate = element pubdate { pubdate.attlist, docinfo.char.mix* }
+# end of pubdate.element
+pubdate.attlist &=
+  common.attrib, pubdate.role.attrib, local.pubdate.attrib
+# end of pubdate.attlist
+
+# end of pubdate.module
+
+# Publisher ........................
+local.publisher.attrib = empty
+publisher.role.attrib = role.attrib
+# doc:The publisher of a document.
+publisher =
+  element publisher { publisher.attlist, publishername, address* }
+# end of publisher.element
+publisher.attlist &=
+  common.attrib, publisher.role.attrib, local.publisher.attrib
+# end of publisher.attlist
+
+# end of publisher.module
+local.publishername.attrib = empty
+publishername.role.attrib = role.attrib
+# doc:The name of the publisher of a document.
+publishername =
+  element publishername { publishername.attlist, docinfo.char.mix* }
+# end of publishername.element
+publishername.attlist &=
+  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 .......................
+local.pubsnumber.attrib = empty
+pubsnumber.role.attrib = role.attrib
+# doc:A number assigned to a publication other than an ISBN or ISSN or inventory part number.
+pubsnumber =
+  element pubsnumber { pubsnumber.attlist, docinfo.char.mix* }
+# end of pubsnumber.element
+pubsnumber.attlist &=
+  common.attrib, pubsnumber.role.attrib, local.pubsnumber.attrib
+# end of pubsnumber.attlist
+
+# end of pubsnumber.module
+
+# ReleaseInfo ......................
+local.releaseinfo.attrib = empty
+releaseinfo.role.attrib = role.attrib
+# doc:Information about a particular release of a document.
+releaseinfo =
+  element releaseinfo { releaseinfo.attlist, docinfo.char.mix* }
+# end of releaseinfo.element
+releaseinfo.attlist &=
+  common.attrib, releaseinfo.role.attrib, local.releaseinfo.attrib
+# end of releaseinfo.attlist
+
+# end of releaseinfo.module
+
+# RevHistory .......................
+local.revhistory.attrib = empty
+revhistory.role.attrib = role.attrib
+# doc:A history of the revisions to a document.
+revhistory = element revhistory { revhistory.attlist, revision+ }
+# end of revhistory.element
+revhistory.attlist &=
+  common.attrib, revhistory.role.attrib, local.revhistory.attrib
+# end of revhistory.attlist
+
+# end of revhistory.module
+local.revision.attrib = empty
+revision.role.attrib = role.attrib
+# doc:An entry describing a single revision in the history of the revisions to a document.
+revision =
+  element revision {
+    revision.attlist,
+    revnumber?,
+    date,
+    (author | authorinitials)*,
+    (revremark | revdescription)?
+  }
+# end of revision.element
+revision.attlist &=
+  common.attrib, revision.role.attrib, local.revision.attrib
+# end of revision.attlist
+
+# end of revision.module
+local.revnumber.attrib = empty
+revnumber.role.attrib = role.attrib
+# doc:A document revision number.
+revnumber = element revnumber { revnumber.attlist, docinfo.char.mix* }
+# end of revnumber.element
+revnumber.attlist &=
+  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)
+local.revremark.attrib = empty
+revremark.role.attrib = role.attrib
+# doc:A description of a revision to a document.
+revremark = element revremark { revremark.attlist, docinfo.char.mix* }
+# end of revremark.element
+revremark.attlist &=
+  common.attrib, revremark.role.attrib, local.revremark.attrib
+# end of revremark.attlist
+
+# end of revremark.module
+local.revdescription.attrib = empty
+revdescription.role.attrib = role.attrib
+# doc:A extended description of a revision to a document.
+revdescription =
+  element revdescription { revdescription.attlist, revdescription.mix+ }
+# end of revdescription.element
+revdescription.attlist &=
+  common.attrib, revdescription.role.attrib, local.revdescription.attrib
+# end of revdescription.attlist
+
+# end of revdescription.module
+
+# end of revhistory.content.module
+
+# SeriesVolNums ....................
+local.seriesvolnums.attrib = empty
+seriesvolnums.role.attrib = role.attrib
+# doc:Numbers of the volumes in a series of books.
+seriesvolnums =
+  element seriesvolnums { seriesvolnums.attlist, docinfo.char.mix* }
+# end of seriesvolnums.element
+seriesvolnums.attlist &=
+  common.attrib, seriesvolnums.role.attrib, local.seriesvolnums.attrib
+# end of seriesvolnums.attlist
+
+# end of seriesvolnums.module
+
+# VolumeNum ........................
+local.volumenum.attrib = empty
+volumenum.role.attrib = role.attrib
+# doc:The volume number of a document in a set (as of books in a set or articles in a journal).
+volumenum = element volumenum { volumenum.attlist, docinfo.char.mix* }
+# end of volumenum.element
+volumenum.attlist &=
+  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 .........................................
+local.accel.attrib = empty
+accel.role.attrib = role.attrib
+# doc:A graphical user interface (GUI) keyboard shortcut.
+accel = element accel { accel.attlist, smallcptr.char.mix* }
+# end of accel.element
+accel.attlist &= common.attrib, accel.role.attrib, local.accel.attrib
+# end of accel.attlist
+
+# end of accel.module
+local.action.attrib = empty
+action.role.attrib = role.attrib
+# doc:A response to a user event.
+action = element action { action.attlist, cptr.char.mix* }
+# end of action.element
+action.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  action.role.attrib,
+  local.action.attrib
+# end of action.attlist
+
+# end of action.module
+local.application.attrib = empty
+application.role.attrib = role.attrib
+# doc:The name of a software program.
+application =
+  element application { application.attlist, para.char.mix* }
+# end of application.element
+application.attlist &=
+  attribute class { "hardware" | "software" }?,
+  moreinfo.attrib,
+  common.attrib,
+  application.role.attrib,
+  local.application.attrib
+# end of application.attlist
+
+# end of application.module
+local.classname.attrib = empty
+classname.role.attrib = role.attrib
+# doc:The name of a class, in the object-oriented programming sense.
+classname = element classname { classname.attlist, smallcptr.char.mix* }
+# end of classname.element
+classname.attlist &=
+  common.attrib, classname.role.attrib, local.classname.attrib
+# end of classname.attlist
+
+# end of classname.module
+local.package.attrib = empty
+package.role.attrib = role.attrib
+# doc:A package.
+package = element package { package.attlist, smallcptr.char.mix* }
+# end of package.element
+package.attlist &=
+  common.attrib, package.role.attrib, local.package.attrib
+# end of package.attlist
+
+# end of package.module
+local.co.attrib = empty
+# CO is a callout area of the LineColumn unit type (a single character
+# position); the position is directly indicated by the location of CO.
+co.role.attrib = role.attrib
+# doc:The location of a callout embedded in text.
+co = element co { co.attlist, empty }
+# end of co.element
+
+# bug number/symbol override or initialization
+
+# to any related information
+co.attlist &=
+  label.attrib,
+  linkends.attrib,
+  idreq.common.attrib,
+  co.role.attrib,
+  local.co.attrib
+# end of co.attlist
+
+# end of co.module
+local.coref.attrib = empty
+# COREF is a reference to a CO
+coref.role.attrib = role.attrib
+# doc:A cross reference to a co.
+coref = element coref { coref.attlist, empty }
+# end of coref.element
+
+# bug number/symbol override or initialization
+
+# to any related information
+coref.attlist &=
+  label.attrib,
+  linkendreq.attrib,
+  common.attrib,
+  coref.role.attrib,
+  local.coref.attrib
+# end of coref.attlist
+
+# end of coref.module
+local.command.attrib = empty
+command.role.attrib = role.attrib
+# doc:The name of an executable program or other software command.
+command = element command { command.attlist, cptr.char.mix* }
+# end of command.element
+command.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  command.role.attrib,
+  local.command.attrib
+# end of command.attlist
+
+# end of command.module
+local.computeroutput.attrib = empty
+computeroutput.role.attrib = role.attrib
+# doc:Data, generally text, displayed or presented by a computer.
+computeroutput =
+  element computeroutput {
+    computeroutput.attlist, (cptr.char.mix | co)*
+  }
+# end of computeroutput.element
+computeroutput.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  computeroutput.role.attrib,
+  local.computeroutput.attrib
+# end of computeroutput.attlist
+
+# end of computeroutput.module
+local.database.attrib = empty
+database.role.attrib = role.attrib
+# doc:The name of a database, or part of a database.
+database = element database { database.attlist, cptr.char.mix* }
+# end of database.element
+
+# Class: Type of database the element names; no default
+database.attlist &=
+  attribute class {
+    "name"
+    | "table"
+    | "field"
+    | "key1"
+    | "key2"
+    | "record"
+    | "index"
+    | "view"
+    | "primarykey"
+    | "secondarykey"
+    | "foreignkey"
+    | "altkey"
+    | "procedure"
+    | "datatype"
+    | "constraint"
+    | "rule"
+    | "user"
+    | "group"
+  }?,
+  moreinfo.attrib,
+  common.attrib,
+  database.role.attrib,
+  local.database.attrib
+# end of database.attlist
+
+# end of database.module
+local.email.attrib = empty
+email.role.attrib = role.attrib
+# doc:An email address.
+email = element email { email.attlist, docinfo.char.mix* }
+# end of email.element
+email.attlist &= common.attrib, email.role.attrib, local.email.attrib
+# end of email.attlist
+
+# end of email.module
+local.envar.attrib = empty
+envar.role.attrib = role.attrib
+# doc:A software environment variable.
+envar = element envar { envar.attlist, smallcptr.char.mix* }
+# end of envar.element
+envar.attlist &= common.attrib, envar.role.attrib, local.envar.attrib
+# end of envar.attlist
+
+# end of envar.module
+local.errorcode.attrib = empty
+errorcode.role.attrib = role.attrib
+# doc:An error code.
+errorcode = element errorcode { errorcode.attlist, smallcptr.char.mix* }
+# end of errorcode.element
+errorcode.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  errorcode.role.attrib,
+  local.errorcode.attrib
+# end of errorcode.attlist
+
+# end of errorcode.module
+local.errorname.attrib = empty
+errorname.role.attrib = role.attrib
+# doc:An error name.
+errorname = element errorname { errorname.attlist, smallcptr.char.mix* }
+# end of errorname.element
+errorname.attlist &=
+  common.attrib, errorname.role.attrib, local.errorname.attrib
+# end of errorname.attlist
+
+# end of errorname.module
+local.errortext.attrib = empty
+errortext.role.attrib = role.attrib
+# doc:An error message..
+errortext = element errortext { errortext.attlist, smallcptr.char.mix* }
+# end of errortext.element
+errortext.attlist &=
+  common.attrib, errortext.role.attrib, local.errortext.attrib
+# end of errortext.attlist
+
+# end of errortext.module
+local.errortype.attrib = empty
+errortype.role.attrib = role.attrib
+# doc:The classification of an error message.
+errortype = element errortype { errortype.attlist, smallcptr.char.mix* }
+# end of errortype.element
+errortype.attlist &=
+  common.attrib, errortype.role.attrib, local.errortype.attrib
+# end of errortype.attlist
+
+# end of errortype.module
+local.filename.attrib = empty
+filename.role.attrib = role.attrib
+# doc:The name of a file.
+filename = element filename { filename.attlist, 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
+filename.attlist &=
+  attribute class {
+    "headerfile"
+    | "partition"
+    | "devicefile"
+    | "libraryfile"
+    | "directory"
+    | "extension"
+    | "symlink"
+  }?,
+  attribute path { text }?,
+  moreinfo.attrib,
+  common.attrib,
+  filename.role.attrib,
+  local.filename.attrib
+# end of filename.attlist
+
+# end of filename.module
+local.function.attrib = empty
+function.role.attrib = role.attrib
+# doc:The name of a function or subroutine, as in a programming language.
+function = element function { function.attlist, cptr.char.mix* }
+# end of function.element
+function.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  function.role.attrib,
+  local.function.attrib
+# end of function.attlist
+
+# end of function.module
+local.guibutton.attrib = empty
+guibutton.role.attrib = role.attrib
+# doc:The text on a button in a GUI.
+guibutton =
+  element guibutton {
+    guibutton.attlist,
+    (smallcptr.char.mix | accel | superscript | subscript)*
+  }
+# end of guibutton.element
+guibutton.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  guibutton.role.attrib,
+  local.guibutton.attrib
+# end of guibutton.attlist
+
+# end of guibutton.module
+local.guiicon.attrib = empty
+guiicon.role.attrib = role.attrib
+# doc:Graphic and/or text appearing as a icon in a GUI.
+guiicon =
+  element guiicon {
+    guiicon.attlist,
+    (smallcptr.char.mix | accel | superscript | subscript)*
+  }
+# end of guiicon.element
+guiicon.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  guiicon.role.attrib,
+  local.guiicon.attrib
+# end of guiicon.attlist
+
+# end of guiicon.module
+local.guilabel.attrib = empty
+guilabel.role.attrib = role.attrib
+# doc:The text of a label in a GUI.
+guilabel =
+  element guilabel {
+    guilabel.attlist,
+    (smallcptr.char.mix | accel | superscript | subscript)*
+  }
+# end of guilabel.element
+guilabel.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  guilabel.role.attrib,
+  local.guilabel.attrib
+# end of guilabel.attlist
+
+# end of guilabel.module
+local.guimenu.attrib = empty
+guimenu.role.attrib = role.attrib
+# doc:The name of a menu in a GUI.
+guimenu =
+  element guimenu {
+    guimenu.attlist,
+    (smallcptr.char.mix | accel | superscript | subscript)*
+  }
+# end of guimenu.element
+guimenu.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  guimenu.role.attrib,
+  local.guimenu.attrib
+# end of guimenu.attlist
+
+# end of guimenu.module
+local.guimenuitem.attrib = empty
+guimenuitem.role.attrib = role.attrib
+# doc:The name of a terminal menu item in a GUI.
+guimenuitem =
+  element guimenuitem {
+    guimenuitem.attlist,
+    (smallcptr.char.mix | accel | superscript | subscript)*
+  }
+# end of guimenuitem.element
+guimenuitem.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  guimenuitem.role.attrib,
+  local.guimenuitem.attrib
+# end of guimenuitem.attlist
+
+# end of guimenuitem.module
+local.guisubmenu.attrib = empty
+guisubmenu.role.attrib = role.attrib
+# doc:The name of a submenu in a GUI.
+guisubmenu =
+  element guisubmenu {
+    guisubmenu.attlist,
+    (smallcptr.char.mix | accel | superscript | subscript)*
+  }
+# end of guisubmenu.element
+guisubmenu.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  guisubmenu.role.attrib,
+  local.guisubmenu.attrib
+# end of guisubmenu.attlist
+
+# end of guisubmenu.module
+local.hardware.attrib = empty
+hardware.role.attrib = role.attrib
+# doc:A physical part of a computer system.
+hardware = element hardware { hardware.attlist, cptr.char.mix* }
+# end of hardware.element
+hardware.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  hardware.role.attrib,
+  local.hardware.attrib
+# end of hardware.attlist
+
+# end of hardware.module
+local.interface.attrib = empty
+interface.role.attrib = role.attrib
+# doc:An element of a GUI.
+interface =
+  element interface { interface.attlist, (smallcptr.char.mix | accel)* }
+# end of interface.element
+
+# Class: Type of the Interface item; no default
+interface.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  interface.role.attrib,
+  local.interface.attrib
+# end of interface.attlist
+
+# end of interface.module
+local.keycap.attrib = empty
+keycap.role.attrib = role.attrib
+# doc:The text printed on a key on a keyboard.
+keycap = element keycap { keycap.attlist, cptr.char.mix* }
+# end of keycap.element
+keycap.attlist &=
+  attribute function {
+    "alt"
+    | "control"
+    | "shift"
+    | "meta"
+    | "escape"
+    | "enter"
+    | "tab"
+    | "backspace"
+    | "command"
+    | "option"
+    | "space"
+    | "delete"
+    | "insert"
+    | "up"
+    | "down"
+    | "left"
+    | "right"
+    | "home"
+    | "end"
+    | "pageup"
+    | "pagedown"
+    | "other"
+  }?,
+  attribute otherfunction { text }?,
+  moreinfo.attrib,
+  common.attrib,
+  keycap.role.attrib,
+  local.keycap.attrib
+# end of keycap.attlist
+
+# end of keycap.module
+local.keycode.attrib = empty
+keycode.role.attrib = role.attrib
+# doc:The internal, frequently numeric, identifier for a key on a keyboard.
+keycode = element keycode { keycode.attlist, smallcptr.char.mix* }
+# end of keycode.element
+keycode.attlist &=
+  common.attrib, keycode.role.attrib, local.keycode.attrib
+# end of keycode.attlist
+
+# end of keycode.module
+local.keycombo.attrib = empty
+keycombo.role.attrib = role.attrib
+# doc:A combination of input actions.
+keycombo =
+  element keycombo {
+    keycombo.attlist, (keycap | keycombo | keysym | mousebutton)+
+  }
+# end of keycombo.element
+keycombo.attlist &=
+  keyaction.attrib,
+  moreinfo.attrib,
+  common.attrib,
+  keycombo.role.attrib,
+  local.keycombo.attrib
+# end of keycombo.attlist
+
+# end of keycombo.module
+local.keysym.attrib = empty
+keysysm.role.attrib = role.attrib
+# doc:The symbolic name of a key on a keyboard.
+keysym = element keysym { keysym.attlist, smallcptr.char.mix* }
+# end of keysym.element
+keysym.attlist &=
+  common.attrib, keysysm.role.attrib, local.keysym.attrib
+# end of keysym.attlist
+
+# end of keysym.module
+local.lineannotation.attrib = empty
+lineannotation.role.attrib = role.attrib
+# doc:A comment on a line in a verbatim listing.
+lineannotation =
+  element lineannotation { lineannotation.attlist, para.char.mix* }
+# end of lineannotation.element
+lineannotation.attlist &=
+  common.attrib, lineannotation.role.attrib, local.lineannotation.attrib
+# end of lineannotation.attlist
+
+# end of lineannotation.module
+local.literal.attrib = empty
+literal.role.attrib = role.attrib
+# doc:Inline text that is some literal value.
+literal = element literal { literal.attlist, cptr.char.mix* }
+# end of literal.element
+literal.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  literal.role.attrib,
+  local.literal.attrib
+# end of literal.attlist
+
+# end of literal.module
+local.code.attrib = empty
+code.role.attrib = role.attrib
+# doc:An inline code fragment.
+code = element code { code.attlist, cptr.char.mix* }
+# end of code.element
+code.attlist &=
+  attribute language { text }?,
+  common.attrib,
+  code.role.attrib,
+  local.code.attrib
+# end of code.attlist
+
+# end of code.module
+local.constant.attrib = empty
+constant.role.attrib = role.attrib
+# doc:A programming or system constant.
+constant = element constant { constant.attlist, smallcptr.char.mix* }
+# end of constant.element
+constant.attlist &=
+  attribute class { "limit" }?,
+  common.attrib,
+  constant.role.attrib,
+  local.constant.attrib
+# end of constant.attlist
+
+# end of constant.module
+local.varname.attrib = empty
+varname.role.attrib = role.attrib
+# doc:The name of a variable.
+varname = element varname { varname.attlist, smallcptr.char.mix* }
+# end of varname.element
+varname.attlist &=
+  common.attrib, varname.role.attrib, local.varname.attrib
+# end of varname.attlist
+
+# end of varname.module
+local.markup.attrib = empty
+markup.role.attrib = role.attrib
+# doc:A string of formatting markup in text that is to be represented literally.
+markup = element markup { markup.attlist, smallcptr.char.mix* }
+# end of markup.element
+markup.attlist &= common.attrib, markup.role.attrib, local.markup.attrib
+# end of markup.attlist
+
+# end of markup.module
+local.medialabel.attrib = empty
+medialabel.role.attrib = role.attrib
+# doc:A name that identifies the physical medium on which some information resides.
+medialabel =
+  element medialabel { medialabel.attlist, smallcptr.char.mix* }
+# end of medialabel.element
+
+# Class: Type of medium named by the element; no default
+medialabel.attlist &=
+  attribute class { "cartridge" | "cdrom" | "disk" | "tape" }?,
+  common.attrib,
+  medialabel.role.attrib,
+  local.medialabel.attrib
+# end of medialabel.attlist
+
+# end of medialabel.module
+local.menuchoice.attrib = empty
+menuchoice.role.attrib = role.attrib
+# doc:A selection or series of selections from a menu.
+menuchoice =
+  element menuchoice {
+    menuchoice.attlist,
+    shortcut?,
+    (guibutton
+     | guiicon
+     | guilabel
+     | guimenu
+     | guimenuitem
+     | guisubmenu
+     | interface)+
+  }
+# end of menuchoice.element
+menuchoice.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  menuchoice.role.attrib,
+  local.menuchoice.attrib
+# end of menuchoice.attlist
+
+# end of menuchoice.module
+
+# See also KeyCombo
+local.shortcut.attrib = empty
+shortcut.role.attrib = role.attrib
+# doc:A key combination for an action that is also accessible through a menu.
+shortcut =
+  element shortcut {
+    shortcut.attlist, (keycap | keycombo | keysym | mousebutton)+
+  }
+# end of shortcut.element
+shortcut.attlist &=
+  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
+local.mousebutton.attrib = empty
+mousebutton.role.attrib = role.attrib
+# doc:The conventional name of a mouse button.
+mousebutton =
+  element mousebutton { mousebutton.attlist, smallcptr.char.mix* }
+# end of mousebutton.element
+mousebutton.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  mousebutton.role.attrib,
+  local.mousebutton.attrib
+# end of mousebutton.attlist
+
+# end of mousebutton.module
+local.msgtext.attrib = empty
+msgtext.role.attrib = role.attrib
+# doc:The actual text of a message component in a message set.
+msgtext = element msgtext { msgtext.attlist, component.mix+ }
+# end of msgtext.element
+msgtext.attlist &=
+  common.attrib, msgtext.role.attrib, local.msgtext.attrib
+# end of msgtext.attlist
+
+# end of msgtext.module
+local.option.attrib = empty
+option.role.attrib = role.attrib
+# doc:An option for a software command.
+option = element option { option.attlist, cptr.char.mix* }
+# end of option.element
+option.attlist &= common.attrib, option.role.attrib, local.option.attrib
+# end of option.attlist
+
+# end of option.module
+local.optional.attrib = empty
+optional.role.attrib = role.attrib
+# doc:Optional information.
+optional = element optional { optional.attlist, cptr.char.mix* }
+# end of optional.element
+optional.attlist &=
+  common.attrib, optional.role.attrib, local.optional.attrib
+# end of optional.attlist
+
+# end of optional.module
+local.parameter.attrib = empty
+parameter.role.attrib = role.attrib
+# doc:A value or a symbolic reference to a value.
+parameter = element parameter { parameter.attlist, cptr.char.mix* }
+# end of parameter.element
+
+# Class: Type of the Parameter; no default
+parameter.attlist &=
+  attribute class { "command" | "function" | "option" }?,
+  moreinfo.attrib,
+  common.attrib,
+  parameter.role.attrib,
+  local.parameter.attrib
+# end of parameter.attlist
+
+# end of parameter.module
+local.prompt.attrib = empty
+prompt.role.attrib = role.attrib
+# doc:A character or string indicating the start of an input field in a  computer display.
+prompt = element prompt { prompt.attlist, (smallcptr.char.mix | co)* }
+# end of prompt.element
+prompt.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  prompt.role.attrib,
+  local.prompt.attrib
+# end of prompt.attlist
+
+# end of prompt.module
+local.property.attrib = empty
+property.role.attrib = role.attrib
+# doc:A unit of data associated with some part of a computer system.
+property = element property { property.attlist, cptr.char.mix* }
+# end of property.element
+property.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  property.role.attrib,
+  local.property.attrib
+# end of property.attlist
+
+# end of property.module
+local.replaceable.attrib = empty
+replaceable.role.attrib = role.attrib
+# doc:Content that may or must be replaced by the user.
+replaceable =
+  element replaceable {
+    replaceable.attlist,
+    (text
+     | link.char.class
+     | optional
+     | base.char.class
+     | other.char.class
+     | inlinegraphic
+     | inlinemediaobject
+     | co)*
+  }
+# end of replaceable.element
+
+# Class: Type of information the element represents; no
+# default
+replaceable.attlist &=
+  attribute class { "command" | "function" | "option" | "parameter" }?,
+  common.attrib,
+  replaceable.role.attrib,
+  local.replaceable.attrib
+# end of replaceable.attlist
+
+# end of replaceable.module
+local.returnvalue.attrib = empty
+returnvalue.role.attrib = role.attrib
+# doc:The value returned by a function.
+returnvalue =
+  element returnvalue { returnvalue.attlist, smallcptr.char.mix* }
+# end of returnvalue.element
+returnvalue.attlist &=
+  common.attrib, returnvalue.role.attrib, local.returnvalue.attrib
+# end of returnvalue.attlist
+
+# end of returnvalue.module
+local.sgmltag.attrib = empty
+sgmltag.role.attrib = role.attrib
+# doc:A component of SGML markup.
+sgmltag = element sgmltag { sgmltag.attlist, smallcptr.char.mix* }
+# end of sgmltag.element
+
+# Class: Type of SGML construct the element names; no default
+sgmltag.attlist &=
+  attribute class {
+    "attribute"
+    | "attvalue"
+    | "element"
+    | "endtag"
+    | "emptytag"
+    | "genentity"
+    | "numcharref"
+    | "paramentity"
+    | "pi"
+    | "xmlpi"
+    | "starttag"
+    | "sgmlcomment"
+    | "prefix"
+    | "namespace"
+    | "localname"
+  }?,
+  attribute namespace { text }?,
+  common.attrib,
+  sgmltag.role.attrib,
+  local.sgmltag.attrib
+# end of sgmltag.attlist
+
+# end of sgmltag.module
+local.structfield.attrib = empty
+structfield.role.attrib = role.attrib
+# doc:A field in a structure (in the programming language sense).
+structfield =
+  element structfield { structfield.attlist, smallcptr.char.mix* }
+# end of structfield.element
+structfield.attlist &=
+  common.attrib, structfield.role.attrib, local.structfield.attrib
+# end of structfield.attlist
+
+# end of structfield.module
+local.structname.attrib = empty
+structname.role.attrib = role.attrib
+# doc:The name of a structure (in the programming language sense).
+structname =
+  element structname { structname.attlist, smallcptr.char.mix* }
+# end of structname.element
+structname.attlist &=
+  common.attrib, structname.role.attrib, local.structname.attrib
+# end of structname.attlist
+
+# end of structname.module
+local.symbol.attrib = empty
+symbol.role.attrib = role.attrib
+# doc:A name that is replaced by a value before processing.
+symbol = element symbol { symbol.attlist, smallcptr.char.mix* }
+# end of symbol.element
+
+# Class: Type of symbol; no default
+symbol.attlist &=
+  attribute class { "limit" }?,
+  common.attrib,
+  symbol.role.attrib,
+  local.symbol.attrib
+# end of symbol.attlist
+
+# end of symbol.module
+local.systemitem.attrib = empty
+systemitem.role.attrib = role.attrib
+# doc:A system-related item or term.
+systemitem =
+  element systemitem {
+    systemitem.attlist, (cptr.char.mix | acronym | co)*
+  }
+# end of systemitem.element
+
+# Class: Type of system item the element names; no default
+systemitem.attlist &=
+  attribute class {
+    "constant"
+    | "daemon"
+    | "domainname"
+    | "etheraddress"
+    | "event"
+    | "eventhandler"
+    | "filesystem"
+    | "fqdomainname"
+    | "groupname"
+    | "ipaddress"
+    | "library"
+    | "macro"
+    | "netmask"
+    | "newsgroup"
+    | "osname"
+    | "protocol"
+    | "resource"
+    | "systemname"
+    | "username"
+    | "process"
+    | "server"
+    | "service"
+  }?,
+  moreinfo.attrib,
+  common.attrib,
+  systemitem.role.attrib,
+  local.systemitem.attrib
+# end of systemitem.attlist
+
+# end of systemitem.module
+local.uri.attrib = empty
+uri.role.attrib = role.attrib
+# doc:A Uniform Resource Identifier.
+uri = element uri { uri.attlist, smallcptr.char.mix* }
+# end of uri.element
+
+# Type: Type of URI; no default
+uri.attlist &=
+  attribute type { text }?,
+  common.attrib,
+  uri.role.attrib,
+  local.uri.attrib
+# end of uri.attlist
+
+# end of uri.module
+local.token.attrib = empty
+token.role.attrib = role.attrib
+# doc:A unit of information.
+\token = element token { token.attlist, smallcptr.char.mix* }
+# end of token.element
+token.attlist &= common.attrib, token.role.attrib, local.token.attrib
+# end of token.attlist
+
+# end of token.module
+local.type.attrib = empty
+type.role.attrib = role.attrib
+# doc:The classification of a value.
+type = element type { type.attlist, smallcptr.char.mix* }
+# end of type.element
+type.attlist &= common.attrib, type.role.attrib, local.type.attrib
+# end of type.attlist
+
+# end of type.module
+local.userinput.attrib = empty
+userinput.role.attrib = role.attrib
+# doc:Data entered by the user.
+userinput =
+  element userinput { userinput.attlist, (cptr.char.mix | co)* }
+# end of userinput.element
+userinput.attlist &=
+  moreinfo.attrib,
+  common.attrib,
+  userinput.role.attrib,
+  local.userinput.attrib
+# end of userinput.attlist
+
+# end of userinput.module
+local.termdef.attrib = empty
+termdef.role.attrib = role.attrib
+# doc:An inline definition of a term.
+termdef = element termdef { termdef.attlist, para.char.mix* }
+# end of termdef.element
+termdef.attlist &=
+  common.attrib, termdef.role.attrib, local.termdef.attrib
+# end of termdef.attlist
+
+# end of termdef.module
+
+# General words and phrases ............................................
+local.abbrev.attrib = empty
+abbrev.role.attrib = role.attrib
+# doc:An abbreviation, especially one followed by a period.
+abbrev = element abbrev { abbrev.attlist, word.char.mix* }
+# end of abbrev.element
+abbrev.attlist &= common.attrib, abbrev.role.attrib, local.abbrev.attrib
+# end of abbrev.attlist
+
+# end of abbrev.module
+local.acronym.attrib = empty
+acronym.role.attrib = role.attrib
+# doc:An often pronounceable word made from the initial (or selected) letters of a name or phrase.
+acronym = element acronym { acronym.attlist, word.char.mix* }
+# end of acronym.element
+acronym.attlist &=
+  common.attrib, acronym.role.attrib, local.acronym.attrib
+# end of acronym.attlist
+
+# end of acronym.module
+local.citation.attrib = empty
+citation.role.attrib = role.attrib
+# doc:An inline bibliographic reference to another published work.
+citation = element citation { citation.attlist, para.char.mix* }
+# end of citation.element
+citation.attlist &=
+  common.attrib, citation.role.attrib, local.citation.attrib
+# end of citation.attlist
+
+# end of citation.module
+local.citerefentry.attrib = empty
+citerefentry.role.attrib = role.attrib
+# doc:A citation to a reference page.
+citerefentry =
+  element citerefentry {
+    citerefentry.attlist, refentrytitle, manvolnum?
+  }
+# end of citerefentry.element
+citerefentry.attlist &=
+  common.attrib, citerefentry.role.attrib, local.citerefentry.attrib
+# end of citerefentry.attlist
+
+# end of citerefentry.module
+local.refentrytitle.attrib = empty
+refentrytitle.role.attrib = role.attrib
+# doc:The title of a reference page.
+refentrytitle =
+  element refentrytitle { refentrytitle.attlist, para.char.mix* }
+# end of refentrytitle.element
+refentrytitle.attlist &=
+  common.attrib, refentrytitle.role.attrib, local.refentrytitle.attrib
+# end of refentrytitle.attlist
+
+# end of refentrytitle.module
+local.manvolnum.attrib = empty
+namvolnum.role.attrib = role.attrib
+# doc:A reference volume number.
+manvolnum = element manvolnum { manvolnum.attlist, word.char.mix* }
+# end of manvolnum.element
+manvolnum.attlist &=
+  common.attrib, namvolnum.role.attrib, local.manvolnum.attrib
+# end of manvolnum.attlist
+
+# end of manvolnum.module
+local.citetitle.attrib = empty
+citetitle.role.attrib = role.attrib
+# doc:The title of a cited work.
+citetitle = element citetitle { citetitle.attlist, para.char.mix* }
+# end of citetitle.element
+
+# Pubwork: Genre of published work cited; no default
+citetitle.attlist &=
+  attribute pubwork {
+    "article"
+    | "book"
+    | "chapter"
+    | "part"
+    | "refentry"
+    | "section"
+    | "journal"
+    | "series"
+    | "set"
+    | "manuscript"
+    | "cdrom"
+    | "dvd"
+    | "wiki"
+    | "gopher"
+    | "bbs"
+    | "emailmessage"
+    | "webpage"
+    | "newsposting"
+  }?,
+  common.attrib,
+  citetitle.role.attrib,
+  local.citetitle.attrib
+# end of citetitle.attlist
+
+# end of citetitle.module
+local.emphasis.attrib = empty
+emphasis.role.attrib = role.attrib
+# doc:Emphasized text.
+emphasis = element emphasis { emphasis.attlist, para.char.mix* }
+# end of emphasis.element
+emphasis.attlist &=
+  common.attrib, emphasis.role.attrib, local.emphasis.attrib
+# end of emphasis.attlist
+
+# end of emphasis.module
+local.foreignphrase.attrib = empty
+foreignphrase.role.attrib = role.attrib
+# doc:A word or phrase in a language other than the primary language of the document.
+foreignphrase =
+  element foreignphrase { foreignphrase.attlist, para.char.mix* }
+# end of foreignphrase.element
+foreignphrase.attlist &=
+  common.attrib, foreignphrase.role.attrib, local.foreignphrase.attrib
+# end of foreignphrase.attlist
+
+# end of foreignphrase.module
+local.glossterm.attrib = empty
+glossterm.role.attrib = role.attrib
+# doc:A glossary term.
+glossterm = element glossterm { glossterm.attlist, 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
+glossterm.attlist &=
+  attribute baseform { text }?,
+  linkend.attrib,
+  common.attrib,
+  glossterm.role.attrib,
+  local.glossterm.attrib
+# end of glossterm.attlist
+
+# end of glossterm.module
+local.firstterm.attrib = empty
+firstterm.role.attrib = role.attrib
+# doc:The first occurrence of a term.
+firstterm = element firstterm { firstterm.attlist, para.char.mix* }
+# end of firstterm.element
+
+# to GlossEntry or other explanation
+firstterm.attlist &=
+  attribute baseform { text }?,
+  linkend.attrib,
+  common.attrib,
+  firstterm.role.attrib,
+  local.firstterm.attrib
+# end of firstterm.attlist
+
+# end of firstterm.module
+local.phrase.attrib = empty
+phrase.role.attrib = role.attrib
+# doc:A span of text.
+phrase = element phrase { phrase.attlist, para.char.mix* }
+# end of phrase.element
+phrase.attlist &= common.attrib, phrase.role.attrib, local.phrase.attrib
+# end of phrase.attlist
+
+# end of phrase.module
+local.quote.attrib = empty
+quote.role.attrib = role.attrib
+# doc:An inline quotation.
+quote = element quote { quote.attlist, para.char.mix* }
+# end of quote.element
+quote.attlist &= common.attrib, quote.role.attrib, local.quote.attrib
+# end of quote.attlist
+
+# end of quote.module
+local.ssscript.attrib = empty
+ssscript.role.attrib = role.attrib
+# doc:A subscript (as in H{^2}O, the molecular formula for water).
+subscript =
+  element subscript {
+    subscript.attlist,
+    (text
+     | link.char.class
+     | emphasis
+     | replaceable
+     | symbol
+     | inlinegraphic
+     | inlinemediaobject
+     | base.char.class
+     | other.char.class)*
+  }
+# end of subscript.element
+subscript.attlist &=
+  common.attrib, ssscript.role.attrib, local.ssscript.attrib
+# end of subscript.attlist
+
+# doc:A superscript (as in x^2, the mathematical notation for x multiplied by itself).
+superscript =
+  element superscript {
+    superscript.attlist,
+    (text
+     | link.char.class
+     | emphasis
+     | replaceable
+     | symbol
+     | inlinegraphic
+     | inlinemediaobject
+     | base.char.class
+     | other.char.class)*
+  }
+# end of superscript.element
+superscript.attlist &=
+  common.attrib, ssscript.role.attrib, local.ssscript.attrib
+# end of superscript.attlist
+
+# end of ssscript.module
+local.trademark.attrib = empty
+trademark.role.attrib = role.attrib
+# doc:A trademark.
+trademark =
+  element trademark {
+    trademark.attlist,
+    (text
+     | 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
+trademark.attlist &=
+  [ a:defaultValue = "trade" ]
+  attribute class { "service" | "trade" | "registered" | "copyright" }?,
+  common.attrib,
+  trademark.role.attrib,
+  local.trademark.attrib
+# end of trademark.attlist
+
+# end of trademark.module
+local.wordasword.attrib = empty
+wordasword.role.attrib = role.attrib
+# doc:A word meant specifically as a word and not representing anything else.
+wordasword = element wordasword { wordasword.attlist, word.char.mix* }
+# end of wordasword.element
+wordasword.attlist &=
+  common.attrib, wordasword.role.attrib, local.wordasword.attrib
+# end of wordasword.attlist
+
+# end of wordasword.module
+
+# Links and cross-references ...........................................
+local.link.attrib = empty
+link.role.attrib = role.attrib
+# doc:A hypertext link.
+link = element link { link.attlist, 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
+link.attlist &=
+  attribute endterm { xsd:IDREF }?,
+  attribute xrefstyle { text }?,
+  attribute type { text }?,
+  linkendreq.attrib,
+  common.attrib,
+  link.role.attrib,
+  local.link.attrib
+# end of link.attlist
+
+# end of link.module
+local.olink.attrib = empty
+olink.role.attrib = role.attrib
+# doc:A link that addresses its target indirectly, through an entity.
+olink = element olink { olink.attlist, 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
+olink.attlist &=
+  attribute targetdocent { xsd:ENTITY }?,
+  attribute linkmode { xsd:IDREF }?,
+  attribute localinfo { text }?,
+  attribute type { text }?,
+  attribute targetdoc { text }?,
+  attribute targetptr { text }?,
+  attribute xrefstyle { text }?,
+  common.attrib,
+  olink.role.attrib,
+  local.olink.attrib
+# end of olink.attlist
+
+# end of olink.module
+local.ulink.attrib = empty
+ulink.role.attrib = role.attrib
+# doc:A link that addresses its target by means of a URL (Uniform Resource Locator).
+ulink = element ulink { ulink.attlist, para.char.mix* }
+# end of ulink.element
+
+# URL: uniform resource locator; the target of the ULink
+
+# Type: Freely assignable parameter
+ulink.attlist &=
+  attribute url { text },
+  attribute type { text }?,
+  attribute xrefstyle { text }?,
+  common.attrib,
+  ulink.role.attrib,
+  local.ulink.attrib
+# end of ulink.attlist
+
+# end of ulink.module
+local.footnoteref.attrib = empty
+footnoteref.role.attrib = role.attrib
+# doc:A cross reference to a footnote (a footnote mark).
+footnoteref = element footnoteref { footnoteref.attlist, empty }
+# end of footnoteref.element
+
+# to footnote content supplied elsewhere
+footnoteref.attlist &=
+  linkendreq.attrib,
+  label.attrib,
+  common.attrib,
+  footnoteref.role.attrib,
+  local.footnoteref.attrib
+# end of footnoteref.attlist
+
+# end of footnoteref.module
+local.xref.attrib = empty
+xref.role.attrib = role.attrib
+# doc:A cross reference to another part of the document.
+xref = element xref { xref.attlist, 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
+xref.attlist &=
+  attribute endterm { xsd:IDREF }?,
+  attribute xrefstyle { text }?,
+  common.attrib,
+  linkendreq.attrib,
+  xref.role.attrib,
+  local.xref.attrib
+# end of xref.attlist
+
+# end of xref.module
+local.biblioref.attrib = empty
+biblioref.role.attrib = role.attrib
+# doc:A cross reference to a bibliographic entry.
+biblioref = element biblioref { biblioref.attlist, empty }
+# end of biblioref.element
+biblioref.attlist &=
+  attribute endterm { xsd:IDREF }?,
+  attribute xrefstyle { text }?,
+  attribute units { text }?,
+  attribute begin { text }?,
+  attribute end { text }?,
+  common.attrib,
+  linkendreq.attrib,
+  biblioref.role.attrib,
+  local.biblioref.attrib
+# end of biblioref.attlist
+
+# end of biblioref.module
+
+# Ubiquitous elements ..................................................
+local.anchor.attrib = empty
+anchor.role.attrib = role.attrib
+# doc:A spot in the document.
+anchor = element anchor { anchor.attlist, empty }
+# end of anchor.element
+
+# required
+
+# replaces Lang
+anchor.attlist &=
+  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
+local.beginpage.attrib = empty
+beginpage.role.attrib = role.attrib
+# doc:The location of a page break in a print version of the document.
+beginpage = element beginpage { beginpage.attlist, empty }
+# end of beginpage.element
+
+# PageNum: Number of page that begins at this point
+beginpage.attlist &=
+  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.
+local.indexterm.attrib = empty
+indexterm.role.attrib = role.attrib
+# doc:A wrapper for terms to be indexed.
+indexterm =
+  element indexterm {
+    indexterm.attlist,
+    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
+indexterm.attlist &=
+  pagenum.attrib,
+  attribute scope { "all" | "global" | "local" }?,
+  [ a:defaultValue = "normal" ]
+  attribute significance { "preferred" | "normal" }?,
+  attribute class { "singular" | "startofrange" | "endofrange" }?,
+  attribute startref { xsd:IDREF }?,
+  attribute zone { xsd:IDREFS }?,
+  attribute type { text }?,
+  common.attrib,
+  indexterm.role.attrib,
+  local.indexterm.attrib
+# end of indexterm.attlist
+
+# end of indexterm.module
+local.primsecter.attrib = empty
+primsecter.role.attrib = role.attrib
+# doc:The primary word or phrase under which an index term should be sorted.
+primary = element primary { primary.attlist, ndxterm.char.mix* }
+# end of primary.element
+
+# SortAs: Alternate sort string for index sorting, e.g.,
+# "fourteen" for an element containing "14"
+primary.attlist &=
+  attribute sortas { text }?,
+  common.attrib,
+  primsecter.role.attrib,
+  local.primsecter.attrib
+# end of primary.attlist
+
+# doc:A secondary word or phrase in an index term.
+secondary = element secondary { secondary.attlist, ndxterm.char.mix* }
+# end of secondary.element
+
+# SortAs: Alternate sort string for index sorting, e.g.,
+# "fourteen" for an element containing "14"
+secondary.attlist &=
+  attribute sortas { text }?,
+  common.attrib,
+  primsecter.role.attrib,
+  local.primsecter.attrib
+# end of secondary.attlist
+
+# doc:A tertiary word or phrase in an index term.
+tertiary = element tertiary { tertiary.attlist, ndxterm.char.mix* }
+# end of tertiary.element
+
+# SortAs: Alternate sort string for index sorting, e.g.,
+# "fourteen" for an element containing "14"
+tertiary.attlist &=
+  attribute sortas { text }?,
+  common.attrib,
+  primsecter.role.attrib,
+  local.primsecter.attrib
+# end of tertiary.attlist
+
+# end of primsecter.module
+local.seeseealso.attrib = empty
+seeseealso.role.attrib = role.attrib
+# doc:Part of an index term directing the reader instead to another entry in the index.
+see = element see { see.attlist, ndxterm.char.mix* }
+# end of see.element
+see.attlist &=
+  common.attrib, seeseealso.role.attrib, local.seeseealso.attrib
+# end of see.attlist
+
+# doc:Part of an index term directing the reader also to another entry in the index.
+seealso = element seealso { seealso.attlist, ndxterm.char.mix* }
+# end of seealso.element
+seealso.attlist &=
+  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.5 ......................
+
+# ......................................................................

Added: trunk/clfs/schema/docbook/4.5/rng/dbpoolx.rng
===================================================================
--- trunk/clfs/schema/docbook/4.5/rng/dbpoolx.rng	                        (rev 0)
+++ trunk/clfs/schema/docbook/4.5/rng/dbpoolx.rng	2011-04-17 21:49:19 UTC (rev 1294)
@@ -0,0 +1,10774 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ...................................................................... -->
+<!-- DocBook XML information pool module V4.5 ............................. -->
+<!-- File dbpoolx.mod ..................................................... -->
+<!--
+  Copyright 1992-2004 HaL Computer Systems, Inc.,
+  O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+  Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+  Organization for the Advancement of Structured Information
+  Standards (OASIS).
+  
+  $Id: dbpoolx.mod 6340 2006-10-03 13:23:24Z nwalsh $
+  
+  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 at 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.5//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.
+-->
+<!-- ...................................................................... -->
+<!-- Forms entities ....................................................... -->
+<!-- These PEs provide the hook by which the forms module can be inserted -->
+<!-- into the DTD. -->
+<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="forminlines.hook">
+    <notAllowed/>
+  </define>
+  <define name="forms.hook">
+    <notAllowed/>
+  </define>
+  <!-- ...................................................................... -->
+  <!-- General-purpose semantics entities ................................... -->
+  <define name="yesorno.attvals">
+    <data type="string" datatypeLibrary=""/>
+  </define>
+  <!-- ...................................................................... -->
+  <!-- Entities for module inclusions ....................................... -->
+  <!-- ...................................................................... -->
+  <!-- Entities for element classes and mixtures ............................ -->
+  <!-- "Ubiquitous" classes: ndxterm.class and beginpage -->
+  <define name="local.ndxterm.class">
+    <notAllowed/>
+  </define>
+  <define name="ndxterm.class">
+    <choice>
+      <ref name="indexterm"/>
+      <ref name="local.ndxterm.class"/>
+    </choice>
+  </define>
+  <!-- Object-level classes ................................................. -->
+  <define name="local.list.class">
+    <notAllowed/>
+  </define>
+  <define name="list.class">
+    <choice>
+      <ref name="calloutlist"/>
+      <ref name="glosslist"/>
+      <ref name="bibliolist"/>
+      <ref name="itemizedlist"/>
+      <ref name="orderedlist"/>
+      <ref name="segmentedlist"/>
+      <ref name="simplelist"/>
+      <ref name="variablelist"/>
+      <ref name="local.list.class"/>
+    </choice>
+  </define>
+  <define name="local.admon.class">
+    <notAllowed/>
+  </define>
+  <define name="admon.class">
+    <choice>
+      <ref name="caution"/>
+      <ref name="important"/>
+      <ref name="note"/>
+      <ref name="tip"/>
+      <ref name="warning"/>
+      <ref name="local.admon.class"/>
+    </choice>
+  </define>
+  <define name="local.linespecific.class">
+    <notAllowed/>
+  </define>
+  <define name="linespecific.class">
+    <choice>
+      <ref name="literallayout"/>
+      <ref name="programlisting"/>
+      <ref name="programlistingco"/>
+      <ref name="screen"/>
+      <ref name="screenco"/>
+      <ref name="screenshot"/>
+      <ref name="local.linespecific.class"/>
+    </choice>
+  </define>
+  <define name="local.method.synop.class">
+    <notAllowed/>
+  </define>
+  <define name="method.synop.class">
+    <choice>
+      <ref name="constructorsynopsis"/>
+      <ref name="destructorsynopsis"/>
+      <ref name="methodsynopsis"/>
+      <ref name="local.method.synop.class"/>
+    </choice>
+  </define>
+  <define name="local.synop.class">
+    <notAllowed/>
+  </define>
+  <define name="synop.class">
+    <choice>
+      <ref name="synopsis"/>
+      <ref name="cmdsynopsis"/>
+      <ref name="funcsynopsis"/>
+      <ref name="classsynopsis"/>
+      <ref name="fieldsynopsis"/>
+      <ref name="method.synop.class"/>
+      <ref name="local.synop.class"/>
+    </choice>
+  </define>
+  <define name="local.para.class">
+    <notAllowed/>
+  </define>
+  <define name="para.class">
+    <choice>
+      <ref name="formalpara"/>
+      <ref name="para"/>
+      <ref name="simpara"/>
+      <ref name="local.para.class"/>
+    </choice>
+  </define>
+  <define name="local.informal.class">
+    <notAllowed/>
+  </define>
+  <define name="informal.class">
+    <choice>
+      <ref name="address"/>
+      <ref name="blockquote"/>
+      <ref name="graphic"/>
+      <ref name="graphicco"/>
+      <ref name="mediaobject"/>
+      <ref name="mediaobjectco"/>
+      <ref name="informalequation"/>
+      <ref name="informalexample"/>
+      <ref name="informalfigure"/>
+      <ref name="informaltable"/>
+      <ref name="local.informal.class"/>
+    </choice>
+  </define>
+  <define name="local.formal.class">
+    <notAllowed/>
+  </define>
+  <define name="formal.class">
+    <choice>
+      <ref name="equation"/>
+      <ref name="example"/>
+      <ref name="figure"/>
+      <ref name="table"/>
+      <ref name="local.formal.class"/>
+    </choice>
+  </define>
+  <!-- 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. -->
+  <define name="ebnf.block.hook">
+    <notAllowed/>
+  </define>
+  <define name="local.compound.class">
+    <notAllowed/>
+  </define>
+  <define name="compound.class">
+    <choice>
+      <ref name="msgset"/>
+      <ref name="procedure"/>
+      <ref name="sidebar"/>
+      <ref name="qandaset"/>
+      <ref name="task"/>
+      <ref name="ebnf.block.hook"/>
+      <ref name="local.compound.class"/>
+    </choice>
+  </define>
+  <define name="local.genobj.class">
+    <notAllowed/>
+  </define>
+  <define name="genobj.class">
+    <choice>
+      <ref name="anchor"/>
+      <ref name="bridgehead"/>
+      <ref name="remark"/>
+      <ref name="highlights"/>
+      <ref name="local.genobj.class"/>
+    </choice>
+  </define>
+  <define name="local.descobj.class">
+    <notAllowed/>
+  </define>
+  <define name="descobj.class">
+    <choice>
+      <ref name="abstract"/>
+      <ref name="authorblurb"/>
+      <ref name="epigraph"/>
+      <ref name="local.descobj.class"/>
+    </choice>
+  </define>
+  <!-- Character-level classes .............................................. -->
+  <define name="local.xref.char.class">
+    <notAllowed/>
+  </define>
+  <define name="xref.char.class">
+    <choice>
+      <ref name="footnoteref"/>
+      <ref name="xref"/>
+      <ref name="biblioref"/>
+      <ref name="local.xref.char.class"/>
+    </choice>
+  </define>
+  <define name="local.gen.char.class">
+    <notAllowed/>
+  </define>
+  <define name="gen.char.class">
+    <choice>
+      <ref name="abbrev"/>
+      <ref name="acronym"/>
+      <ref name="citation"/>
+      <ref name="citerefentry"/>
+      <ref name="citetitle"/>
+      <ref name="citebiblioid"/>
+      <ref name="emphasis"/>
+      <ref name="firstterm"/>
+      <ref name="foreignphrase"/>
+      <ref name="glossterm"/>
+      <ref name="termdef"/>
+      <ref name="footnote"/>
+      <ref name="phrase"/>
+      <ref name="orgname"/>
+      <ref name="quote"/>
+      <ref name="trademark"/>
+      <ref name="wordasword"/>
+      <ref name="personname"/>
+      <ref name="local.gen.char.class"/>
+    </choice>
+  </define>
+  <define name="local.link.char.class">
+    <notAllowed/>
+  </define>
+  <define name="link.char.class">
+    <choice>
+      <ref name="link"/>
+      <ref name="olink"/>
+      <ref name="ulink"/>
+      <ref name="local.link.char.class"/>
+    </choice>
+  </define>
+  <!-- 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. -->
+  <define name="ebnf.inline.hook">
+    <notAllowed/>
+  </define>
+  <define name="local.tech.char.class">
+    <notAllowed/>
+  </define>
+  <define name="tech.char.class">
+    <choice>
+      <ref name="action"/>
+      <ref name="application"/>
+      <ref name="classname"/>
+      <ref name="methodname"/>
+      <ref name="interfacename"/>
+      <ref name="exceptionname"/>
+      <ref name="ooclass"/>
+      <ref name="oointerface"/>
+      <ref name="ooexception"/>
+      <ref name="package"/>
+      <ref name="command"/>
+      <ref name="computeroutput"/>
+      <ref name="database"/>
+      <ref name="email"/>
+      <ref name="envar"/>
+      <ref name="errorcode"/>
+      <ref name="errorname"/>
+      <ref name="errortype"/>
+      <ref name="errortext"/>
+      <ref name="filename"/>
+      <ref name="function"/>
+      <ref name="guibutton"/>
+      <ref name="guiicon"/>
+      <ref name="guilabel"/>
+      <ref name="guimenu"/>
+      <ref name="guimenuitem"/>
+      <ref name="guisubmenu"/>
+      <ref name="hardware"/>
+      <ref name="interface"/>
+      <ref name="keycap"/>
+      <ref name="keycode"/>
+      <ref name="keycombo"/>
+      <ref name="keysym"/>
+      <ref name="literal"/>
+      <ref name="code"/>
+      <ref name="constant"/>
+      <ref name="markup"/>
+      <ref name="medialabel"/>
+      <ref name="menuchoice"/>
+      <ref name="mousebutton"/>
+      <ref name="option"/>
+      <ref name="optional"/>
+      <ref name="parameter"/>
+      <ref name="prompt"/>
+      <ref name="property"/>
+      <ref name="replaceable"/>
+      <ref name="returnvalue"/>
+      <ref name="sgmltag"/>
+      <ref name="structfield"/>
+      <ref name="structname"/>
+      <ref name="symbol"/>
+      <ref name="systemitem"/>
+      <ref name="uri"/>
+      <ref name="token"/>
+      <ref name="type"/>
+      <ref name="userinput"/>
+      <ref name="varname"/>
+      <ref name="ebnf.inline.hook"/>
+      <ref name="local.tech.char.class"/>
+    </choice>
+  </define>
+  <define name="local.base.char.class">
+    <notAllowed/>
+  </define>
+  <define name="base.char.class">
+    <choice>
+      <ref name="anchor"/>
+      <ref name="local.base.char.class"/>
+    </choice>
+  </define>
+  <define name="local.docinfo.char.class">
+    <notAllowed/>
+  </define>
+  <define name="docinfo.char.class">
+    <choice>
+      <ref name="author"/>
+      <ref name="authorinitials"/>
+      <ref name="corpauthor"/>
+      <ref name="corpcredit"/>
+      <ref name="modespec"/>
+      <ref name="othercredit"/>
+      <ref name="productname"/>
+      <ref name="productnumber"/>
+      <ref name="revhistory"/>
+      <ref name="local.docinfo.char.class"/>
+    </choice>
+  </define>
+  <define name="local.other.char.class">
+    <notAllowed/>
+  </define>
+  <define name="other.char.class">
+    <choice>
+      <ref name="remark"/>
+      <ref name="subscript"/>
+      <ref name="superscript"/>
+      <ref name="local.other.char.class"/>
+    </choice>
+  </define>
+  <define name="local.inlineobj.char.class">
+    <notAllowed/>
+  </define>
+  <define name="inlineobj.char.class">
+    <choice>
+      <ref name="inlinegraphic"/>
+      <ref name="inlinemediaobject"/>
+      <ref name="inlineequation"/>
+      <ref name="local.inlineobj.char.class"/>
+    </choice>
+  </define>
+  <!-- ...................................................................... -->
+  <!-- Entities for content models .......................................... -->
+  <define name="formalobject.title.content">
+    <ref name="title"/>
+    <optional>
+      <ref name="titleabbrev"/>
+    </optional>
+  </define>
+  <!-- Redeclaration placeholder ............................................ -->
+  <!--
+    For redeclaring entities that are declared after this point while
+    retaining their references to the entities that are declared before
+    this point
+  -->
+  <!-- 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.
+  -->
+  <define name="local.component.mix">
+    <notAllowed/>
+  </define>
+  <define name="component.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="admon.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="synop.class"/>
+      <ref name="para.class"/>
+      <ref name="informal.class"/>
+      <ref name="formal.class"/>
+      <ref name="compound.class"/>
+      <ref name="genobj.class"/>
+      <ref name="descobj.class"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="forms.hook"/>
+      <ref name="local.component.mix"/>
+    </choice>
+  </define>
+  <define name="local.sidebar.mix">
+    <notAllowed/>
+  </define>
+  <define name="sidebar.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="admon.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="synop.class"/>
+      <ref name="para.class"/>
+      <ref name="informal.class"/>
+      <ref name="formal.class"/>
+      <ref name="procedure"/>
+      <ref name="genobj.class"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="forms.hook"/>
+      <ref name="local.sidebar.mix"/>
+    </choice>
+  </define>
+  <define name="local.qandaset.mix">
+    <notAllowed/>
+  </define>
+  <define name="qandaset.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="admon.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="synop.class"/>
+      <ref name="para.class"/>
+      <ref name="informal.class"/>
+      <ref name="formal.class"/>
+      <ref name="procedure"/>
+      <ref name="genobj.class"/>
+      <ref name="ndxterm.class"/>
+      <ref name="forms.hook"/>
+      <ref name="local.qandaset.mix"/>
+    </choice>
+  </define>
+  <define name="local.revdescription.mix">
+    <notAllowed/>
+  </define>
+  <define name="revdescription.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="admon.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="synop.class"/>
+      <ref name="para.class"/>
+      <ref name="informal.class"/>
+      <ref name="formal.class"/>
+      <ref name="procedure"/>
+      <ref name="genobj.class"/>
+      <ref name="ndxterm.class"/>
+      <ref name="local.revdescription.mix"/>
+    </choice>
+  </define>
+  <define name="local.footnote.mix">
+    <notAllowed/>
+  </define>
+  <define name="footnote.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="synop.class"/>
+      <ref name="para.class"/>
+      <ref name="informal.class"/>
+      <ref name="local.footnote.mix"/>
+    </choice>
+  </define>
+  <define name="local.example.mix">
+    <notAllowed/>
+  </define>
+  <define name="example.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="synop.class"/>
+      <ref name="para.class"/>
+      <ref name="informal.class"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="procedure"/>
+      <ref name="forms.hook"/>
+      <ref name="local.example.mix"/>
+    </choice>
+  </define>
+  <define name="local.highlights.mix">
+    <notAllowed/>
+  </define>
+  <define name="highlights.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="admon.class"/>
+      <ref name="para.class"/>
+      <ref name="ndxterm.class"/>
+      <ref name="local.highlights.mix"/>
+    </choice>
+  </define>
+  <!--
+    %formal.class; is explicitly excluded from many contexts in which
+    paragraphs are used
+  -->
+  <define name="local.para.mix">
+    <notAllowed/>
+  </define>
+  <define name="para.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="admon.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="informal.class"/>
+      <ref name="formal.class"/>
+      <ref name="local.para.mix"/>
+    </choice>
+  </define>
+  <define name="local.admon.mix">
+    <notAllowed/>
+  </define>
+  <define name="admon.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="synop.class"/>
+      <ref name="para.class"/>
+      <ref name="informal.class"/>
+      <ref name="formal.class"/>
+      <ref name="procedure"/>
+      <ref name="sidebar"/>
+      <ref name="anchor"/>
+      <ref name="bridgehead"/>
+      <ref name="remark"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="forms.hook"/>
+      <ref name="local.admon.mix"/>
+    </choice>
+  </define>
+  <define name="local.figure.mix">
+    <notAllowed/>
+  </define>
+  <define name="figure.mix">
+    <choice>
+      <ref name="linespecific.class"/>
+      <ref name="synop.class"/>
+      <ref name="informal.class"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="forms.hook"/>
+      <ref name="local.figure.mix"/>
+    </choice>
+  </define>
+  <define name="local.tabentry.mix">
+    <notAllowed/>
+  </define>
+  <define name="tabentry.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="admon.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="para.class"/>
+      <ref name="graphic"/>
+      <ref name="mediaobject"/>
+      <ref name="forms.hook"/>
+      <ref name="local.tabentry.mix"/>
+    </choice>
+  </define>
+  <define name="local.glossdef.mix">
+    <notAllowed/>
+  </define>
+  <define name="glossdef.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="synop.class"/>
+      <ref name="para.class"/>
+      <ref name="informal.class"/>
+      <ref name="formal.class"/>
+      <ref name="remark"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="local.glossdef.mix"/>
+    </choice>
+  </define>
+  <define name="local.legalnotice.mix">
+    <notAllowed/>
+  </define>
+  <define name="legalnotice.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="admon.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="para.class"/>
+      <ref name="blockquote"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="local.legalnotice.mix"/>
+    </choice>
+  </define>
+  <define name="local.textobject.mix">
+    <notAllowed/>
+  </define>
+  <define name="textobject.mix">
+    <choice>
+      <ref name="list.class"/>
+      <ref name="admon.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="para.class"/>
+      <ref name="blockquote"/>
+      <ref name="local.textobject.mix"/>
+    </choice>
+  </define>
+  <define name="local.mediaobject.mix">
+    <notAllowed/>
+  </define>
+  <define name="mediaobject.mix">
+    <choice>
+      <ref name="videoobject"/>
+      <ref name="audioobject"/>
+      <ref name="imageobject"/>
+      <ref name="imageobjectco"/>
+      <ref name="textobject"/>
+      <ref name="local.mediaobject.mix"/>
+    </choice>
+  </define>
+  <define name="local.listpreamble.mix">
+    <notAllowed/>
+  </define>
+  <define name="listpreamble.mix">
+    <choice>
+      <ref name="admon.class"/>
+      <ref name="linespecific.class"/>
+      <ref name="synop.class"/>
+      <ref name="para.class"/>
+      <ref name="informal.class"/>
+      <ref name="genobj.class"/>
+      <ref name="descobj.class"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="forms.hook"/>
+      <ref name="local.listpreamble.mix"/>
+    </choice>
+  </define>
+  <!-- Character-level mixtures ............................................. -->
+  <!-- sgml.features -->
+  <!-- not [sgml.features[ -->
+  <!-- ]] not sgml.features -->
+  <!--
+                        #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.
+  -->
+  <define name="local.para.char.mix">
+    <notAllowed/>
+  </define>
+  <define name="para.char.mix">
+    <choice>
+      <text/>
+      <ref name="xref.char.class"/>
+      <ref name="gen.char.class"/>
+      <ref name="link.char.class"/>
+      <ref name="tech.char.class"/>
+      <ref name="base.char.class"/>
+      <ref name="docinfo.char.class"/>
+      <ref name="other.char.class"/>
+      <ref name="inlineobj.char.class"/>
+      <ref name="synop.class"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="forminlines.hook"/>
+      <ref name="local.para.char.mix"/>
+    </choice>
+  </define>
+  <define name="local.title.char.mix">
+    <notAllowed/>
+  </define>
+  <define name="title.char.mix">
+    <choice>
+      <text/>
+      <ref name="xref.char.class"/>
+      <ref name="gen.char.class"/>
+      <ref name="link.char.class"/>
+      <ref name="tech.char.class"/>
+      <ref name="base.char.class"/>
+      <ref name="docinfo.char.class"/>
+      <ref name="other.char.class"/>
+      <ref name="inlineobj.char.class"/>
+      <ref name="ndxterm.class"/>
+      <ref name="local.title.char.mix"/>
+    </choice>
+  </define>
+  <define name="local.ndxterm.char.mix">
+    <notAllowed/>
+  </define>
+  <define name="ndxterm.char.mix">
+    <choice>
+      <text/>
+      <ref name="xref.char.class"/>
+      <ref name="gen.char.class"/>
+      <ref name="link.char.class"/>
+      <ref name="tech.char.class"/>
+      <ref name="base.char.class"/>
+      <ref name="docinfo.char.class"/>
+      <ref name="other.char.class"/>
+      <ref name="inlinegraphic"/>
+      <ref name="inlinemediaobject"/>
+      <ref name="local.ndxterm.char.mix"/>
+    </choice>
+  </define>
+  <define name="local.cptr.char.mix">
+    <notAllowed/>
+  </define>
+  <define name="cptr.char.mix">
+    <choice>
+      <text/>
+      <ref name="link.char.class"/>
+      <ref name="tech.char.class"/>
+      <ref name="base.char.class"/>
+      <ref name="other.char.class"/>
+      <ref name="inlinegraphic"/>
+      <ref name="inlinemediaobject"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="local.cptr.char.mix"/>
+    </choice>
+  </define>
+  <define name="local.smallcptr.char.mix">
+    <notAllowed/>
+  </define>
+  <define name="smallcptr.char.mix">
+    <choice>
+      <text/>
+      <ref name="replaceable"/>
+      <ref name="inlinegraphic"/>
+      <ref name="inlinemediaobject"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="local.smallcptr.char.mix"/>
+    </choice>
+  </define>
+  <define name="local.word.char.mix">
+    <notAllowed/>
+  </define>
+  <define name="word.char.mix">
+    <choice>
+      <text/>
+      <ref name="acronym"/>
+      <ref name="emphasis"/>
+      <ref name="trademark"/>
+      <ref name="link.char.class"/>
+      <ref name="base.char.class"/>
+      <ref name="other.char.class"/>
+      <ref name="inlinegraphic"/>
+      <ref name="inlinemediaobject"/>
+      <ref name="ndxterm.class"/>
+      <ref name="beginpage"/>
+      <ref name="local.word.char.mix"/>
+    </choice>
+  </define>
+  <define name="local.docinfo.char.mix">
+    <notAllowed/>
+  </define>
+  <define name="docinfo.char.mix">
+    <choice>
+      <text/>
+      <ref name="link.char.class"/>
+      <ref name="emphasis"/>
+      <ref name="trademark"/>
+      <ref name="replaceable"/>
+      <ref name="other.char.class"/>
+      <ref name="inlinegraphic"/>
+      <ref name="inlinemediaobject"/>
+      <ref name="ndxterm.class"/>
+      <ref name="local.docinfo.char.mix"/>
+    </choice>
+  </define>
+  <!-- ENTITY % bibliocomponent.mix (see Bibliographic section, below) -->
+  <!-- ENTITY % person.ident.mix (see Bibliographic section, below) -->
+  <!-- ...................................................................... -->
+  <!-- Entities for attributes and attribute components ..................... -->
+  <!-- Effectivity attributes ............................................... -->
+  <!--
+    Arch: Computer or chip architecture to which element applies; no
+    default
+  -->
+  <define name="arch.attrib">
+    <optional>
+      <attribute name="arch"/>
+    </optional>
+  </define>
+  <!-- Condition: General-purpose effectivity attribute -->
+  <define name="condition.attrib">
+    <optional>
+      <attribute name="condition"/>
+    </optional>
+  </define>
+  <!-- Conformance: Standards conformance characteristics -->
+  <define name="conformance.attrib">
+    <optional>
+      <attribute name="conformance">
+        <data type="NMTOKENS"/>
+      </attribute>
+    </optional>
+  </define>
+  <!-- OS: Operating system to which element applies; no default -->
+  <define name="os.attrib">
+    <optional>
+      <attribute name="os"/>
+    </optional>
+  </define>
+  <!-- Revision: Editorial revision to which element belongs; no default -->
+  <define name="revision.attrib">
+    <optional>
+      <attribute name="revision"/>
+    </optional>
+  </define>
+  <!-- Security: Security classification; no default -->
+  <define name="security.attrib">
+    <optional>
+      <attribute name="security"/>
+    </optional>
+  </define>
+  <!--
+    UserLevel: Level of user experience to which element applies; no
+    default
+  -->
+  <define name="userlevel.attrib">
+    <optional>
+      <attribute name="userlevel"/>
+    </optional>
+  </define>
+  <!-- Vendor: Computer vendor to which element applies; no default -->
+  <define name="vendor.attrib">
+    <optional>
+      <attribute name="vendor"/>
+    </optional>
+  </define>
+  <!-- Wordsize: Computer word size (32 bit, 64 bit, etc.); no default -->
+  <define name="wordsize.attrib">
+    <optional>
+      <attribute name="wordsize"/>
+    </optional>
+  </define>
+  <define name="local.effectivity.attrib">
+    <empty/>
+  </define>
+  <define name="effectivity.attrib">
+    <ref name="arch.attrib"/>
+    <ref name="condition.attrib"/>
+    <ref name="conformance.attrib"/>
+    <ref name="os.attrib"/>
+    <ref name="revision.attrib"/>
+    <ref name="security.attrib"/>
+    <ref name="userlevel.attrib"/>
+    <ref name="vendor.attrib"/>
+    <ref name="wordsize.attrib"/>
+    <ref name="local.effectivity.attrib"/>
+  </define>
+  <!-- Common attributes .................................................... -->
+  <!-- Id: Unique identifier of element; no default -->
+  <define name="id.attrib">
+    <optional>
+      <attribute name="id">
+        <data type="ID"/>
+      </attribute>
+    </optional>
+  </define>
+  <!--
+    Id: Unique identifier of element; a value must be supplied; no
+    default
+  -->
+  <define name="idreq.attrib">
+    <attribute name="id">
+      <data type="ID"/>
+    </attribute>
+  </define>
+  <!--
+    Lang: Indicator of language in which element is written, for
+    translation, character set management, etc.; no default
+  -->
+  <define name="lang.attrib">
+    <optional>
+      <attribute name="lang"/>
+    </optional>
+  </define>
+  <!-- Remap: Previous role of element before conversion; no default -->
+  <define name="remap.attrib">
+    <optional>
+      <attribute name="remap"/>
+    </optional>
+  </define>
+  <!-- Role: New role of element in local environment; no default -->
+  <define name="role.attrib">
+    <optional>
+      <attribute name="role"/>
+    </optional>
+  </define>
+  <!--
+    XRefLabel: Alternate labeling string for XRef text generation;
+    default is usually title or other appropriate label text already
+    contained in element
+  -->
+  <define name="xreflabel.attrib">
+    <optional>
+      <attribute name="xreflabel"/>
+    </optional>
+  </define>
+  <!--
+    RevisionFlag: Revision status of element; default is that element
+    wasn't revised
+  -->
+  <define name="revisionflag.attrib">
+    <optional>
+      <attribute name="revisionflag">
+        <choice>
+          <value>changed</value>
+          <value>added</value>
+          <value>deleted</value>
+          <value>off</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <define name="local.common.attrib">
+    <empty/>
+  </define>
+  <!-- dir: Bidirectional override -->
+  <define name="dir.attrib">
+    <optional>
+      <attribute name="dir">
+        <choice>
+          <value>ltr</value>
+          <value>rtl</value>
+          <value>lro</value>
+          <value>rlo</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!-- xml:base: base URI -->
+  <define name="xml-base.attrib">
+    <optional>
+      <attribute name="xml:base"/>
+    </optional>
+  </define>
+  <!-- Role is included explicitly on each element -->
+  <define name="common.attrib">
+    <ref name="id.attrib"/>
+    <ref name="lang.attrib"/>
+    <ref name="remap.attrib"/>
+    <ref name="xreflabel.attrib"/>
+    <ref name="revisionflag.attrib"/>
+    <ref name="effectivity.attrib"/>
+    <ref name="dir.attrib"/>
+    <ref name="xml-base.attrib"/>
+    <ref name="local.common.attrib"/>
+  </define>
+  <!-- Role is included explicitly on each element -->
+  <define name="idreq.common.attrib">
+    <ref name="idreq.attrib"/>
+    <ref name="lang.attrib"/>
+    <ref name="remap.attrib"/>
+    <ref name="xreflabel.attrib"/>
+    <ref name="revisionflag.attrib"/>
+    <ref name="effectivity.attrib"/>
+    <ref name="dir.attrib"/>
+    <ref name="xml-base.attrib"/>
+    <ref name="local.common.attrib"/>
+  </define>
+  <!-- Semi-common attributes and other attribute entities .................. -->
+  <define name="local.graphics.attrib">
+    <empty/>
+  </define>
+  <!--
+    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 -->
+  <define name="graphics.attrib">
+    <optional>
+      <attribute name="entityref">
+        <data type="ENTITY"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="fileref"/>
+    </optional>
+    <optional>
+      <attribute name="format">
+        <choice>
+          <ref name="notation.class"/>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="srccredit"/>
+    </optional>
+    <optional>
+      <attribute name="width"/>
+    </optional>
+    <optional>
+      <attribute name="contentwidth"/>
+    </optional>
+    <optional>
+      <attribute name="depth"/>
+    </optional>
+    <optional>
+      <attribute name="contentdepth"/>
+    </optional>
+    <optional>
+      <attribute name="align">
+        <choice>
+          <value>left</value>
+          <value>right</value>
+          <value>center</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="valign">
+        <choice>
+          <value>top</value>
+          <value>middle</value>
+          <value>bottom</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="scale"/>
+    </optional>
+    <optional>
+      <attribute name="scalefit">
+        <ref name="yesorno.attvals"/>
+      </attribute>
+    </optional>
+    <ref name="local.graphics.attrib"/>
+  </define>
+  <define name="local.keyaction.attrib">
+    <empty/>
+  </define>
+  <!--
+    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 -->
+  <define name="keyaction.attrib">
+    <optional>
+      <attribute name="action">
+        <choice>
+          <value>click</value>
+          <value>double-click</value>
+          <value>press</value>
+          <value>seq</value>
+          <value>simul</value>
+          <value>other</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="otheraction"/>
+    </optional>
+    <ref name="local.keyaction.attrib"/>
+  </define>
+  <!--
+    Label: Identifying number or string; default is usually the
+    appropriate number or string autogenerated by a formatter
+  -->
+  <define name="label.attrib">
+    <optional>
+      <attribute name="label"/>
+    </optional>
+  </define>
+  <!-- xml:space: whitespace treatment -->
+  <define name="xml-space.attrib">
+    <optional>
+      <attribute name="xml:space">
+        <choice>
+          <value>preserve</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!--
+    Format: whether element is assumed to contain significant white
+    space
+  -->
+  <define name="linespecific.attrib">
+    <optional>
+      <attribute name="format" a:defaultValue="linespecific">
+        <choice>
+          <value>linespecific</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="xml-space.attrib"/>
+    <optional>
+      <attribute name="linenumbering">
+        <choice>
+          <value>numbered</value>
+          <value>unnumbered</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="continuation">
+        <choice>
+          <value>continues</value>
+          <value>restarts</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="startinglinenumber"/>
+    </optional>
+    <optional>
+      <attribute name="language"/>
+    </optional>
+  </define>
+  <!-- Linkend: link to related information; no default -->
+  <define name="linkend.attrib">
+    <optional>
+      <attribute name="linkend">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+  </define>
+  <!-- Linkend: required link to related information -->
+  <define name="linkendreq.attrib">
+    <attribute name="linkend">
+      <data type="IDREF"/>
+    </attribute>
+  </define>
+  <!--
+    Linkends: link to one or more sets of related information; no
+    default
+  -->
+  <define name="linkends.attrib">
+    <optional>
+      <attribute name="linkends">
+        <data type="IDREFS"/>
+      </attribute>
+    </optional>
+  </define>
+  <define name="local.mark.attrib">
+    <empty/>
+  </define>
+  <define name="mark.attrib">
+    <optional>
+      <attribute name="mark"/>
+    </optional>
+    <ref name="local.mark.attrib"/>
+  </define>
+  <!-- MoreInfo: whether element's content has an associated RefEntry -->
+  <define name="moreinfo.attrib">
+    <optional>
+      <attribute name="moreinfo" a:defaultValue="none">
+        <choice>
+          <value>refentry</value>
+          <value>none</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!-- Pagenum: number of page on which element appears; no default -->
+  <define name="pagenum.attrib">
+    <optional>
+      <attribute name="pagenum"/>
+    </optional>
+  </define>
+  <define name="local.status.attrib">
+    <empty/>
+  </define>
+  <!--
+    Status: Editorial or publication status of the element
+    it applies to, such as "in review" or "approved for distribution"
+  -->
+  <define name="status.attrib">
+    <optional>
+      <attribute name="status"/>
+    </optional>
+    <ref name="local.status.attrib"/>
+  </define>
+  <!--
+    Width: width of the longest line in the element to which it
+    pertains, in number of characters
+  -->
+  <define name="width.attrib">
+    <optional>
+      <attribute name="width"/>
+    </optional>
+  </define>
+  <!-- ...................................................................... -->
+  <!-- Title elements ....................................................... -->
+  <define name="local.title.attrib">
+    <empty/>
+  </define>
+  <define name="title.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The text of the title of a section of a document or of a formal block-level element. -->
+  <define name="title">
+    <element name="title">
+      <ref name="title.attlist"/>
+      <zeroOrMore>
+        <ref name="title.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of title.element -->
+  <define name="title.attlist" combine="interleave">
+    <ref name="pagenum.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="title.role.attrib"/>
+    <ref name="local.title.attrib"/>
+  </define>
+  <!-- end of title.attlist -->
+  <!-- end of title.module -->
+  <define name="local.titleabbrev.attrib">
+    <empty/>
+  </define>
+  <define name="titleabbrev.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The abbreviation of a Title. -->
+  <define name="titleabbrev">
+    <element name="titleabbrev">
+      <ref name="titleabbrev.attlist"/>
+      <zeroOrMore>
+        <ref name="title.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of titleabbrev.element -->
+  <define name="titleabbrev.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="titleabbrev.role.attrib"/>
+    <ref name="local.titleabbrev.attrib"/>
+  </define>
+  <!-- end of titleabbrev.attlist -->
+  <!-- end of titleabbrev.module -->
+  <define name="local.subtitle.attrib">
+    <empty/>
+  </define>
+  <define name="subtitle.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The subtitle of a document. -->
+  <define name="subtitle">
+    <element name="subtitle">
+      <ref name="subtitle.attlist"/>
+      <zeroOrMore>
+        <ref name="title.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of subtitle.element -->
+  <define name="subtitle.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="subtitle.role.attrib"/>
+    <ref name="local.subtitle.attrib"/>
+  </define>
+  <!-- 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.
+  -->
+  <define name="local.person.ident.mix">
+    <notAllowed/>
+  </define>
+  <define name="person.ident.mix">
+    <choice>
+      <ref name="honorific"/>
+      <ref name="firstname"/>
+      <ref name="surname"/>
+      <ref name="lineage"/>
+      <ref name="othername"/>
+      <ref name="affiliation"/>
+      <ref name="authorblurb"/>
+      <ref name="contrib"/>
+      <ref name="local.person.ident.mix"/>
+    </choice>
+  </define>
+  <define name="local.bibliocomponent.mix">
+    <notAllowed/>
+  </define>
+  <define name="bibliocomponent.mix">
+    <choice>
+      <ref name="abbrev"/>
+      <ref name="abstract"/>
+      <ref name="address"/>
+      <ref name="artpagenums"/>
+      <ref name="author"/>
+      <ref name="authorgroup"/>
+      <ref name="authorinitials"/>
+      <ref name="bibliomisc"/>
+      <ref name="biblioset"/>
+      <ref name="collab"/>
+      <ref name="confgroup"/>
+      <ref name="contractnum"/>
+      <ref name="contractsponsor"/>
+      <ref name="copyright"/>
+      <ref name="corpauthor"/>
+      <ref name="corpname"/>
+      <ref name="corpcredit"/>
+      <ref name="date"/>
+      <ref name="edition"/>
+      <ref name="editor"/>
+      <ref name="invpartnumber"/>
+      <ref name="isbn"/>
+      <ref name="issn"/>
+      <ref name="issuenum"/>
+      <ref name="orgname"/>
+      <ref name="biblioid"/>
+      <ref name="citebiblioid"/>
+      <ref name="bibliosource"/>
+      <ref name="bibliorelation"/>
+      <ref name="bibliocoverage"/>
+      <ref name="othercredit"/>
+      <ref name="pagenums"/>
+      <ref name="printhistory"/>
+      <ref name="productname"/>
+      <ref name="productnumber"/>
+      <ref name="pubdate"/>
+      <ref name="publisher"/>
+      <ref name="publishername"/>
+      <ref name="pubsnumber"/>
+      <ref name="releaseinfo"/>
+      <ref name="revhistory"/>
+      <ref name="seriesvolnums"/>
+      <ref name="subtitle"/>
+      <ref name="title"/>
+      <ref name="titleabbrev"/>
+      <ref name="volumenum"/>
+      <ref name="citetitle"/>
+      <ref name="personname"/>
+      <ref name="person.ident.mix"/>
+      <ref name="ndxterm.class"/>
+      <ref name="local.bibliocomponent.mix"/>
+    </choice>
+  </define>
+  <!-- I don't think this is well placed, but it needs to be here because of -->
+  <!-- the reference to bibliocomponent.mix -->
+  <define name="local.info.class">
+    <notAllowed/>
+  </define>
+  <define name="info.class">
+    <choice>
+      <ref name="graphic"/>
+      <ref name="mediaobject"/>
+      <ref name="legalnotice"/>
+      <ref name="modespec"/>
+      <ref name="subjectset"/>
+      <ref name="keywordset"/>
+      <ref name="itermset"/>
+      <ref name="bibliocomponent.mix"/>
+      <ref name="local.info.class"/>
+    </choice>
+  </define>
+  <!-- BiblioList ........................ -->
+  <define name="local.bibliolist.attrib">
+    <empty/>
+  </define>
+  <define name="bibliolist.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for a set of bibliography entries. -->
+  <define name="bibliolist">
+    <element name="bibliolist">
+      <ref name="bibliolist.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <oneOrMore>
+        <choice>
+          <ref name="biblioentry"/>
+          <ref name="bibliomixed"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of bibliolist.element -->
+  <define name="bibliolist.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="bibliolist.role.attrib"/>
+    <ref name="local.bibliolist.attrib"/>
+  </define>
+  <!-- end of bibliolist.attlist -->
+  <!-- end of bibliolist.module -->
+  <define name="local.biblioentry.attrib">
+    <empty/>
+  </define>
+  <define name="biblioentry.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An entry in a Bibliography. -->
+  <define name="biblioentry">
+    <element name="biblioentry">
+      <ref name="biblioentry.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="articleinfo"/>
+          <ref name="bibliocomponent.mix"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of biblioentry.element -->
+  <define name="biblioentry.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="biblioentry.role.attrib"/>
+    <ref name="local.biblioentry.attrib"/>
+  </define>
+  <!-- end of biblioentry.attlist -->
+  <!-- end of biblioentry.module -->
+  <define name="local.bibliomixed.attrib">
+    <empty/>
+  </define>
+  <define name="bibliomixed.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An entry in a Bibliography. -->
+  <define name="bibliomixed">
+    <element name="bibliomixed">
+      <ref name="bibliomixed.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="bibliocomponent.mix"/>
+          <ref name="bibliomset"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of bibliomixed.element -->
+  <define name="bibliomixed.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="bibliomixed.role.attrib"/>
+    <ref name="local.bibliomixed.attrib"/>
+  </define>
+  <!-- end of bibliomixed.attlist -->
+  <!-- end of bibliomixed.module -->
+  <define name="local.articleinfo.attrib">
+    <empty/>
+  </define>
+  <define name="articleinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for an Article. -->
+  <define name="articleinfo">
+    <element name="articleinfo">
+      <ref name="articleinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of articleinfo.element -->
+  <define name="articleinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="articleinfo.role.attrib"/>
+    <ref name="local.articleinfo.attrib"/>
+  </define>
+  <!-- end of articleinfo.attlist -->
+  <!-- end of articleinfo.module -->
+  <define name="local.biblioset.attrib">
+    <empty/>
+  </define>
+  <define name="biblioset.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A "raw" container for related bibliographic information. -->
+  <define name="biblioset">
+    <element name="biblioset">
+      <ref name="biblioset.attlist"/>
+      <oneOrMore>
+        <ref name="bibliocomponent.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of biblioset.element -->
+  <!-- Relation: Relationship of elements contained within BiblioSet -->
+  <define name="biblioset.attlist" combine="interleave">
+    <optional>
+      <attribute name="relation"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="biblioset.role.attrib"/>
+    <ref name="local.biblioset.attrib"/>
+  </define>
+  <!-- end of biblioset.attlist -->
+  <!-- end of biblioset.module -->
+  <define name="bibliomset.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <define name="local.bibliomset.attrib">
+    <empty/>
+  </define>
+  <!-- doc:A "cooked" container for related bibliographic information. -->
+  <define name="bibliomset">
+    <element name="bibliomset">
+      <ref name="bibliomset.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="bibliocomponent.mix"/>
+          <ref name="bibliomset"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of bibliomset.element -->
+  <!-- Relation: Relationship of elements contained within BiblioMSet -->
+  <define name="bibliomset.attlist" combine="interleave">
+    <optional>
+      <attribute name="relation"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="bibliomset.role.attrib"/>
+    <ref name="local.bibliomset.attrib"/>
+  </define>
+  <!-- end of bibliomset.attlist -->
+  <!-- end of bibliomset.module -->
+  <define name="local.bibliomisc.attrib">
+    <empty/>
+  </define>
+  <define name="bibliomisc.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Untyped bibliographic information. -->
+  <define name="bibliomisc">
+    <element name="bibliomisc">
+      <ref name="bibliomisc.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of bibliomisc.element -->
+  <define name="bibliomisc.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="bibliomisc.role.attrib"/>
+    <ref name="local.bibliomisc.attrib"/>
+  </define>
+  <!-- end of bibliomisc.attlist -->
+  <!-- end of bibliomisc.module -->
+  <!-- ...................................................................... -->
+  <!-- Subject, Keyword, and ITermSet elements .............................. -->
+  <define name="local.subjectset.attrib">
+    <empty/>
+  </define>
+  <define name="subjectset.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A set of terms describing the subject matter of a document. -->
+  <define name="subjectset">
+    <element name="subjectset">
+      <ref name="subjectset.attlist"/>
+      <oneOrMore>
+        <ref name="subject"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of subjectset.element -->
+  <!-- Scheme: Controlled vocabulary employed in SubjectTerms -->
+  <define name="subjectset.attlist" combine="interleave">
+    <optional>
+      <attribute name="scheme">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="subjectset.role.attrib"/>
+    <ref name="local.subjectset.attrib"/>
+  </define>
+  <!-- end of subjectset.attlist -->
+  <!-- end of subjectset.module -->
+  <define name="local.subject.attrib">
+    <empty/>
+  </define>
+  <define name="subject.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:One of a group of terms describing the subject matter of a document. -->
+  <define name="subject">
+    <element name="subject">
+      <ref name="subject.attlist"/>
+      <oneOrMore>
+        <ref name="subjectterm"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of subject.element -->
+  <!--
+    Weight: Ranking of this group of SubjectTerms relative
+    to others, 0 is low, no highest value specified
+  -->
+  <define name="subject.attlist" combine="interleave">
+    <optional>
+      <attribute name="weight"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="subject.role.attrib"/>
+    <ref name="local.subject.attrib"/>
+  </define>
+  <!-- end of subject.attlist -->
+  <!-- end of subject.module -->
+  <define name="local.subjectterm.attrib">
+    <empty/>
+  </define>
+  <define name="subjectterm.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A term in a group of terms describing the subject matter of a document. -->
+  <define name="subjectterm">
+    <element name="subjectterm">
+      <ref name="subjectterm.attlist"/>
+      <text/>
+    </element>
+  </define>
+  <!-- end of subjectterm.element -->
+  <define name="subjectterm.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="subjectterm.role.attrib"/>
+    <ref name="local.subjectterm.attrib"/>
+  </define>
+  <!-- end of subjectterm.attlist -->
+  <!-- end of subjectterm.module -->
+  <!-- end of subjectset.content.module -->
+  <define name="local.keywordset.attrib">
+    <empty/>
+  </define>
+  <define name="keywordset.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A set of keywords describing the content of a document. -->
+  <define name="keywordset">
+    <element name="keywordset">
+      <ref name="keywordset.attlist"/>
+      <oneOrMore>
+        <ref name="keyword"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of keywordset.element -->
+  <define name="keywordset.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="keywordset.role.attrib"/>
+    <ref name="local.keywordset.attrib"/>
+  </define>
+  <!-- end of keywordset.attlist -->
+  <!-- end of keywordset.module -->
+  <define name="local.keyword.attrib">
+    <empty/>
+  </define>
+  <define name="keyword.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:One of a set of keywords describing the content of a document. -->
+  <define name="keyword">
+    <element name="keyword">
+      <ref name="keyword.attlist"/>
+      <text/>
+    </element>
+  </define>
+  <!-- end of keyword.element -->
+  <define name="keyword.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="keyword.role.attrib"/>
+    <ref name="local.keyword.attrib"/>
+  </define>
+  <!-- end of keyword.attlist -->
+  <!-- end of keyword.module -->
+  <!-- end of keywordset.content.module -->
+  <define name="local.itermset.attrib">
+    <empty/>
+  </define>
+  <define name="itermset.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A set of index terms in the meta-information of a document. -->
+  <define name="itermset">
+    <element name="itermset">
+      <ref name="itermset.attlist"/>
+      <oneOrMore>
+        <ref name="indexterm"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of itermset.element -->
+  <define name="itermset.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="itermset.role.attrib"/>
+    <ref name="local.itermset.attrib"/>
+  </define>
+  <!-- end of itermset.attlist -->
+  <!-- end of itermset.module -->
+  <!-- Bibliographic info for "blocks" -->
+  <define name="local.blockinfo.attrib">
+    <empty/>
+  </define>
+  <define name="blockinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a block element. -->
+  <define name="blockinfo">
+    <element name="blockinfo">
+      <ref name="blockinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of blockinfo.element -->
+  <define name="blockinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="blockinfo.role.attrib"/>
+    <ref name="local.blockinfo.attrib"/>
+  </define>
+  <!-- end of blockinfo.attlist -->
+  <!-- end of blockinfo.module -->
+  <!-- ...................................................................... -->
+  <!-- Compound (section-ish) elements ...................................... -->
+  <!-- Message set ...................... -->
+  <define name="local.msgset.attrib">
+    <empty/>
+  </define>
+  <define name="msgset.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A detailed set of messages, usually error messages. -->
+  <define name="msgset">
+    <element name="msgset">
+      <ref name="msgset.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <choice>
+        <oneOrMore>
+          <ref name="msgentry"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="simplemsgentry"/>
+        </oneOrMore>
+      </choice>
+    </element>
+  </define>
+  <!-- end of msgset.element -->
+  <define name="msgset.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="msgset.role.attrib"/>
+    <ref name="local.msgset.attrib"/>
+  </define>
+  <!-- end of msgset.attlist -->
+  <!-- end of msgset.module -->
+  <define name="local.msgentry.attrib">
+    <empty/>
+  </define>
+  <define name="msgentry.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for an entry in a message set. -->
+  <define name="msgentry">
+    <element name="msgentry">
+      <ref name="msgentry.attlist"/>
+      <oneOrMore>
+        <ref name="msg"/>
+      </oneOrMore>
+      <optional>
+        <ref name="msginfo"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="msgexplan"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of msgentry.element -->
+  <define name="msgentry.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="msgentry.role.attrib"/>
+    <ref name="local.msgentry.attrib"/>
+  </define>
+  <!-- end of msgentry.attlist -->
+  <!-- end of msgentry.module -->
+  <define name="local.simplemsgentry.attrib">
+    <empty/>
+  </define>
+  <define name="simplemsgentry.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for a simpler entry in a message set. -->
+  <define name="simplemsgentry">
+    <element name="simplemsgentry">
+      <ref name="simplemsgentry.attlist"/>
+      <ref name="msgtext"/>
+      <oneOrMore>
+        <ref name="msgexplan"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of simplemsgentry.element -->
+  <define name="simplemsgentry.attlist" combine="interleave">
+    <optional>
+      <attribute name="audience"/>
+    </optional>
+    <optional>
+      <attribute name="level"/>
+    </optional>
+    <optional>
+      <attribute name="origin"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="simplemsgentry.role.attrib"/>
+    <ref name="local.simplemsgentry.attrib"/>
+  </define>
+  <!-- end of simplemsgentry.attlist -->
+  <!-- end of simplemsgentry.module -->
+  <define name="local.msg.attrib">
+    <empty/>
+  </define>
+  <define name="msg.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A message in a message set. -->
+  <define name="msg">
+    <element name="msg">
+      <ref name="msg.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <ref name="msgmain"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="msgsub"/>
+          <ref name="msgrel"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of msg.element -->
+  <define name="msg.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="msg.role.attrib"/>
+    <ref name="local.msg.attrib"/>
+  </define>
+  <!-- end of msg.attlist -->
+  <!-- end of msg.module -->
+  <define name="local.msgmain.attrib">
+    <empty/>
+  </define>
+  <define name="msgmain.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The primary component of a message in a message set. -->
+  <define name="msgmain">
+    <element name="msgmain">
+      <ref name="msgmain.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <ref name="msgtext"/>
+    </element>
+  </define>
+  <!-- end of msgmain.element -->
+  <define name="msgmain.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="msgmain.role.attrib"/>
+    <ref name="local.msgmain.attrib"/>
+  </define>
+  <!-- end of msgmain.attlist -->
+  <!-- end of msgmain.module -->
+  <define name="local.msgsub.attrib">
+    <empty/>
+  </define>
+  <define name="msgsub.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A subcomponent of a message in a message set. -->
+  <define name="msgsub">
+    <element name="msgsub">
+      <ref name="msgsub.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <ref name="msgtext"/>
+    </element>
+  </define>
+  <!-- end of msgsub.element -->
+  <define name="msgsub.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="msgsub.role.attrib"/>
+    <ref name="local.msgsub.attrib"/>
+  </define>
+  <!-- end of msgsub.attlist -->
+  <!-- end of msgsub.module -->
+  <define name="local.msgrel.attrib">
+    <empty/>
+  </define>
+  <define name="msgrel.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A related component of a message in a message set. -->
+  <define name="msgrel">
+    <element name="msgrel">
+      <ref name="msgrel.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <ref name="msgtext"/>
+    </element>
+  </define>
+  <!-- end of msgrel.element -->
+  <define name="msgrel.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="msgrel.role.attrib"/>
+    <ref name="local.msgrel.attrib"/>
+  </define>
+  <!-- end of msgrel.attlist -->
+  <!-- end of msgrel.module -->
+  <!--  MsgText (defined in the Inlines section, below) -->
+  <define name="local.msginfo.attrib">
+    <empty/>
+  </define>
+  <define name="msginfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Information about a message in a message set. -->
+  <define name="msginfo">
+    <element name="msginfo">
+      <ref name="msginfo.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="msglevel"/>
+          <ref name="msgorig"/>
+          <ref name="msgaud"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of msginfo.element -->
+  <define name="msginfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="msginfo.role.attrib"/>
+    <ref name="local.msginfo.attrib"/>
+  </define>
+  <!-- end of msginfo.attlist -->
+  <!-- end of msginfo.module -->
+  <define name="local.msglevel.attrib">
+    <empty/>
+  </define>
+  <define name="msglevel.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The level of importance or severity of a message in a message set. -->
+  <define name="msglevel">
+    <element name="msglevel">
+      <ref name="msglevel.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of msglevel.element -->
+  <define name="msglevel.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="msglevel.role.attrib"/>
+    <ref name="local.msglevel.attrib"/>
+  </define>
+  <!-- end of msglevel.attlist -->
+  <!-- end of msglevel.module -->
+  <define name="local.msgorig.attrib">
+    <empty/>
+  </define>
+  <define name="msgorig.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The origin of a message in a message set. -->
+  <define name="msgorig">
+    <element name="msgorig">
+      <ref name="msgorig.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of msgorig.element -->
+  <define name="msgorig.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="msgorig.role.attrib"/>
+    <ref name="local.msgorig.attrib"/>
+  </define>
+  <!-- end of msgorig.attlist -->
+  <!-- end of msgorig.module -->
+  <define name="local.msgaud.attrib">
+    <empty/>
+  </define>
+  <define name="msgaud.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The audience to which a message in a message set is relevant. -->
+  <define name="msgaud">
+    <element name="msgaud">
+      <ref name="msgaud.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of msgaud.element -->
+  <define name="msgaud.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="msgaud.role.attrib"/>
+    <ref name="local.msgaud.attrib"/>
+  </define>
+  <!-- end of msgaud.attlist -->
+  <!-- end of msgaud.module -->
+  <define name="local.msgexplan.attrib">
+    <empty/>
+  </define>
+  <define name="msgexplan.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Explanatory material relating to a message in a message set. -->
+  <define name="msgexplan">
+    <element name="msgexplan">
+      <ref name="msgexplan.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <oneOrMore>
+        <ref name="component.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of msgexplan.element -->
+  <define name="msgexplan.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="msgexplan.role.attrib"/>
+    <ref name="local.msgexplan.attrib"/>
+  </define>
+  <!-- end of msgexplan.attlist -->
+  <!-- end of msgexplan.module -->
+  <!-- end of msgset.content.module -->
+  <define name="local.task.attrib">
+    <empty/>
+  </define>
+  <define name="task.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A task to be completed. -->
+  <define name="task">
+    <element name="task">
+      <ref name="task.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="ndxterm.class"/>
+      </zeroOrMore>
+      <ref name="formalobject.title.content"/>
+      <optional>
+        <ref name="tasksummary"/>
+      </optional>
+      <optional>
+        <ref name="taskprerequisites"/>
+      </optional>
+      <ref name="procedure"/>
+      <zeroOrMore>
+        <ref name="example"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="taskrelated"/>
+      </optional>
+    </element>
+  </define>
+  <!-- end of task.element -->
+  <define name="task.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="task.role.attrib"/>
+    <ref name="local.task.attrib"/>
+  </define>
+  <!-- end of task.attlist -->
+  <!-- end of task.module -->
+  <define name="local.tasksummary.attrib">
+    <empty/>
+  </define>
+  <define name="tasksummary.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A summary of a task. -->
+  <define name="tasksummary">
+    <element name="tasksummary">
+      <ref name="tasksummary.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <oneOrMore>
+        <ref name="component.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of tasksummary.element -->
+  <define name="tasksummary.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="tasksummary.role.attrib"/>
+    <ref name="local.tasksummary.attrib"/>
+  </define>
+  <!-- end of tasksummary.attlist -->
+  <!-- end of tasksummary.module -->
+  <define name="local.taskprerequisites.attrib">
+    <empty/>
+  </define>
+  <define name="taskprerequisites.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The prerequisites for a task. -->
+  <define name="taskprerequisites">
+    <element name="taskprerequisites">
+      <ref name="taskprerequisites.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <oneOrMore>
+        <ref name="component.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of taskprerequisites.element -->
+  <define name="taskprerequisites.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="taskprerequisites.role.attrib"/>
+    <ref name="local.taskprerequisites.attrib"/>
+  </define>
+  <!-- end of taskprerequisites.attlist -->
+  <!-- end of taskprerequisites.module -->
+  <define name="local.taskrelated.attrib">
+    <empty/>
+  </define>
+  <define name="taskrelated.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Information related to a task. -->
+  <define name="taskrelated">
+    <element name="taskrelated">
+      <ref name="taskrelated.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <oneOrMore>
+        <ref name="component.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of taskrelated.element -->
+  <define name="taskrelated.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="taskrelated.role.attrib"/>
+    <ref name="local.taskrelated.attrib"/>
+  </define>
+  <!-- end of taskrelated.attlist -->
+  <!-- end of taskrelated.module -->
+  <!-- end of task.content.module -->
+  <!-- QandASet ........................ -->
+  <define name="local.qandaset.attrib">
+    <empty/>
+  </define>
+  <define name="qandaset.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A question-and-answer set. -->
+  <define name="qandaset">
+    <element name="qandaset">
+      <ref name="qandaset.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="qandaset.mix"/>
+      </zeroOrMore>
+      <choice>
+        <oneOrMore>
+          <ref name="qandadiv"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="qandaentry"/>
+        </oneOrMore>
+      </choice>
+    </element>
+  </define>
+  <!-- end of qandaset.element -->
+  <define name="qandaset.attlist" combine="interleave">
+    <optional>
+      <attribute name="defaultlabel">
+        <choice>
+          <value>qanda</value>
+          <value>number</value>
+          <value>none</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="qandaset.role.attrib"/>
+    <ref name="local.qandaset.attrib"/>
+  </define>
+  <!-- end of qandaset.attlist -->
+  <!-- end of qandaset.module -->
+  <define name="local.qandadiv.attrib">
+    <empty/>
+  </define>
+  <define name="qandadiv.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A titled division in a QandASet. -->
+  <define name="qandadiv">
+    <element name="qandadiv">
+      <ref name="qandadiv.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="qandaset.mix"/>
+      </zeroOrMore>
+      <choice>
+        <oneOrMore>
+          <ref name="qandadiv"/>
+        </oneOrMore>
+        <oneOrMore>
+          <ref name="qandaentry"/>
+        </oneOrMore>
+      </choice>
+    </element>
+  </define>
+  <!-- end of qandadiv.element -->
+  <define name="qandadiv.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="qandadiv.role.attrib"/>
+    <ref name="local.qandadiv.attrib"/>
+  </define>
+  <!-- end of qandadiv.attlist -->
+  <!-- end of qandadiv.module -->
+  <define name="local.qandaentry.attrib">
+    <empty/>
+  </define>
+  <define name="qandaentry.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A question/answer set within a QandASet. -->
+  <define name="qandaentry">
+    <element name="qandaentry">
+      <ref name="qandaentry.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="revhistory"/>
+      </optional>
+      <ref name="question"/>
+      <zeroOrMore>
+        <ref name="answer"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of qandaentry.element -->
+  <define name="qandaentry.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="qandaentry.role.attrib"/>
+    <ref name="local.qandaentry.attrib"/>
+  </define>
+  <!-- end of qandaentry.attlist -->
+  <!-- end of qandaentry.module -->
+  <define name="local.question.attrib">
+    <empty/>
+  </define>
+  <define name="question.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A question in a QandASet. -->
+  <define name="question">
+    <element name="question">
+      <ref name="question.attlist"/>
+      <optional>
+        <ref name="label"/>
+      </optional>
+      <oneOrMore>
+        <ref name="qandaset.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of question.element -->
+  <define name="question.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="question.role.attrib"/>
+    <ref name="local.question.attrib"/>
+  </define>
+  <!-- end of question.attlist -->
+  <!-- end of question.module -->
+  <define name="local.answer.attrib">
+    <empty/>
+  </define>
+  <define name="answer.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An answer to a question posed in a QandASet. -->
+  <define name="answer">
+    <element name="answer">
+      <ref name="answer.attlist"/>
+      <optional>
+        <ref name="label"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="qandaset.mix"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="qandaentry"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of answer.element -->
+  <define name="answer.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="answer.role.attrib"/>
+    <ref name="local.answer.attrib"/>
+  </define>
+  <!-- end of answer.attlist -->
+  <!-- end of answer.module -->
+  <define name="local.label.attrib">
+    <empty/>
+  </define>
+  <define name="label.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A label on a Question or Answer. -->
+  <define name="label">
+    <element name="label">
+      <ref name="label.attlist"/>
+      <zeroOrMore>
+        <ref name="word.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of label.element -->
+  <define name="label.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="label.role.attrib"/>
+    <ref name="local.label.attrib"/>
+  </define>
+  <!-- end of label.attlist -->
+  <!-- end of label.module -->
+  <!-- end of qandaset.content.module -->
+  <!-- Procedure ........................ -->
+  <define name="local.procedure.attrib">
+    <empty/>
+  </define>
+  <define name="procedure.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A list of operations to be performed in a well-defined sequence. -->
+  <define name="procedure">
+    <element name="procedure">
+      <ref name="procedure.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="component.mix"/>
+      </zeroOrMore>
+      <oneOrMore>
+        <ref name="step"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of procedure.element -->
+  <define name="procedure.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="procedure.role.attrib"/>
+    <ref name="local.procedure.attrib"/>
+  </define>
+  <!-- end of procedure.attlist -->
+  <!-- end of procedure.module -->
+  <define name="local.step.attrib">
+    <empty/>
+  </define>
+  <define name="step.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A unit of action in a procedure. -->
+  <define name="step">
+    <element name="step">
+      <ref name="step.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <choice>
+        <group>
+          <oneOrMore>
+            <ref name="component.mix"/>
+          </oneOrMore>
+          <optional>
+            <choice>
+              <ref name="substeps"/>
+              <ref name="stepalternatives"/>
+            </choice>
+            <zeroOrMore>
+              <ref name="component.mix"/>
+            </zeroOrMore>
+          </optional>
+        </group>
+        <group>
+          <choice>
+            <ref name="substeps"/>
+            <ref name="stepalternatives"/>
+          </choice>
+          <zeroOrMore>
+            <ref name="component.mix"/>
+          </zeroOrMore>
+        </group>
+      </choice>
+    </element>
+  </define>
+  <!-- end of step.element -->
+  <!-- Performance: Whether the Step must be performed -->
+  <!-- not #REQUIRED! -->
+  <define name="step.attlist" combine="interleave">
+    <optional>
+      <attribute name="performance" a:defaultValue="required">
+        <choice>
+          <value>optional</value>
+          <value>required</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="step.role.attrib"/>
+    <ref name="local.step.attrib"/>
+  </define>
+  <!-- end of step.attlist -->
+  <!-- end of step.module -->
+  <define name="local.substeps.attrib">
+    <empty/>
+  </define>
+  <define name="substeps.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for steps that occur within steps in a procedure. -->
+  <define name="substeps">
+    <element name="substeps">
+      <ref name="substeps.attlist"/>
+      <oneOrMore>
+        <ref name="step"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of substeps.element -->
+  <!-- Performance: whether entire set of substeps must be performed -->
+  <!-- not #REQUIRED! -->
+  <define name="substeps.attlist" combine="interleave">
+    <optional>
+      <attribute name="performance" a:defaultValue="required">
+        <choice>
+          <value>optional</value>
+          <value>required</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="substeps.role.attrib"/>
+    <ref name="local.substeps.attrib"/>
+  </define>
+  <!-- end of substeps.attlist -->
+  <!-- end of substeps.module -->
+  <define name="local.stepalternatives.attrib">
+    <empty/>
+  </define>
+  <define name="stepalternatives.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Alternative steps in a procedure. -->
+  <define name="stepalternatives">
+    <element name="stepalternatives">
+      <ref name="stepalternatives.attlist"/>
+      <oneOrMore>
+        <ref name="step"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of stepalternatives.element -->
+  <!-- Performance: Whether (one of) the alternatives must be performed -->
+  <!-- not #REQUIRED! -->
+  <define name="stepalternatives.attlist" combine="interleave">
+    <optional>
+      <attribute name="performance" a:defaultValue="required">
+        <choice>
+          <value>optional</value>
+          <value>required</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="stepalternatives.role.attrib"/>
+    <ref name="local.stepalternatives.attrib"/>
+  </define>
+  <!-- end of stepalternatives.attlist -->
+  <!-- end of stepalternatives.module -->
+  <!-- end of procedure.content.module -->
+  <!-- Sidebar .......................... -->
+  <define name="local.sidebarinfo.attrib">
+    <empty/>
+  </define>
+  <define name="sidebarinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for a Sidebar. -->
+  <define name="sidebarinfo">
+    <element name="sidebarinfo">
+      <ref name="sidebarinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of sidebarinfo.element -->
+  <define name="sidebarinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="sidebarinfo.role.attrib"/>
+    <ref name="local.sidebarinfo.attrib"/>
+  </define>
+  <!-- end of sidebarinfo.attlist -->
+  <!-- end of sidebarinfo.module -->
+  <define name="local.sidebar.attrib">
+    <empty/>
+  </define>
+  <define name="sidebar.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A portion of a document that is isolated from the main narrative flow. -->
+  <define name="sidebar">
+    <element name="sidebar">
+      <ref name="sidebar.attlist"/>
+      <optional>
+        <ref name="sidebarinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <oneOrMore>
+        <ref name="sidebar.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of sidebar.element -->
+  <define name="sidebar.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="sidebar.role.attrib"/>
+    <ref name="local.sidebar.attrib"/>
+  </define>
+  <!-- end of sidebar.attlist -->
+  <!-- end of sidebar.module -->
+  <!-- end of sidebar.content.model -->
+  <!-- ...................................................................... -->
+  <!-- Paragraph-related elements ........................................... -->
+  <define name="local.abstract.attrib">
+    <empty/>
+  </define>
+  <define name="abstract.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A summary. -->
+  <define name="abstract">
+    <element name="abstract">
+      <ref name="abstract.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <oneOrMore>
+        <ref name="para.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of abstract.element -->
+  <define name="abstract.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="abstract.role.attrib"/>
+    <ref name="local.abstract.attrib"/>
+  </define>
+  <!-- end of abstract.attlist -->
+  <!-- end of abstract.module -->
+  <define name="local.authorblurb.attrib">
+    <empty/>
+  </define>
+  <define name="authorblurb.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A short description or note about an author. -->
+  <define name="authorblurb">
+    <element name="authorblurb">
+      <ref name="authorblurb.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <oneOrMore>
+        <ref name="para.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of authorblurb.element -->
+  <define name="authorblurb.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="authorblurb.role.attrib"/>
+    <ref name="local.authorblurb.attrib"/>
+  </define>
+  <!-- end of authorblurb.attlist -->
+  <!-- end of authorblurb.module -->
+  <define name="local.personblurb.attrib">
+    <empty/>
+  </define>
+  <define name="personblurb.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A short description or note about a person. -->
+  <define name="personblurb">
+    <element name="personblurb">
+      <ref name="personblurb.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <oneOrMore>
+        <ref name="para.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of personblurb.element -->
+  <define name="personblurb.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="personblurb.role.attrib"/>
+    <ref name="local.personblurb.attrib"/>
+  </define>
+  <!-- end of personblurb.attlist -->
+  <!-- end of personblurb.module -->
+  <define name="local.blockquote.attrib">
+    <empty/>
+  </define>
+  <define name="blockquote.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A quotation set off from the main text. -->
+  <define name="blockquote">
+    <element name="blockquote">
+      <ref name="blockquote.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <optional>
+        <ref name="attribution"/>
+      </optional>
+      <oneOrMore>
+        <ref name="component.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of blockquote.element -->
+  <define name="blockquote.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="blockquote.role.attrib"/>
+    <ref name="local.blockquote.attrib"/>
+  </define>
+  <!-- end of blockquote.attlist -->
+  <!-- end of blockquote.module -->
+  <define name="local.attribution.attrib">
+    <empty/>
+  </define>
+  <define name="attribution.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The source of a block quote or epigraph. -->
+  <define name="attribution">
+    <element name="attribution">
+      <ref name="attribution.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of attribution.element -->
+  <define name="attribution.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="attribution.role.attrib"/>
+    <ref name="local.attribution.attrib"/>
+  </define>
+  <!-- end of attribution.attlist -->
+  <!-- end of attribution.module -->
+  <define name="local.bridgehead.attrib">
+    <empty/>
+  </define>
+  <define name="bridgehead.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A free-floating heading. -->
+  <define name="bridgehead">
+    <element name="bridgehead">
+      <ref name="bridgehead.attlist"/>
+      <zeroOrMore>
+        <ref name="title.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of bridgehead.element -->
+  <!--
+    Renderas: Indicates the format in which the BridgeHead
+    should appear
+  -->
+  <define name="bridgehead.attlist" combine="interleave">
+    <optional>
+      <attribute name="renderas">
+        <choice>
+          <value>other</value>
+          <value>sect1</value>
+          <value>sect2</value>
+          <value>sect3</value>
+          <value>sect4</value>
+          <value>sect5</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="bridgehead.role.attrib"/>
+    <ref name="local.bridgehead.attrib"/>
+  </define>
+  <!-- end of bridgehead.attlist -->
+  <!-- end of bridgehead.module -->
+  <define name="local.remark.attrib">
+    <empty/>
+  </define>
+  <define name="remark.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A remark (or comment) intended for presentation in a draft manuscript. -->
+  <define name="remark">
+    <element name="remark">
+      <ref name="remark.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of remark.element -->
+  <define name="remark.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="remark.role.attrib"/>
+    <ref name="local.remark.attrib"/>
+  </define>
+  <!-- end of remark.attlist -->
+  <!-- end of remark.module -->
+  <define name="local.epigraph.attrib">
+    <empty/>
+  </define>
+  <define name="epigraph.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A short inscription at the beginning of a document or component. -->
+  <define name="epigraph">
+    <element name="epigraph">
+      <ref name="epigraph.attlist"/>
+      <optional>
+        <ref name="attribution"/>
+      </optional>
+      <oneOrMore>
+        <choice>
+          <ref name="para.class"/>
+          <ref name="literallayout"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of epigraph.element -->
+  <define name="epigraph.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="epigraph.role.attrib"/>
+    <ref name="local.epigraph.attrib"/>
+  </define>
+  <!-- end of epigraph.attlist -->
+  <!--  Attribution (defined above) -->
+  <!-- end of epigraph.module -->
+  <define name="local.footnote.attrib">
+    <empty/>
+  </define>
+  <define name="footnote.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A footnote. -->
+  <define name="footnote">
+    <element name="footnote">
+      <ref name="footnote.attlist"/>
+      <oneOrMore>
+        <ref name="footnote.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of footnote.element -->
+  <define name="footnote.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="footnote.role.attrib"/>
+    <ref name="local.footnote.attrib"/>
+  </define>
+  <!-- end of footnote.attlist -->
+  <!-- end of footnote.module -->
+  <define name="local.highlights.attrib">
+    <empty/>
+  </define>
+  <define name="highlights.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A summary of the main points of the discussed component. -->
+  <define name="highlights">
+    <element name="highlights">
+      <ref name="highlights.attlist"/>
+      <oneOrMore>
+        <ref name="highlights.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of highlights.element -->
+  <define name="highlights.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="highlights.role.attrib"/>
+    <ref name="local.highlights.attrib"/>
+  </define>
+  <!-- end of highlights.attlist -->
+  <!-- end of highlights.module -->
+  <define name="local.formalpara.attrib">
+    <empty/>
+  </define>
+  <define name="formalpara.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A paragraph with a title. -->
+  <define name="formalpara">
+    <element name="formalpara">
+      <ref name="formalpara.attlist"/>
+      <ref name="title"/>
+      <zeroOrMore>
+        <ref name="ndxterm.class"/>
+      </zeroOrMore>
+      <ref name="para"/>
+    </element>
+  </define>
+  <!-- end of formalpara.element -->
+  <define name="formalpara.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="formalpara.role.attrib"/>
+    <ref name="local.formalpara.attrib"/>
+  </define>
+  <!-- end of formalpara.attlist -->
+  <!-- end of formalpara.module -->
+  <define name="local.para.attrib">
+    <empty/>
+  </define>
+  <define name="para.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A paragraph. -->
+  <define name="para">
+    <element name="para">
+      <ref name="para.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="para.char.mix"/>
+          <ref name="para.mix"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of para.element -->
+  <define name="para.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="para.role.attrib"/>
+    <ref name="local.para.attrib"/>
+  </define>
+  <!-- end of para.attlist -->
+  <!-- end of para.module -->
+  <define name="local.simpara.attrib">
+    <empty/>
+  </define>
+  <define name="simpara.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A paragraph that contains only text and inline markup, no block elements. -->
+  <define name="simpara">
+    <element name="simpara">
+      <ref name="simpara.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of simpara.element -->
+  <define name="simpara.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="simpara.role.attrib"/>
+    <ref name="local.simpara.attrib"/>
+  </define>
+  <!-- end of simpara.attlist -->
+  <!-- end of simpara.module -->
+  <define name="local.admon.attrib">
+    <empty/>
+  </define>
+  <define name="admon.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A note of caution. -->
+  <define name="caution">
+    <element name="caution">
+      <ref name="caution.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <oneOrMore>
+        <ref name="admon.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of caution.element -->
+  <define name="caution.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="admon.role.attrib"/>
+    <ref name="local.admon.attrib"/>
+  </define>
+  <!-- end of caution.attlist -->
+  <!-- doc:An admonition set off from the text. -->
+  <define name="important">
+    <element name="important">
+      <ref name="important.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <oneOrMore>
+        <ref name="admon.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of important.element -->
+  <define name="important.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="admon.role.attrib"/>
+    <ref name="local.admon.attrib"/>
+  </define>
+  <!-- end of important.attlist -->
+  <!-- doc:A message set off from the text. -->
+  <define name="note">
+    <element name="note">
+      <ref name="note.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <oneOrMore>
+        <ref name="admon.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of note.element -->
+  <define name="note.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="admon.role.attrib"/>
+    <ref name="local.admon.attrib"/>
+  </define>
+  <!-- end of note.attlist -->
+  <!-- doc:A suggestion to the user, set off from the text. -->
+  <define name="tip">
+    <element name="tip">
+      <ref name="tip.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <oneOrMore>
+        <ref name="admon.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of tip.element -->
+  <define name="tip.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="admon.role.attrib"/>
+    <ref name="local.admon.attrib"/>
+  </define>
+  <!-- end of tip.attlist -->
+  <!-- doc:An admonition set off from the text. -->
+  <define name="warning">
+    <element name="warning">
+      <ref name="warning.attlist"/>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <oneOrMore>
+        <ref name="admon.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of warning.element -->
+  <define name="warning.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="admon.role.attrib"/>
+    <ref name="local.admon.attrib"/>
+  </define>
+  <!-- end of warning.attlist -->
+  <!-- end of admon.module -->
+  <!-- ...................................................................... -->
+  <!-- Lists ................................................................ -->
+  <!-- GlossList ........................ -->
+  <define name="local.glosslist.attrib">
+    <empty/>
+  </define>
+  <define name="glosslist.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for a set of GlossEntrys. -->
+  <define name="glosslist">
+    <element name="glosslist">
+      <ref name="glosslist.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <oneOrMore>
+        <ref name="glossentry"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of glosslist.element -->
+  <define name="glosslist.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="glosslist.role.attrib"/>
+    <ref name="local.glosslist.attrib"/>
+  </define>
+  <!-- end of glosslist.attlist -->
+  <!-- end of glosslist.module -->
+  <define name="local.glossentry.attrib">
+    <empty/>
+  </define>
+  <define name="glossentry.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An entry in a Glossary or GlossList. -->
+  <define name="glossentry">
+    <element name="glossentry">
+      <ref name="glossentry.attlist"/>
+      <ref name="glossterm"/>
+      <optional>
+        <ref name="acronym"/>
+      </optional>
+      <optional>
+        <ref name="abbrev"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="ndxterm.class"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="revhistory"/>
+      </optional>
+      <choice>
+        <ref name="glosssee"/>
+        <oneOrMore>
+          <ref name="glossdef"/>
+        </oneOrMore>
+      </choice>
+    </element>
+  </define>
+  <!-- end of glossentry.element -->
+  <!--
+    SortAs: String by which the GlossEntry is to be sorted
+    (alphabetized) in lieu of its proper content
+  -->
+  <define name="glossentry.attlist" combine="interleave">
+    <optional>
+      <attribute name="sortas"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="glossentry.role.attrib"/>
+    <ref name="local.glossentry.attrib"/>
+  </define>
+  <!-- end of glossentry.attlist -->
+  <!-- end of glossentry.module -->
+  <!--  GlossTerm (defined in the Inlines section, below) -->
+  <define name="local.glossdef.attrib">
+    <empty/>
+  </define>
+  <define name="glossdef.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A definition in a GlossEntry. -->
+  <define name="glossdef">
+    <element name="glossdef">
+      <ref name="glossdef.attlist"/>
+      <oneOrMore>
+        <ref name="glossdef.mix"/>
+      </oneOrMore>
+      <zeroOrMore>
+        <ref name="glossseealso"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of glossdef.element -->
+  <!-- Subject: List of subjects; keywords for the definition -->
+  <define name="glossdef.attlist" combine="interleave">
+    <optional>
+      <attribute name="subject"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="glossdef.role.attrib"/>
+    <ref name="local.glossdef.attrib"/>
+  </define>
+  <!-- end of glossdef.attlist -->
+  <!-- end of glossdef.module -->
+  <define name="local.glosssee.attrib">
+    <empty/>
+  </define>
+  <define name="glosssee.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A cross-reference from one GlossEntry to another. -->
+  <define name="glosssee">
+    <element name="glosssee">
+      <ref name="glosssee.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of glosssee.element -->
+  <!--
+    OtherTerm: Reference to the GlossEntry whose GlossTerm
+    should be displayed at the point of the GlossSee
+  -->
+  <define name="glosssee.attlist" combine="interleave">
+    <optional>
+      <attribute name="otherterm">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="glosssee.role.attrib"/>
+    <ref name="local.glosssee.attrib"/>
+  </define>
+  <!-- end of glosssee.attlist -->
+  <!-- end of glosssee.module -->
+  <define name="local.glossseealso.attrib">
+    <empty/>
+  </define>
+  <define name="glossseealso.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A cross-reference from one GlossEntry to another. -->
+  <define name="glossseealso">
+    <element name="glossseealso">
+      <ref name="glossseealso.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of glossseealso.element -->
+  <!--
+    OtherTerm: Reference to the GlossEntry whose GlossTerm
+    should be displayed at the point of the GlossSeeAlso
+  -->
+  <define name="glossseealso.attlist" combine="interleave">
+    <optional>
+      <attribute name="otherterm">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="glossseealso.role.attrib"/>
+    <ref name="local.glossseealso.attrib"/>
+  </define>
+  <!-- end of glossseealso.attlist -->
+  <!-- end of glossseealso.module -->
+  <!-- end of glossentry.content.module -->
+  <!-- ItemizedList and OrderedList ..... -->
+  <define name="local.itemizedlist.attrib">
+    <empty/>
+  </define>
+  <define name="itemizedlist.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A list in which each entry is marked with a bullet or other dingbat. -->
+  <define name="itemizedlist">
+    <element name="itemizedlist">
+      <ref name="itemizedlist.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="listpreamble.mix"/>
+      </zeroOrMore>
+      <oneOrMore>
+        <ref name="listitem"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- 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
+  -->
+  <define name="itemizedlist.attlist" combine="interleave">
+    <optional>
+      <attribute name="spacing">
+        <choice>
+          <value>normal</value>
+          <value>compact</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="mark.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="itemizedlist.role.attrib"/>
+    <ref name="local.itemizedlist.attrib"/>
+  </define>
+  <!-- end of itemizedlist.attlist -->
+  <!-- end of itemizedlist.module -->
+  <define name="local.orderedlist.attrib">
+    <empty/>
+  </define>
+  <define name="orderedlist.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A list in which each entry is marked with a sequentially incremented label. -->
+  <define name="orderedlist">
+    <element name="orderedlist">
+      <ref name="orderedlist.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="listpreamble.mix"/>
+      </zeroOrMore>
+      <oneOrMore>
+        <ref name="listitem"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- 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
+  -->
+  <define name="orderedlist.attlist" combine="interleave">
+    <optional>
+      <attribute name="numeration">
+        <choice>
+          <value>arabic</value>
+          <value>upperalpha</value>
+          <value>loweralpha</value>
+          <value>upperroman</value>
+          <value>lowerroman</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="inheritnum" a:defaultValue="ignore">
+        <choice>
+          <value>inherit</value>
+          <value>ignore</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="continuation" a:defaultValue="restarts">
+        <choice>
+          <value>continues</value>
+          <value>restarts</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="spacing">
+        <choice>
+          <value>normal</value>
+          <value>compact</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="orderedlist.role.attrib"/>
+    <ref name="local.orderedlist.attrib"/>
+  </define>
+  <!-- end of orderedlist.attlist -->
+  <!-- end of orderedlist.module -->
+  <define name="local.listitem.attrib">
+    <empty/>
+  </define>
+  <define name="listitem.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for the elements of a list item. -->
+  <define name="listitem">
+    <element name="listitem">
+      <ref name="listitem.attlist"/>
+      <oneOrMore>
+        <ref name="component.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- 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
+  -->
+  <define name="listitem.attlist" combine="interleave">
+    <optional>
+      <attribute name="override"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="listitem.role.attrib"/>
+    <ref name="local.listitem.attrib"/>
+  </define>
+  <!-- end of listitem.attlist -->
+  <!-- end of listitem.module -->
+  <!-- SegmentedList .................... -->
+  <define name="local.segmentedlist.attrib">
+    <empty/>
+  </define>
+  <define name="segmentedlist.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A segmented list, a list of sets of elements. -->
+  <define name="segmentedlist">
+    <element name="segmentedlist">
+      <ref name="segmentedlist.attlist"/>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <oneOrMore>
+        <ref name="segtitle"/>
+      </oneOrMore>
+      <oneOrMore>
+        <ref name="seglistitem"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of segmentedlist.element -->
+  <define name="segmentedlist.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="segmentedlist.role.attrib"/>
+    <ref name="local.segmentedlist.attrib"/>
+  </define>
+  <!-- end of segmentedlist.attlist -->
+  <!-- end of segmentedlist.module -->
+  <define name="local.segtitle.attrib">
+    <empty/>
+  </define>
+  <define name="segtitle.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The title of an element of a list item in a segmented list. -->
+  <define name="segtitle">
+    <element name="segtitle">
+      <ref name="segtitle.attlist"/>
+      <zeroOrMore>
+        <ref name="title.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of segtitle.element -->
+  <define name="segtitle.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="segtitle.role.attrib"/>
+    <ref name="local.segtitle.attrib"/>
+  </define>
+  <!-- end of segtitle.attlist -->
+  <!-- end of segtitle.module -->
+  <define name="local.seglistitem.attrib">
+    <empty/>
+  </define>
+  <define name="seglistitem.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A list item in a segmented list. -->
+  <define name="seglistitem">
+    <element name="seglistitem">
+      <ref name="seglistitem.attlist"/>
+      <oneOrMore>
+        <ref name="seg"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of seglistitem.element -->
+  <define name="seglistitem.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="seglistitem.role.attrib"/>
+    <ref name="local.seglistitem.attrib"/>
+  </define>
+  <!-- end of seglistitem.attlist -->
+  <!-- end of seglistitem.module -->
+  <define name="local.seg.attrib">
+    <empty/>
+  </define>
+  <define name="seg.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An element of a list item in a segmented list. -->
+  <define name="seg">
+    <element name="seg">
+      <ref name="seg.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of seg.element -->
+  <define name="seg.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="seg.role.attrib"/>
+    <ref name="local.seg.attrib"/>
+  </define>
+  <!-- end of seg.attlist -->
+  <!-- end of seg.module -->
+  <!-- end of segmentedlist.content.module -->
+  <!-- SimpleList ....................... -->
+  <define name="local.simplelist.attrib">
+    <empty/>
+  </define>
+  <define name="simplelist.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An undecorated list of single words or short phrases. -->
+  <define name="simplelist">
+    <element name="simplelist">
+      <ref name="simplelist.attlist"/>
+      <oneOrMore>
+        <ref name="member"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- 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.
+  -->
+  <define name="simplelist.attlist" combine="interleave">
+    <optional>
+      <attribute name="columns"/>
+    </optional>
+    <optional>
+      <attribute name="type" a:defaultValue="vert">
+        <choice>
+          <value>inline</value>
+          <value>vert</value>
+          <value>horiz</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="simplelist.role.attrib"/>
+    <ref name="local.simplelist.attrib"/>
+  </define>
+  <!-- end of simplelist.attlist -->
+  <!-- end of simplelist.module -->
+  <define name="local.member.attrib">
+    <empty/>
+  </define>
+  <define name="member.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An element of a simple list. -->
+  <define name="member">
+    <element name="member">
+      <ref name="member.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of member.element -->
+  <define name="member.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="member.role.attrib"/>
+    <ref name="local.member.attrib"/>
+  </define>
+  <!-- end of member.attlist -->
+  <!-- end of member.module -->
+  <!-- end of simplelist.content.module -->
+  <!-- VariableList ..................... -->
+  <define name="local.variablelist.attrib">
+    <empty/>
+  </define>
+  <define name="variablelist.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A list in which each entry is composed of a set of one or more terms and an associated description. -->
+  <define name="variablelist">
+    <element name="variablelist">
+      <ref name="variablelist.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="listpreamble.mix"/>
+      </zeroOrMore>
+      <oneOrMore>
+        <ref name="varlistentry"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- 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.
+  -->
+  <define name="variablelist.attlist" combine="interleave">
+    <optional>
+      <attribute name="termlength"/>
+    </optional>
+    <optional>
+      <attribute name="spacing">
+        <choice>
+          <value>normal</value>
+          <value>compact</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="variablelist.role.attrib"/>
+    <ref name="local.variablelist.attrib"/>
+  </define>
+  <!-- end of variablelist.attlist -->
+  <!-- end of variablelist.module -->
+  <define name="local.varlistentry.attrib">
+    <empty/>
+  </define>
+  <define name="varlistentry.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for a set of terms and the associated description in a variable list. -->
+  <define name="varlistentry">
+    <element name="varlistentry">
+      <ref name="varlistentry.attlist"/>
+      <oneOrMore>
+        <ref name="term"/>
+      </oneOrMore>
+      <ref name="listitem"/>
+    </element>
+  </define>
+  <!-- end of varlistentry.element -->
+  <define name="varlistentry.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="varlistentry.role.attrib"/>
+    <ref name="local.varlistentry.attrib"/>
+  </define>
+  <!-- end of varlistentry.attlist -->
+  <!-- end of varlistentry.module -->
+  <define name="local.term.attrib">
+    <empty/>
+  </define>
+  <define name="term.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The word or phrase being defined or described in a variable list. -->
+  <define name="term">
+    <element name="term">
+      <ref name="term.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of term.element -->
+  <define name="term.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="term.role.attrib"/>
+    <ref name="local.term.attrib"/>
+  </define>
+  <!-- end of term.attlist -->
+  <!-- end of term.module -->
+  <!--  ListItem (defined above) -->
+  <!-- end of variablelist.content.module -->
+  <!-- CalloutList ...................... -->
+  <define name="local.calloutlist.attrib">
+    <empty/>
+  </define>
+  <define name="calloutlist.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A list of Callouts. -->
+  <define name="calloutlist">
+    <element name="calloutlist">
+      <ref name="calloutlist.attlist"/>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <oneOrMore>
+        <ref name="callout"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of calloutlist.element -->
+  <define name="calloutlist.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="calloutlist.role.attrib"/>
+    <ref name="local.calloutlist.attrib"/>
+  </define>
+  <!-- end of calloutlist.attlist -->
+  <!-- end of calloutlist.module -->
+  <define name="local.callout.attrib">
+    <empty/>
+  </define>
+  <define name="callout.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A “called out” description of a marked Area. -->
+  <define name="callout">
+    <element name="callout">
+      <ref name="callout.attlist"/>
+      <oneOrMore>
+        <ref name="component.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of callout.element -->
+  <!--
+    AreaRefs: IDs of one or more Areas or AreaSets described
+    by this Callout
+  -->
+  <define name="callout.attlist" combine="interleave">
+    <attribute name="arearefs">
+      <data type="IDREFS"/>
+    </attribute>
+    <ref name="common.attrib"/>
+    <ref name="callout.role.attrib"/>
+    <ref name="local.callout.attrib"/>
+  </define>
+  <!-- end of callout.attlist -->
+  <!-- end of callout.module -->
+  <!-- end of calloutlist.content.module -->
+  <!-- ...................................................................... -->
+  <!-- Objects .............................................................. -->
+  <!-- Examples etc. .................... -->
+  <define name="local.example.attrib">
+    <empty/>
+  </define>
+  <define name="example.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A formal example, with a title. -->
+  <define name="example">
+    <element name="example">
+      <ref name="example.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <ref name="formalobject.title.content"/>
+      <oneOrMore>
+        <ref name="example.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of example.element -->
+  <define name="example.attlist" combine="interleave">
+    <optional>
+      <attribute name="floatstyle"/>
+    </optional>
+    <ref name="label.attrib"/>
+    <ref name="width.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="example.role.attrib"/>
+    <ref name="local.example.attrib"/>
+  </define>
+  <!-- end of example.attlist -->
+  <!-- end of example.module -->
+  <define name="local.informalexample.attrib">
+    <empty/>
+  </define>
+  <define name="informalexample.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A displayed example without a title. -->
+  <define name="informalexample">
+    <element name="informalexample">
+      <ref name="informalexample.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <oneOrMore>
+        <ref name="example.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of informalexample.element -->
+  <define name="informalexample.attlist" combine="interleave">
+    <optional>
+      <attribute name="floatstyle"/>
+    </optional>
+    <ref name="width.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="informalexample.role.attrib"/>
+    <ref name="local.informalexample.attrib"/>
+  </define>
+  <!-- end of informalexample.attlist -->
+  <!-- end of informalexample.module -->
+  <define name="local.programlistingco.attrib">
+    <empty/>
+  </define>
+  <define name="programlistingco.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A program listing with associated areas used in callouts. -->
+  <define name="programlistingco">
+    <element name="programlistingco">
+      <ref name="programlistingco.attlist"/>
+      <ref name="areaspec"/>
+      <ref name="programlisting"/>
+      <zeroOrMore>
+        <ref name="calloutlist"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of programlistingco.element -->
+  <define name="programlistingco.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="programlistingco.role.attrib"/>
+    <ref name="local.programlistingco.attrib"/>
+  </define>
+  <!-- end of programlistingco.attlist -->
+  <!--  CalloutList (defined above in Lists) -->
+  <!-- end of informalexample.module -->
+  <define name="local.areaspec.attrib">
+    <empty/>
+  </define>
+  <define name="areaspec.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A collection of regions in a graphic or code example. -->
+  <define name="areaspec">
+    <element name="areaspec">
+      <ref name="areaspec.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="area"/>
+          <ref name="areaset"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- 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 -->
+  <define name="areaspec.attlist" combine="interleave">
+    <optional>
+      <attribute name="units">
+        <choice>
+          <value>calspair</value>
+          <value>linecolumn</value>
+          <value>linerange</value>
+          <value>linecolumnpair</value>
+          <value>other</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="otherunits">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="areaspec.role.attrib"/>
+    <ref name="local.areaspec.attrib"/>
+  </define>
+  <!-- end of areaspec.attlist -->
+  <!-- end of areaspec.module -->
+  <define name="local.area.attrib">
+    <empty/>
+  </define>
+  <define name="area.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A region defined for a Callout in a graphic or code example. -->
+  <define name="area">
+    <element name="area">
+      <ref name="area.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- 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 -->
+  <define name="area.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="linkends.attrib"/>
+    <optional>
+      <attribute name="units">
+        <choice>
+          <value>calspair</value>
+          <value>linecolumn</value>
+          <value>linerange</value>
+          <value>linecolumnpair</value>
+          <value>other</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="otherunits">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+    <attribute name="coords"/>
+    <ref name="idreq.common.attrib"/>
+    <ref name="area.role.attrib"/>
+    <ref name="local.area.attrib"/>
+  </define>
+  <!-- end of area.attlist -->
+  <!-- end of area.module -->
+  <define name="local.areaset.attrib">
+    <empty/>
+  </define>
+  <define name="areaset.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A set of related areas in a graphic or code example. -->
+  <define name="areaset">
+    <element name="areaset">
+      <ref name="areaset.attlist"/>
+      <oneOrMore>
+        <ref name="area"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- 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
+  -->
+  <define name="areaset.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <optional>
+      <attribute name="units">
+        <choice>
+          <value>calspair</value>
+          <value>linecolumn</value>
+          <value>linerange</value>
+          <value>linecolumnpair</value>
+          <value>other</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="otherunits">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+    <attribute name="coords"/>
+    <ref name="idreq.common.attrib"/>
+    <ref name="areaset.role.attrib"/>
+    <ref name="local.areaset.attrib"/>
+  </define>
+  <!-- end of areaset.attlist -->
+  <!-- end of areaset.module -->
+  <!-- end of areaspec.content.module -->
+  <define name="local.programlisting.attrib">
+    <empty/>
+  </define>
+  <define name="programlisting.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A literal listing of all or part of a program. -->
+  <define name="programlisting">
+    <element name="programlisting">
+      <ref name="programlisting.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="para.char.mix"/>
+          <ref name="co"/>
+          <ref name="coref"/>
+          <ref name="lineannotation"/>
+          <ref name="textobject"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of programlisting.element -->
+  <define name="programlisting.attlist" combine="interleave">
+    <ref name="width.attrib"/>
+    <ref name="linespecific.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="programlisting.role.attrib"/>
+    <ref name="local.programlisting.attrib"/>
+  </define>
+  <!-- end of programlisting.attlist -->
+  <!-- end of programlisting.module -->
+  <define name="local.literallayout.attrib">
+    <empty/>
+  </define>
+  <define name="literallayout.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A block of text in which line breaks and white space are to be reproduced faithfully. -->
+  <define name="literallayout">
+    <element name="literallayout">
+      <ref name="literallayout.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="para.char.mix"/>
+          <ref name="co"/>
+          <ref name="coref"/>
+          <ref name="textobject"/>
+          <ref name="lineannotation"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of literallayout.element -->
+  <define name="literallayout.attlist" combine="interleave">
+    <ref name="width.attrib"/>
+    <ref name="linespecific.attrib"/>
+    <optional>
+      <attribute name="class" a:defaultValue="normal">
+        <choice>
+          <value>monospaced</value>
+          <value>normal</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="literallayout.role.attrib"/>
+    <ref name="local.literallayout.attrib"/>
+  </define>
+  <!-- end of literallayout.attlist -->
+  <!--  LineAnnotation (defined in the Inlines section, below) -->
+  <!-- end of literallayout.module -->
+  <define name="local.screenco.attrib">
+    <empty/>
+  </define>
+  <define name="screenco.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A screen with associated areas used in callouts. -->
+  <define name="screenco">
+    <element name="screenco">
+      <ref name="screenco.attlist"/>
+      <ref name="areaspec"/>
+      <ref name="screen"/>
+      <zeroOrMore>
+        <ref name="calloutlist"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of screenco.element -->
+  <define name="screenco.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="screenco.role.attrib"/>
+    <ref name="local.screenco.attrib"/>
+  </define>
+  <!-- end of screenco.attlist -->
+  <!--  AreaSpec (defined above) -->
+  <!--  CalloutList (defined above in Lists) -->
+  <!-- end of screenco.module -->
+  <define name="local.screen.attrib">
+    <empty/>
+  </define>
+  <define name="screen.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Text that a user sees or might see on a computer screen. -->
+  <define name="screen">
+    <element name="screen">
+      <ref name="screen.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="para.char.mix"/>
+          <ref name="co"/>
+          <ref name="coref"/>
+          <ref name="textobject"/>
+          <ref name="lineannotation"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of screen.element -->
+  <define name="screen.attlist" combine="interleave">
+    <ref name="width.attrib"/>
+    <ref name="linespecific.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="screen.role.attrib"/>
+    <ref name="local.screen.attrib"/>
+  </define>
+  <!-- end of screen.attlist -->
+  <!-- end of screen.module -->
+  <define name="local.screenshot.attrib">
+    <empty/>
+  </define>
+  <define name="screenshot.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A representation of what the user sees or might see on a computer screen. -->
+  <define name="screenshot">
+    <element name="screenshot">
+      <ref name="screenshot.attlist"/>
+      <optional>
+        <ref name="screeninfo"/>
+      </optional>
+      <choice>
+        <ref name="graphic"/>
+        <ref name="graphicco"/>
+        <ref name="mediaobject"/>
+        <ref name="mediaobjectco"/>
+      </choice>
+    </element>
+  </define>
+  <!-- end of screenshot.element -->
+  <define name="screenshot.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="screenshot.role.attrib"/>
+    <ref name="local.screenshot.attrib"/>
+  </define>
+  <!-- end of screenshot.attlist -->
+  <!-- end of screenshot.module -->
+  <define name="local.screeninfo.attrib">
+    <empty/>
+  </define>
+  <define name="screeninfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Information about how a screen shot was produced. -->
+  <define name="screeninfo">
+    <element name="screeninfo">
+      <ref name="screeninfo.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of screeninfo.element -->
+  <define name="screeninfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="screeninfo.role.attrib"/>
+    <ref name="local.screeninfo.attrib"/>
+  </define>
+  <!-- end of screeninfo.attlist -->
+  <!-- end of screeninfo.module -->
+  <!-- end of screenshot.content.module -->
+  <!-- Figures etc. ..................... -->
+  <define name="local.figure.attrib">
+    <empty/>
+  </define>
+  <define name="figure.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A formal figure, generally an illustration, with a title. -->
+  <define name="figure">
+    <element name="figure">
+      <ref name="figure.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <ref name="formalobject.title.content"/>
+      <oneOrMore>
+        <choice>
+          <ref name="figure.mix"/>
+          <ref name="link.char.class"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- 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)
+  -->
+  <define name="figure.attlist" combine="interleave">
+    <optional>
+      <attribute name="float" a:defaultValue="0">
+        <ref name="yesorno.attvals"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="floatstyle"/>
+    </optional>
+    <optional>
+      <attribute name="pgwide">
+        <ref name="yesorno.attvals"/>
+      </attribute>
+    </optional>
+    <ref name="label.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="figure.role.attrib"/>
+    <ref name="local.figure.attrib"/>
+  </define>
+  <!-- end of figure.attlist -->
+  <!-- end of figure.module -->
+  <define name="local.informalfigure.attrib">
+    <empty/>
+  </define>
+  <define name="informalfigure.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A untitled figure. -->
+  <define name="informalfigure">
+    <element name="informalfigure">
+      <ref name="informalfigure.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <oneOrMore>
+        <choice>
+          <ref name="figure.mix"/>
+          <ref name="link.char.class"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of informalfigure.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)
+  -->
+  <define name="informalfigure.attlist" combine="interleave">
+    <optional>
+      <attribute name="float" a:defaultValue="0">
+        <ref name="yesorno.attvals"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="floatstyle"/>
+    </optional>
+    <optional>
+      <attribute name="pgwide">
+        <ref name="yesorno.attvals"/>
+      </attribute>
+    </optional>
+    <ref name="label.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="informalfigure.role.attrib"/>
+    <ref name="local.informalfigure.attrib"/>
+  </define>
+  <!-- end of informalfigure.attlist -->
+  <!-- end of informalfigure.module -->
+  <define name="local.graphicco.attrib">
+    <empty/>
+  </define>
+  <define name="graphicco.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A graphic that contains callout areas. -->
+  <define name="graphicco">
+    <element name="graphicco">
+      <ref name="graphicco.attlist"/>
+      <ref name="areaspec"/>
+      <ref name="graphic"/>
+      <zeroOrMore>
+        <ref name="calloutlist"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of graphicco.element -->
+  <define name="graphicco.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="graphicco.role.attrib"/>
+    <ref name="local.graphicco.attrib"/>
+  </define>
+  <!-- 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).
+  -->
+  <define name="local.graphic.attrib">
+    <empty/>
+  </define>
+  <define name="graphic.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A displayed graphical object (not an inline). -->
+  <define name="graphic">
+    <element name="graphic">
+      <ref name="graphic.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of graphic.element -->
+  <define name="graphic.attlist" combine="interleave">
+    <ref name="graphics.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="graphic.role.attrib"/>
+    <ref name="local.graphic.attrib"/>
+  </define>
+  <!-- end of graphic.attlist -->
+  <!-- end of graphic.module -->
+  <define name="local.inlinegraphic.attrib">
+    <empty/>
+  </define>
+  <define name="inlinegraphic.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An object containing or pointing to graphical data that will be rendered inline. -->
+  <define name="inlinegraphic">
+    <element name="inlinegraphic">
+      <ref name="inlinegraphic.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of inlinegraphic.element -->
+  <define name="inlinegraphic.attlist" combine="interleave">
+    <ref name="graphics.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="inlinegraphic.role.attrib"/>
+    <ref name="local.inlinegraphic.attrib"/>
+  </define>
+  <!-- end of inlinegraphic.attlist -->
+  <!-- end of inlinegraphic.module -->
+  <define name="local.mediaobject.attrib">
+    <empty/>
+  </define>
+  <define name="mediaobject.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A displayed media object (video, audio, image, etc.). -->
+  <define name="mediaobject">
+    <element name="mediaobject">
+      <ref name="mediaobject.attlist"/>
+      <optional>
+        <ref name="objectinfo"/>
+      </optional>
+      <oneOrMore>
+        <ref name="mediaobject.mix"/>
+      </oneOrMore>
+      <optional>
+        <ref name="caption"/>
+      </optional>
+    </element>
+  </define>
+  <!-- end of mediaobject.element -->
+  <define name="mediaobject.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="mediaobject.role.attrib"/>
+    <ref name="local.mediaobject.attrib"/>
+  </define>
+  <!-- end of mediaobject.attlist -->
+  <!-- end of mediaobject.module -->
+  <define name="local.inlinemediaobject.attrib">
+    <empty/>
+  </define>
+  <define name="inlinemediaobject.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An inline media object (video, audio, image, and so on). -->
+  <define name="inlinemediaobject">
+    <element name="inlinemediaobject">
+      <ref name="inlinemediaobject.attlist"/>
+      <optional>
+        <ref name="objectinfo"/>
+      </optional>
+      <oneOrMore>
+        <ref name="mediaobject.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of inlinemediaobject.element -->
+  <define name="inlinemediaobject.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="inlinemediaobject.role.attrib"/>
+    <ref name="local.inlinemediaobject.attrib"/>
+  </define>
+  <!-- end of inlinemediaobject.attlist -->
+  <!-- end of inlinemediaobject.module -->
+  <define name="local.videoobject.attrib">
+    <empty/>
+  </define>
+  <define name="videoobject.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for video data and its associated meta-information. -->
+  <define name="videoobject">
+    <element name="videoobject">
+      <ref name="videoobject.attlist"/>
+      <optional>
+        <ref name="objectinfo"/>
+      </optional>
+      <ref name="videodata"/>
+    </element>
+  </define>
+  <!-- end of videoobject.element -->
+  <define name="videoobject.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="videoobject.role.attrib"/>
+    <ref name="local.videoobject.attrib"/>
+  </define>
+  <!-- end of videoobject.attlist -->
+  <!-- end of videoobject.module -->
+  <define name="local.audioobject.attrib">
+    <empty/>
+  </define>
+  <define name="audioobject.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for audio data and its associated meta-information. -->
+  <define name="audioobject">
+    <element name="audioobject">
+      <ref name="audioobject.attlist"/>
+      <optional>
+        <ref name="objectinfo"/>
+      </optional>
+      <ref name="audiodata"/>
+    </element>
+  </define>
+  <!-- end of audioobject.element -->
+  <define name="audioobject.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="audioobject.role.attrib"/>
+    <ref name="local.audioobject.attrib"/>
+  </define>
+  <!-- end of audioobject.attlist -->
+  <!-- end of audioobject.module -->
+  <define name="local.imageobject.attrib">
+    <empty/>
+  </define>
+  <define name="imageobject.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for image data and its associated meta-information. -->
+  <define name="imageobject">
+    <element name="imageobject">
+      <ref name="imageobject.attlist"/>
+      <optional>
+        <ref name="objectinfo"/>
+      </optional>
+      <ref name="imagedata"/>
+    </element>
+  </define>
+  <!-- end of imageobject.element -->
+  <define name="imageobject.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="imageobject.role.attrib"/>
+    <ref name="local.imageobject.attrib"/>
+  </define>
+  <!-- end of imageobject.attlist -->
+  <!-- end of imageobject.module -->
+  <define name="local.textobject.attrib">
+    <empty/>
+  </define>
+  <define name="textobject.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for a text description of an object and its associated meta-information. -->
+  <define name="textobject">
+    <element name="textobject">
+      <ref name="textobject.attlist"/>
+      <optional>
+        <ref name="objectinfo"/>
+      </optional>
+      <choice>
+        <ref name="phrase"/>
+        <ref name="textdata"/>
+        <oneOrMore>
+          <ref name="textobject.mix"/>
+        </oneOrMore>
+      </choice>
+    </element>
+  </define>
+  <!-- end of textobject.element -->
+  <define name="textobject.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="textobject.role.attrib"/>
+    <ref name="local.textobject.attrib"/>
+  </define>
+  <!-- end of textobject.attlist -->
+  <!-- end of textobject.module -->
+  <define name="local.objectinfo.attrib">
+    <empty/>
+  </define>
+  <define name="objectinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Meta-information for an object. -->
+  <define name="objectinfo">
+    <element name="objectinfo">
+      <ref name="objectinfo.attlist"/>
+      <oneOrMore>
+        <ref name="info.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of objectinfo.element -->
+  <define name="objectinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="objectinfo.role.attrib"/>
+    <ref name="local.objectinfo.attrib"/>
+  </define>
+  <!-- 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 -->
+  <define name="local.objectdata.attrib">
+    <empty/>
+  </define>
+  <define name="objectdata.attrib">
+    <optional>
+      <attribute name="entityref">
+        <data type="ENTITY"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="fileref"/>
+    </optional>
+    <optional>
+      <attribute name="format">
+        <choice>
+          <ref name="notation.class"/>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="srccredit"/>
+    </optional>
+    <ref name="local.objectdata.attrib"/>
+  </define>
+  <define name="local.videodata.attrib">
+    <empty/>
+  </define>
+  <define name="videodata.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Pointer to external video data. -->
+  <define name="videodata">
+    <element name="videodata">
+      <ref name="videodata.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of videodata.element -->
+  <!-- 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 -->
+  <define name="videodata.attlist" combine="interleave">
+    <optional>
+      <attribute name="width"/>
+    </optional>
+    <optional>
+      <attribute name="contentwidth"/>
+    </optional>
+    <optional>
+      <attribute name="depth"/>
+    </optional>
+    <optional>
+      <attribute name="contentdepth"/>
+    </optional>
+    <optional>
+      <attribute name="align">
+        <choice>
+          <value>left</value>
+          <value>right</value>
+          <value>center</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="valign">
+        <choice>
+          <value>top</value>
+          <value>middle</value>
+          <value>bottom</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="scale"/>
+    </optional>
+    <optional>
+      <attribute name="scalefit">
+        <ref name="yesorno.attvals"/>
+      </attribute>
+    </optional>
+    <ref name="objectdata.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="videodata.role.attrib"/>
+    <ref name="local.videodata.attrib"/>
+  </define>
+  <!-- end of videodata.attlist -->
+  <!-- end of videodata.module -->
+  <define name="local.audiodata.attrib">
+    <empty/>
+  </define>
+  <define name="audiodata.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Pointer to external audio data. -->
+  <define name="audiodata">
+    <element name="audiodata">
+      <ref name="audiodata.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of audiodata.element -->
+  <define name="audiodata.attlist" combine="interleave">
+    <ref name="objectdata.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="audiodata.role.attrib"/>
+    <ref name="local.audiodata.attrib"/>
+  </define>
+  <!-- end of audiodata.attlist -->
+  <!-- end of audiodata.module -->
+  <define name="local.imagedata.attrib">
+    <empty/>
+  </define>
+  <define name="imagedata.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Pointer to external image data. -->
+  <define name="imagedata">
+    <element name="imagedata">
+      <ref name="imagedata.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of imagedata.element -->
+  <!-- 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 -->
+  <define name="imagedata.attlist" combine="interleave">
+    <optional>
+      <attribute name="width"/>
+    </optional>
+    <optional>
+      <attribute name="contentwidth"/>
+    </optional>
+    <optional>
+      <attribute name="depth"/>
+    </optional>
+    <optional>
+      <attribute name="contentdepth"/>
+    </optional>
+    <optional>
+      <attribute name="align">
+        <choice>
+          <value>left</value>
+          <value>right</value>
+          <value>center</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="valign">
+        <choice>
+          <value>top</value>
+          <value>middle</value>
+          <value>bottom</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="scale"/>
+    </optional>
+    <optional>
+      <attribute name="scalefit">
+        <ref name="yesorno.attvals"/>
+      </attribute>
+    </optional>
+    <ref name="objectdata.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="imagedata.role.attrib"/>
+    <ref name="local.imagedata.attrib"/>
+  </define>
+  <!-- end of imagedata.attlist -->
+  <!-- end of imagedata.module -->
+  <define name="local.textdata.attrib">
+    <empty/>
+  </define>
+  <define name="textdata.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Pointer to external text data. -->
+  <define name="textdata">
+    <element name="textdata">
+      <ref name="textdata.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of textdata.element -->
+  <define name="textdata.attlist" combine="interleave">
+    <optional>
+      <attribute name="encoding"/>
+    </optional>
+    <ref name="objectdata.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="textdata.role.attrib"/>
+    <ref name="local.textdata.attrib"/>
+  </define>
+  <!-- end of textdata.attlist -->
+  <!-- end of textdata.module -->
+  <define name="local.mediaobjectco.attrib">
+    <empty/>
+  </define>
+  <define name="mediaobjectco.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A media object that contains callouts. -->
+  <define name="mediaobjectco">
+    <element name="mediaobjectco">
+      <ref name="mediaobjectco.attlist"/>
+      <optional>
+        <ref name="objectinfo"/>
+      </optional>
+      <ref name="imageobjectco"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="imageobjectco"/>
+          <ref name="textobject"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of mediaobjectco.element -->
+  <define name="mediaobjectco.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="mediaobjectco.role.attrib"/>
+    <ref name="local.mediaobjectco.attrib"/>
+  </define>
+  <!-- end of mediaobjectco.attlist -->
+  <!-- end of mediaobjectco.module -->
+  <define name="local.imageobjectco.attrib">
+    <empty/>
+  </define>
+  <define name="imageobjectco.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for an image object with callouts. -->
+  <define name="imageobjectco">
+    <element name="imageobjectco">
+      <ref name="imageobjectco.attlist"/>
+      <ref name="areaspec"/>
+      <ref name="imageobject"/>
+      <zeroOrMore>
+        <ref name="calloutlist"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of imageobjectco.element -->
+  <define name="imageobjectco.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="imageobjectco.role.attrib"/>
+    <ref name="local.imageobjectco.attrib"/>
+  </define>
+  <!-- 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) -->
+  <define name="equation.content">
+    <optional>
+      <ref name="alt"/>
+    </optional>
+    <choice>
+      <oneOrMore>
+        <ref name="graphic"/>
+      </oneOrMore>
+      <oneOrMore>
+        <ref name="mediaobject"/>
+      </oneOrMore>
+      <oneOrMore>
+        <ref name="mathphrase"/>
+      </oneOrMore>
+    </choice>
+  </define>
+  <define name="inlineequation.content">
+    <optional>
+      <ref name="alt"/>
+    </optional>
+    <choice>
+      <oneOrMore>
+        <ref name="graphic"/>
+      </oneOrMore>
+      <oneOrMore>
+        <ref name="inlinemediaobject"/>
+      </oneOrMore>
+      <oneOrMore>
+        <ref name="mathphrase"/>
+      </oneOrMore>
+    </choice>
+  </define>
+  <define name="local.equation.attrib">
+    <empty/>
+  </define>
+  <define name="equation.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A displayed mathematical equation. -->
+  <define name="equation">
+    <element name="equation">
+      <ref name="equation.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="formalobject.title.content"/>
+      </optional>
+      <choice>
+        <ref name="informalequation"/>
+        <ref name="equation.content"/>
+      </choice>
+    </element>
+  </define>
+  <!-- end of equation.element -->
+  <define name="equation.attlist" combine="interleave">
+    <optional>
+      <attribute name="floatstyle"/>
+    </optional>
+    <ref name="label.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="equation.role.attrib"/>
+    <ref name="local.equation.attrib"/>
+  </define>
+  <!-- end of equation.attlist -->
+  <!-- end of equation.module -->
+  <define name="local.informalequation.attrib">
+    <empty/>
+  </define>
+  <define name="informalequation.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A displayed mathematical equation without a title. -->
+  <define name="informalequation">
+    <element name="informalequation">
+      <ref name="informalequation.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <ref name="equation.content"/>
+    </element>
+  </define>
+  <!-- end of informalequation.element -->
+  <define name="informalequation.attlist" combine="interleave">
+    <optional>
+      <attribute name="floatstyle"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="informalequation.role.attrib"/>
+    <ref name="local.informalequation.attrib"/>
+  </define>
+  <!-- end of informalequation.attlist -->
+  <!-- end of informalequation.module -->
+  <define name="local.inlineequation.attrib">
+    <empty/>
+  </define>
+  <define name="inlineequation.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A mathematical equation or expression occurring inline. -->
+  <define name="inlineequation">
+    <element name="inlineequation">
+      <ref name="inlineequation.attlist"/>
+      <ref name="inlineequation.content"/>
+    </element>
+  </define>
+  <!-- end of inlineequation.element -->
+  <define name="inlineequation.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="inlineequation.role.attrib"/>
+    <ref name="local.inlineequation.attrib"/>
+  </define>
+  <!-- end of inlineequation.attlist -->
+  <!-- end of inlineequation.module -->
+  <define name="local.alt.attrib">
+    <empty/>
+  </define>
+  <define name="alt.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Text representation for a graphical element. -->
+  <define name="alt">
+    <element name="alt">
+      <ref name="alt.attlist"/>
+      <text/>
+    </element>
+  </define>
+  <!-- end of alt.element -->
+  <define name="alt.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="alt.role.attrib"/>
+    <ref name="local.alt.attrib"/>
+  </define>
+  <!-- end of alt.attlist -->
+  <!-- end of alt.module -->
+  <define name="local.mathphrase.attrib">
+    <empty/>
+  </define>
+  <define name="mathphrase.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A mathematical phrase, an expression that can be represented with ordinary text and a small amount of markup. -->
+  <define name="mathphrase">
+    <element name="mathphrase">
+      <ref name="mathphrase.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="subscript"/>
+          <ref name="superscript"/>
+          <ref name="emphasis"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of mathphrase.element -->
+  <define name="mathphrase.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="mathphrase.role.attrib"/>
+    <ref name="local.mathphrase.attrib"/>
+  </define>
+  <!-- end of mathphrase.attlist -->
+  <!-- end of mathphrase.module -->
+  <!-- Tables ........................... -->
+  <!-- Choose a table model. CALS or OASIS XML Exchange -->
+  <!-- Do we allow the HTML table model as well? -->
+  <!-- ====================================================== -->
+  <!--
+    xhtmltbl.mod defines HTML tables and sets parameter
+    entities so that, when the CALS table module is read,
+    we end up allowing any table to be CALS or HTML.
+    i.e. This include must come first!
+  -->
+  <!-- ====================================================== -->
+  <include href="htmltblx.rng"/>
+  <!-- end of allow.html.tables -->
+  <!-- Add label and role attributes to table and informaltable -->
+  <!--
+    Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
+    EntryTbl, and Entry (and InformalTable element).
+  -->
+  <!-- Content model for Table. -->
+  <!-- Allow either objects or inlines; beware of REs between elements. -->
+  <!-- Reference CALS Table Model -->
+  <include href="calstblx.rng"/>
+  <!-- end of table.module -->
+  <!--
+    Note that InformalTable is dependent on some of the entity
+    declarations that customize Table.
+  -->
+  <define name="local.informaltable.attrib">
+    <empty/>
+  </define>
+  <!-- the following entity may have been declared by the XHTML table module -->
+  <!-- doc:A table without a title. -->
+  <define name="informaltable">
+    <element name="informaltable">
+      <ref name="informaltable.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <ref name="informal.tbl.table.mdl"/>
+    </element>
+  </define>
+  <!-- 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 -->
+  <define name="informaltable.attlist" combine="interleave">
+    <optional>
+      <attribute name="frame">
+        <choice>
+          <ref name="tbl.frame.attval"/>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="colsep">
+        <ref name="yesorno.attvals"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rowsep">
+        <ref name="yesorno.attvals"/>
+      </attribute>
+    </optional>
+    <ref name="common.table.attribs"/>
+    <ref name="tbl.table.att"/>
+    <ref name="local.informaltable.attrib"/>
+  </define>
+  <!-- end of informaltable.attlist -->
+  <!-- end of informaltable.module -->
+  <define name="local.caption.attrib">
+    <empty/>
+  </define>
+  <define name="caption.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A caption. -->
+  <define name="caption">
+    <element name="caption">
+      <ref name="caption.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="textobject.mix"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of caption.element -->
+  <!-- attrs comes from HTML tables ... -->
+  <!-- common.attrib, but without ID because ID is in attrs -->
+  <define name="caption.attlist.content">
+    <ref name="caption.role.attrib"/>
+    <ref name="attrs"/>
+    <optional>
+      <attribute name="align">
+        <choice>
+          <value>top</value>
+          <value>bottom</value>
+          <value>left</value>
+          <value>right</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="local.caption.attrib"/>
+  </define>
+  <define name="caption.attlist" combine="interleave">
+    <ref name="caption.attlist.content"/>
+  </define>
+  <!-- end of caption.attlist -->
+  <!-- end of caption.module -->
+  <!-- ...................................................................... -->
+  <!-- Synopses ............................................................. -->
+  <!-- Synopsis ......................... -->
+  <define name="local.synopsis.attrib">
+    <empty/>
+  </define>
+  <define name="synopsis.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A general-purpose element for representing the syntax of commands or functions. -->
+  <define name="synopsis">
+    <element name="synopsis">
+      <ref name="synopsis.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="para.char.mix"/>
+          <ref name="graphic"/>
+          <ref name="mediaobject"/>
+          <ref name="co"/>
+          <ref name="coref"/>
+          <ref name="textobject"/>
+          <ref name="lineannotation"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of synopsis.element -->
+  <define name="synopsis.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="linespecific.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="synopsis.role.attrib"/>
+    <ref name="local.synopsis.attrib"/>
+  </define>
+  <!-- end of synopsis.attlist -->
+  <!--  LineAnnotation (defined in the Inlines section, below) -->
+  <!-- end of synopsis.module -->
+  <!-- CmdSynopsis ...................... -->
+  <define name="local.cmdsynopsis.attrib">
+    <empty/>
+  </define>
+  <define name="cmdsynopsis.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A syntax summary for a software command. -->
+  <define name="cmdsynopsis">
+    <element name="cmdsynopsis">
+      <ref name="cmdsynopsis.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="command"/>
+          <ref name="arg"/>
+          <ref name="group"/>
+          <ref name="sbr"/>
+        </choice>
+      </oneOrMore>
+      <zeroOrMore>
+        <ref name="synopfragment"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of cmdsynopsis.element -->
+  <!--
+    Sepchar: Character that should separate command and all
+    top-level arguments; alternate value might be e.g., Δ
+  -->
+  <define name="cmdsynopsis.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <optional>
+      <attribute name="sepchar" a:defaultValue=" "/>
+    </optional>
+    <optional>
+      <attribute name="cmdlength"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="cmdsynopsis.role.attrib"/>
+    <ref name="local.cmdsynopsis.attrib"/>
+  </define>
+  <!-- end of cmdsynopsis.attlist -->
+  <!-- end of cmdsynopsis.module -->
+  <define name="local.arg.attrib">
+    <empty/>
+  </define>
+  <define name="arg.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An argument in a CmdSynopsis. -->
+  <define name="arg">
+    <element name="arg">
+      <ref name="arg.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="arg"/>
+          <ref name="group"/>
+          <ref name="option"/>
+          <ref name="synopfragmentref"/>
+          <ref name="replaceable"/>
+          <ref name="sbr"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- 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...)
+  -->
+  <define name="arg.attlist" combine="interleave">
+    <optional>
+      <attribute name="choice" a:defaultValue="opt">
+        <choice>
+          <value>opt</value>
+          <value>req</value>
+          <value>plain</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rep" a:defaultValue="norepeat">
+        <choice>
+          <value>norepeat</value>
+          <value>repeat</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="arg.role.attrib"/>
+    <ref name="local.arg.attrib"/>
+  </define>
+  <!-- end of arg.attlist -->
+  <!-- end of arg.module -->
+  <define name="local.group.attrib">
+    <empty/>
+  </define>
+  <define name="group.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A group of elements in a CmdSynopsis. -->
+  <define name="group">
+    <element name="group">
+      <ref name="group.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="arg"/>
+          <ref name="group"/>
+          <ref name="option"/>
+          <ref name="synopfragmentref"/>
+          <ref name="replaceable"/>
+          <ref name="sbr"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- 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...)
+  -->
+  <define name="group.attlist" combine="interleave">
+    <optional>
+      <attribute name="choice" a:defaultValue="opt">
+        <choice>
+          <value>opt</value>
+          <value>req</value>
+          <value>plain</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rep" a:defaultValue="norepeat">
+        <choice>
+          <value>norepeat</value>
+          <value>repeat</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="group.role.attrib"/>
+    <ref name="local.group.attrib"/>
+  </define>
+  <!-- end of group.attlist -->
+  <!-- end of group.module -->
+  <define name="local.sbr.attrib">
+    <empty/>
+  </define>
+  <!-- Synopsis break -->
+  <define name="sbr.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An explicit line break in a command synopsis. -->
+  <define name="sbr">
+    <element name="sbr">
+      <ref name="sbr.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of sbr.element -->
+  <define name="sbr.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="sbr.role.attrib"/>
+    <ref name="local.sbr.attrib"/>
+  </define>
+  <!-- end of sbr.attlist -->
+  <!-- end of sbr.module -->
+  <define name="local.synopfragmentref.attrib">
+    <empty/>
+  </define>
+  <define name="synopfragmentref.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A reference to a fragment of a command synopsis. -->
+  <define name="synopfragmentref">
+    <element name="synopfragmentref">
+      <ref name="synopfragmentref.attlist"/>
+      <text/>
+    </element>
+  </define>
+  <!-- end of synopfragmentref.element -->
+  <!--
+    to SynopFragment of complex synopsis
+    material for separate referencing
+  -->
+  <define name="synopfragmentref.attlist" combine="interleave">
+    <ref name="linkendreq.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="synopfragmentref.role.attrib"/>
+    <ref name="local.synopfragmentref.attrib"/>
+  </define>
+  <!-- end of synopfragmentref.attlist -->
+  <!-- end of synopfragmentref.module -->
+  <define name="local.synopfragment.attrib">
+    <empty/>
+  </define>
+  <define name="synopfragment.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A portion of a CmdSynopsis broken out from the main body of the synopsis. -->
+  <define name="synopfragment">
+    <element name="synopfragment">
+      <ref name="synopfragment.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="arg"/>
+          <ref name="group"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of synopfragment.element -->
+  <define name="synopfragment.attlist" combine="interleave">
+    <ref name="idreq.common.attrib"/>
+    <ref name="synopfragment.role.attrib"/>
+    <ref name="local.synopfragment.attrib"/>
+  </define>
+  <!-- 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 ..................... -->
+  <define name="local.funcsynopsis.attrib">
+    <empty/>
+  </define>
+  <define name="funcsynopsis.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The syntax summary for a function definition. -->
+  <define name="funcsynopsis">
+    <element name="funcsynopsis">
+      <ref name="funcsynopsis.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="funcsynopsisinfo"/>
+          <ref name="funcprototype"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of funcsynopsis.element -->
+  <define name="funcsynopsis.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="funcsynopsis.role.attrib"/>
+    <ref name="local.funcsynopsis.attrib"/>
+  </define>
+  <!-- end of funcsynopsis.attlist -->
+  <!-- end of funcsynopsis.module -->
+  <define name="local.funcsynopsisinfo.attrib">
+    <empty/>
+  </define>
+  <define name="funcsynopsisinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Information supplementing the FuncDefs of a FuncSynopsis. -->
+  <define name="funcsynopsisinfo">
+    <element name="funcsynopsisinfo">
+      <ref name="funcsynopsisinfo.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="cptr.char.mix"/>
+          <ref name="textobject"/>
+          <ref name="lineannotation"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of funcsynopsisinfo.element -->
+  <define name="funcsynopsisinfo.attlist" combine="interleave">
+    <ref name="linespecific.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="funcsynopsisinfo.role.attrib"/>
+    <ref name="local.funcsynopsisinfo.attrib"/>
+  </define>
+  <!-- end of funcsynopsisinfo.attlist -->
+  <!-- end of funcsynopsisinfo.module -->
+  <define name="local.funcprototype.attrib">
+    <empty/>
+  </define>
+  <define name="funcprototype.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The prototype of a function. -->
+  <define name="funcprototype">
+    <element name="funcprototype">
+      <ref name="funcprototype.attlist"/>
+      <zeroOrMore>
+        <ref name="modifier"/>
+      </zeroOrMore>
+      <ref name="funcdef"/>
+      <choice>
+        <ref name="void"/>
+        <ref name="varargs"/>
+        <group>
+          <oneOrMore>
+            <ref name="paramdef"/>
+          </oneOrMore>
+          <optional>
+            <ref name="varargs"/>
+          </optional>
+        </group>
+      </choice>
+      <zeroOrMore>
+        <ref name="modifier"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of funcprototype.element -->
+  <define name="funcprototype.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="funcprototype.role.attrib"/>
+    <ref name="local.funcprototype.attrib"/>
+  </define>
+  <!-- end of funcprototype.attlist -->
+  <!-- end of funcprototype.module -->
+  <define name="local.funcdef.attrib">
+    <empty/>
+  </define>
+  <define name="funcdef.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A function (subroutine) name and its return type. -->
+  <define name="funcdef">
+    <element name="funcdef">
+      <ref name="funcdef.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="type"/>
+          <ref name="replaceable"/>
+          <ref name="function"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of funcdef.element -->
+  <define name="funcdef.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="funcdef.role.attrib"/>
+    <ref name="local.funcdef.attrib"/>
+  </define>
+  <!-- end of funcdef.attlist -->
+  <!-- end of funcdef.module -->
+  <define name="local.void.attrib">
+    <empty/>
+  </define>
+  <define name="void.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An empty element in a function synopsis indicating that the function in question takes no arguments. -->
+  <define name="void">
+    <element name="void">
+      <ref name="void.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of void.element -->
+  <define name="void.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="void.role.attrib"/>
+    <ref name="local.void.attrib"/>
+  </define>
+  <!-- end of void.attlist -->
+  <!-- end of void.module -->
+  <define name="local.varargs.attrib">
+    <empty/>
+  </define>
+  <define name="varargs.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An empty element in a function synopsis indicating a variable number of arguments. -->
+  <define name="varargs">
+    <element name="varargs">
+      <ref name="varargs.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of varargs.element -->
+  <define name="varargs.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="varargs.role.attrib"/>
+    <ref name="local.varargs.attrib"/>
+  </define>
+  <!-- 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.
+  -->
+  <define name="local.paramdef.attrib">
+    <empty/>
+  </define>
+  <define name="paramdef.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Information about a function parameter in a programming language. -->
+  <define name="paramdef">
+    <element name="paramdef">
+      <ref name="paramdef.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="initializer"/>
+          <ref name="type"/>
+          <ref name="replaceable"/>
+          <ref name="parameter"/>
+          <ref name="funcparams"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of paramdef.element -->
+  <define name="paramdef.attlist" combine="interleave">
+    <optional>
+      <attribute name="choice">
+        <choice>
+          <value>opt</value>
+          <value>req</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="paramdef.role.attrib"/>
+    <ref name="local.paramdef.attrib"/>
+  </define>
+  <!-- end of paramdef.attlist -->
+  <!-- end of paramdef.module -->
+  <define name="local.funcparams.attrib">
+    <empty/>
+  </define>
+  <define name="funcparams.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Parameters for a function referenced through a function pointer in a synopsis. -->
+  <define name="funcparams">
+    <element name="funcparams">
+      <ref name="funcparams.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of funcparams.element -->
+  <define name="funcparams.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="funcparams.role.attrib"/>
+    <ref name="local.funcparams.attrib"/>
+  </define>
+  <!-- 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 ..................... -->
+  <define name="local.classsynopsis.attrib">
+    <empty/>
+  </define>
+  <define name="classsynopsis.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The syntax summary for a class definition. -->
+  <define name="classsynopsis">
+    <element name="classsynopsis">
+      <ref name="classsynopsis.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="ooclass"/>
+          <ref name="oointerface"/>
+          <ref name="ooexception"/>
+        </choice>
+      </oneOrMore>
+      <zeroOrMore>
+        <choice>
+          <ref name="classsynopsisinfo"/>
+          <ref name="fieldsynopsis"/>
+          <ref name="method.synop.class"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of classsynopsis.element -->
+  <define name="classsynopsis.attlist" combine="interleave">
+    <optional>
+      <attribute name="language"/>
+    </optional>
+    <optional>
+      <attribute name="class" a:defaultValue="class">
+        <choice>
+          <value>class</value>
+          <value>interface</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="classsynopsis.role.attrib"/>
+    <ref name="local.classsynopsis.attrib"/>
+  </define>
+  <!-- end of classsynopsis.attlist -->
+  <!-- end of classsynopsis.module -->
+  <define name="local.classsynopsisinfo.attrib">
+    <empty/>
+  </define>
+  <define name="classsynopsisinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Information supplementing the contents of a ClassSynopsis. -->
+  <define name="classsynopsisinfo">
+    <element name="classsynopsisinfo">
+      <ref name="classsynopsisinfo.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="cptr.char.mix"/>
+          <ref name="textobject"/>
+          <ref name="lineannotation"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of classsynopsisinfo.element -->
+  <define name="classsynopsisinfo.attlist" combine="interleave">
+    <ref name="linespecific.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="classsynopsisinfo.role.attrib"/>
+    <ref name="local.classsynopsisinfo.attrib"/>
+  </define>
+  <!-- end of classsynopsisinfo.attlist -->
+  <!-- end of classsynopsisinfo.module -->
+  <define name="local.ooclass.attrib">
+    <empty/>
+  </define>
+  <define name="ooclass.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A class in an object-oriented programming language. -->
+  <define name="ooclass">
+    <element name="ooclass">
+      <ref name="ooclass.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="modifier"/>
+          <ref name="package"/>
+        </choice>
+      </zeroOrMore>
+      <ref name="classname"/>
+    </element>
+  </define>
+  <!-- end of ooclass.element -->
+  <define name="ooclass.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="ooclass.role.attrib"/>
+    <ref name="local.ooclass.attrib"/>
+  </define>
+  <!-- end of ooclass.attlist -->
+  <!-- end of ooclass.module -->
+  <define name="local.oointerface.attrib">
+    <empty/>
+  </define>
+  <define name="oointerface.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An interface in an object-oriented programming language. -->
+  <define name="oointerface">
+    <element name="oointerface">
+      <ref name="oointerface.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="modifier"/>
+          <ref name="package"/>
+        </choice>
+      </zeroOrMore>
+      <ref name="interfacename"/>
+    </element>
+  </define>
+  <!-- end of oointerface.element -->
+  <define name="oointerface.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="oointerface.role.attrib"/>
+    <ref name="local.oointerface.attrib"/>
+  </define>
+  <!-- end of oointerface.attlist -->
+  <!-- end of oointerface.module -->
+  <define name="local.ooexception.attrib">
+    <empty/>
+  </define>
+  <define name="ooexception.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An exception in an object-oriented programming language. -->
+  <define name="ooexception">
+    <element name="ooexception">
+      <ref name="ooexception.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="modifier"/>
+          <ref name="package"/>
+        </choice>
+      </zeroOrMore>
+      <ref name="exceptionname"/>
+    </element>
+  </define>
+  <!-- end of ooexception.element -->
+  <define name="ooexception.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="ooexception.role.attrib"/>
+    <ref name="local.ooexception.attrib"/>
+  </define>
+  <!-- end of ooexception.attlist -->
+  <!-- end of ooexception.module -->
+  <define name="local.modifier.attrib">
+    <empty/>
+  </define>
+  <define name="modifier.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Modifiers in a synopsis. -->
+  <define name="modifier">
+    <element name="modifier">
+      <ref name="modifier.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of modifier.element -->
+  <define name="modifier.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="modifier.role.attrib"/>
+    <ref name="local.modifier.attrib"/>
+  </define>
+  <!-- end of modifier.attlist -->
+  <!-- end of modifier.module -->
+  <define name="local.interfacename.attrib">
+    <empty/>
+  </define>
+  <define name="interfacename.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of an interface. -->
+  <define name="interfacename">
+    <element name="interfacename">
+      <ref name="interfacename.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of interfacename.element -->
+  <define name="interfacename.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="interfacename.role.attrib"/>
+    <ref name="local.interfacename.attrib"/>
+  </define>
+  <!-- end of interfacename.attlist -->
+  <!-- end of interfacename.module -->
+  <define name="local.exceptionname.attrib">
+    <empty/>
+  </define>
+  <define name="exceptionname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of an exception. -->
+  <define name="exceptionname">
+    <element name="exceptionname">
+      <ref name="exceptionname.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of exceptionname.element -->
+  <define name="exceptionname.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="exceptionname.role.attrib"/>
+    <ref name="local.exceptionname.attrib"/>
+  </define>
+  <!-- end of exceptionname.attlist -->
+  <!-- end of exceptionname.module -->
+  <define name="local.fieldsynopsis.attrib">
+    <empty/>
+  </define>
+  <define name="fieldsynopsis.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a field in a class definition. -->
+  <define name="fieldsynopsis">
+    <element name="fieldsynopsis">
+      <ref name="fieldsynopsis.attlist"/>
+      <zeroOrMore>
+        <ref name="modifier"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="type"/>
+      </optional>
+      <ref name="varname"/>
+      <optional>
+        <ref name="initializer"/>
+      </optional>
+    </element>
+  </define>
+  <!-- end of fieldsynopsis.element -->
+  <define name="fieldsynopsis.attlist" combine="interleave">
+    <optional>
+      <attribute name="language"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="fieldsynopsis.role.attrib"/>
+    <ref name="local.fieldsynopsis.attrib"/>
+  </define>
+  <!-- end of fieldsynopsis.attlist -->
+  <!-- end of fieldsynopsis.module -->
+  <define name="local.initializer.attrib">
+    <empty/>
+  </define>
+  <define name="initializer.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The initializer for a FieldSynopsis. -->
+  <define name="initializer">
+    <element name="initializer">
+      <ref name="initializer.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of initializer.element -->
+  <define name="initializer.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="initializer.role.attrib"/>
+    <ref name="local.initializer.attrib"/>
+  </define>
+  <!-- end of initializer.attlist -->
+  <!-- end of initializer.module -->
+  <define name="local.constructorsynopsis.attrib">
+    <empty/>
+  </define>
+  <define name="constructorsynopsis.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A syntax summary for a constructor. -->
+  <define name="constructorsynopsis">
+    <element name="constructorsynopsis">
+      <ref name="constructorsynopsis.attlist"/>
+      <zeroOrMore>
+        <ref name="modifier"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="methodname"/>
+      </optional>
+      <choice>
+        <oneOrMore>
+          <ref name="methodparam"/>
+        </oneOrMore>
+        <optional>
+          <ref name="void"/>
+        </optional>
+      </choice>
+      <zeroOrMore>
+        <ref name="exceptionname"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of constructorsynopsis.element -->
+  <define name="constructorsynopsis.attlist" combine="interleave">
+    <optional>
+      <attribute name="language"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="constructorsynopsis.role.attrib"/>
+    <ref name="local.constructorsynopsis.attrib"/>
+  </define>
+  <!-- end of constructorsynopsis.attlist -->
+  <!-- end of constructorsynopsis.module -->
+  <define name="local.destructorsynopsis.attrib">
+    <empty/>
+  </define>
+  <define name="destructorsynopsis.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A syntax summary for a destructor. -->
+  <define name="destructorsynopsis">
+    <element name="destructorsynopsis">
+      <ref name="destructorsynopsis.attlist"/>
+      <zeroOrMore>
+        <ref name="modifier"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="methodname"/>
+      </optional>
+      <choice>
+        <oneOrMore>
+          <ref name="methodparam"/>
+        </oneOrMore>
+        <optional>
+          <ref name="void"/>
+        </optional>
+      </choice>
+      <zeroOrMore>
+        <ref name="exceptionname"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of destructorsynopsis.element -->
+  <define name="destructorsynopsis.attlist" combine="interleave">
+    <optional>
+      <attribute name="language"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="destructorsynopsis.role.attrib"/>
+    <ref name="local.destructorsynopsis.attrib"/>
+  </define>
+  <!-- end of destructorsynopsis.attlist -->
+  <!-- end of destructorsynopsis.module -->
+  <define name="local.methodsynopsis.attrib">
+    <empty/>
+  </define>
+  <define name="methodsynopsis.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A syntax summary for a method. -->
+  <define name="methodsynopsis">
+    <element name="methodsynopsis">
+      <ref name="methodsynopsis.attlist"/>
+      <zeroOrMore>
+        <ref name="modifier"/>
+      </zeroOrMore>
+      <optional>
+        <choice>
+          <ref name="type"/>
+          <ref name="void"/>
+        </choice>
+      </optional>
+      <ref name="methodname"/>
+      <choice>
+        <oneOrMore>
+          <ref name="methodparam"/>
+        </oneOrMore>
+        <optional>
+          <ref name="void"/>
+        </optional>
+      </choice>
+      <zeroOrMore>
+        <ref name="exceptionname"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="modifier"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of methodsynopsis.element -->
+  <define name="methodsynopsis.attlist" combine="interleave">
+    <optional>
+      <attribute name="language"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="methodsynopsis.role.attrib"/>
+    <ref name="local.methodsynopsis.attrib"/>
+  </define>
+  <!-- end of methodsynopsis.attlist -->
+  <!-- end of methodsynopsis.module -->
+  <define name="local.methodname.attrib">
+    <empty/>
+  </define>
+  <define name="methodname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a method. -->
+  <define name="methodname">
+    <element name="methodname">
+      <ref name="methodname.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of methodname.element -->
+  <define name="methodname.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="methodname.role.attrib"/>
+    <ref name="local.methodname.attrib"/>
+  </define>
+  <!-- end of methodname.attlist -->
+  <!-- end of methodname.module -->
+  <define name="local.methodparam.attrib">
+    <empty/>
+  </define>
+  <define name="methodparam.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Parameters to a method. -->
+  <define name="methodparam">
+    <element name="methodparam">
+      <ref name="methodparam.attlist"/>
+      <zeroOrMore>
+        <ref name="modifier"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="type"/>
+      </optional>
+      <choice>
+        <group>
+          <ref name="parameter"/>
+          <optional>
+            <ref name="initializer"/>
+          </optional>
+        </group>
+        <ref name="funcparams"/>
+      </choice>
+      <zeroOrMore>
+        <ref name="modifier"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of methodparam.element -->
+  <define name="methodparam.attlist" combine="interleave">
+    <optional>
+      <attribute name="choice" a:defaultValue="req">
+        <choice>
+          <value>opt</value>
+          <value>req</value>
+          <value>plain</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rep" a:defaultValue="norepeat">
+        <choice>
+          <value>norepeat</value>
+          <value>repeat</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="methodparam.role.attrib"/>
+    <ref name="local.methodparam.attrib"/>
+  </define>
+  <!-- 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.
+  -->
+  <!-- .................................. -->
+  <!-- Ackno ............................ -->
+  <define name="local.ackno.attrib">
+    <empty/>
+  </define>
+  <define name="ackno.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Acknowledgements in an Article. -->
+  <define name="ackno">
+    <element name="ackno">
+      <ref name="ackno.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of ackno.element -->
+  <define name="ackno.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="ackno.role.attrib"/>
+    <ref name="local.ackno.attrib"/>
+  </define>
+  <!-- end of ackno.attlist -->
+  <!-- end of ackno.module -->
+  <!-- Address .......................... -->
+  <define name="local.address.attrib">
+    <empty/>
+  </define>
+  <define name="address.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A real-world address, generally a postal address. -->
+  <define name="address">
+    <element name="address">
+      <ref name="address.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="personname"/>
+          <ref name="person.ident.mix"/>
+          <ref name="street"/>
+          <ref name="pob"/>
+          <ref name="postcode"/>
+          <ref name="city"/>
+          <ref name="state"/>
+          <ref name="country"/>
+          <ref name="phone"/>
+          <ref name="fax"/>
+          <ref name="email"/>
+          <ref name="otheraddr"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of address.element -->
+  <define name="address.attlist" combine="interleave">
+    <ref name="linespecific.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="address.role.attrib"/>
+    <ref name="local.address.attrib"/>
+  </define>
+  <!-- end of address.attlist -->
+  <!-- end of address.module -->
+  <define name="local.street.attrib">
+    <empty/>
+  </define>
+  <define name="street.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A street address in an address. -->
+  <define name="street">
+    <element name="street">
+      <ref name="street.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of street.element -->
+  <define name="street.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="street.role.attrib"/>
+    <ref name="local.street.attrib"/>
+  </define>
+  <!-- end of street.attlist -->
+  <!-- end of street.module -->
+  <define name="local.pob.attrib">
+    <empty/>
+  </define>
+  <define name="pob.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A post office box in an address. -->
+  <define name="pob">
+    <element name="pob">
+      <ref name="pob.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of pob.element -->
+  <define name="pob.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="pob.role.attrib"/>
+    <ref name="local.pob.attrib"/>
+  </define>
+  <!-- end of pob.attlist -->
+  <!-- end of pob.module -->
+  <define name="local.postcode.attrib">
+    <empty/>
+  </define>
+  <define name="postcode.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A postal code in an address. -->
+  <define name="postcode">
+    <element name="postcode">
+      <ref name="postcode.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of postcode.element -->
+  <define name="postcode.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="postcode.role.attrib"/>
+    <ref name="local.postcode.attrib"/>
+  </define>
+  <!-- end of postcode.attlist -->
+  <!-- end of postcode.module -->
+  <define name="local.city.attrib">
+    <empty/>
+  </define>
+  <define name="city.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a city in an address. -->
+  <define name="city">
+    <element name="city">
+      <ref name="city.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of city.element -->
+  <define name="city.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="city.role.attrib"/>
+    <ref name="local.city.attrib"/>
+  </define>
+  <!-- end of city.attlist -->
+  <!-- end of city.module -->
+  <define name="local.state.attrib">
+    <empty/>
+  </define>
+  <define name="state.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A state or province in an address. -->
+  <define name="state">
+    <element name="state">
+      <ref name="state.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of state.element -->
+  <define name="state.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="state.role.attrib"/>
+    <ref name="local.state.attrib"/>
+  </define>
+  <!-- end of state.attlist -->
+  <!-- end of state.module -->
+  <define name="local.country.attrib">
+    <empty/>
+  </define>
+  <define name="country.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a country. -->
+  <define name="country">
+    <element name="country">
+      <ref name="country.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of country.element -->
+  <define name="country.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="country.role.attrib"/>
+    <ref name="local.country.attrib"/>
+  </define>
+  <!-- end of country.attlist -->
+  <!-- end of country.module -->
+  <define name="local.phone.attrib">
+    <empty/>
+  </define>
+  <define name="phone.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A telephone number. -->
+  <define name="phone">
+    <element name="phone">
+      <ref name="phone.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of phone.element -->
+  <define name="phone.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="phone.role.attrib"/>
+    <ref name="local.phone.attrib"/>
+  </define>
+  <!-- end of phone.attlist -->
+  <!-- end of phone.module -->
+  <define name="local.fax.attrib">
+    <empty/>
+  </define>
+  <define name="fax.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A fax number. -->
+  <define name="fax">
+    <element name="fax">
+      <ref name="fax.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of fax.element -->
+  <define name="fax.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="fax.role.attrib"/>
+    <ref name="local.fax.attrib"/>
+  </define>
+  <!-- end of fax.attlist -->
+  <!-- end of fax.module -->
+  <!--  Email (defined in the Inlines section, below) -->
+  <define name="local.otheraddr.attrib">
+    <empty/>
+  </define>
+  <define name="otheraddr.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Uncategorized information in address. -->
+  <define name="otheraddr">
+    <element name="otheraddr">
+      <ref name="otheraddr.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of otheraddr.element -->
+  <define name="otheraddr.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="otheraddr.role.attrib"/>
+    <ref name="local.otheraddr.attrib"/>
+  </define>
+  <!-- end of otheraddr.attlist -->
+  <!-- end of otheraddr.module -->
+  <!-- end of address.content.module -->
+  <!-- Affiliation ...................... -->
+  <define name="local.affiliation.attrib">
+    <empty/>
+  </define>
+  <define name="affiliation.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The institutional affiliation of an individual. -->
+  <define name="affiliation">
+    <element name="affiliation">
+      <ref name="affiliation.attlist"/>
+      <optional>
+        <ref name="shortaffil"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="jobtitle"/>
+      </zeroOrMore>
+      <optional>
+        <ref name="orgname"/>
+      </optional>
+      <zeroOrMore>
+        <ref name="orgdiv"/>
+      </zeroOrMore>
+      <zeroOrMore>
+        <ref name="address"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of affiliation.element -->
+  <define name="affiliation.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="affiliation.role.attrib"/>
+    <ref name="local.affiliation.attrib"/>
+  </define>
+  <!-- end of affiliation.attlist -->
+  <!-- end of affiliation.module -->
+  <define name="local.shortaffil.attrib">
+    <empty/>
+  </define>
+  <define name="shortaffil.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A brief description of an affiliation. -->
+  <define name="shortaffil">
+    <element name="shortaffil">
+      <ref name="shortaffil.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of shortaffil.element -->
+  <define name="shortaffil.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="shortaffil.role.attrib"/>
+    <ref name="local.shortaffil.attrib"/>
+  </define>
+  <!-- end of shortaffil.attlist -->
+  <!-- end of shortaffil.module -->
+  <define name="local.jobtitle.attrib">
+    <empty/>
+  </define>
+  <define name="jobtitle.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The title of an individual in an organization. -->
+  <define name="jobtitle">
+    <element name="jobtitle">
+      <ref name="jobtitle.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of jobtitle.element -->
+  <define name="jobtitle.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="jobtitle.role.attrib"/>
+    <ref name="local.jobtitle.attrib"/>
+  </define>
+  <!-- end of jobtitle.attlist -->
+  <!-- end of jobtitle.module -->
+  <!--  OrgName (defined elsewhere in this section) -->
+  <define name="local.orgdiv.attrib">
+    <empty/>
+  </define>
+  <define name="orgdiv.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A division of an organization. -->
+  <define name="orgdiv">
+    <element name="orgdiv">
+      <ref name="orgdiv.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of orgdiv.element -->
+  <define name="orgdiv.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="orgdiv.role.attrib"/>
+    <ref name="local.orgdiv.attrib"/>
+  </define>
+  <!-- end of orgdiv.attlist -->
+  <!-- end of orgdiv.module -->
+  <!--  Address (defined elsewhere in this section) -->
+  <!-- end of affiliation.content.module -->
+  <!-- ArtPageNums ...................... -->
+  <define name="local.artpagenums.attrib">
+    <empty/>
+  </define>
+  <define name="artpagenums.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The page numbers of an article as published. -->
+  <define name="artpagenums">
+    <element name="artpagenums">
+      <ref name="artpagenums.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of artpagenums.element -->
+  <define name="artpagenums.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="artpagenums.role.attrib"/>
+    <ref name="local.artpagenums.attrib"/>
+  </define>
+  <!-- end of artpagenums.attlist -->
+  <!-- end of artpagenums.module -->
+  <!-- PersonName -->
+  <define name="local.personname.attrib">
+    <empty/>
+  </define>
+  <define name="personname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The personal name of an individual. -->
+  <define name="personname">
+    <element name="personname">
+      <ref name="personname.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="honorific"/>
+          <ref name="firstname"/>
+          <ref name="surname"/>
+          <ref name="lineage"/>
+          <ref name="othername"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of personname.element -->
+  <define name="personname.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="personname.role.attrib"/>
+    <ref name="local.personname.attrib"/>
+  </define>
+  <!-- end of personname.attlist -->
+  <!-- end of personname.module -->
+  <!-- Author ........................... -->
+  <define name="local.author.attrib">
+    <empty/>
+  </define>
+  <define name="author.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of an individual author. -->
+  <define name="author">
+    <element name="author">
+      <ref name="author.attlist"/>
+      <choice>
+        <ref name="personname"/>
+        <oneOrMore>
+          <ref name="person.ident.mix"/>
+        </oneOrMore>
+      </choice>
+      <zeroOrMore>
+        <choice>
+          <ref name="personblurb"/>
+          <ref name="email"/>
+          <ref name="address"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of author.element -->
+  <define name="author.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="author.role.attrib"/>
+    <ref name="local.author.attrib"/>
+  </define>
+  <!-- end of author.attlist -->
+  <!-- (see "Personal identity elements" for %person.ident.mix;) -->
+  <!-- end of author.module -->
+  <!-- AuthorGroup ...................... -->
+  <define name="local.authorgroup.attrib">
+    <empty/>
+  </define>
+  <define name="authorgroup.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Wrapper for author information when a document has multiple authors or collabarators. -->
+  <define name="authorgroup">
+    <element name="authorgroup">
+      <ref name="authorgroup.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="author"/>
+          <ref name="editor"/>
+          <ref name="collab"/>
+          <ref name="corpauthor"/>
+          <ref name="corpcredit"/>
+          <ref name="othercredit"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of authorgroup.element -->
+  <define name="authorgroup.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="authorgroup.role.attrib"/>
+    <ref name="local.authorgroup.attrib"/>
+  </define>
+  <!-- end of authorgroup.attlist -->
+  <!-- end of authorgroup.module -->
+  <!--  Author (defined elsewhere in this section) -->
+  <!--  Editor (defined elsewhere in this section) -->
+  <define name="local.collab.attrib">
+    <empty/>
+  </define>
+  <define name="collab.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Identifies a collaborator. -->
+  <define name="collab">
+    <element name="collab">
+      <ref name="collab.attlist"/>
+      <ref name="collabname"/>
+      <zeroOrMore>
+        <ref name="affiliation"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of collab.element -->
+  <define name="collab.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="collab.role.attrib"/>
+    <ref name="local.collab.attrib"/>
+  </define>
+  <!-- end of collab.attlist -->
+  <!-- end of collab.module -->
+  <define name="local.collabname.attrib">
+    <empty/>
+  </define>
+  <define name="collabname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a collaborator. -->
+  <define name="collabname">
+    <element name="collabname">
+      <ref name="collabname.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of collabname.element -->
+  <define name="collabname.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="collabname.role.attrib"/>
+    <ref name="local.collabname.attrib"/>
+  </define>
+  <!-- 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 ................... -->
+  <define name="local.authorinitials.attrib">
+    <empty/>
+  </define>
+  <define name="authorinitials.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The initials or other short identifier for an author. -->
+  <define name="authorinitials">
+    <element name="authorinitials">
+      <ref name="authorinitials.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of authorinitials.element -->
+  <define name="authorinitials.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="authorinitials.role.attrib"/>
+    <ref name="local.authorinitials.attrib"/>
+  </define>
+  <!-- end of authorinitials.attlist -->
+  <!-- end of authorinitials.module -->
+  <!-- ConfGroup ........................ -->
+  <define name="local.confgroup.attrib">
+    <empty/>
+  </define>
+  <define name="confgroup.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for document meta-information about a conference. -->
+  <define name="confgroup">
+    <element name="confgroup">
+      <ref name="confgroup.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="confdates"/>
+          <ref name="conftitle"/>
+          <ref name="confnum"/>
+          <ref name="address"/>
+          <ref name="confsponsor"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of confgroup.element -->
+  <define name="confgroup.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="confgroup.role.attrib"/>
+    <ref name="local.confgroup.attrib"/>
+  </define>
+  <!-- end of confgroup.attlist -->
+  <!-- end of confgroup.module -->
+  <define name="local.confdates.attrib">
+    <empty/>
+  </define>
+  <define name="confdates.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The dates of a conference for which a document was written. -->
+  <define name="confdates">
+    <element name="confdates">
+      <ref name="confdates.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of confdates.element -->
+  <define name="confdates.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="confdates.role.attrib"/>
+    <ref name="local.confdates.attrib"/>
+  </define>
+  <!-- end of confdates.attlist -->
+  <!-- end of confdates.module -->
+  <define name="local.conftitle.attrib">
+    <empty/>
+  </define>
+  <define name="conftitle.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The title of a conference for which a document was written. -->
+  <define name="conftitle">
+    <element name="conftitle">
+      <ref name="conftitle.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of conftitle.element -->
+  <define name="conftitle.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="conftitle.role.attrib"/>
+    <ref name="local.conftitle.attrib"/>
+  </define>
+  <!-- end of conftitle.attlist -->
+  <!-- end of conftitle.module -->
+  <define name="local.confnum.attrib">
+    <empty/>
+  </define>
+  <define name="confnum.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An identifier, frequently numerical, associated with a conference for which a document was written. -->
+  <define name="confnum">
+    <element name="confnum">
+      <ref name="confnum.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of confnum.element -->
+  <define name="confnum.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="confnum.role.attrib"/>
+    <ref name="local.confnum.attrib"/>
+  </define>
+  <!-- end of confnum.attlist -->
+  <!-- end of confnum.module -->
+  <!--  Address (defined elsewhere in this section) -->
+  <define name="local.confsponsor.attrib">
+    <empty/>
+  </define>
+  <define name="confsponsor.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The sponsor of a conference for which a document was written. -->
+  <define name="confsponsor">
+    <element name="confsponsor">
+      <ref name="confsponsor.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of confsponsor.element -->
+  <define name="confsponsor.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="confsponsor.role.attrib"/>
+    <ref name="local.confsponsor.attrib"/>
+  </define>
+  <!-- end of confsponsor.attlist -->
+  <!-- end of confsponsor.module -->
+  <!-- end of confgroup.content.module -->
+  <!-- ContractNum ...................... -->
+  <define name="local.contractnum.attrib">
+    <empty/>
+  </define>
+  <define name="contractnum.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The contract number of a document. -->
+  <define name="contractnum">
+    <element name="contractnum">
+      <ref name="contractnum.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of contractnum.element -->
+  <define name="contractnum.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="contractnum.role.attrib"/>
+    <ref name="local.contractnum.attrib"/>
+  </define>
+  <!-- end of contractnum.attlist -->
+  <!-- end of contractnum.module -->
+  <!-- ContractSponsor .................. -->
+  <define name="local.contractsponsor.attrib">
+    <empty/>
+  </define>
+  <define name="contractsponsor.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The sponsor of a contract. -->
+  <define name="contractsponsor">
+    <element name="contractsponsor">
+      <ref name="contractsponsor.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of contractsponsor.element -->
+  <define name="contractsponsor.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="contractsponsor.role.attrib"/>
+    <ref name="local.contractsponsor.attrib"/>
+  </define>
+  <!-- end of contractsponsor.attlist -->
+  <!-- end of contractsponsor.module -->
+  <!-- Copyright ........................ -->
+  <define name="local.copyright.attrib">
+    <empty/>
+  </define>
+  <define name="copyright.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Copyright information about a document. -->
+  <define name="copyright">
+    <element name="copyright">
+      <ref name="copyright.attlist"/>
+      <oneOrMore>
+        <ref name="year"/>
+      </oneOrMore>
+      <zeroOrMore>
+        <ref name="holder"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of copyright.element -->
+  <define name="copyright.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="copyright.role.attrib"/>
+    <ref name="local.copyright.attrib"/>
+  </define>
+  <!-- end of copyright.attlist -->
+  <!-- end of copyright.module -->
+  <define name="local.year.attrib">
+    <empty/>
+  </define>
+  <define name="year.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The year of publication of a document. -->
+  <define name="year">
+    <element name="year">
+      <ref name="year.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of year.element -->
+  <define name="year.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="year.role.attrib"/>
+    <ref name="local.year.attrib"/>
+  </define>
+  <!-- end of year.attlist -->
+  <!-- end of year.module -->
+  <define name="local.holder.attrib">
+    <empty/>
+  </define>
+  <define name="holder.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of the individual or organization that holds a copyright. -->
+  <define name="holder">
+    <element name="holder">
+      <ref name="holder.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of holder.element -->
+  <define name="holder.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="holder.role.attrib"/>
+    <ref name="local.holder.attrib"/>
+  </define>
+  <!-- end of holder.attlist -->
+  <!-- end of holder.module -->
+  <!-- end of copyright.content.module -->
+  <!-- CorpAuthor ....................... -->
+  <define name="local.corpauthor.attrib">
+    <empty/>
+  </define>
+  <define name="corpauthor.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A corporate author, as opposed to an individual. -->
+  <define name="corpauthor">
+    <element name="corpauthor">
+      <ref name="corpauthor.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of corpauthor.element -->
+  <define name="corpauthor.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="corpauthor.role.attrib"/>
+    <ref name="local.corpauthor.attrib"/>
+  </define>
+  <!-- end of corpauthor.attlist -->
+  <!-- end of corpauthor.module -->
+  <!-- CorpCredit ...................... -->
+  <define name="local.corpcredit.attrib">
+    <empty/>
+  </define>
+  <define name="corpcredit.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A corporation or organization credited in a document. -->
+  <define name="corpcredit">
+    <element name="corpcredit">
+      <ref name="corpcredit.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of corpcredit.element -->
+  <define name="corpcredit.attlist" combine="interleave">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>graphicdesigner</value>
+          <value>productioneditor</value>
+          <value>copyeditor</value>
+          <value>technicaleditor</value>
+          <value>translator</value>
+          <value>other</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="corpcredit.role.attrib"/>
+    <ref name="local.corpcredit.attrib"/>
+  </define>
+  <!-- end of corpcredit.attlist -->
+  <!-- end of corpcredit.module -->
+  <!-- CorpName ......................... -->
+  <define name="local.corpname.attrib">
+    <empty/>
+  </define>
+  <!-- doc:The name of a corporation. -->
+  <define name="corpname">
+    <element name="corpname">
+      <ref name="corpname.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of corpname.element -->
+  <define name="corpname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <define name="corpname.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="corpname.role.attrib"/>
+    <ref name="local.corpname.attrib"/>
+  </define>
+  <!-- end of corpname.attlist -->
+  <!-- end of corpname.module -->
+  <!-- Date ............................. -->
+  <define name="local.date.attrib">
+    <empty/>
+  </define>
+  <define name="date.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The date of publication or revision of a document. -->
+  <define name="date">
+    <element name="date">
+      <ref name="date.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of date.element -->
+  <define name="date.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="date.role.attrib"/>
+    <ref name="local.date.attrib"/>
+  </define>
+  <!-- end of date.attlist -->
+  <!-- end of date.module -->
+  <!-- Edition .......................... -->
+  <define name="local.edition.attrib">
+    <empty/>
+  </define>
+  <define name="edition.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name or number of an edition of a document. -->
+  <define name="edition">
+    <element name="edition">
+      <ref name="edition.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of edition.element -->
+  <define name="edition.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="edition.role.attrib"/>
+    <ref name="local.edition.attrib"/>
+  </define>
+  <!-- end of edition.attlist -->
+  <!-- end of edition.module -->
+  <!-- Editor ........................... -->
+  <define name="local.editor.attrib">
+    <empty/>
+  </define>
+  <define name="editor.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of the editor of a document. -->
+  <define name="editor">
+    <element name="editor">
+      <ref name="editor.attlist"/>
+      <choice>
+        <ref name="personname"/>
+        <oneOrMore>
+          <ref name="person.ident.mix"/>
+        </oneOrMore>
+      </choice>
+      <zeroOrMore>
+        <choice>
+          <ref name="personblurb"/>
+          <ref name="email"/>
+          <ref name="address"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of editor.element -->
+  <define name="editor.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="editor.role.attrib"/>
+    <ref name="local.editor.attrib"/>
+  </define>
+  <!-- end of editor.attlist -->
+  <!-- (see "Personal identity elements" for %person.ident.mix;) -->
+  <!-- end of editor.module -->
+  <!-- ISBN ............................. -->
+  <define name="local.isbn.attrib">
+    <empty/>
+  </define>
+  <define name="isbn.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The International Standard Book Number of a document. -->
+  <define name="isbn">
+    <element name="isbn">
+      <ref name="isbn.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of isbn.element -->
+  <define name="isbn.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="isbn.role.attrib"/>
+    <ref name="local.isbn.attrib"/>
+  </define>
+  <!-- end of isbn.attlist -->
+  <!-- end of isbn.module -->
+  <!-- ISSN ............................. -->
+  <define name="local.issn.attrib">
+    <empty/>
+  </define>
+  <define name="issn.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The International Standard Serial Number of a periodical. -->
+  <define name="issn">
+    <element name="issn">
+      <ref name="issn.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of issn.element -->
+  <define name="issn.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="issn.role.attrib"/>
+    <ref name="local.issn.attrib"/>
+  </define>
+  <!-- end of issn.attlist -->
+  <!-- end of issn.module -->
+  <!-- BiblioId ................. -->
+  <define name="biblio.class.attrib">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>uri</value>
+          <value>doi</value>
+          <value>isbn</value>
+          <value>isrn</value>
+          <value>issn</value>
+          <value>libraryofcongress</value>
+          <value>pubnumber</value>
+          <value>other</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="otherclass"/>
+    </optional>
+  </define>
+  <define name="local.biblioid.attrib">
+    <empty/>
+  </define>
+  <define name="biblioid.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An identifier for a document. -->
+  <define name="biblioid">
+    <element name="biblioid">
+      <ref name="biblioid.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of biblioid.element -->
+  <define name="biblioid.attlist" combine="interleave">
+    <ref name="biblio.class.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="biblioid.role.attrib"/>
+    <ref name="local.biblioid.attrib"/>
+  </define>
+  <!-- end of biblioid.attlist -->
+  <!-- end of biblioid.module -->
+  <!-- CiteBiblioId ................. -->
+  <define name="local.citebiblioid.attrib">
+    <empty/>
+  </define>
+  <define name="citebiblioid.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A citation of a bibliographic identifier. -->
+  <define name="citebiblioid">
+    <element name="citebiblioid">
+      <ref name="citebiblioid.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of citebiblioid.element -->
+  <define name="citebiblioid.attlist" combine="interleave">
+    <ref name="biblio.class.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="citebiblioid.role.attrib"/>
+    <ref name="local.citebiblioid.attrib"/>
+  </define>
+  <!-- end of citebiblioid.attlist -->
+  <!-- end of citebiblioid.module -->
+  <!-- BiblioSource ................. -->
+  <define name="local.bibliosource.attrib">
+    <empty/>
+  </define>
+  <define name="bibliosource.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The source of a document. -->
+  <define name="bibliosource">
+    <element name="bibliosource">
+      <ref name="bibliosource.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of bibliosource.element -->
+  <define name="bibliosource.attlist" combine="interleave">
+    <ref name="biblio.class.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="bibliosource.role.attrib"/>
+    <ref name="local.bibliosource.attrib"/>
+  </define>
+  <!-- end of bibliosource.attlist -->
+  <!-- end of bibliosource.module -->
+  <!-- BiblioRelation ................. -->
+  <define name="local.bibliorelation.attrib">
+    <empty/>
+  </define>
+  <define name="local.bibliorelation.types">
+    <notAllowed/>
+  </define>
+  <define name="bibliorelation.type.attrib">
+    <optional>
+      <attribute name="type">
+        <choice>
+          <value>isversionof</value>
+          <value>hasversion</value>
+          <value>isreplacedby</value>
+          <value>replaces</value>
+          <value>isrequiredby</value>
+          <value>requires</value>
+          <value>ispartof</value>
+          <value>haspart</value>
+          <value>isreferencedby</value>
+          <value>references</value>
+          <value>isformatof</value>
+          <value>hasformat</value>
+          <value>othertype</value>
+          <ref name="local.bibliorelation.types"/>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="othertype"/>
+    </optional>
+  </define>
+  <define name="bibliorelation.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The relationship of a document to another. -->
+  <define name="bibliorelation">
+    <element name="bibliorelation">
+      <ref name="bibliorelation.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of bibliorelation.element -->
+  <define name="bibliorelation.attlist" combine="interleave">
+    <ref name="biblio.class.attrib"/>
+    <ref name="bibliorelation.type.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="bibliorelation.role.attrib"/>
+    <ref name="local.bibliorelation.attrib"/>
+  </define>
+  <!-- end of bibliorelation.attlist -->
+  <!-- end of bibliorelation.module -->
+  <!-- BiblioCoverage ................. -->
+  <define name="local.bibliocoverage.attrib">
+    <empty/>
+  </define>
+  <define name="bibliocoverage.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The spatial or temporal coverage of a document. -->
+  <define name="bibliocoverage">
+    <element name="bibliocoverage">
+      <ref name="bibliocoverage.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of bibliocoverage.element -->
+  <define name="bibliocoverage.attlist" combine="interleave">
+    <optional>
+      <attribute name="spatial">
+        <choice>
+          <value>dcmipoint</value>
+          <value>iso3166</value>
+          <value>dcmibox</value>
+          <value>tgn</value>
+          <value>otherspatial</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="otherspatial"/>
+    </optional>
+    <optional>
+      <attribute name="temporal">
+        <choice>
+          <value>dcmiperiod</value>
+          <value>w3c-dtf</value>
+          <value>othertemporal</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="othertemporal"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="bibliocoverage.role.attrib"/>
+    <ref name="local.bibliocoverage.attrib"/>
+  </define>
+  <!-- end of bibliocoverage.attlist -->
+  <!-- end of bibliocoverage.module -->
+  <!-- InvPartNumber .................... -->
+  <define name="local.invpartnumber.attrib">
+    <empty/>
+  </define>
+  <define name="invpartnumber.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An inventory part number. -->
+  <define name="invpartnumber">
+    <element name="invpartnumber">
+      <ref name="invpartnumber.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of invpartnumber.element -->
+  <define name="invpartnumber.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="invpartnumber.role.attrib"/>
+    <ref name="local.invpartnumber.attrib"/>
+  </define>
+  <!-- end of invpartnumber.attlist -->
+  <!-- end of invpartnumber.module -->
+  <!-- IssueNum ......................... -->
+  <define name="local.issuenum.attrib">
+    <empty/>
+  </define>
+  <define name="issuenum.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The number of an issue of a journal. -->
+  <define name="issuenum">
+    <element name="issuenum">
+      <ref name="issuenum.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of issuenum.element -->
+  <define name="issuenum.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="issuenum.role.attrib"/>
+    <ref name="local.issuenum.attrib"/>
+  </define>
+  <!-- end of issuenum.attlist -->
+  <!-- end of issuenum.module -->
+  <!-- LegalNotice ...................... -->
+  <define name="local.legalnotice.attrib">
+    <empty/>
+  </define>
+  <define name="legalnotice.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A statement of legal obligations or requirements. -->
+  <define name="legalnotice">
+    <element name="legalnotice">
+      <ref name="legalnotice.attlist"/>
+      <optional>
+        <ref name="blockinfo"/>
+      </optional>
+      <optional>
+        <ref name="title"/>
+      </optional>
+      <oneOrMore>
+        <ref name="legalnotice.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of legalnotice.element -->
+  <define name="legalnotice.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="legalnotice.role.attrib"/>
+    <ref name="local.legalnotice.attrib"/>
+  </define>
+  <!-- end of legalnotice.attlist -->
+  <!-- end of legalnotice.module -->
+  <!-- ModeSpec ......................... -->
+  <define name="local.modespec.attrib">
+    <empty/>
+  </define>
+  <define name="modespec.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Application-specific information necessary for the completion of an OLink. -->
+  <define name="modespec">
+    <element name="modespec">
+      <ref name="modespec.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of modespec.element -->
+  <!--
+    Application: Type of action required for completion
+    of the links to which the ModeSpec is relevant (e.g.,
+    retrieval query)
+  -->
+  <define name="modespec.attlist" combine="interleave">
+    <optional>
+      <attribute name="application">
+        <choice>
+          <ref name="notation.class"/>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="modespec.role.attrib"/>
+    <ref name="local.modespec.attrib"/>
+  </define>
+  <!-- end of modespec.attlist -->
+  <!-- end of modespec.module -->
+  <!-- OrgName .......................... -->
+  <define name="local.orgname.attrib">
+    <empty/>
+  </define>
+  <define name="orgname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of an organization other than a corporation. -->
+  <define name="orgname">
+    <element name="orgname">
+      <ref name="orgname.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of orgname.element -->
+  <define name="orgname.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>corporation</value>
+          <value>nonprofit</value>
+          <value>consortium</value>
+          <value>informal</value>
+          <value>other</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="otherclass"/>
+    </optional>
+    <ref name="orgname.role.attrib"/>
+    <ref name="local.orgname.attrib"/>
+  </define>
+  <!-- end of orgname.attlist -->
+  <!-- end of orgname.module -->
+  <!-- OtherCredit ...................... -->
+  <define name="local.othercredit.attrib">
+    <empty/>
+  </define>
+  <define name="othercredit.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A person or entity, other than an author or editor, credited in a document. -->
+  <define name="othercredit">
+    <element name="othercredit">
+      <ref name="othercredit.attlist"/>
+      <choice>
+        <ref name="personname"/>
+        <oneOrMore>
+          <ref name="person.ident.mix"/>
+        </oneOrMore>
+      </choice>
+      <zeroOrMore>
+        <choice>
+          <ref name="personblurb"/>
+          <ref name="email"/>
+          <ref name="address"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of othercredit.element -->
+  <define name="othercredit.attlist" combine="interleave">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>graphicdesigner</value>
+          <value>productioneditor</value>
+          <value>copyeditor</value>
+          <value>technicaleditor</value>
+          <value>translator</value>
+          <value>other</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="othercredit.role.attrib"/>
+    <ref name="local.othercredit.attrib"/>
+  </define>
+  <!-- end of othercredit.attlist -->
+  <!-- (see "Personal identity elements" for %person.ident.mix;) -->
+  <!-- end of othercredit.module -->
+  <!-- PageNums ......................... -->
+  <define name="local.pagenums.attrib">
+    <empty/>
+  </define>
+  <define name="pagenums.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The numbers of the pages in a book, for use in a bibliographic entry. -->
+  <define name="pagenums">
+    <element name="pagenums">
+      <ref name="pagenums.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of pagenums.element -->
+  <define name="pagenums.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="pagenums.role.attrib"/>
+    <ref name="local.pagenums.attrib"/>
+  </define>
+  <!-- end of pagenums.attlist -->
+  <!-- end of pagenums.module -->
+  <!-- Personal identity elements ....... -->
+  <!--
+    These elements are used only within Author, Editor, and
+    OtherCredit.
+  -->
+  <define name="local.contrib.attrib">
+    <empty/>
+  </define>
+  <define name="contrib.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A summary of the contributions made to a document by a credited source. -->
+  <define name="contrib">
+    <element name="contrib">
+      <ref name="contrib.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of contrib.element -->
+  <define name="contrib.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="contrib.role.attrib"/>
+    <ref name="local.contrib.attrib"/>
+  </define>
+  <!-- end of contrib.attlist -->
+  <!-- end of contrib.module -->
+  <define name="local.firstname.attrib">
+    <empty/>
+  </define>
+  <define name="firstname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The first name of a person. -->
+  <define name="firstname">
+    <element name="firstname">
+      <ref name="firstname.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of firstname.element -->
+  <define name="firstname.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="firstname.role.attrib"/>
+    <ref name="local.firstname.attrib"/>
+  </define>
+  <!-- end of firstname.attlist -->
+  <!-- end of firstname.module -->
+  <define name="local.honorific.attrib">
+    <empty/>
+  </define>
+  <define name="honorific.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The title of a person. -->
+  <define name="honorific">
+    <element name="honorific">
+      <ref name="honorific.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of honorific.element -->
+  <define name="honorific.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="honorific.role.attrib"/>
+    <ref name="local.honorific.attrib"/>
+  </define>
+  <!-- end of honorific.attlist -->
+  <!-- end of honorific.module -->
+  <define name="local.lineage.attrib">
+    <empty/>
+  </define>
+  <define name="lineage.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The portion of a person's name indicating a relationship to ancestors. -->
+  <define name="lineage">
+    <element name="lineage">
+      <ref name="lineage.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of lineage.element -->
+  <define name="lineage.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="lineage.role.attrib"/>
+    <ref name="local.lineage.attrib"/>
+  </define>
+  <!-- end of lineage.attlist -->
+  <!-- end of lineage.module -->
+  <define name="local.othername.attrib">
+    <empty/>
+  </define>
+  <define name="othername.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A component of a persons name that is not a first name, surname, or lineage. -->
+  <define name="othername">
+    <element name="othername">
+      <ref name="othername.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of othername.element -->
+  <define name="othername.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="othername.role.attrib"/>
+    <ref name="local.othername.attrib"/>
+  </define>
+  <!-- end of othername.attlist -->
+  <!-- end of othername.module -->
+  <define name="local.surname.attrib">
+    <empty/>
+  </define>
+  <define name="surname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A family name; in western cultures the last name. -->
+  <define name="surname">
+    <element name="surname">
+      <ref name="surname.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of surname.element -->
+  <define name="surname.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="surname.role.attrib"/>
+    <ref name="local.surname.attrib"/>
+  </define>
+  <!-- end of surname.attlist -->
+  <!-- end of surname.module -->
+  <!-- end of person.ident.module -->
+  <!-- PrintHistory ..................... -->
+  <define name="local.printhistory.attrib">
+    <empty/>
+  </define>
+  <define name="printhistory.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The printing history of a document. -->
+  <define name="printhistory">
+    <element name="printhistory">
+      <ref name="printhistory.attlist"/>
+      <oneOrMore>
+        <ref name="para.class"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of printhistory.element -->
+  <define name="printhistory.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="printhistory.role.attrib"/>
+    <ref name="local.printhistory.attrib"/>
+  </define>
+  <!-- end of printhistory.attlist -->
+  <!-- end of printhistory.module -->
+  <!-- ProductName ...................... -->
+  <define name="local.productname.attrib">
+    <empty/>
+  </define>
+  <define name="productname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The formal name of a product. -->
+  <define name="productname">
+    <element name="productname">
+      <ref name="productname.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of productname.element -->
+  <!-- Class: More precisely identifies the item the element names -->
+  <define name="productname.attlist" combine="interleave">
+    <optional>
+      <attribute name="class" a:defaultValue="trade">
+        <choice>
+          <value>service</value>
+          <value>trade</value>
+          <value>registered</value>
+          <value>copyright</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="productname.role.attrib"/>
+    <ref name="local.productname.attrib"/>
+  </define>
+  <!-- end of productname.attlist -->
+  <!-- end of productname.module -->
+  <!-- ProductNumber .................... -->
+  <define name="local.productnumber.attrib">
+    <empty/>
+  </define>
+  <define name="productnumber.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A number assigned to a product. -->
+  <define name="productnumber">
+    <element name="productnumber">
+      <ref name="productnumber.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of productnumber.element -->
+  <define name="productnumber.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="productnumber.role.attrib"/>
+    <ref name="local.productnumber.attrib"/>
+  </define>
+  <!-- end of productnumber.attlist -->
+  <!-- end of productnumber.module -->
+  <!-- PubDate .......................... -->
+  <define name="local.pubdate.attrib">
+    <empty/>
+  </define>
+  <define name="pubdate.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The date of publication of a document. -->
+  <define name="pubdate">
+    <element name="pubdate">
+      <ref name="pubdate.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of pubdate.element -->
+  <define name="pubdate.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="pubdate.role.attrib"/>
+    <ref name="local.pubdate.attrib"/>
+  </define>
+  <!-- end of pubdate.attlist -->
+  <!-- end of pubdate.module -->
+  <!-- Publisher ........................ -->
+  <define name="local.publisher.attrib">
+    <empty/>
+  </define>
+  <define name="publisher.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The publisher of a document. -->
+  <define name="publisher">
+    <element name="publisher">
+      <ref name="publisher.attlist"/>
+      <ref name="publishername"/>
+      <zeroOrMore>
+        <ref name="address"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of publisher.element -->
+  <define name="publisher.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="publisher.role.attrib"/>
+    <ref name="local.publisher.attrib"/>
+  </define>
+  <!-- end of publisher.attlist -->
+  <!-- end of publisher.module -->
+  <define name="local.publishername.attrib">
+    <empty/>
+  </define>
+  <define name="publishername.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of the publisher of a document. -->
+  <define name="publishername">
+    <element name="publishername">
+      <ref name="publishername.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of publishername.element -->
+  <define name="publishername.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="publishername.role.attrib"/>
+    <ref name="local.publishername.attrib"/>
+  </define>
+  <!-- end of publishername.attlist -->
+  <!-- end of publishername.module -->
+  <!--  Address (defined elsewhere in this section) -->
+  <!-- end of publisher.content.module -->
+  <!-- PubsNumber ....................... -->
+  <define name="local.pubsnumber.attrib">
+    <empty/>
+  </define>
+  <define name="pubsnumber.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A number assigned to a publication other than an ISBN or ISSN or inventory part number. -->
+  <define name="pubsnumber">
+    <element name="pubsnumber">
+      <ref name="pubsnumber.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of pubsnumber.element -->
+  <define name="pubsnumber.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="pubsnumber.role.attrib"/>
+    <ref name="local.pubsnumber.attrib"/>
+  </define>
+  <!-- end of pubsnumber.attlist -->
+  <!-- end of pubsnumber.module -->
+  <!-- ReleaseInfo ...................... -->
+  <define name="local.releaseinfo.attrib">
+    <empty/>
+  </define>
+  <define name="releaseinfo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Information about a particular release of a document. -->
+  <define name="releaseinfo">
+    <element name="releaseinfo">
+      <ref name="releaseinfo.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of releaseinfo.element -->
+  <define name="releaseinfo.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="releaseinfo.role.attrib"/>
+    <ref name="local.releaseinfo.attrib"/>
+  </define>
+  <!-- end of releaseinfo.attlist -->
+  <!-- end of releaseinfo.module -->
+  <!-- RevHistory ....................... -->
+  <define name="local.revhistory.attrib">
+    <empty/>
+  </define>
+  <define name="revhistory.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A history of the revisions to a document. -->
+  <define name="revhistory">
+    <element name="revhistory">
+      <ref name="revhistory.attlist"/>
+      <oneOrMore>
+        <ref name="revision"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of revhistory.element -->
+  <define name="revhistory.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="revhistory.role.attrib"/>
+    <ref name="local.revhistory.attrib"/>
+  </define>
+  <!-- end of revhistory.attlist -->
+  <!-- end of revhistory.module -->
+  <define name="local.revision.attrib">
+    <empty/>
+  </define>
+  <define name="revision.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An entry describing a single revision in the history of the revisions to a document. -->
+  <define name="revision">
+    <element name="revision">
+      <ref name="revision.attlist"/>
+      <optional>
+        <ref name="revnumber"/>
+      </optional>
+      <ref name="date"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="author"/>
+          <ref name="authorinitials"/>
+        </choice>
+      </zeroOrMore>
+      <optional>
+        <choice>
+          <ref name="revremark"/>
+          <ref name="revdescription"/>
+        </choice>
+      </optional>
+    </element>
+  </define>
+  <!-- end of revision.element -->
+  <define name="revision.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="revision.role.attrib"/>
+    <ref name="local.revision.attrib"/>
+  </define>
+  <!-- end of revision.attlist -->
+  <!-- end of revision.module -->
+  <define name="local.revnumber.attrib">
+    <empty/>
+  </define>
+  <define name="revnumber.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A document revision number. -->
+  <define name="revnumber">
+    <element name="revnumber">
+      <ref name="revnumber.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of revnumber.element -->
+  <define name="revnumber.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="revnumber.role.attrib"/>
+    <ref name="local.revnumber.attrib"/>
+  </define>
+  <!-- end of revnumber.attlist -->
+  <!-- end of revnumber.module -->
+  <!--  Date (defined elsewhere in this section) -->
+  <!--  AuthorInitials (defined elsewhere in this section) -->
+  <define name="local.revremark.attrib">
+    <empty/>
+  </define>
+  <define name="revremark.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A description of a revision to a document. -->
+  <define name="revremark">
+    <element name="revremark">
+      <ref name="revremark.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of revremark.element -->
+  <define name="revremark.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="revremark.role.attrib"/>
+    <ref name="local.revremark.attrib"/>
+  </define>
+  <!-- end of revremark.attlist -->
+  <!-- end of revremark.module -->
+  <define name="local.revdescription.attrib">
+    <empty/>
+  </define>
+  <define name="revdescription.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A extended description of a revision to a document. -->
+  <define name="revdescription">
+    <element name="revdescription">
+      <ref name="revdescription.attlist"/>
+      <oneOrMore>
+        <ref name="revdescription.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of revdescription.element -->
+  <define name="revdescription.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="revdescription.role.attrib"/>
+    <ref name="local.revdescription.attrib"/>
+  </define>
+  <!-- end of revdescription.attlist -->
+  <!-- end of revdescription.module -->
+  <!-- end of revhistory.content.module -->
+  <!-- SeriesVolNums .................... -->
+  <define name="local.seriesvolnums.attrib">
+    <empty/>
+  </define>
+  <define name="seriesvolnums.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Numbers of the volumes in a series of books. -->
+  <define name="seriesvolnums">
+    <element name="seriesvolnums">
+      <ref name="seriesvolnums.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of seriesvolnums.element -->
+  <define name="seriesvolnums.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="seriesvolnums.role.attrib"/>
+    <ref name="local.seriesvolnums.attrib"/>
+  </define>
+  <!-- end of seriesvolnums.attlist -->
+  <!-- end of seriesvolnums.module -->
+  <!-- VolumeNum ........................ -->
+  <define name="local.volumenum.attrib">
+    <empty/>
+  </define>
+  <define name="volumenum.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The volume number of a document in a set (as of books in a set or articles in a journal). -->
+  <define name="volumenum">
+    <element name="volumenum">
+      <ref name="volumenum.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of volumenum.element -->
+  <define name="volumenum.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="volumenum.role.attrib"/>
+    <ref name="local.volumenum.attrib"/>
+  </define>
+  <!-- end of volumenum.attlist -->
+  <!-- end of volumenum.module -->
+  <!-- .................................. -->
+  <!-- end of docinfo.content.module -->
+  <!-- ...................................................................... -->
+  <!-- Inline, link, and ubiquitous elements ................................ -->
+  <!-- Technical and computer terms ......................................... -->
+  <define name="local.accel.attrib">
+    <empty/>
+  </define>
+  <define name="accel.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A graphical user interface (GUI) keyboard shortcut. -->
+  <define name="accel">
+    <element name="accel">
+      <ref name="accel.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of accel.element -->
+  <define name="accel.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="accel.role.attrib"/>
+    <ref name="local.accel.attrib"/>
+  </define>
+  <!-- end of accel.attlist -->
+  <!-- end of accel.module -->
+  <define name="local.action.attrib">
+    <empty/>
+  </define>
+  <define name="action.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A response to a user event. -->
+  <define name="action">
+    <element name="action">
+      <ref name="action.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of action.element -->
+  <define name="action.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="action.role.attrib"/>
+    <ref name="local.action.attrib"/>
+  </define>
+  <!-- end of action.attlist -->
+  <!-- end of action.module -->
+  <define name="local.application.attrib">
+    <empty/>
+  </define>
+  <define name="application.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a software program. -->
+  <define name="application">
+    <element name="application">
+      <ref name="application.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of application.element -->
+  <define name="application.attlist" combine="interleave">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>hardware</value>
+          <value>software</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="application.role.attrib"/>
+    <ref name="local.application.attrib"/>
+  </define>
+  <!-- end of application.attlist -->
+  <!-- end of application.module -->
+  <define name="local.classname.attrib">
+    <empty/>
+  </define>
+  <define name="classname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a class, in the object-oriented programming sense. -->
+  <define name="classname">
+    <element name="classname">
+      <ref name="classname.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of classname.element -->
+  <define name="classname.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="classname.role.attrib"/>
+    <ref name="local.classname.attrib"/>
+  </define>
+  <!-- end of classname.attlist -->
+  <!-- end of classname.module -->
+  <define name="local.package.attrib">
+    <empty/>
+  </define>
+  <define name="package.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A package. -->
+  <define name="package">
+    <element name="package">
+      <ref name="package.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of package.element -->
+  <define name="package.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="package.role.attrib"/>
+    <ref name="local.package.attrib"/>
+  </define>
+  <!-- end of package.attlist -->
+  <!-- end of package.module -->
+  <define name="local.co.attrib">
+    <empty/>
+  </define>
+  <!--
+    CO is a callout area of the LineColumn unit type (a single character
+    position); the position is directly indicated by the location of CO.
+  -->
+  <define name="co.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The location of a callout embedded in text. -->
+  <define name="co">
+    <element name="co">
+      <ref name="co.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of co.element -->
+  <!-- bug number/symbol override or initialization -->
+  <!-- to any related information -->
+  <define name="co.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="linkends.attrib"/>
+    <ref name="idreq.common.attrib"/>
+    <ref name="co.role.attrib"/>
+    <ref name="local.co.attrib"/>
+  </define>
+  <!-- end of co.attlist -->
+  <!-- end of co.module -->
+  <define name="local.coref.attrib">
+    <empty/>
+  </define>
+  <!-- COREF is a reference to a CO -->
+  <define name="coref.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A cross reference to a co. -->
+  <define name="coref">
+    <element name="coref">
+      <ref name="coref.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of coref.element -->
+  <!-- bug number/symbol override or initialization -->
+  <!-- to any related information -->
+  <define name="coref.attlist" combine="interleave">
+    <ref name="label.attrib"/>
+    <ref name="linkendreq.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="coref.role.attrib"/>
+    <ref name="local.coref.attrib"/>
+  </define>
+  <!-- end of coref.attlist -->
+  <!-- end of coref.module -->
+  <define name="local.command.attrib">
+    <empty/>
+  </define>
+  <define name="command.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of an executable program or other software command. -->
+  <define name="command">
+    <element name="command">
+      <ref name="command.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of command.element -->
+  <define name="command.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="command.role.attrib"/>
+    <ref name="local.command.attrib"/>
+  </define>
+  <!-- end of command.attlist -->
+  <!-- end of command.module -->
+  <define name="local.computeroutput.attrib">
+    <empty/>
+  </define>
+  <define name="computeroutput.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Data, generally text, displayed or presented by a computer. -->
+  <define name="computeroutput">
+    <element name="computeroutput">
+      <ref name="computeroutput.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="cptr.char.mix"/>
+          <ref name="co"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of computeroutput.element -->
+  <define name="computeroutput.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="computeroutput.role.attrib"/>
+    <ref name="local.computeroutput.attrib"/>
+  </define>
+  <!-- end of computeroutput.attlist -->
+  <!-- end of computeroutput.module -->
+  <define name="local.database.attrib">
+    <empty/>
+  </define>
+  <define name="database.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a database, or part of a database. -->
+  <define name="database">
+    <element name="database">
+      <ref name="database.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of database.element -->
+  <!-- Class: Type of database the element names; no default -->
+  <define name="database.attlist" combine="interleave">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>name</value>
+          <value>table</value>
+          <value>field</value>
+          <value>key1</value>
+          <value>key2</value>
+          <value>record</value>
+          <value>index</value>
+          <value>view</value>
+          <value>primarykey</value>
+          <value>secondarykey</value>
+          <value>foreignkey</value>
+          <value>altkey</value>
+          <value>procedure</value>
+          <value>datatype</value>
+          <value>constraint</value>
+          <value>rule</value>
+          <value>user</value>
+          <value>group</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="database.role.attrib"/>
+    <ref name="local.database.attrib"/>
+  </define>
+  <!-- end of database.attlist -->
+  <!-- end of database.module -->
+  <define name="local.email.attrib">
+    <empty/>
+  </define>
+  <define name="email.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An email address. -->
+  <define name="email">
+    <element name="email">
+      <ref name="email.attlist"/>
+      <zeroOrMore>
+        <ref name="docinfo.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of email.element -->
+  <define name="email.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="email.role.attrib"/>
+    <ref name="local.email.attrib"/>
+  </define>
+  <!-- end of email.attlist -->
+  <!-- end of email.module -->
+  <define name="local.envar.attrib">
+    <empty/>
+  </define>
+  <define name="envar.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A software environment variable. -->
+  <define name="envar">
+    <element name="envar">
+      <ref name="envar.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of envar.element -->
+  <define name="envar.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="envar.role.attrib"/>
+    <ref name="local.envar.attrib"/>
+  </define>
+  <!-- end of envar.attlist -->
+  <!-- end of envar.module -->
+  <define name="local.errorcode.attrib">
+    <empty/>
+  </define>
+  <define name="errorcode.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An error code. -->
+  <define name="errorcode">
+    <element name="errorcode">
+      <ref name="errorcode.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of errorcode.element -->
+  <define name="errorcode.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="errorcode.role.attrib"/>
+    <ref name="local.errorcode.attrib"/>
+  </define>
+  <!-- end of errorcode.attlist -->
+  <!-- end of errorcode.module -->
+  <define name="local.errorname.attrib">
+    <empty/>
+  </define>
+  <define name="errorname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An error name. -->
+  <define name="errorname">
+    <element name="errorname">
+      <ref name="errorname.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of errorname.element -->
+  <define name="errorname.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="errorname.role.attrib"/>
+    <ref name="local.errorname.attrib"/>
+  </define>
+  <!-- end of errorname.attlist -->
+  <!-- end of errorname.module -->
+  <define name="local.errortext.attrib">
+    <empty/>
+  </define>
+  <define name="errortext.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An error message.. -->
+  <define name="errortext">
+    <element name="errortext">
+      <ref name="errortext.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of errortext.element -->
+  <define name="errortext.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="errortext.role.attrib"/>
+    <ref name="local.errortext.attrib"/>
+  </define>
+  <!-- end of errortext.attlist -->
+  <!-- end of errortext.module -->
+  <define name="local.errortype.attrib">
+    <empty/>
+  </define>
+  <define name="errortype.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The classification of an error message. -->
+  <define name="errortype">
+    <element name="errortype">
+      <ref name="errortype.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of errortype.element -->
+  <define name="errortype.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="errortype.role.attrib"/>
+    <ref name="local.errortype.attrib"/>
+  </define>
+  <!-- end of errortype.attlist -->
+  <!-- end of errortype.module -->
+  <define name="local.filename.attrib">
+    <empty/>
+  </define>
+  <define name="filename.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a file. -->
+  <define name="filename">
+    <element name="filename">
+      <ref name="filename.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- 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
+  -->
+  <define name="filename.attlist" combine="interleave">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>headerfile</value>
+          <value>partition</value>
+          <value>devicefile</value>
+          <value>libraryfile</value>
+          <value>directory</value>
+          <value>extension</value>
+          <value>symlink</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="path"/>
+    </optional>
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="filename.role.attrib"/>
+    <ref name="local.filename.attrib"/>
+  </define>
+  <!-- end of filename.attlist -->
+  <!-- end of filename.module -->
+  <define name="local.function.attrib">
+    <empty/>
+  </define>
+  <define name="function.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a function or subroutine, as in a programming language. -->
+  <define name="function">
+    <element name="function">
+      <ref name="function.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of function.element -->
+  <define name="function.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="function.role.attrib"/>
+    <ref name="local.function.attrib"/>
+  </define>
+  <!-- end of function.attlist -->
+  <!-- end of function.module -->
+  <define name="local.guibutton.attrib">
+    <empty/>
+  </define>
+  <define name="guibutton.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The text on a button in a GUI. -->
+  <define name="guibutton">
+    <element name="guibutton">
+      <ref name="guibutton.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="smallcptr.char.mix"/>
+          <ref name="accel"/>
+          <ref name="superscript"/>
+          <ref name="subscript"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of guibutton.element -->
+  <define name="guibutton.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="guibutton.role.attrib"/>
+    <ref name="local.guibutton.attrib"/>
+  </define>
+  <!-- end of guibutton.attlist -->
+  <!-- end of guibutton.module -->
+  <define name="local.guiicon.attrib">
+    <empty/>
+  </define>
+  <define name="guiicon.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Graphic and/or text appearing as a icon in a GUI. -->
+  <define name="guiicon">
+    <element name="guiicon">
+      <ref name="guiicon.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="smallcptr.char.mix"/>
+          <ref name="accel"/>
+          <ref name="superscript"/>
+          <ref name="subscript"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of guiicon.element -->
+  <define name="guiicon.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="guiicon.role.attrib"/>
+    <ref name="local.guiicon.attrib"/>
+  </define>
+  <!-- end of guiicon.attlist -->
+  <!-- end of guiicon.module -->
+  <define name="local.guilabel.attrib">
+    <empty/>
+  </define>
+  <define name="guilabel.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The text of a label in a GUI. -->
+  <define name="guilabel">
+    <element name="guilabel">
+      <ref name="guilabel.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="smallcptr.char.mix"/>
+          <ref name="accel"/>
+          <ref name="superscript"/>
+          <ref name="subscript"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of guilabel.element -->
+  <define name="guilabel.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="guilabel.role.attrib"/>
+    <ref name="local.guilabel.attrib"/>
+  </define>
+  <!-- end of guilabel.attlist -->
+  <!-- end of guilabel.module -->
+  <define name="local.guimenu.attrib">
+    <empty/>
+  </define>
+  <define name="guimenu.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a menu in a GUI. -->
+  <define name="guimenu">
+    <element name="guimenu">
+      <ref name="guimenu.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="smallcptr.char.mix"/>
+          <ref name="accel"/>
+          <ref name="superscript"/>
+          <ref name="subscript"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of guimenu.element -->
+  <define name="guimenu.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="guimenu.role.attrib"/>
+    <ref name="local.guimenu.attrib"/>
+  </define>
+  <!-- end of guimenu.attlist -->
+  <!-- end of guimenu.module -->
+  <define name="local.guimenuitem.attrib">
+    <empty/>
+  </define>
+  <define name="guimenuitem.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a terminal menu item in a GUI. -->
+  <define name="guimenuitem">
+    <element name="guimenuitem">
+      <ref name="guimenuitem.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="smallcptr.char.mix"/>
+          <ref name="accel"/>
+          <ref name="superscript"/>
+          <ref name="subscript"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of guimenuitem.element -->
+  <define name="guimenuitem.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="guimenuitem.role.attrib"/>
+    <ref name="local.guimenuitem.attrib"/>
+  </define>
+  <!-- end of guimenuitem.attlist -->
+  <!-- end of guimenuitem.module -->
+  <define name="local.guisubmenu.attrib">
+    <empty/>
+  </define>
+  <define name="guisubmenu.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a submenu in a GUI. -->
+  <define name="guisubmenu">
+    <element name="guisubmenu">
+      <ref name="guisubmenu.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="smallcptr.char.mix"/>
+          <ref name="accel"/>
+          <ref name="superscript"/>
+          <ref name="subscript"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of guisubmenu.element -->
+  <define name="guisubmenu.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="guisubmenu.role.attrib"/>
+    <ref name="local.guisubmenu.attrib"/>
+  </define>
+  <!-- end of guisubmenu.attlist -->
+  <!-- end of guisubmenu.module -->
+  <define name="local.hardware.attrib">
+    <empty/>
+  </define>
+  <define name="hardware.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A physical part of a computer system. -->
+  <define name="hardware">
+    <element name="hardware">
+      <ref name="hardware.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of hardware.element -->
+  <define name="hardware.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="hardware.role.attrib"/>
+    <ref name="local.hardware.attrib"/>
+  </define>
+  <!-- end of hardware.attlist -->
+  <!-- end of hardware.module -->
+  <define name="local.interface.attrib">
+    <empty/>
+  </define>
+  <define name="interface.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An element of a GUI. -->
+  <define name="interface">
+    <element name="interface">
+      <ref name="interface.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="smallcptr.char.mix"/>
+          <ref name="accel"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of interface.element -->
+  <!-- Class: Type of the Interface item; no default -->
+  <define name="interface.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="interface.role.attrib"/>
+    <ref name="local.interface.attrib"/>
+  </define>
+  <!-- end of interface.attlist -->
+  <!-- end of interface.module -->
+  <define name="local.keycap.attrib">
+    <empty/>
+  </define>
+  <define name="keycap.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The text printed on a key on a keyboard. -->
+  <define name="keycap">
+    <element name="keycap">
+      <ref name="keycap.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of keycap.element -->
+  <define name="keycap.attlist" combine="interleave">
+    <optional>
+      <attribute name="function">
+        <choice>
+          <value>alt</value>
+          <value>control</value>
+          <value>shift</value>
+          <value>meta</value>
+          <value>escape</value>
+          <value>enter</value>
+          <value>tab</value>
+          <value>backspace</value>
+          <value>command</value>
+          <value>option</value>
+          <value>space</value>
+          <value>delete</value>
+          <value>insert</value>
+          <value>up</value>
+          <value>down</value>
+          <value>left</value>
+          <value>right</value>
+          <value>home</value>
+          <value>end</value>
+          <value>pageup</value>
+          <value>pagedown</value>
+          <value>other</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="otherfunction"/>
+    </optional>
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="keycap.role.attrib"/>
+    <ref name="local.keycap.attrib"/>
+  </define>
+  <!-- end of keycap.attlist -->
+  <!-- end of keycap.module -->
+  <define name="local.keycode.attrib">
+    <empty/>
+  </define>
+  <define name="keycode.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The internal, frequently numeric, identifier for a key on a keyboard. -->
+  <define name="keycode">
+    <element name="keycode">
+      <ref name="keycode.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of keycode.element -->
+  <define name="keycode.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="keycode.role.attrib"/>
+    <ref name="local.keycode.attrib"/>
+  </define>
+  <!-- end of keycode.attlist -->
+  <!-- end of keycode.module -->
+  <define name="local.keycombo.attrib">
+    <empty/>
+  </define>
+  <define name="keycombo.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A combination of input actions. -->
+  <define name="keycombo">
+    <element name="keycombo">
+      <ref name="keycombo.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="keycap"/>
+          <ref name="keycombo"/>
+          <ref name="keysym"/>
+          <ref name="mousebutton"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of keycombo.element -->
+  <define name="keycombo.attlist" combine="interleave">
+    <ref name="keyaction.attrib"/>
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="keycombo.role.attrib"/>
+    <ref name="local.keycombo.attrib"/>
+  </define>
+  <!-- end of keycombo.attlist -->
+  <!-- end of keycombo.module -->
+  <define name="local.keysym.attrib">
+    <empty/>
+  </define>
+  <define name="keysysm.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The symbolic name of a key on a keyboard. -->
+  <define name="keysym">
+    <element name="keysym">
+      <ref name="keysym.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of keysym.element -->
+  <define name="keysym.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="keysysm.role.attrib"/>
+    <ref name="local.keysym.attrib"/>
+  </define>
+  <!-- end of keysym.attlist -->
+  <!-- end of keysym.module -->
+  <define name="local.lineannotation.attrib">
+    <empty/>
+  </define>
+  <define name="lineannotation.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A comment on a line in a verbatim listing. -->
+  <define name="lineannotation">
+    <element name="lineannotation">
+      <ref name="lineannotation.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of lineannotation.element -->
+  <define name="lineannotation.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="lineannotation.role.attrib"/>
+    <ref name="local.lineannotation.attrib"/>
+  </define>
+  <!-- end of lineannotation.attlist -->
+  <!-- end of lineannotation.module -->
+  <define name="local.literal.attrib">
+    <empty/>
+  </define>
+  <define name="literal.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Inline text that is some literal value. -->
+  <define name="literal">
+    <element name="literal">
+      <ref name="literal.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of literal.element -->
+  <define name="literal.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="literal.role.attrib"/>
+    <ref name="local.literal.attrib"/>
+  </define>
+  <!-- end of literal.attlist -->
+  <!-- end of literal.module -->
+  <define name="local.code.attrib">
+    <empty/>
+  </define>
+  <define name="code.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An inline code fragment. -->
+  <define name="code">
+    <element name="code">
+      <ref name="code.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of code.element -->
+  <define name="code.attlist" combine="interleave">
+    <optional>
+      <attribute name="language"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="code.role.attrib"/>
+    <ref name="local.code.attrib"/>
+  </define>
+  <!-- end of code.attlist -->
+  <!-- end of code.module -->
+  <define name="local.constant.attrib">
+    <empty/>
+  </define>
+  <define name="constant.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A programming or system constant. -->
+  <define name="constant">
+    <element name="constant">
+      <ref name="constant.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of constant.element -->
+  <define name="constant.attlist" combine="interleave">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>limit</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="constant.role.attrib"/>
+    <ref name="local.constant.attrib"/>
+  </define>
+  <!-- end of constant.attlist -->
+  <!-- end of constant.module -->
+  <define name="local.varname.attrib">
+    <empty/>
+  </define>
+  <define name="varname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a variable. -->
+  <define name="varname">
+    <element name="varname">
+      <ref name="varname.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of varname.element -->
+  <define name="varname.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="varname.role.attrib"/>
+    <ref name="local.varname.attrib"/>
+  </define>
+  <!-- end of varname.attlist -->
+  <!-- end of varname.module -->
+  <define name="local.markup.attrib">
+    <empty/>
+  </define>
+  <define name="markup.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A string of formatting markup in text that is to be represented literally. -->
+  <define name="markup">
+    <element name="markup">
+      <ref name="markup.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of markup.element -->
+  <define name="markup.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="markup.role.attrib"/>
+    <ref name="local.markup.attrib"/>
+  </define>
+  <!-- end of markup.attlist -->
+  <!-- end of markup.module -->
+  <define name="local.medialabel.attrib">
+    <empty/>
+  </define>
+  <define name="medialabel.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A name that identifies the physical medium on which some information resides. -->
+  <define name="medialabel">
+    <element name="medialabel">
+      <ref name="medialabel.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of medialabel.element -->
+  <!-- Class: Type of medium named by the element; no default -->
+  <define name="medialabel.attlist" combine="interleave">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>cartridge</value>
+          <value>cdrom</value>
+          <value>disk</value>
+          <value>tape</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="medialabel.role.attrib"/>
+    <ref name="local.medialabel.attrib"/>
+  </define>
+  <!-- end of medialabel.attlist -->
+  <!-- end of medialabel.module -->
+  <define name="local.menuchoice.attrib">
+    <empty/>
+  </define>
+  <define name="menuchoice.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A selection or series of selections from a menu. -->
+  <define name="menuchoice">
+    <element name="menuchoice">
+      <ref name="menuchoice.attlist"/>
+      <optional>
+        <ref name="shortcut"/>
+      </optional>
+      <oneOrMore>
+        <choice>
+          <ref name="guibutton"/>
+          <ref name="guiicon"/>
+          <ref name="guilabel"/>
+          <ref name="guimenu"/>
+          <ref name="guimenuitem"/>
+          <ref name="guisubmenu"/>
+          <ref name="interface"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of menuchoice.element -->
+  <define name="menuchoice.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="menuchoice.role.attrib"/>
+    <ref name="local.menuchoice.attrib"/>
+  </define>
+  <!-- end of menuchoice.attlist -->
+  <!-- end of menuchoice.module -->
+  <!-- See also KeyCombo -->
+  <define name="local.shortcut.attrib">
+    <empty/>
+  </define>
+  <define name="shortcut.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A key combination for an action that is also accessible through a menu. -->
+  <define name="shortcut">
+    <element name="shortcut">
+      <ref name="shortcut.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="keycap"/>
+          <ref name="keycombo"/>
+          <ref name="keysym"/>
+          <ref name="mousebutton"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of shortcut.element -->
+  <define name="shortcut.attlist" combine="interleave">
+    <ref name="keyaction.attrib"/>
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="shortcut.role.attrib"/>
+    <ref name="local.shortcut.attrib"/>
+  </define>
+  <!-- end of shortcut.attlist -->
+  <!-- end of shortcut.module -->
+  <!-- end of menuchoice.content.module -->
+  <define name="local.mousebutton.attrib">
+    <empty/>
+  </define>
+  <define name="mousebutton.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The conventional name of a mouse button. -->
+  <define name="mousebutton">
+    <element name="mousebutton">
+      <ref name="mousebutton.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of mousebutton.element -->
+  <define name="mousebutton.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="mousebutton.role.attrib"/>
+    <ref name="local.mousebutton.attrib"/>
+  </define>
+  <!-- end of mousebutton.attlist -->
+  <!-- end of mousebutton.module -->
+  <define name="local.msgtext.attrib">
+    <empty/>
+  </define>
+  <define name="msgtext.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The actual text of a message component in a message set. -->
+  <define name="msgtext">
+    <element name="msgtext">
+      <ref name="msgtext.attlist"/>
+      <oneOrMore>
+        <ref name="component.mix"/>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- end of msgtext.element -->
+  <define name="msgtext.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="msgtext.role.attrib"/>
+    <ref name="local.msgtext.attrib"/>
+  </define>
+  <!-- end of msgtext.attlist -->
+  <!-- end of msgtext.module -->
+  <define name="local.option.attrib">
+    <empty/>
+  </define>
+  <define name="option.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An option for a software command. -->
+  <define name="option">
+    <element name="option">
+      <ref name="option.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of option.element -->
+  <define name="option.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="option.role.attrib"/>
+    <ref name="local.option.attrib"/>
+  </define>
+  <!-- end of option.attlist -->
+  <!-- end of option.module -->
+  <define name="local.optional.attrib">
+    <empty/>
+  </define>
+  <define name="optional.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Optional information. -->
+  <define name="optional">
+    <element name="optional">
+      <ref name="optional.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of optional.element -->
+  <define name="optional.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="optional.role.attrib"/>
+    <ref name="local.optional.attrib"/>
+  </define>
+  <!-- end of optional.attlist -->
+  <!-- end of optional.module -->
+  <define name="local.parameter.attrib">
+    <empty/>
+  </define>
+  <define name="parameter.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A value or a symbolic reference to a value. -->
+  <define name="parameter">
+    <element name="parameter">
+      <ref name="parameter.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of parameter.element -->
+  <!-- Class: Type of the Parameter; no default -->
+  <define name="parameter.attlist" combine="interleave">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>command</value>
+          <value>function</value>
+          <value>option</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="parameter.role.attrib"/>
+    <ref name="local.parameter.attrib"/>
+  </define>
+  <!-- end of parameter.attlist -->
+  <!-- end of parameter.module -->
+  <define name="local.prompt.attrib">
+    <empty/>
+  </define>
+  <define name="prompt.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A character or string indicating the start of an input field in a  computer display. -->
+  <define name="prompt">
+    <element name="prompt">
+      <ref name="prompt.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="smallcptr.char.mix"/>
+          <ref name="co"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of prompt.element -->
+  <define name="prompt.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="prompt.role.attrib"/>
+    <ref name="local.prompt.attrib"/>
+  </define>
+  <!-- end of prompt.attlist -->
+  <!-- end of prompt.module -->
+  <define name="local.property.attrib">
+    <empty/>
+  </define>
+  <define name="property.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A unit of data associated with some part of a computer system. -->
+  <define name="property">
+    <element name="property">
+      <ref name="property.attlist"/>
+      <zeroOrMore>
+        <ref name="cptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of property.element -->
+  <define name="property.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="property.role.attrib"/>
+    <ref name="local.property.attrib"/>
+  </define>
+  <!-- end of property.attlist -->
+  <!-- end of property.module -->
+  <define name="local.replaceable.attrib">
+    <empty/>
+  </define>
+  <define name="replaceable.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Content that may or must be replaced by the user. -->
+  <define name="replaceable">
+    <element name="replaceable">
+      <ref name="replaceable.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="link.char.class"/>
+          <ref name="optional"/>
+          <ref name="base.char.class"/>
+          <ref name="other.char.class"/>
+          <ref name="inlinegraphic"/>
+          <ref name="inlinemediaobject"/>
+          <ref name="co"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of replaceable.element -->
+  <!--
+    Class: Type of information the element represents; no
+    default
+  -->
+  <define name="replaceable.attlist" combine="interleave">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>command</value>
+          <value>function</value>
+          <value>option</value>
+          <value>parameter</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="replaceable.role.attrib"/>
+    <ref name="local.replaceable.attrib"/>
+  </define>
+  <!-- end of replaceable.attlist -->
+  <!-- end of replaceable.module -->
+  <define name="local.returnvalue.attrib">
+    <empty/>
+  </define>
+  <define name="returnvalue.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The value returned by a function. -->
+  <define name="returnvalue">
+    <element name="returnvalue">
+      <ref name="returnvalue.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of returnvalue.element -->
+  <define name="returnvalue.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="returnvalue.role.attrib"/>
+    <ref name="local.returnvalue.attrib"/>
+  </define>
+  <!-- end of returnvalue.attlist -->
+  <!-- end of returnvalue.module -->
+  <define name="local.sgmltag.attrib">
+    <empty/>
+  </define>
+  <define name="sgmltag.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A component of SGML markup. -->
+  <define name="sgmltag">
+    <element name="sgmltag">
+      <ref name="sgmltag.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of sgmltag.element -->
+  <!-- Class: Type of SGML construct the element names; no default -->
+  <define name="sgmltag.attlist" combine="interleave">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>attribute</value>
+          <value>attvalue</value>
+          <value>element</value>
+          <value>endtag</value>
+          <value>emptytag</value>
+          <value>genentity</value>
+          <value>numcharref</value>
+          <value>paramentity</value>
+          <value>pi</value>
+          <value>xmlpi</value>
+          <value>starttag</value>
+          <value>sgmlcomment</value>
+          <value>prefix</value>
+          <value>namespace</value>
+          <value>localname</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="namespace"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="sgmltag.role.attrib"/>
+    <ref name="local.sgmltag.attrib"/>
+  </define>
+  <!-- end of sgmltag.attlist -->
+  <!-- end of sgmltag.module -->
+  <define name="local.structfield.attrib">
+    <empty/>
+  </define>
+  <define name="structfield.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A field in a structure (in the programming language sense). -->
+  <define name="structfield">
+    <element name="structfield">
+      <ref name="structfield.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of structfield.element -->
+  <define name="structfield.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="structfield.role.attrib"/>
+    <ref name="local.structfield.attrib"/>
+  </define>
+  <!-- end of structfield.attlist -->
+  <!-- end of structfield.module -->
+  <define name="local.structname.attrib">
+    <empty/>
+  </define>
+  <define name="structname.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The name of a structure (in the programming language sense). -->
+  <define name="structname">
+    <element name="structname">
+      <ref name="structname.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of structname.element -->
+  <define name="structname.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="structname.role.attrib"/>
+    <ref name="local.structname.attrib"/>
+  </define>
+  <!-- end of structname.attlist -->
+  <!-- end of structname.module -->
+  <define name="local.symbol.attrib">
+    <empty/>
+  </define>
+  <define name="symbol.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A name that is replaced by a value before processing. -->
+  <define name="symbol">
+    <element name="symbol">
+      <ref name="symbol.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of symbol.element -->
+  <!-- Class: Type of symbol; no default -->
+  <define name="symbol.attlist" combine="interleave">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>limit</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="symbol.role.attrib"/>
+    <ref name="local.symbol.attrib"/>
+  </define>
+  <!-- end of symbol.attlist -->
+  <!-- end of symbol.module -->
+  <define name="local.systemitem.attrib">
+    <empty/>
+  </define>
+  <define name="systemitem.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A system-related item or term. -->
+  <define name="systemitem">
+    <element name="systemitem">
+      <ref name="systemitem.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="cptr.char.mix"/>
+          <ref name="acronym"/>
+          <ref name="co"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of systemitem.element -->
+  <!-- Class: Type of system item the element names; no default -->
+  <define name="systemitem.attlist" combine="interleave">
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>constant</value>
+          <value>daemon</value>
+          <value>domainname</value>
+          <value>etheraddress</value>
+          <value>event</value>
+          <value>eventhandler</value>
+          <value>filesystem</value>
+          <value>fqdomainname</value>
+          <value>groupname</value>
+          <value>ipaddress</value>
+          <value>library</value>
+          <value>macro</value>
+          <value>netmask</value>
+          <value>newsgroup</value>
+          <value>osname</value>
+          <value>protocol</value>
+          <value>resource</value>
+          <value>systemname</value>
+          <value>username</value>
+          <value>process</value>
+          <value>server</value>
+          <value>service</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="systemitem.role.attrib"/>
+    <ref name="local.systemitem.attrib"/>
+  </define>
+  <!-- end of systemitem.attlist -->
+  <!-- end of systemitem.module -->
+  <define name="local.uri.attrib">
+    <empty/>
+  </define>
+  <define name="uri.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A Uniform Resource Identifier. -->
+  <define name="uri">
+    <element name="uri">
+      <ref name="uri.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of uri.element -->
+  <!-- Type: Type of URI; no default -->
+  <define name="uri.attlist" combine="interleave">
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="uri.role.attrib"/>
+    <ref name="local.uri.attrib"/>
+  </define>
+  <!-- end of uri.attlist -->
+  <!-- end of uri.module -->
+  <define name="local.token.attrib">
+    <empty/>
+  </define>
+  <define name="token.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A unit of information. -->
+  <define name="token">
+    <element name="token">
+      <ref name="token.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of token.element -->
+  <define name="token.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="token.role.attrib"/>
+    <ref name="local.token.attrib"/>
+  </define>
+  <!-- end of token.attlist -->
+  <!-- end of token.module -->
+  <define name="local.type.attrib">
+    <empty/>
+  </define>
+  <define name="type.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The classification of a value. -->
+  <define name="type">
+    <element name="type">
+      <ref name="type.attlist"/>
+      <zeroOrMore>
+        <ref name="smallcptr.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of type.element -->
+  <define name="type.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="type.role.attrib"/>
+    <ref name="local.type.attrib"/>
+  </define>
+  <!-- end of type.attlist -->
+  <!-- end of type.module -->
+  <define name="local.userinput.attrib">
+    <empty/>
+  </define>
+  <define name="userinput.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Data entered by the user. -->
+  <define name="userinput">
+    <element name="userinput">
+      <ref name="userinput.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="cptr.char.mix"/>
+          <ref name="co"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of userinput.element -->
+  <define name="userinput.attlist" combine="interleave">
+    <ref name="moreinfo.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="userinput.role.attrib"/>
+    <ref name="local.userinput.attrib"/>
+  </define>
+  <!-- end of userinput.attlist -->
+  <!-- end of userinput.module -->
+  <define name="local.termdef.attrib">
+    <empty/>
+  </define>
+  <define name="termdef.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An inline definition of a term. -->
+  <define name="termdef">
+    <element name="termdef">
+      <ref name="termdef.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of termdef.element -->
+  <define name="termdef.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="termdef.role.attrib"/>
+    <ref name="local.termdef.attrib"/>
+  </define>
+  <!-- end of termdef.attlist -->
+  <!-- end of termdef.module -->
+  <!-- General words and phrases ............................................ -->
+  <define name="local.abbrev.attrib">
+    <empty/>
+  </define>
+  <define name="abbrev.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An abbreviation, especially one followed by a period. -->
+  <define name="abbrev">
+    <element name="abbrev">
+      <ref name="abbrev.attlist"/>
+      <zeroOrMore>
+        <ref name="word.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of abbrev.element -->
+  <define name="abbrev.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="abbrev.role.attrib"/>
+    <ref name="local.abbrev.attrib"/>
+  </define>
+  <!-- end of abbrev.attlist -->
+  <!-- end of abbrev.module -->
+  <define name="local.acronym.attrib">
+    <empty/>
+  </define>
+  <define name="acronym.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An often pronounceable word made from the initial (or selected) letters of a name or phrase. -->
+  <define name="acronym">
+    <element name="acronym">
+      <ref name="acronym.attlist"/>
+      <zeroOrMore>
+        <ref name="word.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of acronym.element -->
+  <define name="acronym.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="acronym.role.attrib"/>
+    <ref name="local.acronym.attrib"/>
+  </define>
+  <!-- end of acronym.attlist -->
+  <!-- end of acronym.module -->
+  <define name="local.citation.attrib">
+    <empty/>
+  </define>
+  <define name="citation.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An inline bibliographic reference to another published work. -->
+  <define name="citation">
+    <element name="citation">
+      <ref name="citation.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of citation.element -->
+  <define name="citation.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="citation.role.attrib"/>
+    <ref name="local.citation.attrib"/>
+  </define>
+  <!-- end of citation.attlist -->
+  <!-- end of citation.module -->
+  <define name="local.citerefentry.attrib">
+    <empty/>
+  </define>
+  <define name="citerefentry.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A citation to a reference page. -->
+  <define name="citerefentry">
+    <element name="citerefentry">
+      <ref name="citerefentry.attlist"/>
+      <ref name="refentrytitle"/>
+      <optional>
+        <ref name="manvolnum"/>
+      </optional>
+    </element>
+  </define>
+  <!-- end of citerefentry.element -->
+  <define name="citerefentry.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="citerefentry.role.attrib"/>
+    <ref name="local.citerefentry.attrib"/>
+  </define>
+  <!-- end of citerefentry.attlist -->
+  <!-- end of citerefentry.module -->
+  <define name="local.refentrytitle.attrib">
+    <empty/>
+  </define>
+  <define name="refentrytitle.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The title of a reference page. -->
+  <define name="refentrytitle">
+    <element name="refentrytitle">
+      <ref name="refentrytitle.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of refentrytitle.element -->
+  <define name="refentrytitle.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="refentrytitle.role.attrib"/>
+    <ref name="local.refentrytitle.attrib"/>
+  </define>
+  <!-- end of refentrytitle.attlist -->
+  <!-- end of refentrytitle.module -->
+  <define name="local.manvolnum.attrib">
+    <empty/>
+  </define>
+  <define name="namvolnum.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A reference volume number. -->
+  <define name="manvolnum">
+    <element name="manvolnum">
+      <ref name="manvolnum.attlist"/>
+      <zeroOrMore>
+        <ref name="word.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of manvolnum.element -->
+  <define name="manvolnum.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="namvolnum.role.attrib"/>
+    <ref name="local.manvolnum.attrib"/>
+  </define>
+  <!-- end of manvolnum.attlist -->
+  <!-- end of manvolnum.module -->
+  <define name="local.citetitle.attrib">
+    <empty/>
+  </define>
+  <define name="citetitle.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The title of a cited work. -->
+  <define name="citetitle">
+    <element name="citetitle">
+      <ref name="citetitle.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of citetitle.element -->
+  <!-- Pubwork: Genre of published work cited; no default -->
+  <define name="citetitle.attlist" combine="interleave">
+    <optional>
+      <attribute name="pubwork">
+        <choice>
+          <value>article</value>
+          <value>book</value>
+          <value>chapter</value>
+          <value>part</value>
+          <value>refentry</value>
+          <value>section</value>
+          <value>journal</value>
+          <value>series</value>
+          <value>set</value>
+          <value>manuscript</value>
+          <value>cdrom</value>
+          <value>dvd</value>
+          <value>wiki</value>
+          <value>gopher</value>
+          <value>bbs</value>
+          <value>emailmessage</value>
+          <value>webpage</value>
+          <value>newsposting</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="citetitle.role.attrib"/>
+    <ref name="local.citetitle.attrib"/>
+  </define>
+  <!-- end of citetitle.attlist -->
+  <!-- end of citetitle.module -->
+  <define name="local.emphasis.attrib">
+    <empty/>
+  </define>
+  <define name="emphasis.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Emphasized text. -->
+  <define name="emphasis">
+    <element name="emphasis">
+      <ref name="emphasis.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of emphasis.element -->
+  <define name="emphasis.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="emphasis.role.attrib"/>
+    <ref name="local.emphasis.attrib"/>
+  </define>
+  <!-- end of emphasis.attlist -->
+  <!-- end of emphasis.module -->
+  <define name="local.foreignphrase.attrib">
+    <empty/>
+  </define>
+  <define name="foreignphrase.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A word or phrase in a language other than the primary language of the document. -->
+  <define name="foreignphrase">
+    <element name="foreignphrase">
+      <ref name="foreignphrase.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of foreignphrase.element -->
+  <define name="foreignphrase.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="foreignphrase.role.attrib"/>
+    <ref name="local.foreignphrase.attrib"/>
+  </define>
+  <!-- end of foreignphrase.attlist -->
+  <!-- end of foreignphrase.module -->
+  <define name="local.glossterm.attrib">
+    <empty/>
+  </define>
+  <define name="glossterm.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A glossary term. -->
+  <define name="glossterm">
+    <element name="glossterm">
+      <ref name="glossterm.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of glossterm.element -->
+  <!-- to GlossEntry if Glossterm used in text -->
+  <!--
+    BaseForm: Provides the form of GlossTerm to be used
+    for indexing
+  -->
+  <define name="glossterm.attlist" combine="interleave">
+    <optional>
+      <attribute name="baseform"/>
+    </optional>
+    <ref name="linkend.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="glossterm.role.attrib"/>
+    <ref name="local.glossterm.attrib"/>
+  </define>
+  <!-- end of glossterm.attlist -->
+  <!-- end of glossterm.module -->
+  <define name="local.firstterm.attrib">
+    <empty/>
+  </define>
+  <define name="firstterm.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The first occurrence of a term. -->
+  <define name="firstterm">
+    <element name="firstterm">
+      <ref name="firstterm.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of firstterm.element -->
+  <!-- to GlossEntry or other explanation -->
+  <define name="firstterm.attlist" combine="interleave">
+    <optional>
+      <attribute name="baseform"/>
+    </optional>
+    <ref name="linkend.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="firstterm.role.attrib"/>
+    <ref name="local.firstterm.attrib"/>
+  </define>
+  <!-- end of firstterm.attlist -->
+  <!-- end of firstterm.module -->
+  <define name="local.phrase.attrib">
+    <empty/>
+  </define>
+  <define name="phrase.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A span of text. -->
+  <define name="phrase">
+    <element name="phrase">
+      <ref name="phrase.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of phrase.element -->
+  <define name="phrase.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="phrase.role.attrib"/>
+    <ref name="local.phrase.attrib"/>
+  </define>
+  <!-- end of phrase.attlist -->
+  <!-- end of phrase.module -->
+  <define name="local.quote.attrib">
+    <empty/>
+  </define>
+  <define name="quote.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:An inline quotation. -->
+  <define name="quote">
+    <element name="quote">
+      <ref name="quote.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of quote.element -->
+  <define name="quote.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="quote.role.attrib"/>
+    <ref name="local.quote.attrib"/>
+  </define>
+  <!-- end of quote.attlist -->
+  <!-- end of quote.module -->
+  <define name="local.ssscript.attrib">
+    <empty/>
+  </define>
+  <define name="ssscript.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A subscript (as in H{^2}O, the molecular formula for water). -->
+  <define name="subscript">
+    <element name="subscript">
+      <ref name="subscript.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="link.char.class"/>
+          <ref name="emphasis"/>
+          <ref name="replaceable"/>
+          <ref name="symbol"/>
+          <ref name="inlinegraphic"/>
+          <ref name="inlinemediaobject"/>
+          <ref name="base.char.class"/>
+          <ref name="other.char.class"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of subscript.element -->
+  <define name="subscript.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="ssscript.role.attrib"/>
+    <ref name="local.ssscript.attrib"/>
+  </define>
+  <!-- end of subscript.attlist -->
+  <!-- doc:A superscript (as in x^2, the mathematical notation for x multiplied by itself). -->
+  <define name="superscript">
+    <element name="superscript">
+      <ref name="superscript.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="link.char.class"/>
+          <ref name="emphasis"/>
+          <ref name="replaceable"/>
+          <ref name="symbol"/>
+          <ref name="inlinegraphic"/>
+          <ref name="inlinemediaobject"/>
+          <ref name="base.char.class"/>
+          <ref name="other.char.class"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of superscript.element -->
+  <define name="superscript.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="ssscript.role.attrib"/>
+    <ref name="local.ssscript.attrib"/>
+  </define>
+  <!-- end of superscript.attlist -->
+  <!-- end of ssscript.module -->
+  <define name="local.trademark.attrib">
+    <empty/>
+  </define>
+  <define name="trademark.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A trademark. -->
+  <define name="trademark">
+    <element name="trademark">
+      <ref name="trademark.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <text/>
+          <ref name="link.char.class"/>
+          <ref name="tech.char.class"/>
+          <ref name="base.char.class"/>
+          <ref name="other.char.class"/>
+          <ref name="inlinegraphic"/>
+          <ref name="inlinemediaobject"/>
+          <ref name="emphasis"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of trademark.element -->
+  <!-- Class: More precisely identifies the item the element names -->
+  <define name="trademark.attlist" combine="interleave">
+    <optional>
+      <attribute name="class" a:defaultValue="trade">
+        <choice>
+          <value>service</value>
+          <value>trade</value>
+          <value>registered</value>
+          <value>copyright</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="trademark.role.attrib"/>
+    <ref name="local.trademark.attrib"/>
+  </define>
+  <!-- end of trademark.attlist -->
+  <!-- end of trademark.module -->
+  <define name="local.wordasword.attrib">
+    <empty/>
+  </define>
+  <define name="wordasword.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A word meant specifically as a word and not representing anything else. -->
+  <define name="wordasword">
+    <element name="wordasword">
+      <ref name="wordasword.attlist"/>
+      <zeroOrMore>
+        <ref name="word.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of wordasword.element -->
+  <define name="wordasword.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="wordasword.role.attrib"/>
+    <ref name="local.wordasword.attrib"/>
+  </define>
+  <!-- end of wordasword.attlist -->
+  <!-- end of wordasword.module -->
+  <!-- Links and cross-references ........................................... -->
+  <define name="local.link.attrib">
+    <empty/>
+  </define>
+  <define name="link.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A hypertext link. -->
+  <define name="link">
+    <element name="link">
+      <ref name="link.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- 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 -->
+  <define name="link.attlist" combine="interleave">
+    <optional>
+      <attribute name="endterm">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="xrefstyle"/>
+    </optional>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <ref name="linkendreq.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="link.role.attrib"/>
+    <ref name="local.link.attrib"/>
+  </define>
+  <!-- end of link.attlist -->
+  <!-- end of link.module -->
+  <define name="local.olink.attrib">
+    <empty/>
+  </define>
+  <define name="olink.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A link that addresses its target indirectly, through an entity. -->
+  <define name="olink">
+    <element name="olink">
+      <ref name="olink.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- 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 -->
+  <define name="olink.attlist" combine="interleave">
+    <optional>
+      <attribute name="targetdocent">
+        <data type="ENTITY"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="linkmode">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="localinfo"/>
+    </optional>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <optional>
+      <attribute name="targetdoc"/>
+    </optional>
+    <optional>
+      <attribute name="targetptr"/>
+    </optional>
+    <optional>
+      <attribute name="xrefstyle"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="olink.role.attrib"/>
+    <ref name="local.olink.attrib"/>
+  </define>
+  <!-- end of olink.attlist -->
+  <!-- end of olink.module -->
+  <define name="local.ulink.attrib">
+    <empty/>
+  </define>
+  <define name="ulink.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A link that addresses its target by means of a URL (Uniform Resource Locator). -->
+  <define name="ulink">
+    <element name="ulink">
+      <ref name="ulink.attlist"/>
+      <zeroOrMore>
+        <ref name="para.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of ulink.element -->
+  <!-- URL: uniform resource locator; the target of the ULink -->
+  <!-- Type: Freely assignable parameter -->
+  <define name="ulink.attlist" combine="interleave">
+    <attribute name="url"/>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <optional>
+      <attribute name="xrefstyle"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="ulink.role.attrib"/>
+    <ref name="local.ulink.attrib"/>
+  </define>
+  <!-- end of ulink.attlist -->
+  <!-- end of ulink.module -->
+  <define name="local.footnoteref.attrib">
+    <empty/>
+  </define>
+  <define name="footnoteref.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A cross reference to a footnote (a footnote mark). -->
+  <define name="footnoteref">
+    <element name="footnoteref">
+      <ref name="footnoteref.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of footnoteref.element -->
+  <!-- to footnote content supplied elsewhere -->
+  <define name="footnoteref.attlist" combine="interleave">
+    <ref name="linkendreq.attrib"/>
+    <ref name="label.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="footnoteref.role.attrib"/>
+    <ref name="local.footnoteref.attrib"/>
+  </define>
+  <!-- end of footnoteref.attlist -->
+  <!-- end of footnoteref.module -->
+  <define name="local.xref.attrib">
+    <empty/>
+  </define>
+  <define name="xref.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A cross reference to another part of the document. -->
+  <define name="xref">
+    <element name="xref">
+      <ref name="xref.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- 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 -->
+  <define name="xref.attlist" combine="interleave">
+    <optional>
+      <attribute name="endterm">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="xrefstyle"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="linkendreq.attrib"/>
+    <ref name="xref.role.attrib"/>
+    <ref name="local.xref.attrib"/>
+  </define>
+  <!-- end of xref.attlist -->
+  <!-- end of xref.module -->
+  <define name="local.biblioref.attrib">
+    <empty/>
+  </define>
+  <define name="biblioref.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A cross reference to a bibliographic entry. -->
+  <define name="biblioref">
+    <element name="biblioref">
+      <ref name="biblioref.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of biblioref.element -->
+  <define name="biblioref.attlist" combine="interleave">
+    <optional>
+      <attribute name="endterm">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="xrefstyle"/>
+    </optional>
+    <optional>
+      <attribute name="units"/>
+    </optional>
+    <optional>
+      <attribute name="begin"/>
+    </optional>
+    <optional>
+      <attribute name="end"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="linkendreq.attrib"/>
+    <ref name="biblioref.role.attrib"/>
+    <ref name="local.biblioref.attrib"/>
+  </define>
+  <!-- end of biblioref.attlist -->
+  <!-- end of biblioref.module -->
+  <!-- Ubiquitous elements .................................................. -->
+  <define name="local.anchor.attrib">
+    <empty/>
+  </define>
+  <define name="anchor.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A spot in the document. -->
+  <define name="anchor">
+    <element name="anchor">
+      <ref name="anchor.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of anchor.element -->
+  <!-- required -->
+  <!-- replaces Lang -->
+  <define name="anchor.attlist" combine="interleave">
+    <ref name="idreq.attrib"/>
+    <ref name="pagenum.attrib"/>
+    <ref name="remap.attrib"/>
+    <ref name="xreflabel.attrib"/>
+    <ref name="revisionflag.attrib"/>
+    <ref name="effectivity.attrib"/>
+    <ref name="anchor.role.attrib"/>
+    <ref name="local.anchor.attrib"/>
+  </define>
+  <!-- end of anchor.attlist -->
+  <!-- end of anchor.module -->
+  <define name="local.beginpage.attrib">
+    <empty/>
+  </define>
+  <define name="beginpage.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The location of a page break in a print version of the document. -->
+  <define name="beginpage">
+    <element name="beginpage">
+      <ref name="beginpage.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- end of beginpage.element -->
+  <!-- PageNum: Number of page that begins at this point -->
+  <define name="beginpage.attlist" combine="interleave">
+    <ref name="pagenum.attrib"/>
+    <ref name="common.attrib"/>
+    <ref name="beginpage.role.attrib"/>
+    <ref name="local.beginpage.attrib"/>
+  </define>
+  <!-- end of beginpage.attlist -->
+  <!-- end of beginpage.module -->
+  <!--
+    IndexTerms appear in the text flow for generating or linking an
+    index.
+  -->
+  <define name="local.indexterm.attrib">
+    <empty/>
+  </define>
+  <define name="indexterm.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:A wrapper for terms to be indexed. -->
+  <define name="indexterm">
+    <element name="indexterm">
+      <ref name="indexterm.attlist"/>
+      <optional>
+        <ref name="primary"/>
+      </optional>
+      <optional>
+        <choice>
+          <group>
+            <ref name="secondary"/>
+            <optional>
+              <choice>
+                <group>
+                  <ref name="tertiary"/>
+                  <optional>
+                    <choice>
+                      <ref name="see"/>
+                      <oneOrMore>
+                        <ref name="seealso"/>
+                      </oneOrMore>
+                    </choice>
+                  </optional>
+                </group>
+                <ref name="see"/>
+                <oneOrMore>
+                  <ref name="seealso"/>
+                </oneOrMore>
+              </choice>
+            </optional>
+          </group>
+          <ref name="see"/>
+          <oneOrMore>
+            <ref name="seealso"/>
+          </oneOrMore>
+        </choice>
+      </optional>
+    </element>
+  </define>
+  <!-- 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
+  -->
+  <define name="indexterm.attlist" combine="interleave">
+    <ref name="pagenum.attrib"/>
+    <optional>
+      <attribute name="scope">
+        <choice>
+          <value>all</value>
+          <value>global</value>
+          <value>local</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="significance" a:defaultValue="normal">
+        <choice>
+          <value>preferred</value>
+          <value>normal</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="class">
+        <choice>
+          <value>singular</value>
+          <value>startofrange</value>
+          <value>endofrange</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="startref">
+        <data type="IDREF"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="zone">
+        <data type="IDREFS"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="type"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="indexterm.role.attrib"/>
+    <ref name="local.indexterm.attrib"/>
+  </define>
+  <!-- end of indexterm.attlist -->
+  <!-- end of indexterm.module -->
+  <define name="local.primsecter.attrib">
+    <empty/>
+  </define>
+  <define name="primsecter.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:The primary word or phrase under which an index term should be sorted. -->
+  <define name="primary">
+    <element name="primary">
+      <ref name="primary.attlist"/>
+      <zeroOrMore>
+        <ref name="ndxterm.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of primary.element -->
+  <!--
+    SortAs: Alternate sort string for index sorting, e.g.,
+    "fourteen" for an element containing "14"
+  -->
+  <define name="primary.attlist" combine="interleave">
+    <optional>
+      <attribute name="sortas"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="primsecter.role.attrib"/>
+    <ref name="local.primsecter.attrib"/>
+  </define>
+  <!-- end of primary.attlist -->
+  <!-- doc:A secondary word or phrase in an index term. -->
+  <define name="secondary">
+    <element name="secondary">
+      <ref name="secondary.attlist"/>
+      <zeroOrMore>
+        <ref name="ndxterm.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of secondary.element -->
+  <!--
+    SortAs: Alternate sort string for index sorting, e.g.,
+    "fourteen" for an element containing "14"
+  -->
+  <define name="secondary.attlist" combine="interleave">
+    <optional>
+      <attribute name="sortas"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="primsecter.role.attrib"/>
+    <ref name="local.primsecter.attrib"/>
+  </define>
+  <!-- end of secondary.attlist -->
+  <!-- doc:A tertiary word or phrase in an index term. -->
+  <define name="tertiary">
+    <element name="tertiary">
+      <ref name="tertiary.attlist"/>
+      <zeroOrMore>
+        <ref name="ndxterm.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of tertiary.element -->
+  <!--
+    SortAs: Alternate sort string for index sorting, e.g.,
+    "fourteen" for an element containing "14"
+  -->
+  <define name="tertiary.attlist" combine="interleave">
+    <optional>
+      <attribute name="sortas"/>
+    </optional>
+    <ref name="common.attrib"/>
+    <ref name="primsecter.role.attrib"/>
+    <ref name="local.primsecter.attrib"/>
+  </define>
+  <!-- end of tertiary.attlist -->
+  <!-- end of primsecter.module -->
+  <define name="local.seeseealso.attrib">
+    <empty/>
+  </define>
+  <define name="seeseealso.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- doc:Part of an index term directing the reader instead to another entry in the index. -->
+  <define name="see">
+    <element name="see">
+      <ref name="see.attlist"/>
+      <zeroOrMore>
+        <ref name="ndxterm.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of see.element -->
+  <define name="see.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="seeseealso.role.attrib"/>
+    <ref name="local.seeseealso.attrib"/>
+  </define>
+  <!-- end of see.attlist -->
+  <!-- doc:Part of an index term directing the reader also to another entry in the index. -->
+  <define name="seealso">
+    <element name="seealso">
+      <ref name="seealso.attlist"/>
+      <zeroOrMore>
+        <ref name="ndxterm.char.mix"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- end of seealso.element -->
+  <define name="seealso.attlist" combine="interleave">
+    <ref name="common.attrib"/>
+    <ref name="seeseealso.role.attrib"/>
+    <ref name="local.seeseealso.attrib"/>
+  </define>
+</grammar>
+<!-- end of seealso.attlist -->
+<!-- end of seeseealso.module -->
+<!-- end of indexterm.content.module -->
+<!-- End of DocBook XML information pool module V4.5 ...................... -->
+<!-- ...................................................................... -->

Added: trunk/clfs/schema/docbook/4.5/rng/docbook.rnc
===================================================================
--- trunk/clfs/schema/docbook/4.5/rng/docbook.rnc	                        (rev 0)
+++ trunk/clfs/schema/docbook/4.5/rng/docbook.rnc	2011-04-17 21:49:19 UTC (rev 1294)
@@ -0,0 +1,499 @@
+# ......................................................................
+
+# DocBook XML DTD V4.5 .................................................
+
+# File docbookx.dtd ....................................................
+
+# Copyright 1992-2006 HaL Computer Systems, Inc.,
+# O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+# Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+# Organization for the Advancement of Structured Information
+# Standards (OASIS).
+# 
+# See also http://docbook.org/specs/
+# 
+# $Id: docbookx.dtd 6340 2006-10-03 13:23:24Z nwalsh $
+# 
+# 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 at lists.oasis-open.org mailing list. For more
+# information, see http://www.oasis-open.org/docbook/.
+
+# ......................................................................
+
+# This is the driver file for V4.5 of the DocBook DTD.
+# Please use the following formal public identifier to identify it:
+# 
+# "-//OASIS//DTD DocBook XML V4.5//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.5//EN"
+#                "http://www.oasis-open.org/docbook/xml/4.5/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.5//EN"
+#            "http://www.oasis-open.org/docbook/xml/4.5/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.
+
+# ......................................................................
+
+# Enable SGML features .................................................
+
+# ......................................................................
+
+# Notation declarations ................................................
+
+include "dbnotnx.rnc"
+# ......................................................................
+
+# ISO character entity sets ............................................
+
+# euro sign, U+20AC NEW
+
+# ......................................................................
+
+# DTD modules ..........................................................
+
+# Information pool ..............
+include "dbpoolx.rnc"
+# Redeclaration placeholder .....
+
+# Document hierarchy ............
+include "dbhierx.rnc"
+start =
+  articleinfo
+  | honorific
+  | legalnotice
+  | procedure
+  | simplelist
+  | keycode
+  | refsynopsisdiv
+  | article
+  | phrase
+  | destructorsynopsis
+  | itemizedlist
+  | audioobject
+  | link
+  | sect1info
+  | xref
+  | glossaryinfo
+  | varname
+  | keywordset
+  | informalequation
+  | toc
+  | pagenums
+  | lot
+  | shortcut
+  | glosslist
+  | option
+  | bibliosource
+  | variablelist
+  | filename
+  | pob
+  | colgroup
+  | foreignphrase
+  | group
+  | substeps
+  | conftitle
+  | textobject
+  | menuchoice
+  | colspec
+  | contractsponsor
+  | tocback
+  | contractnum
+  | constant
+  | dedication
+  | inlineequation
+  | bibliographyinfo
+  | country
+  | glossseealso
+  | bridgehead
+  | mousebutton
+  | surname
+  | stepalternatives
+  | tertiaryie
+  | mediaobject
+  | msgentry
+  | fax
+  | initializer
+  | table
+  | task
+  | setinfo
+  | videodata
+  | bibliodiv
+  | issuenum
+  | phone
+  | state
+  | refsynopsisdivinfo
+  | member
+  | glossentry
+  | term
+  | msgtext
+  | tr
+  | errortype
+  | confdates
+  | inlinegraphic
+  | th
+  | segmentedlist
+  | remark
+  | preface
+  | structname
+  | publisher
+  | td
+  | oointerface
+  | refsection
+  | type
+  | taskrelated
+  | msgrel
+  | artpagenums
+  | bibliomixed
+  | revnumber
+  | firstterm
+  | seeie
+  | spanspec
+  | toclevel5
+  | trademark
+  | toclevel4
+  | toclevel3
+  | toclevel2
+  | indexentry
+  | toclevel1
+  | colophon
+  | methodparam
+  | sidebarinfo
+  | productnumber
+  | funcprototype
+  | inlinemediaobject
+  | refclass
+  | lotentry
+  | paramdef
+  | classsynopsisinfo
+  | qandaset
+  | footnote
+  | msglevel
+  | keysym
+  | citation
+  | simplemsgentry
+  | othercredit
+  | subjectset
+  | keycap
+  | orderedlist
+  | refmiscinfo
+  | blockinfo
+  | programlistingco
+  | abbrev
+  | sidebar
+  | informalfigure
+  | tip
+  | primaryie
+  | appendixinfo
+  | partintro
+  | glossdiv
+  | confgroup
+  | segtitle
+  | taskprerequisites
+  | street
+  | tbody
+  | caption
+  | markup
+  | setindex
+  | msgsub
+  | subscript
+  | orgname
+  | fieldsynopsis
+  | refname
+  | void
+  | sect5
+  | sect4
+  | sect3
+  | chapter
+  | sect2
+  | sect1
+  | modifier
+  | col
+  | orgdiv
+  | city
+  | bibliolist
+  | funcparams
+  | application
+  | \token
+  | imageobject
+  | literal
+  | funcsynopsis
+  | olink
+  | package
+  | collab
+  | seealsoie
+  | primary
+  | glossterm
+  | termdef
+  | area
+  | ackno
+  | function
+  | collabname
+  | lineannotation
+  | guisubmenu
+  | msgexplan
+  | errorname
+  | property
+  | synopfragmentref
+  | refentryinfo
+  | entry
+  | manvolnum
+  | synopsis
+  | emphasis
+  | appendix
+  | bookinfo
+  | contrib
+  | otheraddr
+  | copyright
+  | methodname
+  | email
+  | ooclass
+  | videoobject
+  | abstract
+  | firstname
+  | revremark
+  | glossdef
+  | guibutton
+  | informalexample
+  | screen
+  | errorcode
+  | command
+  | seriesvolnums
+  | refpurpose
+  | parameter
+  | equation
+  | tfoot
+  | code
+  | jobtitle
+  | sgmltag
+  | screenco
+  | holder
+  | isbn
+  | corpcredit
+  | biblioset
+  | part
+  | symbol
+  | row
+  | bibliomisc
+  | imagedata
+  | secondary
+  | classname
+  | callout
+  | screenshot
+  | bibliomset
+  | indexterm
+  | refsect3
+  | tocchap
+  | para
+  | refsect2
+  | refsect1
+  | date
+  | refdescriptor
+  | wordasword
+  | epigraph
+  | audiodata
+  | hardware
+  | confsponsor
+  | authorgroup
+  | warning
+  | authorinitials
+  | medialabel
+  | varlistentry
+  | authorblurb
+  | itermset
+  | refsect3info
+  | informaltable
+  | guimenuitem
+  | postcode
+  | subjectterm
+  | refnamediv
+  | note
+  | figure
+  | envar
+  | listitem
+  | methodsynopsis
+  | affiliation
+  | funcsynopsisinfo
+  | structfield
+  | blockquote
+  | keyword
+  | chapterinfo
+  | tertiary
+  | year
+  | subtitle
+  | personblurb
+  | refentry
+  | citebiblioid
+  | seglistitem
+  | bibliography
+  | msg
+  | constructorsynopsis
+  | refsect2info
+  | volumenum
+  | database
+  | funcdef
+  | uri
+  | graphicco
+  | biblioid
+  | msgmain
+  | printhistory
+  | glosssee
+  | beginpage
+  | glossary
+  | set
+  | highlights
+  | objectinfo
+  | tocpart
+  | guiicon
+  | revhistory
+  | seg
+  | see
+  | msgorig
+  | areaspec
+  | partinfo
+  | index
+  | sectioninfo
+  | refsectioninfo
+  | optional
+  | confnum
+  | replaceable
+  | refsect1info
+  | corpauthor
+  | step
+  | anchor
+  | arg
+  | mathphrase
+  | setindexinfo
+  | keycombo
+  | address
+  | cmdsynopsis
+  | computeroutput
+  | literallayout
+  | qandaentry
+  | sect5info
+  | bibliocoverage
+  | coref
+  | editor
+  | superscript
+  | personname
+  | pubsnumber
+  | graphic
+  | simplesect
+  | accel
+  | secondaryie
+  | biblioref
+  | publishername
+  | bibliorelation
+  | prefaceinfo
+  | revision
+  | screeninfo
+  | sbr
+  | example
+  | citetitle
+  | issn
+  | invpartnumber
+  | indexdiv
+  | sect4info
+  | corpname
+  | lineage
+  | ooexception
+  | reference
+  | revdescription
+  | title
+  | edition
+  | co
+  | msgaud
+  | guimenu
+  | shortaffil
+  | titleabbrev
+  | msginfo
+  | refmeta
+  | qandadiv
+  | mediaobjectco
+  | seealso
+  | exceptionname
+  | answer
+  | programlisting
+  | tgroup
+  | refentrytitle
+  | book
+  | errortext
+  | varargs
+  | sect3info
+  | citerefentry
+  | tasksummary
+  | quote
+  | othername
+  | prompt
+  | entrytbl
+  | interfacename
+  | acronym
+  | modespec
+  | msgset
+  | thead
+  | textdata
+  | userinput
+  | attribution
+  | footnoteref
+  | action
+  | tocentry
+  | tocfront
+  | author
+  | imageobjectco
+  | alt
+  | question
+  | ulink
+  | subject
+  | pubdate
+  | returnvalue
+  | label
+  | caution
+  | section
+  | systemitem
+  | referenceinfo
+  | sect2info
+  | calloutlist
+  | classsynopsis
+  | productname
+  | simpara
+  | synopfragment
+  | important
+  | interface
+  | releaseinfo
+  | formalpara
+  | areaset
+  | biblioentry
+  | indexinfo
+  | guilabel
+# ......................................................................
+
+# Other general entities ...............................................
+
+# End of DocBook XML DTD V4.5 ..........................................
+
+# ......................................................................

Added: trunk/clfs/schema/docbook/4.5/rng/docbook.rng
===================================================================
--- trunk/clfs/schema/docbook/4.5/rng/docbook.rng	                        (rev 0)
+++ trunk/clfs/schema/docbook/4.5/rng/docbook.rng	2011-04-17 21:49:19 UTC (rev 1294)
@@ -0,0 +1,490 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ...................................................................... -->
+<!-- DocBook XML DTD V4.5 ................................................. -->
+<!-- File docbookx.dtd .................................................... -->
+<!--
+  Copyright 1992-2006 HaL Computer Systems, Inc.,
+  O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+  Corporation, Norman Walsh, Sun Microsystems, Inc., and the
+  Organization for the Advancement of Structured Information
+  Standards (OASIS).
+  
+  See also http://docbook.org/specs/
+  
+  $Id: docbookx.dtd 6340 2006-10-03 13:23:24Z nwalsh $
+  
+  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 at lists.oasis-open.org mailing list. For more
+  information, see http://www.oasis-open.org/docbook/.
+-->
+<!-- ...................................................................... -->
+<!--
+  This is the driver file for V4.5 of the DocBook DTD.
+  Please use the following formal public identifier to identify it:
+  
+  "-//OASIS//DTD DocBook XML V4.5//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.5//EN"
+                 "http://www.oasis-open.org/docbook/xml/4.5/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.5//EN"
+             "http://www.oasis-open.org/docbook/xml/4.5/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.
+-->
+<!-- ...................................................................... -->
+<!-- Enable SGML features ................................................. -->
+<!-- ...................................................................... -->
+<!-- Notation declarations ................................................ -->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+  <include href="dbnotnx.rng"/>
+  <!-- ...................................................................... -->
+  <!-- ISO character entity sets ............................................ -->
+  <!-- euro sign, U+20AC NEW -->
+  <!-- ...................................................................... -->
+  <!-- DTD modules .......................................................... -->
+  <!-- Information pool .............. -->
+  <include href="dbpoolx.rng"/>
+  <!-- Redeclaration placeholder ..... -->
+  <!-- Document hierarchy ............ -->
+  <include href="dbhierx.rng"/>
+  <start>
+    <choice>
+      <ref name="articleinfo"/>
+      <ref name="honorific"/>
+      <ref name="legalnotice"/>
+      <ref name="procedure"/>
+      <ref name="simplelist"/>
+      <ref name="keycode"/>
+      <ref name="refsynopsisdiv"/>
+      <ref name="article"/>
+      <ref name="phrase"/>
+      <ref name="destructorsynopsis"/>
+      <ref name="itemizedlist"/>
+      <ref name="audioobject"/>
+      <ref name="link"/>
+      <ref name="sect1info"/>
+      <ref name="xref"/>
+      <ref name="glossaryinfo"/>
+      <ref name="varname"/>
+      <ref name="keywordset"/>
+      <ref name="informalequation"/>
+      <ref name="toc"/>
+      <ref name="pagenums"/>
+      <ref name="lot"/>
+      <ref name="shortcut"/>
+      <ref name="glosslist"/>
+      <ref name="option"/>
+      <ref name="bibliosource"/>
+      <ref name="variablelist"/>
+      <ref name="filename"/>
+      <ref name="pob"/>
+      <ref name="colgroup"/>
+      <ref name="foreignphrase"/>
+      <ref name="group"/>
+      <ref name="substeps"/>
+      <ref name="conftitle"/>
+      <ref name="textobject"/>
+      <ref name="menuchoice"/>
+      <ref name="colspec"/>
+      <ref name="contractsponsor"/>
+      <ref name="tocback"/>
+      <ref name="contractnum"/>
+      <ref name="constant"/>
+      <ref name="dedication"/>
+      <ref name="inlineequation"/>
+      <ref name="bibliographyinfo"/>
+      <ref name="country"/>
+      <ref name="glossseealso"/>
+      <ref name="bridgehead"/>
+      <ref name="mousebutton"/>
+      <ref name="surname"/>
+      <ref name="stepalternatives"/>
+      <ref name="tertiaryie"/>
+      <ref name="mediaobject"/>
+      <ref name="msgentry"/>
+      <ref name="fax"/>
+      <ref name="initializer"/>
+      <ref name="table"/>
+      <ref name="task"/>
+      <ref name="setinfo"/>
+      <ref name="videodata"/>
+      <ref name="bibliodiv"/>
+      <ref name="issuenum"/>
+      <ref name="phone"/>
+      <ref name="state"/>
+      <ref name="refsynopsisdivinfo"/>
+      <ref name="member"/>
+      <ref name="glossentry"/>
+      <ref name="term"/>
+      <ref name="msgtext"/>
+      <ref name="tr"/>
+      <ref name="errortype"/>
+      <ref name="confdates"/>
+      <ref name="inlinegraphic"/>
+      <ref name="th"/>
+      <ref name="segmentedlist"/>
+      <ref name="remark"/>
+      <ref name="preface"/>
+      <ref name="structname"/>
+      <ref name="publisher"/>
+      <ref name="td"/>
+      <ref name="oointerface"/>
+      <ref name="refsection"/>
+      <ref name="type"/>
+      <ref name="taskrelated"/>
+      <ref name="msgrel"/>
+      <ref name="artpagenums"/>
+      <ref name="bibliomixed"/>
+      <ref name="revnumber"/>
+      <ref name="firstterm"/>
+      <ref name="seeie"/>
+      <ref name="spanspec"/>
+      <ref name="toclevel5"/>
+      <ref name="trademark"/>
+      <ref name="toclevel4"/>
+      <ref name="toclevel3"/>
+      <ref name="toclevel2"/>
+      <ref name="indexentry"/>
+      <ref name="toclevel1"/>
+      <ref name="colophon"/>
+      <ref name="methodparam"/>
+      <ref name="sidebarinfo"/>
+      <ref name="productnumber"/>
+      <ref name="funcprototype"/>
+      <ref name="inlinemediaobject"/>
+      <ref name="refclass"/>
+      <ref name="lotentry"/>
+      <ref name="paramdef"/>
+      <ref name="classsynopsisinfo"/>
+      <ref name="qandaset"/>
+      <ref name="footnote"/>
+      <ref name="msglevel"/>
+      <ref name="keysym"/>
+      <ref name="citation"/>
+      <ref name="simplemsgentry"/>
+      <ref name="othercredit"/>
+      <ref name="subjectset"/>
+      <ref name="keycap"/>
+      <ref name="orderedlist"/>
+      <ref name="refmiscinfo"/>
+      <ref name="blockinfo"/>
+      <ref name="programlistingco"/>
+      <ref name="abbrev"/>
+      <ref name="sidebar"/>
+      <ref name="informalfigure"/>
+      <ref name="tip"/>
+      <ref name="primaryie"/>
+      <ref name="appendixinfo"/>
+      <ref name="partintro"/>
+      <ref name="glossdiv"/>
+      <ref name="confgroup"/>
+      <ref name="segtitle"/>
+      <ref name="taskprerequisites"/>
+      <ref name="street"/>
+      <ref name="tbody"/>
+      <ref name="caption"/>
+      <ref name="markup"/>
+      <ref name="setindex"/>
+      <ref name="msgsub"/>
+      <ref name="subscript"/>
+      <ref name="orgname"/>
+      <ref name="fieldsynopsis"/>
+      <ref name="refname"/>
+      <ref name="void"/>
+      <ref name="sect5"/>
+      <ref name="sect4"/>
+      <ref name="sect3"/>
+      <ref name="chapter"/>
+      <ref name="sect2"/>
+      <ref name="sect1"/>
+      <ref name="modifier"/>
+      <ref name="col"/>
+      <ref name="orgdiv"/>
+      <ref name="city"/>
+      <ref name="bibliolist"/>
+      <ref name="funcparams"/>
+      <ref name="application"/>
+      <ref name="token"/>
+      <ref name="imageobject"/>
+      <ref name="literal"/>
+      <ref name="funcsynopsis"/>
+      <ref name="olink"/>
+      <ref name="package"/>
+      <ref name="collab"/>
+      <ref name="seealsoie"/>
+      <ref name="primary"/>
+      <ref name="glossterm"/>
+      <ref name="termdef"/>
+      <ref name="area"/>
+      <ref name="ackno"/>
+      <ref name="function"/>
+      <ref name="collabname"/>
+      <ref name="lineannotation"/>
+      <ref name="guisubmenu"/>
+      <ref name="msgexplan"/>
+      <ref name="errorname"/>
+      <ref name="property"/>
+      <ref name="synopfragmentref"/>
+      <ref name="refentryinfo"/>
+      <ref name="entry"/>
+      <ref name="manvolnum"/>
+      <ref name="synopsis"/>
+      <ref name="emphasis"/>
+      <ref name="appendix"/>
+      <ref name="bookinfo"/>
+      <ref name="contrib"/>
+      <ref name="otheraddr"/>
+      <ref name="copyright"/>
+      <ref name="methodname"/>
+      <ref name="email"/>
+      <ref name="ooclass"/>
+      <ref name="videoobject"/>
+      <ref name="abstract"/>
+      <ref name="firstname"/>
+      <ref name="revremark"/>
+      <ref name="glossdef"/>
+      <ref name="guibutton"/>
+      <ref name="informalexample"/>
+      <ref name="screen"/>
+      <ref name="errorcode"/>
+      <ref name="command"/>
+      <ref name="seriesvolnums"/>
+      <ref name="refpurpose"/>
+      <ref name="parameter"/>
+      <ref name="equation"/>
+      <ref name="tfoot"/>
+      <ref name="code"/>
+      <ref name="jobtitle"/>
+      <ref name="sgmltag"/>
+      <ref name="screenco"/>
+      <ref name="holder"/>
+      <ref name="isbn"/>
+      <ref name="corpcredit"/>
+      <ref name="biblioset"/>
+      <ref name="part"/>
+      <ref name="symbol"/>
+      <ref name="row"/>
+      <ref name="bibliomisc"/>
+      <ref name="imagedata"/>
+      <ref name="secondary"/>
+      <ref name="classname"/>
+      <ref name="callout"/>
+      <ref name="screenshot"/>
+      <ref name="bibliomset"/>
+      <ref name="indexterm"/>
+      <ref name="refsect3"/>
+      <ref name="tocchap"/>
+      <ref name="para"/>
+      <ref name="refsect2"/>
+      <ref name="refsect1"/>
+      <ref name="date"/>
+      <ref name="refdescriptor"/>
+      <ref name="wordasword"/>
+      <ref name="epigraph"/>
+      <ref name="audiodata"/>
+      <ref name="hardware"/>
+      <ref name="confsponsor"/>
+      <ref name="authorgroup"/>
+      <ref name="warning"/>
+      <ref name="authorinitials"/>
+      <ref name="medialabel"/>
+      <ref name="varlistentry"/>
+      <ref name="authorblurb"/>
+      <ref name="itermset"/>
+      <ref name="refsect3info"/>
+      <ref name="informaltable"/>
+      <ref name="guimenuitem"/>
+      <ref name="postcode"/>
+      <ref name="subjectterm"/>
+      <ref name="refnamediv"/>
+      <ref name="note"/>
+      <ref name="figure"/>
+      <ref name="envar"/>
+      <ref name="listitem"/>
+      <ref name="methodsynopsis"/>
+      <ref name="affiliation"/>
+      <ref name="funcsynopsisinfo"/>
+      <ref name="structfield"/>
+      <ref name="blockquote"/>
+      <ref name="keyword"/>
+      <ref name="chapterinfo"/>
+      <ref name="tertiary"/>
+      <ref name="year"/>
+      <ref name="subtitle"/>
+      <ref name="personblurb"/>
+      <ref name="refentry"/>
+      <ref name="citebiblioid"/>
+      <ref name="seglistitem"/>
+      <ref name="bibliography"/>
+      <ref name="msg"/>
+      <ref name="constructorsynopsis"/>
+      <ref name="refsect2info"/>
+      <ref name="volumenum"/>
+      <ref name="database"/>
+      <ref name="funcdef"/>
+      <ref name="uri"/>
+      <ref name="graphicco"/>
+      <ref name="biblioid"/>
+      <ref name="msgmain"/>
+      <ref name="printhistory"/>
+      <ref name="glosssee"/>
+      <ref name="beginpage"/>
+      <ref name="glossary"/>
+      <ref name="set"/>
+      <ref name="highlights"/>
+      <ref name="objectinfo"/>
+      <ref name="tocpart"/>
+      <ref name="guiicon"/>
+      <ref name="revhistory"/>
+      <ref name="seg"/>
+      <ref name="see"/>
+      <ref name="msgorig"/>
+      <ref name="areaspec"/>
+      <ref name="partinfo"/>
+      <ref name="index"/>
+      <ref name="sectioninfo"/>
+      <ref name="refsectioninfo"/>
+      <ref name="optional"/>
+      <ref name="confnum"/>
+      <ref name="replaceable"/>
+      <ref name="refsect1info"/>
+      <ref name="corpauthor"/>
+      <ref name="step"/>
+      <ref name="anchor"/>
+      <ref name="arg"/>
+      <ref name="mathphrase"/>
+      <ref name="setindexinfo"/>
+      <ref name="keycombo"/>
+      <ref name="address"/>
+      <ref name="cmdsynopsis"/>
+      <ref name="computeroutput"/>
+      <ref name="literallayout"/>
+      <ref name="qandaentry"/>
+      <ref name="sect5info"/>
+      <ref name="bibliocoverage"/>
+      <ref name="coref"/>
+      <ref name="editor"/>
+      <ref name="superscript"/>
+      <ref name="personname"/>
+      <ref name="pubsnumber"/>
+      <ref name="graphic"/>
+      <ref name="simplesect"/>
+      <ref name="accel"/>
+      <ref name="secondaryie"/>
+      <ref name="biblioref"/>
+      <ref name="publishername"/>
+      <ref name="bibliorelation"/>
+      <ref name="prefaceinfo"/>
+      <ref name="revision"/>
+      <ref name="screeninfo"/>
+      <ref name="sbr"/>
+      <ref name="example"/>
+      <ref name="citetitle"/>
+      <ref name="issn"/>
+      <ref name="invpartnumber"/>
+      <ref name="indexdiv"/>
+      <ref name="sect4info"/>
+      <ref name="corpname"/>
+      <ref name="lineage"/>
+      <ref name="ooexception"/>
+      <ref name="reference"/>
+      <ref name="revdescription"/>
+      <ref name="title"/>
+      <ref name="edition"/>
+      <ref name="co"/>
+      <ref name="msgaud"/>
+      <ref name="guimenu"/>
+      <ref name="shortaffil"/>
+      <ref name="titleabbrev"/>
+      <ref name="msginfo"/>
+      <ref name="refmeta"/>
+      <ref name="qandadiv"/>
+      <ref name="mediaobjectco"/>
+      <ref name="seealso"/>
+      <ref name="exceptionname"/>
+      <ref name="answer"/>
+      <ref name="programlisting"/>
+      <ref name="tgroup"/>
+      <ref name="refentrytitle"/>
+      <ref name="book"/>
+      <ref name="errortext"/>
+      <ref name="varargs"/>
+      <ref name="sect3info"/>
+      <ref name="citerefentry"/>
+      <ref name="tasksummary"/>
+      <ref name="quote"/>
+      <ref name="othername"/>
+      <ref name="prompt"/>
+      <ref name="entrytbl"/>
+      <ref name="interfacename"/>
+      <ref name="acronym"/>
+      <ref name="modespec"/>
+      <ref name="msgset"/>
+      <ref name="thead"/>
+      <ref name="textdata"/>
+      <ref name="userinput"/>
+      <ref name="attribution"/>
+      <ref name="footnoteref"/>
+      <ref name="action"/>
+      <ref name="tocentry"/>
+      <ref name="tocfront"/>
+      <ref name="author"/>
+      <ref name="imageobjectco"/>
+      <ref name="alt"/>
+      <ref name="question"/>
+      <ref name="ulink"/>
+      <ref name="subject"/>
+      <ref name="pubdate"/>
+      <ref name="returnvalue"/>
+      <ref name="label"/>
+      <ref name="caution"/>
+      <ref name="section"/>
+      <ref name="systemitem"/>
+      <ref name="referenceinfo"/>
+      <ref name="sect2info"/>
+      <ref name="calloutlist"/>
+      <ref name="classsynopsis"/>
+      <ref name="productname"/>
+      <ref name="simpara"/>
+      <ref name="synopfragment"/>
+      <ref name="important"/>
+      <ref name="interface"/>
+      <ref name="releaseinfo"/>
+      <ref name="formalpara"/>
+      <ref name="areaset"/>
+      <ref name="biblioentry"/>
+      <ref name="indexinfo"/>
+      <ref name="guilabel"/>
+    </choice>
+  </start>
+</grammar>
+<!-- ...................................................................... -->
+<!-- Other general entities ............................................... -->
+<!-- End of DocBook XML DTD V4.5 .......................................... -->
+<!-- ...................................................................... -->

Added: trunk/clfs/schema/docbook/4.5/rng/htmltblx.rnc
===================================================================
--- trunk/clfs/schema/docbook/4.5/rng/htmltblx.rnc	                        (rev 0)
+++ trunk/clfs/schema/docbook/4.5/rng/htmltblx.rnc	2011-04-17 21:49:19 UTC (rev 1294)
@@ -0,0 +1,225 @@
+# ......................................................................
+
+# DocBook XML HTML Table Module V4.5 ...................................
+
+# File htmltblx.mod ....................................................
+
+# Copyright 2003-2006 ArborText, Inc., Norman Walsh, Sun Microsystems,
+# Inc., and the Organization for the Advancement of Structured Information
+# Standards (OASIS).
+# 
+# $Id: htmltblx.mod 6340 2006-10-03 13:23:24Z nwalsh $
+# 
+# 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 at lists.oasis-open.org mailing list. For more
+# information, see http://www.oasis-open.org/docbook/.
+
+# ......................................................................
+
+# This module contains the definitions for elements that are
+# isomorphic to the HTML elements. One could argue we should
+# instead have based ourselves on the XHTML Table Module, but the
+# HTML one is more like what browsers are likely to accept today
+# and users are likely to use.
+# 
+# This module has been developed for use with the DocBook V4.5
+# "union table model" in which elements and attlists common to both
+# models are defined (as the union) in the CALS table module by
+# setting various parameter entities appropriately in this file.
+# 
+# In DTD driver files referring to this module, please use an entity
+# declaration that uses the public identifier shown below:
+# 
+# <!ENTITY % htmltbl PUBLIC
+# "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN"
+# "htmltblx.mod">
+# %htmltbl;
+# 
+# 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.
+
+# ======================= XHTML Tables =======================================
+
+namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
+
+html.coreattrs =
+  common.attrib,
+  attribute class { text }?,
+  attribute style { text }?,
+  attribute title { text }?
+# Does not contain lang or dir because they are in %common.attribs
+i18n = attribute xml:lang { xsd:NMTOKEN }?
+events =
+  attribute onclick { text }?,
+  attribute ondblclick { text }?,
+  attribute onmousedown { text }?,
+  attribute onmouseup { text }?,
+  attribute onmouseover { text }?,
+  attribute onmousemove { text }?,
+  attribute onmouseout { text }?,
+  attribute onkeypress { text }?,
+  attribute onkeydown { text }?,
+  attribute onkeyup { text }?
+attrs = html.coreattrs, i18n, events
+cellhalign =
+  attribute align { "left" | "center" | "right" | "justify" | "char" }?,
+  attribute char { text }?,
+  attribute charoff { text }?
+cellvalign =
+  attribute valign { "top" | "middle" | "bottom" | "baseline" }?
+# doc:A group of columns in an HTML table.
+colgroup = element colgroup { colgroup.attlist, col* }
+# doc:Specifications for a column in an HTML table.
+col = element col { col.attlist, empty }
+# doc:A row in an HTML table.
+tr = element tr { tr.attlist, (th | td)+ }
+# doc:A table header entry in an HTML table.
+th =
+  element th {
+    th.attlist, (para.char.mix | tabentry.mix | table | informaltable)*
+  }
+# doc:A table ntry in an HTML table.
+td =
+  element td {
+    td.attlist, (para.char.mix | tabentry.mix | table | informaltable)*
+  }
+colgroup.attlist &=
+  attrs,
+  [ a:defaultValue = "1" ] attribute span { text }?,
+  attribute width { text }?,
+  cellhalign,
+  cellvalign
+col.attlist &=
+  attrs,
+  [ a:defaultValue = "1" ] attribute span { text }?,
+  attribute width { text }?,
+  cellhalign,
+  cellvalign
+tr.attlist &=
+  attrs,
+  cellhalign,
+  cellvalign,
+  attribute bgcolor { text }?
+th.attlist &=
+  attrs,
+  attribute abbr { text }?,
+  attribute axis { text }?,
+  attribute headers { xsd:IDREFS }?,
+  attribute scope { "row" | "col" | "rowgroup" | "colgroup" }?,
+  [ a:defaultValue = "1" ] attribute rowspan { text }?,
+  [ a:defaultValue = "1" ] attribute colspan { text }?,
+  cellhalign,
+  cellvalign,
+  attribute nowrap { "nowrap" }?,
+  attribute bgcolor { text }?,
+  attribute width { text }?,
+  attribute height { text }?
+td.attlist &=
+  attrs,
+  attribute abbr { text }?,
+  attribute axis { text }?,
+  attribute headers { xsd:IDREFS }?,
+  attribute scope { "row" | "col" | "rowgroup" | "colgroup" }?,
+  [ a:defaultValue = "1" ] attribute rowspan { text }?,
+  [ a:defaultValue = "1" ] attribute colspan { text }?,
+  cellhalign,
+  cellvalign,
+  attribute nowrap { "nowrap" }?,
+  attribute bgcolor { text }?,
+  attribute width { text }?,
+  attribute height { text }?
+# ======================================================
+
+# Set up to read in the CALS model configured to
+# merge with the XHTML table model
+
+# ======================================================
+tables.role.attrib = role.attrib
+# Add label and role attributes to table and informaltable
+bodyatt =
+  attribute floatstyle { text }?,
+  attribute rowheader { "firstcol" | "norowheader" }?,
+  label.attrib
+# Add common attributes to Table, TGroup, TBody, THead, TFoot, Row, 
+# EntryTbl, and Entry (and InformalTable element).
+secur =
+  common.attrib,
+  attribute class { text }?,
+  attribute style { text }?,
+  attribute title { text }?,
+  i18n,
+  events,
+  tables.role.attrib
+common.table.attribs = bodyatt, secur
+# Content model for Table (that also allows HTML tables)
+tbl.table.mdl =
+  (blockinfo?,
+   formalobject.title.content,
+   ndxterm.class*,
+   textobject*,
+   (graphic+ | mediaobject+ | tgroup+))
+  | (caption, (col* | colgroup*), thead?, tfoot?, (tbody+ | tr+))
+informal.tbl.table.mdl =
+  (textobject*, (graphic+ | mediaobject+ | tgroup+))
+  | ((col* | colgroup*), thead?, tfoot?, (tbody+ | tr+))
+# Attributes for Table (including HTML ones)
+
+# N.B. rules = (none | groups | rows | cols | all) but it can't be spec'd
+
+# that way because 'all' already occurs in a different enumeration in
+
+# CALS tables (frame).
+tbl.table.att =
+  attribute tabstyle { text }?,
+  attribute tocentry { yesorno.attvals }?,
+  attribute shortentry { yesorno.attvals }?,
+  attribute orient { "port" | "land" }?,
+  attribute pgwide { yesorno.attvals }?,
+  attribute summary { text }?,
+  attribute width { text }?,
+  attribute border { text }?,
+  attribute rules { text }?,
+  attribute cellspacing { text }?,
+  attribute cellpadding { text }?,
+  attribute align { "left" | "center" | "right" }?,
+  attribute bgcolor { text }?
+tbl.frame.attval =
+  "void"
+  | "above"
+  | "below"
+  | "hsides"
+  | "lhs"
+  | "rhs"
+  | "vsides"
+  | "box"
+  | "border"
+  | "top"
+  | "bottom"
+  | "topbot"
+  | "all"
+  | "sides"
+  | "none"
+# Allow either objects or inlines; beware of REs between elements.
+tbl.entry.mdl = para.char.mix | tabentry.mix
+# thead, tfoot, and tbody are defined in both table models,
+# so we set up parameter entities to define union models for them
+tbl.hdft.mdl = tr+ | (colspec*, row+)
+tbl.tbody.mdl = tr+ | row+
+# End of DocBook XML HTML Table Module V4.5 ............................
+
+# ......................................................................

Added: trunk/clfs/schema/docbook/4.5/rng/htmltblx.rng
===================================================================
--- trunk/clfs/schema/docbook/4.5/rng/htmltblx.rng	                        (rev 0)
+++ trunk/clfs/schema/docbook/4.5/rng/htmltblx.rng	2011-04-17 21:49:19 UTC (rev 1294)
@@ -0,0 +1,590 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ...................................................................... -->
+<!-- DocBook XML HTML Table Module V4.5 ................................... -->
+<!-- File htmltblx.mod .................................................... -->
+<!--
+  Copyright 2003-2006 ArborText, Inc., Norman Walsh, Sun Microsystems,
+  Inc., and the Organization for the Advancement of Structured Information
+  Standards (OASIS).
+  
+  $Id: htmltblx.mod 6340 2006-10-03 13:23:24Z nwalsh $
+  
+  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 at lists.oasis-open.org mailing list. For more
+  information, see http://www.oasis-open.org/docbook/.
+-->
+<!-- ...................................................................... -->
+<!--
+  This module contains the definitions for elements that are
+  isomorphic to the HTML elements. One could argue we should
+  instead have based ourselves on the XHTML Table Module, but the
+  HTML one is more like what browsers are likely to accept today
+  and users are likely to use.
+  
+  This module has been developed for use with the DocBook V4.5
+  "union table model" in which elements and attlists common to both
+  models are defined (as the union) in the CALS table module by
+  setting various parameter entities appropriately in this file.
+  
+  In DTD driver files referring to this module, please use an entity
+  declaration that uses the public identifier shown below:
+  
+  <!ENTITY % htmltbl PUBLIC
+  "-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN"
+  "htmltblx.mod">
+  %htmltbl;
+  
+  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.
+-->
+<!-- ======================= XHTML Tables ======================================= -->
+<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="html.coreattrs">
+    <ref name="common.attrib"/>
+    <optional>
+      <attribute name="class"/>
+    </optional>
+    <optional>
+      <attribute name="style"/>
+    </optional>
+    <optional>
+      <attribute name="title"/>
+    </optional>
+  </define>
+  <!-- Does not contain lang or dir because they are in %common.attribs -->
+  <define name="i18n">
+    <optional>
+      <attribute name="xml:lang">
+        <data type="NMTOKEN"/>
+      </attribute>
+    </optional>
+  </define>
+  <define name="events">
+    <optional>
+      <attribute name="onclick"/>
+    </optional>
+    <optional>
+      <attribute name="ondblclick"/>
+    </optional>
+    <optional>
+      <attribute name="onmousedown"/>
+    </optional>
+    <optional>
+      <attribute name="onmouseup"/>
+    </optional>
+    <optional>
+      <attribute name="onmouseover"/>
+    </optional>
+    <optional>
+      <attribute name="onmousemove"/>
+    </optional>
+    <optional>
+      <attribute name="onmouseout"/>
+    </optional>
+    <optional>
+      <attribute name="onkeypress"/>
+    </optional>
+    <optional>
+      <attribute name="onkeydown"/>
+    </optional>
+    <optional>
+      <attribute name="onkeyup"/>
+    </optional>
+  </define>
+  <define name="attrs">
+    <ref name="html.coreattrs"/>
+    <ref name="i18n"/>
+    <ref name="events"/>
+  </define>
+  <define name="cellhalign">
+    <optional>
+      <attribute name="align">
+        <choice>
+          <value>left</value>
+          <value>center</value>
+          <value>right</value>
+          <value>justify</value>
+          <value>char</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="char"/>
+    </optional>
+    <optional>
+      <attribute name="charoff"/>
+    </optional>
+  </define>
+  <define name="cellvalign">
+    <optional>
+      <attribute name="valign">
+        <choice>
+          <value>top</value>
+          <value>middle</value>
+          <value>bottom</value>
+          <value>baseline</value>
+        </choice>
+      </attribute>
+    </optional>
+  </define>
+  <!-- doc:A group of columns in an HTML table. -->
+  <define name="colgroup">
+    <element name="colgroup">
+      <ref name="colgroup.attlist"/>
+      <zeroOrMore>
+        <ref name="col"/>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- doc:Specifications for a column in an HTML table. -->
+  <define name="col">
+    <element name="col">
+      <ref name="col.attlist"/>
+      <empty/>
+    </element>
+  </define>
+  <!-- doc:A row in an HTML table. -->
+  <define name="tr">
+    <element name="tr">
+      <ref name="tr.attlist"/>
+      <oneOrMore>
+        <choice>
+          <ref name="th"/>
+          <ref name="td"/>
+        </choice>
+      </oneOrMore>
+    </element>
+  </define>
+  <!-- doc:A table header entry in an HTML table. -->
+  <define name="th">
+    <element name="th">
+      <ref name="th.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="para.char.mix"/>
+          <ref name="tabentry.mix"/>
+          <ref name="table"/>
+          <ref name="informaltable"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <!-- doc:A table ntry in an HTML table. -->
+  <define name="td">
+    <element name="td">
+      <ref name="td.attlist"/>
+      <zeroOrMore>
+        <choice>
+          <ref name="para.char.mix"/>
+          <ref name="tabentry.mix"/>
+          <ref name="table"/>
+          <ref name="informaltable"/>
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+  <define name="colgroup.attlist" combine="interleave">
+    <ref name="attrs"/>
+    <optional>
+      <attribute name="span" a:defaultValue="1"/>
+    </optional>
+    <optional>
+      <attribute name="width"/>
+    </optional>
+    <ref name="cellhalign"/>
+    <ref name="cellvalign"/>
+  </define>
+  <define name="col.attlist" combine="interleave">
+    <ref name="attrs"/>
+    <optional>
+      <attribute name="span" a:defaultValue="1"/>
+    </optional>
+    <optional>
+      <attribute name="width"/>
+    </optional>
+    <ref name="cellhalign"/>
+    <ref name="cellvalign"/>
+  </define>
+  <define name="tr.attlist" combine="interleave">
+    <ref name="attrs"/>
+    <ref name="cellhalign"/>
+    <ref name="cellvalign"/>
+    <optional>
+      <attribute name="bgcolor"/>
+    </optional>
+  </define>
+  <define name="th.attlist" combine="interleave">
+    <ref name="attrs"/>
+    <optional>
+      <attribute name="abbr"/>
+    </optional>
+    <optional>
+      <attribute name="axis"/>
+    </optional>
+    <optional>
+      <attribute name="headers">
+        <data type="IDREFS"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="scope">
+        <choice>
+          <value>row</value>
+          <value>col</value>
+          <value>rowgroup</value>
+          <value>colgroup</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rowspan" a:defaultValue="1"/>
+    </optional>
+    <optional>
+      <attribute name="colspan" a:defaultValue="1"/>
+    </optional>
+    <ref name="cellhalign"/>
+    <ref name="cellvalign"/>
+    <optional>
+      <attribute name="nowrap">
+        <choice>
+          <value>nowrap</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="bgcolor"/>
+    </optional>
+    <optional>
+      <attribute name="width"/>
+    </optional>
+    <optional>
+      <attribute name="height"/>
+    </optional>
+  </define>
+  <define name="td.attlist" combine="interleave">
+    <ref name="attrs"/>
+    <optional>
+      <attribute name="abbr"/>
+    </optional>
+    <optional>
+      <attribute name="axis"/>
+    </optional>
+    <optional>
+      <attribute name="headers">
+        <data type="IDREFS"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="scope">
+        <choice>
+          <value>row</value>
+          <value>col</value>
+          <value>rowgroup</value>
+          <value>colgroup</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="rowspan" a:defaultValue="1"/>
+    </optional>
+    <optional>
+      <attribute name="colspan" a:defaultValue="1"/>
+    </optional>
+    <ref name="cellhalign"/>
+    <ref name="cellvalign"/>
+    <optional>
+      <attribute name="nowrap">
+        <choice>
+          <value>nowrap</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="bgcolor"/>
+    </optional>
+    <optional>
+      <attribute name="width"/>
+    </optional>
+    <optional>
+      <attribute name="height"/>
+    </optional>
+  </define>
+  <!-- ====================================================== -->
+  <!--
+    Set up to read in the CALS model configured to
+    merge with the XHTML table model
+  -->
+  <!-- ====================================================== -->
+  <define name="tables.role.attrib">
+    <ref name="role.attrib"/>
+  </define>
+  <!-- Add label and role attributes to table and informaltable -->
+  <define name="bodyatt">
+    <optional>
+      <attribute name="floatstyle"/>
+    </optional>
+    <optional>
+      <attribute name="rowheader">
+        <choice>
+          <value>firstcol</value>
+          <value>norowheader</value>
+        </choice>
+      </attribute>
+    </optional>
+    <ref name="label.attrib"/>
+  </define>
+  <!--
+    Add common attributes to Table, TGroup, TBody, THead, TFoot, Row, 
+    EntryTbl, and Entry (and InformalTable element).
+  -->
+  <define name="secur">
+    <ref name="common.attrib"/>
+    <optional>
+      <attribute name="class"/>
+    </optional>
+    <optional>
+      <attribute name="style"/>
+    </optional>
+    <optional>
+      <attribute name="title"/>
+    </optional>
+    <ref name="i18n"/>
+    <ref name="events"/>
+    <ref name="tables.role.attrib"/>
+  </define>
+  <define name="common.table.attribs">
+    <ref name="bodyatt"/>
+    <ref name="secur"/>
+  </define>
+  <!-- Content model for Table (that also allows HTML tables) -->
+  <define name="tbl.table.mdl">
+    <choice>
+      <group>
+        <optional>
+          <ref name="blockinfo"/>
+        </optional>
+        <ref name="formalobject.title.content"/>
+        <zeroOrMore>
+          <ref name="ndxterm.class"/>
+        </zeroOrMore>
+        <zeroOrMore>
+          <ref name="textobject"/>
+        </zeroOrMore>
+        <choice>
+          <oneOrMore>
+            <ref name="graphic"/>
+          </oneOrMore>
+          <oneOrMore>
+            <ref name="mediaobject"/>
+          </oneOrMore>
+          <oneOrMore>
+            <ref name="tgroup"/>
+          </oneOrMore>
+        </choice>
+      </group>
+      <group>
+        <ref name="caption"/>
+        <choice>
+          <zeroOrMore>
+            <ref name="col"/>
+          </zeroOrMore>
+          <zeroOrMore>
+            <ref name="colgroup"/>
+          </zeroOrMore>
+        </choice>
+        <optional>
+          <ref name="thead"/>
+        </optional>
+        <optional>
+          <ref name="tfoot"/>
+        </optional>
+        <choice>
+          <oneOrMore>
+            <ref name="tbody"/>
+          </oneOrMore>
+          <oneOrMore>
+            <ref name="tr"/>
+          </oneOrMore>
+        </choice>
+      </group>
+    </choice>
+  </define>
+  <define name="informal.tbl.table.mdl">
+    <choice>
+      <group>
+        <zeroOrMore>
+          <ref name="textobject"/>
+        </zeroOrMore>
+        <choice>
+          <oneOrMore>
+            <ref name="graphic"/>
+          </oneOrMore>
+          <oneOrMore>
+            <ref name="mediaobject"/>
+          </oneOrMore>
+          <oneOrMore>
+            <ref name="tgroup"/>
+          </oneOrMore>
+        </choice>
+      </group>
+      <group>
+        <choice>
+          <zeroOrMore>
+            <ref name="col"/>
+          </zeroOrMore>
+          <zeroOrMore>
+            <ref name="colgroup"/>
+          </zeroOrMore>
+        </choice>
+        <optional>
+          <ref name="thead"/>
+        </optional>
+        <optional>
+          <ref name="tfoot"/>
+        </optional>
+        <choice>
+          <oneOrMore>
+            <ref name="tbody"/>
+          </oneOrMore>
+          <oneOrMore>
+            <ref name="tr"/>
+          </oneOrMore>
+        </choice>
+      </group>
+    </choice>
+  </define>
+  <!-- Attributes for Table (including HTML ones) -->
+  <!-- N.B. rules = (none | groups | rows | cols | all) but it can't be spec'd -->
+  <!-- that way because 'all' already occurs in a different enumeration in -->
+  <!-- CALS tables (frame). -->
+  <define name="tbl.table.att">
+    <optional>
+      <attribute name="tabstyle"/>
+    </optional>
+    <optional>
+      <attribute name="tocentry">
+        <ref name="yesorno.attvals"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="shortentry">
+        <ref name="yesorno.attvals"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="orient">
+        <choice>
+          <value>port</value>
+          <value>land</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="pgwide">
+        <ref name="yesorno.attvals"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="summary"/>
+    </optional>
+    <optional>
+      <attribute name="width"/>
+    </optional>
+    <optional>
+      <attribute name="border"/>
+    </optional>
+    <optional>
+      <attribute name="rules"/>
+    </optional>
+    <optional>
+      <attribute name="cellspacing"/>
+    </optional>
+    <optional>
+      <attribute name="cellpadding"/>
+    </optional>
+    <optional>
+      <attribute name="align">
+        <choice>
+          <value>left</value>
+          <value>center</value>
+          <value>right</value>
+        </choice>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="bgcolor"/>
+    </optional>
+  </define>
+  <define name="tbl.frame.attval">
+    <choice>
+      <value>void</value>
+      <value>above</value>
+      <value>below</value>
+      <value>hsides</value>
+      <value>lhs</value>
+      <value>rhs</value>
+      <value>vsides</value>
+      <value>box</value>
+      <value>border</value>
+      <value>top</value>
+      <value>bottom</value>
+      <value>topbot</value>
+      <value>all</value>
+      <value>sides</value>
+      <value>none</value>
+    </choice>
+  </define>
+  <!-- Allow either objects or inlines; beware of REs between elements. -->
+  <define name="tbl.entry.mdl">
+    <choice>
+      <ref name="para.char.mix"/>
+      <ref name="tabentry.mix"/>
+    </choice>
+  </define>
+  <!--
+    thead, tfoot, and tbody are defined in both table models,
+    so we set up parameter entities to define union models for them
+  -->
+  <define name="tbl.hdft.mdl">
+    <choice>
+      <oneOrMore>
+        <ref name="tr"/>
+      </oneOrMore>
+      <group>
+        <zeroOrMore>
+          <ref name="colspec"/>
+        </zeroOrMore>
+        <oneOrMore>
+          <ref name="row"/>
+        </oneOrMore>
+      </group>
+    </choice>
+  </define>
+  <define name="tbl.tbody.mdl">
+    <choice>
+      <oneOrMore>
+        <ref name="tr"/>
+      </oneOrMore>
+      <oneOrMore>
+        <ref name="row"/>
+      </oneOrMore>
+    </choice>
+  </define>
+</grammar>
+<!-- End of DocBook XML HTML Table Module V4.5 ............................ -->
+<!-- ...................................................................... -->

Modified: trunk/clfs/temp-system/64/cloog-ppl.xml
===================================================================
--- trunk/clfs/temp-system/64/cloog-ppl.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/temp-system/64/cloog-ppl.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -24,14 +24,6 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/cloog-ppl.xml"
-    xpointer="xpointer(//*[@os='p1'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/cloog-ppl.xml"
-    xpointer="xpointer(//*[@os='p2'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/cloog-ppl.xml"
     xpointer="xpointer(//*[@os='s1'])"/>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/temp-system/64/mpc.xml
===================================================================
--- trunk/clfs/temp-system/64/mpc.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/temp-system/64/mpc.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -26,7 +26,8 @@
     href="../common/mpc.xml"
     xpointer="xpointer(//*[@os='a'])"/>
 
-<screen os="b"><userinput>CC="${CC} ${BUILD64}" ./configure --prefix=/tools \
+<screen os="b"><userinput>CC="${CC} ${BUILD64}" EGREP="grep -E" \
+  ./configure --prefix=/tools \
     --build=${CLFS_HOST} --host=${CLFS_TARGET}</userinput></screen>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"

Modified: trunk/clfs/temp-system/64/ppl.xml
===================================================================
--- trunk/clfs/temp-system/64/ppl.xml	2011-04-17 04:17:26 UTC (rev 1293)
+++ trunk/clfs/temp-system/64/ppl.xml	2011-04-17 21:49:19 UTC (rev 1294)
@@ -24,14 +24,6 @@
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
     href="../common/ppl.xml"
-    xpointer="xpointer(//*[@os='s1'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/ppl.xml"
-    xpointer="xpointer(//*[@os='s2'])"/>
-
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
-    href="../common/ppl