un.real <battal84@gmail.com>:
[reactos.git] / reactos / lib / libxml2 / test / valid / dtds / spec.dtd
1 <!-- ............................................................... -->
2 <!-- XML specification DTD ......................................... -->
3 <!-- ............................................................... -->
4
5 <!--
6 TYPICAL INVOCATION:
7 # <!DOCTYPE spec PUBLIC
8 # "-//W3C//DTD Specification::19980323//EN"
9 # "http://www.w3.org/XML/Group/DTD/xmlspec.dtd">
10
11 PURPOSE:
12 This DTD was developed for use with the XML family of W3C
13 specifications. It is an XML-compliant DTD based in part on
14 the TEI Lite and Sweb DTDs.
15
16 DEPENDENCIES:
17 None.
18
19 CHANGE HISTORY:
20 The list of changes is at the end of the DTD.
21
22 For all details, see the design report at:
23
24 <http://www.w3.org/XML/Group/DTD/xmlspec-report.htm>
25
26 The "typical invocation" FPI always gets updated to reflect the
27 date of the most recent changes.
28
29 Search this file for "#" in the first column to see change history
30 comments.
31
32 MAINTAINER:
33 Eve Maler
34 ArborText Inc.
35 elm@arbortext.com
36 voice: +1 781 270 5750
37 fax: +1 781 273 3760
38 -->
39
40 <!-- ............................................................... -->
41 <!-- Entities for characters and symbols ........................... -->
42
43 <!--
44 #1998-03-10: maler: Added &ldquo; and &rdquo;.
45 # Used 8879:1986-compatible decimal character
46 # references.
47 # Merged charent.mod file back into main file.
48 -->
49
50 <!ENTITY lt "&#38;#60;">
51 <!ENTITY gt "&#62;">
52 <!ENTITY amp "&#38;#38;">
53 <!ENTITY apos "&#39;">
54 <!ENTITY quot "&#34;">
55 <!ENTITY mdash "--">
56 <!ENTITY nbsp "&#160;">
57 <!ENTITY ldquo "#x201C;">
58 <!ENTITY rdquo "#x201D;">
59
60 <!-- ............................................................... -->
61 <!-- Entities for classes of standalone elements ................... -->
62
63 <!--
64 #1997-10-16: maler: Added table to %illus.class;.
65 #1997-11-28: maler: Added htable to %illus.class;.
66 #1997-12-29: maler: IGNOREd table.
67 #1998-03-10: maler: Removed SGML Open-specific %illus.class;.
68 # Added "local" entities for customization.
69 -->
70
71 <!ENTITY % local.p.class "">
72 <!ENTITY % p.class "p
73 %local.p.class;">
74
75 <!ENTITY % local.statusp.class "">
76 <!ENTITY % statusp.class "statusp
77 %local.statusp.class;">
78
79 <!ENTITY % local.list.class "">
80 <!ENTITY % list.class "ulist|olist|slist|glist
81 %local.list.class;">
82
83 <!ENTITY % local.speclist.class "">
84 <!ENTITY % speclist.class "orglist|blist
85 %local.speclist.class;">
86
87 <!ENTITY % local.note.class "">
88 <!ENTITY % note.class "note|wfcnote|vcnote
89 %local.note.class;">
90
91 <!ENTITY % local.illus.class "">
92 <!ENTITY % illus.class "eg|graphic|scrap|htable
93 %local.illus.class;">
94
95 <!-- ............................................................... -->
96 <!-- Entities for classes of phrase-level elements ................. -->
97
98 <!--
99 #1997-12-29: maler: Added xspecref to %ref.class;.
100 #1998-03-10: maler: Added %ednote.class;.
101 # Added "local" entities for customization.
102 -->
103
104 <!ENTITY % local.annot.class "">
105 <!ENTITY % annot.class "footnote
106 %local.annot.class;">
107
108 <!ENTITY % local.termdef.class "">
109 <!ENTITY % termdef.class "termdef|term
110 %local.termdef.class;">
111
112 <!ENTITY % local.emph.class "">
113 <!ENTITY % emph.class "emph|quote
114 %local.emph.class;">
115
116 <!ENTITY % local.ref.class "">
117 <!ENTITY % ref.class "bibref|specref|termref|titleref
118 |xspecref|xtermref
119 %local.ref.class;">
120
121 <!ENTITY % local.loc.class "">
122 <!ENTITY % loc.class "loc
123 %local.loc.class;">
124
125 <!ENTITY % local.tech.class "">
126 <!ENTITY % tech.class "kw|nt|xnt|code
127 %local.tech.class;">
128
129 <!ENTITY % local.ednote.class "">
130 <!ENTITY % ednote.class "ednote
131 %local.ednote.class;">
132
133 <!-- ............................................................... -->
134 <!-- Entities for mixtures of standalone elements .................. -->
135
136 <!--
137 #1997-09-30: maler: Created %p.mix; to eliminate p from self.
138 #1997-09-30: maler: Added %speclist.class; to %obj.mix; and %p.mix;.
139 #1997-09-30: maler: Added %note.class; to %obj.mix; and %p.mix;.
140 #1997-10-16: maler: Created %entry.mix;. Note that some elements
141 # left out here are still allowed in termdef,
142 # which entry can contain through %p.pcd.mix;.
143 #1997-11-28: maler: Added %p.class; to %statusobj.mix;.
144 #1998-03-10: maler: Added %ednote.class; to all mixtures, except
145 # %p.mix; and %statusobj.mix;, because paragraphs
146 # and status paragraphs will contain ednote
147 # through %p.pcd.mix;.
148 #1998-03-123: maler: Added %termdef.mix; (broken out from
149 # %termdef.pcd.mix;).
150 -->
151
152 <!ENTITY % div.mix
153 "%p.class;|%list.class;|%speclist.class;|%note.class;
154 |%illus.class;|%ednote.class;">
155 <!ENTITY % obj.mix
156 "%p.class;|%list.class;|%speclist.class;|%note.class;
157 |%illus.class;|%ednote.class;">
158 <!ENTITY % p.mix
159 "%list.class;|%speclist.class;|%note.class;|%illus.class;">
160 <!ENTITY % entry.mix
161 "%list.class;|note|eg|graphic|%ednote.class;">
162 <!ENTITY % statusobj.mix
163 "%p.class;|%statusp.class;|%list.class;">
164 <!ENTITY % hdr.mix
165 "%p.class;|%list.class;|%ednote.class;">
166 <!ENTITY % termdef.mix
167 "%note.class;|%illus.class;">
168
169 <!-- ............................................................... -->
170 <!-- Entities for mixtures of #PCDATA and phrase-level elements .... -->
171
172 <!-- Note that %termdef.pcd.mix contains %note.class;
173 and %illus.class;, considered standalone elements. -->
174
175 <!--
176 #1997-09-30: maler: Added scrap and %note.class; to %termdef.pcd.mix;.
177 #1997-11-28: maler: Added %loc.class; to %p.pcd.mix;.
178 #1998-03-10: maler: Added %ednote.class; to all mixtures.
179 #1998-03-23: maler: Moved some %termdef.pcd.mix; stuff out to
180 # %termdef.mix;.
181 -->
182
183 <!ENTITY % p.pcd.mix
184 "#PCDATA|%annot.class;|%termdef.class;|%emph.class;
185 |%ref.class;|%tech.class;|%loc.class;|%ednote.class;">
186 <!ENTITY % statusp.pcd.mix
187 "#PCDATA|%annot.class;|%termdef.class;|%emph.class;
188 |%ref.class;|%tech.class;|%loc.class;|%ednote.class;">
189 <!ENTITY % head.pcd.mix
190 "#PCDATA|%annot.class;|%emph.class;|%tech.class;|%ednote.class;">
191 <!ENTITY % label.pcd.mix
192 "#PCDATA|%annot.class;|%termdef.class;|%emph.class;|%tech.class;
193 |%ednote.class;">
194 <!ENTITY % eg.pcd.mix
195 "#PCDATA|%annot.class;|%emph.class;|%ednote.class;">
196 <!ENTITY % termdef.pcd.mix
197 "#PCDATA|term|%emph.class;|%ref.class;|%tech.class;
198 |%ednote.class;">
199 <!ENTITY % bibl.pcd.mix
200 "#PCDATA|%emph.class;|%ref.class;|%loc.class;|%ednote.class;">
201 <!ENTITY % tech.pcd.mix
202 "#PCDATA|%ednote.class;">
203 <!ENTITY % loc.pcd.mix
204 "#PCDATA|%loc.class;|%ednote.class;">
205
206 <!-- ............................................................... -->
207 <!-- Entities for customizable content models ...................... -->
208
209 <!--
210 #1998-03-10: maler: Added customization entities.
211 -->
212
213 <!ENTITY % spec.mdl
214 "header, front?, body, back?">
215
216 <!ENTITY % header.mdl
217 "title, subtitle?, version, w3c-designation, w3c-doctype,
218 pubdate, notice*, publoc, latestloc?, prevlocs?, authlist,
219 abstract, status, pubstmt?, sourcedesc?, langusage,
220 revisiondesc">
221
222 <!ENTITY % pubdate.mdl
223 "day?, month, year">
224
225 <!-- ............................................................... -->
226 <!-- Entities for common attributes ................................ -->
227
228 <!-- key attribute:
229 Optionally provides a sorting or indexing key, for cases when
230 the element content is inappropriate for this purpose. -->
231 <!ENTITY % key.att
232 'key CDATA #IMPLIED'>
233
234 <!-- def attribute:
235 Points to the element where the relevant definition can be
236 found, using the IDREF mechanism. %def.att; is for optional
237 def attributes, and %def-req.att; is for required def
238 attributes. -->
239 <!ENTITY % def.att
240 'def IDREF #IMPLIED'>
241 <!ENTITY % def-req.att
242 'def IDREF #REQUIRED'>
243
244 <!-- ref attribute:
245 Points to the element where more information can be found,
246 using the IDREF mechanism. %ref.att; is for optional
247 ref attributes, and %ref-req.att; is for required ref
248 attributes. -->
249 <!ENTITY % ref.att
250 'ref IDREF #IMPLIED'>
251 <!ENTITY % ref-req.att
252 'ref IDREF #REQUIRED'>
253
254 <!--
255 #1998-03-23: maler: Added show and actuate attributes to href.
256 # Added semi-common xml:space attribute.
257 -->
258
259 <!-- HREF and source attributes:
260 Points to the element where more information or source data
261 can be found, using the URL (XLL simple link) mechanism.
262 For some purposes, is associated with additional XLL
263 attributes. %href.att; is for optional HREF attributes,
264 and %href-req.att; is for required HREF attributes.
265 %source-req.att; is for the source attribute, which
266 is always required. -->
267 <!ENTITY % href.att
268 'xml-link CDATA #FIXED "simple"
269 href CDATA #IMPLIED
270 show CDATA #FIXED "embed"
271 actuate CDATA #FIXED "auto"'>
272
273 <!ENTITY % href-req.att
274 'xml-link CDATA #FIXED "simple"
275 href CDATA #REQUIRED
276 show CDATA #FIXED "embed"
277 actuate CDATA #FIXED "auto"'>
278
279 <!ENTITY % source-req.att
280 'xml-link CDATA #FIXED "simple"
281 xml:attributes NMTOKENS #FIXED "href source"
282 source CDATA #REQUIRED
283 show CDATA #FIXED "embed"
284 actuate CDATA #FIXED "auto"'>
285
286 <!-- xml:space attribute:
287 Indicates that the element contains white space
288 that the formatter or other application should retain,
289 as appropriate to its function. -->
290 <!ENTITY % xmlspace.att
291 'xml:space (default
292 |preserve) #FIXED "preserve"'>
293
294 <!-- Common attributes:
295 Every element has an ID attribute (sometimes required,
296 but usually optional) for links, and a Role attribute
297 for extending the useful life of the DTD by allowing
298 authors to make subclasses for any element. %common.att;
299 is for common attributes where the ID is optional, and
300 %common-idreq.att; is for common attributes where the
301 ID is required. -->
302 <!ENTITY % common.att
303 'id ID #IMPLIED
304 role NMTOKEN #IMPLIED'>
305 <!ENTITY % common-idreq.att
306 'id ID #REQUIRED
307 role NMTOKEN #IMPLIED'>
308
309 <!-- ............................................................... -->
310 <!-- Common elements ............................................... -->
311
312 <!-- head: Title on divisions, productions, and the like -->
313 <!ELEMENT head (%head.pcd.mix;)*>
314 <!ATTLIST head %common.att;>
315
316 <!-- ............................................................... -->
317 <!-- Major specification structure ................................. -->
318
319 <!--
320 #1998-03-10: maler: Made spec content model easily customizable.
321 -->
322
323 <!ELEMENT spec (%spec.mdl;)>
324 <!ATTLIST spec %common.att;>
325
326 <!ELEMENT front (div1+)>
327 <!ATTLIST front %common.att;>
328
329 <!ELEMENT body (div1+)>
330 <!ATTLIST body %common.att;>
331
332 <!--
333 #1997-09-30: maler: Added inform-div1 to back content.
334 -->
335
336 <!ELEMENT back ((div1+, inform-div1*) | inform-div1+)>
337 <!ATTLIST back %common.att;>
338
339 <!ELEMENT div1 (head, (%div.mix;)*, div2*)>
340 <!ATTLIST div1 %common.att;>
341
342 <!--
343 #1997-09-30: maler: Added inform-div1 declarations.
344 -->
345
346 <!-- inform-div1: Non-normative division in back matter -->
347 <!ELEMENT inform-div1 (head, (%div.mix;)*, div2*)>
348 <!ATTLIST inform-div1 %common.att;>
349
350 <!ELEMENT div2 (head, (%div.mix;)*, div3*)>
351 <!ATTLIST div2 %common.att;>
352
353 <!ELEMENT div3 (head, (%div.mix;)*, div4*)>
354 <!ATTLIST div3 %common.att;>
355
356 <!ELEMENT div4 (head, (%div.mix;)*)>
357 <!ATTLIST div4 %common.att;>
358
359 <!-- Specification header .......... -->
360
361 <!--
362 #1998-03-10: maler: Made header content model easily customizable.
363 -->
364
365 <!ELEMENT header (%header.mdl;)>
366 <!ATTLIST header %common.att;>
367
368 <!-- Example of title: "Extensible Cheese Language (XCL)" -->
369 <!ELEMENT title (#PCDATA)>
370 <!ATTLIST title %common.att;>
371
372 <!-- Example of subtitle: "A Cheesy Specification" -->
373 <!ELEMENT subtitle (#PCDATA)>
374 <!ATTLIST subtitle %common.att;>
375
376 <!-- Example of version: "Version 666.0" -->
377 <!ELEMENT version (#PCDATA)>
378 <!ATTLIST version %common.att;>
379
380 <!-- Example of w3c-designation: "WD-xcl-19991231" -->
381 <!ELEMENT w3c-designation (#PCDATA)>
382 <!ATTLIST w3c-designation %common.att;>
383
384 <!-- Example of w3c-doctype: "World Wide Web Consortium Working
385 Draft" -->
386 <!ELEMENT w3c-doctype (#PCDATA)>
387 <!ATTLIST w3c-doctype %common.att;>
388
389 <!--
390 #1998-03-10: maler: Made pubdate content model easily customizable.
391 -->
392
393 <!ELEMENT pubdate (%pubdate.mdl;)>
394 <!ATTLIST pubdate %common.att;>
395
396 <!ELEMENT day (#PCDATA)>
397 <!ATTLIST day %common.att;>
398
399 <!ELEMENT month (#PCDATA)>
400 <!ATTLIST month %common.att;>
401
402 <!ELEMENT year (#PCDATA)>
403 <!ATTLIST year %common.att;>
404
405 <!-- Example of notice: "This draft is for public comment..." -->
406 <!ELEMENT notice (%hdr.mix;)+>
407 <!ATTLIST notice %common.att;>
408
409 <!ELEMENT publoc (loc+)>
410 <!ATTLIST publoc %common.att;>
411
412 <!ELEMENT prevlocs (loc+)>
413 <!ATTLIST prevlocs %common.att;>
414
415 <!ELEMENT latestloc (loc+)>
416 <!ATTLIST latestloc %common.att;>
417
418 <!-- loc (defined in "Phrase-level elements" below) -->
419
420 <!ELEMENT authlist (author+)>
421 <!ATTLIST authlist %common.att;>
422
423 <!--
424 #1997-09-30: maler: Made affiliation optional.
425 #1998-03-10: maler: Made email optional.
426 -->
427
428 <!ELEMENT author (name, affiliation?, email?)>
429 <!ATTLIST author %common.att;>
430
431 <!ELEMENT name (#PCDATA)>
432 <!ATTLIST name
433 %common.att;
434 %key.att;>
435
436 <!ELEMENT affiliation (#PCDATA)>
437 <!ATTLIST affiliation %common.att;>
438
439 <!ELEMENT email (#PCDATA)>
440 <!-- HREF attribute:
441 email functions as a hypertext reference through this
442 required attribute. Typically the reference would use
443 the mailto: scheme. -->
444 <!ATTLIST email
445 %common.att;
446 %href-req.att;>
447
448 <!-- The status element now contains both statusp and p, and
449 the latter now allows loc. Use p; statusp will be removed
450 eventually. -->
451 <!ELEMENT status (%statusobj.mix;)+>
452 <!ATTLIST status %common.att;>
453
454 <!ELEMENT abstract (%hdr.mix;)*>
455 <!ATTLIST abstract %common.att;>
456
457 <!ELEMENT pubstmt (%hdr.mix;)+>
458 <!ATTLIST pubstmt %common.att;>
459
460 <!ELEMENT sourcedesc (%hdr.mix;)+>
461 <!ATTLIST sourcedesc %common.att;>
462
463 <!ELEMENT langusage (language+)>
464 <!ATTLIST langusage %common.att;>
465
466 <!ELEMENT language (#PCDATA)>
467 <!ATTLIST language %common.att;>
468
469 <!ELEMENT revisiondesc (%hdr.mix;)+>
470 <!ATTLIST revisiondesc %common.att;>
471
472 <!-- ............................................................... -->
473 <!-- Standalone elements ........................................... -->
474
475 <!-- Paragraphs .................... -->
476
477 <!--
478 #1997-09-30: maler: Changed from %obj.mix; to %p.mix;.
479 #1997-12-29: maler: Changed order of %p.mix; and %p.pcd.mix; references.
480 #1997-12-29: maler: Changed order of %statusobj.mix; and %statusp.pcd.mix;
481 # references.
482 -->
483
484 <!ELEMENT p (%p.pcd.mix;|%p.mix;)*>
485 <!ATTLIST p %common.att;>
486
487 <!-- statusp: Special paragraph that allows loc inside it (note that
488 p now also allows loc) -->
489 <!ELEMENT statusp (%statusp.pcd.mix;|%statusobj.mix;)*>
490 <!ATTLIST statusp %common.att;>
491
492 <!-- Lists ......................... -->
493
494 <!ELEMENT ulist (item+)>
495 <!-- spacing attribute:
496 Use "normal" to get normal vertical spacing for items;
497 use "compact" to get less spacing. The default is dependent
498 on the stylesheet. -->
499 <!ATTLIST ulist
500 %common.att;
501 spacing (normal|compact) #IMPLIED>
502
503 <!ELEMENT olist (item+)>
504 <!-- spacing attribute:
505 Use "normal" to get normal vertical spacing for items;
506 use "compact" to get less spacing. The default is dependent
507 on the stylesheet. -->
508 <!ATTLIST olist
509 %common.att;
510 spacing (normal|compact) #IMPLIED>
511
512 <!ELEMENT item (%obj.mix;)+>
513 <!ATTLIST item %common.att;>
514
515 <!ELEMENT slist (sitem+)>
516 <!ATTLIST slist %common.att;>
517
518 <!ELEMENT sitem (%p.pcd.mix;)*>
519 <!ATTLIST sitem %common.att;>
520
521 <!ELEMENT glist (gitem+)>
522 <!ATTLIST glist %common.att;>
523
524 <!ELEMENT gitem (label, def)>
525 <!ATTLIST gitem %common.att;>
526
527 <!ELEMENT label (%label.pcd.mix;)*>
528 <!ATTLIST label %common.att;>
529
530 <!ELEMENT def (%obj.mix;)*>
531 <!ATTLIST def %common.att;>
532
533 <!-- Special lists ................. -->
534
535 <!ELEMENT blist (bibl+)>
536 <!ATTLIST blist %common.att;>
537
538 <!ELEMENT bibl (%bibl.pcd.mix;)*>
539
540 <!-- HREF attribute:
541 bibl optionally functions as a hypertext reference to the
542 referred-to resource through this attribute. -->
543
544 <!ATTLIST bibl
545 %common.att;
546 %href.att;
547 %key.att;>
548
549 <!ELEMENT orglist (member+)>
550 <!ATTLIST orglist %common.att;>
551
552 <!--
553 #1997-09-30: maler: Added optional affiliation.
554 -->
555
556 <!ELEMENT member (name, affiliation?, role?)>
557 <!ATTLIST member %common.att;>
558
559 <!-- name (defined in "Specification header" above) -->
560 <!-- affiliation (defined in "Specification header" above) -->
561
562 <!ELEMENT role (#PCDATA)>
563 <!ATTLIST role %common.att;>
564
565 <!-- Notes ......................... -->
566
567 <!ELEMENT note (%obj.mix;)+>
568 <!ATTLIST note %common.att;>
569
570 <!ELEMENT wfcnote (head, (%obj.mix;)+)>
571 <!-- ID attribute:
572 wfcnote must have an ID so that it can be pointed to
573 from a wfc element in a production. -->
574 <!ATTLIST wfcnote
575 %common-idreq.att;>
576
577 <!ELEMENT vcnote (head, (%obj.mix;)+)>
578 <!-- ID attribute:
579 vcnote must have an ID so that it can be pointed to
580 from a vc element in a production. -->
581 <!ATTLIST vcnote
582 %common-idreq.att;>
583
584 <!-- Illustrations ................. -->
585
586 <!--
587 #1998-03-23: maler: Added xml:space attribute.
588 -->
589
590 <!ELEMENT eg (%eg.pcd.mix;)*>
591 <!ATTLIST eg
592 %common.att;
593 %xmlspace.att;>
594
595 <!ELEMENT graphic EMPTY>
596 <!-- source attribute:
597 The graphic data must reside at the location pointed to.
598 This is a hypertext reference, but for practical purposes,
599 for now it should just be a pathname. -->
600 <!ATTLIST graphic
601 %common.att;
602 %source-req.att;
603 alt CDATA #IMPLIED>
604
605 <!--
606 #1997-11-28: maler: Added prodgroup to scrap and defined it.
607 -->
608
609 <!ELEMENT scrap (head, (prodgroup+ | prod+ | bnf))>
610 <!-- lang attribute:
611 The scrap can link to a description of the language used,
612 found in a language element in the header. -->
613 <!ATTLIST scrap
614 %common.att;
615 lang IDREF #IMPLIED>
616
617 <!ELEMENT prodgroup (prod+)>
618 <!-- pcw<n> attributes:
619 Presentational attributes to control the width
620 of the "pseudo-table" columns used to output
621 groups of productions. -->
622 <!ATTLIST prodgroup
623 %common.att;
624 pcw1 CDATA #IMPLIED
625 pcw2 CDATA #IMPLIED
626 pcw3 CDATA #IMPLIED
627 pcw4 CDATA #IMPLIED
628 pcw5 CDATA #IMPLIED
629 >
630
631 <!ELEMENT prod (lhs, (rhs, (com|wfc|vc)*)+)>
632 <!-- ID attribute:
633 The production must have an ID so that cross-references
634 (specref) and mentions of nonterminals (nt) can link to
635 it. -->
636 <!ATTLIST prod
637 %common-idreq.att;>
638
639 <!ELEMENT lhs (#PCDATA)>
640 <!ATTLIST lhs %common.att;>
641
642 <!ELEMENT rhs (#PCDATA|nt|xnt|com)*>
643 <!ATTLIST rhs %common.att;>
644
645 <!-- nt and xnt (defined in "Phrase-level elements" below) -->
646
647 <!--
648 #1997-11-28: maler: Added loc and bibref to com content.
649 -->
650
651 <!ELEMENT com (#PCDATA|loc|bibref)*>
652 <!ATTLIST com %common.att;>
653
654 <!-- wfc: Should generate the head of the wfcnote pointed to -->
655 <!ELEMENT wfc EMPTY>
656 <!-- def attribute:
657 Each well formedness tagline in a production must link to the
658 wfcnote that defines it. -->
659 <!ATTLIST wfc
660 %def-req.att;
661 %common.att;>
662
663 <!-- vc: Should generate the head of the vcnote pointed to -->
664 <!ELEMENT vc EMPTY>
665 <!-- def attribute:
666 Each validity tagline in a production must link to the vcnote
667 that defines it. -->
668 <!ATTLIST vc
669 %def-req.att;
670 %common.att;>
671
672 <!--
673 #1998-03-23: maler: Added xml:space attribute.
674 -->
675
676 <!-- bnf: Un-marked-up production -->
677 <!ELEMENT bnf (%eg.pcd.mix;)*>
678 <!ATTLIST bnf
679 %common.att;
680 %xmlspace.att;>
681
682 <!--
683 #1997-10-16: maler: Added table mechanism.
684 #1997-11-28: maler: Added non-null system ID to entity declaration.
685 # Added HTML table module.
686 #1997-12-29: maler: IGNOREd SGML Open table model.
687 #1998-03-10: maler: Removed SGML Open table model.
688 # Merged html-tbl.mod file into main file.
689 # Added %common.att; to all HTML table elements.
690 -->
691
692 <!-- TR and TD attributes:
693 Alignment attributes. No default. -->
694 <!ENTITY % trtd.att
695 "align (left
696 |center
697 |right) #IMPLIED
698 valign (top
699 |middle
700 |bottom) #IMPLIED">
701
702 <!ELEMENT htable (htbody+)>
703 <!ATTLIST htable
704 border CDATA "0"
705 cellpadding CDATA "0"
706 align (left
707 |center
708 |right) "left">
709
710 <!ELEMENT htbody (tr+)>
711 <!ATTLIST htbody %common.att;>
712
713 <!ELEMENT tr (td+)>
714 <!ATTLIST tr
715 %common.att;
716 %trtd.att;>
717
718 <!ELEMENT td (%p.pcd.mix;)*>
719 <!ATTLIST td
720 %common.att;
721 %trtd.att;
722 bgcolor CDATA #IMPLIED
723 rowspan CDATA "1"
724 colspan CDATA "1">
725
726 <!-- ............................................................... -->
727 <!-- Phrase-level elements ......................................... -->
728
729 <!-- bibref: Should generate, in square brackets, "key" on bibl -->
730 <!ELEMENT bibref EMPTY>
731 <!-- ref attribute:
732 A bibliography reference must link to the bibl element that
733 describes the resource. -->
734 <!ATTLIST bibref
735 %common.att;
736 %ref-req.att;>
737
738 <!ELEMENT code (%tech.pcd.mix;)*>
739 <!ATTLIST code %common.att;>
740
741 <!--
742 #1998-03-10: maler: Declared ednote and related elements.
743 -->
744
745 <!ELEMENT ednote (name?, date?, edtext)>
746 <!ATTLIST ednote %common.att;>
747
748 <!ELEMENT date (#PCDATA)>
749 <!ATTLIST date %common.att;>
750
751 <!ELEMENT edtext (#PCDATA)>
752 <!ATTLIST edtext %common.att;>
753
754 <!ELEMENT emph (#PCDATA)>
755 <!ATTLIST emph %common.att;>
756
757 <!-- footnote: Both footnote content and call to footnote -->
758 <!ELEMENT footnote (%obj.mix;)+>
759 <!ATTLIST footnote %common.att;>
760
761 <!ELEMENT kw (%tech.pcd.mix;)*>
762 <!ATTLIST kw %common.att;>
763
764 <!ELEMENT loc (#PCDATA)>
765 <!-- HREF attribute:
766 The purpose of a loc element is to function as a hypertext
767 link to a resource. (Ideally, the content of loc will also
768 mention the URI of the resource, so that readers of the
769 printed version will be able to locate the resource.) -->
770 <!ATTLIST loc
771 %common.att;
772 %href-req.att;>
773
774 <!ELEMENT nt (#PCDATA)>
775 <!-- def attribute:
776 The nonterminal must link to the production that defines
777 it. -->
778 <!ATTLIST nt
779 %common.att;
780 %def-req.att;>
781
782 <!--
783 #1998-03-10: maler: Declared quote.
784 -->
785
786 <!-- quote: Scare quotes and other purely presentational quotes -->
787 <!ELEMENT quote (%p.pcd.mix;)*>
788 <!ATTLIST quote %common.att;>
789
790 <!-- specref: Should generate italic "[n.n], Section Title" for
791 div, "n" for numbered item, or "[n]" for production -->
792 <!ELEMENT specref EMPTY>
793 <!-- ref attribute:
794 The purpose of a specref element is to link to a div, item
795 in an olist, or production in the current spec. -->
796 <!ATTLIST specref
797 %common.att;
798 %ref-req.att;>
799
800 <!ELEMENT term (#PCDATA)>
801 <!ATTLIST term %common.att;>
802
803 <!ELEMENT termdef (%termdef.pcd.mix;|%termdef.mix;)*>
804 <!-- ID attribute:
805 A term definition must have an ID so that it can be linked
806 to from termref elements. -->
807 <!-- term attribute:
808 The canonical form of the term or phrase being defined must
809 appear in this attribute, even if the term or phrase also
810 appears in the element content in identical form (e.g., in
811 the term element). -->
812 <!ATTLIST termdef
813 %common-idreq.att;
814 term CDATA #REQUIRED>
815
816 <!ELEMENT termref (#PCDATA)>
817 <!-- ref attribute:
818 A term reference must link to the termdef element that
819 defines the term. -->
820 <!ATTLIST termref
821 %common.att;
822 %def-req.att;>
823
824 <!ELEMENT titleref (#PCDATA)>
825 <!-- HREF attribute:
826 A title reference can optionally function as a hypertext
827 link to the resource with this title. -->
828 <!ATTLIST titleref
829 %common.att;
830 %href.att;>
831
832 <!ELEMENT xnt (#PCDATA)>
833 <!-- HREF attribute:
834 The nonterminal must hyperlink to a resource that serves
835 to define it (e.g., a production in a related XML
836 specification). -->
837 <!ATTLIST xnt
838 %common.att;
839 %href-req.att;>
840
841 <!--
842 #1997-12-29: maler: Declared xspecref.
843 -->
844
845 <!ELEMENT xspecref (#PCDATA)>
846 <!-- HREF attribute:
847 The spec reference must hyperlink to the resource to
848 cross-refer to (e.g., a section in a related XML
849 specification). -->
850 <!ATTLIST xspecref
851 %common.att;
852 %href-req.att;>
853
854 <!ELEMENT xtermref (#PCDATA)>
855 <!-- HREF attribute:
856 The term reference must hyperlink to the resource that
857 serves to define the term (e.g., a term definition in
858 a related XML specification). -->
859 <!ATTLIST xtermref
860 %common.att;
861 %href-req.att;>
862
863 <!-- ............................................................... -->
864 <!-- Unused elements for ADEPT ..................................... -->
865
866 <!--
867 #1997-09-30: maler: Added unusued elements.
868 #1997-10-14: maler: Fixed div to move nested div to the mixture.
869 -->
870
871 <!-- The following elements are purposely declared but never
872 referenced. Declaring them allows them to be pasted from
873 an HTML document into a document using this DTD in ADEPT.
874 The ATD Context Transformation mechanism will try to convert
875 them to the appropriate element for this DTD. While this
876 conversion will not work for all fragments, it does allow
877 many cases to work reasonably well. -->
878
879 <!ELEMENT div
880 (head?, (%div.mix;|ul|ol|h1|h2|h3|h4|h5|h6|div)*)>
881 <!ELEMENT h1 (%head.pcd.mix;|em|a)*>
882 <!ELEMENT h2 (%head.pcd.mix;|em|a)*>
883 <!ELEMENT h3 (%head.pcd.mix;|em|a)*>
884 <!ELEMENT h4 (%head.pcd.mix;|em|a)*>
885 <!ELEMENT h5 (%head.pcd.mix;|em|a)*>
886 <!ELEMENT h6 (%head.pcd.mix;|em|a)*>
887 <!ELEMENT pre (%eg.pcd.mix;|em)*>
888 <!ELEMENT ul (item|li)*>
889 <!ELEMENT ol (item|li)*>
890 <!ELEMENT li (#PCDATA|%obj.mix;)*>
891 <!ELEMENT em (#PCDATA)>
892 <!ELEMENT a (#PCDATA)>
893
894 <!-- ............................................................... -->
895 <!-- Change history ................................................ -->
896
897 <!--
898 #1997-08-18: maler
899 #- Did a major revision.
900 #1997-09-10: maler
901 #- Updated FPI.
902 #- Removed namekey element and put key attribute on name element.
903 #- Made statusp element and supporting entities.
904 #- Added slist element with sitem+ content.
905 #- Required head on scrap and added new bnf subelement.
906 #- Added an xnt element and allowed it and nt in regular text and rhs.
907 #- Removed the ntref element.
908 #- Added back the com element to the content of rhs.
909 #- Added a key attribute to bibl.
910 #- Removed the ident element.
911 #- Added a term element to be used inside termdef.
912 #- Added an xtermref element parallel to termref.
913 #- Beefed up DTD comments.
914 #1997-09-12: maler
915 #- Allowed term element in general text.
916 #- Changed bibref to EMPTY.
917 #- Added ref.class to termdef.pcd.mix.
918 #1997-09-14: maler
919 #- Changed main attribute of xtermref from def to href.
920 #- Added termdef.class to label contents.
921 #1997-09-30: maler
922 #- Added character entity module and added new entities.
923 #- Removed p from appearing directly in self; created %p.mix;.
924 #- Added inform-div (non-normative division) element.
925 #- Fixed xtermref comment to mention HREF, not ref.
926 #- Extended orglist model to allow optional affiliation.
927 #- Modified author to make affiliation optional.
928 #- Added %speclist.class; and %note.class; to %obj.mix; and %p.mix;.
929 #- Added %note.class; and %illus.class; to %termdef.pcd.mix;.
930 #- Added unused HTML elements.
931 #- Put empty system ID next to public ID in entity declarations.
932 #1997-10-14: maler
933 #- Fixed "unused" div content model to move nested div to mixture.
934 #1997-10-16: maler
935 #- Added SGML Open Exchange tables.
936 #1997-11-28: maler
937 #- Added support for prodgroup and its attributes.
938 #- Added support for HTML tables.
939 #- Added loc and bibref to content of com.
940 #- Added loc to general p content models.
941 #- Allowed p as alternative to statusp in status.
942 #- Added non-null system IDs to external parameter entity declarations.
943 #- (Modified the SGML Open table module to make it XML-compliant.)
944 #- (Modified the character entity module.)
945 #1997-12-29: maler
946 #- Moved #PCDATA occurrences to come before GIs in content models.
947 #- Removed use of the SGML Open table module.
948 #- Added xspecref element.
949 #- Ensured that all FPIs contain 4-digit year.
950 #- (Modified the character entity module.)
951 #1997-03-10: maler
952 #- Merged the character entity and table modules into the main file.
953 #- Added ldquo and rdquo entities.
954 #- Added common attributes to prodgroup.
955 #- Made the email element in header optional.
956 #- Removed reference to the SGML Open table model.
957 #- Added ednote element.
958 #- Added quote element.
959 #- Updated XLink usage to reflect 3 March 1998 WD.
960 #- Added "local" entities to the class entities for customization.
961 #- Parameterized several content models to allow for customization.
962 #1997-03-23: maler
963 #- Cleaned up some comments and removed some others.
964 #- Added xml:space semi-common attribute to eg and bnf elements.
965 #- Added show and embed attributes on all the uses of href.
966 #- Added %common.att; to all HTML table elements.
967 #- Added a real URI to the "typical invocation" comment.
968 -->
969
970 <!-- ............................................................... -->
971 <!-- End of XML specification DTD .................................. -->
972 <!-- ............................................................... -->