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