Annotation of embedaddon/libxml2/test/valid/dtds/xmlspec.dtd, revision 1.1.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 &ldquo; and &rdquo;.
                     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     "&#38;#60;">
                     52: <!ENTITY gt     "&#62;">
                     53: <!ENTITY amp    "&#38;#38;">
                     54: <!ENTITY apos   "&#39;">
                     55: <!ENTITY quot   "&#34;">
                     56: <!ENTITY nbsp   "&#160;">
                     57: <!--
                     58: <!ENTITY mdash  "&#x2014;">
                     59: <!ENTITY ldquo  "&#x201C;">
                     60: <!ENTITY rdquo  "&#x201D;">
                     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>