Home | History | Annotate | Download | only in rfc
      1 <!--
      2   revised DTD for the RFC document series, draft of 2009-10-06
      3   -->
      4 
      5 
      6 <!--
      7   Typical invocation:
      8       <!DOCTYPE rfc PUBLIC "-//IETF//DTD RFC 2629//EN"
      9                            "http://xml.resource.org/authoring/rfc2629.dtd" [
     10         ... dtd subset ...
     11       ]>
     12     or
     13       <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
     14         ... dtd subset ...
     15       ]>
     16   -->
     17 
     18 
     19 <!--
     20   Contents
     21 
     22     Character entities
     23 
     24     DTD data types
     25 
     26     The top-level
     27 
     28     Front matter
     29 
     30     The Body
     31 
     32     Back matter
     33   -->
     34 
     35 
     36 <!--
     37   Character entities
     38   -->
     39 
     40 
     41 <!ENTITY % rfc2629-xhtml
     42          PUBLIC "-//IETF//ENTITIES XHTML subset for RFC 2629//EN"
     43                 "rfc2629-xhtml.ent">
     44 %rfc2629-xhtml;
     45 
     46 <!ENTITY % rfc2629-other
     47          PUBLIC "-//IETF//ENTITIES Other for RFC 2629//EN"
     48                 "rfc2629-other.ent">
     49 %rfc2629-other;
     50 
     51 
     52 <!--
     53   DTD data types:
     54 
     55         entity        description
     56         ======        ===============================================
     57         NUMBER        [0-9]+
     58         NUMBERS       a comma-separated list of NUMBER
     59 
     60         DAY           the day of the month, e.g., "1"
     61         MONTH         the month of the year, e.g., "January"
     62         YEAR          a four-digit year, e.g., "1999"
     63 
     64         URI           e.g., "http://invisible.net/"
     65 
     66         ATEXT/CTEXT   printable ASCII text (no line-terminators)
     67 
     68         TEXT          character data
     69   -->
     70 
     71 
     72 <!ENTITY % NUMBER     "CDATA">
     73 <!ENTITY % NUMBERS    "CDATA">
     74 
     75 <!ENTITY % DAY        "CDATA">
     76 <!ENTITY % MONTH      "CDATA">
     77 <!ENTITY % YEAR       "CDATA">
     78 
     79 <!ENTITY % URI        "CDATA">
     80 
     81 <!ENTITY % ATEXT      "CDATA">
     82 <!ENTITY % CTEXT      "#PCDATA">
     83 
     84 <!ENTITY % TEXT       "#PCDATA">
     85 
     86 <!ENTITY   rfc.number "XXXX">
     87 
     88 
     89 <!--
     90   The top-level
     91   -->
     92 
     93 
     94 <!--
     95   attributes for the "rfc" element are supplied by the RFC
     96   editor. when preparing drafts, authors should leave them blank.
     97 
     98   the "seriesNo" attribute is used if the category is, e.g., BCP.
     99   -->
    100 <!ELEMENT rfc         (front,middle,back?)>
    101 <!ATTLIST rfc
    102           number      %NUMBER;           #IMPLIED
    103           obsoletes   %NUMBERS;          ""
    104           updates     %NUMBERS;          ""
    105           category    (std|bcp|info|exp|historic)
    106                                          #IMPLIED
    107           consensus   (no|yes)           #IMPLIED
    108           seriesNo    %NUMBER;           #IMPLIED
    109           ipr         (full2026|noDerivativeWorks2026|none
    110                       |full3667|noModification3667|noDerivatives3667
    111                       |full3978|noModification3978|noDerivatives3978
    112                       |trust200811|noModificationTrust200811|noDerivativesTrust200811
    113                       |trust200902|noModificationTrust200902|noDerivativesTrust200902
    114                       |pre5378Trust200902)
    115                                          #IMPLIED
    116           iprExtract  IDREF              #IMPLIED
    117           submissionType
    118                       (IETF|IAB|IRTF|independent) "IETF"
    119           docName     %ATEXT;            #IMPLIED
    120           xml:lang    %ATEXT;            "en">
    121 
    122 
    123 <!--
    124   Front matter
    125   -->
    126 
    127 
    128 <!ELEMENT front       (title,author+,date,area*,workgroup*,keyword*,
    129                        abstract?,note*)>
    130 
    131 <!-- the "abbrev" attribute is used for headers, etc. -->
    132 <!ELEMENT title       (%CTEXT;)>
    133 <!ATTLIST title
    134           abbrev      %ATEXT;            #IMPLIED> 
    135 
    136 <!ELEMENT author      (organization?,address?)>
    137 <!ATTLIST author
    138           initials    %ATEXT;            #IMPLIED
    139           surname     %ATEXT;            #IMPLIED
    140           fullname    %ATEXT;            #IMPLIED
    141           role        (editor)           #IMPLIED>
    142 
    143 <!ELEMENT organization
    144                       (%CTEXT;)>
    145 <!ATTLIST organization
    146           abbrev      %ATEXT;            #IMPLIED> 
    147  
    148 <!ELEMENT address     (postal?,phone?,facsimile?,email?,uri?)>
    149 
    150 <!-- this content model should be more strict:
    151      at most one of each the city, region, code, and country
    152      elements may be present -->
    153 <!ELEMENT postal      (street+,(city|region|code|country)*)>
    154 <!ELEMENT street      (%CTEXT;)>
    155 <!ELEMENT city        (%CTEXT;)>
    156 <!ELEMENT region      (%CTEXT;)>
    157 <!ELEMENT code        (%CTEXT;)>
    158 <!ELEMENT country     (%CTEXT;)>
    159 <!ELEMENT phone       (%CTEXT;)>
    160 <!ELEMENT facsimile   (%CTEXT;)>
    161 <!ELEMENT email       (%CTEXT;)>
    162 <!ELEMENT uri         (%CTEXT;)>
    163 
    164 <!ELEMENT date        EMPTY>
    165 <!ATTLIST date
    166           day         %DAY;              #IMPLIED
    167           month       %MONTH;            #IMPLIED
    168           year        %YEAR;             #IMPLIED>
    169 
    170 <!-- meta-data... -->
    171 <!ELEMENT area        (%CTEXT;)>
    172 <!ELEMENT workgroup   (%CTEXT;)>
    173 <!ELEMENT keyword     (%CTEXT;)>
    174 
    175 <!ELEMENT abstract    (t)+>
    176 <!ELEMENT note        (t)+>
    177 <!ATTLIST note
    178           title       %ATEXT;            #REQUIRED>
    179 
    180 
    181 <!--
    182   The body
    183   -->
    184 
    185 
    186 <!ELEMENT middle      (section+)>
    187 
    188 <!ELEMENT section     ((t|figure|texttable|iref)*,section*)>
    189 <!ATTLIST section
    190           anchor      ID                 #IMPLIED
    191           title       %ATEXT;            #REQUIRED
    192           toc         (include|exclude|default)
    193                                          "default">
    194 
    195 <!-- use of <appendix/> is deprecated...
    196 <!ELEMENT appendix    ((t|figure|texttable|iref)*,appendix*)>
    197 <!ATTLIST appendix
    198           anchor      ID                 #IMPLIED
    199           title       %ATEXT;            #REQUIRED
    200           toc         (include|exclude|default)
    201                                          "default">
    202   -->
    203 
    204 <!-- use of <figure/> is deprecated... -->
    205 <!ELEMENT t           (%TEXT;|list|figure|xref|eref|iref|cref|spanx|vspace)*>
    206 <!ATTLIST t
    207           anchor      ID                 #IMPLIED
    208           hangText    %ATEXT;            #IMPLIED>
    209 
    210 <!-- the value of the style attribute is inherited from the closest 
    211      parent -->
    212 <!ELEMENT list        (t+)>
    213 <!ATTLIST list
    214           style       %ATEXT;            #IMPLIED
    215           hangIndent  %NUMBER;           #IMPLIED
    216           counter     %ATEXT;            #IMPLIED>
    217 
    218 <!ELEMENT xref        (%CTEXT;)>
    219 <!ATTLIST xref
    220           target      IDREF              #REQUIRED
    221           pageno      (true|false)       "false"
    222           format      (counter|title|none|default)
    223                                          "default">
    224 
    225 <!ELEMENT eref        (%CTEXT;)>
    226 <!ATTLIST eref
    227           target      %URI;              #REQUIRED>
    228 
    229 <!ELEMENT iref        EMPTY>
    230 <!ATTLIST iref
    231           item        %ATEXT;            #REQUIRED
    232           subitem     %ATEXT;            ""
    233           primary    (true|false)       "false">
    234 
    235 <!ELEMENT cref        (%CTEXT;)>
    236 <!ATTLIST cref
    237           anchor      ID                 #IMPLIED
    238           source      %ATEXT;            #IMPLIED>
    239 
    240 <!ELEMENT spanx       (%CTEXT;)>
    241 <!ATTLIST spanx
    242           xml:space   (default|preserve) "preserve"
    243           style       %ATEXT;            "emph">
    244 
    245 <!ELEMENT vspace      EMPTY>
    246 <!ATTLIST vspace
    247           blankLines  %NUMBER;           "0">
    248 
    249 <!ELEMENT figure      (iref*,preamble?,artwork,postamble?)>
    250 <!ATTLIST figure
    251           anchor      ID                 #IMPLIED
    252           title       %ATEXT;            ""
    253           suppress-title (true|false)    "false"
    254           src         %URI;              #IMPLIED
    255           align       (left|center|right) "left"
    256           alt         %ATEXT;            ""
    257           width       %ATEXT;            ""
    258           height      %ATEXT;            "">
    259 
    260 <!ELEMENT preamble    (%TEXT;|xref|eref|iref|cref|spanx)*>
    261 <!ELEMENT artwork     (%TEXT;)*>
    262 <!ATTLIST artwork
    263           xml:space   (default|preserve) "preserve"
    264           name        %ATEXT;            ""
    265           type        %ATEXT;            ""
    266           src         %URI;              #IMPLIED
    267           align       (left|center|right) "left"
    268           alt         %ATEXT;            ""
    269           width       %ATEXT;            ""
    270           height      %ATEXT;            "">
    271 
    272 <!ELEMENT postamble   (%TEXT;|xref|eref|iref|cref|spanx)*>
    273     
    274 <!ELEMENT texttable   (preamble?,ttcol+,c*,postamble?)>
    275 <!ATTLIST texttable
    276           anchor      ID                 #IMPLIED
    277           title       %ATEXT;            ""
    278           suppress-title (true|false)    "false"
    279           align       (left|center|right) "center"
    280           style       (all|none|headers|full) "full">
    281 <!ELEMENT ttcol       (%CTEXT;)>
    282 <!ATTLIST ttcol
    283           width       %ATEXT;            #IMPLIED
    284           align       (left|center|right) "left">
    285 <!ELEMENT c           (%TEXT;|xref|eref|iref|cref|spanx)*>
    286 
    287 
    288 <!--
    289   Back matter
    290   -->
    291 
    292 
    293 <!-- sections, if present, are appendices -->
    294 <!ELEMENT back        (references*,section*)>
    295 
    296 <!ELEMENT references  (reference+)>
    297 <!ATTLIST references
    298           title       %ATEXT;            "References">
    299 <!ELEMENT reference   (front,seriesInfo*,format*,annotation*)>
    300 <!ATTLIST reference
    301           anchor      ID                 #IMPLIED
    302           target      %URI;              #IMPLIED>
    303 <!ELEMENT seriesInfo  EMPTY>
    304 <!ATTLIST seriesInfo
    305           name        %ATEXT;            #REQUIRED
    306           value       %ATEXT;            #REQUIRED>
    307 <!ELEMENT format      EMPTY>
    308 <!ATTLIST format
    309           target      %URI;              #IMPLIED
    310           type        %ATEXT;            #REQUIRED
    311           octets      %NUMBER;           #IMPLIED>
    312 <!ELEMENT annotation  (%TEXT;|xref|eref|iref|cref|spanx)*>
    313