1<!-- ............................................................... --> 2<!-- XML specification DTD ......................................... --> 3<!-- ............................................................... --> 4 5<!-- 6TYPICAL INVOCATION: 7# <!DOCTYPE spec PUBLIC 8# "-//W3C//DTD Specification::19980323//EN" 9# "http://www.w3.org/XML/Group/DTD/xmlspec.dtd"> 10 11PURPOSE: 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 16DEPENDENCIES: 17 None. 18 19CHANGE 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 32MAINTAINER: 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<!-- ............................................................... --> 973