Added advanced table capabilities and the "line" element.
[project-aon.git] / gamebook.dtd
1 <!-- ============================================================= -->
2 <!--             Gamebook Document Type Definition v0.12           -->
3 <!-- ============================================================= -->
4 <!--
5
6 This DTD was designed around XML 1.0.
7
8 This gamebook DTD is aimed primarily at the books under development by 
9 Project Aon (http://www.projectaon.org/). Future versions may be of 
10 more general utility.
11
12 $Id$
13
14 Change Log:
15
16 19 December 2006 (version 0.12.1)
17  * Upgraded the table model to included "caption", "colgroup", "thead",
18    "tfoot", and "tbdoy" elements and the cell scoping attributes
19    "rowspan", "colspan", "axis", and "scope".
20  * Deprecated the "br" element in favor of the "line" element.
21
22 25 March 2006 (version 0.12.0)
23  * Added "illref", "illustrations" and "illgroup". Still backwards
24    compatible.
25
26 26 December 2005 (version 0.11.4)
27  * Added link.attributes and the optional "series" attribute to
28    "bookref", and fleshed out the "bookref" and "footref"
29    descriptions.
30
31 5 December 2005 (version 0.11.3)
32  * Corrected ATTLISTs of character elements
33  * Added "ch.apos", "ch.frac116", and "ch.plus" elements
34
35 9 April 2005 (version 0.11.2)
36  * Added the following inline elements: "bookref", "footref".
37  * Added the character elements to replace the use of character
38    entities (except in attributes). These allow a processor (e.g.
39    a XSL transformation) to decide how characters should be
40    represented, not this DTD.
41
42 18 April 2003 (version 0.11.1)
43  * Added the following inline elements: "onomatopoeia", "spell",
44    "item".
45
46 27 January 2003 (version 0.11.0)
47  * Moved the optional "footnotes" element between the "meta" and 
48    "data" elements.
49
50 10 January 2003 (version 0.10.4)
51  * Removed the "inline.content" entity from the declaration of the
52    contents of the "blockquote" element. This will break some existing
53    documents.
54
55 7 January 2003 (version 0.10.3)
56  * Made the "src", "width", and "height" attributes of the "instance"
57    element IMPLIED.
58
59 4 January 2003 (version 0.10.2)
60  * Moved the specialized character entity definitions into module
61    files.
62 x
63 5 October 2002 (version 0.10.1)
64  * Added the "lellips" and "minus" entities and changed the definition
65    of the "emdash" entity.
66
67 5 September 2002 (version 0.10.0)
68  * Added the "quote" element.
69
70 31 August 2002 (version 0.9.1)
71  * Added the "xml:lang" attribute to the "core.attributes" entity.
72    Although this could be used for most elements, it is primarily
73    aimed at the "foreign" element.
74
75 6 July 2002 (version 0.9)
76  * Replaced the "caption" element and the "illustrator" attribute with
77    the use of the "meta" element.
78  * Renamed the "illustration-instance" element to simply "instance".
79  * Removed the "character-attribute" element.
80  * Added the "typ" element for typographical markup.
81  * Removed the "shortname" attribute.
82
83 1 June 2002 (version 0.8.3)
84  * Removed the "marker" attribute from the "footnote" element.
85
86 29 April 2002 (vesion 0.8.2)
87  * Changed the content of the "enemy" element from "#PCDATA" to 
88    "%inline.content;".
89
90 4 April 2002 (version 0.8.1)
91  * Added the "thinspace" entity
92
93 3 April 2002 (version 0.8.0)
94  * Added the "thought" element.
95  * Added the "foreign" element.
96
97 15 March 2002 (version 0.7.0)
98  * Changed the name of the "illustration-set" element to "illustration"
99    and changed the name of the "illustration" element to
100    "illustration-instance".
101  * Made many minor changes to bring the DTD up to current practice.
102
103 11 May 2001 (version 0.6.0)
104  * Removed the "publication-date" element.
105
106 5 May 2001 (version 0.5.0)
107  * Added facilities for transformation to LaTeX - mainly appropriate 
108    character escapes.
109  * Added the "marker" attribute to the "footnote" element.
110
111 1 May 2001 (version 0.4.0)
112
113  * Added the "link" element to the set of allowable "meta" elements.
114    Although not a Dublin Core meta-data element, it's functionality
115    adds a lot to the document.
116
117 30 April 2001 (version 0.3.0)
118
119  * Changed the basic orgranization of the sections by allowing them to
120    have their own meta section instead of a "section-title" element.
121  * Changed the name of the "section-data" element to simply "data".
122
123 17 April 2001 (version 0.2.0)
124
125  * Changed some of the block and inline elements in order to make them 
126    more useful.
127
128 14 April 2001 (version 0.1.0)
129
130  * First revision
131                                                                    -->
132 <!-- ============================================================= -->
133
134 <!-- ============================================================= -->
135 <!--                      Table of Contents                        -->
136 <!-- ============================================================= -->
137
138 <!--
139
140   I. Entities
141      A. General Entities
142      B. Character Entities
143  II. Hierarchical Elements
144 III. Block Elements
145  IV. Inline Elements
146   V. Character Elements
147
148  VI. Appendices
149      A. Valid Document Example
150
151 -->
152
153 <!-- ============================================================= -->
154 <!--                           Entities                            -->
155 <!-- ============================================================= -->
156
157 <!-- ::::::::::::::::::::: General Entities :::::::::::::::::::::: -->
158
159 <!ENTITY % character.content "ch.apos | ch.nbsp | ch.iexcl | ch.cent | ch.pound | ch.curren | ch.yen | ch.brvbar | ch.sect | ch.uml | ch.copy | ch.ordf | ch.laquo | ch.not | ch.shy | ch.reg | ch.macr | ch.deg | ch.plusmn | ch.sup2 | ch.sup3 | ch.acute | ch.micro | ch.para | ch.middot | ch.cedil | ch.sup1 | ch.ordm | ch.raquo | ch.frac14 | ch.frac12 | ch.frac34 | ch.iquest | ch.Agrave | ch.Aacute | ch.Acirc | ch.Atilde | ch.Auml | ch.Aring | ch.AElig | ch.Ccedil | ch.Egrave | ch.Eacute | ch.Ecirc | ch.Euml | ch.Igrave | ch.Iacute | ch.Icirc | ch.Iuml | ch.ETH | ch.Ntilde | ch.Ograve | ch.Oacute | ch.Ocirc | ch.Otilde | ch.Ouml | ch.times | ch.Oslash | ch.Ugrave | ch.Uacute | ch.Ucirc | ch.Uuml | ch.Yacute | ch.THORN | ch.szlig | ch.agrave | ch.aacute | ch.acirc | ch.atilde | ch.auml | ch.aring | ch.aelig | ch.ccedil | ch.egrave | ch.eacute | ch.ecirc | ch.euml | ch.igrave | ch.iacute | ch.icirc | ch.iuml | ch.eth | ch.ntilde | ch.ograve | ch.oacute | ch.ocirc | ch.otilde | ch.ouml | ch.divide | ch.oslash | ch.ugrave | ch.uacute | ch.ucirc | ch.uuml | ch.yacute | ch.thorn | ch.yuml | ch.ampersand | ch.lsquot | ch.rsquot | ch.ldquot | ch.rdquot | ch.minus | ch.endash | ch.emdash | ch.ellips | ch.lellips | ch.blankline | ch.percent | ch.thinspace | ch.frac116 | ch.plus">
160
161 <!ENTITY % inline.content "#PCDATA | a | bookref | footref | em | strong | thought | foreign | quote | cite | code | br | typ | onomatopoeia | spell | item | %character.content;">
162
163 <!ENTITY % block.content "p | ul | ol | dl | table | blockquote | illustration | combat | choice | signpost | hr | illref">
164
165 <!ENTITY % core.attributes "
166          class CDATA #IMPLIED
167          xml:lang CDATA #IMPLIED
168 ">
169
170 <!ENTITY % link.attributes "
171          idref IDREF #IMPLIED
172          id    ID    #IMPLIED
173 ">
174
175 <!ENTITY % cell.align.attributes "
176          align  ( left | center | right | justify | char ) #IMPLIED
177          char   CDATA                                      #IMPLIED
178          valign ( top | middle | bottom | baseline )       #IMPLIED
179 ">
180
181 <!ENTITY % cell.scope.attributes "
182          rowspan CDATA                               #IMPLIED
183          colspan CDATA                               #IMPLIED
184          axis    CDATA                               #IMPLIED
185          scope   ( row | col | rowgroup | colgroup ) #IMPLIED
186 ">
187
188 <!-- :::::::::::::::::::: Character Entities ::::::::::::::::::::: -->
189
190 <!ENTITY lt     "&#38;#60;"><!-- left angle bracket -->
191 <!ENTITY gt     "&#62;">    <!-- right angle bracket -->
192 <!ENTITY amp    "&#38;#38;"><!-- ampersand -->
193 <!ENTITY apos   "&#39;">    <!-- apostrophe = single quotation mark -->
194 <!ENTITY quot   "&#34;">    <!-- double quotation mark -->
195
196 <!--
197
198 It is the responsibility of the document to define relevant character 
199 entities in its internal subset. See also Character Elements below.
200
201 -->
202
203 <!-- ============================================================= -->
204 <!--                     Hierarchical Elements                     -->
205 <!-- ============================================================= -->
206
207
208 <!ELEMENT gamebook ( meta, section+ )>
209 <!ATTLIST gamebook
210           version  CDATA #REQUIRED
211           xml:lang CDATA #IMPLIED
212 >
213 <!--
214
215 The "version" attribute represents the revision number of the gamebook 
216 DTD. This allows gamebook processors to make decisions about the 
217 suitability of the data.
218
219 The "xml:lang" attribute specifies the primary language of the 
220 document. The data should conform to the IETF RFC1766.
221
222  http://www.ietf.org/rfc/rfc1766.txt
223
224 Examples:
225
226  <gamebook version="0.12" xml:lang="en-UK">
227   <meta . . .> . . . </meta>
228   <section . . .> . . . </section>
229   . . .
230  </gamebook>
231
232  <gamebook version="0.12" > . . . </gamebook>
233
234 -->
235
236 <!-- :::::::::::::::::::::::: meta Element ::::::::::::::::::::::: -->
237 <!--
238
239 The children of the meta element are designed to directly translate to
240 the Dublin Core Element Set v1.1. For a description of each Dublin
241 Core element, visit the following URL:
242
243  (http://dublincore.org/documents/1999/07/02/dces/)
244
245 Although many Dublin Core elements will probably never have any real 
246 relevance to gamebooks, all are included for completeness's sake.
247
248 [editor: add dc: namespace to isolate dublin core elements
249   http://dublincore.org/documents/2001/10/26/dcmi-namespace/ ]
250
251 Note: The "link" element doesn't correspond directly to any Dublin
252 Core element. It has been added here for required functionality.
253 -->
254
255 <!ELEMENT meta ( title | creator | subject | description | publisher | contributor | date | type | format | identifier | source | language | relation | coverage | rights | link)*>
256 <!--
257
258 The "meta" element represents underlying information about the 
259 document. It should contain any number of the Dublin Core 1.1 
260 elements.
261
262 Example:
263
264  <meta>
265   <title . . .> . . . </title>
266   <creator . . .> . . . </creator>
267   . . .
268  </meta>
269
270 -->
271
272 <!ELEMENT title ( %inline.content; )*>
273 <!ATTLIST title
274           %core.attributes;
275 >
276
277 <!ELEMENT creator ( %inline.content; | %block.content; )*>
278 <!ATTLIST creator
279           %core.attributes;
280 >
281
282 <!ELEMENT subject ( %inline.content; | %block.content; )*>
283 <!ATTLIST subject
284           %core.attributes;
285 >
286
287 <!ELEMENT description ( %inline.content; | %block.content; )*>
288 <!ATTLIST description
289           %core.attributes;
290 >
291
292 <!ELEMENT publisher ( %inline.content; | %block.content; )*>
293 <!ATTLIST publisher
294           %core.attributes;
295 >
296
297 <!ELEMENT contributor ( %inline.content; | %block.content; )*>
298 <!ATTLIST contributor
299           %core.attributes;
300 >
301
302 <!ELEMENT date ( year, month, day )>
303 <!ATTLIST date
304           %core.attributes;
305 >
306 <!--
307
308 The "date" element has been extended beyond the specification made in 
309 the Dublin Core. It should contain "year", "month" and "day" elements.
310
311 Example:
312
313  <date>
314   <year . . .> . . . </year>
315   <month . . .> . . . </month>
316   <day . . .> . . . </day>
317  </date>
318
319 -->
320
321 <!ELEMENT year ( #PCDATA )>
322 <!--
323
324 The year should be specified in full digit numeric format.
325
326 Example:
327
328  <year>2001</year>
329
330 -->
331
332 <!ELEMENT month ( #PCDATA )>
333 <!--
334
335 The month should be specified in numeric format with January as "1", 
336 February as "2", etc.
337
338 Example:
339
340  <month>4</month>
341
342 -->
343
344 <!ELEMENT day ( #PCDATA )>
345 <!--
346
347 The "day" element specifies the day of the month in numeric format.
348
349 Example:
350
351  <day>14</day>
352
353 -->
354
355 <!ELEMENT type ( %inline.content; )*>
356 <!ATTLIST type
357           %core.attributes;
358 >
359
360 <!ELEMENT format ( %inline.content; )*>
361 <!ATTLIST format
362           %core.attributes;
363 >
364
365 <!ELEMENT identifier ( %inline.content; )*>
366 <!ATTLIST identifier
367           %core.attributes;
368 >
369
370 <!ELEMENT source ( %inline.content; )*>
371 <!ATTLIST source
372           %core.attributes;
373 >
374
375 <!ELEMENT language ( %inline.content; )*>
376 <!ATTLIST language
377           %core.attributes;
378 >
379
380 <!ELEMENT relation ( %inline.content; )*>
381 <!ATTLIST relation
382           %core.attributes;
383 >
384
385 <!ELEMENT coverage ( %inline.content; | %block.content; )*>
386 <!ATTLIST coverage
387           %core.attributes;
388 >
389
390 <!ELEMENT rights ( %inline.content; | %block.content; )*>
391 <!ATTLIST rights
392           %core.attributes;
393 >
394
395 <!ELEMENT link EMPTY>
396 <!ATTLIST link
397           %core.attributes;
398           %link.attributes;
399           idrefs IDREFS #IMPLIED>
400 <!--
401
402 The "link" element has been added to the Dublin Core elements to 
403 represent relationships to other parts of the document. The "idrefs" 
404 attribute has been added to allow relationships that are held with 
405 more than one part of the document.
406
407 Examples:
408
409  <link class="next" idref="dedicate" />
410
411  <link class="friends" idrefs="dedicate cmbtrulz" />
412
413 -->
414
415 <!-- ::::::::::::::::::::: section Element ::::::::::::::::::::::: -->
416
417 <!ELEMENT section ( meta, footnotes?, illustrations?, data )>
418 <!ATTLIST section
419           %core.attributes;
420           %link.attributes;
421 >
422 <!--
423
424 The "section" element represents one hierarchical level of data. 
425 Section elements can be nested (inside the "data" element) in 
426 order to create more complex data representations.
427
428 A "section" element can used as a linking element. The most useful way 
429 to utilize this is to make it a named anchor and thus the target of a 
430 "choice" element.
431
432 Examples:
433
434  <section>
435   <meta><title . . .> . . . </title></meta>
436   <data . . .> . . . </data>
437   <footnotes . . .> . . . </footnotes>
438  </section>
439
440  <section id="title">
441   <meta><title . . .> . . . </title></meta>
442   <data . . .>
443    . . .
444    <section id="dedication">
445     <meta><title . . .> . . . </title></meta>
446     <data . . .> . . . </data>
447    </section>
448    . . .
449   </data>
450  </section>
451
452 -->
453
454 <!ELEMENT data ( %block.content; | section )*>
455 <!ATTLIST data
456           %core.attributes;
457 >
458 <!--
459
460 The "data" element contains the main data contained within 
461 a section. Note that a nested section structure can be created by 
462 including a "section" element within the content of the "data" 
463 element.
464
465 Examples:
466
467  <data>
468   <p . . .> . . . </p>
469   <combat . . .> . . . </combat>
470   . . .
471  </data>
472
473  <data>
474   <section . . .> . . . </section>
475  </data>
476
477 -->
478
479 <!ELEMENT illustrations ( illustration | illgroup )*>
480 <!ATTLIST illustrations
481           %core.attributes;
482 >
483 <!--
484
485 The "illustrations" element represents a collection of illustrations.
486 The illustrations, or illustration groups, should be listed in the
487 order they appear in the book.
488
489 Example:
490
491  <illustrations>
492   <illustration . . . />
493   <illgroup . . .>. . .</illgroup>
494   . . .
495  </illustrations>
496
497 -->
498
499 <!ELEMENT illgroup ( illustration )*>
500 <!ATTLIST illgroup
501           %core.attributes;
502           %link.attributes;
503 >
504
505 <!--
506
507 The "illgroup" element represents a group of illustrations contained
508 within one section. It is used when individual links to the each
509 illustration from the illustrations index are not wanted.
510
511 Example:
512
513  <illgroup idref=". . .">
514   <illustration . . . />
515   <illustration . . . />
516   . . . 
517  </illgroup>
518
519  <illgroup idref=". . ." class="hidden">
520   <illustration . . . />
521   <illustration . . . />
522   . . . 
523  </illgroup>
524
525 -->
526
527 <!ELEMENT footnotes ( footnote )*>
528 <!ATTLIST footnotes
529           %core.attributes;
530 >
531 <!--
532
533 The "footnotes" element represents the collection of extra-textual 
534 information contained within "footnote" elements.
535
536 Example:
537
538  <footnotes>
539   <footnote . . .> . . . </footnote>
540   <footnote . . .> . . . </footnote>
541   . . .
542  </footnotes> 
543
544 -->
545
546 <!ELEMENT footnote ( %block.content; )*>
547 <!ATTLIST footnote
548           %core.attributes;
549           %link.attributes;
550 >
551 <!--
552
553 The "footnote" element contains extra-textual information. It can be 
554 used as a linking element and can thus be used to refer back to a 
555 named anchor within the document.
556
557 Example:
558
559  <data . . .>
560   <p . . .>This paragraph requires an appropriate footnote
561    <a id="reference" idref="footnote-reference" . . ./>.
562   </p>
563   . . .
564  </data>
565  <footnotes . . .>
566   <footnote id="footnote-reference" idref="reference">
567    <p . . .>This is the appropriate footnote.</p>
568   </footnote>
569   . . .
570  </footnotes>
571
572 -->
573
574 <!-- ============================================================= -->
575 <!--                        Block Elements                         -->
576 <!-- ============================================================= -->
577
578 <!-- :::::::::::::::::::::::::: Lists :::::::::::::::::::::::::::: -->
579
580 <!ELEMENT ul ( li )*>
581 <!ATTLIST ul
582           %core.attributes;
583 >
584 <!--
585
586 The "ul" represents an unordered list.
587
588 Example:
589
590  <ul>
591   <li . . .> . . . </li>
592   <li . . .> . . . </li>
593   . . .
594  </ul>
595
596 -->
597
598 <!ELEMENT ol ( li )*>
599 <!ATTLIST ol
600           %core.attributes;
601 >
602 <!--
603
604 The "ol" element represents an ordered list.
605
606 Example:
607
608  <ol>
609   <li . . .> . . . First Item . . . </li>
610   <li . . .> . . . Second Item . . . </li>
611   . . .
612  </ol>
613
614 -->
615
616 <!ELEMENT li ( %inline.content; | %block.content; )*>
617 <!ATTLIST li
618           %core.attributes;
619 >
620 <!--
621
622 The "li" element is a generic list item used within both ordered and 
623 unordered lists (i.e. "ol" and "ul" elements).
624
625 Examples:
626
627  <ul . . .>
628   . . .
629   <li>list item</li>
630   <li>another list item</li>
631   . . .
632  </ul>
633
634  <ol . . .>
635   <li>first list item</li>
636   <li>second list item</li>
637   . . .
638  </ol>
639
640 -->
641
642 <!ELEMENT dl ( dt, dd? )*>
643 <!ATTLIST dl
644           %core.attributes;
645 >
646 <!--
647
648 The "dl" element represents a list of terms and their definitions.
649
650 Example:
651
652  <dl>
653   <dt . . .> . . . First Term . . . </dt>
654    <dd . . .> . . . First Term's Definition . . . </dd>
655    . . .
656   <dt . . .> . . . Second Term . . . </dt>
657    <dd . . .> . . . Second Term's Definition . . . </dd>
658   <dt . . .> . . . Third Term with No Definition . . . </dt>
659  </dl>
660
661 -->
662
663 <!ELEMENT dt ( %inline.content; )*>
664 <!ATTLIST dt
665           %core.attributes;
666 >
667 <!--
668
669 The "dt" element represents a definition term within a definition 
670 list. It should be immediately followed by its definitions contained 
671 within "dd" elements.
672
673 Example:
674
675  <dl . . .>
676   . . .
677   <dt>Definition Term</dt>
678    <dd . . .> . . . Definition . . . </dd>
679   . . .
680  </dl>
681
682 -->
683
684 <!ELEMENT dd ( %inline.content; | %block.content; )*>
685 <!ATTLIST dd
686           %core.attributes;
687 >
688 <!--
689
690 The "dd" element contains a definition.
691
692 Example:
693
694  <dt . . .> . . . Term to be defined . . . </dt>
695   <dd>Definition of the term.</dd>
696
697 -->
698
699 <!-- :::::::::::::::::::::::::: Tables ::::::::::::::::::::::::::: -->
700
701 <!ELEMENT table ( caption?, colgroup*, thead?, tfoot?, ( tr+ | tbody+ ))>
702 <!ATTLIST table
703           summary CDATA #IMPLIED
704           %core.attributes;
705 >
706 <!--
707
708 The "table" element represents tabular data. It's data is organized 
709 within rows.
710
711 Example:
712
713  <table>
714   <tr . . .> . . . </tr>
715   <tr . . .> . . . </tr>
716   . . .
717  </table>
718
719 -->
720
721 <!ELEMENT caption ( %inline.content; )*>
722 <!ATTLIST caption
723           %core.attributes;
724 >
725 <!--
726
727 The "caption" element contains a brief description of the data
728 contained in the table and the structure of the table.
729
730 Example:
731
732  <table>
733   <caption>Random Number Table</caption>
734   . . .
735  </table>
736
737 -->
738
739 <!ELEMENT colgroup EMPTY>
740 <!ATTLIST colgroup
741           span CDATA #REQUIRED
742 >
743 <!--
744
745 The "colgroup" element explicitly groups several columns of tabular data
746 together. The "span" attribute specifies the number of columns to be
747 grouped. This is primarily useful for non-visual user agents.
748
749 Example:
750
751  <table>
752   . . .
753   <colgroup span="1"/>
754   <colgroup span="13"/>
755   . . .
756  </table>
757
758 -->
759
760 <!ELEMENT thead ( tr+ )>
761 <!ATTLIST thead
762           %core.attributes;
763 >
764 <!--
765
766 The "thead" element contains rows of data designated as the table
767 header. It creates a rowgroup for the purposes of the "scope"
768 attribute in the "th" and "td" elements.
769
770 Example:
771
772  <table>
773   . . .
774   <thead>
775    <tr . . .> . . . </tr>
776    . . .
777   </thead>
778   . . .
779  </table>
780
781 -->
782
783 <!ELEMENT tfoot ( tr+ )>
784 <!ATTLIST tfoot
785           %core.attributes;
786 >
787 <!--
788
789 The "tfoot" element contains rows of data designated as the table
790 footer. It creates a rowgroup for the purposes of the "scope"
791 attribute in the "th" and "td" elements.
792
793 Example:
794
795  <table>
796   . . .
797   <tfoot>
798    <tr . . .> . . . </tr>
799    . . .
800   </tfoot>
801   . . .
802  </table>
803
804 -->
805
806 <!ELEMENT tbody ( tr+ )>
807 <!ATTLIST tbody
808           %core.attributes;
809 >
810 <!--
811
812 The "tbody" element contains rows of data designated as the part
813 of the main table data. More than one "tbody" element is allowed per
814 "table" element. It creates a rowgroup for the purposes of the "scope"
815 attribute in the "th" and "td" elements.
816
817 Example:
818
819  <table>
820   . . .
821   <tfoot>
822    <tr . . .> . . . </tr>
823    . . .
824   </tfoot>
825   . . .
826  </table>
827
828 -->
829
830 <!ELEMENT tr ( th | td )*>
831 <!ATTLIST tr
832           %core.attributes;
833 >
834 <!--
835
836 The "tr" element contains a collection of "th" and "td" elements that 
837 represent one row of a "table".
838
839 Example:
840
841  <table . . .>
842   . . .
843   <tr>
844    <th . . .> . . . </th>
845    <td . . .> . . . </td>
846    . . .
847   </tr>
848   . . .
849  </table>
850
851 -->
852
853 <!ELEMENT th ( %inline.content; )*>
854 <!ATTLIST th
855           %core.attributes;
856           %cell.align.attributes;
857           %cell.scope.attributes;
858 >
859 <!--
860
861 The "th" contains a table header used to label a particular row or 
862 column of tabular data.
863
864 The "scope" attribute specifies to what extent the data of this header
865 applies. The "axis" attribute is a comma-separated list of categories
866 to which the element belongs.
867
868 Example:
869
870  <tr . . .>
871   . . .
872   <th>Row Label</th>
873   <td . . .> . . . </td>
874   <td . . .> . . . </td>
875   . . .
876  </tr>
877
878 -->
879
880 <!ELEMENT td ( %inline.content; )*>
881 <!ATTLIST td
882           %core.attributes;
883           %cell.align.attributes;
884           %cell.scope.attributes;
885 >
886 <!--
887
888 The "td" element contains one cell of tabular data.
889
890 The "scope" attribute may be used in conjunction with a "td" element to
891 specify that though its data isn't considered header data, it functions
892 as a label for the data. For example, a character's name is a label for a row
893 of the character's statistics, but it is not a header.
894
895 Example:
896
897  <tr . . .>
898   . . .
899   <td>Cell data</td>
900   . . .
901  </tr>
902
903 -->
904
905 <!-- :::::::::::::::::::::: Miscellaneous :::::::::::::::::::::::: -->
906
907 <!ELEMENT p ( %inline.content; )*>
908 <!ATTLIST p
909           %core.attributes;
910 >
911 <!--
912
913 The "p" element contains a paragraph.
914
915 Example:
916
917  <p>This is a (short) paragraph.</p>
918
919 -->
920
921 <!ELEMENT blockquote ( %block.content; )*>
922 <!ATTLIST blockquote
923           %core.attributes;
924 >
925 <!--
926
927 The "blockquote" element contains a lengthy quotation which isn't 
928 contained within a paragraph.
929
930 Example:
931
932  <blockquote>
933   <p>There was once a Kai monk from Sommerlund . . .</p>
934  </blockquote>
935
936 -->
937
938 <!ELEMENT combat ( enemy, enemy-attribute+ )>
939 <!ATTLIST combat
940           %core.attributes;
941 >
942 <!--
943
944 The "combat" element contains one combat represented by the enemy's 
945 name and attributes.
946
947 Example:
948
949  <combat>
950   <enemy . . .> . . . </enemy>
951   <enemy-attribute . . .> . . . </enemy-attribute>
952   <enemy-attribute . . .> . . . </enemy-attribute>
953   . . .
954  </combat>
955
956 -->
957
958 <!ELEMENT enemy ( %inline.content; )*>
959 <!ATTLIST enemy
960           %core.attributes;
961 >
962 <!--
963
964 The "enemy" element contains an enemy's name.
965
966 Example:
967
968  <combat . . .>
969   . . .
970   <enemy>12-foot Giak</enemy>
971   . . .
972  </combat>
973
974 -->
975
976 <!ELEMENT enemy-attribute ( #PCDATA )*>
977 <!ATTLIST enemy-attribute
978           %core.attributes;
979 >
980 <!--
981
982 The "enemy-attribute" element contains one particular attribute which 
983 describes an enemy.
984
985 Example:
986
987  <combat . . .>
988   . . .
989   <enemy-attribute>30</enemy-attribute>
990   . . .
991  </combat>
992
993 -->
994
995 <!ELEMENT choice ( %inline.content; | link-text )*>
996 <!ATTLIST choice
997           %core.attributes;
998           %link.attributes;
999 >
1000 <!--
1001
1002 The "choice" element contains the text describing a choice presented 
1003 within a section. It's a linking element and therefore can link to 
1004 the place to which the choice leads.
1005
1006 The choice element can contain "link-text" elements which suggest text 
1007 that should be used by the user agent to represent the hyperlink.
1008
1009 Example:
1010
1011  <section id="section12" . . .> . . . </section>
1012  . . .
1013  <choice idref="section12">If you would like to fight the 12-foot Giak, 
1014   <link-text . . .> . . . turn to 12. . . . </link-text>
1015  </choice>
1016
1017 -->
1018
1019 <!ELEMENT link-text ( %inline.content; )*>
1020 <!ATTLIST link-text
1021           %core.attributes;
1022 >
1023 <!--
1024
1025 The "link-text" element contains text which is suggested for use by 
1026 hypertext user interfaces to represent one end of a hyperlink.
1027
1028 Example:
1029
1030  <choice . . .>
1031   . . .
1032   <link-text>the unfortunately ubiquitous "Click Here!"</link-text>
1033   . . .
1034  </choice>
1035
1036 -->
1037
1038 <!ELEMENT illustration ( meta?, instance+ )>
1039 <!ATTLIST illustration
1040           %core.attributes;
1041           %link.attributes;
1042 >
1043
1044 <!--
1045
1046 The "illustration" element contains a set of alternate 
1047 representations of a particular illustration.
1048
1049 Example:
1050
1051  <illustration>
1052   <meta> . . . </meta>
1053   <instance . . .> . . . </instance>
1054   <instance . . .> . . . </instance>
1055   . . .
1056  </illustration>
1057
1058 -->
1059
1060 <!ELEMENT instance ( %inline.content; | %block.content; )*>
1061 <!ATTLIST instance
1062           %core.attributes;
1063           src         CDATA #IMPLIED
1064           width       CDATA #IMPLIED
1065           height      CDATA #IMPLIED
1066           mime-type   CDATA #IMPLIED
1067 >
1068 <!--
1069
1070 The "instance" element describes one instance of an illustration.
1071
1072 The "src" attribute is a URL for the data file for the illustration.
1073
1074 The "width" and "height" attributes contain the dimensions of the 
1075 illustration.
1076
1077 The "mime-type" attribute can contain an appropriate label for the 
1078 format of the illustration file (e.g. "image/png" or "image/jpeg").
1079
1080 The "instance" element can contain block or inline content that
1081 is intended to replace graphical illustrations.
1082
1083 Example:
1084
1085  <illustration . . .>
1086   . . .
1087   <instance src="17.gif" width="386" height="532" type="image/gif" />
1088   <instance src="" width="" height="" type="text" >
1089    [content here]
1090   </instance>
1091   . . .
1092  </illustration>
1093
1094 -->
1095
1096 <!ELEMENT illref EMPTY>
1097 <!ATTLIST illref
1098           %core.attributes;
1099           %link.attributes;
1100 >
1101
1102 <!--
1103
1104 The "illref" element is used to mark the location of an illustration.
1105 The actual illustration is declared elsewhere.
1106
1107 Since the placement of a particular illustration may depend on the
1108 output format, one "illref" is required for each format.
1109
1110 Example:
1111
1112   <illref idref="ill2" class="html"/>
1113   <illref idref="ill2" class="pdf"/>
1114
1115 -->
1116
1117 <!ELEMENT signpost ( %inline.content; | %block.content; )*>
1118 <!ATTLIST signpost
1119           %core.attributes;
1120 >
1121 <!--
1122
1123 The "signpost" element contains the text of a sign or message that
1124 should be presented offset from surrounding text.
1125
1126 Example:
1127
1128  <signpost>RENDALIM'S LABORATORY</signpost>
1129
1130 -->
1131
1132 <!ELEMENT hr EMPTY>
1133 <!ATTLIST hr
1134           %core.attributes;
1135 >
1136 <!--
1137
1138 The "hr" element designates a horizontal rule. Since this is a 
1139 presentational tag, it should be used sparingly in cases where new
1140 logical divisions of the text begin which aren't given a unique 
1141 title.
1142
1143 Example:
1144
1145  <hr />
1146
1147 --> 
1148
1149 <!-- ============================================================= -->
1150 <!--                       Inline Elements                         -->
1151 <!-- ============================================================= -->
1152
1153 <!ELEMENT a ( %inline.content; )*>
1154 <!ATTLIST a
1155           %core.attributes;
1156           %link.attributes;
1157           href CDATA #IMPLIED
1158 >
1159 <!--
1160
1161 The "a" element is used to contain inline content that should be a 
1162 hypertext anchor. The "a" element should not contain another linking
1163 element (e.g. "a", "bookref", "footref").
1164
1165 The "href" attribute is added to allow a reference outside of the 
1166 document itself.
1167
1168 Example:
1169
1170  <p . . .>
1171   . . .
1172   <a idref="section12" id="foo">Section 12</a>
1173   . . .
1174  </p>
1175
1176 -->
1177
1178 <!ELEMENT bookref ( %inline.content; )*>
1179 <!ATTLIST bookref
1180           %core.attributes;
1181           %link.attributes;
1182           series  CDATA #IMPLIED
1183           book    CDATA #REQUIRED
1184           section CDATA #IMPLIED
1185 >
1186 <!--
1187
1188 The "bookref" element is used to contain inline content that should be a 
1189 hypertext anchor to another book.
1190
1191 The "series" attribute is a tag that denotes the series of the book that
1192 the link points to. The attribute may be left out if the book is part of
1193 the same series as the one containing the link.
1194
1195 The "book" attribute is a tag that denotes the book that the link points
1196 to. This is not necessarily a URL.
1197
1198 The "section" attribute is a tag indicating which section to link to.
1199 This is not necessarily a URL. The attribute may be left out if no
1200 particular section is referred to.
1201
1202 Example:
1203
1204  <p . . .>
1205   . . .
1206   <bookref series="lw" book="11tpot" section="sect33">
1207    The Prisoners of Time: Section 33
1208   </bookref>
1209   . . .
1210  </p>
1211
1212  <p . . .>
1213   . . .
1214   <bookref book="04wotw">Book 4</bookref>
1215   . . .
1216  </p>
1217
1218 -->
1219
1220 <!ELEMENT footref ( %inline.content; )*>
1221 <!ATTLIST footref
1222           %core.attributes;
1223           %link.attributes;
1224 >
1225 <!--
1226
1227 The "footref" element is used to indicate the position of a reference
1228 to a "footnote" element. It should normally not contain any text.
1229
1230 Example:
1231
1232  <p . . .>
1233   . . .
1234   You lose 3EP.<footref id="footref1" idref="footnote1"/>
1235   . . .
1236  </p>
1237
1238 -->
1239
1240 <!ELEMENT em ( %inline.content; )*>
1241 <!ATTLIST em
1242           %core.attributes;
1243 >
1244 <!--
1245
1246 The "em" element contains text that should be emphasized. Although not 
1247 part of the DTD and therefore not guaranteed or required to be so, the 
1248 text should be typeset with an italic font.
1249
1250  <p . . .>
1251   . . .
1252   <em>You are being attacked!</em>
1253   . . .
1254  </p>
1255
1256 -->
1257
1258 <!ELEMENT strong ( %inline.content; )*>
1259 <!ATTLIST strong
1260           %core.attributes;
1261 >
1262 <!--
1263
1264 The "strong" element contains text that should be emphasized. Although 
1265 not part of the DTD and therefore not guaranteed or required to be so, 
1266 the text should be typeset with a bold font weight.
1267
1268  <p . . .>
1269   . . .
1270   <strong>If</strong> you have the Talisman of Supreme Obscurity,
1271   . . .
1272  </p>
1273
1274 -->
1275
1276 <!ELEMENT thought ( %inline.content; )*>
1277 <!ATTLIST thought
1278           %core.attributes;
1279 >
1280 <!--
1281
1282 The "thought" element contains text that is the character's thoughts or is 
1283 an overheard thought. Although not part of the DTD and therefore not 
1284 guaranteed or required to be so, the text should be typeset with an italic
1285 font face.
1286
1287  <p . . .>
1288   . . .
1289   Lone Wolf heard the words <thought>Die Northlander!</strong> echo in
1290   his mind,
1291   . . .
1292  </p>
1293
1294 -->
1295
1296 <!ELEMENT foreign ( %inline.content; )*>
1297 <!ATTLIST foreign
1298           %core.attributes;
1299 >
1300 <!--
1301
1302 The "foreign" element contains a phrase in a non-native language.
1303 Although not part of the DTD and therefore not guaranteed or required 
1304 to be so, the text should be typeset with an italic font face.
1305
1306  <p . . .>
1307   . . .
1308   The Giak horde attacked <foreign>en masse</foreign>.
1309   . . .
1310  </p>
1311
1312 -->
1313
1314 <!ELEMENT quote ( %inline.content; )*>
1315 <!ATTLIST quote
1316           %core.attributes;
1317 >
1318 <!--
1319
1320 The "quote" element contains an inline quotation.
1321
1322 Example:
1323
1324  <p . . .>The Giak yelped <quote . . .>Oww!</quote></p>
1325
1326 -->
1327
1328 <!ELEMENT cite ( %inline.content; )*>
1329 <!ATTLIST cite
1330           %core.attributes;
1331 >
1332 <!--
1333
1334 The "cite" element contains the title of a sited resource.
1335
1336 Example:
1337
1338  <p . . .>
1339   . . .
1340   <cite>Flight from the Dark</cite>
1341   . . .
1342  </p>
1343
1344 -->
1345
1346 <!ELEMENT code ( %inline.content; )*>
1347 <!ATTLIST code
1348           %core.attributes;
1349 >
1350 <!--
1351
1352 The "code" element contains data that should be interpreted as literal 
1353 input to a computer (e.g. email addresses and URIs).
1354
1355 Example:
1356
1357  <code>http://www.projectaon.org/</code>
1358
1359 -->
1360
1361 <!ELEMENT line ( %inline.content; )*>
1362 <!ATTLIST line
1363           %core.attributes;
1364 >
1365 <!--
1366
1367 The "line" element contains one logical line of data in, for example,
1368 a poem. Its use should be confined to documents such as poems that
1369 require a particular line structure.
1370
1371 Example:
1372
1373  <line>When the full moon rises o'er the temple deep,</line>
1374  <line>A sacrifice will stir from sleep</line>
1375  <line>The legions of a long forgotten lord.</line>
1376
1377 -->
1378
1379 <!ELEMENT br EMPTY>
1380 <!ATTLIST br
1381           %core.attributes;
1382 >
1383 <!--
1384
1385 The "br" indicates a required line break. Its use is deprecated in favor
1386 of the "line" element.
1387
1388 Example:
1389
1390  <blockquote . . .>
1391   . . .
1392   There once was a Kai monk from Sommerlund<br />
1393   Who always wore a pink cummerbund<br />
1394   . . .
1395  </blockquote>
1396
1397 -->
1398
1399 <!ELEMENT typ ( #PCDATA )>
1400 <!ATTLIST typ
1401           %core.attributes;
1402 >
1403 <!--
1404
1405 The "typ" element is used to denote purely typographical markup. For
1406 example, bold font face, italics, and smaller font are purely of
1407 typographical concern. Take care to not use this in place of logical
1408 markup such as the "em" element when it is more appropriate.
1409
1410 Example:
1411
1412 The <typ class="bold">Project Aon</a> volunteers.
1413
1414 -->
1415
1416 <!ELEMENT onomatopoeia ( #PCDATA )>
1417 <!ATTLIST onomatopoeia
1418           %core.attributes;
1419 >
1420 <!--
1421
1422 The "onomatopoeia" element is used to denote words that imitate a
1423 sound (e.g., "whoosh", "bang").
1424
1425 Example:
1426
1427 The <onomatopoeia>clang</onomatopoeia> of the bell is deafening.
1428
1429 -->
1430
1431 <!ELEMENT spell ( #PCDATA )>
1432 <!ATTLIST spell
1433           %core.attributes;
1434 >
1435 <!--
1436
1437 The "spell" element contains the name of a magic spell.
1438
1439 Example:
1440
1441 Having had no success with his female peers, the acolyte learned the
1442 forbidden <spell>Attract Opposite Gender</spell> spell.
1443
1444 -->
1445
1446 <!ELEMENT item ( #PCDATA )>
1447 <!ATTLIST item
1448           %core.attributes;
1449 >
1450 <!--
1451
1452 The "item" element contains the name of an item that the reader can
1453 pick up or interact with.
1454
1455 Example:
1456
1457 Her <item>Sword</a> lay just out of reach.
1458
1459 -->
1460
1461 <!-- ============================================================= -->
1462 <!--                      Character Elements                       -->
1463 <!-- ============================================================= -->
1464 <!--
1465
1466 The character elments provide a hook to specify a character without
1467 specifying the exact representation in target formats. The exact 
1468 representation used is the responsibility of the processor (e.g XSLT
1469 stylesheet.
1470
1471 Portions Copyright International Organization for Standardization 1986 
1472 Permission to copy in any form is granted for use with conforming SGML 
1473 systems and applications as defined in ISO 8879, provided this notice 
1474 is included in all copies.
1475
1476 -->
1477
1478 <!-- no-break space = non-breaking space, U+00A0 ISOnum -->
1479 <!ELEMENT ch.apos EMPTY><!ATTLIST ch.apos %core.attributes;>
1480
1481 <!-- no-break space = non-breaking space, U+00A0 ISOnum -->
1482 <!ELEMENT ch.nbsp EMPTY><!ATTLIST ch.nbsp %core.attributes;>
1483
1484 <!-- inverted exclamation mark, U+00A1 ISOnum -->
1485 <!ELEMENT ch.iexcl EMPTY><!ATTLIST ch.iexcl %core.attributes;>
1486
1487 <!-- cent sign, U+00A2 ISOnum -->
1488 <!ELEMENT ch.cent EMPTY><!ATTLIST ch.cent %core.attributes;>
1489
1490 <!-- pound sign, U+00A3 ISOnum -->
1491 <!ELEMENT ch.pound EMPTY><!ATTLIST ch.pound %core.attributes;>
1492
1493 <!-- currency sign, U+00A4 ISOnum -->
1494 <!ELEMENT ch.curren EMPTY><!ATTLIST ch.curren %core.attributes;>
1495
1496 <!-- yen sign = yuan sign, U+00A5 ISOnum -->
1497 <!ELEMENT ch.yen EMPTY><!ATTLIST ch.yen %core.attributes;>
1498
1499 <!-- broken bar = broken vertical bar, U+00A6 ISOnum -->
1500 <!ELEMENT ch.brvbar EMPTY><!ATTLIST ch.brvbar %core.attributes;>
1501
1502 <!-- section sign, U+00A7 ISOnum -->
1503 <!ELEMENT ch.sect EMPTY><!ATTLIST ch.sect %core.attributes;>
1504
1505 <!-- diaeresis = spacing diaeresis, U+00A8 ISOdia -->
1506 <!ELEMENT ch.uml EMPTY><!ATTLIST ch.uml %core.attributes;>
1507
1508 <!-- copyright sign, U+00A9 ISOnum -->
1509 <!ELEMENT ch.copy EMPTY><!ATTLIST ch.copy %core.attributes;>
1510
1511 <!-- feminine ordinal indicator, U+00AA ISOnum -->
1512 <!ELEMENT ch.ordf EMPTY><!ATTLIST ch.ordf %core.attributes;>
1513
1514 <!-- left-pointing double angle quotation mark = left pointing guillemet, U+00AB ISOnum -->
1515 <!ELEMENT ch.laquo EMPTY><!ATTLIST ch.laquo %core.attributes;>
1516
1517 <!-- not sign, U+00AC ISOnum -->
1518 <!ELEMENT ch.not EMPTY><!ATTLIST ch.not %core.attributes;>
1519
1520 <!-- soft hyphen = discretionary hyphen, U+00AD ISOnum -->
1521 <!ELEMENT ch.shy EMPTY><!ATTLIST ch.shy %core.attributes;>
1522
1523 <!-- registered sign = registered trade mark sign, U+00AE ISOnum -->
1524 <!ELEMENT ch.reg EMPTY><!ATTLIST ch.reg %core.attributes;>
1525
1526 <!-- macron = spacing macron = overline = APL overbar, U+00AF ISOdia -->
1527 <!ELEMENT ch.macr EMPTY><!ATTLIST ch.macr %core.attributes;>
1528
1529 <!-- degree sign, U+00B0 ISOnum -->
1530 <!ELEMENT ch.deg EMPTY><!ATTLIST ch.deg %core.attributes;>
1531
1532 <!-- plus-minus sign = plus-or-minus sign, U+00B1 ISOnum -->
1533 <!ELEMENT ch.plusmn EMPTY><!ATTLIST ch.plusmn %core.attributes;>
1534
1535 <!-- superscript two = superscript digit two = squared, U+00B2 ISOnum -->
1536 <!ELEMENT ch.sup2 EMPTY><!ATTLIST ch.sup2 %core.attributes;>
1537
1538 <!-- superscript three = superscript digit three = cubed, U+00B3 ISOnum -->
1539 <!ELEMENT ch.sup3 EMPTY><!ATTLIST ch.sup3 %core.attributes;>
1540
1541 <!-- acute accent = spacing acute, U+00B4 ISOdia -->
1542 <!ELEMENT ch.acute EMPTY><!ATTLIST ch.acute %core.attributes;>
1543
1544 <!-- micro sign, U+00B5 ISOnum -->
1545 <!ELEMENT ch.micro EMPTY><!ATTLIST ch.micro %core.attributes;>
1546
1547 <!-- pilcrow sign  = paragraph sign, U+00B6 ISOnum -->
1548 <!ELEMENT ch.para EMPTY><!ATTLIST ch.para %core.attributes;>
1549
1550 <!-- middle dot = Georgian comma = Greek middle dot, U+00B7 ISOnum -->
1551 <!ELEMENT ch.middot EMPTY><!ATTLIST ch.middot %core.attributes;>
1552
1553 <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
1554 <!ELEMENT ch.cedil EMPTY><!ATTLIST ch.cedil %core.attributes;>
1555
1556 <!-- superscript one = superscript digit one, U+00B9 ISOnum -->
1557 <!ELEMENT ch.sup1 EMPTY><!ATTLIST ch.sup1 %core.attributes;>
1558
1559 <!-- masculine ordinal indicator, U+00BA ISOnum -->
1560 <!ELEMENT ch.ordm EMPTY><!ATTLIST ch.ordm %core.attributes;>
1561
1562 <!-- right-pointing double angle quotation mark = right pointing guillemet, U+00BB ISOnum -->
1563 <!ELEMENT ch.raquo EMPTY><!ATTLIST ch.raquo %core.attributes;>
1564
1565 <!-- vulgar fraction one quarter = fraction one quarter, U+00BC ISOnum -->
1566 <!ELEMENT ch.frac14 EMPTY><!ATTLIST ch.frac14 %core.attributes;>
1567
1568 <!-- vulgar fraction one half = fraction one half, U+00BD ISOnum -->
1569 <!ELEMENT ch.frac12 EMPTY><!ATTLIST ch.frac12 %core.attributes;>
1570
1571 <!-- vulgar fraction three quarters = fraction three quarters, U+00BE ISOnum -->
1572 <!ELEMENT ch.frac34 EMPTY><!ATTLIST ch.frac34 %core.attributes;>
1573
1574 <!-- inverted question mark = turned question mark, U+00BF ISOnum -->
1575 <!ELEMENT ch.iquest EMPTY><!ATTLIST ch.iquest %core.attributes;>
1576
1577 <!-- latin capital letter A with grave = latin capital letter A grave, U+00C0 ISOlat1 -->
1578 <!ELEMENT ch.Agrave EMPTY><!ATTLIST ch.Agrave %core.attributes;>
1579
1580 <!-- latin capital letter A with acute, U+00C1 ISOlat1 -->
1581 <!ELEMENT ch.Aacute EMPTY><!ATTLIST ch.Aacute %core.attributes;>
1582
1583 <!-- latin capital letter A with circumflex, U+00C2 ISOlat1 -->
1584 <!ELEMENT ch.Acirc EMPTY><!ATTLIST ch.Acirc %core.attributes;>
1585
1586 <!-- latin capital letter A with tilde, U+00C3 ISOlat1 -->
1587 <!ELEMENT ch.Atilde EMPTY><!ATTLIST ch.Atilde %core.attributes;>
1588
1589 <!-- latin capital letter A with diaeresis, U+00C4 ISOlat1 -->
1590 <!ELEMENT ch.Auml EMPTY><!ATTLIST ch.Auml %core.attributes;>
1591
1592 <!-- latin capital letter A with ring above = latin capital letter A ring, U+00C5 ISOlat1 -->
1593 <!ELEMENT ch.Aring EMPTY><!ATTLIST ch.Aring %core.attributes;>
1594
1595 <!-- latin capital letter AE = latin capital ligature AE, U+00C6 ISOlat1 -->
1596 <!ELEMENT ch.AElig EMPTY><!ATTLIST ch.AElig %core.attributes;>
1597
1598 <!-- latin capital letter C with cedilla, U+00C7 ISOlat1 -->
1599 <!ELEMENT ch.Ccedil EMPTY><!ATTLIST ch.Ccedil %core.attributes;>
1600
1601 <!-- latin capital letter E with grave, U+00C8 ISOlat1 -->
1602 <!ELEMENT ch.Egrave EMPTY><!ATTLIST ch.Egrave %core.attributes;>
1603
1604 <!-- latin capital letter E with acute, U+00C9 ISOlat1 -->
1605 <!ELEMENT ch.Eacute EMPTY><!ATTLIST ch.Eacute %core.attributes;>
1606
1607 <!-- latin capital letter E with circumflex, U+00CA ISOlat1 -->
1608 <!ELEMENT ch.Ecirc EMPTY><!ATTLIST ch.Ecirc %core.attributes;>
1609
1610 <!-- latin capital letter E with diaeresis, U+00CB ISOlat1 -->
1611 <!ELEMENT ch.Euml EMPTY><!ATTLIST ch.Euml %core.attributes;>
1612
1613 <!-- latin capital letter I with grave, U+00CC ISOlat1 -->
1614 <!ELEMENT ch.Igrave EMPTY><!ATTLIST ch.Igrave %core.attributes;>
1615
1616 <!-- latin capital letter I with acute, U+00CD ISOlat1 -->
1617 <!ELEMENT ch.Iacute EMPTY><!ATTLIST ch.Iacute %core.attributes;>
1618
1619 <!-- latin capital letter I with circumflex, U+00CE ISOlat1 -->
1620 <!ELEMENT ch.Icirc EMPTY><!ATTLIST ch.Icirc %core.attributes;>
1621
1622 <!-- latin capital letter I with diaeresis, U+00CF ISOlat1 -->
1623 <!ELEMENT ch.Iuml EMPTY><!ATTLIST ch.Iuml %core.attributes;>
1624
1625 <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
1626 <!ELEMENT ch.ETH EMPTY><!ATTLIST ch.ETH %core.attributes;>
1627
1628 <!-- latin capital letter N with tilde, U+00D1 ISOlat1 -->
1629 <!ELEMENT ch.Ntilde EMPTY><!ATTLIST ch.Ntilde %core.attributes;>
1630
1631 <!-- latin capital letter O with grave, U+00D2 ISOlat1 -->
1632 <!ELEMENT ch.Ograve EMPTY><!ATTLIST ch.Ograve %core.attributes;>
1633
1634 <!-- latin capital letter O with acute, U+00D3 ISOlat1 -->
1635 <!ELEMENT ch.Oacute EMPTY><!ATTLIST ch.Oacute %core.attributes;>
1636
1637 <!-- latin capital letter O with circumflex, U+00D4 ISOlat1 -->
1638 <!ELEMENT ch.Ocirc EMPTY><!ATTLIST ch.Ocirc %core.attributes;>
1639
1640 <!-- latin capital letter O with tilde, U+00D5 ISOlat1 -->
1641 <!ELEMENT ch.Otilde EMPTY><!ATTLIST ch.Otilde %core.attributes;>
1642
1643 <!-- latin capital letter O with diaeresis, U+00D6 ISOlat1 -->
1644 <!ELEMENT ch.Ouml EMPTY><!ATTLIST ch.Ouml %core.attributes;>
1645
1646 <!-- multiplication sign, U+00D7 ISOnum -->
1647 <!ELEMENT ch.times EMPTY><!ATTLIST ch.times %core.attributes;>
1648
1649 <!-- latin capital letter O with stroke = latin capital letter O slash, U+00D8 ISOlat1 -->
1650 <!ELEMENT ch.Oslash EMPTY><!ATTLIST ch.Oslash %core.attributes;>
1651
1652 <!-- latin capital letter U with grave, U+00D9 ISOlat1 -->
1653 <!ELEMENT ch.Ugrave EMPTY><!ATTLIST ch.Ugrave %core.attributes;>
1654
1655 <!-- latin capital letter U with acute, U+00DA ISOlat1 -->
1656 <!ELEMENT ch.Uacute EMPTY><!ATTLIST ch.Uacute %core.attributes;>
1657
1658 <!-- latin capital letter U with circumflex, U+00DB ISOlat1 -->
1659 <!ELEMENT ch.Ucirc EMPTY><!ATTLIST ch.Ucirc %core.attributes;>
1660
1661 <!-- latin capital letter U with diaeresis, U+00DC ISOlat1 -->
1662 <!ELEMENT ch.Uuml EMPTY><!ATTLIST ch.Uuml %core.attributes;>
1663
1664 <!-- latin capital letter Y with acute, U+00DD ISOlat1 -->
1665 <!ELEMENT ch.Yacute EMPTY><!ATTLIST ch.Yacute %core.attributes;>
1666
1667 <!-- latin capital letter THORN, U+00DE ISOlat1 -->
1668 <!ELEMENT ch.THORN EMPTY><!ATTLIST ch.THORN %core.attributes;>
1669
1670 <!-- latin small letter sharp s = ess-zed, U+00DF ISOlat1 -->
1671 <!ELEMENT ch.szlig EMPTY><!ATTLIST ch.szlig %core.attributes;>
1672
1673 <!-- latin small letter a with grave = latin small letter a grave, U+00E0 ISOlat1 -->
1674 <!ELEMENT ch.agrave EMPTY><!ATTLIST ch.agrave %core.attributes;>
1675
1676 <!-- latin small letter a with acute, U+00E1 ISOlat1 -->
1677 <!ELEMENT ch.aacute EMPTY><!ATTLIST ch.aacute %core.attributes;>
1678
1679 <!-- latin small letter a with circumflex, U+00E2 ISOlat1 -->
1680 <!ELEMENT ch.acirc EMPTY><!ATTLIST ch.acirc %core.attributes;>
1681
1682 <!-- latin small letter a with tilde, U+00E3 ISOlat1 -->
1683 <!ELEMENT ch.atilde EMPTY><!ATTLIST ch.atilde %core.attributes;>
1684
1685 <!-- latin small letter a with diaeresis, U+00E4 ISOlat1 -->
1686 <!ELEMENT ch.auml EMPTY><!ATTLIST ch.auml %core.attributes;>
1687
1688 <!-- latin small letter a with ring above = latin small letter a ring, U+00E5 ISOlat1 -->
1689 <!ELEMENT ch.aring EMPTY><!ATTLIST ch.aring %core.attributes;>
1690
1691 <!-- latin small letter ae = latin small ligature ae, U+00E6 ISOlat1 -->
1692 <!ELEMENT ch.aelig EMPTY><!ATTLIST ch.aelig %core.attributes;>
1693
1694 <!-- latin small letter c with cedilla, U+00E7 ISOlat1 -->
1695 <!ELEMENT ch.ccedil EMPTY><!ATTLIST ch.ccedil %core.attributes;>
1696
1697 <!-- latin small letter e with grave, U+00E8 ISOlat1 -->
1698 <!ELEMENT ch.egrave EMPTY><!ATTLIST ch.egrave %core.attributes;>
1699
1700 <!-- latin small letter e with acute, U+00E9 ISOlat1 -->
1701 <!ELEMENT ch.eacute EMPTY><!ATTLIST ch.eacute %core.attributes;>
1702
1703 <!-- latin small letter e with circumflex, U+00EA ISOlat1 -->
1704 <!ELEMENT ch.ecirc EMPTY><!ATTLIST ch.ecirc %core.attributes;>
1705
1706 <!-- latin small letter e with diaeresis, U+00EB ISOlat1 -->
1707 <!ELEMENT ch.euml EMPTY><!ATTLIST ch.euml %core.attributes;>
1708
1709 <!-- latin small letter i with grave, U+00EC ISOlat1 -->
1710 <!ELEMENT ch.igrave EMPTY><!ATTLIST ch.igrave %core.attributes;>
1711
1712 <!-- latin small letter i with acute, U+00ED ISOlat1 -->
1713 <!ELEMENT ch.iacute EMPTY><!ATTLIST ch.iacute %core.attributes;>
1714
1715 <!-- latin small letter i with circumflex, U+00EE ISOlat1 -->
1716 <!ELEMENT ch.icirc EMPTY><!ATTLIST ch.icirc %core.attributes;>
1717
1718 <!-- latin small letter i with diaeresis, U+00EF ISOlat1 -->
1719 <!ELEMENT ch.iuml EMPTY><!ATTLIST ch.iuml %core.attributes;>
1720
1721 <!-- latin small letter eth, U+00F0 ISOlat1 -->
1722 <!ELEMENT ch.eth EMPTY><!ATTLIST ch.eth %core.attributes;>
1723
1724 <!-- latin small letter n with tilde, U+00F1 ISOlat1 -->
1725 <!ELEMENT ch.ntilde EMPTY><!ATTLIST ch.ntilde %core.attributes;>
1726
1727 <!-- latin small letter o with grave, U+00F2 ISOlat1 -->
1728 <!ELEMENT ch.ograve EMPTY><!ATTLIST ch.ograve %core.attributes;>
1729
1730 <!-- latin small letter o with acute, U+00F3 ISOlat1 -->
1731 <!ELEMENT ch.oacute EMPTY><!ATTLIST ch.oacute %core.attributes;>
1732
1733 <!-- latin small letter o with circumflex, U+00F4 ISOlat1 -->
1734 <!ELEMENT ch.ocirc EMPTY><!ATTLIST ch.ocirc %core.attributes;>
1735
1736 <!-- latin small letter o with tilde, U+00F5 ISOlat1 -->
1737 <!ELEMENT ch.otilde EMPTY><!ATTLIST ch.otilde %core.attributes;>
1738
1739 <!-- latin small letter o with diaeresis, U+00F6 ISOlat1 -->
1740 <!ELEMENT ch.ouml EMPTY><!ATTLIST ch.ouml %core.attributes;>
1741
1742 <!-- division sign, U+00F7 ISOnum -->
1743 <!ELEMENT ch.divide EMPTY><!ATTLIST ch.divide %core.attributes;>
1744
1745 <!-- latin small letter o with stroke, = latin small letter o slash, U+00F8 ISOlat1 -->
1746 <!ELEMENT ch.oslash EMPTY><!ATTLIST ch.oslash %core.attributes;>
1747
1748 <!-- latin small letter u with grave, U+00F9 ISOlat1 -->
1749 <!ELEMENT ch.ugrave EMPTY><!ATTLIST ch.ugrave %core.attributes;>
1750
1751 <!-- latin small letter u with acute, U+00FA ISOlat1 -->
1752 <!ELEMENT ch.uacute EMPTY><!ATTLIST ch.uacute %core.attributes;>
1753
1754 <!-- latin small letter u with circumflex, U+00FB ISOlat1 -->
1755 <!ELEMENT ch.ucirc EMPTY><!ATTLIST ch.ucirc %core.attributes;>
1756
1757 <!-- latin small letter u with diaeresis, U+00FC ISOlat1 -->
1758 <!ELEMENT ch.uuml EMPTY><!ATTLIST ch.uuml %core.attributes;>
1759
1760 <!-- latin small letter y with acute, U+00FD ISOlat1 -->
1761 <!ELEMENT ch.yacute EMPTY><!ATTLIST ch.yacute %core.attributes;>
1762
1763 <!-- latin small letter thorn, U+00FE ISOlat1 -->
1764 <!ELEMENT ch.thorn EMPTY><!ATTLIST ch.thorn %core.attributes;>
1765
1766 <!-- latin small letter y with diaeresis, U+00FF ISOlat1 -->
1767 <!ELEMENT ch.yuml EMPTY><!ATTLIST ch.yuml %core.attributes;>
1768
1769
1770 <!-- ::::::::::::::::::::: Special Characters :::::::::::::::::::: -->
1771
1772 <!-- ampersand -->
1773 <!ELEMENT ch.ampersand EMPTY><!ATTLIST ch.ampersand %core.attributes;>
1774
1775 <!-- opening left quotation mark -->
1776 <!ELEMENT ch.lsquot EMPTY><!ATTLIST ch.lsquot %core.attributes;>
1777
1778 <!-- closing right quotation mark -->
1779 <!ELEMENT ch.rsquot EMPTY><!ATTLIST ch.rsquot %core.attributes;>
1780
1781 <!-- opening left double quotation mark -->
1782 <!ELEMENT ch.ldquot EMPTY><!ATTLIST ch.ldquot %core.attributes;>
1783
1784 <!-- closing right double quotation mark -->
1785 <!ELEMENT ch.rdquot EMPTY><!ATTLIST ch.rdquot %core.attributes;>
1786
1787 <!-- mathematical minus -->
1788 <!ELEMENT ch.minus EMPTY><!ATTLIST ch.minus %core.attributes;>
1789
1790 <!-- endash -->
1791 <!ELEMENT ch.endash EMPTY><!ATTLIST ch.endash %core.attributes;>
1792
1793 <!-- emdash -->
1794 <!ELEMENT ch.emdash EMPTY><!ATTLIST ch.emdash %core.attributes;>
1795
1796 <!-- ellipsis -->
1797 <!ELEMENT ch.ellips EMPTY><!ATTLIST ch.ellips %core.attributes;>
1798
1799 <!-- left ellipsis, used at the beginning of edited material -->
1800 <!ELEMENT ch.lellips EMPTY><!ATTLIST ch.lellips %core.attributes;>
1801
1802 <!-- blank line to be filled in -->
1803 <!ELEMENT ch.blankline EMPTY><!ATTLIST ch.blankline %core.attributes;>
1804
1805 <!-- percent sign -->
1806 <!ELEMENT ch.percent EMPTY><!ATTLIST ch.percent %core.attributes;>
1807
1808 <!-- small horizontal space for use between adjacent quotation marks - added mainly for LaTeX's sake -->
1809 <!ELEMENT ch.thinspace EMPTY><!ATTLIST ch.thinspace %core.attributes;>
1810
1811 <!-- vulgar fraction one sixteenth = fraction on sixteenth -->
1812 <!ELEMENT ch.frac116 EMPTY><!ATTLIST ch.frac116 %core.attributes;>
1813
1814 <!-- mathematical plus -->
1815 <!ELEMENT ch.plus EMPTY><!ATTLIST ch.plus %core.attributes;>
1816
1817 <!-- ============================================================= -->
1818 <!--                          Appendices                           -->
1819 <!-- ============================================================= -->
1820
1821 <!-- :::::::::::::: Valid Gamebook Document Example :::::::::::::: -->
1822 <!--
1823 This document is not intended to document current practice in Project
1824 Aon. It is merely here to demonstrate the concepts of the Gamebook 
1825 DTD. For current practice, please refer to published XML files.
1826 -->
1827
1828 <!--
1829
1830 <?xml version="1.0" encoding="iso-8859-1"?>
1831 <!DOCTYPE gamebook SYSTEM "gamebook.dtd">
1832
1833 <gamebook version="0.12" xml:lang="en-UK">
1834
1835 <meta>
1836  <title>Flight from the Dark</title>
1837  <creator>Joe Dever and Gary Chalk</creator>
1838  <publisher>Project Aon</publisher>
1839  <date><year>2001</year><month>10</month><day>24</day></date>
1840  <rights>Copyright <ch.copy/> 1984 Joe Dever and Gary Chalk.</rights>
1841 </meta>
1842
1843 <section id="section1">
1844  <meta><title>1</title></meta>
1845  <data>
1846   <p>You must make haste for you sense it is not safe to linger by the smoking remains of the ruined monastery. The black-winged beasts could return at any moment. You must set out for the Sommerlund capital of Holmgard and tell the King the terrible news of the massacre: that the whole <ch.eacute/>lite of Kai warriors, save yourself, have been slaughtered. Without the Kai Lords to lead her armies, Sommerlund will be at the mercy of their ancient enemy, the Darklords.</p>
1847   <p>Fighting back tears, you bid farewell to your dead kinsmen. Silently, you promise that their deaths will be avenged. You turn away from the ruins and carefully descend the steep track.</p>
1848   <p>At the foot of the hill, the path splits into two directions, both leading into a large wood.</p>
1849
1850   <choice idref="section85">If you wish to take the right path into the wood, <link-text>turn to 85</link-text>.</choice>
1851   <choice idref="section275">If you wish to follow the left track, <link-text>turn to 275</link-text>.</choice>
1852   <choice idref="section141">If you wish to use your Kai Discipline of Sixth Sense, <link-text>turn to 141</link-text>.</choice>
1853  </data>
1854  <footnotes>
1855   <footnote><p>Later books use <quote>Sommlending</quote> as the possessive adjective for Sommerlund, contrary to the use of the word <quote>Sommerlund</quote> in the third sentence. This is probably not a typo, but a reflection of Joe Dever<ch.apos/>s later expansion of the vocabulary of Magnamund.</p></footnote>
1856  </footnotes>
1857 </section>
1858
1859 <section id="section17">
1860  <meta><title>17</title></meta>
1861  <data>
1862   <p>You raise your weapon to strike at the beast as its razor-fanged mouth snaps shut just inches from your head. Buffeted by the beating of its wings you find it difficult to stand.</p>
1863
1864   <illustration>
1865    <instance src="1.gif" width="386" height="532" mime-type="image/gif" />
1866   </illustration>
1867
1868   <p>Deduct 1 point from your <typ class="attribute">COMBAT SKILL</typ> and fight the Kraan.</p>
1869
1870   <combat>
1871    <enemy>Kraan:</enemy>
1872    <enemy-attribute>16</enemy-attribute>
1873    <enemy-attribute>24</enemy-attribute>
1874   </combat>
1875
1876   <p>If you kill the creature, you quickly descend the far side of the hill to avoid the Giaks.</p>
1877   <p>Pick a number from the Random Number Table.</p>
1878
1879   <choice idref="section53">If you pick 0, <link-text>turn to 53</link-text>.</choice>
1880   <choice idref="section274">If you pick 1<ch.endash/>2, <link-text>turn to 274</link-text>.</choice>
1881   <choice idref="section316">If you pick 3<ch.endash/>9, <link-text>turn to 316</link-text>.</choice>
1882  </data>
1883 </section>
1884
1885 <section id="section53">
1886  <meta><title>53</title></meta>
1887  <data />
1888 </section>
1889
1890 <section id="section85">
1891  <meta><title>85</title></meta>
1892  <data />
1893 </section>
1894
1895 <section id="section141">
1896  <meta><title>141</title></meta>
1897  <data />
1898 </section>
1899
1900 <section id="section274">
1901  <meta><title>274</title></meta>
1902  <data />
1903 </section>
1904
1905 <section id="section275">
1906  <meta><title>275</title></meta>
1907  <data />
1908 </section>
1909
1910 <section id="section316">
1911  <meta><title>316</title></meta>
1912  <data />
1913 </section>
1914
1915 </gamebook>
1916
1917 -->