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