Daniel Veillard | b05deb7 | 1999-08-10 19:04:08 +0000 | [diff] [blame] | 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, 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 | <!-- ............................................................... --> |