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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>