2 ======================================================================
4 ======================================================================
6 :Contact: docutils-develop@lists.sourceforge.net
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
23 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
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
"">
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.
56 " ids NMTOKENS #IMPLIED
58 dupnames CDATA #IMPLIED
60 classes NMTOKENS #IMPLIED
61 %additional.basic.atts; ">
63 <!-- External reference to a URI/URL. -->
65 " refuri CDATA #IMPLIED ">
67 <!-- Internal reference to the `id` attribute of an element. -->
69 " refid IDREF #IMPLIED ">
71 <!-- Space-separated list of id references, for backlinks. -->
72 <!ENTITY % backrefs.att
73 " backrefs IDREFS #IMPLIED ">
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.
80 <!ENTITY % refname.att
81 " refname NMTOKENS #IMPLIED ">
83 <!ENTITY % additional.reference.atts
"">
84 <!-- Collected hyperlink reference attributes. -->
85 <!ENTITY % reference.atts
89 %additional.reference.atts; ">
91 <!-- Unnamed hyperlink. -->
92 <!ENTITY % anonymous.att
93 " anonymous %yesorno; #IMPLIED ">
95 <!-- Auto-numbered footnote or title. -->
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
118 %additional.bibliographic.elements; ">
120 <!ENTITY % additional.section.elements
"">
121 <!ENTITY % section.elements
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
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;)* ">
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"
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
180 stub %yesorno; #IMPLIED ">
181 <!ENTITY % tbl.row.att
" %basic.atts; ">
182 <!ENTITY % tbl.entry.mdl
" (%body.elements;)* ">
183 <!ENTITY % tbl.entry.att
185 morecols %number; #IMPLIED ">
188 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
190 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
193 <!-- Optional elements may be generated by internal processing. -->
195 ( (title, subtitle?)?,
197 (docinfo, transition?)?,
201 title CDATA #IMPLIED
>
204 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
206 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
209 <!ELEMENT title %text.model;
>
215 <!ELEMENT subtitle %text.model;
>
216 <!ATTLIST subtitle %basic.atts;
>
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;
>
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;
>
266 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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;
>
281 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
283 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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;
>
300 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
317 bullet CDATA #IMPLIED
>
319 <!ELEMENT enumerated_list (list_item+)
>
320 <!ATTLIST enumerated_list
322 enumtype (arabic | loweralpha | upperalpha
323 | lowerroman | upperroman)
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;
>
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
381 <!ELEMENT option_argument (#PCDATA)
>
382 <!ATTLIST option_argument
384 delimiter CDATA #IMPLIED
>
386 <!ELEMENT description (%body.elements;)+
>
387 <!ATTLIST description %basic.atts;
>
389 <!ELEMENT literal_block %text.model;
>
390 <!ATTLIST literal_block
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
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;)+)
>
447 <!ELEMENT citation (label, (%body.elements;)+)
>
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;
>
465 <!ELEMENT substitution_definition %text.model;
>
466 <!ATTLIST substitution_definition
468 ltrim %yesorno; #IMPLIED
469 rtrim %yesorno; #IMPLIED
>
471 <!ELEMENT comment (#PCDATA)
>
476 <!ELEMENT pending EMPTY
>
477 <!ATTLIST pending %basic.atts;
>
479 <!ELEMENT figure (image, ((caption, legend?) | legend))
>
483 width %number; #IMPLIED
>
485 <!-- Also an inline element. -->
486 <!ELEMENT image EMPTY
>
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;
>
503 Table elements: table, tgroup, colspec, thead, tbody, row, entry.
507 <!-- Used to record processing information. -->
508 <!ELEMENT system_message (%body.elements;)+
>
509 <!ATTLIST system_message
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;
>
521 format NMTOKENS #IMPLIED
>
524 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
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;
>
557 <!ELEMENT footnote_reference (#PCDATA)
>
558 <!ATTLIST footnote_reference
564 <!ELEMENT citation_reference (#PCDATA)
>
565 <!ATTLIST citation_reference
570 <!ELEMENT substitution_reference %text.model;
>
571 <!ATTLIST substitution_reference
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
598 <!ELEMENT generated %text.model;
>
599 <!ATTLIST generated %basic.atts;
>
604 indent-tabs-mode: nil