<!-- ====================================================================== -->
<!-- DocBk30 XML Document Hierarchy V1.0
     Part of the DocBk30 XML V1.0 DTD
     http://nwalsh.com/docbook/

     See COPYRIGHT for more information

     Please direct all questions and comments about this DTD to
     Norman Walsh, <ndw@nwalsh.com>.
                                                                            -->
<!-- ====================================================================== -->

<!-- ...................................................................... -->
<!-- Entities for module inclusions ....................................... -->

<!ENTITY % dbhier.redecl.module		"IGNORE">
<!ENTITY % dbhier.redecl2.module	"IGNORE">

<!-- ...................................................................... -->
<!-- Entities for element classes ......................................... -->

<!ENTITY % local.appendix.class "">
<!ENTITY % appendix.class	"appendix %local.appendix.class;">

<!ENTITY % local.article.class "">
<!ENTITY % article.class	"article %local.article.class;">

<!ENTITY % local.book.class "">
<!ENTITY % book.class		"book %local.book.class;">

<!ENTITY % local.chapter.class "">
<!ENTITY % chapter.class	"chapter %local.chapter.class;">

<!ENTITY % local.index.class "">
<!ENTITY % index.class		"index|setindex %local.index.class;">

<!ENTITY % local.refentry.class "">
<!ENTITY % refentry.class	"refentry %local.refentry.class;">

<!ENTITY % local.nav.class "">
<!ENTITY % nav.class		"toc|lot|index|glossary|bibliography 
				%local.nav.class;">

<!-- Redeclaration placeholder ............................................ -->

<!-- For redeclaring entities that are declared after this point while
     retaining their references to the entities that are declared before
     this point -->

<![%dbhier.redecl.module;[
%rdbhier;
<!--end of dbhier.redecl.module-->]]>

<!-- ...................................................................... -->
<!-- Entities for element mixtures ........................................ -->

<!ENTITY % local.divcomponent.mix "">
<!ENTITY % divcomponent.mix
		"%list.class;		|%admon.class;
		|%linespecific.class;	|%synop.class;
		|%para.class;		|%informal.class;
		|%formal.class;		|%compound.class;
		|%genobj.class;		|%descobj.class;
		|%ndxterm.class;        |beginpage
		%local.divcomponent.mix;">

<!ENTITY % local.refcomponent.mix "">
<!ENTITY % refcomponent.mix
		"%list.class;		|%admon.class;
		|%linespecific.class;	|%synop.class;
		|%para.class;		|%informal.class;
		|%formal.class;		|%compound.class;
		|%genobj.class;		|%descobj.class;
		|%ndxterm.class;        |beginpage
		%local.refcomponent.mix;">

<!ENTITY % local.indexdivcomponent.mix "">
<!ENTITY % indexdivcomponent.mix
		"itemizedlist|orderedlist|variablelist|simplelist
		|%linespecific.class;	|%synop.class;
		|%para.class;		|%informal.class;
		|anchor|comment
		|%link.char.class;
 		                        |beginpage
		%local.indexdivcomponent.mix;">

<!ENTITY % local.refname.char.mix "">
<!ENTITY % refname.char.mix
		"#PCDATA
		|%tech.char.class;
		%local.refname.char.mix;">

<!ENTITY % local.partcontent.mix "">
<!ENTITY % partcontent.mix
		"%appendix.class;|%chapter.class;|%nav.class;|%article.class;
		|preface|%refentry.class;|reference %local.partcontent.mix;">

<!ENTITY % local.refinline.char.mix "">
<!ENTITY % refinline.char.mix
		"#PCDATA
		|%xref.char.class;	|%gen.char.class;
		|%link.char.class;	|%tech.char.class;
		|%base.char.class;	|%docinfo.char.class;
		|%other.char.class;
		%local.refinline.char.mix;">

<!ENTITY % local.refclass.char.mix "">
<!ENTITY % refclass.char.mix
		"#PCDATA
		|application
		%local.refclass.char.mix;">

<!-- Redeclaration placeholder 2 .......................................... -->

<!-- For redeclaring entities that are declared after this point while
     retaining their references to the entities that are declared before
     this point -->

<![%dbhier.redecl2.module;[
%rdbhier2;
<!--end of dbhier.redecl2.module-->]]>

<!-- ...................................................................... -->
<!-- Entities for content models .......................................... -->

<!ENTITY % div.title.content
	"title, titleabbrev?">

<!--FUTURE USE (V4.0):
......................
The DocInfo element will be split out into ChapterInfo, AppendixInfo,
etc.
......................
-->
<!ENTITY % bookcomponent.title.content
	"docinfo?, title, titleabbrev?">

<!ENTITY % sect.title.content
	"title, titleabbrev?">

<!ENTITY % refsect.title.content
	"title, titleabbrev?">

<!ENTITY % bookcomponent.content
	"((%divcomponent.mix;)+, 
	(sect1*|(%refentry.class;)*|simplesect*))
	| (sect1+|(%refentry.class;)+|simplesect+)">

<!-- ...................................................................... -->
<!-- Set and SetInfo ...................................................... -->

<!ENTITY % set.content.module "INCLUDE">
<![%set.content.module;[
<!ENTITY % set.module "INCLUDE">
<![%set.module;[
<!ENTITY % local.set.attrib "">
<!ENTITY % set.role.attrib "%role.attrib;">
<!ELEMENT set ((%div.title.content;)?, setinfo?, toc?, (%book.class;),
		(%book.class;)+, setindex?)>

<!-- FPI: SGML formal public identifier -->

<!ATTLIST set
		fpi		CDATA		#IMPLIED
		%status.attrib;
		%common.attrib;
		%set.role.attrib;
		%local.set.attrib;
>
<!--end of set.module-->]]>

<!ENTITY % setinfo.module "INCLUDE">
<![%setinfo.module;[
<!ENTITY % local.setinfo.attrib "">
<!ENTITY % setinfo.role.attrib "%role.attrib;">
<!ELEMENT setinfo ((graphic | legalnotice | modespec | subjectset 
	| keywordset | itermset | %bibliocomponent.mix;)+)>

<!-- Contents: IDs of the ToC, Books, and SetIndex that comprise 
		the set, in the order of their appearance -->

<!ATTLIST setinfo
		contents	IDREFS		#IMPLIED
		%common.attrib;
		%setinfo.role.attrib;
		%local.setinfo.attrib;
>
<!--end of setinfo.module-->]]>
<!--end of set.content.module-->]]>

<!-- ...................................................................... -->
<!-- Book and BookInfo .................................................... -->

<!ENTITY % book.content.module "INCLUDE">
<![%book.content.module;[
<!ENTITY % book.module "INCLUDE">
<![%book.module;[
<!--FUTURE USE (V4.0):
......................
The %article.class; entity *may* be removed from the Book content model.
(Article may be made part of a new top-level document hierarchy.)
......................
-->

<!ENTITY % local.book.attrib "">
<!ENTITY % book.role.attrib "%role.attrib;">
<!ELEMENT book ((%div.title.content;)?, bookinfo?, dedication?, toc?, lot*, 
		(glossary|bibliography|preface)*,
		(((%chapter.class;)+, reference*) | part+ 
		| reference+ | (%article.class;)+), 
		(%appendix.class;)*, (glossary|bibliography)*, 
		(%index.class;)*, lot*, toc?)>

<!-- FPI: SGML formal public identifier -->

<!ATTLIST book		fpi		CDATA		#IMPLIED
		%label.attrib;
		%status.attrib;
		%common.attrib;
		%book.role.attrib;
		%local.book.attrib;
>
<!--end of book.module-->]]>

<!ENTITY % bookinfo.module "INCLUDE">
<![%bookinfo.module;[
<!--FUTURE USE (V4.0):
......................
BookBiblio will be discarded.
......................
-->
<!ENTITY % local.bookinfo.attrib "">
<!ENTITY % bookinfo.role.attrib "%role.attrib;">
<!ELEMENT bookinfo ((graphic | legalnotice | modespec | subjectset 
	| keywordset | itermset | %bibliocomponent.mix; | bookbiblio)+)>

<!-- Contents: IDs of the ToC, LoTs, Prefaces, Parts, Chapters,
		Appendixes, References, GLossary, Bibliography, and indexes
		comprising the Book, in the order of their appearance -->

<!ATTLIST bookinfo
		contents	IDREFS		#IMPLIED
		%common.attrib;
		%bookinfo.role.attrib;
		%local.bookinfo.attrib;
>
<!--end of bookinfo.module-->]]>
<!--end of book.content.module-->]]>

<!-- ...................................................................... -->
<!-- Dedication, ToC, and LoT ............................................. -->

<!ENTITY % dedication.module "INCLUDE">
<![%dedication.module;[
<!ENTITY % local.dedication.attrib "">
<!ENTITY % dedication.role.attrib "%role.attrib;">
<!ELEMENT dedication ((%sect.title.content;)?, (%legalnotice.mix;)+)>
<!ATTLIST dedication
		%status.attrib;
		%common.attrib;
		%dedication.role.attrib;
		%local.dedication.attrib;
>
<!--end of dedication.module-->]]>

<!ENTITY % toc.content.module "INCLUDE">
<![%toc.content.module;[
<!ENTITY % toc.module "INCLUDE">
<![%toc.module;[
<!ENTITY % local.toc.attrib "">
<!ENTITY % toc.role.attrib "%role.attrib;">
<!ELEMENT toc ((%bookcomponent.title.content;)?, tocfront*,
		(tocpart | tocchap)*, tocback*)>
<!ATTLIST toc
		%pagenum.attrib;
		%common.attrib;
		%toc.role.attrib;
		%local.toc.attrib;
>
<!--end of toc.module-->]]>

<!ENTITY % tocfront.module "INCLUDE">
<![%tocfront.module;[
<!ENTITY % local.tocfront.attrib "">
<!ENTITY % tocfront.role.attrib "%role.attrib;">
<!ELEMENT tocfront (%para.char.mix;)*>

<!-- to element that this entry represents -->

<!ATTLIST tocfront
		%label.attrib;
		%linkend.attrib;		%pagenum.attrib;
		%common.attrib;
		%tocfront.role.attrib;
		%local.tocfront.attrib;
>
<!--end of tocfront.module-->]]>

<!ENTITY % tocentry.module "INCLUDE">
<![%tocentry.module;[
<!ENTITY % local.tocentry.attrib "">
<!ENTITY % tocentry.role.attrib "%role.attrib;">
<!ELEMENT tocentry (%para.char.mix;)*>

<!-- to element that this entry represents -->

<!ATTLIST tocentry
		%linkend.attrib;		%pagenum.attrib;
		%common.attrib;
		%tocentry.role.attrib;
		%local.tocentry.attrib;
>
<!--end of tocentry.module-->]]>

<!ENTITY % tocpart.module "INCLUDE">
<![%tocpart.module;[
<!ENTITY % local.tocpart.attrib "">
<!ENTITY % tocpart.role.attrib "%role.attrib;">
<!ELEMENT tocpart (tocentry+, tocchap*)>
<!ATTLIST tocpart
		%common.attrib;
		%tocpart.role.attrib;
		%local.tocpart.attrib;
>
<!--end of tocpart.module-->]]>

<!ENTITY % tocchap.module "INCLUDE">
<![%tocchap.module;[
<!ENTITY % local.tocchap.attrib "">
<!ENTITY % tocchap.role.attrib "%role.attrib;">
<!ELEMENT tocchap (tocentry+, toclevel1*)>
<!ATTLIST tocchap
		%label.attrib;
		%common.attrib;
		%tocchap.role.attrib;
		%local.tocchap.attrib;
>
<!--end of tocchap.module-->]]>

<!ENTITY % toclevel1.module "INCLUDE">
<![%toclevel1.module;[
<!ENTITY % local.toclevel1.attrib "">
<!ENTITY % toclevel1.role.attrib "%role.attrib;">
<!ELEMENT toclevel1 (tocentry+, toclevel2*)>
<!ATTLIST toclevel1
		%common.attrib;
		%toclevel1.role.attrib;
		%local.toclevel1.attrib;
>
<!--end of toclevel1.module-->]]>

<!ENTITY % toclevel2.module "INCLUDE">
<![%toclevel2.module;[
<!ENTITY % local.toclevel2.attrib "">
<!ENTITY % toclevel2.role.attrib "%role.attrib;">
<!ELEMENT toclevel2 (tocentry+, toclevel3*)>
<!ATTLIST toclevel2
		%common.attrib;
		%toclevel2.role.attrib;
		%local.toclevel2.attrib;
>
<!--end of toclevel2.module-->]]>

<!ENTITY % toclevel3.module "INCLUDE">
<![%toclevel3.module;[
<!ENTITY % local.toclevel3.attrib "">
<!ENTITY % toclevel3.role.attrib "%role.attrib;">
<!ELEMENT toclevel3 (tocentry+, toclevel4*)>
<!ATTLIST toclevel3
		%common.attrib;
		%toclevel3.role.attrib;
		%local.toclevel3.attrib;
>
<!--end of toclevel3.module-->]]>

<!ENTITY % toclevel4.module "INCLUDE">
<![%toclevel4.module;[
<!ENTITY % local.toclevel4.attrib "">
<!ENTITY % toclevel4.role.attrib "%role.attrib;">
<!ELEMENT toclevel4 (tocentry+, toclevel5*)>
<!ATTLIST toclevel4
		%common.attrib;
		%toclevel4.role.attrib;
		%local.toclevel4.attrib;
>
<!--end of toclevel4.module-->]]>

<!ENTITY % toclevel5.module "INCLUDE">
<![%toclevel5.module;[
<!ENTITY % local.toclevel5.attrib "">
<!ENTITY % toclevel5.role.attrib "%role.attrib;">
<!ELEMENT toclevel5 (tocentry+)>
<!ATTLIST toclevel5
		%common.attrib;
		%toclevel5.role.attrib;
		%local.toclevel5.attrib;
>
<!--end of toclevel5.module-->]]>

<!ENTITY % tocback.module "INCLUDE">
<![%tocback.module;[
<!ENTITY % local.tocback.attrib "">
<!ENTITY % tocback.role.attrib "%role.attrib;">
<!ELEMENT tocback (%para.char.mix;)*>

<!-- to element that this entry represents -->

<!ATTLIST tocback
		%label.attrib;
		%linkend.attrib;		%pagenum.attrib;
		%common.attrib;
		%tocback.role.attrib;
		%local.tocback.attrib;
>
<!--end of tocback.module-->]]>
<!--end of toc.content.module-->]]>

<!ENTITY % lot.content.module "INCLUDE">
<![%lot.content.module;[
<!ENTITY % lot.module "INCLUDE">
<![%lot.module;[
<!ENTITY % local.lot.attrib "">
<!ENTITY % lot.role.attrib "%role.attrib;">
<!ELEMENT lot ((%bookcomponent.title.content;)?, lotentry*)>
<!ATTLIST lot
		%label.attrib;
		%common.attrib;
		%lot.role.attrib;
		%local.lot.attrib;
>
<!--end of lot.module-->]]>

<!ENTITY % lotentry.module "INCLUDE">
<![%lotentry.module;[
<!ENTITY % local.lotentry.attrib "">
<!ENTITY % lotentry.role.attrib "%role.attrib;">
<!ELEMENT lotentry (%para.char.mix;)*>

<!-- SrcCredit: Information about the source of the entry, 
		as for a list of illustrations -->

<!ATTLIST lotentry
		srccredit	CDATA		#IMPLIED
		%pagenum.attrib;
		%common.attrib;
		%lotentry.role.attrib;
		%local.lotentry.attrib;
>
<!--end of lotentry.module-->]]>
<!--end of lot.content.module-->]]>

<!-- ...................................................................... -->
<!-- Appendix, Chapter, Part, Preface, Reference, PartIntro ............... -->

<!ENTITY % appendix.module "INCLUDE">
<![%appendix.module;[
<!ENTITY % local.appendix.attrib "">
<!ENTITY % appendix.role.attrib "%role.attrib;">
<!ELEMENT appendix ((%bookcomponent.title.content;), tocchap?,
		(%bookcomponent.content;))>
<!ATTLIST appendix
		%label.attrib;
		%status.attrib;
		%common.attrib;
		%appendix.role.attrib;
		%local.appendix.attrib;
>
<!--end of appendix.module-->]]>

<!ENTITY % chapter.module "INCLUDE">
<![%chapter.module;[
<!ENTITY % local.chapter.attrib "">
<!ENTITY % chapter.role.attrib "%role.attrib;">
<!ELEMENT chapter ((%bookcomponent.title.content;), tocchap?,
		(%bookcomponent.content;), (index | glossary | bibliography)*)>
<!ATTLIST chapter
		%label.attrib;
		%status.attrib;
		%common.attrib;
		%chapter.role.attrib;
		%local.chapter.attrib;
>
<!--end of chapter.module-->]]>

<!ENTITY % part.module "INCLUDE">
<![%part.module;[

<!-- Note that Part was to have its content model reduced in V4.0.  This
change will not be made after all. -->

<!ENTITY % local.part.attrib "">
<!ENTITY % part.role.attrib "%role.attrib;">
<!ELEMENT part ((%bookcomponent.title.content;), partintro?,
		(%partcontent.mix;)+)>
<!ATTLIST part
		%label.attrib;
		%status.attrib;
		%common.attrib;
		%part.role.attrib;
		%local.part.attrib;
>
<!--ELEMENT PartIntro (defined below)-->
<!--end of part.module-->]]>

<!ENTITY % preface.module "INCLUDE">
<![%preface.module;[
<!ENTITY % local.preface.attrib "">
<!ENTITY % preface.role.attrib "%role.attrib;">
<!ELEMENT preface ((%bookcomponent.title.content;), 
		(%bookcomponent.content;))>
<!ATTLIST preface
		%status.attrib;
		%common.attrib;
		%preface.role.attrib;
		%local.preface.attrib;
>
<!--end of preface.module-->]]>

<!ENTITY % reference.module "INCLUDE">
<![%reference.module;[
<!ENTITY % local.reference.attrib "">
<!ENTITY % reference.role.attrib "%role.attrib;">
<!ELEMENT reference ((%bookcomponent.title.content;), partintro?,
		(%refentry.class;)+)>
<!ATTLIST reference
		%label.attrib;
		%status.attrib;
		%common.attrib;
		%reference.role.attrib;
		%local.reference.attrib;
>
<!--ELEMENT PartIntro (defined below)-->
<!--end of reference.module-->]]>

<!ENTITY % partintro.module "INCLUDE">
<![%partintro.module;[
<!ENTITY % local.partintro.attrib "">
<!ENTITY % partintro.role.attrib "%role.attrib;">
<!ELEMENT partintro ((%div.title.content;)?, (%bookcomponent.content;))>
<!ATTLIST partintro	
		%label.attrib;
		%common.attrib;
		%local.partintro.attrib;
		%partintro.role.attrib;
>
<!--end of partintro.module-->]]>

<!-- ...................................................................... -->
<!-- Other Info elements .................................................. -->

<!ENTITY % otherinfo.module "INCLUDE">
<![%otherinfo.module;[
<!ENTITY % local.otherinfo.attrib "">
<!ENTITY % otherinfo.role.attrib "%role.attrib;">

<!ELEMENT docinfo ((graphic | legalnotice | modespec 
	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
<!ATTLIST docinfo
		%common.attrib;
		%otherinfo.role.attrib;
		%local.otherinfo.attrib;
>

<!ELEMENT sect1info ((graphic | legalnotice | modespec 
	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
<!ATTLIST sect1info
		%common.attrib;
		%otherinfo.role.attrib;
		%local.otherinfo.attrib;
>

<!ELEMENT sect2info ((graphic | legalnotice | modespec 
	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
<!ATTLIST sect2info
		%common.attrib;
		%otherinfo.role.attrib;
		%local.otherinfo.attrib;
>

<!ELEMENT sect3info ((graphic | legalnotice | modespec 
	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
<!ATTLIST sect3info
		%common.attrib;
		%otherinfo.role.attrib;
		%local.otherinfo.attrib;
>

<!ELEMENT sect4info ((graphic | legalnotice | modespec 
	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
<!ATTLIST sect4info
		%common.attrib;
		%otherinfo.role.attrib;
		%local.otherinfo.attrib;
>

<!ELEMENT sect5info ((graphic | legalnotice | modespec 
	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
<!ATTLIST sect5info
		%common.attrib;
		%otherinfo.role.attrib;
		%local.otherinfo.attrib;
>

<!ELEMENT refsect1info ((graphic | legalnotice | modespec 
	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
<!ATTLIST refsect1info
		%common.attrib;
		%otherinfo.role.attrib;
		%local.otherinfo.attrib;
>

<!ELEMENT refsect2info ((graphic | legalnotice | modespec 
	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
<!ATTLIST refsect2info
		%common.attrib;
		%otherinfo.role.attrib;
		%local.otherinfo.attrib;
>

<!ELEMENT refsect3info ((graphic | legalnotice | modespec 
	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
<!ATTLIST refsect3info
		%common.attrib;
		%otherinfo.role.attrib;
		%local.otherinfo.attrib;
>

<!ELEMENT refsynopsisdivinfo ((graphic | legalnotice | modespec 
	| subjectset | keywordset | itermset | %bibliocomponent.mix;)+)>
<!ATTLIST refsynopsisdivinfo
		%common.attrib;
		%otherinfo.role.attrib;
		%local.otherinfo.attrib;
>

<!--end of otherinfo.module-->]]>

<!-- ...................................................................... -->
<!-- Sect1, Sect2, Sect3, Sect4, Sect5 .................................... -->

<!ENTITY % sect1.module "INCLUDE">
<![%sect1.module;[
<!ENTITY % local.sect1.attrib "">
<!ENTITY % sect1.role.attrib "%role.attrib;">
<!ELEMENT sect1 (sect1info?, (%sect.title.content;), (%nav.class;)*,
		(((%divcomponent.mix;)+, 
		((%refentry.class;)* | sect2* | simplesect*))
		| (%refentry.class;)+ | sect2+ | simplesect+), (%nav.class;)*)>

<!-- Renderas: Indicates the format in which the heading should
		appear -->

<!ATTLIST sect1
		renderas	(sect2
				|sect3
				|sect4
				|sect5)		#IMPLIED
		%label.attrib;
		%status.attrib;
		%common.attrib;
		%sect1.role.attrib;
		%local.sect1.attrib;
>
<!--end of sect1.module-->]]>

<!ENTITY % sect2.module "INCLUDE">
<![%sect2.module;[
<!ENTITY % local.sect2.attrib "">
<!ENTITY % sect2.role.attrib "%role.attrib;">
<!ELEMENT sect2 (sect2info?, (%sect.title.content;), (%nav.class;)*,
		(((%divcomponent.mix;)+, 
		((%refentry.class;)* | sect3* | simplesect*))
		| (%refentry.class;)+ | sect3+ | simplesect+), (%nav.class;)*)>

<!-- Renderas: Indicates the format in which the heading should
		appear -->

<!ATTLIST sect2
		renderas	(sect1
				|sect3
				|sect4
				|sect5)		#IMPLIED
		%label.attrib;
		%status.attrib;
		%common.attrib;
		%sect2.role.attrib;
		%local.sect2.attrib;
>
<!--end of sect2.module-->]]>

<!ENTITY % sect3.module "INCLUDE">
<![%sect3.module;[
<!ENTITY % local.sect3.attrib "">
<!ENTITY % sect3.role.attrib "%role.attrib;">
<!ELEMENT sect3 (sect3info?, (%sect.title.content;), (%nav.class;)*,
		(((%divcomponent.mix;)+, 
		((%refentry.class;)* | sect4* | simplesect*))
		| (%refentry.class;)+ | sect4+ | simplesect+), (%nav.class;)*)>

<!-- Renderas: Indicates the format in which the heading should
		appear -->

<!ATTLIST sect3
		renderas	(sect1
				|sect2
				|sect4
				|sect5)		#IMPLIED
		%label.attrib;
		%status.attrib;
		%common.attrib;
		%sect3.role.attrib;
		%local.sect3.attrib;
>
<!--end of sect3.module-->]]>

<!ENTITY % sect4.module "INCLUDE">
<![%sect4.module;[
<!ENTITY % local.sect4.attrib "">
<!ENTITY % sect4.role.attrib "%role.attrib;">
<!ELEMENT sect4 (sect4info?, (%sect.title.content;), (%nav.class;)*,
		(((%divcomponent.mix;)+, 
		((%refentry.class;)* | sect5* | simplesect*))
		| (%refentry.class;)+ | sect5+ | simplesect+), (%nav.class;)*)>

<!-- Renderas: Indicates the format in which the heading should
		appear -->

<!ATTLIST sect4
		renderas	(sect1
				|sect2
				|sect3
				|sect5)		#IMPLIED
		%label.attrib;
		%status.attrib;
		%common.attrib;
		%sect4.role.attrib;
		%local.sect4.attrib;
>
<!--end of sect4.module-->]]>

<!ENTITY % sect5.module "INCLUDE">
<![%sect5.module;[
<!ENTITY % local.sect5.attrib "">
<!ENTITY % sect5.role.attrib "%role.attrib;">
<!ELEMENT sect5 (sect5info?, (%sect.title.content;), (%nav.class;)*,
		(((%divcomponent.mix;)+, ((%refentry.class;)* | simplesect*))
		| (%refentry.class;)+ | simplesect+), (%nav.class;)*)>

<!-- Renderas: Indicates the format in which the heading should
		appear -->

<!ATTLIST sect5
		renderas	(sect1
				|sect2
				|sect3
				|sect4)		#IMPLIED
		%label.attrib;
		%status.attrib;
		%common.attrib;
		%sect5.role.attrib;
		%local.sect5.attrib;
>
<!--end of sect5.module-->]]>

<!ENTITY % simplesect.module "INCLUDE">
<![%simplesect.module;[
<!ENTITY % local.simplesect.attrib "">
<!ENTITY % simplesect.role.attrib "%role.attrib;">
<!ELEMENT simplesect ((%sect.title.content;), (%divcomponent.mix;)+)>
<!ATTLIST simplesect
		%common.attrib;
		%simplesect.role.attrib;
		%local.simplesect.attrib;
>
<!--end of simplesect.module-->]]>

<!-- ...................................................................... -->
<!-- Bibliography ......................................................... -->

<!ENTITY % bibliography.content.module "INCLUDE">
<![%bibliography.content.module;[
<!ENTITY % bibliography.module "INCLUDE">
<![%bibliography.module;[
<!ENTITY % local.bibliography.attrib "">
<!ENTITY % bibliography.role.attrib "%role.attrib;">
<!ELEMENT bibliography ((%bookcomponent.title.content;)?,
		(%component.mix;)*, 
		(bibliodiv+ | (biblioentry|bibliomixed)+))>
<!ATTLIST bibliography
		%status.attrib;
		%common.attrib;
		%bibliography.role.attrib;
		%local.bibliography.attrib;
>
<!--end of bibliography.module-->]]>

<!ENTITY % bibliodiv.module "INCLUDE">
<![%bibliodiv.module;[
<!ENTITY % local.bibliodiv.attrib "">
<!ENTITY % bibliodiv.role.attrib "%role.attrib;">
<!ELEMENT bibliodiv ((%sect.title.content;)?, (%component.mix;)*,
		(biblioentry|bibliomixed)+)>
<!ATTLIST bibliodiv
		%status.attrib;
		%common.attrib;
		%bibliodiv.role.attrib;
		%local.bibliodiv.attrib;
>
<!--end of bibliodiv.module-->]]>
<!--end of bibliography.content.module-->]]>

<!-- ...................................................................... -->
<!-- Glossary ............................................................. -->

<!ENTITY % glossary.content.module "INCLUDE">
<![%glossary.content.module;[
<!ENTITY % glossary.module "INCLUDE">
<![%glossary.module;[
<!ENTITY % local.glossary.attrib "">
<!ENTITY % glossary.role.attrib "%role.attrib;">
<!ELEMENT glossary ((%bookcomponent.title.content;)?, (%component.mix;)*,
		(glossdiv+ | glossentry+), bibliography?)>
<!ATTLIST glossary
		%status.attrib;
		%common.attrib;
		%glossary.role.attrib;
		%local.glossary.attrib;
>
<!--end of glossary.module-->]]>

<!ENTITY % glossdiv.module "INCLUDE">
<![%glossdiv.module;[
<!ENTITY % local.glossdiv.attrib "">
<!ENTITY % glossdiv.role.attrib "%role.attrib;">
<!ELEMENT glossdiv ((%sect.title.content;), (%component.mix;)*,
		glossentry+)>
<!ATTLIST glossdiv
		%status.attrib;
		%common.attrib;
		%glossdiv.role.attrib;
		%local.glossdiv.attrib;
>
<!--end of glossdiv.module-->]]>
<!--end of glossary.content.module-->]]>

<!-- ...................................................................... -->
<!-- Index and SetIndex ................................................... -->

<!ENTITY % index.content.module "INCLUDE">
<![%index.content.module;[
<!ENTITY % indexes.module "INCLUDE">
<![%indexes.module;[
<!ENTITY % local.indexes.attrib "">
<!ENTITY % indexes.role.attrib "%role.attrib;">
<!ELEMENT index ((%bookcomponent.title.content;)?,
		(%component.mix;)*, (indexdiv* | indexentry*))>
<!ATTLIST index
		%common.attrib;
		%indexes.role.attrib;
		%local.indexes.attrib;
>
<!ELEMENT setindex ((%bookcomponent.title.content;)?,
		(%component.mix;)*, (indexdiv* | indexentry*))>
<!ATTLIST setindex
		%common.attrib;
		%indexes.role.attrib;
		%local.indexes.attrib;
>
<!--end of indexes.module-->]]>

<!ENTITY % indexdiv.module "INCLUDE">
<![%indexdiv.module;[

<!-- SegmentedList in this content is useful for marking up permuted
     indices. -->

<!ENTITY % local.indexdiv.attrib "">
<!ENTITY % indexdiv.role.attrib "%role.attrib;">
<!ELEMENT indexdiv ((%sect.title.content;)?, ((%indexdivcomponent.mix;)*,
		(indexentry+ | segmentedlist)))>
<!ATTLIST indexdiv
		%common.attrib;
		%indexdiv.role.attrib;
		%local.indexdiv.attrib;
>
<!--end of indexdiv.module-->]]>

<!ENTITY % indexentry.module "INCLUDE">
<![%indexentry.module;[
<!-- Index entries appear in the index, not the text. -->

<!ENTITY % local.indexentry.attrib "">
<!ENTITY % indexentry.role.attrib "%role.attrib;">
<!ELEMENT indexentry (primaryie, (seeie|seealsoie)*,
		(secondaryie, (seeie|seealsoie|tertiaryie)*)*)>
<!ATTLIST indexentry
		%common.attrib;
		%indexentry.role.attrib;
		%local.indexentry.attrib;
>
<!--end of indexentry.module-->]]>

<!ENTITY % primsecterie.module "INCLUDE">
<![%primsecterie.module;[
<!ENTITY % local.primsecterie.attrib "">
<!ENTITY % primsecterie.role.attrib "%role.attrib;">
<!ELEMENT primaryie (%ndxterm.char.mix;)*>

<!-- to IndexTerms that these entries represent -->
<!ATTLIST primaryie
		%linkends.attrib;		%common.attrib;
		%primsecterie.role.attrib;
		%local.primsecterie.attrib;
>
<!ELEMENT secondaryie (%ndxterm.char.mix;)*>

<!-- to IndexTerms that these entries represent -->
<!ATTLIST secondaryie
		%linkends.attrib;		%common.attrib;
		%primsecterie.role.attrib;
		%local.primsecterie.attrib;
>
<!ELEMENT tertiaryie (%ndxterm.char.mix;)*>

<!-- to IndexTerms that these entries represent -->
<!ATTLIST tertiaryie
		%linkends.attrib;		%common.attrib;
		%primsecterie.role.attrib;
		%local.primsecterie.attrib;
>

<!--end of primsecterie.module-->]]>
	
<!ENTITY % seeie.module "INCLUDE">
<![%seeie.module;[
<!ENTITY % local.seeie.attrib "">
<!ENTITY % seeie.role.attrib "%role.attrib;">
<!ELEMENT seeie (%ndxterm.char.mix;)*>

<!-- to IndexEntry to look up -->

<!ATTLIST seeie
		%linkend.attrib;		%common.attrib;
		%seeie.role.attrib;
		%local.seeie.attrib;
>
<!--end of seeie.module-->]]>

<!ENTITY % seealsoie.module "INCLUDE">
<![%seealsoie.module;[
<!ENTITY % local.seealsoie.attrib "">
<!ENTITY % seealsoie.role.attrib "%role.attrib;">
<!ELEMENT seealsoie (%ndxterm.char.mix;)*>

<!-- to related IndexEntries -->

<!ATTLIST seealsoie
		%linkends.attrib;		%common.attrib;
		%seealsoie.role.attrib;
		%local.seealsoie.attrib;
>
<!--end of seealsoie.module-->]]>
<!--end of index.content.module-->]]>

<!-- ...................................................................... -->
<!-- RefEntry ............................................................. -->

<!ENTITY % refentry.content.module "INCLUDE">
<![%refentry.content.module;[
<!ENTITY % refentry.module "INCLUDE">
<![%refentry.module;[
<!ENTITY % local.refentry.attrib "">
<!ENTITY % refentry.role.attrib "%role.attrib;">
<!--FUTURE USE (V4.0):
......................
The DocInfo element will be split out into ChapterInfo, AppendixInfo,
etc.
......................
-->
<!ELEMENT refentry (docinfo?, refmeta?, (comment|%link.char.class;)*,
		refnamediv, refsynopsisdiv?, refsect1+)>
<!ATTLIST refentry
		%status.attrib;
		%common.attrib;
		%refentry.role.attrib;
		%local.refentry.attrib;
>
<!--end of refentry.module-->]]>

<!ENTITY % refmeta.module "INCLUDE">
<![%refmeta.module;[
<!ENTITY % local.refmeta.attrib "">
<!ENTITY % refmeta.role.attrib "%role.attrib;">
<!ELEMENT refmeta (refentrytitle, manvolnum?, refmiscinfo*)>
<!ATTLIST refmeta
		%common.attrib;
		%refmeta.role.attrib;
		%local.refmeta.attrib;
>
<!--end of refmeta.module-->]]>

<!ENTITY % refmiscinfo.module "INCLUDE">
<![%refmiscinfo.module;[
<!ENTITY % local.refmiscinfo.attrib "">
<!ENTITY % refmiscinfo.role.attrib "%role.attrib;">
<!ELEMENT refmiscinfo (%docinfo.char.mix;)*>

<!-- Class: Freely assignable parameter; no default -->

<!ATTLIST refmiscinfo
		class		CDATA		#IMPLIED
		%common.attrib;
		%refmiscinfo.role.attrib;
		%local.refmiscinfo.attrib;
>
<!--end of refmiscinfo.module-->]]>

<!ENTITY % refnamediv.module "INCLUDE">
<![%refnamediv.module;[
<!ENTITY % local.refnamediv.attrib "">
<!ENTITY % refnamediv.role.attrib "%role.attrib;">
<!ELEMENT refnamediv (refdescriptor?, refname+, refpurpose, refclass*,
		(comment|%link.char.class;)*)>
<!ATTLIST refnamediv
		%common.attrib;
		%refnamediv.role.attrib;
		%local.refnamediv.attrib;
>
<!--end of refnamediv.module-->]]>
	
<!ENTITY % refdescriptor.module "INCLUDE">
<![%refdescriptor.module;[
<!ENTITY % local.refdescriptor.attrib "">
<!ENTITY % refdescriptor.role.attrib "%role.attrib;">
<!ELEMENT refdescriptor (%refname.char.mix;)*>
<!ATTLIST refdescriptor
		%common.attrib;
		%refdescriptor.role.attrib;
		%local.refdescriptor.attrib;
>
<!--end of refdescriptor.module-->]]>

<!ENTITY % refname.module "INCLUDE">
<![%refname.module;[
<!ENTITY % local.refname.attrib "">
<!ENTITY % refname.role.attrib "%role.attrib;">
<!ELEMENT refname (%refname.char.mix;)*>
<!ATTLIST refname
		%common.attrib;
		%refname.role.attrib;
		%local.refname.attrib;
>
<!--end of refname.module-->]]>

<!ENTITY % refpurpose.module "INCLUDE">
<![%refpurpose.module;[
<!ENTITY % local.refpurpose.attrib "">
<!ENTITY % refpurpose.role.attrib "%role.attrib;">
<!ELEMENT refpurpose (%refinline.char.mix;)*>
<!ATTLIST refpurpose
		%common.attrib;
		%refpurpose.role.attrib;
		%local.refpurpose.attrib;
>
<!--end of refpurpose.module-->]]>

<!ENTITY % refclass.module "INCLUDE">
<![%refclass.module;[
<!ENTITY % local.refclass.attrib "">
<!ENTITY % refclass.role.attrib "%role.attrib;">
<!ELEMENT refclass (%refclass.char.mix;)*>
<!ATTLIST refclass
		%common.attrib;
		%refclass.role.attrib;
		%local.refclass.attrib;
>
<!--end of refclass.module-->]]>

<!ENTITY % refsynopsisdiv.module "INCLUDE">
<![%refsynopsisdiv.module;[
<!ENTITY % local.refsynopsisdiv.attrib "">
<!ENTITY % refsynopsisdiv.role.attrib "%role.attrib;">
<!ELEMENT refsynopsisdiv (refsynopsisdivinfo?, (%refsect.title.content;)?,
		(((%refcomponent.mix;)+, refsect2*) | (refsect2+)))>
<!ATTLIST refsynopsisdiv
		%common.attrib;
		%refsynopsisdiv.role.attrib;
		%local.refsynopsisdiv.attrib;
>
<!--end of refsynopsisdiv.module-->]]>

<!ENTITY % refsect1.module "INCLUDE">
<![%refsect1.module;[
<!ENTITY % local.refsect1.attrib "">
<!ENTITY % refsect1.role.attrib "%role.attrib;">
<!ELEMENT refsect1 (refsect1info?, (%refsect.title.content;),
		(((%refcomponent.mix;)+, refsect2*) | refsect2+))>
<!ATTLIST refsect1
		%status.attrib;
		%common.attrib;
		%refsect1.role.attrib;
		%local.refsect1.attrib;
>
<!--end of refsect1.module-->]]>

<!ENTITY % refsect2.module "INCLUDE">
<![%refsect2.module;[
<!ENTITY % local.refsect2.attrib "">
<!ENTITY % refsect2.role.attrib "%role.attrib;">
<!ELEMENT refsect2 (refsect2info?, (%refsect.title.content;),
	(((%refcomponent.mix;)+, refsect3*) | refsect3+))>
<!ATTLIST refsect2
		%status.attrib;
		%common.attrib;
		%refsect2.role.attrib;
		%local.refsect2.attrib;
>
<!--end of refsect2.module-->]]>

<!ENTITY % refsect3.module "INCLUDE">
<![%refsect3.module;[
<!ENTITY % local.refsect3.attrib "">
<!ENTITY % refsect3.role.attrib "%role.attrib;">
<!ELEMENT refsect3 (refsect3info?, (%refsect.title.content;), 
	(%refcomponent.mix;)+)>
<!ATTLIST refsect3
		%status.attrib;
		%common.attrib;
		%refsect3.role.attrib;
		%local.refsect3.attrib;
>
<!--end of refsect3.module-->]]>
<!--end of refentry.content.module-->]]>

<!-- ...................................................................... -->
<!-- Article .............................................................. -->

<!ENTITY % article.module "INCLUDE">
<![%article.module;[
<!-- An Article is a chapter-level, stand-alone document that is often,
     but need not be, collected into a Book. -->
<!--FUTURE USE (V4.0):
......................
The %nav.class; entity now allows ToC; ToCchap will be allowed instead.
RefEntry will be removed from the main content of Article.
......................
-->

<!--FUTURE USE (V4.0):
......................
The ArtHeader element will be renamed to ArticleInfo.
......................
-->

<!ENTITY % local.article.attrib "">
<!ENTITY % article.role.attrib "%role.attrib;">
<!ELEMENT article (artheader, tocchap?, lot*, (%bookcomponent.content;),
		((%nav.class;) | (%appendix.class;) | ackno)*)>

<!-- 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 -->

<!ATTLIST article
		class		(journalarticle
				|productsheet
				|whitepaper
				|techreport)	#IMPLIED
		parentbook	IDREF		#IMPLIED
		%status.attrib;
		%common.attrib;
		%article.role.attrib;
		%local.article.attrib;
>
<!--end of article.module-->]]>

<!-- End of DocBk30 XML document hierarchy module V1.0 .................... -->
<!-- ...................................................................... -->