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