Annotation of embedaddon/libxml2/test/valid/dtds/spec.dtd, revision 1.1
1.1 ! misho 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: <!-- ............................................................... -->
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>