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