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