
<!--

Rainbow DTD: VERSION
   Current version: 2.5
   The exact RCS version stamp is stored just after the end of the SGML decl.


Rainbow DTD: TYPICAL USAGE
        <!DOCTYPE rainbow PUBLIC "-//EBT//DTD Rainbow 2.5//EN" [
        ]>


Rainbow DTD: SGML DECLARATION
        The SGML declaration for Rainbow documents lies in "rainbow.dcl".


Rainbow DTD: LEGAL NOTES

   Copyright 1993-1995 Electronic Book Technologies, Inc.

   Permission to use, copy, modify and distribute the Rainbow DTD and
     its accompanying documentation for any purpose and without fee is
     hereby granted, provided that this copyright notice appears in all
     copies.  If you modify the Rainbow DTD, rename your modified
     version and make it clear that your version is not the "official"
     version maintained by EBT.

   EBT makes no representation about the suitability of the DTD
     for any purpose. It is provided "as is" without expressed or
     implied warranty.

   The Rainbow DTD is maintained by EBT, Inc.  Please
     direct all questions, bug reports, or suggestions for changes to:
             dfs@ebt.com

   Public Identifier:
      "-//EBT//DTD Rainbow 2.5//EN"

-->




<!-- Rainbow DTD: CHANGE LOG

   version 2.5 by alb:
        *) 1994/12/28 proforma attribute on CLF, permitting clf with no overrid
es
        *) 1994/12/23 SYSATTR on TABLE, ROW, and ENTRY
        *) 1994/11/29 ANCHOR may be a sibling of PARA (for RTF)
        *) 1994/11/21 XREF may contain TABs
        *) 1994/11/03 arch-type, arch-type-info added
   1994/06/02 (RCS version 2.4) by alb:
        *) NAMEDCLFs nested, continue attribute
        *) NDATA NOTATIONS & entities for graphics and equations
           Notation names are 3 letters in length to facilitate their
           acting as DOS filename suffixes.  (That means our notation names
           are not compatible with those recommended by ISO/IEC/JTC1/WG8)
        *) Fix for AUTOGEN content model: can contain TAB

   1994/05/10 (RCS version 2.3) by dfs:
        *) Major new release.  For full details, see the "Annotated DTD"
           document, available in PostScript form via the FTP server.
        *) DTD is now auto-generated from the WinWord "Annotated DTD" document.
           This allows dfs to maintain the DTD by editing a single
           document, instead of doing error-prone multiple-file editing.
           The side-effect: the rainbow.dtd file is not as pretty as it once
           was, for vertical spacing is not provided.
        
   1994/02/21 (RCS version 2.2) by dfs:
        *) HEAD is now merely a wrapper around one or more PARAs.
        *) STRUCLVL now supports the ID attribute.
        *) SGML declaration now fully supports ISO 8859-1 character set, and
           is stored in a separate file (rainbow.dcl) for convenience.
        *) CLFTYPE now supported; NAMEDCLF elements can be used to refer to
           a CLFTYPE.
        *) NAMEDCLFs can contain CLFs, thus providing limited nesting of
           character-level-formatting objects.
        *) Definition of an SDATA entity for representation of tabchars.
        *) ANCHOR, IDXTERM, and XREF: content model repaired to match the
           original intended semantics.  The content models are now
           repeatable OR groups.
             NOTE: This leaves AUTOGEN and CLF as the only element types
                   with controversial "mixed content" models.  We hope
                   to resolve these controversies at the SGML/Open
                   Rainbow review.

   1994/01/24 (RCS version 2.1) by dfs:
        *) Set SHORTTAG to YES in SGML decl (recommended use: only to
           allow omission of attribute-value delimiters)
        *) Various additions to the set of element types supporting
           end-tag omission.
        *) This change log was moved out of the SGML decl.
        
   1994/01/10 (RCS version 2.0) by dfs:
        ** Very large number of changes - -  see the Annotated DTD document
           for complete details. **

   1993/12/06 (RCS version 1.9) by dfs:
        *) The SGML declaration minimization portion now allows OMITTAG.

   1993/12/06 (RCS version 1.8) by dfs:
        *) Font size is no longer a NUMBER (to support fractionals)

   1993/12/05 (RCS version 1.7) by dfs:
        *) Deletion of "continue" attribute on PARA/HEAD.  That attribute
           never really existed; it was a mega-typo.
        *) Addition of "dtdver" attribute allowing a document instance
           to specify the exact version of Rainbow DTD used by its
           generator/author.
        *) Addition of copyright notice to DTD.

   1993/11/30 (RCS version 1.6) by dfs:
        *) MARK now has same content model as PARACONT.

   1993/11/29 (RCS version 1.5) by dfs:
        *) Typo fix: TXTFLD changed to TEXTFLD

   1993/11/29 (RCS version 1.4) by dfs:
        *) All PLF/CLF attributes are #IMPLIED.
        *) NUMBER type now used very sparingly, because of its inability
           to support negative numbers.  NUMBER now used only in cases for
           which a negative number is absolutely impossible.
        *) All ID attributes are of type CDATA, because word processors
           allow "bookmarks" to have names that do not meet the SGML
           requirements for ID-type attribute values.
        *) GI change: INDEXENTRY is now IDXTERM
           Motivation: it was the only GI that was > 8 chars in length
        *) IDXTERM was an "orphan" in the previous version; now it is
           included in the DOC content model as an inclusion exception.
        *) The PARACONT attributes are now #IMPLIED.
-->




<!-- NOTE: THIS DTD IS NOT MEANT FOR HUMAN CONSUMPTION.
           THIS IS FOR MACHINE PROCESSING ONLY.
           HUMANS SHOULD READ THE "Annotated DTD", AVAILABLE IN PostScript
           FORM VIA THE FTP SERVER (pub/nv/dtd/rainbow/rbow2-x.ps)
  -->


<!-- NOTE: THIS DTD IS NOT MEANT FOR HUMAN CONSUMPTION.
           THIS IS FOR MACHINE PROCESSING ONLY.
           HUMANS SHOULD READ THE "Annotated DTD", AVAILABLE IN PostScript
           FORM VIA THE FTP SERVER (pub/nv/dtd/rainbow/rbow2-x.ps)
  -->


<!-- NOTE: THIS DTD IS NOT MEANT FOR HUMAN CONSUMPTION.
           THIS IS FOR MACHINE PROCESSING ONLY.
           HUMANS SHOULD READ THE "Annotated DTD", AVAILABLE IN PostScript
           FORM VIA THE FTP SERVER (pub/nv/dtd/rainbow/rbow2-x.ps)
  -->


<!ELEMENT rainbow  - - (FILEINFO?,STYINFO,DOC)>
<!ELEMENT fileinfo - O EMPTY>
<!ATTLIST fileinfo     origin   CDATA #IMPLIED
                       dtdver   CDATA #REQUIRED  -- Rev. number of Rainbow DTD
                                                    used for this instance -->
<!ENTITY % boolean "NUMBER"  -- 1 means yes, 0 means no -->
<!ENTITY % plf-att -- Paragraph Level Formatting --
"left-indent CDATA #IMPLIED
       -- measured in points; absolute number; do not use += notation --
 right-indent CDATA #IMPLIED
       -- measured in points; absolute number; do not use += notation --
 first-indent CDATA #IMPLIED
       -- same as in DynaText: offset from the left-indentation --
 justification (LeftJust|CenterJust|RightJust|FullJust|InJust|OutJust) #IMPLIED
       -- FullJust means both left and right justification
          InJust/OutJust means justify towards binding/perimeter --
 space-before CDATA #IMPLIED
 space-after CDATA #IMPLIED
       -- both of the above are as in DT: measured in pts --
 keep-with-next %boolean  #IMPLIED
 keep-with-prev %boolean  #IMPLIED
       -- keep with (next/prev) paragraph --
 tab-stops CDATA #IMPLIED
       -- space-separated list of tabstop specifiers
          each specifier must be of one of the following forms:
                   num                 left-aligned tabstop
                   >num                right-aligned tabstop
                   |num                center-aligned tabstop
                   C.num               US-decimal-point-aligned tabstop
                   C,num               Euro-decimal-point-aligned tabstop, etc.
          The 'num' is measured in points from the left margin --
 keep-together %boolean; #IMPLIED
       -- does author demand that the paragraph not cross page boundaries? --
 pg-brk-before %boolean; #IMPLIED       -- page-break before --
 col-brk-before %boolean; #IMPLIED      -- column-break before --
 border NUMBER #IMPLIED
       -- value is sum of the appropriate members of this list:
                 1 for top
                 2 for right
                 4 for bottom
                 8 for left   --
">
<!ENTITY % clf-att -- Character Level Formatting --
"charset CDATA #IMPLIED
       -- standard values for this attribute will be announced later --
 font-family CDATA #IMPLIED
 font-size CDATA #IMPLIED
 font-weight (Medium|Bold) #IMPLIED
 font-slant (Roman|Ital)   #IMPLIED    -- Ital for both italic and oblique --
 line-spacing CDATA #IMPLIED
       -- same as in DT: distance between baselines --
 score-location (Under|Over|Through) #IMPLIED
 score-type (Single|Double|Dotted) #IMPLIED
       -- score-type is ignored if score-location is not set --
 vertical-offset CDATA #IMPLIED
       -- as in DT: offset from the baseline, in points, - for sub, + for sup
--
 foreground CDATA #IMPLIED
 background CDATA #IMPLIED
       -- If the generator can do so, it must specify color as a RGB
               hexadecimal numbers in this format:  #rrggbb
          If the generator is unable to do so, it can use an arbitrary
               representation (e.g. name, index number).
          Note that if the latter representation is used, it will not
               be possible for the Rainbow consumer to reproduce colors
               in its rendering facilities. --
       -- Note: if the text is not in a special color, don't set
                the foreground attribute. --
       -- Note: if the text is not on a special background, don't set
                the background attribute. --
       -- Example: use #888888 for background in the typical case of shaded
                   background for black-on-white printing --
 lowercase-display (SmallCaps|FullCaps)  #IMPLIED
       -- Note that this specifies how lowercase data is displayed;
          this does not describe the data itself. --
 outline %boolean; #IMPLIED
       -- Is each letter being displayed as a hollow outline? --
 change-bar (BarLeft|BarRight|BarIn|BarOut) #IMPLIED
 hidden %boolean; #IMPLIED
">
<!ENTITY % com-att -- Common attributes that are not style dependent --
"arch-type CDATA #IMPLIED
       --
          recognized values:
            TOC - semantic of paragraph is 'table of content' element
                - arch-type value is the level number, starting at 1
                  for the book title, 0 means that the level number
                  cannot be determined
       --
 arch-type-info CDATA #IMPLIED
">
<!ELEMENT styinfo  - - (PARATYPE|CLFTYPE)+>
<!ELEMENT paratype - O EMPTY>
<!ATTLIST paratype     name     CDATA #REQUIRED
                       %plf-att; %clf-att; %com-att;>
<!ELEMENT clftype - O EMPTY>
<!ATTLIST clftype     name     CDATA #REQUIRED
                      %clf-att; %com-att;>
<!ELEMENT doc      - - ( HEAD?,
                        (((ANCHOR|PARA|ILLUS|TABLE|SYSOBJ)+,
                          STRUCLVL*)
                         |(STRUCLVL+ ) ) )
                       -- inclusion exceptions --
                       +(WPLOC|IDXTERM)          >
<!ELEMENT struclvl - -
(SYSATTRS?,HEAD,(ANCHOR|PARA|ILLUS|TABLE|SYSOBJ)*,STRUCLVL*)>
<!ELEMENT head     - - (SYSATTRS?,(ANCHOR|PARA)+)>
<!ATTLIST (struclvl|head)
             id CDATA #IMPLIED>
<!ELEMENT para  - O (SYSATTRS?,PARACONT)>
<!ATTLIST para
                       paratype CDATA    #REQUIRED
                       %plf-att; %clf-att; %com-att;
      -- If the para is a child of a head, the ID attribute should go
         on the head, not the para --
                       id       CDATA    #IMPLIED
      -- remaining attrs are set only if this element
         represents a "continuation" of a para in orig WP doc --
                       continue %boolean #IMPLIED
                       preced-hard-returns NUMBER #IMPLIED >
<!ENTITY % par-cont
         "#PCDATA|SYSOBJ|ANCHOR|XREF|AUTOGEN|GRAPHIC|GRAPHGRP|EQN|NOTE|TAB">
<!ELEMENT paracont - O
          (%par-cont;|NAMEDCLF|CLF)+ >


<!ENTITY % rbwents  PUBLIC
   "-//EBT//ENTITIES Concatenated Rainbow 2.5//EN">   %rbwents;


<!ELEMENT tab - O EMPTY>
<!ELEMENT illus    - - (SYSATTRS?,(GRAPHIC|GRAPHGRP|EQN))>
<!ATTLIST illus        %plf-att; %com-att;
                       id       CDATA #IMPLIED>
<!ELEMENT graphgrp - - (GRAPHIC+)>
<!ELEMENT graphic  - - (SYSATTRS?)>
<!ATTLIST graphic      filename ENTITY #REQUIRED>
<!ELEMENT eqn      - - (SYSATTRS?,EQNCONT?)>
<!ELEMENT eqncont   - - RCDATA>
<!ATTLIST eqn          format NOTATION (rtf|ieq|feq) #IMPLIED
                       filename ENTITY #IMPLIED>
<!ELEMENT namedclf  - -  (SYSATTRS?,(%par-cont;|CLF|NAMEDCLF)+) >
<!ELEMENT clf       - -  (SYSATTRS?,(%par-cont;)+ )>
<!ATTLIST namedclf     clftype CDATA #REQUIRED
                       %clf-att; %com-att;
                       ID CDATA #IMPLIED
      -- remaining attrs are set only if this element
         represents a "continuation" of a para in orig WP doc --
                       continue %boolean #IMPLIED
                       preced-hard-returns NUMBER #IMPLIED >
<!ATTLIST clf          %clf-att; %com-att;
                       ID CDATA #IMPLIED
      -- proforma has value 1 if this clf has no (other) attributes --
                       proforma CDATA #IMPLIED >
<!ELEMENT note - - (SYSATTRS?,(ANCHOR|PARA|ILLUS|TABLE|SYSOBJ)*)    -(NOTE) >

<!ELEMENT idxterm   - - (#PCDATA|CLF|NAMEDCLF)+           -(IDXTERM) >
<!ATTLIST idxterm       term1 CDATA #IMPLIED
                        term2 CDATA #IMPLIED
                        term3 CDATA #IMPLIED
                        see CDATA #IMPLIED
                        see-also CDATA #IMPLIED>

<!ELEMENT anchor    - - (#PCDATA|CLF|NAMEDCLF)+>
<!ATTLIST anchor        ID CDATA #REQUIRED>
<!ELEMENT xref      - - (#PCDATA|CLF|NAMEDCLF|TAB)+>
<!ATTLIST xref          REFID CDATA #REQUIRED
                        TYPE (xref-textcopy|xref-pagenum|xref-link) #REQUIRED>
<!ELEMENT autogen      - - (SYSATTRS?,(#PCDATA|TAB|NAMEDCLF|CLF)*)>
<!ELEMENT wploc      - O EMPTY>
<!ATTLIST wploc      wp-addr    CDATA #REQUIRED
                     human-addr  CDATA #IMPLIED>
<!ELEMENT sysobj   - - (datafld|textfld)+>
<!ATTLIST sysobj       type CDATA #REQUIRED
                       id       CDATA #IMPLIED>
<!ELEMENT datafld  - - RCDATA>
<!ELEMENT textfld  - - (#PCDATA|CLF|NAMEDCLF)+>
<!ATTLIST (datafld|textfld)   type CDATA #REQUIRED>
<!ELEMENT sysattrs   - - (sysattr*)>
<!ELEMENT sysattr    - - RCDATA>
<!ATTLIST sysattr        attrname CDATA #REQUIRED>
<!ELEMENT table    - - (sysattrs?,tgroup+)>
<!ATTLIST table        %plf-att; %com-att;
                       id CDATA #IMPLIED>
<!ELEMENT tgroup   - - (colspec*,spanspec*,thead?,tfoot?,tbody?)>
<!ATTLIST tgroup       cols NUMBER #REQUIRED>
<!ELEMENT colspec  - O EMPTY>
<!ATTLIST colspec      colnum NUMBER #IMPLIED
                       colname NMTOKEN #IMPLIED
                       align (left|right|center) #IMPLIED
                       colsep %boolean; #IMPLIED
                       rowsep %boolean; #IMPLIED
                       colwidth CDATA #IMPLIED>
<!ELEMENT spanspec - O EMPTY>
<!ATTLIST spanspec     namest NMTOKEN #REQUIRED
                       nameend NMTOKEN #REQUIRED
                       spanname NMTOKEN #REQUIRED
                       colsep %boolean; #IMPLIED
                       rowsep %boolean; #IMPLIED
                       align (left|right|center) #IMPLIED>
<!ELEMENT (thead|tfoot|tbody)
                   - - (row+)>
<!ELEMENT row      - - (sysattrs?,entry*)>
<!ATTLIST row          rowsep %boolean; #IMPLIED >
<!ELEMENT entry    - - (sysattrs?,(ANCHOR|PARA|ILLUS|SYSOBJ)*)>
<!ATTLIST entry        colname NMTOKEN #IMPLIED
                       spanname NMTOKEN #IMPLIED
                       colsep %boolean; #IMPLIED
                       rowsep %boolean; #IMPLIED
                       morerows NUMBER '0'
                       valign (top|middle|bottom) 'top'
                       align (left|right|center) #IMPLIED>

<!NOTATION cgm      PUBLIC "ISO 8632-4:1987//NOTATION Information
                           processing systems - Computer Graphics -
                           Metafile for the storage and transfer of
                           picture description information -
                           Part 4: Clear text encoding//EN"        >
<!NOTATION igs      PUBLIC "NBS IR 88-3813//NOTATION Initial
                           Graphics Exchange Specification (IGES)
                           //EN"                                   >
<!NOTATION fax      PUBLIC "CCITT VII.3 T 6//NOTATION Blue book -
                           Terminal equipment and protocols for
                           telematic services - Facsimile encoding
                           schemes and coding control functions for
                           group 4 facsimile apparatus//EN"        >

<!NOTATION eps      PUBLIC "+//ISBN 0-201-18127-4::Adobe//NOTATION
                           PostScript Language Reference Manual//EN">
<!NOTATION tif      PUBLIC "-//Aldus//NOTATION
                           Tagged Image File Format//EN">
<!NOTATION g4       PUBLIC "-//Aldus//NOTATION
                           Group 4 Compression//EN">
<!NOTATION wmf      PUBLIC "-//Microsoft Corporation//NOTATION
                           Windows Metafile//EN">
<!NOTATION pmm      PUBLIC "+//ISBN 0-933186::IBM//NOTATION
                           OS/2 Metafile Format//EN">
<!NOTATION ilg      PUBLIC "-//Interleaf Inc//NOTATION
                           ASCII Format for Graphic Objects//EN">
<!NOTATION fri      PUBLIC "-//Frame Technology Corporation//NOTATION
                             Frame Image//EN">
<!NOTATION frg      PUBLIC "-//Frame Technology Corporation//NOTATION
                           MIF Graphic Objects//EN">
<!NOTATION bmp      PUBLIC "-//Microsoft Corporation//NOTATION
                           Windows Bit Map//EN">
<!NOTATION dib      PUBLIC "-//Microsoft Corporation//NOTATION
                           Device Independent Bit Map//EN">
<!NOTATION wpg      PUBLIC "-//WordPerfect Corporation//NOTATION
                           WordPerfect Graphic//EN">
<!NOTATION pcx      PUBLIC "-//Corel//NOTATION
                           Corel PhotoPaint Bitmap//EN">
<!NOTATION pct      PUBLIC "-//Apple//NOTATION
                           Mac Pict//EN">
<!NOTATION rtf      PUBLIC "-//Microsoft Corporation//NOTATION
                           Rich Text Format//EN">
<!NOTATION ieq      PUBLIC "-//Interleaf Inc//NOTATION
                           ASCII Format for Equation Objects//EN">
<!NOTATION feq      PUBLIC "-//Frame Technology Corporation//NOTATION
                           MIF Equation Objects//EN">


<!NOTATION unknown        SYSTEM "">
<!NOTATION unk            SYSTEM ""> <!-- unk is here for backward compat -->

