<!--

Title:      DPP Book Document DTD
Version:    1.0 (preliminary draft)
Date:       15 November 2006

Contributors:

     Jon Noring (editor)


Early Draft Notice:

     This DTD is a very preliminary release. As such it will
     undoubtedly change in many ways, including, but not limited to,
     renaming of elements and attributes, addition and removal of
     elements and attributes, and changing of element content models,

-->


<!ENTITY % Title.class
     "(superchaptitle |
       chaptitle |
       sec1title |
       sec2title |
       sec3title |
       sec4title), subtitle?">

<!ENTITY % Block.class
     "(%Title.class;, epigraph?) |
      (p, themebreak?) |
       quote |
       list |
       stanza |
       imageblock">

<!ENTITY % Inline.class
     "code | distinct | foreign | ling-emph | ling-emph-strong |
      noteref | sub | sup | title | word-as-word">

<!ENTITY % Common.attrib
     "id            ID                       #IMPLIED
      lang          NMTOKEN                  #IMPLIED
      comment       CDATA                    #IMPLIED">

<!ELEMENT dppbook          (epigraph?,
                           (%Block.class;)*,
                           note*)>
<!ATTLIST dppbook
      id            ID                       #IMPLIED
      lang          NMTOKEN                  #REQUIRED
      comment       CDATA                    #IMPLIED>

<!ELEMENT epigraph         (p | quote | stanza)+>
<!ATTLIST epigraph         %Common.attrib;>

<!ELEMENT quote            (p | quote | list | stanza)+>
<!ATTLIST quote            %Common.attrib;>

<!ELEMENT list             (listitem)+>
<!ATTLIST list
      %Common.attrib;
      ordered       (yes|no)                 'no'>

<!ELEMENT listitem         (p | quote | list | stanza)+>
<!ATTLIST listitem         %Common.attrib;>

<!ELEMENT stanza           (verseline)+>
<!ATTLIST stanza           %Common.attrib;>

<!ELEMENT note             (notemark?, (p | quote | list | stanza)+)>
<!ATTLIST note             %Common.attrib;>

<!ELEMENT imageblock       (image, caption?)>
<!ATTLIST imageblock
      id            ID                       #REQUIRED
      lang          NMTOKEN                  #IMPLIED
      comment       CDATA                    #IMPLIED
      float         (left|right|none)        'none'
      loiitem       (yes|no)                 'yes'
      loititle      CDATA                    #REQUIRED>

<!ELEMENT caption          (p | quote | list | stanza)+>
<!ATTLIST caption          %Common.attrib;>

<!ELEMENT p                (#PCDATA | %Inline.class;)*>
<!ATTLIST p                %Common.attrib;>

<!ELEMENT superchaptitle   (#PCDATA | %Inline.class;)*>
<!ATTLIST superchaptitle
      id            ID                       #REQUIRED
      lang          NMTOKEN                  #IMPLIED
      comment       CDATA                    #IMPLIED
      tocitem       (yes|no)                 'yes'
      toctitle      CDATA                    #IMPLIED>

<!ELEMENT chaptitle        (#PCDATA | %Inline.class;)*>
<!ATTLIST chaptitle
      id            ID                       #REQUIRED
      lang          NMTOKEN                  #IMPLIED
      comment       CDATA                    #IMPLIED
      tocitem       (yes|no)                 'yes'
      toctitle      CDATA                    #IMPLIED>

<!ELEMENT sec1title        (#PCDATA | %Inline.class;)*>
<!ATTLIST sec1title
      id            ID                       #REQUIRED
      lang          NMTOKEN                  #IMPLIED
      comment       CDATA                    #IMPLIED
      tocitem       (yes|no)                 'yes'
      toctitle      CDATA                    #IMPLIED>

<!ELEMENT sec2title        (#PCDATA | %Inline.class;)*>
<!ATTLIST sec2title
      id            ID                       #REQUIRED
      lang          NMTOKEN                  #IMPLIED
      comment       CDATA                    #IMPLIED
      tocitem       (yes|no)                 'yes'
      toctitle      CDATA                    #IMPLIED>

<!ELEMENT sec3title        (#PCDATA | %Inline.class;)*>
<!ATTLIST sec3title
      id            ID                       #REQUIRED
      lang          NMTOKEN                  #IMPLIED
      comment       CDATA                    #IMPLIED
      tocitem       (yes|no)                 'yes'
      toctitle      CDATA                    #IMPLIED>

<!ELEMENT sec4title        (#PCDATA | %Inline.class;)*>
<!ATTLIST sec4title
      id            ID                       #REQUIRED
      lang          NMTOKEN                  #IMPLIED
      comment       CDATA                    #IMPLIED
      tocitem       (yes|no)                 'yes'
      toctitle      CDATA                    #IMPLIED>

<!ELEMENT subtitle         (#PCDATA | %Inline.class;)*>
<!ATTLIST subtitle         %Common.attrib;>

<!ELEMENT verseline        (#PCDATA | %Inline.class;)*>
<!ATTLIST verseline
      %Common.attrib;
      indent        (0|1|2|3|4|5|6)          '0'>

<!ELEMENT notemark         (#PCDATA | %Inline.class;)*>
<!ATTLIST notemark         %Common.attrib;>

<!ELEMENT image            EMPTY>
<!ATTLIST image
      %Common.attrib;
      src                  CDATA                    #REQUIRED>

<!ELEMENT themebreak       EMPTY>
<!ATTLIST themebreak       %Common.attrib;>

<!ELEMENT ling-emph        (#PCDATA | %Inline.class;)*>
<!ATTLIST ling-emph        %Common.attrib;>

<!ELEMENT ling-emph-strong (#PCDATA | %Inline.class;)*>
<!ATTLIST ling-emph-strong %Common.attrib;>

<!ELEMENT title            (#PCDATA | %Inline.class;)*>
<!ATTLIST title            %Common.attrib;>

<!ELEMENT foreign          (#PCDATA | %Inline.class;)*>
<!ATTLIST foreign          %Common.attrib;>

<!ELEMENT distinct         (#PCDATA | %Inline.class;)*>
<!ATTLIST distinct         %Common.attrib;>

<!ELEMENT code             (#PCDATA | %Inline.class;)*>
<!ATTLIST code             %Common.attrib;>

<!ELEMENT word-as-word     (#PCDATA | %Inline.class;)*>
<!ATTLIST word-as-word     %Common.attrib;>

<!ELEMENT sup              (#PCDATA | %Inline.class;)*>
<!ATTLIST sup              %Common.attrib;>

<!ELEMENT sub              (#PCDATA | %Inline.class;)*>
<!ATTLIST sub              %Common.attrib;>

<!ELEMENT noteref          (#PCDATA | %Inline.class;)*>
<!ATTLIST noteref
      %Common.attrib;
      ref           CDATA                    #REQUIRED>


<!--
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       Portions (C) International Organization for
       Standardization 1986. Permission to copy in any
       form is granted for use with conforming SGML
       systems and applications as defined in ISO 8879,
       provided this notice is included in all copies.
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-->


<!ENTITY quot     "&#x0022;" >
<!ENTITY amp      "&#x0026;#x0026;" >
<!ENTITY apos     "&#x0027;" >
<!ENTITY lt       "&#x0026;#x003C;" >
<!ENTITY gt       "&#x003E;" >
<!ENTITY nbsp     "&#x00A0;" >
<!ENTITY iexcl    "&#x00A1;" >
<!ENTITY cent     "&#x00A2;" >
<!ENTITY pound    "&#x00A3;" >
<!ENTITY curren   "&#x00A4;" >
<!ENTITY yen      "&#x00A5;" >
<!ENTITY brvbar   "&#x00A6;" >
<!ENTITY sect     "&#x00A7;" >
<!ENTITY uml      "&#x00A8;" >
<!ENTITY copy     "&#x00A9;" >
<!ENTITY ordf     "&#x00AA;" >
<!ENTITY laquo    "&#x00AB;" >
<!ENTITY not      "&#x00AC;" >
<!ENTITY shy      "&#x00AD;" >
<!ENTITY reg      "&#x00AE;" >
<!ENTITY macr     "&#x00AF;" >
<!ENTITY deg      "&#x00B0;" >
<!ENTITY plusmn   "&#x00B1;" >
<!ENTITY sup2     "&#x00B2;" >
<!ENTITY sup3     "&#x00B3;" >
<!ENTITY acute    "&#x00B4;" >
<!ENTITY micro    "&#x00B5;" >
<!ENTITY para     "&#x00B6;" >
<!ENTITY middot   "&#x00B7;" >
<!ENTITY cedil    "&#x00B8;" >
<!ENTITY sup1     "&#x00B9;" >
<!ENTITY ordm     "&#x00BA;" >
<!ENTITY raquo    "&#x00BB;" >
<!ENTITY frac14   "&#x00BC;" >
<!ENTITY frac12   "&#x00BD;" >
<!ENTITY frac34   "&#x00BE;" >
<!ENTITY iquest   "&#x00BF;" >
<!ENTITY Agrave   "&#x00C0;" >
<!ENTITY Aacute   "&#x00C1;" >
<!ENTITY Acirc    "&#x00C2;" >
<!ENTITY Atilde   "&#x00C3;" >
<!ENTITY Auml     "&#x00C4;" >
<!ENTITY Aring    "&#x00C5;" >
<!ENTITY AElig    "&#x00C6;" >
<!ENTITY Ccedil   "&#x00C7;" >
<!ENTITY Egrave   "&#x00C8;" >
<!ENTITY Eacute   "&#x00C9;" >
<!ENTITY Ecirc    "&#x00CA;" >
<!ENTITY Euml     "&#x00CB;" >
<!ENTITY Igrave   "&#x00CC;" >
<!ENTITY Iacute   "&#x00CD;" >
<!ENTITY Icirc    "&#x00CE;" >
<!ENTITY Iuml     "&#x00CF;" >
<!ENTITY ETH      "&#x00D0;" >
<!ENTITY Ntilde   "&#x00D1;" >
<!ENTITY Ograve   "&#x00D2;" >
<!ENTITY Oacute   "&#x00D3;" >
<!ENTITY Ocirc    "&#x00D4;" >
<!ENTITY Otilde   "&#x00D5;" >
<!ENTITY Ouml     "&#x00D6;" >
<!ENTITY times    "&#x00D7;" >
<!ENTITY Oslash   "&#x00D8;" >
<!ENTITY Ugrave   "&#x00D9;" >
<!ENTITY Uacute   "&#x00DA;" >
<!ENTITY Ucirc    "&#x00DB;" >
<!ENTITY Uuml     "&#x00DC;" >
<!ENTITY Yacute   "&#x00DD;" >
<!ENTITY THORN    "&#x00DE;" >
<!ENTITY szlig    "&#x00DF;" >
<!ENTITY agrave   "&#x00E0;" >
<!ENTITY aacute   "&#x00E1;" >
<!ENTITY acirc    "&#x00E2;" >
<!ENTITY atilde   "&#x00E3;" >
<!ENTITY auml     "&#x00E4;" >
<!ENTITY aring    "&#x00E5;" >
<!ENTITY aelig    "&#x00E6;" >
<!ENTITY ccedil   "&#x00E7;" >
<!ENTITY egrave   "&#x00E8;" >
<!ENTITY eacute   "&#x00E9;" >
<!ENTITY ecirc    "&#x00EA;" >
<!ENTITY euml     "&#x00EB;" >
<!ENTITY igrave   "&#x00EC;" >
<!ENTITY iacute   "&#x00ED;" >
<!ENTITY icirc    "&#x00EE;" >
<!ENTITY iuml     "&#x00EF;" >
<!ENTITY eth      "&#x00F0;" >
<!ENTITY ntilde   "&#x00F1;" >
<!ENTITY ograve   "&#x00F2;" >
<!ENTITY oacute   "&#x00F3;" >
<!ENTITY ocirc    "&#x00F4;" >
<!ENTITY otilde   "&#x00F5;" >
<!ENTITY ouml     "&#x00F6;" >
<!ENTITY divide   "&#x00F7;" >
<!ENTITY oslash   "&#x00F8;" >
<!ENTITY ugrave   "&#x00F9;" >
<!ENTITY uacute   "&#x00FA;" >
<!ENTITY ucirc    "&#x00FB;" >
<!ENTITY uuml     "&#x00FC;" >
<!ENTITY yacute   "&#x00FD;" >
<!ENTITY thorn    "&#x00FE;" >
<!ENTITY yuml     "&#x00FF;" >
<!ENTITY OElig    "&#x0152;" >
<!ENTITY oelig    "&#x0153;" >
<!ENTITY Scaron   "&#x0160;" >
<!ENTITY scaron   "&#x0161;" >
<!ENTITY Yuml     "&#x0178;" >
<!ENTITY fnof     "&#x0192;" >
<!ENTITY circ     "&#x02C6;" >
<!ENTITY tilde    "&#x02DC;" >
<!ENTITY Alpha    "&#x0391;" >
<!ENTITY Beta     "&#x0392;" >
<!ENTITY Gamma    "&#x0393;" >
<!ENTITY Delta    "&#x0394;" >
<!ENTITY Epsilon  "&#x0395;" >
<!ENTITY Zeta     "&#x0396;" >
<!ENTITY Eta      "&#x0397;" >
<!ENTITY Theta    "&#x0398;" >
<!ENTITY Iota     "&#x0399;" >
<!ENTITY Kappa    "&#x039A;" >
<!ENTITY Lambda   "&#x039B;" >
<!ENTITY Mu       "&#x039C;" >
<!ENTITY Nu       "&#x039D;" >
<!ENTITY Xi       "&#x039E;" >
<!ENTITY Omicron  "&#x039F;" >
<!ENTITY Pi       "&#x03A0;" >
<!ENTITY Rho      "&#x03A1;" >
<!ENTITY Sigma    "&#x03A3;" >
<!ENTITY Tau      "&#x03A4;" >
<!ENTITY Upsilon  "&#x03A5;" >
<!ENTITY Phi      "&#x03A6;" >
<!ENTITY Chi      "&#x03A7;" >
<!ENTITY Psi      "&#x03A8;" >
<!ENTITY Omega    "&#x03A9;" >
<!ENTITY alpha    "&#x03B1;" >
<!ENTITY beta     "&#x03B2;" >
<!ENTITY gamma    "&#x03B3;" >
<!ENTITY delta    "&#x03B4;" >
<!ENTITY epsilon  "&#x03B5;" >
<!ENTITY zeta     "&#x03B6;" >
<!ENTITY eta      "&#x03B7;" >
<!ENTITY theta    "&#x03B8;" >
<!ENTITY iota     "&#x03B9;" >
<!ENTITY kappa    "&#x03BA;" >
<!ENTITY lambda   "&#x03BB;" >
<!ENTITY mu       "&#x03BC;" >
<!ENTITY nu       "&#x03BD;" >
<!ENTITY xi       "&#x03BE;" >
<!ENTITY omicron  "&#x03BF;" >
<!ENTITY pi       "&#x03C0;" >
<!ENTITY rho      "&#x03C1;" >
<!ENTITY sigmaf   "&#x03C2;" >
<!ENTITY sigma    "&#x03C3;" >
<!ENTITY tau      "&#x03C4;" >
<!ENTITY upsilon  "&#x03C5;" >
<!ENTITY phi      "&#x03C6;" >
<!ENTITY chi      "&#x03C7;" >
<!ENTITY psi      "&#x03C8;" >
<!ENTITY omega    "&#x03C9;" >
<!ENTITY thetasym "&#x03D1;" >
<!ENTITY upsih    "&#x03D2;" >
<!ENTITY piv      "&#x03D6;" >
<!ENTITY ensp     "&#x2002;" >
<!ENTITY emsp     "&#x2003;" >
<!ENTITY thinsp   "&#x2009;" >
<!ENTITY zwnj     "&#x200C;" >
<!ENTITY zwj      "&#x200D;" >
<!ENTITY lrm      "&#x200E;" >
<!ENTITY rlm      "&#x200F;" >
<!ENTITY ndash    "&#x2013;" >
<!ENTITY mdash    "&#x2014;" >
<!ENTITY lsquo    "&#x2018;" >
<!ENTITY rsquo    "&#x2019;" >
<!ENTITY sbquo    "&#x201A;" >
<!ENTITY ldquo    "&#x201C;" >
<!ENTITY rdquo    "&#x201D;" >
<!ENTITY bdquo    "&#x201E;" >
<!ENTITY dagger   "&#x2020;" >
<!ENTITY Dagger   "&#x2021;" >
<!ENTITY bull     "&#x2022;" >
<!ENTITY hellip   "&#x2026;" >
<!ENTITY permil   "&#x2030;" >
<!ENTITY prime    "&#x2032;" >
<!ENTITY Prime    "&#x2033;" >
<!ENTITY lsaquo   "&#x2039;" >
<!ENTITY rsaquo   "&#x203A;" >
<!ENTITY oline    "&#x203E;" >
<!ENTITY frasl    "&#x2044;" >
<!ENTITY euro     "&#x20AC;" >
<!ENTITY image    "&#x2111;" >
<!ENTITY weierp   "&#x2118;" >
<!ENTITY real     "&#x211C;" >
<!ENTITY trade    "&#x2122;" >
<!ENTITY alefsym  "&#x2135;" >
<!ENTITY larr     "&#x2190;" >
<!ENTITY uarr     "&#x2191;" >
<!ENTITY rarr     "&#x2192;" >
<!ENTITY darr     "&#x2193;" >
<!ENTITY harr     "&#x2194;" >
<!ENTITY crarr    "&#x21B5;" >
<!ENTITY lArr     "&#x21D0;" >
<!ENTITY uArr     "&#x21D1;" >
<!ENTITY rArr     "&#x21D2;" >
<!ENTITY dArr     "&#x21D3;" >
<!ENTITY hArr     "&#x21D4;" >
<!ENTITY forall   "&#x2200;" >
<!ENTITY part     "&#x2202;" >
<!ENTITY exist    "&#x2203;" >
<!ENTITY empty    "&#x2205;" >
<!ENTITY nabla    "&#x2207;" >
<!ENTITY isin     "&#x2208;" >
<!ENTITY notin    "&#x2209;" >
<!ENTITY ni       "&#x220B;" >
<!ENTITY prod     "&#x220F;" >
<!ENTITY sum      "&#x2211;" >
<!ENTITY minus    "&#x2212;" >
<!ENTITY lowast   "&#x2217;" >
<!ENTITY radic    "&#x221A;" >
<!ENTITY prop     "&#x221D;" >
<!ENTITY infin    "&#x221E;" >
<!ENTITY ang      "&#x2220;" >
<!ENTITY and      "&#x2227;" >
<!ENTITY or       "&#x2228;" >
<!ENTITY cap      "&#x2229;" >
<!ENTITY cup      "&#x222A;" >
<!ENTITY int      "&#x222B;" >
<!ENTITY there4   "&#x2234;" >
<!ENTITY sim      "&#x223C;" >
<!ENTITY cong     "&#x2245;" >
<!ENTITY asymp    "&#x2248;" >
<!ENTITY ne       "&#x2260;" >
<!ENTITY equiv    "&#x2261;" >
<!ENTITY le       "&#x2264;" >
<!ENTITY ge       "&#x2265;" >
<!ENTITY sub      "&#x2282;" >
<!ENTITY sup      "&#x2283;" >
<!ENTITY nsub     "&#x2284;" >
<!ENTITY sube     "&#x2286;" >
<!ENTITY supe     "&#x2287;" >
<!ENTITY oplus    "&#x2295;" >
<!ENTITY otimes   "&#x2297;" >
<!ENTITY perp     "&#x22A5;" >
<!ENTITY sdot     "&#x22C5;" >
<!ENTITY lceil    "&#x2308;" >
<!ENTITY rceil    "&#x2309;" >
<!ENTITY lfloor   "&#x230A;" >
<!ENTITY rfloor   "&#x230B;" >
<!ENTITY lang     "&#x2329;" >
<!ENTITY rang     "&#x232A;" >
<!ENTITY loz      "&#x25CA;" >
<!ENTITY spades   "&#x2660;" >
<!ENTITY clubs    "&#x2663;" >
<!ENTITY hearts   "&#x2665;" >
<!ENTITY diams    "&#x2666;" >
