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