You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
313 lines
9.0 KiB
313 lines
9.0 KiB
<!--
|
|
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)*>
|