|
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 “ and ”. |
|
45 # Used 8879:1986-compatible decimal character |
|
46 # references. |
|
47 # Merged charent.mod file back into main file. |
|
48 --> |
|
49 |
|
50 <!ENTITY lt "&#60;"> |
|
51 <!ENTITY gt ">"> |
|
52 <!ENTITY amp "&#38;"> |
|
53 <!ENTITY apos "'"> |
|
54 <!ENTITY quot """> |
|
55 <!ENTITY mdash "--"> |
|
56 <!ENTITY nbsp " "> |
|
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, prevlocs?, latestloc?, authlist, |
|
219 status, abstract, 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 <!-- |
|
268 #1998-5-23: brownell: Turned "xml:link" into "xml-link" to |
|
269 # match usage in the XML spec, so that |
|
270 # validation errors aren't reported. |
|
271 --> |
|
272 <!ENTITY % href.att |
|
273 'xml-link CDATA #FIXED "simple" |
|
274 href CDATA #IMPLIED |
|
275 show CDATA #FIXED "embed" |
|
276 actuate CDATA #FIXED "auto"'> |
|
277 |
|
278 <!ENTITY % href-req.att |
|
279 'xml-link CDATA #FIXED "simple" |
|
280 href CDATA #REQUIRED |
|
281 show CDATA #FIXED "embed" |
|
282 actuate CDATA #FIXED "auto"'> |
|
283 |
|
284 <!ENTITY % source-req.att |
|
285 'xml-link CDATA #FIXED "simple" |
|
286 xml:attributes NMTOKENS #FIXED "href source" |
|
287 source CDATA #REQUIRED |
|
288 show CDATA #FIXED "embed" |
|
289 actuate CDATA #FIXED "auto"'> |
|
290 |
|
291 <!-- xml:space attribute: |
|
292 Indicates that the element contains white space |
|
293 that the formatter or other application should retain, |
|
294 as appropriate to its function. --> |
|
295 <!ENTITY % xmlspace.att |
|
296 'xml:space (default |
|
297 |preserve) #FIXED "preserve"'> |
|
298 |
|
299 <!-- Common attributes: |
|
300 Every element has an ID attribute (sometimes required, |
|
301 but usually optional) for links, and a Role attribute |
|
302 for extending the useful life of the DTD by allowing |
|
303 authors to make subclasses for any element. %common.att; |
|
304 is for common attributes where the ID is optional, and |
|
305 %common-idreq.att; is for common attributes where the |
|
306 ID is required. --> |
|
307 <!ENTITY % common.att |
|
308 'id ID #IMPLIED |
|
309 role NMTOKEN #IMPLIED'> |
|
310 <!ENTITY % common-idreq.att |
|
311 'id ID #REQUIRED |
|
312 role NMTOKEN #IMPLIED'> |
|
313 |
|
314 <!-- ............................................................... --> |
|
315 <!-- Common elements ............................................... --> |
|
316 |
|
317 <!-- head: Title on divisions, productions, and the like --> |
|
318 <!ELEMENT head (%head.pcd.mix;)*> |
|
319 <!ATTLIST head %common.att;> |
|
320 |
|
321 <!-- ............................................................... --> |
|
322 <!-- Major specification structure ................................. --> |
|
323 |
|
324 <!-- |
|
325 #1998-03-10: maler: Made spec content model easily customizable. |
|
326 --> |
|
327 |
|
328 <!ELEMENT spec (%spec.mdl;)> |
|
329 <!ATTLIST spec %common.att;> |
|
330 |
|
331 <!ELEMENT front (div1+)> |
|
332 <!ATTLIST front %common.att;> |
|
333 |
|
334 <!ELEMENT body (div1+)> |
|
335 <!ATTLIST body %common.att;> |
|
336 |
|
337 <!-- |
|
338 #1997-09-30: maler: Added inform-div1 to back content. |
|
339 --> |
|
340 |
|
341 <!ELEMENT back ((div1+, inform-div1*) | inform-div1+)> |
|
342 <!ATTLIST back %common.att;> |
|
343 |
|
344 <!ELEMENT div1 (head, (%div.mix;)*, div2*)> |
|
345 <!ATTLIST div1 %common.att;> |
|
346 |
|
347 <!-- |
|
348 #1997-09-30: maler: Added inform-div1 declarations. |
|
349 --> |
|
350 |
|
351 <!-- inform-div1: Non-normative division in back matter --> |
|
352 <!ELEMENT inform-div1 (head, (%div.mix;)*, div2*)> |
|
353 <!ATTLIST inform-div1 %common.att;> |
|
354 |
|
355 <!ELEMENT div2 (head, (%div.mix;)*, div3*)> |
|
356 <!ATTLIST div2 %common.att;> |
|
357 |
|
358 <!ELEMENT div3 (head, (%div.mix;)*, div4*)> |
|
359 <!ATTLIST div3 %common.att;> |
|
360 |
|
361 <!ELEMENT div4 (head, (%div.mix;)*)> |
|
362 <!ATTLIST div4 %common.att;> |
|
363 |
|
364 <!-- Specification header .......... --> |
|
365 |
|
366 <!-- |
|
367 #1998-03-10: maler: Made header content model easily customizable. |
|
368 --> |
|
369 |
|
370 <!ELEMENT header (%header.mdl;)> |
|
371 <!ATTLIST header %common.att;> |
|
372 |
|
373 <!-- Example of title: "Extensible Cheese Language (XCL)" --> |
|
374 <!ELEMENT title (#PCDATA)> |
|
375 <!ATTLIST title %common.att;> |
|
376 |
|
377 <!-- Example of subtitle: "A Cheesy Specification" --> |
|
378 <!ELEMENT subtitle (#PCDATA)> |
|
379 <!ATTLIST subtitle %common.att;> |
|
380 |
|
381 <!-- Example of version: "Version 666.0" --> |
|
382 <!ELEMENT version (#PCDATA)> |
|
383 <!ATTLIST version %common.att;> |
|
384 |
|
385 <!-- Example of w3c-designation: "WD-xcl-19991231" --> |
|
386 <!ELEMENT w3c-designation (#PCDATA)> |
|
387 <!ATTLIST w3c-designation %common.att;> |
|
388 |
|
389 <!-- Example of w3c-doctype: "World Wide Web Consortium Working |
|
390 Draft" --> |
|
391 <!ELEMENT w3c-doctype (#PCDATA)> |
|
392 <!ATTLIST w3c-doctype %common.att;> |
|
393 |
|
394 <!-- |
|
395 #1998-03-10: maler: Made pubdate content model easily customizable. |
|
396 --> |
|
397 |
|
398 <!ELEMENT pubdate (%pubdate.mdl;)> |
|
399 <!ATTLIST pubdate %common.att;> |
|
400 |
|
401 <!ELEMENT day (#PCDATA)> |
|
402 <!ATTLIST day %common.att;> |
|
403 |
|
404 <!ELEMENT month (#PCDATA)> |
|
405 <!ATTLIST month %common.att;> |
|
406 |
|
407 <!ELEMENT year (#PCDATA)> |
|
408 <!ATTLIST year %common.att;> |
|
409 |
|
410 <!-- Example of notice: "This draft is for public comment..." --> |
|
411 <!ELEMENT notice (%hdr.mix;)+> |
|
412 <!ATTLIST notice %common.att;> |
|
413 |
|
414 <!ELEMENT publoc (loc+)> |
|
415 <!ATTLIST publoc %common.att;> |
|
416 |
|
417 <!ELEMENT prevlocs (loc+)> |
|
418 <!ATTLIST prevlocs %common.att;> |
|
419 |
|
420 <!ELEMENT latestloc (loc+)> |
|
421 <!ATTLIST latestloc %common.att;> |
|
422 |
|
423 <!-- loc (defined in "Phrase-level elements" below) --> |
|
424 |
|
425 <!ELEMENT authlist (author+)> |
|
426 <!ATTLIST authlist %common.att;> |
|
427 |
|
428 <!-- |
|
429 #1997-09-30: maler: Made affiliation optional. |
|
430 #1998-03-10: maler: Made email optional. |
|
431 --> |
|
432 |
|
433 <!ELEMENT author (name, affiliation?, email?)> |
|
434 <!ATTLIST author %common.att;> |
|
435 |
|
436 <!ELEMENT name (#PCDATA)> |
|
437 <!ATTLIST name |
|
438 %common.att; |
|
439 %key.att;> |
|
440 |
|
441 <!ELEMENT affiliation (#PCDATA)> |
|
442 <!ATTLIST affiliation %common.att;> |
|
443 |
|
444 <!ELEMENT email (#PCDATA)> |
|
445 <!-- HREF attribute: |
|
446 email functions as a hypertext reference through this |
|
447 required attribute. Typically the reference would use |
|
448 the mailto: scheme. --> |
|
449 <!ATTLIST email |
|
450 %common.att; |
|
451 %href-req.att;> |
|
452 |
|
453 <!-- The status element now contains both statusp and p, and |
|
454 the latter now allows loc. Use p; statusp will be removed |
|
455 eventually. --> |
|
456 <!ELEMENT status (%statusobj.mix;)+> |
|
457 <!ATTLIST status %common.att;> |
|
458 |
|
459 <!ELEMENT abstract (%hdr.mix;)*> |
|
460 <!ATTLIST abstract %common.att;> |
|
461 |
|
462 <!ELEMENT pubstmt (%hdr.mix;)+> |
|
463 <!ATTLIST pubstmt %common.att;> |
|
464 |
|
465 <!ELEMENT sourcedesc (%hdr.mix;)+> |
|
466 <!ATTLIST sourcedesc %common.att;> |
|
467 |
|
468 <!ELEMENT langusage (language+)> |
|
469 <!ATTLIST langusage %common.att;> |
|
470 |
|
471 <!ELEMENT language (#PCDATA)> |
|
472 <!ATTLIST language %common.att;> |
|
473 |
|
474 <!ELEMENT revisiondesc (%hdr.mix;)+> |
|
475 <!ATTLIST revisiondesc %common.att;> |
|
476 |
|
477 <!-- ............................................................... --> |
|
478 <!-- Standalone elements ........................................... --> |
|
479 |
|
480 <!-- Paragraphs .................... --> |
|
481 |
|
482 <!-- |
|
483 #1997-09-30: maler: Changed from %obj.mix; to %p.mix;. |
|
484 #1997-12-29: maler: Changed order of %p.mix; and %p.pcd.mix; references. |
|
485 #1997-12-29: maler: Changed order of %statusobj.mix; and %statusp.pcd.mix; |
|
486 # references. |
|
487 --> |
|
488 |
|
489 <!ELEMENT p (%p.pcd.mix;|%p.mix;)*> |
|
490 <!ATTLIST p %common.att;> |
|
491 |
|
492 <!-- statusp: Special paragraph that allows loc inside it (note that |
|
493 p now also allows loc) --> |
|
494 <!ELEMENT statusp (%statusp.pcd.mix;|%statusobj.mix;)*> |
|
495 <!ATTLIST statusp %common.att;> |
|
496 |
|
497 <!-- Lists ......................... --> |
|
498 |
|
499 <!ELEMENT ulist (item+)> |
|
500 <!-- spacing attribute: |
|
501 Use "normal" to get normal vertical spacing for items; |
|
502 use "compact" to get less spacing. The default is dependent |
|
503 on the stylesheet. --> |
|
504 <!ATTLIST ulist |
|
505 %common.att; |
|
506 spacing (normal|compact) #IMPLIED> |
|
507 |
|
508 <!ELEMENT olist (item+)> |
|
509 <!-- spacing attribute: |
|
510 Use "normal" to get normal vertical spacing for items; |
|
511 use "compact" to get less spacing. The default is dependent |
|
512 on the stylesheet. --> |
|
513 <!ATTLIST olist |
|
514 %common.att; |
|
515 spacing (normal|compact) #IMPLIED> |
|
516 |
|
517 <!ELEMENT item (%obj.mix;)+> |
|
518 <!ATTLIST item %common.att;> |
|
519 |
|
520 <!ELEMENT slist (sitem+)> |
|
521 <!ATTLIST slist %common.att;> |
|
522 |
|
523 <!ELEMENT sitem (%p.pcd.mix;)*> |
|
524 <!ATTLIST sitem %common.att;> |
|
525 |
|
526 <!ELEMENT glist (gitem+)> |
|
527 <!ATTLIST glist %common.att;> |
|
528 |
|
529 <!ELEMENT gitem (label, def)> |
|
530 <!ATTLIST gitem %common.att;> |
|
531 |
|
532 <!ELEMENT label (%label.pcd.mix;)*> |
|
533 <!ATTLIST label %common.att;> |
|
534 |
|
535 <!ELEMENT def (%obj.mix;)*> |
|
536 <!ATTLIST def %common.att;> |
|
537 |
|
538 <!-- Special lists ................. --> |
|
539 |
|
540 <!ELEMENT blist (bibl+)> |
|
541 <!ATTLIST blist %common.att;> |
|
542 |
|
543 <!ELEMENT bibl (%bibl.pcd.mix;)*> |
|
544 <!-- HREF attribute: |
|
545 bibl optionally functions as a hypertext reference to the |
|
546 referred-to resource through this attribute. --> |
|
547 <!ATTLIST bibl |
|
548 %common.att; |
|
549 %href.att; |
|
550 %key.att;> |
|
551 |
|
552 <!ELEMENT orglist (member+)> |
|
553 <!ATTLIST orglist %common.att;> |
|
554 |
|
555 <!-- |
|
556 #1997-09-30: maler: Added optional affiliation. |
|
557 --> |
|
558 |
|
559 <!ELEMENT member (name, affiliation?, role?)> |
|
560 <!ATTLIST member %common.att;> |
|
561 |
|
562 <!-- name (defined in "Specification header" above) --> |
|
563 <!-- affiliation (defined in "Specification header" above) --> |
|
564 |
|
565 <!ELEMENT role (#PCDATA)> |
|
566 <!ATTLIST role %common.att;> |
|
567 |
|
568 <!-- Notes ......................... --> |
|
569 |
|
570 <!ELEMENT note (%obj.mix;)+> |
|
571 <!ATTLIST note %common.att;> |
|
572 |
|
573 <!ELEMENT wfcnote (head, (%obj.mix;)+)> |
|
574 <!-- ID attribute: |
|
575 wfcnote must have an ID so that it can be pointed to |
|
576 from a wfc element in a production. --> |
|
577 <!ATTLIST wfcnote |
|
578 %common-idreq.att;> |
|
579 |
|
580 <!ELEMENT vcnote (head, (%obj.mix;)+)> |
|
581 <!-- ID attribute: |
|
582 vcnote must have an ID so that it can be pointed to |
|
583 from a vc element in a production. --> |
|
584 <!ATTLIST vcnote |
|
585 %common-idreq.att;> |
|
586 |
|
587 <!-- Illustrations ................. --> |
|
588 |
|
589 <!-- |
|
590 #1998-03-23: maler: Added xml:space attribute. |
|
591 --> |
|
592 |
|
593 <!ELEMENT eg (%eg.pcd.mix;)*> |
|
594 <!ATTLIST eg |
|
595 %common.att; |
|
596 %xmlspace.att;> |
|
597 |
|
598 <!ELEMENT graphic EMPTY> |
|
599 <!-- source attribute: |
|
600 The graphic data must reside at the location pointed to. |
|
601 This is a hypertext reference, but for practical purposes, |
|
602 for now it should just be a pathname. --> |
|
603 <!ATTLIST graphic |
|
604 %common.att; |
|
605 %source-req.att; |
|
606 alt CDATA #IMPLIED> |
|
607 |
|
608 <!-- |
|
609 #1997-11-28: maler: Added prodgroup to scrap and defined it. |
|
610 --> |
|
611 |
|
612 <!ELEMENT scrap (head, (prodgroup+ | prod+ | bnf))> |
|
613 <!-- lang attribute: |
|
614 The scrap can link to a description of the language used, |
|
615 found in a language element in the header. --> |
|
616 <!ATTLIST scrap |
|
617 %common.att; |
|
618 lang IDREF #IMPLIED> |
|
619 |
|
620 <!ELEMENT prodgroup (prod+)> |
|
621 <!-- pcw<n> attributes: |
|
622 Presentational attributes to control the width |
|
623 of the "pseudo-table" columns used to output |
|
624 groups of productions. --> |
|
625 <!ATTLIST prodgroup |
|
626 %common.att; |
|
627 pcw1 CDATA #IMPLIED |
|
628 pcw2 CDATA #IMPLIED |
|
629 pcw3 CDATA #IMPLIED |
|
630 pcw4 CDATA #IMPLIED |
|
631 pcw5 CDATA #IMPLIED |
|
632 > |
|
633 |
|
634 <!ELEMENT prod (lhs, (rhs, (com|wfc|vc)*)+)> |
|
635 <!-- ID attribute: |
|
636 The production must have an ID so that cross-references |
|
637 (specref) and mentions of nonterminals (nt) can link to |
|
638 it. --> |
|
639 <!ATTLIST prod |
|
640 %common-idreq.att;> |
|
641 |
|
642 <!ELEMENT lhs (#PCDATA)> |
|
643 <!ATTLIST lhs %common.att;> |
|
644 |
|
645 <!ELEMENT rhs (#PCDATA|nt|xnt|com)*> |
|
646 <!ATTLIST rhs %common.att;> |
|
647 |
|
648 <!-- nt and xnt (defined in "Phrase-level elements" below) --> |
|
649 |
|
650 <!-- |
|
651 #1997-11-28: maler: Added loc and bibref to com content. |
|
652 --> |
|
653 |
|
654 <!ELEMENT com (#PCDATA|loc|bibref)*> |
|
655 <!ATTLIST com %common.att;> |
|
656 |
|
657 <!-- wfc: Should generate the head of the wfcnote pointed to --> |
|
658 <!ELEMENT wfc EMPTY> |
|
659 <!-- def attribute: |
|
660 Each well formedness tagline in a production must link to the |
|
661 wfcnote that defines it. --> |
|
662 <!ATTLIST wfc |
|
663 %def-req.att; |
|
664 %common.att;> |
|
665 |
|
666 <!-- vc: Should generate the head of the vcnote pointed to --> |
|
667 <!ELEMENT vc EMPTY> |
|
668 <!-- def attribute: |
|
669 Each validity tagline in a production must link to the vcnote |
|
670 that defines it. --> |
|
671 <!ATTLIST vc |
|
672 %def-req.att; |
|
673 %common.att;> |
|
674 |
|
675 <!-- |
|
676 #1998-03-23: maler: Added xml:space attribute. |
|
677 --> |
|
678 |
|
679 <!-- bnf: Un-marked-up production --> |
|
680 <!ELEMENT bnf (%eg.pcd.mix;)*> |
|
681 <!ATTLIST bnf |
|
682 %common.att; |
|
683 %xmlspace.att;> |
|
684 |
|
685 <!-- |
|
686 #1997-10-16: maler: Added table mechanism. |
|
687 #1997-11-28: maler: Added non-null system ID to entity declaration. |
|
688 # Added HTML table module. |
|
689 #1997-12-29: maler: IGNOREd SGML Open table model. |
|
690 #1998-03-10: maler: Removed SGML Open table model. |
|
691 # Merged html-tbl.mod file into main file. |
|
692 # Added %common.att; to all HTML table elements. |
|
693 --> |
|
694 |
|
695 <!-- TR and TD attributes: |
|
696 Alignment attributes. No default. --> |
|
697 <!ENTITY % trtd.att |
|
698 "align (left |
|
699 |center |
|
700 |right) #IMPLIED |
|
701 valign (top |
|
702 |middle |
|
703 |bottom) #IMPLIED"> |
|
704 |
|
705 <!ELEMENT htable (htbody+)> |
|
706 <!ATTLIST htable |
|
707 border CDATA "0" |
|
708 cellpadding CDATA "0" |
|
709 align (left |
|
710 |center |
|
711 |right) "left"> |
|
712 |
|
713 <!ELEMENT htbody (tr+)> |
|
714 <!ATTLIST htbody %common.att;> |
|
715 |
|
716 <!ELEMENT tr (td+)> |
|
717 <!ATTLIST tr |
|
718 %common.att; |
|
719 %trtd.att;> |
|
720 |
|
721 <!ELEMENT td (%p.pcd.mix;)*> |
|
722 <!ATTLIST td |
|
723 %common.att; |
|
724 %trtd.att; |
|
725 bgcolor CDATA #IMPLIED |
|
726 rowspan CDATA "1" |
|
727 colspan CDATA "1"> |
|
728 |
|
729 <!-- ............................................................... --> |
|
730 <!-- Phrase-level elements ......................................... --> |
|
731 |
|
732 <!-- bibref: Should generate, in square brackets, "key" on bibl --> |
|
733 <!ELEMENT bibref EMPTY> |
|
734 <!-- ref attribute: |
|
735 A bibliography reference must link to the bibl element that |
|
736 describes the resource. --> |
|
737 <!ATTLIST bibref |
|
738 %common.att; |
|
739 %ref-req.att;> |
|
740 |
|
741 <!ELEMENT code (%tech.pcd.mix;)*> |
|
742 <!ATTLIST code %common.att;> |
|
743 |
|
744 <!-- |
|
745 #1998-03-10: maler: Declared ednote and related elements. |
|
746 --> |
|
747 |
|
748 <!ELEMENT ednote (name?, date?, edtext)> |
|
749 <!ATTLIST ednote %common.att;> |
|
750 |
|
751 <!ELEMENT date (#PCDATA)> |
|
752 <!ATTLIST date %common.att;> |
|
753 |
|
754 <!ELEMENT edtext (#PCDATA)> |
|
755 <!ATTLIST edtext %common.att;> |
|
756 |
|
757 <!ELEMENT emph (#PCDATA)> |
|
758 <!ATTLIST emph %common.att;> |
|
759 |
|
760 <!-- footnote: Both footnote content and call to footnote --> |
|
761 <!ELEMENT footnote (%obj.mix;)+> |
|
762 <!ATTLIST footnote %common.att;> |
|
763 |
|
764 <!ELEMENT kw (%tech.pcd.mix;)*> |
|
765 <!ATTLIST kw %common.att;> |
|
766 |
|
767 <!ELEMENT loc (#PCDATA)> |
|
768 <!-- HREF attribute: |
|
769 The purpose of a loc element is to function as a hypertext |
|
770 link to a resource. (Ideally, the content of loc will also |
|
771 mention the URI of the resource, so that readers of the |
|
772 printed version will be able to locate the resource.) --> |
|
773 <!ATTLIST loc |
|
774 %common.att; |
|
775 %href-req.att;> |
|
776 |
|
777 <!ELEMENT nt (#PCDATA)> |
|
778 <!-- def attribute: |
|
779 The nonterminal must link to the production that defines |
|
780 it. --> |
|
781 <!ATTLIST nt |
|
782 %common.att; |
|
783 %def-req.att;> |
|
784 |
|
785 <!-- |
|
786 #1998-03-10: maler: Declared quote. |
|
787 --> |
|
788 |
|
789 <!-- quote: Scare quotes and other purely presentational quotes --> |
|
790 <!ELEMENT quote (%p.pcd.mix;)*> |
|
791 <!ATTLIST quote %common.att;> |
|
792 |
|
793 <!-- specref: Should generate italic "[n.n], Section Title" for |
|
794 div, "n" for numbered item, or "[n]" for production --> |
|
795 <!ELEMENT specref EMPTY> |
|
796 <!-- ref attribute: |
|
797 The purpose of a specref element is to link to a div, item |
|
798 in an olist, or production in the current spec. --> |
|
799 <!ATTLIST specref |
|
800 %common.att; |
|
801 %ref-req.att;> |
|
802 |
|
803 <!ELEMENT term (#PCDATA)> |
|
804 <!ATTLIST term %common.att;> |
|
805 |
|
806 <!ELEMENT termdef (%termdef.pcd.mix;|%termdef.mix;)*> |
|
807 <!-- ID attribute: |
|
808 A term definition must have an ID so that it can be linked |
|
809 to from termref elements. --> |
|
810 <!-- term attribute: |
|
811 The canonical form of the term or phrase being defined must |
|
812 appear in this attribute, even if the term or phrase also |
|
813 appears in the element content in identical form (e.g., in |
|
814 the term element). --> |
|
815 <!ATTLIST termdef |
|
816 %common-idreq.att; |
|
817 term CDATA #REQUIRED> |
|
818 |
|
819 <!ELEMENT termref (#PCDATA)> |
|
820 <!-- ref attribute: |
|
821 A term reference must link to the termdef element that |
|
822 defines the term. --> |
|
823 <!ATTLIST termref |
|
824 %common.att; |
|
825 %def-req.att;> |
|
826 |
|
827 <!ELEMENT titleref (#PCDATA)> |
|
828 <!-- HREF attribute: |
|
829 A title reference can optionally function as a hypertext |
|
830 link to the resource with this title. --> |
|
831 <!ATTLIST titleref |
|
832 %common.att; |
|
833 %href.att;> |
|
834 |
|
835 <!ELEMENT xnt (#PCDATA)> |
|
836 <!-- HREF attribute: |
|
837 The nonterminal must hyperlink to a resource that serves |
|
838 to define it (e.g., a production in a related XML |
|
839 specification). --> |
|
840 <!ATTLIST xnt |
|
841 %common.att; |
|
842 %href-req.att;> |
|
843 |
|
844 <!-- |
|
845 #1997-12-29: maler: Declared xspecref. |
|
846 --> |
|
847 |
|
848 <!ELEMENT xspecref (#PCDATA)> |
|
849 <!-- HREF attribute: |
|
850 The spec reference must hyperlink to the resource to |
|
851 cross-refer to (e.g., a section in a related XML |
|
852 specification). --> |
|
853 <!ATTLIST xspecref |
|
854 %common.att; |
|
855 %href-req.att;> |
|
856 |
|
857 <!ELEMENT xtermref (#PCDATA)> |
|
858 <!-- HREF attribute: |
|
859 The term reference must hyperlink to the resource that |
|
860 serves to define the term (e.g., a term definition in |
|
861 a related XML specification). --> |
|
862 <!ATTLIST xtermref |
|
863 %common.att; |
|
864 %href-req.att;> |
|
865 |
|
866 <!-- ............................................................... --> |
|
867 <!-- Unused elements for ADEPT ..................................... --> |
|
868 |
|
869 <!-- |
|
870 #1997-09-30: maler: Added unusued elements. |
|
871 #1997-10-14: maler: Fixed div to move nested div to the mixture. |
|
872 --> |
|
873 |
|
874 <!-- The following elements are purposely declared but never |
|
875 referenced. Declaring them allows them to be pasted from |
|
876 an HTML document into a document using this DTD in ADEPT. |
|
877 The ATD Context Transformation mechanism will try to convert |
|
878 them to the appropriate element for this DTD. While this |
|
879 conversion will not work for all fragments, it does allow |
|
880 many cases to work reasonably well. --> |
|
881 |
|
882 <!ELEMENT div |
|
883 (head?, (%div.mix;|ul|ol|h1|h2|h3|h4|h5|h6|div)*)> |
|
884 <!ELEMENT h1 (%head.pcd.mix;|em|a)*> |
|
885 <!ELEMENT h2 (%head.pcd.mix;|em|a)*> |
|
886 <!ELEMENT h3 (%head.pcd.mix;|em|a)*> |
|
887 <!ELEMENT h4 (%head.pcd.mix;|em|a)*> |
|
888 <!ELEMENT h5 (%head.pcd.mix;|em|a)*> |
|
889 <!ELEMENT h6 (%head.pcd.mix;|em|a)*> |
|
890 <!ELEMENT pre (%eg.pcd.mix;|em)*> |
|
891 <!ELEMENT ul (item|li)*> |
|
892 <!ELEMENT ol (item|li)*> |
|
893 <!ELEMENT li (#PCDATA|%obj.mix;)*> |
|
894 <!ELEMENT em (#PCDATA)> |
|
895 <!ELEMENT a (#PCDATA)> |
|
896 |
|
897 <!-- ............................................................... --> |
|
898 <!-- Change history ................................................ --> |
|
899 |
|
900 <!-- |
|
901 #1997-08-18: maler |
|
902 #- Did a major revision. |
|
903 #1997-09-10: maler |
|
904 #- Updated FPI. |
|
905 #- Removed namekey element and put key attribute on name element. |
|
906 #- Made statusp element and supporting entities. |
|
907 #- Added slist element with sitem+ content. |
|
908 #- Required head on scrap and added new bnf subelement. |
|
909 #- Added an xnt element and allowed it and nt in regular text and rhs. |
|
910 #- Removed the ntref element. |
|
911 #- Added back the com element to the content of rhs. |
|
912 #- Added a key attribute to bibl. |
|
913 #- Removed the ident element. |
|
914 #- Added a term element to be used inside termdef. |
|
915 #- Added an xtermref element parallel to termref. |
|
916 #- Beefed up DTD comments. |
|
917 #1997-09-12: maler |
|
918 #- Allowed term element in general text. |
|
919 #- Changed bibref to EMPTY. |
|
920 #- Added ref.class to termdef.pcd.mix. |
|
921 #1997-09-14: maler |
|
922 #- Changed main attribute of xtermref from def to href. |
|
923 #- Added termdef.class to label contents. |
|
924 #1997-09-30: maler |
|
925 #- Added character entity module and added new entities. |
|
926 #- Removed p from appearing directly in self; created %p.mix;. |
|
927 #- Added inform-div (non-normative division) element. |
|
928 #- Fixed xtermref comment to mention HREF, not ref. |
|
929 #- Extended orglist model to allow optional affiliation. |
|
930 #- Modified author to make affiliation optional. |
|
931 #- Added %speclist.class; and %note.class; to %obj.mix; and %p.mix;. |
|
932 #- Added %note.class; and %illus.class; to %termdef.pcd.mix;. |
|
933 #- Added unused HTML elements. |
|
934 #- Put empty system ID next to public ID in entity declarations. |
|
935 #1997-10-14: maler |
|
936 #- Fixed "unused" div content model to move nested div to mixture. |
|
937 #1997-10-16: maler |
|
938 #- Added SGML Open Exchange tables. |
|
939 #1997-11-28: maler |
|
940 #- Added support for prodgroup and its attributes. |
|
941 #- Added support for HTML tables. |
|
942 #- Added loc and bibref to content of com. |
|
943 #- Added loc to general p content models. |
|
944 #- Allowed p as alternative to statusp in status. |
|
945 #- Added non-null system IDs to external parameter entity declarations. |
|
946 #- (Modified the SGML Open table module to make it XML-compliant.) |
|
947 #- (Modified the character entity module.) |
|
948 #1997-12-29: maler |
|
949 #- Moved #PCDATA occurrences to come before GIs in content models. |
|
950 #- Removed use of the SGML Open table module. |
|
951 #- Added xspecref element. |
|
952 #- Ensured that all FPIs contain 4-digit year. |
|
953 #- (Modified the character entity module.) |
|
954 #1997-03-10: maler |
|
955 #- Merged the character entity and table modules into the main file. |
|
956 #- Added ldquo and rdquo entities. |
|
957 #- Added common attributes to prodgroup. |
|
958 #- Made the email element in header optional. |
|
959 #- Removed reference to the SGML Open table model. |
|
960 #- Added ednote element. |
|
961 #- Added quote element. |
|
962 #- Updated XLink usage to reflect 3 March 1998 WD. |
|
963 #- Added "local" entities to the class entities for customization. |
|
964 #- Parameterized several content models to allow for customization. |
|
965 #1997-03-23: maler |
|
966 #- Cleaned up some comments and removed some others. |
|
967 #- Added xml:space semi-common attribute to eg and bnf elements. |
|
968 #- Added show and embed attributes on all the uses of href. |
|
969 #- Added %common.att; to all HTML table elements. |
|
970 #- Added a real URI to the "typical invocation" comment. |
|
971 --> |
|
972 |
|
973 <!-- ............................................................... --> |
|
974 <!-- End of XML specification DTD .................................. --> |
|
975 <!-- ............................................................... --> |