Spelling fixes
[docutils.git] / docs / ref / docutils.dtd
blob39c8ad2ee378ba394c83f76e1f51dd3713fc7368
1 <!--
2 ======================================================================
3 Docutils Generic DTD
4 ======================================================================
5 :Author: David Goodger
6 :Contact: docutils-develop@lists.sourceforge.net
7 :Revision: $Revision$
8 :Date: $Date$
9 :Copyright: This DTD has been placed in the public domain.
10 :Filename: docutils.dtd
12 More information about this DTD (document type definition) and the
13 Docutils project can be found at http://docutils.sourceforge.net/.
14 The latest version of this DTD is available from
15 http://docutils.sourceforge.net/docs/ref/docutils.dtd.
17 The formal public identifier for this DTD is::
19 +//IDN docutils.sourceforge.net//DTD Docutils Generic//EN//XML
20 -->
22 <!--
23 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24 Parameter Entities
25 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27 Parameter entities are used to simplify the DTD (reduce duplication)
28 and to allow the DTD to be customized by wrapper DTDs. Parameter
29 entities beginning with "additional" are meant to allow easy extension
30 by wrapper DTDs.
31 -->
33 <!-- Attributes
34 ================================================================== -->
36 <!-- Boolean: no if zero(s), yes if any other value. -->
37 <!ENTITY % yesorno "NMTOKEN">
39 <!-- Emphasize that the attribute value must be a number. -->
40 <!ENTITY % number "NMTOKEN">
42 <!-- A number which may be immediately followed by a unit. -->
43 <!ENTITY % measure "NMTOKEN">
45 <!ENTITY % additional.basic.atts "">
46 <!--
47 Attributes shared by all elements in this DTD:
49 - `id` is a unique identifier, typically assigned by the system.
50 - `name` is an identifier assigned in the markup.
51 - `dupname` is the same as `name`, used when it's a duplicate.
52 - `source` is the name of the source of this document or fragment.
53 - `class` is used to transmit individuality information forward.
54 -->
55 <!ENTITY % basic.atts
56 " ids NMTOKENS #IMPLIED
57 names CDATA #IMPLIED
58 dupnames CDATA #IMPLIED
59 source CDATA #IMPLIED
60 classes NMTOKENS #IMPLIED
61 %additional.basic.atts; ">
63 <!-- External reference to a URI/URL. -->
64 <!ENTITY % refuri.att
65 " refuri CDATA #IMPLIED ">
67 <!-- Internal reference to the `id` attribute of an element. -->
68 <!ENTITY % refid.att
69 " refid IDREF #IMPLIED ">
71 <!-- Space-separated list of id references, for backlinks. -->
72 <!ENTITY % backrefs.att
73 " backrefs IDREFS #IMPLIED ">
75 <!--
76 Internal reference to the `name` attribute of an element. On a
77 'target' element, 'refname' indicates an indirect target which may
78 resolve to either an internal or external reference.
79 -->
80 <!ENTITY % refname.att
81 " refname NMTOKENS #IMPLIED ">
83 <!ENTITY % additional.reference.atts "">
84 <!-- Collected hyperlink reference attributes. -->
85 <!ENTITY % reference.atts
86 " %refuri.att;
87 %refid.att;
88 %refname.att;
89 %additional.reference.atts; ">
91 <!-- Unnamed hyperlink. -->
92 <!ENTITY % anonymous.att
93 " anonymous %yesorno; #IMPLIED ">
95 <!-- Auto-numbered footnote or title. -->
96 <!ENTITY % auto.att
97 " auto CDATA #IMPLIED ">
99 <!-- XML standard attribute for whitespace-preserving elements. -->
100 <!ENTITY % fixedspace.att
101 " xml:space (default | preserve) #FIXED 'preserve' ">
103 <!ENTITY % align-h.att
104 " align (left | center | right) #IMPLIED ">
106 <!ENTITY % align-hv.att
107 " align (top | middle | bottom | left | center | right) #IMPLIED ">
110 <!-- Element OR-Lists
111 ============================================================= -->
113 <!ENTITY % additional.bibliographic.elements "">
114 <!ENTITY % bibliographic.elements
115 " author | authors | organization | address | contact
116 | version | revision | status | date | copyright
117 | field
118 %additional.bibliographic.elements; ">
120 <!ENTITY % additional.section.elements "">
121 <!ENTITY % section.elements
122 " section
123 %additional.section.elements; ">
125 <!ENTITY % additional.body.elements "">
126 <!ENTITY % body.elements
127 " paragraph | compound | container | literal_block | doctest_block
128 | line_block | block_quote
129 | table | figure | image | footnote | citation | rubric
130 | bullet_list | enumerated_list | definition_list | field_list
131 | option_list
132 | attention | caution | danger | error | hint | important | note
133 | tip | warning | admonition
134 | reference | target | substitution_definition | comment | pending
135 | system_message | raw
136 %additional.body.elements; ">
138 <!ENTITY % additional.inline.elements "">
139 <!ENTITY % inline.elements
140 " emphasis | strong | literal
141 | reference | footnote_reference | citation_reference
142 | substitution_reference | title_reference
143 | abbreviation | acronym | subscript | superscript
144 | inline | problematic | generated
145 | target | image | raw
146 %additional.inline.elements; ">
149 <!-- Element Content Models
150 ================================================================== -->
152 <!-- The structure model may not end with a transition. -->
153 <!ENTITY % structure.model
154 " ( ( (%body.elements; | topic | sidebar)+, transition? )*,
155 ( (%section.elements;), (transition?, (%section.elements;) )* )? )">
157 <!ENTITY % text.model
158 " (#PCDATA | %inline.elements;)* ">
161 <!-- Table Model
162 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
164 This DTD uses the Exchange subset of the CALS-table model (OASIS
165 Technical Memorandum 9901:1999 "XML Exchange Table Model DTD",
166 http://www.oasis-open.org/html/tm9901.htm).
169 <!ENTITY % calstblx PUBLIC
170 "-//OASIS//DTD XML Exchange Table Model 19990315//EN"
171 "soextblx.dtd">
173 <!-- These parameter entities customize the table model DTD. -->
174 <!ENTITY % bodyatt " %basic.atts; "> <!-- table elt -->
175 <!ENTITY % tbl.tgroup.att " %basic.atts; ">
176 <!ENTITY % tbl.thead.att " %basic.atts; ">
177 <!ENTITY % tbl.tbody.att " %basic.atts; ">
178 <!ENTITY % tbl.colspec.att
179 " %basic.atts;
180 stub %yesorno; #IMPLIED ">
181 <!ENTITY % tbl.row.att " %basic.atts; ">
182 <!ENTITY % tbl.entry.mdl " (%body.elements;)* ">
183 <!ENTITY % tbl.entry.att
184 " %basic.atts;
185 morecols %number; #IMPLIED ">
187 <!--
188 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
189 Root Element
190 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
193 <!-- Optional elements may be generated by internal processing. -->
194 <!ELEMENT document
195 ( (title, subtitle?)?,
196 decoration?,
197 (docinfo, transition?)?,
198 %structure.model; )>
199 <!ATTLIST document
200 %basic.atts;
201 title CDATA #IMPLIED>
203 <!--
204 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
205 Title Elements
206 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
209 <!ELEMENT title %text.model;>
210 <!ATTLIST title
211 %basic.atts;
212 %refid.att;
213 %auto.att;>
215 <!ELEMENT subtitle %text.model;>
216 <!ATTLIST subtitle %basic.atts;>
218 <!--
219 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
220 Bibliographic Elements
221 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
224 <!-- Container for bibliographic elements. May not be empty. -->
225 <!ELEMENT docinfo (%bibliographic.elements;)+>
226 <!ATTLIST docinfo %basic.atts;>
228 <!-- Container for bibliographic elements. May not be empty.
229 Eventual replacement for docinfo? -->
230 <!ELEMENT info (%bibliographic.elements;)+>
231 <!ATTLIST info %basic.atts;>
233 <!ELEMENT author %text.model;>
234 <!ATTLIST author %basic.atts;>
236 <!ELEMENT authors (author, organization?, address?, contact?)+>
237 <!ATTLIST authors %basic.atts;>
239 <!ELEMENT organization %text.model;>
240 <!ATTLIST organization %basic.atts;>
242 <!ELEMENT address %text.model;>
243 <!ATTLIST address
244 %basic.atts;
245 %fixedspace.att;>
247 <!ELEMENT contact %text.model;>
248 <!ATTLIST contact %basic.atts;>
250 <!ELEMENT version %text.model;>
251 <!ATTLIST version %basic.atts;>
253 <!ELEMENT revision %text.model;>
254 <!ATTLIST revision %basic.atts;>
256 <!ELEMENT status %text.model;>
257 <!ATTLIST status %basic.atts;>
259 <!ELEMENT date %text.model;>
260 <!ATTLIST date %basic.atts;>
262 <!ELEMENT copyright %text.model;>
263 <!ATTLIST copyright %basic.atts;>
265 <!--
266 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
267 Decoration Elements
268 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
271 <!ELEMENT decoration (header?, footer?)>
272 <!ATTLIST decoration %basic.atts;>
274 <!ELEMENT header (%body.elements;)+>
275 <!ATTLIST header %basic.atts;>
277 <!ELEMENT footer (%body.elements;)+>
278 <!ATTLIST footer %basic.atts;>
280 <!--
281 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
282 Structural Elements
283 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
286 <!ELEMENT section
287 (title, subtitle?, info?, decoration?, %structure.model;)>
288 <!ATTLIST section %basic.atts;>
290 <!ELEMENT topic (title?, (%body.elements;)+)>
291 <!ATTLIST topic %basic.atts;>
293 <!ELEMENT sidebar (title, subtitle?, (%body.elements; | topic)+)>
294 <!ATTLIST sidebar %basic.atts;>
296 <!ELEMENT transition EMPTY>
297 <!ATTLIST transition %basic.atts;>
299 <!--
300 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
301 Body Elements
302 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
305 <!ELEMENT paragraph %text.model;>
306 <!ATTLIST paragraph %basic.atts;>
308 <!ELEMENT compound (%body.elements;)+>
309 <!ATTLIST compound %basic.atts;>
311 <!ELEMENT container (%body.elements;)+>
312 <!ATTLIST container %basic.atts;>
314 <!ELEMENT bullet_list (list_item+)>
315 <!ATTLIST bullet_list
316 %basic.atts;
317 bullet CDATA #IMPLIED>
319 <!ELEMENT enumerated_list (list_item+)>
320 <!ATTLIST enumerated_list
321 %basic.atts;
322 enumtype (arabic | loweralpha | upperalpha
323 | lowerroman | upperroman)
324 #IMPLIED
325 prefix CDATA #IMPLIED
326 suffix CDATA #IMPLIED
327 start %number; #IMPLIED>
329 <!ELEMENT list_item (%body.elements;)*>
330 <!ATTLIST list_item %basic.atts;>
332 <!ELEMENT definition_list (definition_list_item+)>
333 <!ATTLIST definition_list %basic.atts;>
335 <!ELEMENT definition_list_item (term, classifier*, definition)>
336 <!ATTLIST definition_list_item %basic.atts;>
338 <!ELEMENT term %text.model;>
339 <!ATTLIST term %basic.atts;>
341 <!ELEMENT classifier %text.model;>
342 <!ATTLIST classifier %basic.atts;>
344 <!ELEMENT definition (%body.elements;)+>
345 <!ATTLIST definition %basic.atts;>
347 <!ELEMENT field_list (field+)>
348 <!ATTLIST field_list %basic.atts;>
350 <!ELEMENT field (field_name, field_body)>
351 <!ATTLIST field %basic.atts;>
353 <!ELEMENT field_name %text.model;>
354 <!ATTLIST field_name %basic.atts;>
356 <!-- May be empty. -->
357 <!ELEMENT field_body (%body.elements;)*>
358 <!ATTLIST field_body %basic.atts;>
360 <!ELEMENT option_list (option_list_item+)>
361 <!ATTLIST option_list %basic.atts;>
363 <!ELEMENT option_list_item (option_group, description)>
364 <!ATTLIST option_list_item %basic.atts;>
366 <!ELEMENT option_group (option+)>
367 <!ATTLIST option_group %basic.atts;>
369 <!ELEMENT option (option_string, option_argument*)>
370 <!ATTLIST option %basic.atts;>
372 <!ELEMENT option_string (#PCDATA)>
373 <!ATTLIST option_string %basic.atts;>
375 <!--
376 `delimiter` contains the text preceding the `option_argument`: either
377 the text separating it from the `option_string` (typically either "="
378 or " ") or the text between option arguments (typically either "," or
379 " ").
381 <!ELEMENT option_argument (#PCDATA)>
382 <!ATTLIST option_argument
383 %basic.atts;
384 delimiter CDATA #IMPLIED>
386 <!ELEMENT description (%body.elements;)+>
387 <!ATTLIST description %basic.atts;>
389 <!ELEMENT literal_block %text.model;>
390 <!ATTLIST literal_block
391 %basic.atts;
392 %fixedspace.att;>
394 <!ELEMENT line_block (line | line_block)+>
395 <!ATTLIST line_block %basic.atts;>
397 <!ELEMENT line %text.model;>
398 <!ATTLIST line %basic.atts;>
400 <!ELEMENT block_quote ((%body.elements;)+, attribution?)>
401 <!ATTLIST block_quote %basic.atts;>
403 <!ELEMENT attribution %text.model;>
404 <!ATTLIST attribution %basic.atts;>
406 <!ELEMENT doctest_block %text.model;>
407 <!ATTLIST doctest_block
408 %basic.atts;
409 %fixedspace.att;>
411 <!ELEMENT attention (%body.elements;)+>
412 <!ATTLIST attention %basic.atts;>
414 <!ELEMENT caution (%body.elements;)+>
415 <!ATTLIST caution %basic.atts;>
417 <!ELEMENT danger (%body.elements;)+>
418 <!ATTLIST danger %basic.atts;>
420 <!ELEMENT error (%body.elements;)+>
421 <!ATTLIST error %basic.atts;>
423 <!ELEMENT hint (%body.elements;)+>
424 <!ATTLIST hint %basic.atts;>
426 <!ELEMENT important (%body.elements;)+>
427 <!ATTLIST important %basic.atts;>
429 <!ELEMENT note (%body.elements;)+>
430 <!ATTLIST note %basic.atts;>
432 <!ELEMENT tip (%body.elements;)+>
433 <!ATTLIST tip %basic.atts;>
435 <!ELEMENT warning (%body.elements;)+>
436 <!ATTLIST warning %basic.atts;>
438 <!ELEMENT admonition (title, (%body.elements;)+)>
439 <!ATTLIST admonition %basic.atts;>
441 <!ELEMENT footnote (label?, (%body.elements;)+)>
442 <!ATTLIST footnote
443 %basic.atts;
444 %backrefs.att;
445 %auto.att;>
447 <!ELEMENT citation (label, (%body.elements;)+)>
448 <!ATTLIST citation
449 %basic.atts;
450 %backrefs.att;>
452 <!ELEMENT label (#PCDATA)>
453 <!ATTLIST label %basic.atts;>
455 <!ELEMENT rubric %text.model;>
456 <!ATTLIST rubric %basic.atts;>
458 <!-- Empty except when used as an inline element. -->
459 <!ELEMENT target %text.model;>
460 <!ATTLIST target
461 %basic.atts;
462 %reference.atts;
463 %anonymous.att;>
465 <!ELEMENT substitution_definition %text.model;>
466 <!ATTLIST substitution_definition
467 %basic.atts;
468 ltrim %yesorno; #IMPLIED
469 rtrim %yesorno; #IMPLIED>
471 <!ELEMENT comment (#PCDATA)>
472 <!ATTLIST comment
473 %basic.atts;
474 %fixedspace.att;>
476 <!ELEMENT pending EMPTY>
477 <!ATTLIST pending %basic.atts;>
479 <!ELEMENT figure (image, ((caption, legend?) | legend)) >
480 <!ATTLIST figure
481 %basic.atts;
482 %align-h.att;
483 width %number; #IMPLIED>
485 <!-- Also an inline element. -->
486 <!ELEMENT image EMPTY>
487 <!ATTLIST image
488 %basic.atts;
489 %align-hv.att;
490 uri CDATA #REQUIRED
491 alt CDATA #IMPLIED
492 height %measure; #IMPLIED
493 width %measure; #IMPLIED
494 scale %number; #IMPLIED>
496 <!ELEMENT caption %text.model;>
497 <!ATTLIST caption %basic.atts;>
499 <!ELEMENT legend (%body.elements;)+>
500 <!ATTLIST legend %basic.atts;>
502 <!--
503 Table elements: table, tgroup, colspec, thead, tbody, row, entry.
505 %calstblx;
507 <!-- Used to record processing information. -->
508 <!ELEMENT system_message (%body.elements;)+>
509 <!ATTLIST system_message
510 %basic.atts;
511 %backrefs.att;
512 level %number; #IMPLIED
513 line %number; #IMPLIED
514 type NMTOKEN #IMPLIED>
516 <!-- Used to pass raw data through the system. Also inline. -->
517 <!ELEMENT raw %text.model;>
518 <!ATTLIST raw
519 %basic.atts;
520 %fixedspace.att;
521 format NMTOKENS #IMPLIED>
523 <!--
524 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
525 Inline Elements
526 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
528 Inline elements occur within the text contents of body elements. Some
529 nesting of inline elements is allowed by these definitions, with the
530 following caveats:
532 - An inline element may not contain a nested element of the same type
533 (e.g. <strong> may not contain another <strong>).
534 - Nested inline elements may or may not be supported by individual
535 applications using this DTD.
536 - The inline elements <footnote_reference>, <citation_reference>,
537 <literal>, and <image> do not support nesting.
540 <!ELEMENT emphasis %text.model;>
541 <!ATTLIST emphasis %basic.atts;>
543 <!ELEMENT strong %text.model;>
544 <!ATTLIST strong %basic.atts;>
546 <!ELEMENT literal (#PCDATA)>
547 <!ATTLIST literal %basic.atts;>
549 <!-- Can also be a body element, when it contains an "image" element. -->
550 <!ELEMENT reference %text.model;>
551 <!ATTLIST reference
552 name CDATA #IMPLIED
553 %basic.atts;
554 %reference.atts;
555 %anonymous.att;>
557 <!ELEMENT footnote_reference (#PCDATA)>
558 <!ATTLIST footnote_reference
559 %basic.atts;
560 %refid.att;
561 %refname.att;
562 %auto.att;>
564 <!ELEMENT citation_reference (#PCDATA)>
565 <!ATTLIST citation_reference
566 %basic.atts;
567 %refid.att;
568 %refname.att;>
570 <!ELEMENT substitution_reference %text.model;>
571 <!ATTLIST substitution_reference
572 %basic.atts;
573 %refname.att;>
575 <!ELEMENT title_reference %text.model;>
576 <!ATTLIST title_reference %basic.atts;>
578 <!ELEMENT abbreviation %text.model;>
579 <!ATTLIST abbreviation %basic.atts;>
581 <!ELEMENT acronym %text.model;>
582 <!ATTLIST acronym %basic.atts;>
584 <!ELEMENT superscript %text.model;>
585 <!ATTLIST superscript %basic.atts;>
587 <!ELEMENT subscript %text.model;>
588 <!ATTLIST subscript %basic.atts;>
590 <!ELEMENT inline %text.model;>
591 <!ATTLIST inline %basic.atts;>
593 <!ELEMENT problematic %text.model;>
594 <!ATTLIST problematic
595 %basic.atts;
596 %refid.att;>
598 <!ELEMENT generated %text.model;>
599 <!ATTLIST generated %basic.atts;>
601 <!--
602 Local Variables:
603 mode: sgml
604 indent-tabs-mode: nil
605 fill-column: 70
606 End: