RefEntry DTD

<!-- RefEntry DTD                                                    -->
<!-- Subset of DocBook RefEntry for WebMan project                   -->
<!--                                                                 -->
<!-- Copyright 2002 Mark Craig                                       -->
<!--                                                                 -->
<!--                                                                 -->
<!-- A command argument for use in command synopses                  -->
<!ELEMENT arg (#PCDATA | replaceable)*                                 >
<!ATTLIST arg
          choice   (opt|plain|required)    #IMPLIED
          rep      (norepeat|repeat)       #IMPLIED                    >
<!--                                                                 -->
<!-- Whom to attribute a block quote                                 -->
<!ELEMENT attribution (#PCDATA)*                                       >
<!--                                                                 -->
<!-- An extended quote, formatted as a block element                 -->
<!ELEMENT blockquote (attribution, para+)                              >
<!--                                                                 -->
<!-- A reference to another RefEntry document                        -->
<!ELEMENT citerefentry (refentrytitle, manvolnum)                      >
<!--                                                                 -->
<!-- A reference to another document                                 -->
<!ELEMENT citetitle (#PCDATA)*                                         >
<!--                                                                 -->
<!-- An object class name                                            -->
<!ELEMENT classname (#PCDATA)*                                         >
<!--                                                                 -->
<!-- A class synopsis for the synopsis section, block element        -->
<!ELEMENT classsynopsis ((ooclass | oointerface | ooexception)+,
                         (classsynopsisinfo | constructorsynopsis |
                          destructorsynopsis | fieldsynopsis |
                          methodsynopsis)*)                            >
<!--                                                                 -->
<!-- Information about an object class                               -->
<!ELEMENT classsynopsisinfo (#PCDATA)*                                 >
<!--                                                                 -->
<!-- An command synopsis for the synopsis section, block element     -->
<!ELEMENT cmdsynopsis (arg | command | group | sbr)+                   >
<!--                                                                 -->
<!-- An command either as part of a synopsis or in another section   -->
<!ELEMENT command (#PCDATA)*                                           >
<!--                                                                 -->
<!-- Output displayed on a computer terminal screen                  -->
<!ELEMENT computeroutput (#PCDATA | replaceable)*                      >
<!--                                                                 -->
<!-- Synopsis for an object constructor                              -->
<!ELEMENT constructorsynopsis (modifier*, methodname?,
                               (methodparam+ | void), exceptionname*)  >
<!--                                                                 -->
<!-- Synopsis for an object destructor                               -->
<!ELEMENT destructorsynopsis (modifier*, methodname?,
                              (methodparam+ | void), exceptionname*)   >
<!--                                                                 -->
<!-- An inline, emphasized word or phrase                            -->
<!ELEMENT emphasis (#PCDATA)*                                          >
<!--                                                                 -->
<!-- A table cell                                                    -->
<!ELEMENT entry (para)+                                                >
<!ATTLIST entry
          align    (center | left | right) #IMPLIED
          morerows NMTOKEN                 #IMPLIED
          valign   (bottom | middle | top) #IMPLIED                    >
<!--                                                                 -->
<!-- An error code especially as part of a list of errors            -->
<!ELEMENT errorcode (#PCDATA)*                                         >
<!--                                                                 -->
<!-- An error name especially as part of a list of errors            -->
<!ELEMENT errorname (#PCDATA)*                                         >
<!--                                                                 -->
<!-- An error type especially as part of a list of errors            -->
<!ELEMENT errortype (#PCDATA)*                                         >
<!--                                                                 -->
<!-- An example use of the function or command, with title           -->
<!ELEMENT example (title, (para | programlisting | screen)+)           >
<!ATTLIST example
          id       ID                      #IMPLIED                    >
<!--                                                                 -->
<!-- Name of an OO exception                                         -->
<!ELEMENT exceptionname (#PCDATA)*                                     >
<!--                                                                 -->
<!-- Synopsis for a class field                                      -->
<!ELEMENT fieldsynopsis (modifier*, type?, varname, initializer?)      >
<!--                                                                 -->
<!-- An function definition for a function synopsis                  -->
<!ELEMENT funcdef (#PCDATA | function)*                                >
<!--                                                                 -->
<!-- An function referenced through a function pointer               -->
<!ELEMENT funcparams (#PCDATA)*                                        >
<!--                                                                 -->
<!-- An function prototype for a function synopsis                   -->
<!ELEMENT funcprototype (funcdef, (varargs | void | paramdef+))        >
<!--                                                                 -->
<!-- An function synopsis for the synposis section                   -->
<!ELEMENT funcsynopsis (funcsynopsisinfo?, funcprototype+)             >
<!--                                                                 -->
<!-- Extra function information, such as a header file line          -->
<!ELEMENT funcsynopsisinfo (#PCDATA | replaceable)*                    >
<!--                                                                 -->
<!-- A function either as part of a synopsis or in another section   -->
<!ELEMENT function (#PCDATA)*                                          >
<!--                                                                 -->
<!-- A group of command arguments for a command synopsis             -->
<!ELEMENT group (arg | sbr)+                                           >
<!ATTLIST group
          choice   (opt | plain | required) #IMPLIED
          rep      (norepeat | repeat)      #IMPLIED                   >
<!--                                                                 -->
<!-- Initializer for a method parameter                              -->
<!ELEMENT initializer (#PCDATA)*                                       >
<!--                                                                 -->
<!-- Name of an OO interface                                         -->
<!ELEMENT interfacename (#PCDATA)*                                     >
<!--                                                                 -->
<!-- An unordered list of items                                      -->
<!ELEMENT itemizedlist (listitem)+                                     >
<!--                                                                 -->
<!-- An single item in a list; may include multiple block elements   -->
<!ELEMENT listitem (para, (itemizedlist | orderedlist | para |
                           variablelist)*)                             >
<!--                                                                 -->
<!-- An inline, literal word or phrase                               -->
<!ELEMENT literal (#PCDATA)*                                           >
<!--                                                                 -->
<!-- The RefEntry volume number used when citing a RefEntry          -->
<!ELEMENT manvolnum (#PCDATA)*                                         >
<!--                                                                 -->
<!-- Name of an object method                                        -->
<!ELEMENT methodname (#PCDATA)*                                        >
<!--                                                                 -->
<!-- Parameter of an object method                                   -->
<!ELEMENT methodparam (modifier*, type?, ((parameter, initializer?) |
                       funcparams), modifier*)                         >
<!ATTLIST methodparam
          choice   (opt | plain | required) #IMPLIED
          rep      (norepeat | repeat)      #IMPLIED                   >
<!--                                                                 -->
<!-- Synopsis for an object method                                   -->
<!ELEMENT methodsynopsis (modifier*, (type | void), methodname,
                          (methodparam+ | void), exceptionname*)       >
<!--                                                                 -->
<!-- Modifier for an object method or method parameter               -->
<!ELEMENT modifier (#PCDATA)*                                          >
<!--                                                                 -->
<!-- A single entry in a set of error messages                       -->
<!ELEMENT msgentry (msg+, msginfo, msgexplan)                          >
<!--                                                                 -->
<!-- The explanation of an error message                             -->
<!ELEMENT msgexplan (para, (blockquote | itemizedlist | orderedlist |
                            para | programlisting | screen | 
                            variablelist)*)                            >
<!--                                                                 -->
<!-- Information about the level and origin of an error message      -->
<!ELEMENT msginfo (msglevel | msgorig)                                 >
<!--                                                                 -->
<!-- Information about the level of an error message                 -->
<!ELEMENT msglevel (#PCDATA)*                                          >
<!--                                                                 -->
<!-- An error message in a set of error messages                     -->
<!ELEMENT msg (msgmain, (msgrel | msgsub)*)                            >
<!--                                                                 -->
<!-- Main component of an error message                              -->
<!ELEMENT msgmain (msgtext)                                            >
<!--                                                                 -->
<!-- Information about the origin of an error message                -->
<!ELEMENT msgorig (#PCDATA)*                                           >
<!--                                                                 -->
<!-- Related error messages in a set of error messages               -->
<!ELEMENT msgrel (msgtext)                                             >
<!--                                                                 -->
<!-- A set of error messages                                         -->
<!ELEMENT msgset (msgentry)+                                           >
<!--                                                                 -->
<!-- A subordiate message of a top level error message               -->
<!ELEMENT msgsub (msgtext)                                             >
<!--                                                                 -->
<!-- Error message text itself, for use in a set of error messages   -->
<!ELEMENT msgtext (para, (blockquote | itemizedlist | orderedlist | 
                          para | programlisting | screen |
                          variablelist)+)                              >
<!--                                                                 -->
<!-- Identifier for an OO class                                      -->
<!ELEMENT ooclass (modifier*, classname)                               >
<!--                                                                 -->
<!-- Prototype for an OO exception                                   -->
<!ELEMENT ooexception (modifier*, exceptionname)                       >
<!--                                                                 -->
<!-- Prototype for an OO interface                                   -->
<!ELEMENT oointerface (modifier*, interfacename)                       >
<!--                                                                 -->
<!-- A list of items having a particular order                       -->
<!ELEMENT orderedlist (listitem)+                                      >
<!--                                                                 -->
<!-- A parameter definition for a function synopsis                  -->
<!ELEMENT paramdef (#PCDATA | funcparams | parameter)*                 >
<!--                                                                 -->
<!-- A parameter in a function synopsis or another section           -->
<!ELEMENT parameter (#PCDATA)*                                         >
<!--                                                                 -->
<!-- A paragraph                                                     -->
<!ELEMENT para  (#PCDATA | citerefentry | citetitle | classname | 
                 command | emphasis | errorcode | errorname | 
                 errortype | function | literal | quote |
                 replaceable | trademark | ulink | xref)*              >
<!--                                                                 -->
<!-- A program listing, may need to be preprocessed for inclusion    -->
<!ELEMENT programlisting (#PCDATA | classname | command | function |
                           replaceable)*                               >
<!--                                                                 -->
<!-- An inline quote                                                 -->
<!ELEMENT quote (#PCDATA)*                                             >
<!--                                                                 -->
<!-- A RefEntry document type (the root level element for this DTD)  -->
<!ELEMENT refentry (refmeta, refnamediv, refsynopsisdiv, refsect1+)    >
<!ATTLIST refentry
          id       ID                      #IMPLIED                    >
<!--                                                                 -->
<!-- The title of a RefEntry document, usually the ref. subject      -->
<!ELEMENT refentrytitle (#PCDATA)*                                     >
<!--                                                                 -->
<!-- A section of meta information about the RefEntry document       -->
<!ELEMENT refmeta (refentrytitle, manvolnum, refmiscinfo*)             >
<!--                                                                 -->
<!-- An item of meta information about the RefEntry document         -->
<!ELEMENT refmiscinfo (#PCDATA)*                                       >
<!ATTLIST refmiscinfo
          class    (arch | copyright |
                    date | sectdesc |
                    software)              #REQUIRED                   >
<!--                                                                 -->
<!-- A section concerning the ref. subject and quick description     -->
<!ELEMENT refnamediv (refname+, refpurpose)                            >
<!--                                                                 -->
<!-- A ref. subject                                                  -->
<!ELEMENT refname (#PCDATA)*                                           >
<!--                                                                 -->
<!-- A quick description of the ref. subject(s)                      -->
<!ELEMENT refpurpose (#PCDATA)*                                        >
<!--                                                                 -->
<!-- A generic RefEntry section                                      -->
<!ELEMENT refsect1 (title, para, (blockquote | example | itemizedlist |
                                  msgset | orderedlist | para | 
                                  programlisting | screen | table | 
                                  variablelist)*, refsect2*)           >
<!ATTLIST refsect1
          id       ID                      #IMPLIED                    >
<!--                                                                 -->
<!-- A generic RefEntry subsection                                   -->
<!ELEMENT refsect2 (title, para, (blockquote | itemizedlist | 
                                  orderedlist | para |
                                  programlisting | screen |
                                  variablelist)*)                      >
<!ATTLIST refsect2
          id       ID                      #IMPLIED                    >
<!--                                                                 -->
<!-- A RefEntry synopsis section                                     -->
<!ELEMENT refsynopsisdiv (title, (classsynopsis | cmdsynopsis |
                                  constructorsynopsis | destructorsynopsis |
                                  fieldsynopsis | funcsynopsis | 
                                  methodsynopsis | synopsis)+)         >
<!ATTLIST refsynopsisdiv
          id       ID                      #IMPLIED                    >
<!--                                                                 -->
<!-- Inline text that the user must replace with a literal value     -->
<!ELEMENT replaceable (#PCDATA)*                                       >
<!--                                                                 -->
<!-- A row in a table                                                -->
<!ELEMENT row (entry)+                                                 >
<!ATTLIST row
          valign   (bottom | middle | top) #IMPLIED                    >
<!--                                                                 -->
<!-- An indicator for a forced line break in cmdsynopsis formatting  -->
<!ELEMENT sbr EMPTY                                                    >
<!--                                                                 -->
<!-- A (terminal) screen as seen by a user                           -->
<!ELEMENT screen (#PCDATA | computeroutput | replaceable | userinput)* >
<!--                                                                 -->
<!-- A generic synopsis (not for a command or function)              -->
<!ELEMENT synopsis (#PCDATA | replaceable)*                            >
<!--                                                                 -->
<!-- A table having a title and formatted as a table                 -->
<!ELEMENT table (title, tgroup)                                        >
<!ATTLIST table
          colsep   NMTOKEN                 #IMPLIED
          frame    (all | bottom | none |
                    sides | top | topbot)  #IMPLIED
          rowsep   NMTOKEN                 #IMPLIED                    >
<!--                                                                 -->
<!-- A table body element, as distinguished from a table header      -->
<!ELEMENT tbody (row)+                                                 >
<!ATTLIST tbody
          valign   (bottom | middle | top) #IMPLIED                    >
<!--                                                                 -->
<!-- A term as the first part of a variable list entry               -->
<!ELEMENT term (#PCDATA | replaceable)*                                >
<!--                                                                 -->
<!-- A group of table elements                                       -->
<!ELEMENT tgroup (thead?, tbody)                                       >
<!--                                                                 -->
<!-- A table header element, as distinguished from a table body      -->
<!ELEMENT thead (row+)                                                 >
<!ATTLIST thead
          valign   (bottom | middle | top) #IMPLIED                    >
<!--                                                                 -->
<!-- A section title                                                 -->
<!ELEMENT title (#PCDATA)*                                             >
<!--                                                                 -->
<!-- An inline trademarked term                                      -->
<!ELEMENT trademark (#PCDATA)*                                         >
<!ATTLIST trademark
          class    (copyright | registered |
                    service | trade)       #IMPLIED                    >
<!--                                                                 -->
<!-- Return type of an OO method or type of a class field            -->
<!ELEMENT type (#PCDATA)*                                              >
<!--                                                                 -->
<!-- A URL link                                                      -->
<!ELEMENT ulink (#PCDATA)*                                             >
<!ATTLIST ulink
          url      CDATA                   #REQUIRED                   >
<!--                                                                 -->
<!-- User input as shown on a computer terminal                      -->
<!ELEMENT userinput (#PCDATA)*                                         >
<!--                                                                 -->
<!-- Repeated variable arguments in a function synopsis              -->
<!ELEMENT varargs EMPTY                                                >
<!--                                                                 -->
<!-- A list of terms and their associated explanations               -->
<!ELEMENT variablelist (varlistentry)+                                 >
<!--                                                                 -->
<!-- A list item in a variable list                                  -->
<!ELEMENT varlistentry (term+, listitem)                               >
<!--                                                                 -->
<!-- Name of the variable in a class field                           -->
<!ELEMENT varname (#PCDATA)*                                           >
<!--                                                                 -->
<!-- A void argument to a function in a function synopsis            -->
<!ELEMENT void EMPTY                                                   >
<!--                                                                 -->
<!-- A cross reference to another element in the same document       -->
<!ELEMENT xref EMPTY                                                   >
<!ATTLIST xref
          linkend  IDREF                   #REQUIRED                   >