blob: 11334ae729b91ad997781cc6751c1fbac56f34c9 [file] [log] [blame]
<!--
revised DTD for the RFC document series, draft of 2009-10-06
-->
<!--
Typical invocation:
<!DOCTYPE rfc PUBLIC "-//IETF//DTD RFC 2629//EN"
"http://xml.resource.org/authoring/rfc2629.dtd" [
... dtd subset ...
]>
or
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
... dtd subset ...
]>
-->
<!--
Contents
Character entities
DTD data types
The top-level
Front matter
The Body
Back matter
-->
<!--
Character entities
-->
<!ENTITY % rfc2629-xhtml
PUBLIC "-//IETF//ENTITIES XHTML subset for RFC 2629//EN"
"rfc2629-xhtml.ent">
%rfc2629-xhtml;
<!ENTITY % rfc2629-other
PUBLIC "-//IETF//ENTITIES Other for RFC 2629//EN"
"rfc2629-other.ent">
%rfc2629-other;
<!--
DTD data types:
entity description
====== ===============================================
NUMBER [0-9]+
NUMBERS a comma-separated list of NUMBER
DAY the day of the month, e.g., "1"
MONTH the month of the year, e.g., "January"
YEAR a four-digit year, e.g., "1999"
URI e.g., "http://invisible.net/"
ATEXT/CTEXT printable ASCII text (no line-terminators)
TEXT character data
-->
<!ENTITY % NUMBER "CDATA">
<!ENTITY % NUMBERS "CDATA">
<!ENTITY % DAY "CDATA">
<!ENTITY % MONTH "CDATA">
<!ENTITY % YEAR "CDATA">
<!ENTITY % URI "CDATA">
<!ENTITY % ATEXT "CDATA">
<!ENTITY % CTEXT "#PCDATA">
<!ENTITY % TEXT "#PCDATA">
<!ENTITY rfc.number "XXXX">
<!--
The top-level
-->
<!--
attributes for the "rfc" element are supplied by the RFC
editor. when preparing drafts, authors should leave them blank.
the "seriesNo" attribute is used if the category is, e.g., BCP.
-->
<!ELEMENT rfc (front,middle,back?)>
<!ATTLIST rfc
number %NUMBER; #IMPLIED
obsoletes %NUMBERS; ""
updates %NUMBERS; ""
category (std|bcp|info|exp|historic)
#IMPLIED
consensus (no|yes) #IMPLIED
seriesNo %NUMBER; #IMPLIED
ipr (full2026|noDerivativeWorks2026|none
|full3667|noModification3667|noDerivatives3667
|full3978|noModification3978|noDerivatives3978
|trust200811|noModificationTrust200811|noDerivativesTrust200811
|trust200902|noModificationTrust200902|noDerivativesTrust200902
|pre5378Trust200902)
#IMPLIED
iprExtract IDREF #IMPLIED
submissionType
(IETF|IAB|IRTF|independent) "IETF"
docName %ATEXT; #IMPLIED
xml:lang %ATEXT; "en">
<!--
Front matter
-->
<!ELEMENT front (title,author+,date,area*,workgroup*,keyword*,
abstract?,note*)>
<!-- the "abbrev" attribute is used for headers, etc. -->
<!ELEMENT title (%CTEXT;)>
<!ATTLIST title
abbrev %ATEXT; #IMPLIED>
<!ELEMENT author (organization?,address?)>
<!ATTLIST author
initials %ATEXT; #IMPLIED
surname %ATEXT; #IMPLIED
fullname %ATEXT; #IMPLIED
role (editor) #IMPLIED>
<!ELEMENT organization
(%CTEXT;)>
<!ATTLIST organization
abbrev %ATEXT; #IMPLIED>
<!ELEMENT address (postal?,phone?,facsimile?,email?,uri?)>
<!-- this content model should be more strict:
at most one of each the city, region, code, and country
elements may be present -->
<!ELEMENT postal (street+,(city|region|code|country)*)>
<!ELEMENT street (%CTEXT;)>
<!ELEMENT city (%CTEXT;)>
<!ELEMENT region (%CTEXT;)>
<!ELEMENT code (%CTEXT;)>
<!ELEMENT country (%CTEXT;)>
<!ELEMENT phone (%CTEXT;)>
<!ELEMENT facsimile (%CTEXT;)>
<!ELEMENT email (%CTEXT;)>
<!ELEMENT uri (%CTEXT;)>
<!ELEMENT date EMPTY>
<!ATTLIST date
day %DAY; #IMPLIED
month %MONTH; #IMPLIED
year %YEAR; #IMPLIED>
<!-- meta-data... -->
<!ELEMENT area (%CTEXT;)>
<!ELEMENT workgroup (%CTEXT;)>
<!ELEMENT keyword (%CTEXT;)>
<!ELEMENT abstract (t)+>
<!ELEMENT note (t)+>
<!ATTLIST note
title %ATEXT; #REQUIRED>
<!--
The body
-->
<!ELEMENT middle (section+)>
<!ELEMENT section ((t|figure|texttable|iref)*,section*)>
<!ATTLIST section
anchor ID #IMPLIED
title %ATEXT; #REQUIRED
toc (include|exclude|default)
"default">
<!-- use of <appendix/> is deprecated...
<!ELEMENT appendix ((t|figure|texttable|iref)*,appendix*)>
<!ATTLIST appendix
anchor ID #IMPLIED
title %ATEXT; #REQUIRED
toc (include|exclude|default)
"default">
-->
<!-- use of <figure/> is deprecated... -->
<!ELEMENT t (%TEXT;|list|figure|xref|eref|iref|cref|spanx|vspace)*>
<!ATTLIST t
anchor ID #IMPLIED
hangText %ATEXT; #IMPLIED>
<!-- the value of the style attribute is inherited from the closest
parent -->
<!ELEMENT list (t+)>
<!ATTLIST list
style %ATEXT; #IMPLIED
hangIndent %NUMBER; #IMPLIED
counter %ATEXT; #IMPLIED>
<!ELEMENT xref (%CTEXT;)>
<!ATTLIST xref
target IDREF #REQUIRED
pageno (true|false) "false"
format (counter|title|none|default)
"default">
<!ELEMENT eref (%CTEXT;)>
<!ATTLIST eref
target %URI; #REQUIRED>
<!ELEMENT iref EMPTY>
<!ATTLIST iref
item %ATEXT; #REQUIRED
subitem %ATEXT; ""
primary (true|false) "false">
<!ELEMENT cref (%CTEXT;)>
<!ATTLIST cref
anchor ID #IMPLIED
source %ATEXT; #IMPLIED>
<!ELEMENT spanx (%CTEXT;)>
<!ATTLIST spanx
xml:space (default|preserve) "preserve"
style %ATEXT; "emph">
<!ELEMENT vspace EMPTY>
<!ATTLIST vspace
blankLines %NUMBER; "0">
<!ELEMENT figure (iref*,preamble?,artwork,postamble?)>
<!ATTLIST figure
anchor ID #IMPLIED
title %ATEXT; ""
suppress-title (true|false) "false"
src %URI; #IMPLIED
align (left|center|right) "left"
alt %ATEXT; ""
width %ATEXT; ""
height %ATEXT; "">
<!ELEMENT preamble (%TEXT;|xref|eref|iref|cref|spanx)*>
<!ELEMENT artwork (%TEXT;)*>
<!ATTLIST artwork
xml:space (default|preserve) "preserve"
name %ATEXT; ""
type %ATEXT; ""
src %URI; #IMPLIED
align (left|center|right) "left"
alt %ATEXT; ""
width %ATEXT; ""
height %ATEXT; "">
<!ELEMENT postamble (%TEXT;|xref|eref|iref|cref|spanx)*>
<!ELEMENT texttable (preamble?,ttcol+,c*,postamble?)>
<!ATTLIST texttable
anchor ID #IMPLIED
title %ATEXT; ""
suppress-title (true|false) "false"
align (left|center|right) "center"
style (all|none|headers|full) "full">
<!ELEMENT ttcol (%CTEXT;)>
<!ATTLIST ttcol
width %ATEXT; #IMPLIED
align (left|center|right) "left">
<!ELEMENT c (%TEXT;|xref|eref|iref|cref|spanx)*>
<!--
Back matter
-->
<!-- sections, if present, are appendices -->
<!ELEMENT back (references*,section*)>
<!ELEMENT references (reference+)>
<!ATTLIST references
title %ATEXT; "References">
<!ELEMENT reference (front,seriesInfo*,format*,annotation*)>
<!ATTLIST reference
anchor ID #IMPLIED
target %URI; #IMPLIED>
<!ELEMENT seriesInfo EMPTY>
<!ATTLIST seriesInfo
name %ATEXT; #REQUIRED
value %ATEXT; #REQUIRED>
<!ELEMENT format EMPTY>
<!ATTLIST format
target %URI; #IMPLIED
type %ATEXT; #REQUIRED
octets %NUMBER; #IMPLIED>
<!ELEMENT annotation (%TEXT;|xref|eref|iref|cref|spanx)*>