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