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