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

     If you modify the DocBook XML DTD in any way, except for declaring and
     referencing additional sets of general entities and declaring
     additional notations, label your DTD as a variant of DocBook.  See
     the maintenance documentation for more information.

     Please direct all questions, bug reports, or suggestions for
     changes to the docbook@lists.oasis-open.org mailing list. For more
     information, see http://www.oasis-open.org/docbook/.

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

<!-- This module contains the definitions for the objects, inline
     elements, and so on that are available to be used as the main
     content of DocBook documents.  Some elements are useful for general
     publishing, and others are useful specifically for computer

     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"

     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. -->
<!ENTITY % forminlines.hook "">
<!ENTITY % forms.hook "">

<!-- ...................................................................... -->
<!-- General-purpose semantics entities ................................... -->

<!ENTITY % yesorno.attvals	"CDATA">

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

<!ENTITY % dbpool.redecl.module "IGNORE">

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

<!-- "Ubiquitous" classes: ndxterm.class and beginpage -->

<!ENTITY % local.ndxterm.class "">
<!ENTITY % ndxterm.class
		"indexterm %local.ndxterm.class;">

<!-- Object-level classes ................................................. -->

<!ENTITY % local.list.class "">
<!ENTITY % list.class
		|simplelist|variablelist %local.list.class;">

<!ENTITY % local.admon.class "">
<!ENTITY % admon.class
		"caution|important|note|tip|warning %local.admon.class;">

<!ENTITY % local.linespecific.class "">
<!ENTITY % linespecific.class
		|screenco|screenshot %local.linespecific.class;">

<!ENTITY % local.method.synop.class "">
<!ENTITY % method.synop.class
                 |methodsynopsis %local.method.synop.class;">

<!ENTITY % local.synop.class "">
<!ENTITY % synop.class
                 |%method.synop.class; %local.synop.class;">

<!ENTITY % local.para.class "">
<!ENTITY % para.class
		"formalpara|para|simpara %local.para.class;">

<!ENTITY % local.informal.class "">
<!ENTITY % informal.class
                |informaltable %local.informal.class;">

<!ENTITY % local.formal.class "">
<!ENTITY % formal.class
		"equation|example|figure|table %local.formal.class;">

<!-- The DocBook TC may produce an official EBNF module for DocBook. -->
<!-- This PE provides the hook by which it can be inserted into the DTD. -->
<!ENTITY % ebnf.block.hook "">

<!ENTITY % local.compound.class "">
<!ENTITY % compound.class

<!ENTITY % local.genobj.class "">
<!ENTITY % genobj.class

<!ENTITY % local.descobj.class "">
<!ENTITY % descobj.class

<!-- Character-level classes .............................................. -->

<!ENTITY % local.xref.char.class "">
<!ENTITY % xref.char.class
		"footnoteref|xref|biblioref %local.xref.char.class;">

<!ENTITY % local.gen.char.class "">
<!ENTITY % gen.char.class
		|personname %local.gen.char.class;">

<!ENTITY % local.link.char.class "">
<!ENTITY % link.char.class
		"link|olink|ulink %local.link.char.class;">

<!-- The DocBook TC may produce an official EBNF module for DocBook. -->
<!-- This PE provides the hook by which it can be inserted into the DTD. -->
<!ENTITY % ebnf.inline.hook "">

<!ENTITY % local.tech.char.class "">
<!ENTITY % tech.char.class

<!ENTITY % local.base.char.class "">
<!ENTITY % base.char.class
		"anchor %local.base.char.class;">

<!ENTITY % local.docinfo.char.class "">
<!ENTITY % docinfo.char.class

<!ENTITY % local.other.char.class "">
<!ENTITY % other.char.class
		"remark|subscript|superscript %local.other.char.class;">

<!ENTITY % local.inlineobj.char.class "">
<!ENTITY % inlineobj.char.class
		"inlinegraphic|inlinemediaobject|inlineequation %local.inlineobj.char.class;">

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

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

<!-- Defining rdbpool here makes some buggy XML parsers happy. -->
<!ENTITY % rdbpool "">
<!--end of dbpool.redecl.module-->]]>

<!-- Object-level mixtures ................................................ -->

                      list admn line synp para infm form cmpd gen  desc
Component mixture       X    X    X    X    X    X    X    X    X    X
Sidebar mixture         X    X    X    X    X    X    X    a    X
Footnote mixture        X         X    X    X    X
Example mixture         X         X    X    X    X
Highlights mixture      X    X              X
Paragraph mixture       X         X    X         X
Admonition mixture      X         X    X    X    X    X    b    c
Figure mixture                    X    X         X
Table entry mixture     X    X    X         X    d
Glossary def mixture    X         X    X    X    X         e
Legal notice mixture    X    X    X         X    f

a. Just Procedure; not Sidebar itself or MsgSet.
b. No MsgSet.
c. No Highlights.
d. Just Graphic; no other informal objects.
e. No Anchor, BridgeHead, or Highlights.
f. Just BlockQuote; no other informal objects.

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

<!ENTITY % local.sidebar.mix "">
<!ENTITY % sidebar.mix
		"%list.class;		|%admon.class;
		|%linespecific.class;	|%synop.class;
		|%para.class;		|%informal.class;
		|%formal.class;		|procedure
		|%ndxterm.class;        |beginpage

<!ENTITY % local.qandaset.mix "">
<!ENTITY % qandaset.mix
		"%list.class;           |%admon.class;
		|%linespecific.class;	|%synop.class;
		|%para.class;		|%informal.class;
		|%formal.class;		|procedure

<!ENTITY % local.revdescription.mix "">
<!ENTITY % revdescription.mix
		"%list.class;		|%admon.class;
		|%linespecific.class;	|%synop.class;
		|%para.class;		|%informal.class;
		|%formal.class;		|procedure

<!ENTITY % local.footnote.mix "">
<!ENTITY % footnote.mix
		|%linespecific.class;	|%synop.class;
		|%para.class;		|%informal.class;

<!ENTITY % local.example.mix "">
<!ENTITY % example.mix
		|%linespecific.class;	|%synop.class;
		|%para.class;		|%informal.class;
		|%ndxterm.class;        |beginpage

<!ENTITY % local.highlights.mix "">
<!ENTITY % highlights.mix
		"%list.class;		|%admon.class;

<!-- %formal.class; is explicitly excluded from many contexts in which
     paragraphs are used -->
<!ENTITY % local.para.mix "">
<!ENTITY % para.mix
		"%list.class;           |%admon.class;

<!ENTITY % local.admon.mix "">
<!ENTITY % admon.mix
		|%linespecific.class;	|%synop.class;
		|%para.class;		|%informal.class;
		|%formal.class;		|procedure|sidebar
		|%ndxterm.class;        |beginpage

<!ENTITY % local.figure.mix "">
<!ENTITY % figure.mix
		"%linespecific.class;	|%synop.class;
		|%ndxterm.class;        |beginpage

<!ENTITY % local.tabentry.mix "">
<!ENTITY % tabentry.mix
		"%list.class;		|%admon.class;
		|%para.class;		|graphic|mediaobject

<!ENTITY % local.glossdef.mix "">
<!ENTITY % glossdef.mix
		|%linespecific.class;	|%synop.class;
		|%para.class;		|%informal.class;
		|%ndxterm.class;        |beginpage

<!ENTITY % local.legalnotice.mix "">
<!ENTITY % legalnotice.mix
		"%list.class;		|%admon.class;
		|%para.class;		|blockquote
		|%ndxterm.class;        |beginpage

<!ENTITY % local.textobject.mix "">
<!ENTITY % textobject.mix
		"%list.class;		|%admon.class;
		|%para.class;		|blockquote

<!ENTITY % local.mediaobject.mix "">
<!ENTITY % mediaobject.mix
		"videoobject|audioobject|imageobject|imageobjectco|textobject %local.mediaobject.mix;">

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

<!-- Character-level mixtures ............................................. -->

<!ENTITY % local.ubiq.mix "">
<!ENTITY % ubiq.mix "%ndxterm.class;|beginpage %local.ubiq.mix;">

<!ENTITY % ubiq.exclusion "-(%ubiq.mix)">
<!ENTITY % ubiq.inclusion "+(%ubiq.mix)">

<!ENTITY % footnote.exclusion "-(footnote|%formal.class;)">
<!ENTITY % highlights.exclusion "-(%ubiq.mix;|%formal.class;)">
<!ENTITY % admon.exclusion "-(%admon.class;)">
<!ENTITY % formal.exclusion "-(%formal.class;)">
<!ENTITY % acronym.exclusion "-(acronym)">
<!ENTITY % beginpage.exclusion "-(beginpage)">
<!ENTITY % ndxterm.exclusion "-(%ndxterm.class;)">
<!ENTITY % blockquote.exclusion "-(epigraph)">
<!ENTITY % remark.exclusion "-(remark|%ubiq.mix;)">
<!ENTITY % glossterm.exclusion "-(glossterm)">
<!ENTITY % links.exclusion "-(link|olink|ulink|xref|biblioref)">
]]><!-- sgml.features -->

<!-- not [sgml.features[ -->
<!ENTITY % local.ubiq.mix "">
<!ENTITY % ubiq.mix "">

<!ENTITY % ubiq.exclusion "">
<!ENTITY % ubiq.inclusion "">

<!ENTITY % footnote.exclusion "">
<!ENTITY % highlights.exclusion "">
<!ENTITY % admon.exclusion "">
<!ENTITY % formal.exclusion "">
<!ENTITY % acronym.exclusion "">
<!ENTITY % beginpage.exclusion "">
<!ENTITY % ndxterm.exclusion "">
<!ENTITY % blockquote.exclusion "">
<!ENTITY % remark.exclusion "">
<!ENTITY % glossterm.exclusion "">
<!ENTITY % links.exclusion "">
<!-- ]] 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.

<!ENTITY % local.para.char.mix "">
<!ENTITY % para.char.mix
		|%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;        |beginpage

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

<!ENTITY % local.ndxterm.char.mix "">
<!ENTITY % ndxterm.char.mix
		|%xref.char.class;	|%gen.char.class;
		|%link.char.class;	|%tech.char.class;
		|%base.char.class;	|%docinfo.char.class;
		|%other.char.class;	|inlinegraphic|inlinemediaobject

<!ENTITY % local.cptr.char.mix "">
<!ENTITY % cptr.char.mix
		|%link.char.class;	|%tech.char.class;
		|%other.char.class;	|inlinegraphic|inlinemediaobject
		|%ndxterm.class;        |beginpage

<!ENTITY % local.smallcptr.char.mix "">
<!ENTITY % smallcptr.char.mix
		|%ndxterm.class;        |beginpage

<!ENTITY % local.word.char.mix "">
<!ENTITY % word.char.mix
		|%other.char.class;	|inlinegraphic|inlinemediaobject
		|%ndxterm.class;        |beginpage

<!ENTITY % local.docinfo.char.mix "">
<!ENTITY % docinfo.char.mix
		|%other.char.class;	|inlinegraphic|inlinemediaobject
<!--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 -->

<!ENTITY % arch.attrib
	"arch		CDATA		#IMPLIED">

<!-- Condition: General-purpose effectivity attribute -->

<!ENTITY % condition.attrib
	"condition	CDATA		#IMPLIED">

<!-- Conformance: Standards conformance characteristics -->

<!ENTITY % conformance.attrib
	"conformance	NMTOKENS	#IMPLIED">

<!-- OS: Operating system to which element applies; no default -->

<!ENTITY % os.attrib

<!-- Revision: Editorial revision to which element belongs; no default -->

<!ENTITY % revision.attrib
	"revision	CDATA		#IMPLIED">

<!-- Security: Security classification; no default -->

<!ENTITY % security.attrib
	"security	CDATA		#IMPLIED">

<!-- UserLevel: Level of user experience to which element applies; no
	default -->

<!ENTITY % userlevel.attrib
	"userlevel	CDATA		#IMPLIED">

<!-- Vendor: Computer vendor to which element applies; no default -->

<!ENTITY % vendor.attrib
	"vendor		CDATA		#IMPLIED">

<!-- Wordsize: Computer word size (32 bit, 64 bit, etc.); no default -->

<!ENTITY % wordsize.attrib
	"wordsize	CDATA		#IMPLIED">

<!ENTITY % local.effectivity.attrib "">
<!ENTITY % effectivity.attrib

<!-- Common attributes .................................................... -->

<!-- Id: Unique identifier of element; no default -->

<!ENTITY % id.attrib
	"id		ID		#IMPLIED">

<!-- Id: Unique identifier of element; a value must be supplied; no
	default -->

<!ENTITY % idreq.attrib
	"id		ID		#REQUIRED">

<!-- Lang: Indicator of language in which element is written, for
	translation, character set management, etc.; no default -->

<!ENTITY % lang.attrib
	"lang		CDATA		#IMPLIED">

<!-- Remap: Previous role of element before conversion; no default -->

<!ENTITY % remap.attrib
	"remap		CDATA		#IMPLIED">

<!-- Role: New role of element in local environment; no default -->

<!ENTITY % role.attrib
	"role		CDATA		#IMPLIED">

<!-- XRefLabel: Alternate labeling string for XRef text generation;
	default is usually title or other appropriate label text already
	contained in element -->

<!ENTITY % xreflabel.attrib
	"xreflabel	CDATA		#IMPLIED">

<!-- RevisionFlag: Revision status of element; default is that element
	wasn't revised -->

<!ENTITY % revisionflag.attrib
	"revisionflag	(changed
			|off)		#IMPLIED">

<!ENTITY % local.common.attrib "">

<!-- dir: Bidirectional override -->

<!ENTITY % dir.attrib
	"dir		(ltr
			|rlo)		#IMPLIED">

<!-- xml:base: base URI -->

<!ENTITY % xml-base.attrib "">
<!ENTITY % xml-base.attrib
	"xml:base	CDATA		#IMPLIED">

<!-- Role is included explicitly on each element -->

<!ENTITY % common.attrib

<!-- Role is included explicitly on each element -->

<!ENTITY % idreq.common.attrib

<!-- Semi-common attributes and other attribute entities .................. -->

<!ENTITY % local.graphics.attrib "">

<!-- EntityRef: Name of an external entity containing the content
	of the graphic -->
<!-- FileRef: Filename, qualified by a pathname if desired,
	designating the file containing the content of the graphic -->
<!-- Format: Notation of the element content, if any -->
<!-- SrcCredit: Information about the source of the Graphic -->
<!-- Width: Same as CALS reprowid (desired width) -->
<!-- Depth: Same as CALS reprodep (desired depth) -->
<!-- Align: Same as CALS hplace with 'none' removed; #IMPLIED means
	application-specific -->
<!-- Scale: Conflation of CALS hscale and vscale -->
<!-- Scalefit: Same as CALS scalefit -->

<!ENTITY % graphics.attrib
	entityref	ENTITY		#IMPLIED
	fileref 	CDATA		#IMPLIED
	format		(%notation.class;) #IMPLIED
	srccredit	CDATA		#IMPLIED
	contentwidth	CDATA		#IMPLIED
	contentdepth	CDATA		#IMPLIED
	align		(left
			|center)	#IMPLIED
	valign		(top
			|bottom)	#IMPLIED
	scalefit	%yesorno.attvals;

<!ENTITY % local.keyaction.attrib "">

<!-- Action: Key combination type; default is unspecified if one
	child element, Simul if there is more than one; if value is
	Other, the OtherAction attribute must have a nonempty value -->
<!-- OtherAction: User-defined key combination type -->

<!ENTITY % keyaction.attrib
	action		(click
			|other)		#IMPLIED
	otheraction	CDATA		#IMPLIED

<!-- Label: Identifying number or string; default is usually the
	appropriate number or string autogenerated by a formatter -->

<!ENTITY % label.attrib
	"label		CDATA		#IMPLIED">

<!-- xml:space: whitespace treatment -->

<!ENTITY % xml-space.attrib "">
<!ENTITY % xml-space.attrib
	"xml:space	(preserve)		#IMPLIED">

<!-- Format: whether element is assumed to contain significant white
	space -->

<!ENTITY % linespecific.attrib
	"format		NOTATION
			(linespecific)	'linespecific'
         linenumbering	(numbered|unnumbered) 	#IMPLIED
         continuation	(continues|restarts)	#IMPLIED
         startinglinenumber	CDATA		#IMPLIED
         language	CDATA			#IMPLIED">

<!-- Linkend: link to related information; no default -->

<!ENTITY % linkend.attrib
	"linkend	IDREF		#IMPLIED">

<!-- Linkend: required link to related information -->

<!ENTITY % linkendreq.attrib
	"linkend	IDREF		#REQUIRED">

<!-- Linkends: link to one or more sets of related information; no
	default -->

<!ENTITY % linkends.attrib
	"linkends	IDREFS		#IMPLIED">

<!ENTITY % local.mark.attrib "">
<!ENTITY % mark.attrib

<!-- MoreInfo: whether element's content has an associated RefEntry -->

<!ENTITY % moreinfo.attrib
	"moreinfo	(refentry|none)	'none'">

<!-- Pagenum: number of page on which element appears; no default -->

<!ENTITY % pagenum.attrib
	"pagenum	CDATA		#IMPLIED">

<!ENTITY % local.status.attrib "">

<!-- Status: Editorial or publication status of the element
	it applies to, such as "in review" or "approved for distribution" -->

<!ENTITY % status.attrib
	"status		CDATA		#IMPLIED

<!-- Width: width of the longest line in the element to which it
	pertains, in number of characters -->

<!ENTITY % width.attrib
	"width		CDATA		#IMPLIED">

<!-- ...................................................................... -->
<!-- Title elements ....................................................... -->

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

<!ENTITY % title.element "INCLUDE">
<!--doc:The text of the title of a section of a document or of a formal block-level element.-->
<!ELEMENT title %ho; (%title.char.mix;)*>
<!--end of title.element-->]]>

<!ENTITY % title.attlist "INCLUDE">
<!ATTLIST title
<!--end of title.attlist-->]]>
<!--end of title.module-->]]>

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

<!ENTITY % titleabbrev.element "INCLUDE">
<!--doc:The abbreviation of a Title.-->
<!ELEMENT titleabbrev %ho; (%title.char.mix;)*>
<!--end of titleabbrev.element-->]]>

<!ENTITY % titleabbrev.attlist "INCLUDE">
<!ATTLIST titleabbrev
<!--end of titleabbrev.attlist-->]]>
<!--end of titleabbrev.module-->]]>

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

<!ENTITY % subtitle.element "INCLUDE">
<!--doc:The subtitle of a document.-->
<!ELEMENT subtitle %ho; (%title.char.mix;)*>
<!--end of subtitle.element-->]]>

<!ENTITY % subtitle.attlist "INCLUDE">
<!ATTLIST subtitle
<!--end of subtitle.attlist-->]]>
<!--end of subtitle.module-->]]>

<!-- ...................................................................... -->
<!-- Bibliographic entities and elements .................................. -->

<!-- The bibliographic elements are typically used in the document
     hierarchy. They do not appear in content models of information
     pool elements.  See also the document information elements,
     below. -->

<!ENTITY % local.person.ident.mix "">
<!ENTITY % person.ident.mix
		|authorblurb|contrib %local.person.ident.mix;">

<!ENTITY % local.bibliocomponent.mix "">
<!ENTITY % bibliocomponent.mix

<!-- I don't think this is well placed, but it needs to be here because of -->
<!-- the reference to bibliocomponent.mix -->
<!ENTITY % local.info.class "">
<!ENTITY % info.class
		"graphic | mediaobject | legalnotice | modespec
		 | subjectset | keywordset | itermset | %bibliocomponent.mix;

<!-- BiblioList ........................ -->

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

<!ENTITY % bibliolist.element "INCLUDE">
<!--doc:A wrapper for a set of bibliography entries.-->
<!ELEMENT bibliolist %ho; (blockinfo?, (%formalobject.title.content;)?,
<!--end of bibliolist.element-->]]>

<!ENTITY % bibliolist.attlist "INCLUDE">
<!ATTLIST bibliolist
<!--end of bibliolist.attlist-->]]>
<!--end of bibliolist.module-->]]>

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

<!ENTITY % biblioentry.element "INCLUDE">
<!--doc:An entry in a Bibliography.-->
<!ELEMENT biblioentry %ho; ((articleinfo | (%bibliocomponent.mix;))+)
<!--end of biblioentry.element-->]]>

<!ENTITY % biblioentry.attlist "INCLUDE">
<!ATTLIST biblioentry
<!--end of biblioentry.attlist-->]]>
<!--end of biblioentry.module-->]]>

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

<!ENTITY % bibliomixed.element "INCLUDE">
<!--doc:An entry in a Bibliography.-->
<!ELEMENT bibliomixed %ho; (#PCDATA | %bibliocomponent.mix; | bibliomset)*
<!--end of bibliomixed.element-->]]>

<!ENTITY % bibliomixed.attlist "INCLUDE">
<!ATTLIST bibliomixed
<!--end of bibliomixed.attlist-->]]>
<!--end of bibliomixed.module-->]]>

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

<!ENTITY % articleinfo.element "INCLUDE">
<!--doc:Meta-information for an Article.-->
<!ELEMENT articleinfo %ho; ((%info.class;)+)
<!--end of articleinfo.element-->]]>

<!ENTITY % articleinfo.attlist "INCLUDE">
<!ATTLIST articleinfo
<!--end of articleinfo.attlist-->]]>
<!--end of articleinfo.module-->]]>

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

<!ENTITY % biblioset.element "INCLUDE">
<!--doc:A "raw" container for related bibliographic information.-->
<!ELEMENT biblioset %ho; ((%bibliocomponent.mix;)+)
<!--end of biblioset.element-->]]>

<!-- Relation: Relationship of elements contained within BiblioSet -->

<!ENTITY % biblioset.attlist "INCLUDE">
<!ATTLIST biblioset
		relation	CDATA		#IMPLIED
<!--end of biblioset.attlist-->]]>
<!--end of biblioset.module-->]]>

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

<!ENTITY % bibliomset.element "INCLUDE">
<!--doc:A "cooked" container for related bibliographic information.-->
<!ELEMENT bibliomset %ho; (#PCDATA | %bibliocomponent.mix; | bibliomset)*
<!--end of bibliomset.element-->]]>

<!-- Relation: Relationship of elements contained within BiblioMSet -->

<!ENTITY % bibliomset.attlist "INCLUDE">
<!ATTLIST bibliomset
		relation	CDATA		#IMPLIED
<!--end of bibliomset.attlist-->]]>
<!--end of bibliomset.module-->]]>

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

<!ENTITY % bibliomisc.element "INCLUDE">
<!--doc:Untyped bibliographic information.-->
<!ELEMENT bibliomisc %ho; (%para.char.mix;)*>
<!--end of bibliomisc.element-->]]>

<!ENTITY % bibliomisc.attlist "INCLUDE">
<!ATTLIST bibliomisc
<!--end of bibliomisc.attlist-->]]>
<!--end of bibliomisc.module-->]]>

<!-- ...................................................................... -->
<!-- Subject, Keyword, and ITermSet elements .............................. -->

<!ENTITY % subjectset.content.module "INCLUDE">
<!ENTITY % subjectset.module "INCLUDE">
<!ENTITY % local.subjectset.attrib "">
<!ENTITY % subjectset.role.attrib "%role.attrib;">

<!ENTITY % subjectset.element "INCLUDE">
<!--doc:A set of terms describing the subject matter of a document.-->
<!ELEMENT subjectset %ho; (subject+)>
<!--end of subjectset.element-->]]>

<!-- Scheme: Controlled vocabulary employed in SubjectTerms -->

<!ENTITY % subjectset.attlist "INCLUDE">
<!ATTLIST subjectset
<!--end of subjectset.attlist-->]]>
<!--end of subjectset.module-->]]>

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

<!ENTITY % subject.element "INCLUDE">
<!--doc:One of a group of terms describing the subject matter of a document.-->
<!ELEMENT subject %ho; (subjectterm+)>
<!--end of subject.element-->]]>

<!-- Weight: Ranking of this group of SubjectTerms relative
		to others, 0 is low, no highest value specified -->

<!ENTITY % subject.attlist "INCLUDE">
<!ATTLIST subject
		weight		CDATA		#IMPLIED
<!--end of subject.attlist-->]]>
<!--end of subject.module-->]]>

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

<!ENTITY % subjectterm.element "INCLUDE">
<!--doc:A term in a group of terms describing the subject matter of a document.-->
<!ELEMENT subjectterm %ho; (#PCDATA)>
<!--end of subjectterm.element-->]]>

<!ENTITY % subjectterm.attlist "INCLUDE">
<!ATTLIST subjectterm
<!--end of subjectterm.attlist-->]]>
<!--end of subjectterm.module-->]]>
<!--end of subjectset.content.module-->]]>

<!ENTITY % keywordset.content.module "INCLUDE">
<!ENTITY % keywordset.module "INCLUDE">
<!ENTITY % local.keywordset.attrib "">
<!ENTITY % keywordset.role.attrib "%role.attrib;">

<!ENTITY % keywordset.element "INCLUDE">
<!--doc:A set of keywords describing the content of a document.-->
<!ELEMENT keywordset %ho; (keyword+)>
<!--end of keywordset.element-->]]>

<!ENTITY % keywordset.attlist "INCLUDE">
<!ATTLIST keywordset
<!--end of keywordset.attlist-->]]>
<!--end of keywordset.module-->]]>

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

<!ENTITY % keyword.element "INCLUDE">
<!--doc:One of a set of keywords describing the content of a document.-->
<!ELEMENT keyword %ho; (#PCDATA)>
<!--end of keyword.element-->]]>

<!ENTITY % keyword.attlist "INCLUDE">
<!ATTLIST keyword
<!--end of keyword.attlist-->]]>
<!--end of keyword.module-->]]>
<!--end of keywordset.content.module-->]]>

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

<!ENTITY % itermset.element "INCLUDE">
<!--doc:A set of index terms in the meta-information of a document.-->
<!ELEMENT itermset %ho; (indexterm+)>
<!--end of itermset.element-->]]>

<!ENTITY % itermset.attlist "INCLUDE">
<!ATTLIST itermset
<!--end of itermset.attlist-->]]>
<!--end of itermset.module-->]]>

<!-- Bibliographic info for "blocks" -->

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

<!ENTITY % blockinfo.element "INCLUDE">
<![ %blockinfo.element; [
<!--doc:Meta-information for a block element.-->
<!ELEMENT blockinfo %ho; ((%info.class;)+)
<!--end of blockinfo.element-->]]>

<!ENTITY % blockinfo.attlist "INCLUDE">
<![ %blockinfo.attlist; [
<!ATTLIST blockinfo
<!--end of blockinfo.attlist-->]]>
<!--end of blockinfo.module-->]]>

<!-- ...................................................................... -->
<!-- Compound (section-ish) elements ...................................... -->

<!-- Message set ...................... -->

<!ENTITY % msgset.content.module "INCLUDE">
<!ENTITY % msgset.module "INCLUDE">
<!ENTITY % local.msgset.attrib "">
<!ENTITY % msgset.role.attrib "%role.attrib;">

<!ENTITY % msgset.element "INCLUDE">
<!--doc:A detailed set of messages, usually error messages.-->
<!ELEMENT msgset %ho; (blockinfo?, (%formalobject.title.content;)?,
<!--end of msgset.element-->]]>

<!ENTITY % msgset.attlist "INCLUDE">
<!ATTLIST msgset
<!--end of msgset.attlist-->]]>
<!--end of msgset.module-->]]>

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

<!ENTITY % msgentry.element "INCLUDE">
<!--doc:A wrapper for an entry in a message set.-->
<!ELEMENT msgentry %ho; (msg+, msginfo?, msgexplan*)>
<!--end of msgentry.element-->]]>

<!ENTITY % msgentry.attlist "INCLUDE">
<!ATTLIST msgentry
<!--end of msgentry.attlist-->]]>
<!--end of msgentry.module-->]]>

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

<!ENTITY % simplemsgentry.element "INCLUDE">
<![ %simplemsgentry.element; [
<!--doc:A wrapper for a simpler entry in a message set.-->
<!ELEMENT simplemsgentry %ho; (msgtext, msgexplan+)>
<!--end of simplemsgentry.element-->]]>

<!ENTITY % simplemsgentry.attlist "INCLUDE">
<![ %simplemsgentry.attlist; [
<!ATTLIST simplemsgentry
		audience	CDATA	#IMPLIED
		origin		CDATA	#IMPLIED
<!--end of simplemsgentry.attlist-->]]>
<!--end of simplemsgentry.module-->]]>

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

<!ENTITY % msg.element "INCLUDE">
<!--doc:A message in a message set.-->
<!ELEMENT msg %ho; (title?, msgmain, (msgsub | msgrel)*)>
<!--end of msg.element-->]]>

<!ENTITY % msg.attlist "INCLUDE">
<!--end of msg.attlist-->]]>
<!--end of msg.module-->]]>

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

<!ENTITY % msgmain.element "INCLUDE">
<!--doc:The primary component of a message in a message set.-->
<!ELEMENT msgmain %ho; (title?, msgtext)>
<!--end of msgmain.element-->]]>

<!ENTITY % msgmain.attlist "INCLUDE">
<!ATTLIST msgmain
<!--end of msgmain.attlist-->]]>
<!--end of msgmain.module-->]]>

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

<!ENTITY % msgsub.element "INCLUDE">
<!--doc:A subcomponent of a message in a message set.-->
<!ELEMENT msgsub %ho; (title?, msgtext)>
<!--end of msgsub.element-->]]>

<!ENTITY % msgsub.attlist "INCLUDE">
<!ATTLIST msgsub
<!--end of msgsub.attlist-->]]>
<!--end of msgsub.module-->]]>

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

<!ENTITY % msgrel.element "INCLUDE">
<!--doc:A related component of a message in a message set.-->
<!ELEMENT msgrel %ho; (title?, msgtext)>
<!--end of msgrel.element-->]]>

<!ENTITY % msgrel.attlist "INCLUDE">
<!ATTLIST msgrel
<!--end of msgrel.attlist-->]]>
<!--end of msgrel.module-->]]>

<!-- MsgText (defined in the Inlines section, below)-->

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

<!ENTITY % msginfo.element "INCLUDE">
<!--doc:Information about a message in a message set.-->
<!ELEMENT msginfo %ho; ((msglevel | msgorig | msgaud)*)>
<!--end of msginfo.element-->]]>

<!ENTITY % msginfo.attlist "INCLUDE">
<!ATTLIST msginfo
<!--end of msginfo.attlist-->]]>
<!--end of msginfo.module-->]]>

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

<!ENTITY % msglevel.element "INCLUDE">
<!--doc:The level of importance or severity of a message in a message set.-->
<!ELEMENT msglevel %ho; (%smallcptr.char.mix;)*>
<!--end of msglevel.element-->]]>

<!ENTITY % msglevel.attlist "INCLUDE">
<!ATTLIST msglevel
<!--end of msglevel.attlist-->]]>
<!--end of msglevel.module-->]]>

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

<!ENTITY % msgorig.element "INCLUDE">
<!--doc:The origin of a message in a message set.-->
<!ELEMENT msgorig %ho; (%smallcptr.char.mix;)*>
<!--end of msgorig.element-->]]>

<!ENTITY % msgorig.attlist "INCLUDE">
<!ATTLIST msgorig
<!--end of msgorig.attlist-->]]>
<!--end of msgorig.module-->]]>

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

<!ENTITY % msgaud.element "INCLUDE">
<!--doc:The audience to which a message in a message set is relevant.-->
<!ELEMENT msgaud %ho; (%para.char.mix;)*>
<!--end of msgaud.element-->]]>

<!ENTITY % msgaud.attlist "INCLUDE">
<!ATTLIST msgaud
<!--end of msgaud.attlist-->]]>
<!--end of msgaud.module-->]]>

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

<!ENTITY % msgexplan.element "INCLUDE">
<!--doc:Explanatory material relating to a message in a message set.-->
<!ELEMENT msgexplan %ho; (title?, (%component.mix;)+)>
<!--end of msgexplan.element-->]]>

<!ENTITY % msgexplan.attlist "INCLUDE">
<!ATTLIST msgexplan
<!--end of msgexplan.attlist-->]]>
<!--end of msgexplan.module-->]]>
<!--end of msgset.content.module-->]]>

<!ENTITY % task.content.module "INCLUDE">
<!ENTITY % task.module "INCLUDE">
<!ENTITY % local.task.attrib "">
<!ENTITY % task.role.attrib "%role.attrib;">

<!ENTITY % task.element "INCLUDE">
<!--doc:A task to be completed.-->
<!ELEMENT task %ho; (blockinfo?,(%ndxterm.class;)*,
<!--end of task.element-->]]>

<!ENTITY % task.attlist "INCLUDE">
<!ATTLIST task
<!--end of task.attlist-->]]>
<!--end of task.module-->]]>

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

<!ENTITY % tasksummary.element "INCLUDE">
<!--doc:A summary of a task.-->
<!ELEMENT tasksummary %ho; (blockinfo?,
<!--end of tasksummary.element-->]]>

<!ENTITY % tasksummary.attlist "INCLUDE">
<!ATTLIST tasksummary
<!--end of tasksummary.attlist-->]]>
<!--end of tasksummary.module-->]]>

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

<!ENTITY % taskprerequisites.element "INCLUDE">
<!--doc:The prerequisites for a task.-->
<!ELEMENT taskprerequisites %ho; (blockinfo?,
<!--end of taskprerequisites.element-->]]>

<!ENTITY % taskprerequisites.attlist "INCLUDE">
<!ATTLIST taskprerequisites
<!--end of taskprerequisites.attlist-->]]>
<!--end of taskprerequisites.module-->]]>

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

<!ENTITY % taskrelated.element "INCLUDE">
<!--doc:Information related to a task.-->
<!ELEMENT taskrelated %ho; (blockinfo?,
<!--end of taskrelated.element-->]]>

<!ENTITY % taskrelated.attlist "INCLUDE">
<!ATTLIST taskrelated
<!--end of taskrelated.attlist-->]]>
<!--end of taskrelated.module-->]]>
<!--end of task.content.module-->]]>

<!-- QandASet ........................ -->
<!ENTITY % qandaset.content.module "INCLUDE">
<![ %qandaset.content.module; [
<!ENTITY % qandaset.module "INCLUDE">
<![ %qandaset.module; [
<!ENTITY % local.qandaset.attrib "">
<!ENTITY % qandaset.role.attrib "%role.attrib;">

<!ENTITY % qandaset.element "INCLUDE">
<![ %qandaset.element; [
<!--doc:A question-and-answer set.-->
<!ELEMENT qandaset %ho; (blockinfo?, (%formalobject.title.content;)?,
<!--end of qandaset.element-->]]>

<!ENTITY % qandaset.attlist "INCLUDE">
<![ %qandaset.attlist; [
<!ATTLIST qandaset
		defaultlabel	(qanda|number|none)       #IMPLIED
<!--end of qandaset.attlist-->]]>
<!--end of qandaset.module-->]]>

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

<!ENTITY % qandadiv.element "INCLUDE">
<![ %qandadiv.element; [
<!--doc:A titled division in a QandASet.-->
<!ELEMENT qandadiv %ho; (blockinfo?, (%formalobject.title.content;)?,
<!--end of qandadiv.element-->]]>

<!ENTITY % qandadiv.attlist "INCLUDE">
<![ %qandadiv.attlist; [
<!ATTLIST qandadiv
<!--end of qandadiv.attlist-->]]>
<!--end of qandadiv.module-->]]>

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

<!ENTITY % qandaentry.element "INCLUDE">
<![ %qandaentry.element; [
<!--doc:A question/answer set within a QandASet.-->
<!ELEMENT qandaentry %ho; (blockinfo?, revhistory?, question, answer*)>
<!--end of qandaentry.element-->]]>

<!ENTITY % qandaentry.attlist "INCLUDE">
<![ %qandaentry.attlist; [
<!ATTLIST qandaentry
<!--end of qandaentry.attlist-->]]>
<!--end of qandaentry.module-->]]>

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

<!ENTITY % question.element "INCLUDE">
<![ %question.element; [
<!--doc:A question in a QandASet.-->
<!ELEMENT question %ho; (label?, (%qandaset.mix;)+)>
<!--end of question.element-->]]>

<!ENTITY % question.attlist "INCLUDE">
<![ %question.attlist; [
<!ATTLIST question
<!--end of question.attlist-->]]>
<!--end of question.module-->]]>

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

<!ENTITY % answer.element "INCLUDE">
<![ %answer.element; [
<!--doc:An answer to a question posed in a QandASet.-->
<!ELEMENT answer %ho; (label?, (%qandaset.mix;)*, qandaentry*)>
<!--end of answer.element-->]]>

<!ENTITY % answer.attlist "INCLUDE">
<![ %answer.attlist; [
<!ATTLIST answer
<!--end of answer.attlist-->]]>
<!--end of answer.module-->]]>

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

<!ENTITY % label.element "INCLUDE">
<![ %label.element; [
<!--doc:A label on a Question or Answer.-->
<!ELEMENT label %ho; (%word.char.mix;)*>
<!--end of label.element-->]]>

<!ENTITY % label.attlist "INCLUDE">
<![ %label.attlist; [
<!ATTLIST label
<!--end of label.attlist-->]]>
<!--end of label.module-->]]>
<!--end of qandaset.content.module-->]]>

<!-- Procedure ........................ -->

<!ENTITY % procedure.content.module "INCLUDE">
<!ENTITY % procedure.module "INCLUDE">
<!ENTITY % local.procedure.attrib "">
<!ENTITY % procedure.role.attrib "%role.attrib;">

<!ENTITY % procedure.element "INCLUDE">
<!--doc:A list of operations to be performed in a well-defined sequence.-->
<!ELEMENT procedure %ho; (blockinfo?, (%formalobject.title.content;)?,
                          (%component.mix;)*, step+)>
<!--end of procedure.element-->]]>

<!ENTITY % procedure.attlist "INCLUDE">
<!ATTLIST procedure
<!--end of procedure.attlist-->]]>
<!--end of procedure.module-->]]>

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

<!ENTITY % step.element "INCLUDE">
<!--doc:A unit of action in a procedure.-->
<!ELEMENT step %ho; (title?, (((%component.mix;)+, ((substeps|stepalternatives), (%component.mix;)*)?)
                    | ((substeps|stepalternatives), (%component.mix;)*)))>
<!--end of step.element-->]]>

<!-- Performance: Whether the Step must be performed -->
<!-- not #REQUIRED! -->

<!ENTITY % step.attlist "INCLUDE">
<!ATTLIST step
		performance	(optional
				|required)	"required"
<!--end of step.attlist-->]]>
<!--end of step.module-->]]>

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

<!ENTITY % substeps.element "INCLUDE">
<!--doc:A wrapper for steps that occur within steps in a procedure.-->
<!ELEMENT substeps %ho; (step+)>
<!--end of substeps.element-->]]>

<!-- Performance: whether entire set of substeps must be performed -->
<!-- not #REQUIRED! -->

<!ENTITY % substeps.attlist "INCLUDE">
<!ATTLIST substeps
		performance	(optional
				|required)	"required"
<!--end of substeps.attlist-->]]>
<!--end of substeps.module-->]]>

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

<!ENTITY % stepalternatives.element "INCLUDE">
<!--doc:Alternative steps in a procedure.-->
<!ELEMENT stepalternatives %ho; (step+)>
<!--end of stepalternatives.element-->]]>

<!-- Performance: Whether (one of) the alternatives must be performed -->
<!-- not #REQUIRED! -->

<!ENTITY % stepalternatives.attlist "INCLUDE">
<!ATTLIST stepalternatives
		performance	(optional
				|required)	"required"
<!--end of stepalternatives.attlist-->]]>
<!--end of stepalternatives.module-->]]>
<!--end of procedure.content.module-->]]>

<!-- Sidebar .......................... -->

<!ENTITY % sidebar.content.model "INCLUDE">
<![ %sidebar.content.model; [

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

<!ENTITY % sidebarinfo.element "INCLUDE">
<![ %sidebarinfo.element; [
<!--doc:Meta-information for a Sidebar.-->
<!ELEMENT sidebarinfo %ho; ((%info.class;)+)
<!--end of sidebarinfo.element-->]]>

<!ENTITY % sidebarinfo.attlist "INCLUDE">
<![ %sidebarinfo.attlist; [
<!ATTLIST sidebarinfo
<!--end of sidebarinfo.attlist-->]]>
<!--end of sidebarinfo.module-->]]>

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

<!ENTITY % sidebar.element "INCLUDE">
<!--doc:A portion of a document that is isolated from the main narrative flow.-->
<!ELEMENT sidebar %ho; (sidebarinfo?,
<!--end of sidebar.element-->]]>

<!ENTITY % sidebar.attlist "INCLUDE">
<!ATTLIST sidebar
<!--end of sidebar.attlist-->]]>
<!--end of sidebar.module-->]]>
<!--end of sidebar.content.model-->]]>

<!-- ...................................................................... -->
<!-- Paragraph-related elements ........................................... -->

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

<!ENTITY % abstract.element "INCLUDE">
<!--doc:A summary.-->
<!ELEMENT abstract %ho; (title?, (%para.class;)+)>
<!--end of abstract.element-->]]>

<!ENTITY % abstract.attlist "INCLUDE">
<!ATTLIST abstract
<!--end of abstract.attlist-->]]>
<!--end of abstract.module-->]]>

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

<!ENTITY % authorblurb.element "INCLUDE">
<!--doc:A short description or note about an author.-->
<!ELEMENT authorblurb %ho; (title?, (%para.class;)+)>
<!--end of authorblurb.element-->]]>

<!ENTITY % authorblurb.attlist "INCLUDE">
<!ATTLIST authorblurb
<!--end of authorblurb.attlist-->]]>
<!--end of authorblurb.module-->]]>

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

<!ENTITY % personblurb.element "INCLUDE">
<!--doc:A short description or note about a person.-->
<!ELEMENT personblurb %ho; (title?, (%para.class;)+)>
<!--end of personblurb.element-->]]>

<!ENTITY % personblurb.attlist "INCLUDE">
<!ATTLIST personblurb
<!--end of personblurb.attlist-->]]>
<!--end of personblurb.module-->]]>

<!ENTITY % blockquote.module "INCLUDE">

<!ENTITY % local.blockquote.attrib "">
<!ENTITY % blockquote.role.attrib "%role.attrib;">

<!ENTITY % blockquote.element "INCLUDE">
<!--doc:A quotation set off from the main text.-->
<!ELEMENT blockquote %ho; (blockinfo?, title?, attribution?, (%component.mix;)+)
<!--end of blockquote.element-->]]>

<!ENTITY % blockquote.attlist "INCLUDE">
<!ATTLIST blockquote
<!--end of blockquote.attlist-->]]>
<!--end of blockquote.module-->]]>

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

<!ENTITY % attribution.element "INCLUDE">
<!--doc:The source of a block quote or epigraph.-->
<!ELEMENT attribution %ho; (%para.char.mix;)*>
<!--end of attribution.element-->]]>

<!ENTITY % attribution.attlist "INCLUDE">
<!ATTLIST attribution
<!--end of attribution.attlist-->]]>
<!--end of attribution.module-->]]>

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

<!ENTITY % bridgehead.element "INCLUDE">
<!--doc:A free-floating heading.-->
<!ELEMENT bridgehead %ho; (%title.char.mix;)*>
<!--end of bridgehead.element-->]]>

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

<!ENTITY % bridgehead.attlist "INCLUDE">
<!ATTLIST bridgehead
		renderas	(other
				|sect5)		#IMPLIED
<!--end of bridgehead.attlist-->]]>
<!--end of bridgehead.module-->]]>

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

<!ENTITY % remark.element "INCLUDE">
<!--doc:A remark (or comment) intended for presentation in a draft manuscript.-->
<!ELEMENT remark %ho; (%para.char.mix;)*
<!--end of remark.element-->]]>

<!ENTITY % remark.attlist "INCLUDE">
<!ATTLIST remark
<!--end of remark.attlist-->]]>
<!--end of remark.module-->]]>

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

<!ENTITY % epigraph.element "INCLUDE">
<!--doc:A short inscription at the beginning of a document or component.-->
<!ELEMENT epigraph %ho; (attribution?, ((%para.class;)|literallayout)+)>
<!--end of epigraph.element-->]]>

<!ENTITY % epigraph.attlist "INCLUDE">
<!ATTLIST epigraph
<!--end of epigraph.attlist-->]]>
<!-- Attribution (defined above)-->
<!--end of epigraph.module-->]]>

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

<!ENTITY % footnote.element "INCLUDE">
<!--doc:A footnote.-->
<!ELEMENT footnote %ho; ((%footnote.mix;)+)
<!--end of footnote.element-->]]>

<!ENTITY % footnote.attlist "INCLUDE">
<!ATTLIST footnote
<!--end of footnote.attlist-->]]>
<!--end of footnote.module-->]]>

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

<!ENTITY % highlights.element "INCLUDE">
<!--doc:A summary of the main points of the discussed component.-->
<!ELEMENT highlights %ho; ((%highlights.mix;)+)
<!--end of highlights.element-->]]>

<!ENTITY % highlights.attlist "INCLUDE">
<!ATTLIST highlights
<!--end of highlights.attlist-->]]>
<!--end of highlights.module-->]]>

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

<!ENTITY % formalpara.element "INCLUDE">
<!--doc:A paragraph with a title.-->
<!ELEMENT formalpara %ho; (title, (%ndxterm.class;)*, para)>
<!--end of formalpara.element-->]]>

<!ENTITY % formalpara.attlist "INCLUDE">
<!ATTLIST formalpara
<!--end of formalpara.attlist-->]]>
<!--end of formalpara.module-->]]>

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

<!ENTITY % para.element "INCLUDE">
<!--doc:A paragraph.-->
<!ELEMENT para %ho; (%para.char.mix; | %para.mix;)*>
<!--end of para.element-->]]>

<!ENTITY % para.attlist "INCLUDE">
<!ATTLIST para
<!--end of para.attlist-->]]>
<!--end of para.module-->]]>

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

<!ENTITY % simpara.element "INCLUDE">
<!--doc:A paragraph that contains only text and inline markup, no block elements.-->
<!ELEMENT simpara %ho; (%para.char.mix;)*>
<!--end of simpara.element-->]]>

<!ENTITY % simpara.attlist "INCLUDE">
<!ATTLIST simpara
<!--end of simpara.attlist-->]]>
<!--end of simpara.module-->]]>

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

<!ENTITY % caution.element "INCLUDE">
<!--doc:A note of caution.-->
<!ELEMENT caution %ho; (title?, (%admon.mix;)+)
<!--end of caution.element-->]]>

<!ENTITY % caution.attlist "INCLUDE">
<!ATTLIST caution
<!--end of caution.attlist-->]]>

<!ENTITY % important.element "INCLUDE">
<!--doc:An admonition set off from the text.-->
<!ELEMENT important %ho; (title?, (%admon.mix;)+)
<!--end of important.element-->]]>

<!ENTITY % important.attlist "INCLUDE">
<!ATTLIST important
<!--end of important.attlist-->]]>

<!ENTITY % note.element "INCLUDE">
<!--doc:A message set off from the text.-->
<!ELEMENT note %ho; (title?, (%admon.mix;)+)
<!--end of note.element-->]]>

<!ENTITY % note.attlist "INCLUDE">
<!ATTLIST note
<!--end of note.attlist-->]]>

<!ENTITY % tip.element "INCLUDE">
<!--doc:A suggestion to the user, set off from the text.-->
<!ELEMENT tip %ho; (title?, (%admon.mix;)+)
<!--end of tip.element-->]]>

<!ENTITY % tip.attlist "INCLUDE">
<!--end of tip.attlist-->]]>

<!ENTITY % warning.element "INCLUDE">
<!--doc:An admonition set off from the text.-->
<!ELEMENT warning %ho; (title?, (%admon.mix;)+)
<!--end of warning.element-->]]>

<!ENTITY % warning.attlist "INCLUDE">
<!ATTLIST warning
<!--end of warning.attlist-->]]>

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

<!-- ...................................................................... -->
<!-- Lists ................................................................ -->

<!-- GlossList ........................ -->

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

<!ENTITY % glosslist.element "INCLUDE">
<!--doc:A wrapper for a set of GlossEntrys.-->
<!ELEMENT glosslist %ho; (blockinfo?, (%formalobject.title.content;)?, glossentry+)>
<!--end of glosslist.element-->]]>

<!ENTITY % glosslist.attlist "INCLUDE">
<!ATTLIST glosslist
<!--end of glosslist.attlist-->]]>
<!--end of glosslist.module-->]]>

<!ENTITY % glossentry.content.module "INCLUDE">
<!ENTITY % glossentry.module "INCLUDE">
<!ENTITY % local.glossentry.attrib "">
<!ENTITY % glossentry.role.attrib "%role.attrib;">

<!ENTITY % glossentry.element "INCLUDE">
<!--doc:An entry in a Glossary or GlossList.-->
<!ELEMENT glossentry %ho; (glossterm, acronym?, abbrev?,
                      revhistory?, (glosssee|glossdef+))>
<!--end of glossentry.element-->]]>

<!-- SortAs: String by which the GlossEntry is to be sorted
		(alphabetized) in lieu of its proper content -->

<!ENTITY % glossentry.attlist "INCLUDE">
<!ATTLIST glossentry
		sortas		CDATA		#IMPLIED
<!--end of glossentry.attlist-->]]>
<!--end of glossentry.module-->]]>

<!-- GlossTerm (defined in the Inlines section, below)-->
<!ENTITY % glossdef.module "INCLUDE">
<!ENTITY % local.glossdef.attrib "">
<!ENTITY % glossdef.role.attrib "%role.attrib;">

<!ENTITY % glossdef.element "INCLUDE">
<!--doc:A definition in a GlossEntry.-->
<!ELEMENT glossdef %ho; ((%glossdef.mix;)+, glossseealso*)>
<!--end of glossdef.element-->]]>

<!-- Subject: List of subjects; keywords for the definition -->

<!ENTITY % glossdef.attlist "INCLUDE">
<!ATTLIST glossdef
		subject		CDATA		#IMPLIED
<!--end of glossdef.attlist-->]]>
<!--end of glossdef.module-->]]>

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

<!ENTITY % glosssee.element "INCLUDE">
<!--doc:A cross-reference from one GlossEntry to another.-->
<!ELEMENT glosssee %ho; (%para.char.mix;)*>
<!--end of glosssee.element-->]]>

<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
		should be displayed at the point of the GlossSee -->

<!ENTITY % glosssee.attlist "INCLUDE">
<!ATTLIST glosssee
		otherterm	IDREF		#IMPLIED
<!--end of glosssee.attlist-->]]>
<!--end of glosssee.module-->]]>

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

<!ENTITY % glossseealso.element "INCLUDE">
<!--doc:A cross-reference from one GlossEntry to another.-->
<!ELEMENT glossseealso %ho; (%para.char.mix;)*>
<!--end of glossseealso.element-->]]>

<!-- OtherTerm: Reference to the GlossEntry whose GlossTerm
		should be displayed at the point of the GlossSeeAlso -->

<!ENTITY % glossseealso.attlist "INCLUDE">
<!ATTLIST glossseealso
		otherterm	IDREF		#IMPLIED
<!--end of glossseealso.attlist-->]]>
<!--end of glossseealso.module-->]]>
<!--end of glossentry.content.module-->]]>

<!-- ItemizedList and OrderedList ..... -->

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

<!ENTITY % itemizedlist.element "INCLUDE">
<!--doc:A list in which each entry is marked with a bullet or other dingbat.-->
<!ELEMENT itemizedlist %ho; (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 -->

<!ENTITY % itemizedlist.attlist "INCLUDE">
<!ATTLIST itemizedlist
		spacing		(normal
				|compact)	#IMPLIED
<!--end of itemizedlist.attlist-->]]>
<!--end of itemizedlist.module-->]]>

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

<!ENTITY % orderedlist.element "INCLUDE">
<!--doc:A list in which each entry is marked with a sequentially incremented label.-->
<!ELEMENT orderedlist %ho; (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 -->

<!ENTITY % orderedlist.attlist "INCLUDE">
<!ATTLIST orderedlist
		numeration	(arabic
				|lowerroman)	#IMPLIED
		inheritnum	(inherit
				|ignore)	"ignore"
		continuation	(continues
				|restarts)	"restarts"
		spacing		(normal
				|compact)	#IMPLIED
<!--end of orderedlist.attlist-->]]>
<!--end of orderedlist.module-->]]>

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

<!ENTITY % listitem.element "INCLUDE">
<!--doc:A wrapper for the elements of a list item.-->
<!ELEMENT listitem %ho; ((%component.mix;)+)>
<!--end of listitem.element-->]]>

<!-- Override: Indicates the mark to be used for this ListItem
		instead of the default mark or the mark specified by
		the Mark attribute on the enclosing ItemizedList -->

<!ENTITY % listitem.attlist "INCLUDE">
<!ATTLIST listitem
		override	CDATA		#IMPLIED
<!--end of listitem.attlist-->]]>
<!--end of listitem.module-->]]>

<!-- SegmentedList .................... -->
<!ENTITY % segmentedlist.content.module "INCLUDE">
<!ENTITY % segmentedlist.module "INCLUDE">
<!ENTITY % local.segmentedlist.attrib "">
<!ENTITY % segmentedlist.role.attrib "%role.attrib;">

<!ENTITY % segmentedlist.element "INCLUDE">
<!--doc:A segmented list, a list of sets of elements.-->
<!ELEMENT segmentedlist %ho; ((%formalobject.title.content;)?,
<!--end of segmentedlist.element-->]]>

<!ENTITY % segmentedlist.attlist "INCLUDE">
<!ATTLIST segmentedlist
<!--end of segmentedlist.attlist-->]]>
<!--end of segmentedlist.module-->]]>

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

<!ENTITY % segtitle.element "INCLUDE">
<!--doc:The title of an element of a list item in a segmented list.-->
<!ELEMENT segtitle %ho; (%title.char.mix;)*>
<!--end of segtitle.element-->]]>

<!ENTITY % segtitle.attlist "INCLUDE">
<!ATTLIST segtitle
<!--end of segtitle.attlist-->]]>
<!--end of segtitle.module-->]]>

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

<!ENTITY % seglistitem.element "INCLUDE">
<!--doc:A list item in a segmented list.-->
<!ELEMENT seglistitem %ho; (seg+)>
<!--end of seglistitem.element-->]]>

<!ENTITY % seglistitem.attlist "INCLUDE">
<!ATTLIST seglistitem
<!--end of seglistitem.attlist-->]]>
<!--end of seglistitem.module-->]]>

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

<!ENTITY % seg.element "INCLUDE">
<!--doc:An element of a list item in a segmented list.-->
<!ELEMENT seg %ho; (%para.char.mix;)*>
<!--end of seg.element-->]]>

<!ENTITY % seg.attlist "INCLUDE">
<!--end of seg.attlist-->]]>
<!--end of seg.module-->]]>
<!--end of segmentedlist.content.module-->]]>

<!-- SimpleList ....................... -->

<!ENTITY % simplelist.content.module "INCLUDE">
<!ENTITY % simplelist.module "INCLUDE">
<!ENTITY % local.simplelist.attrib "">
<!ENTITY % simplelist.role.attrib "%role.attrib;">

<!ENTITY % simplelist.element "INCLUDE">
<!--doc:An undecorated list of single words or short phrases.-->
<!ELEMENT simplelist %ho; (member+)>
<!--end of simplelist.element-->]]>

<!-- Columns: The number of columns the array should contain -->
<!-- Type: How the Members of the SimpleList should be
		formatted: Inline (members separated with commas etc.
		inline), Vert (top to bottom in n Columns), or Horiz (in
		the direction of text flow) in n Columns.  If Column
		is 1 or implied, Type=Vert and Type=Horiz give the same
		results. -->

<!ENTITY % simplelist.attlist "INCLUDE">
<!ATTLIST simplelist
		columns		CDATA		#IMPLIED
		type		(inline
				|horiz)		"vert"
<!--end of simplelist.attlist-->]]>
<!--end of simplelist.module-->]]>

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

<!ENTITY % member.element "INCLUDE">
<!--doc:An element of a simple list.-->
<!ELEMENT member %ho; (%para.char.mix;)*>
<!--end of member.element-->]]>

<!ENTITY % member.attlist "INCLUDE">
<!ATTLIST member
<!--end of member.attlist-->]]>
<!--end of member.module-->]]>
<!--end of simplelist.content.module-->]]>

<!-- VariableList ..................... -->

<!ENTITY % variablelist.content.module "INCLUDE">
<!ENTITY % variablelist.module "INCLUDE">
<!ENTITY % local.variablelist.attrib "">
<!ENTITY % variablelist.role.attrib "%role.attrib;">

<!ENTITY % variablelist.element "INCLUDE">
<!--doc:A list in which each entry is composed of a set of one or more terms and an associated description.-->
<!ELEMENT variablelist %ho; (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. -->

<!ENTITY % variablelist.attlist "INCLUDE">
<!ATTLIST variablelist
		termlength	CDATA		#IMPLIED
		spacing		(normal
				|compact)	#IMPLIED
<!--end of variablelist.attlist-->]]>
<!--end of variablelist.module-->]]>

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

<!ENTITY % varlistentry.element "INCLUDE">
<!--doc:A wrapper for a set of terms and the associated description in a variable list.-->
<!ELEMENT varlistentry %ho; (term+, listitem)>
<!--end of varlistentry.element-->]]>

<!ENTITY % varlistentry.attlist "INCLUDE">
<!ATTLIST varlistentry
<!--end of varlistentry.attlist-->]]>
<!--end of varlistentry.module-->]]>

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

<!ENTITY % term.element "INCLUDE">
<!--doc:The word or phrase being defined or described in a variable list.-->
<!ELEMENT term %ho; (%para.char.mix;)*>
<!--end of term.element-->]]>

<!ENTITY % term.attlist "INCLUDE">
<!ATTLIST term
<!--end of term.attlist-->]]>
<!--end of term.module-->]]>

<!-- ListItem (defined above)-->
<!--end of variablelist.content.module-->]]>

<!-- CalloutList ...................... -->

<!ENTITY % calloutlist.content.module "INCLUDE">
<!ENTITY % calloutlist.module "INCLUDE">
<!ENTITY % local.calloutlist.attrib "">
<!ENTITY % calloutlist.role.attrib "%role.attrib;">

<!ENTITY % calloutlist.element "INCLUDE">
<!--doc:A list of Callouts.-->
<!ELEMENT calloutlist %ho; ((%formalobject.title.content;)?, callout+)>
<!--end of calloutlist.element-->]]>

<!ENTITY % calloutlist.attlist "INCLUDE">
<!ATTLIST calloutlist
<!--end of calloutlist.attlist-->]]>
<!--end of calloutlist.module-->]]>

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

<!ENTITY % callout.element "INCLUDE">
<!--doc:A &ldquo;called out&rdquo; description of a marked Area.-->
<!ELEMENT callout %ho; ((%component.mix;)+)>
<!--end of callout.element-->]]>

<!-- AreaRefs: IDs of one or more Areas or AreaSets described
		by this Callout -->

<!ENTITY % callout.attlist "INCLUDE">
<!ATTLIST callout
		arearefs	IDREFS		#REQUIRED
<!--end of callout.attlist-->]]>
<!--end of callout.module-->]]>
<!--end of calloutlist.content.module-->]]>

<!-- ...................................................................... -->
<!-- Objects .............................................................. -->

<!-- Examples etc. .................... -->

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

<!ENTITY % example.element "INCLUDE">
<!--doc:A formal example, with a title.-->
<!ELEMENT example %ho; (blockinfo?, (%formalobject.title.content;), (%example.mix;)+)
<!--end of example.element-->]]>

<!ENTITY % example.attlist "INCLUDE">
<!ATTLIST example
		floatstyle	CDATA			#IMPLIED
<!--end of example.attlist-->]]>
<!--end of example.module-->]]>

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

<!ENTITY % informalexample.element "INCLUDE">
<!--doc:A displayed example without a title.-->
<!ELEMENT informalexample %ho; (blockinfo?, (%example.mix;)+)>
<!--end of informalexample.element-->]]>

<!ENTITY % informalexample.attlist "INCLUDE">
<!ATTLIST informalexample
		floatstyle	CDATA			#IMPLIED
<!--end of informalexample.attlist-->]]>
<!--end of informalexample.module-->]]>

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

<!ENTITY % programlistingco.element "INCLUDE">
<!--doc:A program listing with associated areas used in callouts.-->
<!ELEMENT programlistingco %ho; (areaspec, programlisting, calloutlist*)>
<!--end of programlistingco.element-->]]>

<!ENTITY % programlistingco.attlist "INCLUDE">
<!ATTLIST programlistingco
<!--end of programlistingco.attlist-->]]>
<!-- CalloutList (defined above in Lists)-->
<!--end of informalexample.module-->]]>

<!ENTITY % areaspec.content.module "INCLUDE">
<!ENTITY % areaspec.module "INCLUDE">
<!ENTITY % local.areaspec.attrib "">
<!ENTITY % areaspec.role.attrib "%role.attrib;">

<!ENTITY % areaspec.element "INCLUDE">
<!--doc:A collection of regions in a graphic or code example.-->
<!ELEMENT areaspec %ho; ((area|areaset)+)>
<!--end of areaspec.element-->]]>

<!-- Units: global unit of measure in which coordinates in
		this spec are expressed:

		- CALSPair "x1,y1 x2,y2": lower-left and upper-right
		coordinates in a rectangle describing repro area in which
		graphic is placed, where X and Y dimensions are each some
		number 0..10000 (taken from CALS graphic attributes)

		- LineColumn "line column": line number and column number
		at which to start callout text in "linespecific" content

		- LineRange "startline endline": whole lines from startline
		to endline in "linespecific" content

		- LineColumnPair "line1 col1 line2 col2": starting and ending
		points of area in "linespecific" content that starts at
		first position and ends at second position (including the
		beginnings of any intervening lines)

		- Other: directive to look at value of OtherUnits attribute
		to get implementation-specific keyword

		The default is implementation-specific; usually dependent on
		the parent element (GraphicCO gets CALSPair, ProgramListingCO
		and ScreenCO get LineColumn) -->
<!-- OtherUnits: User-defined units -->

<!ENTITY % areaspec.attlist "INCLUDE">
<!ATTLIST areaspec
		units		(calspair
				|other)		#IMPLIED
		otherunits	NMTOKEN		#IMPLIED
<!--end of areaspec.attlist-->]]>
<!--end of areaspec.module-->]]>

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

<!ENTITY % area.element "INCLUDE">
<!--doc:A region defined for a Callout in a graphic or code example.-->
<!ELEMENT area %ho; EMPTY>
<!--end of area.element-->]]>

<!-- bug number/symbol override or initialization -->
<!-- to any related information -->
<!-- Units: unit of measure in which coordinates in this
		area are expressed; inherits from AreaSet and AreaSpec -->
<!-- OtherUnits: User-defined units -->

<!ENTITY % area.attlist "INCLUDE">
<!ATTLIST area
		units		(calspair
				|other)		#IMPLIED
		otherunits	NMTOKEN		#IMPLIED
		coords		CDATA		#REQUIRED
<!--end of area.attlist-->]]>
<!--end of area.module-->]]>

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

<!ENTITY % areaset.element "INCLUDE">
<!--doc:A set of related areas in a graphic or code example.-->
<!ELEMENT areaset %ho; (area+)>
<!--end of areaset.element-->]]>

<!-- bug number/symbol override or initialization -->
<!-- Units: unit of measure in which coordinates in this
		area are expressed; inherits from AreaSpec -->

<!ENTITY % areaset.attlist "INCLUDE">
<!ATTLIST areaset
		units		(calspair
				|other)		#IMPLIED
		otherunits	NMTOKEN		#IMPLIED
		coords		CDATA		#REQUIRED
<!--end of areaset.attlist-->]]>
<!--end of areaset.module-->]]>
<!--end of areaspec.content.module-->]]>

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

<!ENTITY % programlisting.element "INCLUDE">
<!--doc:A literal listing of all or part of a program.-->
<!ELEMENT programlisting %ho; (%para.char.mix;|co|coref|lineannotation|textobject)*>
<!--end of programlisting.element-->]]>

<!ENTITY % programlisting.attlist "INCLUDE">
<!ATTLIST programlisting
<!--end of programlisting.attlist-->]]>
<!--end of programlisting.module-->]]>

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

<!ENTITY % literallayout.element "INCLUDE">
<!--doc:A block of text in which line breaks and white space are to be reproduced faithfully.-->
<!ELEMENT literallayout %ho; (%para.char.mix;|co|coref|textobject|lineannotation)*>
<!--end of literallayout.element-->]]>

<!ENTITY % literallayout.attlist "INCLUDE">
<!ATTLIST literallayout
		class	(monospaced|normal)	"normal"
<!--end of literallayout.attlist-->]]>
<!-- LineAnnotation (defined in the Inlines section, below)-->
<!--end of literallayout.module-->]]>

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

<!ENTITY % screenco.element "INCLUDE">
<!--doc:A screen with associated areas used in callouts.-->
<!ELEMENT screenco %ho; (areaspec, screen, calloutlist*)>
<!--end of screenco.element-->]]>

<!ENTITY % screenco.attlist "INCLUDE">
<!ATTLIST screenco
<!--end of screenco.attlist-->]]>
<!-- AreaSpec (defined above)-->
<!-- CalloutList (defined above in Lists)-->
<!--end of screenco.module-->]]>

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

<!ENTITY % screen.element "INCLUDE">
<!--doc:Text that a user sees or might see on a computer screen.-->
<!ELEMENT screen %ho; (%para.char.mix;|co|coref|textobject|lineannotation)*>
<!--end of screen.element-->]]>

<!ENTITY % screen.attlist "INCLUDE">
<!ATTLIST screen
<!--end of screen.attlist-->]]>
<!--end of screen.module-->]]>

<!ENTITY % screenshot.content.module "INCLUDE">
<!ENTITY % screenshot.module "INCLUDE">
<!ENTITY % local.screenshot.attrib "">
<!ENTITY % screenshot.role.attrib "%role.attrib;">

<!ENTITY % screenshot.element "INCLUDE">
<!--doc:A representation of what the user sees or might see on a computer screen.-->
<!ELEMENT screenshot %ho; (screeninfo?,
<!--end of screenshot.element-->]]>

<!ENTITY % screenshot.attlist "INCLUDE">
<!ATTLIST screenshot
<!--end of screenshot.attlist-->]]>
<!--end of screenshot.module-->]]>

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

<!ENTITY % screeninfo.element "INCLUDE">
<!--doc:Information about how a screen shot was produced.-->
<!ELEMENT screeninfo %ho; (%para.char.mix;)*
<!--end of screeninfo.element-->]]>

<!ENTITY % screeninfo.attlist "INCLUDE">
<!ATTLIST screeninfo
<!--end of screeninfo.attlist-->]]>
<!--end of screeninfo.module-->]]>
<!--end of screenshot.content.module-->]]>

<!-- Figures etc. ..................... -->

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

<!ENTITY % figure.element "INCLUDE">
<!--doc:A formal figure, generally an illustration, with a title.-->
<!ELEMENT figure %ho; (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) -->

<!ENTITY % figure.attlist "INCLUDE">
<!ATTLIST figure
		float		%yesorno.attvals;	'0'
		floatstyle	CDATA			#IMPLIED
		pgwide      	%yesorno.attvals;       #IMPLIED
<!--end of figure.attlist-->]]>
<!--end of figure.module-->]]>

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

<!ENTITY % informalfigure.element "INCLUDE">
<![ %informalfigure.element; [
<!--doc:A untitled figure.-->
<!ELEMENT informalfigure %ho; (blockinfo?, (%figure.mix; | %link.char.class;)+)>
<!--end of informalfigure.element-->]]>

<!ENTITY % informalfigure.attlist "INCLUDE">
<![ %informalfigure.attlist; [
Float: Whether the Figure is supposed to be rendered
where convenient (yes (1) value) or at the place it occurs
in the text (no (0) value, the default)
<!ATTLIST informalfigure
		float		%yesorno.attvals;	"0"
		floatstyle	CDATA			#IMPLIED
		pgwide      	%yesorno.attvals;       #IMPLIED
<!--end of informalfigure.attlist-->]]>
<!--end of informalfigure.module-->]]>

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

<!ENTITY % graphicco.element "INCLUDE">
<!--doc:A graphic that contains callout areas.-->
<!ELEMENT graphicco %ho; (areaspec, graphic, calloutlist*)>
<!--end of graphicco.element-->]]>

<!ENTITY % graphicco.attlist "INCLUDE">
<!ATTLIST graphicco
<!--end of graphicco.attlist-->]]>
<!-- AreaSpec (defined above in Examples)-->
<!-- CalloutList (defined above in Lists)-->
<!--end of graphicco.module-->]]>

<!-- Graphical data can be the content of Graphic, or you can reference
     an external file either as an entity (Entitref) or a filename
     (Fileref). -->

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

<!ENTITY % graphic.element "INCLUDE">
<!--doc:A displayed graphical object (not an inline).-->
<!ELEMENT graphic %ho; EMPTY>
<!--end of graphic.element-->]]>

<!ENTITY % graphic.attlist "INCLUDE">
<!ATTLIST graphic
<!--end of graphic.attlist-->]]>
<!--end of graphic.module-->]]>

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

<!ENTITY % inlinegraphic.element "INCLUDE">
<!--doc:An object containing or pointing to graphical data that will be rendered inline.-->
<!ELEMENT inlinegraphic %ho; EMPTY>
<!--end of inlinegraphic.element-->]]>

<!ENTITY % inlinegraphic.attlist "INCLUDE">
<!ATTLIST inlinegraphic
<!--end of inlinegraphic.attlist-->]]>
<!--end of inlinegraphic.module-->]]>

<!ENTITY % mediaobject.content.module "INCLUDE">
<![ %mediaobject.content.module; [

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

<!ENTITY % mediaobject.element "INCLUDE">
<![ %mediaobject.element; [
<!--doc:A displayed media object (video, audio, image, etc.).-->
<!ELEMENT mediaobject %ho; (objectinfo?,
<!--end of mediaobject.element-->]]>

<!ENTITY % mediaobject.attlist "INCLUDE">
<![ %mediaobject.attlist; [
<!ATTLIST mediaobject
<!--end of mediaobject.attlist-->]]>
<!--end of mediaobject.module-->]]>

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

<!ENTITY % inlinemediaobject.element "INCLUDE">
<![ %inlinemediaobject.element; [
<!--doc:An inline media object (video, audio, image, and so on).-->
<!ELEMENT inlinemediaobject %ho; (objectinfo?,
<!--end of inlinemediaobject.element-->]]>

<!ENTITY % inlinemediaobject.attlist "INCLUDE">
<![ %inlinemediaobject.attlist; [
<!ATTLIST inlinemediaobject
<!--end of inlinemediaobject.attlist-->]]>
<!--end of inlinemediaobject.module-->]]>

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

<!ENTITY % videoobject.element "INCLUDE">
<![ %videoobject.element; [
<!--doc:A wrapper for video data and its associated meta-information.-->
<!ELEMENT videoobject %ho; (objectinfo?, videodata)>
<!--end of videoobject.element-->]]>

<!ENTITY % videoobject.attlist "INCLUDE">
<![ %videoobject.attlist; [
<!ATTLIST videoobject
<!--end of videoobject.attlist-->]]>
<!--end of videoobject.module-->]]>

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

<!ENTITY % audioobject.element "INCLUDE">
<![ %audioobject.element; [
<!--doc:A wrapper for audio data and its associated meta-information.-->
<!ELEMENT audioobject %ho; (objectinfo?, audiodata)>
<!--end of audioobject.element-->]]>

<!ENTITY % audioobject.attlist "INCLUDE">
<![ %audioobject.attlist; [
<!ATTLIST audioobject
<!--end of audioobject.attlist-->]]>
<!--end of audioobject.module-->]]>

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

<!ENTITY % imageobject.element "INCLUDE">
<![ %imageobject.element; [
<!--doc:A wrapper for image data and its associated meta-information.-->
<!ELEMENT imageobject %ho; (objectinfo?, imagedata)>
<!--end of imageobject.element-->]]>

<!ENTITY % imageobject.attlist "INCLUDE">
<![ %imageobject.attlist; [
<!ATTLIST imageobject
<!--end of imageobject.attlist-->]]>
<!--end of imageobject.module-->]]>

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

<!ENTITY % textobject.element "INCLUDE">
<![ %textobject.element; [
<!--doc:A wrapper for a text description of an object and its associated meta-information.-->
<!ELEMENT textobject %ho; (objectinfo?, (phrase|textdata|(%textobject.mix;)+))>
<!--end of textobject.element-->]]>

<!ENTITY % textobject.attlist "INCLUDE">
<![ %textobject.attlist; [
<!ATTLIST textobject
<!--end of textobject.attlist-->]]>
<!--end of textobject.module-->]]>

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

<!ENTITY % objectinfo.element "INCLUDE">
<![ %objectinfo.element; [
<!--doc:Meta-information for an object.-->
<!ELEMENT objectinfo %ho; ((%info.class;)+)
<!--end of objectinfo.element-->]]>

<!ENTITY % objectinfo.attlist "INCLUDE">
<![ %objectinfo.attlist; [
<!ATTLIST objectinfo
<!--end of objectinfo.attlist-->]]>
<!--end of objectinfo.module-->]]>

<!--EntityRef: Name of an external entity containing the content
	of the object data-->
<!--FileRef: Filename, qualified by a pathname if desired,
	designating the file containing the content of the object data-->
<!--Format: Notation of the element content, if any-->
<!--SrcCredit: Information about the source of the image-->
<!ENTITY % local.objectdata.attrib "">
<!ENTITY % objectdata.attrib
	entityref	ENTITY		#IMPLIED
	fileref 	CDATA		#IMPLIED
	format		(%notation.class;)
	srccredit	CDATA		#IMPLIED

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

<!ENTITY % videodata.element "INCLUDE">
<![ %videodata.element; [
<!--doc:Pointer to external video data.-->
<!ELEMENT videodata %ho; EMPTY>
<!--end of videodata.element-->]]>

<!ENTITY % videodata.attlist "INCLUDE">
<![ %videodata.attlist; [

<!--Width: Same as CALS reprowid (desired width)-->
<!--Depth: Same as CALS reprodep (desired depth)-->
<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means
<!--Scale: Conflation of CALS hscale and vscale-->
<!--Scalefit: Same as CALS scalefit-->
<!ATTLIST videodata
	contentwidth	CDATA		#IMPLIED
	contentdepth	CDATA		#IMPLIED
	align		(left
			|center)	#IMPLIED
	valign		(top
			|bottom)	#IMPLIED
	scalefit	%yesorno.attvals;
<!--end of videodata.attlist-->]]>
<!--end of videodata.module-->]]>

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

<!ENTITY % audiodata.element "INCLUDE">
<![ %audiodata.element; [
<!--doc:Pointer to external audio data.-->
<!ELEMENT audiodata %ho; EMPTY>
<!--end of audiodata.element-->]]>

<!ENTITY % audiodata.attlist "INCLUDE">
<![ %audiodata.attlist; [
<!ATTLIST audiodata
<!--end of audiodata.attlist-->]]>
<!--end of audiodata.module-->]]>

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

<!ENTITY % imagedata.element "INCLUDE">
<![ %imagedata.element; [
<!--doc:Pointer to external image data.-->
<!ELEMENT imagedata %ho; EMPTY>
<!--end of imagedata.element-->]]>

<!ENTITY % imagedata.attlist "INCLUDE">
<![ %imagedata.attlist; [

<!--Width: Same as CALS reprowid (desired width)-->
<!--Depth: Same as CALS reprodep (desired depth)-->
<!--Align: Same as CALS hplace with 'none' removed; #IMPLIED means
<!--Scale: Conflation of CALS hscale and vscale-->
<!--Scalefit: Same as CALS scalefit-->
<!ATTLIST imagedata
	contentwidth	CDATA		#IMPLIED
	contentdepth	CDATA		#IMPLIED
	align		(left
			|center)	#IMPLIED
	valign		(top
			|bottom)	#IMPLIED
	scalefit	%yesorno.attvals;
<!--end of imagedata.attlist-->]]>
<!--end of imagedata.module-->]]>

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

<!ENTITY % textdata.element "INCLUDE">
<![ %textdata.element; [
<!--doc:Pointer to external text data.-->
<!ELEMENT textdata %ho; EMPTY>
<!--end of textdata.element-->]]>

<!ENTITY % textdata.attlist "INCLUDE">
<![ %textdata.attlist; [
<!ATTLIST textdata
		encoding	CDATA	#IMPLIED
<!--end of textdata.attlist-->]]>
<!--end of textdata.module-->]]>

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

<!ENTITY % mediaobjectco.element "INCLUDE">
<![ %mediaobjectco.element; [
<!--doc:A media object that contains callouts.-->
<!ELEMENT mediaobjectco %ho; (objectinfo?, imageobjectco,
<!--end of mediaobjectco.element-->]]>

<!ENTITY % mediaobjectco.attlist "INCLUDE">
<![ %mediaobjectco.attlist; [
<!ATTLIST mediaobjectco
<!--end of mediaobjectco.attlist-->]]>
<!--end of mediaobjectco.module-->]]>

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

<!ENTITY % imageobjectco.element "INCLUDE">
<![ %imageobjectco.element; [
<!--doc:A wrapper for an image object with callouts.-->
<!ELEMENT imageobjectco %ho; (areaspec, imageobject, calloutlist*)>
<!--end of imageobjectco.element-->]]>

<!ENTITY % imageobjectco.attlist "INCLUDE">
<![ %imageobjectco.attlist; [
<!ATTLIST imageobjectco
<!--end of imageobjectco.attlist-->]]>
<!--end of imageobjectco.module-->]]>
<!--end of mediaobject.content.module-->]]>

<!-- Equations ........................ -->

<!-- This PE provides a mechanism for replacing equation content, -->
<!-- perhaps adding a new or different model (e.g., MathML) -->
<!ENTITY % equation.content "(alt?, (graphic+|mediaobject+|mathphrase+))">
<!ENTITY % inlineequation.content "(alt?, (graphic+|inlinemediaobject+|mathphrase+))">

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

<!ENTITY % equation.element "INCLUDE">
<!--doc:A displayed mathematical equation.-->
<!ELEMENT equation %ho; (blockinfo?, (%formalobject.title.content;)?,
                         (informalequation | %equation.content;))>
<!--end of equation.element-->]]>

<!ENTITY % equation.attlist "INCLUDE">
<!ATTLIST equation
		floatstyle	CDATA			#IMPLIED
<!--end of equation.attlist-->]]>
<!--end of equation.module-->]]>

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

<!ENTITY % informalequation.element "INCLUDE">
<!--doc:A displayed mathematical equation without a title.-->
<!ELEMENT informalequation %ho; (blockinfo?, %equation.content;) >
<!--end of informalequation.element-->]]>

<!ENTITY % informalequation.attlist "INCLUDE">
<!ATTLIST informalequation
		floatstyle	CDATA			#IMPLIED
<!--end of informalequation.attlist-->]]>
<!--end of informalequation.module-->]]>

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

<!ENTITY % inlineequation.element "INCLUDE">
<!--doc:A mathematical equation or expression occurring inline.-->
<!ELEMENT inlineequation %ho; (%inlineequation.content;)>
<!--end of inlineequation.element-->]]>

<!ENTITY % inlineequation.attlist "INCLUDE">
<!ATTLIST inlineequation
<!--end of inlineequation.attlist-->]]>
<!--end of inlineequation.module-->]]>

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

<!ENTITY % alt.element "INCLUDE">
<!--doc:Text representation for a graphical element.-->
<!ELEMENT alt %ho; (#PCDATA)>
<!--end of alt.element-->]]>

<!ENTITY % alt.attlist "INCLUDE">
<!--end of alt.attlist-->]]>
<!--end of alt.module-->]]>

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

<!ENTITY % mathphrase.element "INCLUDE">
<!--doc:A mathematical phrase, an expression that can be represented with ordinary text and a small amount of markup.-->
<!ELEMENT mathphrase %ho; (#PCDATA|subscript|superscript|emphasis)*>
<!--end of mathphrase.element-->]]>

<!ENTITY % mathphrase.attlist "INCLUDE">
<!ATTLIST mathphrase
<!--end of mathphrase.attlist-->]]>
<!--end of mathphrase.module-->]]>

<!-- Tables ........................... -->

<!ENTITY % table.module "INCLUDE">

<!-- Choose a table model. CALS or OASIS XML Exchange -->

<!ENTITY % cals.table.module "INCLUDE">
<!ENTITY % exchange.table.module "IGNORE">
<!ENTITY % exchange.table.module "INCLUDE">

<!-- Do we allow the HTML table model as well? -->
<!ENTITY % allow.html.tables "INCLUDE">
  <!-- ====================================================== -->
  <!--  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!                    -->
  <!-- ====================================================== -->

<!ENTITY % htmltbl
<!--end of allow.html.tables-->]]>

<!ENTITY % tables.role.attrib "%role.attrib;">

<!-- Add label and role attributes to table and informaltable -->
<!ENTITY % bodyatt "
		floatstyle	CDATA			#IMPLIED
		rowheader	(firstcol|norowheader)	#IMPLIED

<!-- Add common attributes to Table, TGroup, TBody, THead, TFoot, Row,
     EntryTbl, and Entry (and InformalTable element). -->
<!ENTITY % secur

<!ENTITY % common.table.attribs

<!-- Content model for Table. -->
<!ENTITY % tbl.table.mdl
	"(blockinfo?, (%formalobject.title.content;), (%ndxterm.class;)*,

<!-- Allow either objects or inlines; beware of REs between elements. -->
<!ENTITY % tbl.entry.mdl "%para.char.mix; | %tabentry.mix;">

<!-- Reference CALS Table Model -->
<!ENTITY % tablemodel
  PUBLIC "-//OASIS//DTD DocBook CALS Table Model V4.5//EN"

<!-- Add common attributes and the Label attribute to Table and -->
<!-- InformalTable.                                             -->
<!ENTITY % bodyatt
	rowheader	(firstcol|norowheader)	#IMPLIED

<!ENTITY % common.table.attribs

<!-- Add common attributes to TGroup, ColSpec, TBody, THead, Row, Entry -->

<!ENTITY % tbl.tgroup.att       "%common.attrib;">
<!ENTITY % tbl.colspec.att      "%common.attrib;">
<!ENTITY % tbl.tbody.att        "%common.attrib;">
<!ENTITY % tbl.thead.att        "%common.attrib;">
<!ENTITY % tbl.row.att          "%common.attrib;">
<!ENTITY % tbl.entry.att        "%common.attrib;">

<!-- Content model for Table. -->
<!ENTITY % tbl.table.mdl
	"(blockinfo?, (%formalobject.title.content;), (%ndxterm.class;)*,

<!-- Allow either objects or inlines; beware of REs between elements. -->
<!ENTITY % tbl.entry.mdl "(%para.char.mix; | %tabentry.mix;)*">

<!-- Reference OASIS Exchange Table Model -->
<!ENTITY % tablemodel
  PUBLIC "-//OASIS//DTD XML Exchange Table Model 19990315//EN"


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

<!ENTITY % informaltable.module "INCLUDE">

<!-- Note that InformalTable is dependent on some of the entity
     declarations that customize Table. -->

<!ENTITY % local.informaltable.attrib "">

<!-- the following entity may have been declared by the XHTML table module -->
<!ENTITY % informal.tbl.table.mdl "textobject*, (graphic+|mediaobject+|tgroup+)">

<!ENTITY % informaltable.element "INCLUDE">
<!--doc:A table without a title.-->
<!ELEMENT informaltable %ho; (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 -->

<!ENTITY % informaltable.attlist "INCLUDE">
<!ATTLIST informaltable
		frame		(%tbl.frame.attval;)	#IMPLIED
		colsep		%yesorno.attvals;	#IMPLIED
		rowsep		%yesorno.attvals;	#IMPLIED
<!--end of informaltable.attlist-->]]>
<!--end of informaltable.module-->]]>

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

<!ENTITY % caption.element "INCLUDE">
<![ %caption.element; [
<!--doc:A caption.-->
<!ELEMENT caption %ho; (#PCDATA | %textobject.mix;)*>
<!--end of caption.element-->]]>

<!ENTITY % caption.attlist "INCLUDE">
<![ %caption.attlist; [
<!-- attrs comes from HTML tables ... -->

<![ %allow.html.tables; [
<!-- common.attrib, but without ID because ID is in attrs -->
<!ENTITY % caption.attlist.content "
		align	(top|bottom|left|right)	#IMPLIED
<!ENTITY % caption.attlist.content "

<!ATTLIST caption %caption.attlist.content;>

<!--end of caption.attlist-->]]>
<!--end of caption.module-->]]>

<!-- ...................................................................... -->
<!-- Synopses ............................................................. -->

<!-- Synopsis ......................... -->

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

<!ENTITY % synopsis.element "INCLUDE">
<!--doc:A general-purpose element for representing the syntax of commands or functions.-->
<!ELEMENT synopsis %ho; (%para.char.mix;|graphic|mediaobject|co|coref|textobject|lineannotation)*>
<!--end of synopsis.element-->]]>

<!ENTITY % synopsis.attlist "INCLUDE">
<!ATTLIST synopsis
<!--end of synopsis.attlist-->]]>

<!-- LineAnnotation (defined in the Inlines section, below)-->
<!--end of synopsis.module-->]]>

<!-- CmdSynopsis ...................... -->

<!ENTITY % cmdsynopsis.content.module "INCLUDE">
<!ENTITY % cmdsynopsis.module "INCLUDE">
<!ENTITY % local.cmdsynopsis.attrib "">
<!ENTITY % cmdsynopsis.role.attrib "%role.attrib;">

<!ENTITY % cmdsynopsis.element "INCLUDE">
<!--doc:A syntax summary for a software command.-->
<!ELEMENT cmdsynopsis %ho; ((command | arg | group | sbr)+, synopfragment*)>
<!--end of cmdsynopsis.element-->]]>

<!-- Sepchar: Character that should separate command and all
		top-level arguments; alternate value might be e.g., &Delta; -->

<!ENTITY % cmdsynopsis.attlist "INCLUDE">
<!ATTLIST cmdsynopsis
		sepchar		CDATA		" "
		cmdlength	CDATA		#IMPLIED
<!--end of cmdsynopsis.attlist-->]]>
<!--end of cmdsynopsis.module-->]]>

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

<!ENTITY % arg.element "INCLUDE">
<!--doc:An argument in a CmdSynopsis.-->
<!ELEMENT arg %ho; (#PCDATA
		| arg
		| group
		| option
		| synopfragmentref
		| replaceable
		| sbr)*>
<!--end of arg.element-->]]>

<!-- Choice: Whether Arg must be supplied: Opt (optional to
		supply, e.g. [arg]; the default), Req (required to supply,
		e.g. {arg}), or Plain (required to supply, e.g. arg) -->
<!-- Rep: whether Arg is repeatable: Norepeat (e.g. arg without
		ellipsis; the default), or Repeat (e.g. arg...) -->

<!ENTITY % arg.attlist "INCLUDE">
		choice		(opt
				|plain)		'opt'
		rep		(norepeat
				|repeat)	'norepeat'
<!--end of arg.attlist-->]]>
<!--end of arg.module-->]]>

<!ENTITY % group.module "INCLUDE">

<!ENTITY % local.group.attrib "">
<!ENTITY % group.role.attrib "%role.attrib;">

<!ENTITY % group.element "INCLUDE">
<!--doc:A group of elements in a CmdSynopsis.-->
<!ELEMENT group %ho; ((arg | group | option | synopfragmentref
		| replaceable | sbr)+)>
<!--end of group.element-->]]>

<!-- Choice: Whether Group must be supplied: Opt (optional to
		supply, e.g.  [g1|g2|g3]; the default), Req (required to
		supply, e.g.  {g1|g2|g3}), Plain (required to supply,
		e.g.  g1|g2|g3), OptMult (can supply zero or more, e.g.
		[[g1|g2|g3]]), or ReqMult (must supply one or more, e.g.
		{{g1|g2|g3}}) -->
<!-- Rep: whether Group is repeatable: Norepeat (e.g. group
		without ellipsis; the default), or Repeat (e.g. group...) -->

<!ENTITY % group.attlist "INCLUDE">
<!ATTLIST group
		choice		(opt
				|plain)         'opt'
		rep		(norepeat
				|repeat)	'norepeat'
<!--end of group.attlist-->]]>
<!--end of group.module-->]]>

<!ENTITY % sbr.module "INCLUDE">
<!ENTITY % local.sbr.attrib "">
<!-- Synopsis break -->
<!ENTITY % sbr.role.attrib "%role.attrib;">

<!ENTITY % sbr.element "INCLUDE">
<!--doc:An explicit line break in a command synopsis.-->
<!ELEMENT sbr %ho; EMPTY>
<!--end of sbr.element-->]]>

<!ENTITY % sbr.attlist "INCLUDE">
<!--end of sbr.attlist-->]]>
<!--end of sbr.module-->]]>

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

<!ENTITY % synopfragmentref.element "INCLUDE">
<!--doc:A reference to a fragment of a command synopsis.-->
<!ELEMENT synopfragmentref %ho; (#PCDATA)>
<!--end of synopfragmentref.element-->]]>

<!-- to SynopFragment of complex synopsis
			material for separate referencing -->

<!ENTITY % synopfragmentref.attlist "INCLUDE">
<!ATTLIST synopfragmentref
		%linkendreq.attrib;		%common.attrib;
<!--end of synopfragmentref.attlist-->]]>
<!--end of synopfragmentref.module-->]]>

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

<!ENTITY % synopfragment.element "INCLUDE">
<!--doc:A portion of a CmdSynopsis broken out from the main body of the synopsis.-->
<!ELEMENT synopfragment %ho; ((arg | group)+)>
<!--end of synopfragment.element-->]]>

<!ENTITY % synopfragment.attlist "INCLUDE">
<!ATTLIST synopfragment
<!--end of synopfragment.attlist-->]]>
<!--end of synopfragment.module-->]]>

<!-- Command (defined in the Inlines section, below)-->
<!-- Option (defined in the Inlines section, below)-->
<!-- Replaceable (defined in the Inlines section, below)-->
<!--end of cmdsynopsis.content.module-->]]>

<!-- FuncSynopsis ..................... -->

<!ENTITY % funcsynopsis.content.module "INCLUDE">
<!ENTITY % funcsynopsis.module "INCLUDE">

<!ENTITY % local.funcsynopsis.attrib "">
<!ENTITY % funcsynopsis.role.attrib "%role.attrib;">

<!ENTITY % funcsynopsis.element "INCLUDE">
<!--doc:The syntax summary for a function definition.-->
<!ELEMENT funcsynopsis %ho; ((funcsynopsisinfo | funcprototype)+)>
<!--end of funcsynopsis.element-->]]>

<!ENTITY % funcsynopsis.attlist "INCLUDE">
<!ATTLIST funcsynopsis
<!--end of funcsynopsis.attlist-->]]>
<!--end of funcsynopsis.module-->]]>

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

<!ENTITY % funcsynopsisinfo.element "INCLUDE">
<!--doc:Information supplementing the FuncDefs of a FuncSynopsis.-->
<!ELEMENT funcsynopsisinfo %ho; (%cptr.char.mix;|textobject|lineannotation)*>
<!--end of funcsynopsisinfo.element-->]]>

<!ENTITY % funcsynopsisinfo.attlist "INCLUDE">
<!ATTLIST funcsynopsisinfo
<!--end of funcsynopsisinfo.attlist-->]]>
<!--end of funcsynopsisinfo.module-->]]>

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

<!ENTITY % funcprototype.element "INCLUDE">
<!--doc:The prototype of a function.-->
<!ELEMENT funcprototype %ho; (modifier*,
                              (void|varargs|(paramdef+, varargs?)),

<!--end of funcprototype.element-->]]>

<!ENTITY % funcprototype.attlist "INCLUDE">
<!ATTLIST funcprototype
<!--end of funcprototype.attlist-->]]>
<!--end of funcprototype.module-->]]>

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

<!ENTITY % funcdef.element "INCLUDE">
<!--doc:A function (subroutine) name and its return type.-->
<!ELEMENT funcdef %ho; (#PCDATA
		| type
		| replaceable
		| function)*>
<!--end of funcdef.element-->]]>

<!ENTITY % funcdef.attlist "INCLUDE">
<!ATTLIST funcdef
<!--end of funcdef.attlist-->]]>
<!--end of funcdef.module-->]]>

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

<!ENTITY % void.element "INCLUDE">
<!--doc:An empty element in a function synopsis indicating that the function in question takes no arguments.-->
<!ELEMENT void %ho; EMPTY>
<!--end of void.element-->]]>

<!ENTITY % void.attlist "INCLUDE">
<!ATTLIST void
<!--end of void.attlist-->]]>
<!--end of void.module-->]]>

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

<!ENTITY % varargs.element "INCLUDE">
<!--doc:An empty element in a function synopsis indicating a variable number of arguments.-->
<!ELEMENT varargs %ho; EMPTY>
<!--end of varargs.element-->]]>

<!ENTITY % varargs.attlist "INCLUDE">
<!ATTLIST varargs
<!--end of varargs.attlist-->]]>
<!--end of varargs.module-->]]>

<!-- Processing assumes that only one Parameter will appear in a
     ParamDef, and that FuncParams will be used at most once, for
     providing information on the "inner parameters" for parameters that
     are pointers to functions. -->

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

<!ENTITY % paramdef.element "INCLUDE">
<!--doc:Information about a function parameter in a programming language.-->
<!ELEMENT paramdef %ho; (#PCDATA
                | initializer
		| type
		| replaceable
		| parameter
		| funcparams)*>
<!--end of paramdef.element-->]]>

<!ENTITY % paramdef.attlist "INCLUDE">
<!ATTLIST paramdef
		choice		(opt
				|req)	#IMPLIED
<!--end of paramdef.attlist-->]]>
<!--end of paramdef.module-->]]>

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

<!ENTITY % funcparams.element "INCLUDE">
<!--doc:Parameters for a function referenced through a function pointer in a synopsis.-->
<!ELEMENT funcparams %ho; (%cptr.char.mix;)*>
<!--end of funcparams.element-->]]>

<!ENTITY % funcparams.attlist "INCLUDE">
<!ATTLIST funcparams
<!--end of funcparams.attlist-->]]>
<!--end of funcparams.module-->]]>

<!-- LineAnnotation (defined in the Inlines section, below)-->
<!-- Replaceable (defined in the Inlines section, below)-->
<!-- Function (defined in the Inlines section, below)-->
<!-- Parameter (defined in the Inlines section, below)-->
<!--end of funcsynopsis.content.module-->]]>

<!-- ClassSynopsis ..................... -->

<!ENTITY % classsynopsis.content.module "INCLUDE">

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

<!ENTITY % classsynopsis.element "INCLUDE">
<!--doc:The syntax summary for a class definition.-->
<!ELEMENT classsynopsis %ho; ((ooclass|oointerface|ooexception)+,
<!--end of classsynopsis.element-->]]>

<!ENTITY % classsynopsis.attlist "INCLUDE">
<!ATTLIST classsynopsis
	language	CDATA	#IMPLIED
	class	(class|interface)	"class"
<!--end of classsynopsis.attlist-->]]>
<!--end of classsynopsis.module-->]]>

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

<!ENTITY % classsynopsisinfo.element "INCLUDE">
<![ %classsynopsisinfo.element; [
<!--doc:Information supplementing the contents of a ClassSynopsis.-->
<!ELEMENT classsynopsisinfo %ho; (%cptr.char.mix;|textobject|lineannotation)*>
<!--end of classsynopsisinfo.element-->]]>

<!ENTITY % classsynopsisinfo.attlist "INCLUDE">
<![ %classsynopsisinfo.attlist; [
<!ATTLIST classsynopsisinfo
<!--end of classsynopsisinfo.attlist-->]]>
<!--end of classsynopsisinfo.module-->]]>

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

<!ENTITY % ooclass.element "INCLUDE">
<!--doc:A class in an object-oriented programming language.-->
<!ELEMENT ooclass %ho; ((modifier|package)*, classname)>
<!--end of ooclass.element-->]]>

<!ENTITY % ooclass.attlist "INCLUDE">
<!ATTLIST ooclass
<!--end of ooclass.attlist-->]]>
<!--end of ooclass.module-->]]>

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

<!ENTITY % oointerface.element "INCLUDE">
<!--doc:An interface in an object-oriented programming language.-->
<!ELEMENT oointerface %ho; ((modifier|package)*, interfacename)>
<!--end of oointerface.element-->]]>

<!ENTITY % oointerface.attlist "INCLUDE">
<!ATTLIST oointerface
<!--end of oointerface.attlist-->]]>
<!--end of oointerface.module-->]]>

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

<!ENTITY % ooexception.element "INCLUDE">
<!--doc:An exception in an object-oriented programming language.-->
<!ELEMENT ooexception %ho; ((modifier|package)*, exceptionname)>
<!--end of ooexception.element-->]]>

<!ENTITY % ooexception.attlist "INCLUDE">
<!ATTLIST ooexception
<!--end of ooexception.attlist-->]]>
<!--end of ooexception.module-->]]>

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

<!ENTITY % modifier.element "INCLUDE">
<!--doc:Modifiers in a synopsis.-->
<!ELEMENT modifier %ho; (%smallcptr.char.mix;)*>
<!--end of modifier.element-->]]>

<!ENTITY % modifier.attlist "INCLUDE">
<!ATTLIST modifier
<!--end of modifier.attlist-->]]>
<!--end of modifier.module-->]]>

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

<!ENTITY % interfacename.element "INCLUDE">
<!--doc:The name of an interface.-->
<!ELEMENT interfacename %ho; (%cptr.char.mix;)*>
<!--end of interfacename.element-->]]>

<!ENTITY % interfacename.attlist "INCLUDE">
<!ATTLIST interfacename
<!--end of interfacename.attlist-->]]>
<!--end of interfacename.module-->]]>

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

<!ENTITY % exceptionname.element "INCLUDE">
<!--doc:The name of an exception.-->
<!ELEMENT exceptionname %ho; (%smallcptr.char.mix;)*>
<!--end of exceptionname.element-->]]>

<!ENTITY % exceptionname.attlist "INCLUDE">
<!ATTLIST exceptionname
<!--end of exceptionname.attlist-->]]>
<!--end of exceptionname.module-->]]>

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

<!ENTITY % fieldsynopsis.element "INCLUDE">
<!--doc:The name of a field in a class definition.-->
<!ELEMENT fieldsynopsis %ho; (modifier*, type?, varname, initializer?)>
<!--end of fieldsynopsis.element-->]]>

<!ENTITY % fieldsynopsis.attlist "INCLUDE">
<!ATTLIST fieldsynopsis
	language	CDATA	#IMPLIED
<!--end of fieldsynopsis.attlist-->]]>
<!--end of fieldsynopsis.module-->]]>

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

<!ENTITY % initializer.element "INCLUDE">
<!--doc:The initializer for a FieldSynopsis.-->
<!ELEMENT initializer %ho; (%smallcptr.char.mix;)*>
<!--end of initializer.element-->]]>

<!ENTITY % initializer.attlist "INCLUDE">
<!ATTLIST initializer
<!--end of initializer.attlist-->]]>
<!--end of initializer.module-->]]>

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

<!ENTITY % constructorsynopsis.element "INCLUDE">
<!--doc:A syntax summary for a constructor.-->
<!ELEMENT constructorsynopsis %ho; (modifier*,
<!--end of constructorsynopsis.element-->]]>

<!ENTITY % constructorsynopsis.attlist "INCLUDE">
<!ATTLIST constructorsynopsis
	language	CDATA	#IMPLIED
<!--end of constructorsynopsis.attlist-->]]>
<!--end of constructorsynopsis.module-->]]>

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

<!ENTITY % destructorsynopsis.element "INCLUDE">
<!--doc:A syntax summary for a destructor.-->
<!ELEMENT destructorsynopsis %ho; (modifier*,
<!--end of destructorsynopsis.element-->]]>

<!ENTITY % destructorsynopsis.attlist "INCLUDE">
<!ATTLIST destructorsynopsis
	language	CDATA	#IMPLIED
<!--end of destructorsynopsis.attlist-->]]>
<!--end of destructorsynopsis.module-->]]>

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

<!ENTITY % methodsynopsis.element "INCLUDE">
<!--doc:A syntax summary for a method.-->
<!ELEMENT methodsynopsis %ho; (modifier*,
<!--end of methodsynopsis.element-->]]>

<!ENTITY % methodsynopsis.attlist "INCLUDE">
<!ATTLIST methodsynopsis
	language	CDATA	#IMPLIED
<!--end of methodsynopsis.attlist-->]]>
<!--end of methodsynopsis.module-->]]>

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

<!ENTITY % methodname.element "INCLUDE">
<!--doc:The name of a method.-->
<!ELEMENT methodname %ho; (%smallcptr.char.mix;)*>
<!--end of methodname.element-->]]>

<!ENTITY % methodname.attlist "INCLUDE">
<!ATTLIST methodname
<!--end of methodname.attlist-->]]>
<!--end of methodname.module-->]]>

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

<!ENTITY % methodparam.element "INCLUDE">
<!--doc:Parameters to a method.-->
<!ELEMENT methodparam %ho; (modifier*,
<!--end of methodparam.element-->]]>

<!ENTITY % methodparam.attlist "INCLUDE">
<!ATTLIST methodparam
	choice		(opt
			|plain)		"req"
	rep		(norepeat
			|repeat)	"norepeat"
<!--end of methodparam.attlist-->]]>
<!--end of methodparam.module-->]]>
<!--end of classsynopsis.content.module-->]]>

<!-- ...................................................................... -->
<!-- Document information entities and elements ........................... -->

<!-- The document information elements include some elements that are
     currently used only in the document hierarchy module. They are
     defined here so that they will be available for use in customized
     document hierarchies. -->

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

<!ENTITY % docinfo.content.module "INCLUDE">

<!-- Ackno ............................ -->

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

<!ENTITY % ackno.element "INCLUDE">
<!--doc:Acknowledgements in an Article.-->
<!ELEMENT ackno %ho; (%docinfo.char.mix;)*>
<!--end of ackno.element-->]]>

<!ENTITY % ackno.attlist "INCLUDE">
<!ATTLIST ackno
<!--end of ackno.attlist-->]]>
<!--end of ackno.module-->]]>

<!-- Address .......................... -->

<!ENTITY % address.content.module "INCLUDE">
<!ENTITY % address.module "INCLUDE">
<!ENTITY % local.address.attrib "">
<!ENTITY % address.role.attrib "%role.attrib;">

<!ENTITY % address.element "INCLUDE">
<!--doc:A real-world address, generally a postal address.-->
<!ELEMENT address %ho; (#PCDATA|personname|%person.ident.mix;
<!--end of address.element-->]]>

<!ENTITY % address.attlist "INCLUDE">
<!ATTLIST address
<!--end of address.attlist-->]]>
<!--end of address.module-->]]>

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

<!ENTITY % street.element "INCLUDE">
<!--doc:A street address in an address.-->
<!ELEMENT street %ho; (%docinfo.char.mix;)*>
<!--end of street.element-->]]>

<!ENTITY % street.attlist "INCLUDE">
<!ATTLIST street
<!--end of street.attlist-->]]>
  <!--end of street.module-->]]>

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

<!ENTITY % pob.element "INCLUDE">
<!--doc:A post office box in an address.-->
<!ELEMENT pob %ho; (%docinfo.char.mix;)*>
<!--end of pob.element-->]]>

<!ENTITY % pob.attlist "INCLUDE">
<!--end of pob.attlist-->]]>
  <!--end of pob.module-->]]>

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

<!ENTITY % postcode.element "INCLUDE">
<!--doc:A postal code in an address.-->
<!ELEMENT postcode %ho; (%docinfo.char.mix;)*>
<!--end of postcode.element-->]]>

<!ENTITY % postcode.attlist "INCLUDE">
<!ATTLIST postcode
<!--end of postcode.attlist-->]]>
  <!--end of postcode.module-->]]>

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

<!ENTITY % city.element "INCLUDE">
<!--doc:The name of a city in an address.-->
<!ELEMENT city %ho; (%docinfo.char.mix;)*>
<!--end of city.element-->]]>

<!ENTITY % city.attlist "INCLUDE">
<!ATTLIST city
<!--end of city.attlist-->]]>
  <!--end of city.module-->]]>

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

<!ENTITY % state.element "INCLUDE">
<!--doc:A state or province in an address.-->
<!ELEMENT state %ho; (%docinfo.char.mix;)*>
<!--end of state.element-->]]>

<!ENTITY % state.attlist "INCLUDE">
<!ATTLIST state
<!--end of state.attlist-->]]>
  <!--end of state.module-->]]>

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

<!ENTITY % country.element "INCLUDE">
<!--doc:The name of a country.-->
<!ELEMENT country %ho; (%docinfo.char.mix;)*>
<!--end of country.element-->]]>

<!ENTITY % country.attlist "INCLUDE">
<!ATTLIST country
<!--end of country.attlist-->]]>
  <!--end of country.module-->]]>

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

<!ENTITY % phone.element "INCLUDE">
<!--doc:A telephone number.-->
<!ELEMENT phone %ho; (%docinfo.char.mix;)*>
<!--end of phone.element-->]]>

<!ENTITY % phone.attlist "INCLUDE">
<!ATTLIST phone
<!--end of phone.attlist-->]]>
  <!--end of phone.module-->]]>

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

<!ENTITY % fax.element "INCLUDE">
<!--doc:A fax number.-->
<!ELEMENT fax %ho; (%docinfo.char.mix;)*>
<!--end of fax.element-->]]>

<!ENTITY % fax.attlist "INCLUDE">
<!--end of fax.attlist-->]]>
  <!--end of fax.module-->]]>

  <!-- Email (defined in the Inlines section, below)-->

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

<!ENTITY % otheraddr.element "INCLUDE">
<!--doc:Uncategorized information in address.-->
<!ELEMENT otheraddr %ho; (%docinfo.char.mix;)*>
<!--end of otheraddr.element-->]]>

<!ENTITY % otheraddr.attlist "INCLUDE">
<!ATTLIST otheraddr
<!--end of otheraddr.attlist-->]]>
  <!--end of otheraddr.module-->]]>
<!--end of address.content.module-->]]>

<!-- Affiliation ...................... -->

<!ENTITY % affiliation.content.module "INCLUDE">
<!ENTITY % affiliation.module "INCLUDE">
<!ENTITY % local.affiliation.attrib "">
<!ENTITY % affiliation.role.attrib "%role.attrib;">

<!ENTITY % affiliation.element "INCLUDE">
<!--doc:The institutional affiliation of an individual.-->
<!ELEMENT affiliation %ho; (shortaffil?, jobtitle*, orgname?, orgdiv*,
<!--end of affiliation.element-->]]>

<!ENTITY % affiliation.attlist "INCLUDE">
<!ATTLIST affiliation
<!--end of affiliation.attlist-->]]>
<!--end of affiliation.module-->]]>

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

<!ENTITY % shortaffil.element "INCLUDE">
<!--doc:A brief description of an affiliation.-->
<!ELEMENT shortaffil %ho; (%docinfo.char.mix;)*>
<!--end of shortaffil.element-->]]>

<!ENTITY % shortaffil.attlist "INCLUDE">
<!ATTLIST shortaffil
<!--end of shortaffil.attlist-->]]>
  <!--end of shortaffil.module-->]]>

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

<!ENTITY % jobtitle.element "INCLUDE">
<!--doc:The title of an individual in an organization.-->
<!ELEMENT jobtitle %ho; (%docinfo.char.mix;)*>
<!--end of jobtitle.element-->]]>

<!ENTITY % jobtitle.attlist "INCLUDE">
<!ATTLIST jobtitle
<!--end of jobtitle.attlist-->]]>
  <!--end of jobtitle.module-->]]>

  <!-- OrgName (defined elsewhere in this section)-->

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

<!ENTITY % orgdiv.element "INCLUDE">
<!--doc:A division of an organization.-->
<!ELEMENT orgdiv %ho; (%docinfo.char.mix;)*>
<!--end of orgdiv.element-->]]>

<!ENTITY % orgdiv.attlist "INCLUDE">
<!ATTLIST orgdiv
<!--end of orgdiv.attlist-->]]>
  <!--end of orgdiv.module-->]]>

  <!-- Address (defined elsewhere in this section)-->
<!--end of affiliation.content.module-->]]>

<!-- ArtPageNums ...................... -->

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

<!ENTITY % artpagenums.element "INCLUDE">
<!--doc:The page numbers of an article as published.-->
<!ELEMENT artpagenums %ho; (%docinfo.char.mix;)*>
<!--end of artpagenums.element-->]]>

<!ENTITY % artpagenums.attlist "INCLUDE">
<!ATTLIST artpagenums
<!--end of artpagenums.attlist-->]]>
<!--end of artpagenums.module-->]]>

<!-- PersonName -->

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

<!ENTITY % personname.element "INCLUDE">
<!--doc:The personal name of an individual.-->
<!ELEMENT personname %ho; ((honorific|firstname|surname|lineage|othername)+)>
<!--end of personname.element-->]]>

<!ENTITY % personname.attlist "INCLUDE">
<!ATTLIST personname
<!--end of personname.attlist-->]]>
<!--end of personname.module-->]]>

<!-- Author ........................... -->

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

<!ENTITY % author.element "INCLUDE">
<!--doc:The name of an individual author.-->
<!ELEMENT author %ho; ((personname|(%person.ident.mix;)+),(personblurb|email|address)*)>
<!--end of author.element-->]]>

<!ENTITY % author.attlist "INCLUDE">
<!ATTLIST author
<!--end of author.attlist-->]]>
<!--(see "Personal identity elements" for %person.ident.mix;)-->
<!--end of author.module-->]]>

<!-- AuthorGroup ...................... -->

<!ENTITY % authorgroup.content.module "INCLUDE">
<!ENTITY % authorgroup.module "INCLUDE">
<!ENTITY % local.authorgroup.attrib "">
<!ENTITY % authorgroup.role.attrib "%role.attrib;">

<!ENTITY % authorgroup.element "INCLUDE">
<!--doc:Wrapper for author information when a document has multiple authors or collabarators.-->
<!ELEMENT authorgroup %ho; ((author|editor|collab|corpauthor|corpcredit|othercredit)+)>
<!--end of authorgroup.element-->]]>

<!ENTITY % authorgroup.attlist "INCLUDE">
<!ATTLIST authorgroup
<!--end of authorgroup.attlist-->]]>
<!--end of authorgroup.module-->]]>

  <!-- Author (defined elsewhere in this section)-->
  <!-- Editor (defined elsewhere in this section)-->

  <!ENTITY % collab.content.module "INCLUDE">
  <!ENTITY % collab.module "INCLUDE">
  <!ENTITY % local.collab.attrib "">
  <!ENTITY % collab.role.attrib "%role.attrib;">

<!ENTITY % collab.element "INCLUDE">
<!--doc:Identifies a collaborator.-->
<!ELEMENT collab %ho; (collabname, affiliation*)>
<!--end of collab.element-->]]>

<!ENTITY % collab.attlist "INCLUDE">
<!ATTLIST collab
<!--end of collab.attlist-->]]>
  <!--end of collab.module-->]]>

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

<!ENTITY % collabname.element "INCLUDE">
<!--doc:The name of a collaborator.-->
<!ELEMENT collabname %ho; (%docinfo.char.mix;)*>
<!--end of collabname.element-->]]>

<!ENTITY % collabname.attlist "INCLUDE">
<!ATTLIST collabname
<!--end of collabname.attlist-->]]>
    <!--end of collabname.module-->]]>

    <!-- Affiliation (defined elsewhere in this section)-->
  <!--end of collab.content.module-->]]>

  <!-- CorpAuthor (defined elsewhere in this section)-->
  <!-- OtherCredit (defined elsewhere in this section)-->

<!--end of authorgroup.content.module-->]]>

<!-- AuthorInitials ................... -->

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

<!ENTITY % authorinitials.element "INCLUDE">
<!--doc:The initials or other short identifier for an author.-->
<!ELEMENT authorinitials %ho; (%docinfo.char.mix;)*>
<!--end of authorinitials.element-->]]>

<!ENTITY % authorinitials.attlist "INCLUDE">
<!ATTLIST authorinitials
<!--end of authorinitials.attlist-->]]>
<!--end of authorinitials.module-->]]>

<!-- ConfGroup ........................ -->

<!ENTITY % confgroup.content.module "INCLUDE">
<!ENTITY % confgroup.module "INCLUDE">
<!ENTITY % local.confgroup.attrib "">
<!ENTITY % confgroup.role.attrib "%role.attrib;">

<!ENTITY % confgroup.element "INCLUDE">
<!--doc:A wrapper for document meta-information about a conference.-->
<!ELEMENT confgroup %ho; ((confdates|conftitle|confnum|address|confsponsor)*)>
<!--end of confgroup.element-->]]>

<!ENTITY % confgroup.attlist "INCLUDE">
<!ATTLIST confgroup
<!--end of confgroup.attlist-->]]>
<!--end of confgroup.module-->]]>

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

<!ENTITY % confdates.element "INCLUDE">
<!--doc:The dates of a conference for which a document was written.-->
<!ELEMENT confdates %ho; (%docinfo.char.mix;)*>
<!--end of confdates.element-->]]>

<!ENTITY % confdates.attlist "INCLUDE">
<!ATTLIST confdates
<!--end of confdates.attlist-->]]>
  <!--end of confdates.module-->]]>

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

<!ENTITY % conftitle.element "INCLUDE">
<!--doc:The title of a conference for which a document was written.-->
<!ELEMENT conftitle %ho; (%docinfo.char.mix;)*>
<!--end of conftitle.element-->]]>

<!ENTITY % conftitle.attlist "INCLUDE">
<!ATTLIST conftitle
<!--end of conftitle.attlist-->]]>
  <!--end of conftitle.module-->]]>

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

<!ENTITY % confnum.element "INCLUDE">
<!--doc:An identifier, frequently numerical, associated with a conference for which a document was written.-->
<!ELEMENT confnum %ho; (%docinfo.char.mix;)*>
<!--end of confnum.element-->]]>

<!ENTITY % confnum.attlist "INCLUDE">
<!ATTLIST confnum
<!--end of confnum.attlist-->]]>
  <!--end of confnum.module-->]]>

  <!-- Address (defined elsewhere in this section)-->

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

<!ENTITY % confsponsor.element "INCLUDE">
<!--doc:The sponsor of a conference for which a document was written.-->
<!ELEMENT confsponsor %ho; (%docinfo.char.mix;)*>
<!--end of confsponsor.element-->]]>

<!ENTITY % confsponsor.attlist "INCLUDE">
<!ATTLIST confsponsor
<!--end of confsponsor.attlist-->]]>
  <!--end of confsponsor.module-->]]>
<!--end of confgroup.content.module-->]]>

<!-- ContractNum ...................... -->

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

<!ENTITY % contractnum.element "INCLUDE">
<!--doc:The contract number of a document.-->
<!ELEMENT contractnum %ho; (%docinfo.char.mix;)*>
<!--end of contractnum.element-->]]>

<!ENTITY % contractnum.attlist "INCLUDE">
<!ATTLIST contractnum
<!--end of contractnum.attlist-->]]>
<!--end of contractnum.module-->]]>

<!-- ContractSponsor .................. -->

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

<!ENTITY % contractsponsor.element "INCLUDE">
<!--doc:The sponsor of a contract.-->
<!ELEMENT contractsponsor %ho; (%docinfo.char.mix;)*>
<!--end of contractsponsor.element-->]]>

<!ENTITY % contractsponsor.attlist "INCLUDE">
<!ATTLIST contractsponsor
<!--end of contractsponsor.attlist-->]]>
<!--end of contractsponsor.module-->]]>

<!-- Copyright ........................ -->

<!ENTITY % copyright.content.module "INCLUDE">
<!ENTITY % copyright.module "INCLUDE">
<!ENTITY % local.copyright.attrib "">
<!ENTITY % copyright.role.attrib "%role.attrib;">

<!ENTITY % copyright.element "INCLUDE">
<!--doc:Copyright information about a document.-->
<!ELEMENT copyright %ho; (year+, holder*)>
<!--end of copyright.element-->]]>

<!ENTITY % copyright.attlist "INCLUDE">
<!ATTLIST copyright
<!--end of copyright.attlist-->]]>
<!--end of copyright.module-->]]>

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

<!ENTITY % year.element "INCLUDE">
<!--doc:The year of publication of a document.-->
<!ELEMENT year %ho; (%docinfo.char.mix;)*>
<!--end of year.element-->]]>

<!ENTITY % year.attlist "INCLUDE">
<!ATTLIST year
<!--end of year.attlist-->]]>
  <!--end of year.module-->]]>

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

<!ENTITY % holder.element "INCLUDE">
<!--doc:The name of the individual or organization that holds a copyright.-->
<!ELEMENT holder %ho; (%docinfo.char.mix;)*>
<!--end of holder.element-->]]>

<!ENTITY % holder.attlist "INCLUDE">
<!ATTLIST holder
<!--end of holder.attlist-->]]>
  <!--end of holder.module-->]]>
<!--end of copyright.content.module-->]]>

<!-- CorpAuthor ....................... -->

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

<!ENTITY % corpauthor.element "INCLUDE">
<!--doc:A corporate author, as opposed to an individual.-->
<!ELEMENT corpauthor %ho; (%docinfo.char.mix;)*>
<!--end of corpauthor.element-->]]>

<!ENTITY % corpauthor.attlist "INCLUDE">
<!ATTLIST corpauthor
<!--end of corpauthor.attlist-->]]>
<!--end of corpauthor.module-->]]>

<!-- CorpCredit ...................... -->

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

<!ENTITY % corpcredit.element "INCLUDE">
<!--doc:A corporation or organization credited in a document.-->
<!ELEMENT corpcredit %ho; (%docinfo.char.mix;)*>
<!--end of corpcredit.element-->]]>

<!ENTITY % corpcredit.attlist "INCLUDE">
<!ATTLIST corpcredit
		class	(graphicdesigner
			|other)			#IMPLIED
<!--end of corpcredit.attlist-->]]>
<!--end of corpcredit.module-->]]>

<!-- CorpName ......................... -->

<!ENTITY % corpname.module "INCLUDE">
<!ENTITY % local.corpname.attrib "">

<!ENTITY % corpname.element "INCLUDE">
<!--doc:The name of a corporation.-->
<!ELEMENT corpname %ho; (%docinfo.char.mix;)*>
<!--end of corpname.element-->]]>
<!ENTITY % corpname.role.attrib "%role.attrib;">

<!ENTITY % corpname.attlist "INCLUDE">
<!ATTLIST corpname
<!--end of corpname.attlist-->]]>
<!--end of corpname.module-->]]>

<!-- Date ............................. -->

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

<!ENTITY % date.element "INCLUDE">
<!--doc:The date of publication or revision of a document.-->
<!ELEMENT date %ho; (%docinfo.char.mix;)*>
<!--end of date.element-->]]>

<!ENTITY % date.attlist "INCLUDE">
<!ATTLIST date
<!--end of date.attlist-->]]>
<!--end of date.module-->]]>

<!-- Edition .......................... -->

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

<!ENTITY % edition.element "INCLUDE">
<!--doc:The name or number of an edition of a document.-->
<!ELEMENT edition %ho; (%docinfo.char.mix;)*>
<!--end of edition.element-->]]>

<!ENTITY % edition.attlist "INCLUDE">
<!ATTLIST edition
<!--end of edition.attlist-->]]>
<!--end of edition.module-->]]>

<!-- Editor ........................... -->

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

<!ENTITY % editor.element "INCLUDE">
<!--doc:The name of the editor of a document.-->
<!ELEMENT editor %ho; ((personname|(%person.ident.mix;)+),(personblurb|email|address)*)>
<!--end of editor.element-->]]>

<!ENTITY % editor.attlist "INCLUDE">
<!ATTLIST editor
<!--end of editor.attlist-->]]>
  <!--(see "Personal identity elements" for %person.ident.mix;)-->
<!--end of editor.module-->]]>

<!-- ISBN ............................. -->

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

<!ENTITY % isbn.element "INCLUDE">
<!--doc:The International Standard Book Number of a document.-->
<!ELEMENT isbn %ho; (%docinfo.char.mix;)*>
<!--end of isbn.element-->]]>

<!ENTITY % isbn.attlist "INCLUDE">
<!ATTLIST isbn
<!--end of isbn.attlist-->]]>
<!--end of isbn.module-->]]>

<!-- ISSN ............................. -->

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

<!ENTITY % issn.element "INCLUDE">
<!--doc:The International Standard Serial Number of a periodical.-->
<!ELEMENT issn %ho; (%docinfo.char.mix;)*>
<!--end of issn.element-->]]>

<!ENTITY % issn.attlist "INCLUDE">
<!ATTLIST issn
<!--end of issn.attlist-->]]>
<!--end of issn.module-->]]>

<!-- BiblioId ................. -->
<!ENTITY % biblio.class.attrib
		"class	(uri
                         |other)	#IMPLIED
		otherclass	CDATA	#IMPLIED"

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

<!ENTITY % biblioid.element "INCLUDE">
<!--doc:An identifier for a document.-->
<!ELEMENT biblioid %ho; (%docinfo.char.mix;)*>
<!--end of biblioid.element-->]]>

<!ENTITY % biblioid.attlist "INCLUDE">
<!ATTLIST biblioid
<!--end of biblioid.attlist-->]]>
<!--end of biblioid.module-->]]>

<!-- CiteBiblioId ................. -->

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

<!ENTITY % citebiblioid.element "INCLUDE">
<!--doc:A citation of a bibliographic identifier.-->
<!ELEMENT citebiblioid %ho; (%docinfo.char.mix;)*>
<!--end of citebiblioid.element-->]]>

<!ENTITY % citebiblioid.attlist "INCLUDE">
<!ATTLIST citebiblioid
<!--end of citebiblioid.attlist-->]]>
<!--end of citebiblioid.module-->]]>

<!-- BiblioSource ................. -->

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

<!ENTITY % bibliosource.element "INCLUDE">
<!--doc:The source of a document.-->
<!ELEMENT bibliosource %ho; (%docinfo.char.mix;)*>
<!--end of bibliosource.element-->]]>

<!ENTITY % bibliosource.attlist "INCLUDE">
<!ATTLIST bibliosource
<!--end of bibliosource.attlist-->]]>
<!--end of bibliosource.module-->]]>

<!-- BiblioRelation ................. -->

<!ENTITY % bibliorelation.module "INCLUDE">
<!ENTITY % local.bibliorelation.attrib "">
<!ENTITY % local.bibliorelation.types "">

<!ENTITY % bibliorelation.type.attrib
                "type    (isversionof
                         %local.bibliorelation.types;)       #IMPLIED
		othertype	CDATA	#IMPLIED

<!ENTITY % bibliorelation.role.attrib "%role.attrib;">

<!ENTITY % bibliorelation.element "INCLUDE">
<!--doc:The relationship of a document to another.-->
<!ELEMENT bibliorelation %ho; (%docinfo.char.mix;)*>
<!--end of bibliorelation.element-->]]>

<!ENTITY % bibliorelation.attlist "INCLUDE">
<!ATTLIST bibliorelation
<!--end of bibliorelation.attlist-->]]>
<!--end of bibliorelation.module-->]]>

<!-- BiblioCoverage ................. -->

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

<!ENTITY % bibliocoverage.element "INCLUDE">
<!--doc:The spatial or temporal coverage of a document.-->
<!ELEMENT bibliocoverage %ho; (%docinfo.char.mix;)*>
<!--end of bibliocoverage.element-->]]>

<!ENTITY % bibliocoverage.attlist "INCLUDE">
<!ATTLIST bibliocoverage
		spatial	(dcmipoint|iso3166|dcmibox|tgn|otherspatial)	#IMPLIED
		otherspatial	CDATA	#IMPLIED
		temporal (dcmiperiod|w3c-dtf|othertemporal) #IMPLIED
		othertemporal	CDATA	#IMPLIED
<!--end of bibliocoverage.attlist-->]]>
<!--end of bibliocoverage.module-->]]>

<!-- InvPartNumber .................... -->

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

<!ENTITY % invpartnumber.element "INCLUDE">
<!--doc:An inventory part number.-->
<!ELEMENT invpartnumber %ho; (%docinfo.char.mix;)*>
<!--end of invpartnumber.element-->]]>

<!ENTITY % invpartnumber.attlist "INCLUDE">
<!ATTLIST invpartnumber
<!--end of invpartnumber.attlist-->]]>
<!--end of invpartnumber.module-->]]>

<!-- IssueNum ......................... -->

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

<!ENTITY % issuenum.element "INCLUDE">
<!--doc:The number of an issue of a journal.-->
<!ELEMENT issuenum %ho; (%docinfo.char.mix;)*>
<!--end of issuenum.element-->]]>

<!ENTITY % issuenum.attlist "INCLUDE">
<!ATTLIST issuenum
<!--end of issuenum.attlist-->]]>
<!--end of issuenum.module-->]]>

<!-- LegalNotice ...................... -->

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

<!ENTITY % legalnotice.element "INCLUDE">
<!--doc:A statement of legal obligations or requirements.-->
<!ELEMENT legalnotice %ho; (blockinfo?, title?, (%legalnotice.mix;)+)
<!--end of legalnotice.element-->]]>

<!ENTITY % legalnotice.attlist "INCLUDE">
<!ATTLIST legalnotice
<!--end of legalnotice.attlist-->]]>
<!--end of legalnotice.module-->]]>

<!-- ModeSpec ......................... -->

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

<!ENTITY % modespec.element "INCLUDE">
<!--doc:Application-specific information necessary for the completion of an OLink.-->
<!ELEMENT modespec %ho; (%docinfo.char.mix;)*
<!--end of modespec.element-->]]>

<!-- Application: Type of action required for completion
		of the links to which the ModeSpec is relevant (e.g.,
		retrieval query) -->

<!ENTITY % modespec.attlist "INCLUDE">
<!ATTLIST modespec
		application	NOTATION
				(%notation.class;)	#IMPLIED
<!--end of modespec.attlist-->]]>
<!--end of modespec.module-->]]>

<!-- OrgName .......................... -->

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

<!ENTITY % orgname.element "INCLUDE">
<!--doc:The name of an organization other than a corporation.-->
<!ELEMENT orgname %ho; (%docinfo.char.mix;)*>
<!--end of orgname.element-->]]>

<!ENTITY % orgname.attlist "INCLUDE">
<!ATTLIST orgname
		class	(corporation|nonprofit|consortium|informal|other)	#IMPLIED
		otherclass	CDATA			#IMPLIED
<!--end of orgname.attlist-->]]>
<!--end of orgname.module-->]]>

<!-- OtherCredit ...................... -->

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

<!ENTITY % othercredit.element "INCLUDE">
<!--doc:A person or entity, other than an author or editor, credited in a document.-->
<!ELEMENT othercredit %ho; ((personname|(%person.ident.mix;)+),
<!--end of othercredit.element-->]]>

<!ENTITY % othercredit.attlist "INCLUDE">
<!ATTLIST othercredit
		class	(graphicdesigner
			|other)			#IMPLIED
<!--end of othercredit.attlist-->]]>
  <!--(see "Personal identity elements" for %person.ident.mix;)-->
<!--end of othercredit.module-->]]>

<!-- PageNums ......................... -->

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

<!ENTITY % pagenums.element "INCLUDE">
<!--doc:The numbers of the pages in a book, for use in a bibliographic entry.-->
<!ELEMENT pagenums %ho; (%docinfo.char.mix;)*>
<!--end of pagenums.element-->]]>

<!ENTITY % pagenums.attlist "INCLUDE">
<!ATTLIST pagenums
<!--end of pagenums.attlist-->]]>
<!--end of pagenums.module-->]]>

<!-- Personal identity elements ....... -->

<!-- These elements are used only within Author, Editor, and
OtherCredit. -->

<!ENTITY % person.ident.module "INCLUDE">
  <!ENTITY % contrib.module "INCLUDE">
  <!ENTITY % local.contrib.attrib "">
  <!ENTITY % contrib.role.attrib "%role.attrib;">

<!ENTITY % contrib.element "INCLUDE">
<!--doc:A summary of the contributions made to a document by a credited source.-->
<!ELEMENT contrib %ho; (%docinfo.char.mix;)*>
<!--end of contrib.element-->]]>

<!ENTITY % contrib.attlist "INCLUDE">
<!ATTLIST contrib
<!--end of contrib.attlist-->]]>
  <!--end of contrib.module-->]]>

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

<!ENTITY % firstname.element "INCLUDE">
<!--doc:The first name of a person.-->
<!ELEMENT firstname %ho; (%docinfo.char.mix;)*>
<!--end of firstname.element-->]]>

<!ENTITY % firstname.attlist "INCLUDE">
<!ATTLIST firstname
<!--end of firstname.attlist-->]]>
  <!--end of firstname.module-->]]>

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

<!ENTITY % honorific.element "INCLUDE">
<!--doc:The title of a person.-->
<!ELEMENT honorific %ho; (%docinfo.char.mix;)*>
<!--end of honorific.element-->]]>

<!ENTITY % honorific.attlist "INCLUDE">
<!ATTLIST honorific
<!--end of honorific.attlist-->]]>
  <!--end of honorific.module-->]]>

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

<!ENTITY % lineage.element "INCLUDE">
<!--doc:The portion of a person's name indicating a relationship to ancestors.-->
<!ELEMENT lineage %ho; (%docinfo.char.mix;)*>
<!--end of lineage.element-->]]>

<!ENTITY % lineage.attlist "INCLUDE">
<!ATTLIST lineage
<!--end of lineage.attlist-->]]>
  <!--end of lineage.module-->]]>

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

<!ENTITY % othername.element "INCLUDE">
<!--doc:A component of a persons name that is not a first name, surname, or lineage.-->
<!ELEMENT othername %ho; (%docinfo.char.mix;)*>
<!--end of othername.element-->]]>

<!ENTITY % othername.attlist "INCLUDE">
<!ATTLIST othername
<!--end of othername.attlist-->]]>
  <!--end of othername.module-->]]>

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

<!ENTITY % surname.element "INCLUDE">
<!--doc:A family name; in western cultures the last name.-->
<!ELEMENT surname %ho; (%docinfo.char.mix;)*>
<!--end of surname.element-->]]>

<!ENTITY % surname.attlist "INCLUDE">
<!ATTLIST surname
<!--end of surname.attlist-->]]>
  <!--end of surname.module-->]]>
<!--end of person.ident.module-->]]>

<!-- PrintHistory ..................... -->

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

<!ENTITY % printhistory.element "INCLUDE">
<!--doc:The printing history of a document.-->
<!ELEMENT printhistory %ho; ((%para.class;)+)>
<!--end of printhistory.element-->]]>

<!ENTITY % printhistory.attlist "INCLUDE">
<!ATTLIST printhistory
<!--end of printhistory.attlist-->]]>
<!--end of printhistory.module-->]]>

<!-- ProductName ...................... -->

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

<!ENTITY % productname.element "INCLUDE">
<!--doc:The formal name of a product.-->
<!ELEMENT productname %ho; (%para.char.mix;)*>
<!--end of productname.element-->]]>

<!-- Class: More precisely identifies the item the element names -->

<!ENTITY % productname.attlist "INCLUDE">
<!ATTLIST productname
		class		(service
				|copyright)	'trade'
<!--end of productname.attlist-->]]>
<!--end of productname.module-->]]>

<!-- ProductNumber .................... -->

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

<!ENTITY % productnumber.element "INCLUDE">
<!--doc:A number assigned to a product.-->
<!ELEMENT productnumber %ho; (%docinfo.char.mix;)*>
<!--end of productnumber.element-->]]>

<!ENTITY % productnumber.attlist "INCLUDE">
<!ATTLIST productnumber
<!--end of productnumber.attlist-->]]>
<!--end of productnumber.module-->]]>

<!-- PubDate .......................... -->

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

<!ENTITY % pubdate.element "INCLUDE">
<!--doc:The date of publication of a document.-->
<!ELEMENT pubdate %ho; (%docinfo.char.mix;)*>
<!--end of pubdate.element-->]]>

<!ENTITY % pubdate.attlist "INCLUDE">
<!ATTLIST pubdate
<!--end of pubdate.attlist-->]]>
<!--end of pubdate.module-->]]>

<!-- Publisher ........................ -->

<!ENTITY % publisher.content.module "INCLUDE">
<!ENTITY % publisher.module "INCLUDE">
<!ENTITY % local.publisher.attrib "">
<!ENTITY % publisher.role.attrib "%role.attrib;">

<!ENTITY % publisher.element "INCLUDE">
<!--doc:The publisher of a document.-->
<!ELEMENT publisher %ho; (publishername, address*)>
<!--end of publisher.element-->]]>

<!ENTITY % publisher.attlist "INCLUDE">
<!ATTLIST publisher
<!--end of publisher.attlist-->]]>
<!--end of publisher.module-->]]>

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

<!ENTITY % publishername.element "INCLUDE">
<!--doc:The name of the publisher of a document.-->
<!ELEMENT publishername %ho; (%docinfo.char.mix;)*>
<!--end of publishername.element-->]]>

<!ENTITY % publishername.attlist "INCLUDE">
<!ATTLIST publishername
<!--end of publishername.attlist-->]]>
  <!--end of publishername.module-->]]>

  <!-- Address (defined elsewhere in this section)-->
<!--end of publisher.content.module-->]]>

<!-- PubsNumber ....................... -->

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

<!ENTITY % pubsnumber.element "INCLUDE">
<!--doc:A number assigned to a publication other than an ISBN or ISSN or inventory part number.-->
<!ELEMENT pubsnumber %ho; (%docinfo.char.mix;)*>
<!--end of pubsnumber.element-->]]>

<!ENTITY % pubsnumber.attlist "INCLUDE">
<!ATTLIST pubsnumber
<!--end of pubsnumber.attlist-->]]>
<!--end of pubsnumber.module-->]]>

<!-- ReleaseInfo ...................... -->

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

<!ENTITY % releaseinfo.element "INCLUDE">
<!--doc:Information about a particular release of a document.-->
<!ELEMENT releaseinfo %ho; (%docinfo.char.mix;)*>
<!--end of releaseinfo.element-->]]>

<!ENTITY % releaseinfo.attlist "INCLUDE">
<!ATTLIST releaseinfo
<!--end of releaseinfo.attlist-->]]>
<!--end of releaseinfo.module-->]]>

<!-- RevHistory ....................... -->

<!ENTITY % revhistory.content.module "INCLUDE">
<!ENTITY % revhistory.module "INCLUDE">
<!ENTITY % local.revhistory.attrib "">
<!ENTITY % revhistory.role.attrib "%role.attrib;">

<!ENTITY % revhistory.element "INCLUDE">
<!--doc:A history of the revisions to a document.-->
<!ELEMENT revhistory %ho; (revision+)>
<!--end of revhistory.element-->]]>

<!ENTITY % revhistory.attlist "INCLUDE">
<!ATTLIST revhistory
<!--end of revhistory.attlist-->]]>
<!--end of revhistory.module-->]]>

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

<!ENTITY % revision.element "INCLUDE">
<!--doc:An entry describing a single revision in the history of the revisions to a document.-->
<!ELEMENT revision %ho; (revnumber?, date, (author|authorinitials)*,
<!--end of revision.element-->]]>

<!ENTITY % revision.attlist "INCLUDE">
<!ATTLIST revision
<!--end of revision.attlist-->]]>
<!--end of revision.module-->]]>

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

<!ENTITY % revnumber.element "INCLUDE">
<!--doc:A document revision number.-->
<!ELEMENT revnumber %ho; (%docinfo.char.mix;)*>
<!--end of revnumber.element-->]]>

<!ENTITY % revnumber.attlist "INCLUDE">
<!ATTLIST revnumber
<!--end of revnumber.attlist-->]]>
<!--end of revnumber.module-->]]>

<!-- Date (defined elsewhere in this section)-->
<!-- AuthorInitials (defined elsewhere in this section)-->

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

<!ENTITY % revremark.element "INCLUDE">
<!--doc:A description of a revision to a document.-->
<!ELEMENT revremark %ho; (%docinfo.char.mix;)*>
<!--end of revremark.element-->]]>

<!ENTITY % revremark.attlist "INCLUDE">
<!ATTLIST revremark
<!--end of revremark.attlist-->]]>
<!--end of revremark.module-->]]>

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

<!ENTITY % revdescription.element "INCLUDE">
<![ %revdescription.element; [
<!--doc:A extended description of a revision to a document.-->
<!ELEMENT revdescription %ho; ((%revdescription.mix;)+)>
<!--end of revdescription.element-->]]>

<!ENTITY % revdescription.attlist "INCLUDE">
<![ %revdescription.attlist; [
<!ATTLIST revdescription
<!--end of revdescription.attlist-->]]>
<!--end of revdescription.module-->]]>
<!--end of revhistory.content.module-->]]>

<!-- SeriesVolNums .................... -->

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

<!ENTITY % seriesvolnums.element "INCLUDE">
<!--doc:Numbers of the volumes in a series of books.-->
<!ELEMENT seriesvolnums %ho; (%docinfo.char.mix;)*>
<!--end of seriesvolnums.element-->]]>

<!ENTITY % seriesvolnums.attlist "INCLUDE">
<!ATTLIST seriesvolnums
<!--end of seriesvolnums.attlist-->]]>
<!--end of seriesvolnums.module-->]]>

<!-- VolumeNum ........................ -->

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

<!ENTITY % volumenum.element "INCLUDE">
<!--doc:The volume number of a document in a set (as of books in a set or articles in a journal).-->
<!ELEMENT volumenum %ho; (%docinfo.char.mix;)*>
<!--end of volumenum.element-->]]>

<!ENTITY % volumenum.attlist "INCLUDE">
<!ATTLIST volumenum
<!--end of volumenum.attlist-->]]>
<!--end of volumenum.module-->]]>

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

<!--end of docinfo.content.module-->]]>

<!-- ...................................................................... -->
<!-- Inline, link, and ubiquitous elements ................................ -->

<!-- Technical and computer terms ......................................... -->

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

<!ENTITY % accel.element "INCLUDE">
<!--doc:A graphical user interface (GUI) keyboard shortcut.-->
<!ELEMENT accel %ho; (%smallcptr.char.mix;)*>
<!--end of accel.element-->]]>

<!ENTITY % accel.attlist "INCLUDE">
<!ATTLIST accel
<!--end of accel.attlist-->]]>
<!--end of accel.module-->]]>

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

<!ENTITY % action.element "INCLUDE">
<!--doc:A response to a user event.-->
<!ELEMENT action %ho; (%cptr.char.mix;)*>
<!--end of action.element-->]]>

<!ENTITY % action.attlist "INCLUDE">
<!ATTLIST action
<!--end of action.attlist-->]]>
<!--end of action.module-->]]>

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

<!ENTITY % application.element "INCLUDE">
<!--doc:The name of a software program.-->
<!ELEMENT application %ho; (%para.char.mix;)*>
<!--end of application.element-->]]>

<!ENTITY % application.attlist "INCLUDE">
<!ATTLIST application
		class 		(hardware
				|software)	#IMPLIED
<!--end of application.attlist-->]]>
<!--end of application.module-->]]>

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

<!ENTITY % classname.element "INCLUDE">
<!--doc:The name of a class, in the object-oriented programming sense.-->
<!ELEMENT classname %ho; (%smallcptr.char.mix;)*>
<!--end of classname.element-->]]>

<!ENTITY % classname.attlist "INCLUDE">
<!ATTLIST classname
<!--end of classname.attlist-->]]>
<!--end of classname.module-->]]>

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

<!ENTITY % package.element "INCLUDE">
<!--doc:A package.-->
<!ELEMENT package %ho; (%smallcptr.char.mix;)*>
<!--end of package.element-->]]>

<!ENTITY % package.attlist "INCLUDE">
<!ATTLIST package
<!--end of package.attlist-->]]>
<!--end of package.module-->]]>

<!ENTITY % co.module "INCLUDE">
<!ENTITY % local.co.attrib "">
<!-- CO is a callout area of the LineColumn unit type (a single character
     position); the position is directly indicated by the location of CO. -->
<!ENTITY % co.role.attrib "%role.attrib;">

<!ENTITY % co.element "INCLUDE">
<!--doc:The location of a callout embedded in text.-->
<!ELEMENT co %ho; EMPTY>
<!--end of co.element-->]]>

<!-- bug number/symbol override or initialization -->
<!-- to any related information -->

<!ENTITY % co.attlist "INCLUDE">
<!--end of co.attlist-->]]>
<!--end of co.module-->]]>

<!ENTITY % coref.module "INCLUDE">
<!ENTITY % local.coref.attrib "">
<!-- COREF is a reference to a CO -->
<!ENTITY % coref.role.attrib "%role.attrib;">

<!ENTITY % coref.element "INCLUDE">
<!--doc:A cross reference to a co.-->
<!ELEMENT coref %ho; EMPTY>
<!--end of coref.element-->]]>

<!-- bug number/symbol override or initialization -->
<!-- to any related information -->

<!ENTITY % coref.attlist "INCLUDE">
<!ATTLIST coref
<!--end of coref.attlist-->]]>
<!--end of coref.module-->]]>

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

<!ENTITY % command.element "INCLUDE">
<!--doc:The name of an executable program or other software command.-->
<!ELEMENT command %ho; (%cptr.char.mix;)*>
<!--end of command.element-->]]>

<!ENTITY % command.attlist "INCLUDE">
<!ATTLIST command
<!--end of command.attlist-->]]>
<!--end of command.module-->]]>

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

<!ENTITY % computeroutput.element "INCLUDE">
<!--doc:Data, generally text, displayed or presented by a computer.-->
<!ELEMENT computeroutput %ho; (%cptr.char.mix;|co)*>
<!--end of computeroutput.element-->]]>

<!ENTITY % computeroutput.attlist "INCLUDE">
<!ATTLIST computeroutput
<!--end of computeroutput.attlist-->]]>
<!--end of computeroutput.module-->]]>

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

<!ENTITY % database.element "INCLUDE">
<!--doc:The name of a database, or part of a database.-->
<!ELEMENT database %ho; (%cptr.char.mix;)*>
<!--end of database.element-->]]>

<!-- Class: Type of database the element names; no default -->

<!ENTITY % database.attlist "INCLUDE">
<!ATTLIST database
		class 		(name
                                |group)	#IMPLIED
<!--end of database.attlist-->]]>
<!--end of database.module-->]]>

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

<!ENTITY % email.element "INCLUDE">
<!--doc:An email address.-->
<!ELEMENT email %ho; (%docinfo.char.mix;)*>
<!--end of email.element-->]]>

<!ENTITY % email.attlist "INCLUDE">
<!ATTLIST email
<!--end of email.attlist-->]]>
<!--end of email.module-->]]>

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

<!ENTITY % envar.element "INCLUDE">
<!--doc:A software environment variable.-->
<!ELEMENT envar %ho; (%smallcptr.char.mix;)*>
<!--end of envar.element-->]]>

<!ENTITY % envar.attlist "INCLUDE">
<!ATTLIST envar
<!--end of envar.attlist-->]]>
<!--end of envar.module-->]]>

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

<!ENTITY % errorcode.element "INCLUDE">
<!--doc:An error code.-->
<!ELEMENT errorcode %ho; (%smallcptr.char.mix;)*>
<!--end of errorcode.element-->]]>

<!ENTITY % errorcode.attlist "INCLUDE">
<!ATTLIST errorcode
<!--end of errorcode.attlist-->]]>
<!--end of errorcode.module-->]]>

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

<!ENTITY % errorname.element "INCLUDE">
<!--doc:An error name.-->
<!ELEMENT errorname %ho; (%smallcptr.char.mix;)*>
<!--end of errorname.element-->]]>

<!ENTITY % errorname.attlist "INCLUDE">
<!ATTLIST errorname
<!--end of errorname.attlist-->]]>
<!--end of errorname.module-->]]>

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

<!ENTITY % errortext.element "INCLUDE">
<!--doc:An error message..-->
<!ELEMENT errortext %ho; (%smallcptr.char.mix;)*>
<!--end of errortext.element-->]]>

<!ENTITY % errortext.attlist "INCLUDE">
<!ATTLIST errortext
<!--end of errortext.attlist-->]]>
<!--end of errortext.module-->]]>

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

<!ENTITY % errortype.element "INCLUDE">
<!--doc:The classification of an error message.-->
<!ELEMENT errortype %ho; (%smallcptr.char.mix;)*>
<!--end of errortype.element-->]]>

<!ENTITY % errortype.attlist "INCLUDE">
<!ATTLIST errortype
<!--end of errortype.attlist-->]]>
<!--end of errortype.module-->]]>

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

<!ENTITY % filename.element "INCLUDE">
<!--doc:The name of a file.-->
<!ELEMENT filename %ho; (%cptr.char.mix;)*>
<!--end of filename.element-->]]>

<!-- Class: Type of filename the element names; no default -->
<!-- Path: Search path (possibly system-specific) in which
		file can be found -->

<!ENTITY % filename.attlist "INCLUDE">
<!ATTLIST filename
		class		(headerfile
				|symlink)       #IMPLIED
<!--end of filename.attlist-->]]>
<!--end of filename.module-->]]>

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

<!ENTITY % function.element "INCLUDE">
<!--doc:The name of a function or subroutine, as in a programming language.-->
<!ELEMENT function %ho; (%cptr.char.mix;)*>
<!--end of function.element-->]]>

<!ENTITY % function.attlist "INCLUDE">
<!ATTLIST function
<!--end of function.attlist-->]]>
<!--end of function.module-->]]>

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

<!ENTITY % guibutton.element "INCLUDE">
<!--doc:The text on a button in a GUI.-->
<!ELEMENT guibutton %ho; (%smallcptr.char.mix;|accel|superscript|subscript)*>
<!--end of guibutton.element-->]]>

<!ENTITY % guibutton.attlist "INCLUDE">
<!ATTLIST guibutton
<!--end of guibutton.attlist-->]]>
<!--end of guibutton.module-->]]>

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

<!ENTITY % guiicon.element "INCLUDE">
<!--doc:Graphic and/or text appearing as a icon in a GUI.-->
<!ELEMENT guiicon %ho; (%smallcptr.char.mix;|accel|superscript|subscript)*>
<!--end of guiicon.element-->]]>

<!ENTITY % guiicon.attlist "INCLUDE">
<!ATTLIST guiicon
<!--end of guiicon.attlist-->]]>
<!--end of guiicon.module-->]]>

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

<!ENTITY % guilabel.element "INCLUDE">
<!--doc:The text of a label in a GUI.-->
<!ELEMENT guilabel %ho; (%smallcptr.char.mix;|accel|superscript|subscript)*>
<!--end of guilabel.element-->]]>

<!ENTITY % guilabel.attlist "INCLUDE">
<!ATTLIST guilabel
<!--end of guilabel.attlist-->]]>
<!--end of guilabel.module-->]]>

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

<!ENTITY % guimenu.element "INCLUDE">
<!--doc:The name of a menu in a GUI.-->
<!ELEMENT guimenu %ho; (%smallcptr.char.mix;|accel|superscript|subscript)*>
<!--end of guimenu.element-->]]>

<!ENTITY % guimenu.attlist "INCLUDE">
<!ATTLIST guimenu
<!--end of guimenu.attlist-->]]>
<!--end of guimenu.module-->]]>

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

<!ENTITY % guimenuitem.element "INCLUDE">
<!--doc:The name of a terminal menu item in a GUI.-->
<!ELEMENT guimenuitem %ho; (%smallcptr.char.mix;|accel|superscript|subscript)*>
<!--end of guimenuitem.element-->]]>

<!ENTITY % guimenuitem.attlist "INCLUDE">
<!ATTLIST guimenuitem
<!--end of guimenuitem.attlist-->]]>
<!--end of guimenuitem.module-->]]>

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

<!ENTITY % guisubmenu.element "INCLUDE">
<!--doc:The name of a submenu in a GUI.-->
<!ELEMENT guisubmenu %ho; (%smallcptr.char.mix;|accel|superscript|subscript)*>
<!--end of guisubmenu.element-->]]>

<!ENTITY % guisubmenu.attlist "INCLUDE">
<!ATTLIST guisubmenu
<!--end of guisubmenu.attlist-->]]>
<!--end of guisubmenu.module-->]]>

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

<!ENTITY % hardware.element "INCLUDE">
<!--doc:A physical part of a computer system.-->
<!ELEMENT hardware %ho; (%cptr.char.mix;)*>
<!--end of hardware.element-->]]>

<!ENTITY % hardware.attlist "INCLUDE">
<!ATTLIST hardware
<!--end of hardware.attlist-->]]>
<!--end of hardware.module-->]]>

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

<!ENTITY % interface.element "INCLUDE">
<!--doc:An element of a GUI.-->
<!ELEMENT interface %ho; (%smallcptr.char.mix;|accel)*>
<!--end of interface.element-->]]>

<!-- Class: Type of the Interface item; no default -->

<!ENTITY % interface.attlist "INCLUDE">
<!ATTLIST interface
<!--end of interface.attlist-->]]>
<!--end of interface.module-->]]>

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

<!ENTITY % keycap.element "INCLUDE">
<!--doc:The text printed on a key on a keyboard.-->
<!ELEMENT keycap %ho; (%cptr.char.mix;)*>
<!--end of keycap.element-->]]>

<!ENTITY % keycap.attlist "INCLUDE">
<!ATTLIST keycap
		function	(alt
				|other)		#IMPLIED
		otherfunction	CDATA		#IMPLIED
<!--end of keycap.attlist-->]]>
<!--end of keycap.module-->]]>

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

<!ENTITY % keycode.element "INCLUDE">
<!--doc:The internal, frequently numeric, identifier for a key on a keyboard.-->
<!ELEMENT keycode %ho; (%smallcptr.char.mix;)*>
<!--end of keycode.element-->]]>

<!ENTITY % keycode.attlist "INCLUDE">
<!ATTLIST keycode
<!--end of keycode.attlist-->]]>
<!--end of keycode.module-->]]>

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

<!ENTITY % keycombo.element "INCLUDE">
<!--doc:A combination of input actions.-->
<!ELEMENT keycombo %ho; ((keycap|keycombo|keysym|mousebutton)+)>
<!--end of keycombo.element-->]]>

<!ENTITY % keycombo.attlist "INCLUDE">
<!ATTLIST keycombo
<!--end of keycombo.attlist-->]]>
<!--end of keycombo.module-->]]>

<!ENTITY % keysym.module "INCLUDE">
<!ENTITY % local.keysym.attrib "">
<!ENTITY % keysysm.role.attrib "%role.attrib;">

<!ENTITY % keysym.element "INCLUDE">
<!--doc:The symbolic name of a key on a keyboard.-->
<!ELEMENT keysym %ho; (%smallcptr.char.mix;)*>
<!--end of keysym.element-->]]>

<!ENTITY % keysym.attlist "INCLUDE">
<!ATTLIST keysym
<!--end of keysym.attlist-->]]>
<!--end of keysym.module-->]]>

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

<!ENTITY % lineannotation.element "INCLUDE">
<!--doc:A comment on a line in a verbatim listing.-->
<!ELEMENT lineannotation %ho; (%para.char.mix;)*>
<!--end of lineannotation.element-->]]>

<!ENTITY % lineannotation.attlist "INCLUDE">
<!ATTLIST lineannotation
<!--end of lineannotation.attlist-->]]>
<!--end of lineannotation.module-->]]>

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

<!ENTITY % literal.element "INCLUDE">
<!--doc:Inline text that is some literal value.-->
<!ELEMENT literal %ho; (%cptr.char.mix;)*>
<!--end of literal.element-->]]>

<!ENTITY % literal.attlist "INCLUDE">
<!ATTLIST literal
<!--end of literal.attlist-->]]>
<!--end of literal.module-->]]>

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

<!ENTITY % code.element "INCLUDE">
<!--doc:An inline code fragment.-->
<!ELEMENT code %ho; (%cptr.char.mix;)*>
<!--end of code.element-->]]>

<!ENTITY % code.attlist "INCLUDE">
<!ATTLIST code
		language	CDATA	#IMPLIED
<!--end of code.attlist-->]]>
<!--end of code.module-->]]>

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

<!ENTITY % constant.element "INCLUDE">
<![ %constant.element; [
<!--doc:A programming or system constant.-->
<!ELEMENT constant %ho; (%smallcptr.char.mix;)*>
<!--end of constant.element-->]]>

<!ENTITY % constant.attlist "INCLUDE">
<![ %constant.attlist; [
<!ATTLIST constant
		class	(limit)		#IMPLIED
<!--end of constant.attlist-->]]>
<!--end of constant.module-->]]>

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

<!ENTITY % varname.element "INCLUDE">
<![ %varname.element; [
<!--doc:The name of a variable.-->
<!ELEMENT varname %ho; (%smallcptr.char.mix;)*>
<!--end of varname.element-->]]>

<!ENTITY % varname.attlist "INCLUDE">
<![ %varname.attlist; [
<!ATTLIST varname
<!--end of varname.attlist-->]]>
<!--end of varname.module-->]]>

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

<!ENTITY % markup.element "INCLUDE">
<!--doc:A string of formatting markup in text that is to be represented literally.-->
<!ELEMENT markup %ho; (%smallcptr.char.mix;)*>
<!--end of markup.element-->]]>

<!ENTITY % markup.attlist "INCLUDE">
<!ATTLIST markup
<!--end of markup.attlist-->]]>
<!--end of markup.module-->]]>

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

<!ENTITY % medialabel.element "INCLUDE">
<!--doc:A name that identifies the physical medium on which some information resides.-->
<!ELEMENT medialabel %ho; (%smallcptr.char.mix;)*>
<!--end of medialabel.element-->]]>

<!-- Class: Type of medium named by the element; no default -->

<!ENTITY % medialabel.attlist "INCLUDE">
<!ATTLIST medialabel
		class 		(cartridge
				|tape)		#IMPLIED
<!--end of medialabel.attlist-->]]>
<!--end of medialabel.module-->]]>

<!ENTITY % menuchoice.content.module "INCLUDE">
<!ENTITY % menuchoice.module "INCLUDE">
<!ENTITY % local.menuchoice.attrib "">
<!ENTITY % menuchoice.role.attrib "%role.attrib;">

<!ENTITY % menuchoice.element "INCLUDE">
<!--doc:A selection or series of selections from a menu.-->
<!ELEMENT menuchoice %ho; (shortcut?, (guibutton|guiicon|guilabel
<!--end of menuchoice.element-->]]>

<!ENTITY % menuchoice.attlist "INCLUDE">
<!ATTLIST menuchoice
<!--end of menuchoice.attlist-->]]>
<!--end of menuchoice.module-->]]>

<!ENTITY % shortcut.module "INCLUDE">
<!-- See also KeyCombo -->
<!ENTITY % local.shortcut.attrib "">
<!ENTITY % shortcut.role.attrib "%role.attrib;">

<!ENTITY % shortcut.element "INCLUDE">
<!--doc:A key combination for an action that is also accessible through a menu.-->
<!ELEMENT shortcut %ho; ((keycap|keycombo|keysym|mousebutton)+)>
<!--end of shortcut.element-->]]>

<!ENTITY % shortcut.attlist "INCLUDE">
<!ATTLIST shortcut
<!--end of shortcut.attlist-->]]>
<!--end of shortcut.module-->]]>
<!--end of menuchoice.content.module-->]]>

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

<!ENTITY % mousebutton.element "INCLUDE">
<!--doc:The conventional name of a mouse button.-->
<!ELEMENT mousebutton %ho; (%smallcptr.char.mix;)*>
<!--end of mousebutton.element-->]]>

<!ENTITY % mousebutton.attlist "INCLUDE">
<!ATTLIST mousebutton
<!--end of mousebutton.attlist-->]]>
<!--end of mousebutton.module-->]]>

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

<!ENTITY % msgtext.element "INCLUDE">
<!--doc:The actual text of a message component in a message set.-->
<!ELEMENT msgtext %ho; ((%component.mix;)+)>
<!--end of msgtext.element-->]]>

<!ENTITY % msgtext.attlist "INCLUDE">
<!ATTLIST msgtext
<!--end of msgtext.attlist-->]]>
<!--end of msgtext.module-->]]>

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

<!ENTITY % option.element "INCLUDE">
<!--doc:An option for a software command.-->
<!ELEMENT option %ho; (%cptr.char.mix;)*>
<!--end of option.element-->]]>

<!ENTITY % option.attlist "INCLUDE">
<!ATTLIST option
<!--end of option.attlist-->]]>
<!--end of option.module-->]]>

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

<!ENTITY % optional.element "INCLUDE">
<!--doc:Optional information.-->
<!ELEMENT optional %ho; (%cptr.char.mix;)*>
<!--end of optional.element-->]]>

<!ENTITY % optional.attlist "INCLUDE">
<!ATTLIST optional
<!--end of optional.attlist-->]]>
<!--end of optional.module-->]]>

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

<!ENTITY % parameter.element "INCLUDE">
<!--doc:A value or a symbolic reference to a value.-->
<!ELEMENT parameter %ho; (%cptr.char.mix;)*>
<!--end of parameter.element-->]]>

<!-- Class: Type of the Parameter; no default -->

<!ENTITY % parameter.attlist "INCLUDE">
<!ATTLIST parameter
		class 		(command
				|option)	#IMPLIED
<!--end of parameter.attlist-->]]>
<!--end of parameter.module-->]]>

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

<!ENTITY % prompt.element "INCLUDE">
<!--doc:A character or string indicating the start of an input field in a  computer display.-->
<!ELEMENT prompt %ho; (%smallcptr.char.mix;|co)*>
<!--end of prompt.element-->]]>

<!ENTITY % prompt.attlist "INCLUDE">
<!ATTLIST prompt
<!--end of prompt.attlist-->]]>
<!--end of prompt.module-->]]>

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

<!ENTITY % property.element "INCLUDE">
<!--doc:A unit of data associated with some part of a computer system.-->
<!ELEMENT property %ho; (%cptr.char.mix;)*>
<!--end of property.element-->]]>

<!ENTITY % property.attlist "INCLUDE">
<!ATTLIST property
<!--end of property.attlist-->]]>
<!--end of property.module-->]]>

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

<!ENTITY % replaceable.element "INCLUDE">
<!--doc:Content that may or must be replaced by the user.-->
<!ELEMENT replaceable %ho; (#PCDATA
		| %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 -->

<!ENTITY % replaceable.attlist "INCLUDE">
<!ATTLIST replaceable
		class		(command
				|parameter)	#IMPLIED
<!--end of replaceable.attlist-->]]>
<!--end of replaceable.module-->]]>

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

<!ENTITY % returnvalue.element "INCLUDE">
<!--doc:The value returned by a function.-->
<!ELEMENT returnvalue %ho; (%smallcptr.char.mix;)*>
<!--end of returnvalue.element-->]]>

<!ENTITY % returnvalue.attlist "INCLUDE">
<!ATTLIST returnvalue
<!--end of returnvalue.attlist-->]]>
<!--end of returnvalue.module-->]]>

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

<!ENTITY % sgmltag.element "INCLUDE">
<!--doc:A component of SGML markup.-->
<!ELEMENT sgmltag %ho; (%smallcptr.char.mix;)*>
<!--end of sgmltag.element-->]]>

<!-- Class: Type of SGML construct the element names; no default -->

<!ENTITY % sgmltag.attlist "INCLUDE">
<!ATTLIST sgmltag
		class 		(attribute
                                |localname)	#IMPLIED
		namespace	CDATA		#IMPLIED
<!--end of sgmltag.attlist-->]]>
<!--end of sgmltag.module-->]]>

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

<!ENTITY % structfield.element "INCLUDE">
<!--doc:A field in a structure (in the programming language sense).-->
<!ELEMENT structfield %ho; (%smallcptr.char.mix;)*>
<!--end of structfield.element-->]]>

<!ENTITY % structfield.attlist "INCLUDE">
<!ATTLIST structfield
<!--end of structfield.attlist-->]]>
<!--end of structfield.module-->]]>

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

<!ENTITY % structname.element "INCLUDE">
<!--doc:The name of a structure (in the programming language sense).-->
<!ELEMENT structname %ho; (%smallcptr.char.mix;)*>
<!--end of structname.element-->]]>

<!ENTITY % structname.attlist "INCLUDE">
<!ATTLIST structname
<!--end of structname.attlist-->]]>
<!--end of structname.module-->]]>

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

<!ENTITY % symbol.element "INCLUDE">
<!--doc:A name that is replaced by a value before processing.-->
<!ELEMENT symbol %ho; (%smallcptr.char.mix;)*>
<!--end of symbol.element-->]]>

<!-- Class: Type of symbol; no default -->

<!ENTITY % symbol.attlist "INCLUDE">
<!ATTLIST symbol
		class		(limit)		#IMPLIED
<!--end of symbol.attlist-->]]>
<!--end of symbol.module-->]]>

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

<!ENTITY % systemitem.element "INCLUDE">
<!--doc:A system-related item or term.-->
<!ELEMENT systemitem %ho; (%cptr.char.mix; | acronym | co)*>
<!--end of systemitem.element-->]]>

<!-- Class: Type of system item the element names; no default -->

<!ENTITY % systemitem.attlist "INCLUDE">
<!ATTLIST systemitem
		class	(constant
                        |service)	#IMPLIED
<!--end of systemitem.attlist-->]]>
<!--end of systemitem.module-->]]>

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

<!ENTITY % uri.element "INCLUDE">
<!--doc:A Uniform Resource Identifier.-->
<!ELEMENT uri %ho; (%smallcptr.char.mix;)*>
<!--end of uri.element-->]]>

<!-- Type: Type of URI; no default -->

<!ENTITY % uri.attlist "INCLUDE">
<!--end of uri.attlist-->]]>
<!--end of uri.module-->]]>

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

<!ENTITY % token.element "INCLUDE">
<!--doc:A unit of information.-->
<!ELEMENT token %ho; (%smallcptr.char.mix;)*>
<!--end of token.element-->]]>

<!ENTITY % token.attlist "INCLUDE">
<!ATTLIST token
<!--end of token.attlist-->]]>
<!--end of token.module-->]]>

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

<!ENTITY % type.element "INCLUDE">
<!--doc:The classification of a value.-->
<!ELEMENT type %ho; (%smallcptr.char.mix;)*>
<!--end of type.element-->]]>

<!ENTITY % type.attlist "INCLUDE">
<!ATTLIST type
<!--end of type.attlist-->]]>
<!--end of type.module-->]]>

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

<!ENTITY % userinput.element "INCLUDE">
<!--doc:Data entered by the user.-->
<!ELEMENT userinput %ho; (%cptr.char.mix;|co)*>
<!--end of userinput.element-->]]>

<!ENTITY % userinput.attlist "INCLUDE">
<!ATTLIST userinput
<!--end of userinput.attlist-->]]>
<!--end of userinput.module-->]]>

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

<!ENTITY % termdef.element "INCLUDE">
<!--doc:An inline definition of a term.-->
<!ELEMENT termdef %ho; (%para.char.mix;)*>
<!--end of termdef.element-->]]>

<!ENTITY % termdef.attlist "INCLUDE">
<!ATTLIST termdef
<!--end of termdef.attlist-->]]>
<!--end of termdef.module-->]]>

<!-- General words and phrases ............................................ -->

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

<!ENTITY % abbrev.element "INCLUDE">
<!--doc:An abbreviation, especially one followed by a period.-->
<!ELEMENT abbrev %ho; (%word.char.mix;)*>
<!--end of abbrev.element-->]]>

<!ENTITY % abbrev.attlist "INCLUDE">
<!ATTLIST abbrev
<!--end of abbrev.attlist-->]]>
<!--end of abbrev.module-->]]>

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

<!ENTITY % acronym.element "INCLUDE">
<!--doc:An often pronounceable word made from the initial (or selected) letters of a name or phrase.-->
<!ELEMENT acronym %ho; (%word.char.mix;)*
<!--end of acronym.element-->]]>

<!ENTITY % acronym.attlist "INCLUDE">
<!ATTLIST acronym
<!--end of acronym.attlist-->]]>
<!--end of acronym.module-->]]>

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

<!ENTITY % citation.element "INCLUDE">
<!--doc:An inline bibliographic reference to another published work.-->
<!ELEMENT citation %ho; (%para.char.mix;)*>
<!--end of citation.element-->]]>

<!ENTITY % citation.attlist "INCLUDE">
<!ATTLIST citation
<!--end of citation.attlist-->]]>
<!--end of citation.module-->]]>

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

<!ENTITY % citerefentry.element "INCLUDE">
<!--doc:A citation to a reference page.-->
<!ELEMENT citerefentry %ho; (refentrytitle, manvolnum?)>
<!--end of citerefentry.element-->]]>

<!ENTITY % citerefentry.attlist "INCLUDE">
<!ATTLIST citerefentry
<!--end of citerefentry.attlist-->]]>
<!--end of citerefentry.module-->]]>

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

<!ENTITY % refentrytitle.element "INCLUDE">
<!--doc:The title of a reference page.-->
<!ELEMENT refentrytitle %ho; (%para.char.mix;)*>
<!--end of refentrytitle.element-->]]>

<!ENTITY % refentrytitle.attlist "INCLUDE">
<!ATTLIST refentrytitle
<!--end of refentrytitle.attlist-->]]>
<!--end of refentrytitle.module-->]]>

<!ENTITY % manvolnum.module "INCLUDE">
<!ENTITY % local.manvolnum.attrib "">
<!ENTITY % namvolnum.role.attrib "%role.attrib;">

<!ENTITY % manvolnum.element "INCLUDE">
<!--doc:A reference volume number.-->
<!ELEMENT manvolnum %ho; (%word.char.mix;)*>
<!--end of manvolnum.element-->]]>

<!ENTITY % manvolnum.attlist "INCLUDE">
<!ATTLIST manvolnum
<!--end of manvolnum.attlist-->]]>
<!--end of manvolnum.module-->]]>

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

<!ENTITY % citetitle.element "INCLUDE">
<!--doc:The title of a cited work.-->
<!ELEMENT citetitle %ho; (%para.char.mix;)*>
<!--end of citetitle.element-->]]>

<!-- Pubwork: Genre of published work cited; no default -->

<!ENTITY % citetitle.attlist "INCLUDE">
<!ATTLIST citetitle
		pubwork		(article
                                |newsposting)	#IMPLIED
<!--end of citetitle.attlist-->]]>
<!--end of citetitle.module-->]]>

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

<!ENTITY % emphasis.element "INCLUDE">
<!--doc:Emphasized text.-->
<!ELEMENT emphasis %ho; (%para.char.mix;)*>
<!--end of emphasis.element-->]]>

<!ENTITY % emphasis.attlist "INCLUDE">
<!ATTLIST emphasis
<!--end of emphasis.attlist-->]]>
<!--end of emphasis.module-->]]>

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

<!ENTITY % foreignphrase.element "INCLUDE">
<!--doc:A word or phrase in a language other than the primary language of the document.-->
<!ELEMENT foreignphrase %ho; (%para.char.mix;)*>
<!--end of foreignphrase.element-->]]>

<!ENTITY % foreignphrase.attlist "INCLUDE">
<!ATTLIST foreignphrase
<!--end of foreignphrase.attlist-->]]>
<!--end of foreignphrase.module-->]]>

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

<!ENTITY % glossterm.element "INCLUDE">
<!--doc:A glossary term.-->
<!ELEMENT glossterm %ho; (%para.char.mix;)*
<!--end of glossterm.element-->]]>

<!-- to GlossEntry if Glossterm used in text -->
<!-- BaseForm: Provides the form of GlossTerm to be used
		for indexing -->

<!ENTITY % glossterm.attlist "INCLUDE">
<!ATTLIST glossterm
		baseform	CDATA		#IMPLIED
<!--end of glossterm.attlist-->]]>
<!--end of glossterm.module-->]]>

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

<!ENTITY % firstterm.element "INCLUDE">
<!--doc:The first occurrence of a term.-->
<!ELEMENT firstterm %ho; (%para.char.mix;)*
<!--end of firstterm.element-->]]>

<!-- to GlossEntry or other explanation -->

<!ENTITY % firstterm.attlist "INCLUDE">
<!ATTLIST firstterm
		baseform	CDATA		#IMPLIED
<!--end of firstterm.attlist-->]]>
<!--end of firstterm.module-->]]>

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

<!ENTITY % phrase.element "INCLUDE">
<!--doc:A span of text.-->
<!ELEMENT phrase %ho; (%para.char.mix;)*>
<!--end of phrase.element-->]]>

<!ENTITY % phrase.attlist "INCLUDE">
<!ATTLIST phrase
<!--end of phrase.attlist-->]]>
<!--end of phrase.module-->]]>

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

<!ENTITY % quote.element "INCLUDE">
<!--doc:An inline quotation.-->
<!ELEMENT quote %ho; (%para.char.mix;)*>
<!--end of quote.element-->]]>

<!ENTITY % quote.attlist "INCLUDE">
<!ATTLIST quote
<!--end of quote.attlist-->]]>
<!--end of quote.module-->]]>

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

<!ENTITY % subscript.element "INCLUDE">
<!--doc:A subscript (as in H{^2}O, the molecular formula for water).-->
<!ELEMENT subscript %ho; (#PCDATA
		| %link.char.class;
		| emphasis
		| replaceable
		| symbol
		| inlinegraphic
                | inlinemediaobject
		| %base.char.class;
		| %other.char.class;)*
<!--end of subscript.element-->]]>

<!ENTITY % subscript.attlist "INCLUDE">
<!ATTLIST subscript
<!--end of subscript.attlist-->]]>

<!ENTITY % superscript.element "INCLUDE">
<!--doc:A superscript (as in x^2, the mathematical notation for x multiplied by itself).-->
<!ELEMENT superscript %ho; (#PCDATA
		| %link.char.class;
		| emphasis
		| replaceable
		| symbol
		| inlinegraphic
                | inlinemediaobject
		| %base.char.class;
		| %other.char.class;)*
<!--end of superscript.element-->]]>

<!ENTITY % superscript.attlist "INCLUDE">
<!ATTLIST superscript
<!--end of superscript.attlist-->]]>
<!--end of ssscript.module-->]]>

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

<!ENTITY % trademark.element "INCLUDE">
<!--doc:A trademark.-->
<!ELEMENT trademark %ho; (#PCDATA
		| %link.char.class;
		| %tech.char.class;
		| %base.char.class;
		| %other.char.class;
		| inlinegraphic
                | inlinemediaobject
		| emphasis)*>
<!--end of trademark.element-->]]>

<!-- Class: More precisely identifies the item the element names -->

<!ENTITY % trademark.attlist "INCLUDE">
<!ATTLIST trademark
		class		(service
				|copyright)	'trade'
<!--end of trademark.attlist-->]]>
<!--end of trademark.module-->]]>

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

<!ENTITY % wordasword.element "INCLUDE">
<!--doc:A word meant specifically as a word and not representing anything else.-->
<!ELEMENT wordasword %ho; (%word.char.mix;)*>
<!--end of wordasword.element-->]]>

<!ENTITY % wordasword.attlist "INCLUDE">
<!ATTLIST wordasword
<!--end of wordasword.attlist-->]]>
<!--end of wordasword.module-->]]>

<!-- Links and cross-references ........................................... -->

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

<!ENTITY % link.element "INCLUDE">
<!--doc:A hypertext link.-->
<!ELEMENT link %ho; (%para.char.mix;)*
<!--end of link.element-->]]>

<!-- Endterm: ID of element containing text that is to be
		fetched from elsewhere in the document to appear as
		the content of this element -->
<!-- to linked-to object -->
<!-- Type: Freely assignable parameter -->

<!ENTITY % link.attlist "INCLUDE">
<!ATTLIST link
		endterm		IDREF		#IMPLIED
		xrefstyle	CDATA		#IMPLIED
<!--end of link.attlist-->]]>
<!--end of link.module-->]]>

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

<!ENTITY % olink.element "INCLUDE">
<!--doc:A link that addresses its target indirectly, through an entity.-->
<!ELEMENT olink %ho; (%para.char.mix;)*
<!--end of olink.element-->]]>

<!-- TargetDocEnt: Name of an entity to be the target of the link -->
<!-- LinkMode: ID of a ModeSpec containing instructions for
		operating on the entity named by TargetDocEnt -->
<!-- LocalInfo: Information that may be passed to ModeSpec -->
<!-- Type: Freely assignable parameter -->

<!ENTITY % olink.attlist "INCLUDE">
<!ATTLIST olink
		targetdocent	ENTITY 		#IMPLIED
		linkmode	IDREF		#IMPLIED
		localinfo 	CDATA		#IMPLIED
		targetdoc	CDATA		#IMPLIED
		targetptr	CDATA		#IMPLIED
		xrefstyle	CDATA		#IMPLIED
<!--end of olink.attlist-->]]>
<!--end of olink.module-->]]>

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

<!ENTITY % ulink.element "INCLUDE">
<!--doc:A link that addresses its target by means of a URL (Uniform Resource Locator).-->
<!ELEMENT ulink %ho; (%para.char.mix;)*
<!--end of ulink.element-->]]>

<!-- URL: uniform resource locator; the target of the ULink -->
<!-- Type: Freely assignable parameter -->

<!ENTITY % ulink.attlist "INCLUDE">
<!ATTLIST ulink
		xrefstyle	CDATA		#IMPLIED
<!--end of ulink.attlist-->]]>
<!--end of ulink.module-->]]>

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

<!ENTITY % footnoteref.element "INCLUDE">
<!--doc:A cross reference to a footnote (a footnote mark).-->
<!ELEMENT footnoteref %ho; EMPTY>
<!--end of footnoteref.element-->]]>

<!-- to footnote content supplied elsewhere -->

<!ENTITY % footnoteref.attlist "INCLUDE">
<!ATTLIST footnoteref
		%linkendreq.attrib;		%label.attrib;
<!--end of footnoteref.attlist-->]]>
<!--end of footnoteref.module-->]]>

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

<!ENTITY % xref.element "INCLUDE">
<!--doc:A cross reference to another part of the document.-->
<!ELEMENT xref %ho; EMPTY>
<!--end of xref.element-->]]>

<!-- Endterm: ID of element containing text that is to be
		fetched from elsewhere in the document to appear as
		the content of this element -->
<!-- to linked-to object -->

<!ENTITY % xref.attlist "INCLUDE">
<!ATTLIST xref
		endterm		IDREF		#IMPLIED
		xrefstyle	CDATA		#IMPLIED
<!--end of xref.attlist-->]]>
<!--end of xref.module-->]]>

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

<!ENTITY % biblioref.element "INCLUDE">
<!--doc:A cross reference to a bibliographic entry.-->
<!ELEMENT biblioref %ho; EMPTY>
<!--end of biblioref.element-->]]>

<!ENTITY % biblioref.attlist "INCLUDE">
<!ATTLIST biblioref
		endterm		IDREF		#IMPLIED
		xrefstyle	CDATA		#IMPLIED
		units		CDATA		#IMPLIED
		begin		CDATA		#IMPLIED
<!--end of biblioref.attlist-->]]>
<!--end of biblioref.module-->]]>

<!-- Ubiquitous elements .................................................. -->

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

<!ENTITY % anchor.element "INCLUDE">
<!--doc:A spot in the document.-->
<!ELEMENT anchor %ho; EMPTY>
<!--end of anchor.element-->]]>

<!-- required -->
<!-- replaces Lang -->

<!ENTITY % anchor.attlist "INCLUDE">
<!ATTLIST anchor
		%idreq.attrib;		%pagenum.attrib;		%remap.attrib;
<!--end of anchor.attlist-->]]>
<!--end of anchor.module-->]]>

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

<!ENTITY % beginpage.element "INCLUDE">
<!--doc:The location of a page break in a print version of the document.-->
<!ELEMENT beginpage %ho; EMPTY>
<!--end of beginpage.element-->]]>

<!-- PageNum: Number of page that begins at this point -->

<!ENTITY % beginpage.attlist "INCLUDE">
<!ATTLIST beginpage
<!--end of beginpage.attlist-->]]>
<!--end of beginpage.module-->]]>

<!-- IndexTerms appear in the text flow for generating or linking an
     index. -->

<!ENTITY % indexterm.content.module "INCLUDE">
<!ENTITY % indexterm.module "INCLUDE">
<!ENTITY % local.indexterm.attrib "">
<!ENTITY % indexterm.role.attrib "%role.attrib;">

<!ENTITY % indexterm.element "INCLUDE">
<!--doc:A wrapper for terms to be indexed.-->
<!ELEMENT indexterm %ho; (primary?, ((secondary, ((tertiary, (see|seealso+)?)
		| see | seealso+)?) | see | seealso+)?)
<!--end of indexterm.element-->]]>

<!-- Scope: Indicates which generated indices the IndexTerm
		should appear in: Global (whole document set), Local (this
		document only), or All (both) -->
<!-- Significance: Whether this IndexTerm is the most pertinent
		of its series (Preferred) or not (Normal, the default) -->
<!-- Class: Indicates type of IndexTerm; default is Singular,
		or EndOfRange if StartRef is supplied; StartOfRange value
		must be supplied explicitly on starts of ranges -->
<!-- StartRef: ID of the IndexTerm that starts the indexing
		range ended by this IndexTerm -->
<!-- Zone: IDs of the elements to which the IndexTerm applies,
		and indicates that the IndexTerm applies to those entire
		elements rather than the point at which the IndexTerm
		occurs -->

<!ENTITY % indexterm.attlist "INCLUDE">
<!ATTLIST indexterm
		scope		(all
				|local)		#IMPLIED
		significance	(preferred
				|normal)	"normal"
		class		(singular
				|endofrange)	#IMPLIED
		startref	IDREF		#IMPLIED
<!--end of indexterm.attlist-->]]>
<!--end of indexterm.module-->]]>

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

<!ENTITY % primary.element "INCLUDE">
<!--doc:The primary word or phrase under which an index term should be sorted.-->
<!ELEMENT primary %ho;   (%ndxterm.char.mix;)*>
<!--end of primary.element-->]]>
<!-- SortAs: Alternate sort string for index sorting, e.g.,
		"fourteen" for an element containing "14" -->

<!ENTITY % primary.attlist "INCLUDE">
<!ATTLIST primary
		sortas		CDATA		#IMPLIED
<!--end of primary.attlist-->]]>

<!ENTITY % secondary.element "INCLUDE">
<!--doc:A secondary word or phrase in an index term.-->
<!ELEMENT secondary %ho; (%ndxterm.char.mix;)*>
<!--end of secondary.element-->]]>
<!-- SortAs: Alternate sort string for index sorting, e.g.,
		"fourteen" for an element containing "14" -->

<!ENTITY % secondary.attlist "INCLUDE">
<!ATTLIST secondary
		sortas		CDATA		#IMPLIED
<!--end of secondary.attlist-->]]>

<!ENTITY % tertiary.element "INCLUDE">
<!--doc:A tertiary word or phrase in an index term.-->
<!ELEMENT tertiary %ho;  (%ndxterm.char.mix;)*>
<!--end of tertiary.element-->]]>
<!-- SortAs: Alternate sort string for index sorting, e.g.,
		"fourteen" for an element containing "14" -->

<!ENTITY % tertiary.attlist "INCLUDE">
<!ATTLIST tertiary
		sortas		CDATA		#IMPLIED
<!--end of tertiary.attlist-->]]>

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

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

<!ENTITY % see.element "INCLUDE">
<!--doc:Part of an index term directing the reader instead to another entry in the index.-->
<!ELEMENT see %ho; (%ndxterm.char.mix;)*>
<!--end of see.element-->]]>

<!ENTITY % see.attlist "INCLUDE">
<!--end of see.attlist-->]]>

<!ENTITY % seealso.element "INCLUDE">
<!--doc:Part of an index term directing the reader also to another entry in the index.-->
<!ELEMENT seealso %ho; (%ndxterm.char.mix;)*>
<!--end of seealso.element-->]]>

<!ENTITY % seealso.attlist "INCLUDE">
<!ATTLIST seealso
<!--end of seealso.attlist-->]]>
<!--end of seeseealso.module-->]]>
<!--end of indexterm.content.module-->]]>

<!-- End of DocBook XML information pool module V4.5 ...................... -->
<!-- ...................................................................... -->