2.57.1. "anchor" Attribute
Document-wide unique identifier for the tfoot.
2.58.
A cell in a table row. When rendered, this will normally come out in
boldface; other than that, there is no difference between this and
the
Hoffman Informational [Page 69]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016
2.58.1. "align" Attribute
Controls whether the content of the cell appears left justified
(default), centered, or right justified. Note that "center" or
"right" will probably only work well in cells with plain text; any
other elements might make the contents render badly.
Hoffman Informational [Page 70]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016
2.58.2. "anchor" Attribute
Document-wide unique identifier for the row.
2.58.3. "colspan" Attribute
The number of columns that the cell is to span. For example, setting
"colspan='3'" indicates that the cell occupies the same horizontal
space as three cells of a row without any "colspan" attributes.
2.58.4. "rowspan" Attribute
The number of rows that the cell is to span. For example, setting
"rowspan='3'" indicates that the cell occupies the same vertical
space as three rows.
2.59.
A container for a set of header rows for a table.
(Section 2.54).
Content model:
One or more
elements (Section 2.61)
2.59.1. "anchor" Attribute
Document-wide unique identifier for the thead.
Hoffman Informational [Page 71]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016
2.60. </p>
<p> Represents the document title.</p>
<p> When this element appears in the <front> element of the current
document, the title might also appear in page headers or footers. If
it is long (~40 characters), the "abbrev" attribute can be used to
specify an abbreviated variant.</p>
<p> This element appears as a child element of <front> (Section 2.26).</p>
<p> Content model: only text content.</p>
<p>2.60.1. "abbrev" Attribute</p>
<p> Specifies an abbreviated variant of the document title.</p>
<p>2.60.2. "ascii" Attribute</p>
<p> The ASCII equivalent of the title.</p>
<p>2.61. <tr></p>
<p> A row of a table.</p>
<p> This element appears as a child element of <tbody> (Section 2.55),
<tfoot> (Section 2.57), and <thead> (Section 2.59).</p>
<p> Content model:</p>
<p> In any order, but at least one of:</p>
<p> o <td> elements (Section 2.56)</p>
<p> o <th> elements (Section 2.58)</p>
<p>2.61.1. "anchor" Attribute</p>
<p> Document-wide unique identifier for the row.</p>
<p>Hoffman Informational [Page 72]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>2.62. <tt></p>
<p> Causes the text to be displayed in a constant-width font. This
element can be combined with other character formatting elements, and
the formatting will be additive.</p>
<p> This element appears as a child element of <annotation>
(Section 2.3), <blockquote> (Section 2.10), <cref> (Section 2.16),
<dd> (Section 2.18), <dt> (Section 2.21), <em> (Section 2.22), <li>
(Section 2.29), <name> (Section 2.32), <preamble> (Section 3.6),
<refcontent> (Section 2.39), <strong> (Section 2.50), <sub>
(Section 2.51), <sup> (Section 2.52), <t> (Section 2.53), <td>
(Section 2.56), and <th> (Section 2.58).</p>
<p> Content model:</p>
<p> In any order:</p>
<p> o Text</p>
<p> o <bcp14> elements (Section 2.9)</p>
<p> o <cref> elements (Section 2.16)</p>
<p> o <em> elements (Section 2.22)</p>
<p> o <eref> elements (Section 2.24)</p>
<p> o <iref> elements (Section 2.27)</p>
<p> o <relref> elements (Section 2.44)</p>
<p> o <strong> elements (Section 2.50)</p>
<p> o <sub> elements (Section 2.51)</p>
<p> o <sup> elements (Section 2.52)</p>
<p> o <xref> elements (Section 2.66)</p>
<p>Hoffman Informational [Page 73]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>2.63. <ul></p>
<p> An unordered list. The labels on the items will be symbols picked by
the formatter.</p>
<p> This element appears as a child element of <abstract> (Section 2.1),
<aside> (Section 2.6), <blockquote> (Section 2.10), <dd>
(Section 2.18), <li> (Section 2.29), <note> (Section 2.33), <section>
(Section 2.46), <td> (Section 2.56), and <th> (Section 2.58).</p>
<p> Content model:</p>
<p> One or more <li> elements (Section 2.29)</p>
<p>2.63.1. "anchor" Attribute</p>
<p> Document-wide unique identifier for the list.</p>
<p>2.63.2. "empty" Attribute</p>
<p> Defines whether or not the label is empty. empty="true" indicates
that no label will be shown.</p>
<p> Allowed values:</p>
<p> o "false" (default)</p>
<p> o "true"</p>
<p>2.63.3. "spacing" Attribute</p>
<p> Defines whether or not there is a blank line between entries.
spacing="normal" indicates a single blank line, while
spacing="compact" indicates no space between.</p>
<p> Allowed values:</p>
<p> o "normal" (default)</p>
<p> o "compact"</p>
<p>Hoffman Informational [Page 74]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>2.64. <uri></p>
<p> Contains a web address associated with the author.</p>
<p> The contents should be a valid URI; this most likely will be an
"http:" or "https:" URI.</p>
<p> This element appears as a child element of <address> (Section 2.2).</p>
<p> Content model: only text content.</p>
<p>2.65. <workgroup></p>
<p> This element is used to specify the Working Group (IETF) or Research
Group (IRTF) from which the document originates, if any. The
recommended format is the official name of the Working Group (with
some capitalization).</p>
<p> In Internet-Drafts, this is used in the upper left corner of the
boilerplate, replacing the "Network Working Group" string.
Formatting software can append the words "Working Group" or "Research
Group", depending on the "submissionType" property of the <rfc>
element (Section 2.45.12).</p>
<p> This element appears as a child element of <front> (Section 2.26).</p>
<p> Content model: only text content.</p>
<p>2.66. <xref></p>
<p> A reference to an anchor in this document. Formatters that have
links (such as HTML and PDF) are likely to render <xref> elements as
internal hyperlinks. This element is useful for referring to
references in the "References" section, to specific sections of this
document, to specific figures, and so on. The "target" attribute is
required.</p>
<p> This element appears as a child element of <annotation>
(Section 2.3), <blockquote> (Section 2.10), <c> (Section 3.1), <cref>
(Section 2.16), <dd> (Section 2.18), <dt> (Section 2.21), <em>
(Section 2.22), <li> (Section 2.29), <name> (Section 2.32),
<postamble> (Section 3.5), <preamble> (Section 3.6), <strong>
(Section 2.50), <sub> (Section 2.51), <sup> (Section 2.52), <t>
(Section 2.53), <td> (Section 2.56), <th> (Section 2.58), <tt>
(Section 2.62), and <ttcol> (Section 3.9).</p>
<p> Content model: only text content.</p>
<p>Hoffman Informational [Page 75]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>2.66.1. "format" Attribute</p>
<p> This attribute signals to formatters what the desired format of the
reference should be. Formatters for document types that have linking
capability should wrap the displayed text in hyperlinks.</p>
<p> "counter"</p>
<pre><code class="notranslate"> The "derivedContent" attribute will contain just a counter. This
is used for targets that are <section>, <figure>, <table>, or
items in an ordered list. Using "format='counter'" where the
target is any other type of element is an error.
For example, with an input of:
<section anchor="overview">Protocol Overview</section>
. . .
See Section <xref target="overview" format="counter"/>
for an overview.
An HTML formatter might generate:
See Section <a href="#overview">1.7</a> for an overview.</code></pre><p> "default"</p>
<pre><code class="notranslate"> If the element has no content, the "derivedContent" attribute will
contain a text fragment that describes the referenced part
completely, such as "XML" for a target that is a <reference>, or
"Section 2" or "Table 4" for a target to a non-reference. (If the
element has content, the "derivedContent" attribute is filled with
the content.)
For example, with an input of:
<section anchor="overview">Protocol Overview</section>
. . .
See <xref target="overview"/> for an overview.
An HTML formatter might generate:
See <a href="#overview">Section 1.7</a> for an overview.</code></pre><p> "none"</p>
<pre><code class="notranslate"> Deprecated.</code></pre><p>Hoffman Informational [Page 76]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> "title"</p>
<pre><code class="notranslate"> If the target is a <reference> element, the "derivedContent"
attribute will contain the name of the reference, extracted from
the <title> child of the <front> child of the reference. Or, if
the target element has a <name> child element, the
"derivedContent" attribute will contain the text content of that
<name> element concatenated with the text content of each
descendant node of <name> (that is, stripping out all of the XML
markup, leaving only the text). Or, if the target element does
not contain a <name> child element, the "derivedContent" attribute
will contain the name of the "anchor" attribute of that element
with no other adornment.</code></pre><p> Allowed values:</p>
<p> o "default" (default)</p>
<p> o "title"</p>
<p> o "counter"</p>
<p> o "none"</p>
<p>2.66.2. "pageno" Attribute</p>
<p> Deprecated.</p>
<p> Allowed values:</p>
<p> o "true"</p>
<p> o "false" (default)</p>
<p>2.66.3. "target" Attribute (Mandatory)</p>
<p> Identifies the document component being referenced. The value needs
to match the value of the "anchor" attribute of an element in the
document; otherwise, it is an error.</p>
<p>Hoffman Informational [Page 77]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ol start="3">
<li>Elements from v2 That Have Been Deprecated</li>
</ol>
<p> This section lists the elements from v2 that have been deprecated.
Note that some elements in v3 have attributes from v2 that are
deprecated; those are not listed here.</p>
<p>3.1. <c></p>
<p> Deprecated. Instead, use <tr>, <td>, and <th>.</p>
<p> This element appears as a child element of <texttable> (Section 3.8).</p>
<p> Content model:</p>
<p> In any order:</p>
<p> o Text</p>
<p> o <bcp14> elements (Section 2.9)</p>
<p> o <cref> elements (Section 2.16)</p>
<p> o <em> elements (Section 2.22)</p>
<p> o <eref> elements (Section 2.24)</p>
<p> o <iref> elements (Section 2.27)</p>
<p> o <spanx> elements (Section 3.7)</p>
<p> o <strong> elements (Section 2.50)</p>
<p> o <sub> elements (Section 2.51)</p>
<p> o <sup> elements (Section 2.52)</p>
<p> o <tt> elements (Section 2.62)</p>
<p> o <xref> elements (Section 2.66)</p>
<p>3.2. <facsimile></p>
<p> Deprecated. The <email> element is a much more useful way to get in
touch with authors.</p>
<p> This element appears as a child element of <address> (Section 2.2).</p>
<p> Content model: only text content.</p>
<p>Hoffman Informational [Page 78]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>3.3. <format></p>
<p> Deprecated. If the goal is to provide a single URI for a reference,
use the "target" attribute in <reference> instead.</p>
<p> This element appears as a child element of <reference>
(Section 2.40).</p>
<p> Content model: this element does not have any contents.</p>
<p>3.3.1. "octets" Attribute</p>
<p> Deprecated.</p>
<p>3.3.2. "target" Attribute</p>
<p> Deprecated.</p>
<p>3.3.3. "type" Attribute (Mandatory)</p>
<p> Deprecated.</p>
<p>3.4. <list></p>
<p> Deprecated. Instead, use <dl> for list/@style "hanging"; <ul> for
list/@style "empty" or "symbols"; and <ol> for list/@style "letters",
"numbers", "counter", or "format".</p>
<p> This element appears as a child element of <t> (Section 2.53).</p>
<p> Content model:</p>
<p> One or more <t> elements (Section 2.53)</p>
<p>3.4.1. "counter" Attribute</p>
<p> Deprecated. The functionality of this attribute has been replaced
with <ol>/@start.</p>
<p>3.4.2. "hangIndent" Attribute</p>
<p> Deprecated. Use <dl> instead.</p>
<p>3.4.3. "style" Attribute</p>
<p> Deprecated.</p>
<p>Hoffman Informational [Page 79]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>3.5. <postamble></p>
<p> Deprecated. Instead, use a regular paragraph after the figure or
table.</p>
<p> This element appears as a child element of <figure> (Section 2.25)
and <texttable> (Section 3.8).</p>
<p> Content model:</p>
<p> In any order:</p>
<p> o Text</p>
<p> o <bcp14> elements (Section 2.9)</p>
<p> o <cref> elements (Section 2.16)</p>
<p> o <em> elements (Section 2.22)</p>
<p> o <eref> elements (Section 2.24)</p>
<p> o <iref> elements (Section 2.27)</p>
<p> o <spanx> elements (Section 3.7)</p>
<p> o <strong> elements (Section 2.50)</p>
<p> o <sub> elements (Section 2.51)</p>
<p> o <sup> elements (Section 2.52)</p>
<p> o <tt> elements (Section 2.62)</p>
<p> o <xref> elements (Section 2.66)</p>
<p>Hoffman Informational [Page 80]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>3.6. <preamble></p>
<p> Deprecated. Instead, use a regular paragraph before the figure or
table.</p>
<p> This element appears as a child element of <figure> (Section 2.25)
and <texttable> (Section 3.8).</p>
<p> Content model:</p>
<p> In any order:</p>
<p> o Text</p>
<p> o <bcp14> elements (Section 2.9)</p>
<p> o <cref> elements (Section 2.16)</p>
<p> o <em> elements (Section 2.22)</p>
<p> o <eref> elements (Section 2.24)</p>
<p> o <iref> elements (Section 2.27)</p>
<p> o <spanx> elements (Section 3.7)</p>
<p> o <strong> elements (Section 2.50)</p>
<p> o <sub> elements (Section 2.51)</p>
<p> o <sup> elements (Section 2.52)</p>
<p> o <tt> elements (Section 2.62)</p>
<p> o <xref> elements (Section 2.66)</p>
<p>3.7. <spanx></p>
<p> Deprecated.</p>
<p> This element appears as a child element of <annotation>
(Section 2.3), <c> (Section 3.1), <postamble> (Section 3.5),
<preamble> (Section 3.6), and <t> (Section 2.53).</p>
<p> Content model: only text content.</p>
<p>Hoffman Informational [Page 81]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>3.7.1. "style" Attribute</p>
<p> Deprecated. Instead of <spanx style="emph">, use <em>; instead of
<spanx style="strong">, use <strong>; instead of <spanx
style="verb">, use <tt>.</p>
<p>3.7.2. "xml:space" Attribute</p>
<p> Deprecated.</p>
<p> Allowed values:</p>
<p> o "default"</p>
<p> o "preserve" (default)</p>
<p>3.8. <texttable></p>
<p> Deprecated. Use <table> instead.</p>
<p> This element appears as a child element of <aside> (Section 2.6) and
<section> (Section 2.46).</p>
<p> Content model:</p>
<p> In this order:</p>
<ol>
<li><p>One optional <name> element (Section 2.32)</p>
</li>
<li><p>One optional <preamble> element (Section 3.6)</p>
</li>
<li><p>One or more <ttcol> elements (Section 3.9)</p>
</li>
<li><p>Optional <c> elements (Section 3.1)</p>
</li>
<li><p>One optional <postamble> element (Section 3.5)</p>
</li>
</ol>
<p>3.8.1. "align" Attribute</p>
<p> Deprecated.</p>
<p> Allowed values:</p>
<p> o "left"</p>
<p> o "center" (default)</p>
<p> o "right"</p>
<p>Hoffman Informational [Page 82]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>3.8.2. "anchor" Attribute</p>
<p> Deprecated.</p>
<p>3.8.3. "style" Attribute</p>
<p> Deprecated.</p>
<p>3.8.4. "suppress-title" Attribute</p>
<p> Deprecated.</p>
<p> Allowed values:</p>
<p> o "true"</p>
<p> o "false" (default)</p>
<p>3.8.5. "title" Attribute</p>
<p> Deprecated.</p>
<p>3.9. <ttcol></p>
<p> Deprecated. Instead, use <tr>, <td>, and <th>.</p>
<p> This element appears as a child element of <texttable> (Section 3.8).</p>
<p> Content model:</p>
<p> In any order:</p>
<p> o Text</p>
<p> o <cref> elements (Section 2.16)</p>
<p> o <eref> elements (Section 2.24)</p>
<p> o <iref> elements (Section 2.27)</p>
<p> o <xref> elements (Section 2.66)</p>
<p>Hoffman Informational [Page 83]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>3.9.1. "align" Attribute</p>
<p> Deprecated.</p>
<p> Allowed values:</p>
<p> o "left" (default)</p>
<p> o "center"</p>
<p> o "right"</p>
<p>3.9.2. "width" Attribute</p>
<p> Deprecated.</p>
<p>3.10. <vspace></p>
<p> Deprecated. In earlier versions of this format, <vspace> was often
used to get an extra blank line in a list element; in the v3
vocabulary, that can be done instead by using multiple <t> elements
inside the <li> element. Other uses have no direct replacement.</p>
<p> This element appears as a child element of <t> (Section 2.53).</p>
<p> Content model: this element does not have any contents.</p>
<p>3.10.1. "blankLines" Attribute</p>
<p> Deprecated.</p>
<ol start="4">
<li>SVG</li>
</ol>
<p> The discussion of the use of SVG can be found in [RFC7996]. This
element is part of the namespace "<a href="http://www.w3.org/2000/svg" title="undefined" rel="noopener noreferrer">http://www.w3.org/2000/svg</a>".</p>
<p>Hoffman Informational [Page 84]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ol start="5">
<li>Use of CDATA Structures and Escaping</li>
</ol>
<p> A common problem authors have with <artwork> and <sourcecode>
elements is that the XML processor returns errors if the text in the
artwork contains either the "&" or "<" character, or the string
"]]>". To avoid these problems, the "&" and "<" characters may be
escaped using the strings "&" and "<", respectively; the "]]>"
string can be represented as "]]>". Alternatively, they may be
surrounded in a CDATA structure: "<![CDATA[]]>". For example:</p>
<p> Desired output:
allowed-chars = "." | "," | "&" | "<" | ">" | "|"</p>
<p> Using escaping:
<sourcecode>
allowed-chars = "." | "," | "&" | "<" | ">" | "|"
</sourcecode></p>
<p> Using CDATA:
<sourcecode>
<![CDATA[ allowed-chars = "." | "," | "&" | "<" | ">" | "|"]]>
</sourcecode></p>
<p> Using CDATA is not a panacea, but it does help prevent having to use
escapes in places where using escapes can cause other problems, such
as difficulty of inclusion from other documents.</p>
<ol start="6">
<li>Internationalization Considerations</li>
</ol>
<p> This format is based on [XML] and thus does not have any issues
representing arbitrary Unicode [UNICODE] characters in text content.
The RFC Series Editor may restrict some of the characters that can be
used in a particular RFC; the rules for such restrictions are covered
in [RFC7997].</p>
<ol start="7">
<li>Security Considerations</li>
</ol>
<p> The "name" attribute of the <artwork> element (Section 2.5.5) can be
used to derive a filename for saving to a local file system.
Trusting this kind of information without pre-processing is a known
security risk; see Section 4.3 of [RFC6266] for more information.</p>
<p> The "src" attribute of the <artwork> element can be used to read
files from the local system. Processing tools must be careful to not
accept dangerous values for the filename, particularly those that
contain absolute references outside the current directory.</p>
<p>Hoffman Informational [Page 85]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> The "type" attribute of the <artwork> and <sourcecode> elements is
meant to encourage formatters to automatically extract known types of
content from an RFC or Internet-Draft. While extraction is probably
safe, those tools might also think that they could further process
the extracted content, such as by rendering artwork or executing
code. Doing so without first sanity-checking the extracted content
is clearly a terrible idea from a security perspective. More
generally, a tool that is reading XML input needs to be suspicious of
any content that it intends to post-process.</p>
<p> When there is an external reference to a URL, a processor or renderer
should fetch the content into a sandbox and should have only a
localized impact on the document processing and rendering.</p>
<p> All security considerations related to XML processing are relevant as
well (see Section 7 of [RFC3470]).</p>
<ol start="8">
<li>IANA Considerations</li>
</ol>
<p>8.1. Internet Media Type Registration</p>
<p> IANA maintains the registry of Internet Media Types [RFC6838] at
<a href="https://www.iana.org/assignments/media-types" title="undefined" rel="noopener noreferrer">https://www.iana.org/assignments/media-types</a>.</p>
<p> This document updates the specification for the Internet Media Type
"application/rfc+xml" from the one in [RFC7749]. The following has
been registered with IANA.</p>
<p> Type name: application</p>
<p> Subtype name: rfc+xml</p>
<p> Required parameters: There are no required parameters.</p>
<p> Optional parameters: "charset": This parameter has identical
semantics to the charset parameter of the "application/xml" Media
Type specified in Section 9.1 of [RFC7303].</p>
<p> Encoding considerations: Identical to those of "application/xml" as
described in Section 9.1 of [RFC7303].</p>
<p> Security considerations: As defined in Section 7. In addition, as
this Media Type uses the "+xml" convention, it inherits the
security considerations described in Section 10 of [RFC7303].</p>
<p>Hoffman Informational [Page 86]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> Interoperability considerations: Different implementations of this
format have had interoperability issues. It is not expected that
publication of this application will cause those implementations
to be fixed.</p>
<p> Published specification: This specification.</p>
<p> Applications that use this Media Type: Applications that transform
xml2rfc to output representations such as plain text or HTML, plus
additional analysis tools.</p>
<p> Fragment identifier considerations: The "anchor" attribute is used
for assigning document-wide unique identifiers that can be used as
shorthand pointers, as described in [XPOINTER].</p>
<p> Additional information:</p>
<pre><code class="notranslate"> Deprecated alias names for this type: None
Magic number(s): As specified for "application/xml" in [RFC7303].
File extension(s): .xml or .rfcxml when disambiguation from other
XML files is needed
Macintosh file type code(s): TEXT</code></pre><p> Person & email address to contact for further information: See the
Author's Address section of RFC 7991.</p>
<p> Intended usage: COMMON</p>
<p> Restrictions on usage: None</p>
<p> Author: See the Author's Address section of RFC 7991.</p>
<p> Change controller: RFC Series Editor (<a href="mailto:rse@rfc-editor.org" title="undefined" rel="noopener noreferrer">rse@rfc-editor.org</a>)</p>
<p>8.2. Link Relation Registration</p>
<p> IANA has registered "convertedFrom" in the "Link Relation Types"
registry [LINKRELATIONS].</p>
<p> Relation Name: convertedFrom</p>
<p> Description: The document linked to was later converted to the
document that contains this link relation. For example, an RFC can
have a link to the Internet-Draft that became the RFC; in that case,
the link relation would be "convertedFrom".</p>
<p>Hoffman Informational [Page 87]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> Reference: This document.</p>
<p> Notes: This relation is different than "predecessor-version" in that
"predecessor-version" is for items in a version control system. It
is also different than "previous" in that this relation is used for
converted resources, not those that are part of a sequence of
resources.</p>
<p> Application Data: None</p>
<ol start="9">
<li>References</li>
</ol>
<p>9.1. Normative References</p>
<p> [BCP14] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<a href="http://www.rfc-editor.org/info/bcp14" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/bcp14</a>.</p>
<p> [XML] Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E.,
and F. Yergeau, "Extensible Markup Language (XML) 1.0
(Fifth Edition)", W3C Recommendation REC-xml-20081126,
November 2008,
<a href="https://www.w3.org/TR/2008/REC-xml-20081126/" title="undefined" rel="noopener noreferrer">https://www.w3.org/TR/2008/REC-xml-20081126/</a>.</p>
<pre><code class="notranslate"> Latest version available at <http://www.w3.org/TR/xml>.</code></pre><p>9.2. Informative References</p>
<p> [IDGUIDE] Housley, R., "Guidelines to Authors of Internet-Drafts",
December 2010, <<a href="https://www.ietf.org/id-info/" title="undefined" rel="noopener noreferrer">https://www.ietf.org/id-info/</a>
guidelines.html>.</p>
<p> [LINKRELATIONS]
IANA, "Link Relations", <<a href="https://www.iana.org/assignments/" title="undefined" rel="noopener noreferrer">https://www.iana.org/assignments/</a>
link-relations/>.</p>
<p> [RFC2026] Bradner, S., "The Internet Standards Process --
Revision 3", BCP 9, RFC 2026, DOI 10.17487/RFC2026,
October 1996, <a href="http://www.rfc-editor.org/info/rfc2026" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc2026</a>.</p>
<p> [RFC2397] Masinter, L., "The "data" URL scheme", RFC 2397,
DOI 10.17487/RFC2397, August 1998,
<a href="http://www.rfc-editor.org/info/rfc2397" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc2397</a>.</p>
<p> [RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
DOI 10.17487/RFC2629, June 1999,
<a href="http://www.rfc-editor.org/info/rfc2629" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc2629</a>.</p>
<p>Hoffman Informational [Page 88]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet:
Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
<a href="http://www.rfc-editor.org/info/rfc3339" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc3339</a>.</p>
<p> [RFC3470] Hollenbeck, S., Rose, M., and L. Masinter, "Guidelines for
the Use of Extensible Markup Language (XML) within IETF
Protocols", BCP 70, RFC 3470, DOI 10.17487/RFC3470,
January 2003, <a href="http://www.rfc-editor.org/info/rfc3470" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc3470</a>.</p>
<p> [RFC3667] Bradner, S., "IETF Rights in Contributions", RFC 3667,
DOI 10.17487/RFC3667, February 2004,
<a href="http://www.rfc-editor.org/info/rfc3667" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc3667</a>.</p>
<p> [RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers",
RFC 3966, DOI 10.17487/RFC3966, December 2004,
<a href="http://www.rfc-editor.org/info/rfc3966" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc3966</a>.</p>
<p> [RFC3978] Bradner, S., Ed., "IETF Rights in Contributions",
RFC 3978, DOI 10.17487/RFC3978, March 2005,
<a href="http://www.rfc-editor.org/info/rfc3978" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc3978</a>.</p>
<p> [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, DOI 10.17487/RFC3986, January 2005,
<a href="http://www.rfc-editor.org/info/rfc3986" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc3986</a>.</p>
<p> [RFC5234] Crocker, D., Ed., and P. Overell, "Augmented BNF for
Syntax Specifications: ABNF", STD 68, RFC 5234,
DOI 10.17487/RFC5234, January 2008,
<a href="http://www.rfc-editor.org/info/rfc5234" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc5234</a>.</p>
<p> [RFC5378] Bradner, S., Ed., and J. Contreras, Ed., "Rights
Contributors Provide to the IETF Trust", BCP 78, RFC 5378,
DOI 10.17487/RFC5378, November 2008,
<a href="http://www.rfc-editor.org/info/rfc5378" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc5378</a>.</p>
<p> [RFC6068] Duerst, M., Masinter, L., and J. Zawinski, "The 'mailto'
URI Scheme", RFC 6068, DOI 10.17487/RFC6068, October 2010,
<a href="http://www.rfc-editor.org/info/rfc6068" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc6068</a>.</p>
<p> [RFC6266] Reschke, J., "Use of the Content-Disposition Header Field
in the Hypertext Transfer Protocol (HTTP)", RFC 6266,
DOI 10.17487/RFC6266, June 2011,
<a href="http://www.rfc-editor.org/info/rfc6266" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc6266</a>.</p>
<p>Hoffman Informational [Page 89]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> [RFC6838] Freed, N., Klensin, J., and T. Hansen, "Media Type
Specifications and Registration Procedures", BCP 13,
RFC 6838, DOI 10.17487/RFC6838, January 2013,
<a href="http://www.rfc-editor.org/info/rfc6838" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc6838</a>.</p>
<p> [RFC6949] Flanagan, H. and N. Brownlee, "RFC Series Format
Requirements and Future Development", RFC 6949,
DOI 10.17487/RFC6949, May 2013,
<a href="http://www.rfc-editor.org/info/rfc6949" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc6949</a>.</p>
<p> [RFC7303] Thompson, H. and C. Lilley, "XML Media Types", RFC 7303,
DOI 10.17487/RFC7303, July 2014,
<a href="http://www.rfc-editor.org/info/rfc7303" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc7303</a>.</p>
<p> [RFC7322] Flanagan, H. and S. Ginoza, "RFC Style Guide", RFC 7322,
DOI 10.17487/RFC7322, September 2014,
<a href="http://www.rfc-editor.org/info/rfc7322" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc7322</a>.</p>
<p> [RFC7669] Levine, J., "Assigning Digital Object Identifiers to
RFCs", RFC 7669, DOI 10.17487/RFC7669, October 2015,
<a href="http://www.rfc-editor.org/info/rfc7669" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc7669</a>.</p>
<p> [RFC7749] Reschke, J., "The "xml2rfc" Version 2 Vocabulary",
RFC 7749, DOI 10.17487/RFC7749, February 2016,
<a href="http://www.rfc-editor.org/info/rfc7749" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc7749</a>.</p>
<p> [RFC7841] Halpern, J., Ed., Daigle, L., Ed., and O. Kolkman, Ed.,
"RFC Streams, Headers, and Boilerplates", RFC 7841,
DOI 10.17487/RFC7841, May 2016,
<a href="http://www.rfc-editor.org/info/rfc7841" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc7841</a>.</p>
<p> [RFC7996] Brownlee, N., "SVG Drawings for RFCs: SVG 1.2 RFC",
RFC 7996, DOI 10.17487/RFC7996, December 2016,
<a href="http://www.rfc-editor.org/info/rfc7996" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc7996</a>.</p>
<p> [RFC7997] Flanagan, H., Ed., "The Use of Non-ASCII Characters in
RFCs", RFC 7997, DOI 10.17487/RFC7997, December 2016,
<a href="http://www.rfc-editor.org/info/rfc7997" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc7997</a>.</p>
<p> [RFC7998] Hoffman, P. and J. Hildebrand, ""xml2rfc" Version 3
Preparation Tool Description", RFC 7998,
DOI 10.17487/RFC7998, December 2016,
<a href="http://www.rfc-editor.org/info/rfc7998" title="undefined" rel="noopener noreferrer">http://www.rfc-editor.org/info/rfc7998</a>.</p>
<p>Hoffman Informational [Page 90]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> [RNC] Clark, J., "RELAX NG Compact Syntax", The Organization
for the Advancement of Structured Information
Standards (OASIS), November 2002,
<<a href="https://www.oasis-open.org/committees/" title="undefined" rel="noopener noreferrer">https://www.oasis-open.org/committees/</a>
relax-ng/compact-20021121.html>.</p>
<p> [RNG] ISO/IEC, "Information Technology - Document Schema
Definition Languages (DSDL) - Part 2: Regular-Grammar-
Based Validation - RELAX NG (Second Edition)",
ISO/IEC 19757-2:2008(E), December 2008.</p>
<pre><code class="notranslate"> A useful source of RNG-related information is
<http://relaxng.org/>.</code></pre><p> [TLP1.0] IETF Trust, "Legal Provisions Relating to IETF Documents",
November 2008,
<a href="http://trustee.ietf.org/license-info/IETF-TLP-1.htm" title="undefined" rel="noopener noreferrer">http://trustee.ietf.org/license-info/IETF-TLP-1.htm</a>.</p>
<p> [TLP2.0] IETF Trust, "Legal Provisions Relating to IETF Documents",
February 2009,
<a href="http://trustee.ietf.org/license-info/IETF-TLP-2.htm" title="undefined" rel="noopener noreferrer">http://trustee.ietf.org/license-info/IETF-TLP-2.htm</a>.</p>
<p> [TLP3.0] IETF Trust, "Legal Provisions Relating to IETF Documents",
September 2009,
<a href="http://trustee.ietf.org/license-info/IETF-TLP-3.htm" title="undefined" rel="noopener noreferrer">http://trustee.ietf.org/license-info/IETF-TLP-3.htm</a>.</p>
<p> [TLP4.0] IETF Trust, "Legal Provisions Relating to IETF Documents",
December 2009,
<a href="http://trustee.ietf.org/license-info/IETF-TLP-4.htm" title="undefined" rel="noopener noreferrer">http://trustee.ietf.org/license-info/IETF-TLP-4.htm</a>.</p>
<p> [TLP5.0] IETF Trust, "Legal Provisions Relating to IETF Documents",
March 2015,
<a href="http://trustee.ietf.org/license-info/IETF-TLP-5.htm" title="undefined" rel="noopener noreferrer">http://trustee.ietf.org/license-info/IETF-TLP-5.htm</a>.</p>
<p> [UAX24] The Unicode Consortium, "UAX #24: Unicode Script
Property", <a href="http://www.unicode.org/reports/tr24/" title="undefined" rel="noopener noreferrer">http://www.unicode.org/reports/tr24/</a>.</p>
<p> [UNICODE] The Unicode Consortium, "The Unicode Standard",
<a href="http://www.unicode.org/versions/latest/" title="undefined" rel="noopener noreferrer">http://www.unicode.org/versions/latest/</a>.</p>
<p> [USASCII] American National Standards Institute, "Coded Character
Set -- 7-bit American Standard Code for Information
Interchange", ANSI X3.4, 1986.</p>
<p>Hoffman Informational [Page 91]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> [XInclude] Marsh, J., Orchard, D., and D. Veillard, "XML Inclusions
(XInclude) Version 1.0 (Second Edition)", W3C
Recommendation REC-xinclude-20061115, November 2006,
<a href="https://www.w3.org/TR/2006/REC-xinclude-20061115/" title="undefined" rel="noopener noreferrer">https://www.w3.org/TR/2006/REC-xinclude-20061115/</a>.</p>
<pre><code class="notranslate"> Latest version available at
<http://www.w3.org/TR/xinclude/>.</code></pre><p> [XPOINTER] Grosso, P., Maler, E., Marsh, J., and N. Walsh,
"XPointer Framework", W3C Recommendation
REC-xptr-framework-20030325, March 2003,
<a href="http://www.w3.org/TR/2003/REC-xptr-framework-20030325/" title="undefined" rel="noopener noreferrer">http://www.w3.org/TR/2003/REC-xptr-framework-20030325/</a>.</p>
<pre><code class="notranslate"> Latest version available at
<http://www.w3.org/TR/xptr-framework/>.</code></pre><p>Hoffman Informational [Page 92]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>Appendix A. Front-Page ("Boilerplate") Generation</p>
<p> The values listed here will be defined by the RFC Series Editor.
Those listed here are believed to be the current values in use.</p>
<p>A.1. The "ipr" Attribute</p>
<p> This attribute value can take a long list of values, each of which
describes an IPR policy for the document (Section 2.45.5). The
values are not the result of a grand design, but they remain simply
for historic reasons. Of these values, only a few are currently in
use; all others are supported by various tools for backwards
compatibility with old source files.</p>
<pre><code class="notranslate"> Note: Some variations of the boilerplate are selected based on the
document's date; therefore, it is important to specify the "year",
"month", and "day" attributes of the <date> element when archiving
the XML source of an Internet-Draft on the day of submission.</code></pre><p> <em>Disclaimer: THIS ONLY PROVIDES IMPLEMENTATION INFORMATION. IF YOU
NEED LEGAL ADVICE, PLEASE CONTACT A LAWYER.</em> For further
information, refer to <<a href="http://trustee.ietf.org/docs/" title="undefined" rel="noopener noreferrer">http://trustee.ietf.org/docs/</a>
IETF-Copyright-FAQ.pdf>.</p>
<p> For the current "Copyright Notice" text, the submissionType attribute
of the <rfc> element (Section 2.45.12) determines whether a statement
about "Code Components" is inserted (which is the case for the value
"IETF", which is the default). Other values, such as "independent",
suppress this part of the text.</p>
<p>A.1.1. Current Values: "*trust200902"</p>
<p> The name for these values refers to version 2.0 of the IETF Trust's
"Legal Provisions Relating to IETF Documents", sometimes simply
called the "TLP", which went into effect on February 15, 2009
[TLP2.0]. Updates to the document were published on September 12,
2009 [TLP3.0] and on December 28, 2009 [TLP4.0], modifying the
license for code components (see <<a href="http://trustee.ietf.org/" title="undefined" rel="noopener noreferrer">http://trustee.ietf.org/</a>
license-info/> for further information). The actual text is located
in Section 6 ("Text to Be Included in IETF Documents") of these
documents.</p>
<p>Hoffman Informational [Page 93]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> The prep tool automatically produces the "correct" text, depending on
the document's date information (see above):</p>
<pre><code class="notranslate"> +----------+--------------------------------+
| TLP | starting with publication date |
+----------+--------------------------------+
| [TLP3.0] | 2009-11-01 |
| [TLP4.0] | 2010-04-01 |
+----------+--------------------------------+
The TLP was again updated in March 2015 [TLP5.0], but the changes
made in that version do not affect the boilerplate text.</code></pre><p>A.1.1.1. trust200902</p>
<p> This value should be used unless one of the more specific
"*trust200902" values is a better fit. It produces the text in
Sections 6.a and 6.b of the TLP.</p>
<p>A.1.1.2. noModificationTrust200902</p>
<p> This produces the additional text from Section 6.c.i of the TLP:</p>
<pre><code class="notranslate"> This document may not be modified, and derivative works of it may
not be created, except to format it for publication as an RFC or
to translate it into languages other than English.
Note: this clause is incompatible with RFCs that are published on
the Standards Track.</code></pre><p>A.1.1.3. noDerivativesTrust200902</p>
<p> This produces the additional text from Section 6.c.ii of the TLP:</p>
<pre><code class="notranslate"> This document may not be modified, and derivative works of it may
not be created, and it may not be published except as an
Internet-Draft.
Note: this clause is incompatible with RFCs.</code></pre><p>Hoffman Informational [Page 94]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>A.1.1.4. pre5378Trust200902</p>
<p> This produces the additional text from Section 6.c.iii of the TLP,
frequently called the "pre-5378 escape clause" referring to changes
introduced in [RFC5378]:</p>
<pre><code class="notranslate"> This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s)
controlling the copyright in such materials, this document may not
be modified outside the IETF Standards Process, and derivative
works of it may not be created outside the IETF Standards Process,
except to format it for publication as an RFC or to translate it
into languages other than English.</code></pre><p> See Section 4 of <<a href="http://trustee.ietf.org/docs/" title="undefined" rel="noopener noreferrer">http://trustee.ietf.org/docs/</a>
IETF-Copyright-FAQ.pdf> for further information about when to use
this value.</p>
<pre><code class="notranslate"> Note: this text appears under "Copyright Notice", unless the
document was published before November 2009, in which case it
appears under "Status of This Memo".</code></pre><p>A.1.2. Historic Values</p>
<p>A.1.2.1. Historic Values: "*trust200811"</p>
<p> The attribute values "trust200811", "noModificationTrust200811", and
"noDerivativesTrust200811" are similar to their "trust200902"
counterparts, except that they use text specified in [TLP1.0].</p>
<p>A.1.2.2. Historic Values: "*3978"</p>
<p> The attribute values "full3978", "noModification3978", and
"noDerivatives3978" are similar to their counterparts above, except
that they use text specified in [RFC3978].</p>
<p>A.1.2.3. Historic Values: "*3667"</p>
<p> The attribute values "full3667", "noModification3667", and
"noDerivatives3667" are similar to their counterparts above, except
that they use text specified in [RFC3667].</p>
<p>Hoffman Informational [Page 95]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>A.1.2.4. Historic Values: "*2026"</p>
<p> The attribute values "full2026" and "noDerivativeWorks2026" are
similar to their counterparts above, except that they use text
specified in Section 10 of [RFC2026].</p>
<p> The special value "none" was also used back then; it denied the IETF
any rights beyond publication as an Internet-Draft.</p>
<p>A.2. The "submissionType" Attribute</p>
<p> The RFC Editor publishes documents from different "document streams",
of which the "IETF stream" is the most prominent. Other streams are
the "Independent Submissions stream" (used for things such as
discussion of Internet-related technologies that are not part of the
IETF agenda), the "IAB stream" (Internet Architecture Board), and the
"IRTF stream" (Internet Research Task Force).</p>
<p> The values for the attribute are "IETF" (the default value),
"independent", "IAB", and "IRTF".</p>
<p> Historically, this attribute did not affect the final appearance of
RFCs, except for subtle differences in copyright notices. Nowadays
(as of [RFC7841]), the stream name appears in the first line of the
front page, and it also affects the text in the "Status of This Memo"
section.</p>
<p> For current documents, setting the "submissionType" attribute will
have the following effect:</p>
<p> o For RFCs, the stream name appears in the upper left corner of the
first page (in Internet-Drafts, this is either "Network Working
Group" or the value of the <workgroup> element).</p>
<p> o For RFCs, it affects the whole "Status of This Memo" section (see
Section 3.2 of [RFC7841]).</p>
<p> o For all RFCs and Internet-Drafts, it determines whether the
"Copyright Notice" section mentions the Copyright on Code
Components (see Section 6 of the TLP ("Text to Be Included in IETF
Documents")).</p>
<p>Hoffman Informational [Page 96]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>A.3. The "consensus" Attribute</p>
<p> For some of the publication streams (see Appendix A.2), the "Status
of This Memo" section depends on whether there was a consensus to
publish (again, see Section 3.4 of [RFC7841]).</p>
<p> The consensus attribute can be used to supply this information. The
acceptable values are "true" (the default) and "false"; "yes" and
"no" from v2 are deprecated.</p>
<p> The effect of this value for the various streams is:</p>
<p> o "independent": none.</p>
<p> o "IAB": mention that there was an IAB consensus.</p>
<p> o "IETF": mention that there was an IETF consensus.</p>
<p> o "IRTF": mention that there was a research group consensus (where
the name of the research group is extracted from the <workgroup>
element).</p>
<p>Hoffman Informational [Page 97]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>Appendix B. The v3 Format and Processing Tools</p>
<p> This section describes topics that are specific to v3 processing
tools. Note that there is some discussion of tools in the main body
of the document as well. For example, some elements have
descriptions of how a processing tool might create output from the
element.</p>
<p> The expected design of the tools that will be used with v3 documents
includes:</p>
<p> o A "prep tool" that takes a v3 document, makes many checks, adds
and changes many attribute values, and creates a file that is a
"prepared document". The prepared document is a valid v3
document. The prep tool is described in [RFC7998].</p>
<pre><code class="notranslate"> The prep tool is expected to have many modes:
* RFC mode -- The mode used by the RFC Editor to process the
input from one of the RFC streams and to process XML produced
during the RFC editing process. The restrictions on the
canonical XML for RFCs, as well as how the non-canonical
formats will look, are described at
<https://www.rfc-editor.org/rse/wiki/
doku.php?id=design:format-and-content-rfcs>.
* Draft mode -- The mode used by the Internet-Draft submission
tool. The restrictions for the XML from this mode will be
described later.
* Diagnostic mode -- A mode that can be used by document authors
to look for errors or warnings before they submit their
documents for publication.
* Consolidation mode -- Produces output where no external
resources are required to render the file output. This
includes expanding the XInclude entities and DTD entities in
place, and changing all elements that have "src" attributes
with external links into either "data:" URI or content for the
element, as specified in [RFC7998].</code></pre><p> o Formatting tools that will create HTML, PDF, plain text, and
possibly other output formats. These formatters will be created
by the IETF, but others can create such tools as well. The IETF
tools are expected to take prepared documents as input.</p>
<p>Hoffman Informational [Page 98]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> There may also be processing tools that are meant to run on the
computers of authors. These tools may be used to produce interim
versions of the non-canonical representations so that authors can see
how their XML might later be rendered, to create documents in
representations different than those supported by the RFC Editor, to
possibly create documents that are not meant to be Internet-Drafts or
RFCs, and to convert XML that has external information into XML that
has that external information included.</p>
<p> The prep tool is expected to have clear error reporting, giving more
context than just a line number. For example, the error messages
should differentiate between errors in XML and those from the v3
format.</p>
<p> In v2, the grammar was specified as a DTD. In v3, the grammar is
specified only as RELAX Next Generation (RNG). This means that tools
need to work from the RNG, not from a DTD. Some of the features of
the v3 grammar cannot be specified as a DTD.</p>
<p>B.1. Including External Text with XInclude</p>
<p> All tools for the v3 format are expected to support XInclude
[XInclude]. XInclude specifies a processing model and syntax for
general-purpose inclusion of information that is either on the
Internet or local to the user's computer.</p>
<p> In the v3 syntax, XInclude is expressed as the <a href="xi:include" title="undefined" rel="noopener noreferrer">xi:include</a> element.
To use this element, you need to include the "xi" namespace in the
<rfc> element; that is, you need to specify</p>
<p> xmlns:xi="<a href="http://www.w3.org/2001/XInclude" title="undefined" rel="noopener noreferrer">http://www.w3.org/2001/XInclude</a>"</p>
<p> as one of the attributes in the <rfc> element.</p>
<p> The most common way to use <a href="xi:include" title="undefined" rel="noopener noreferrer">xi:include</a> is to pull in references that
are already formed as XML. Currently, this can be done from
xml2rfc.tools.ietf.org, but later this is expected to be from the RFC
Editor. For example, if a document has three normative references,
all RFCs, the document might contain:</p>
<references>
<xi:include href="http://xml2rfc.tools.ietf.org/public/rfc/
bibxml/reference.RFC.2119.xml"/>
<xi:include href="http://xml2rfc.tools.ietf.org/public/rfc/
bibxml/reference.RFC.4869.xml"/>
<xi:include href="http://xml2rfc.tools.ietf.org/public/rfc/
bibxml/reference.RFC.7169.xml"/>
</references>
<p>Hoffman Informational [Page 99]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> <a href="xi:include" title="undefined" rel="noopener noreferrer">xi:include</a> can be used anywhere an XML element could be used (but
not where free text is used). For example, if three Internet-Drafts
are all including a particular paragraph or section verbatim, that
text can be kept either in a file or somewhere on the web and can be
included with <a href="xi:include" title="undefined" rel="noopener noreferrer">xi:include</a>. An example of pulling something from the
local disk would be:</p>
<p> <x:include href="file://home/chris/ietf/drafts/commontext.xml"/></p>
<p> In general, XInclude should be used instead of ENTITY references and
XML Processing Instructions (PIs) that allow external inclusions.</p>
<p>B.2. Anchors and IDs</p>
<p> People writing and reading Internet-Drafts and RFCs often want to
make reference to specific locations in those documents. In the case
of RFC authors, it is common to want to reference another part of
their document, such as "see Section 3.2 of this document." Readers,
on the other hand, want to reference parts of documents that they
didn't write, such as "see Section 3.2 of RFC 6949." The XML
vocabulary in this document attempts to support both sets of people.</p>
<p> Authors can leave anchors in a document that can later be used for
references with the "anchor" attribute. Anchors can be included in
the numerous elements. The author can then refer to that anchor in
the "target" attribute of the <xref> element.</p>
<p> Readers can refer to any element that has an "anchor" attribute by
that attribute. Note, however, that most of the time, elements won't
have anchors. In the common case, the reader wants to refer to an
element that does not have an "anchor" attribute, but that element
has a "pn" attribute.</p>
<p> Processing tools add the "pn" attribute to many elements during
processing. This attribute and its value are automatically generated
by the tool if the attribute is not there; if the attribute is
already there, the tool may replace the value.</p>
<p>B.2.1. Overlapping Values</p>
<p> In the HTML representation of this XML vocabulary, both anchors and
"pn" attributes will be used in the "id" attributes of elements.
Thus, there can be no overlap between the names entered in "anchor"
attributes, in "slugifiedName" attributes, and those that are
generated for the "pn" attributes. Also, there are some values for
the "anchor" values that are reserved for sections, and those
sections can only have those anchor values.</p>
<p>Hoffman Informational [Page 100]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> The following rules prevent this overlap:</p>
<p> o "pn" for regular sections always has the format "s-nnn", where
"nnn" is the section number, or the appendix identifier (which
starts with a letter). For example, this would be "s-2.1.3" for
Section 2.1.3 and "s-a" for Appendix A. For the <abstract>
element, it is always "s-abstract". For the <note> element, it is
always "s-note-nnn", where "nnn" is a sequential value. For
sections in the <boilerplate> element, it is always
"s-boilerplate-nnn", where "nnn" is a sequential value.</p>
<p> o "pn" for <references> elements has the format "s-nnn". It is
important to note that "nnn" is a number, not letters, even though
the <references> appear in the back. It is the number that is one
higher than the highest top-level section number in <middle>. If
there are two or more <references>, "nnn" will include a dot as if
the <references> are a subsection of a section that is numbered
one higher than the highest top-level section number in <middle>.</p>
<p> o "pn" for <figure> elements always has the format "f-nnn", where
"nnn" is the figure number. For example, this would be "f-5" for
Figure 5.</p>
<p> o "pn" for <iref> elements always has the format "i-ttt-nnn", where
"ttt" is the slugified item (plus a hyphen and the slugified
subitem if there is a subitem), and "nnn" is the instance of that
item/subitem pair. For example, this would be "i-foo-1" for
"<iref item='foo'>" and "i-foo-bar-1" for "<iref item='foo'
subitem='bar'>".</p>
<p> o "pn" for <table> elements always has the format "t-nnn", where
"nnn" is the table number. For example, this would be "t-5" for
Table 5.</p>
<p> o "pn" for all elements not listed above always has the format
"p-nnn-mmm", where "nnn" is the section number and "mmm" is the
relative position in the section. For example, this would be
"p-2.1.3-7" for the seventh part number in Section 2.1.3.</p>
<p>Hoffman Informational [Page 101]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> o "slugifiedName" always has the format "n-ttt", where "ttt" is the
text of the name after slugification. For example, this would be
"n-protocol-overview" for the name "Protocol Overview". The
actual conversions done in slugification will be specified at a
later time.</p>
<p> o Anchors must never overlap with any of the above. The easiest way
to assure that is to not pick an anchor name that starts with a
single letter followed by a hyphen. If an anchor does overlap
with one of the types of names above, the processing tool will
reject the document.</p>
<p>B.3. Attributes Controlled by the Prep Tool</p>
<p> Many elements in the v3 vocabulary have new attributes whose role is
to hold values generated by the prep tool. These attributes can
exist in documents that are input to the prep tool; however, any of
these attributes might be added, removed, or changed by the prep
tool. Thus, it is explicitly unsafe for a document author to include
these attributes and expect that their values will survive processing
by the prep tool.</p>
<p> The attributes that are controlled by the prep tool are:</p>
<p> o The "pn" attribute in any element -- The number for this item
within the section. The numbering is shared with other elements
of a section. The "pn" attribute is added to many block-level
elements inside sections.</p>
<p> o <artwork> originalSrc -- This attribute is filled with the
original value of the "src" attribute if that attribute is removed
by the prep tool.</p>
<p> o <figure> originalSrc -- This attribute is filled with the original
value of the "src" attribute if that attribute is removed by the
prep tool.</p>
<p> o <name> "slugifiedName" attribute -- This attribute is filled with
a "slugified" version of the text in the element. This attribute
can be used in the output formats for elements that have both
names and numbers.</p>
<p> o <relref> "derivedLink" attribute -- This attribute is filled with
the link that is derived from combining the URI from the reference
and the relative part that is either a copy of the "relative"
attribute or a section number derived from the "section"
attribute.</p>
<p>Hoffman Informational [Page 102]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> o <rfc> "expiresDate" attribute -- This attribute is filled with the
date that an Internet-Draft expires. The date is in the format
yyyy-mm-dd.</p>
<p> o <rfc> "mode" attribute -- This attribute is filled with a string
that indicates what mode the prep tool was in when it processed
the XML, such as whether it was processing a file to become an
Internet-Draft or an RFC.</p>
<p> o <rfc> "scripts" attribute -- This attribute is filled with a list
of scripts needed to render this document. The list is comma-
separated, with no spaces allowed. The order is unimportant. The
names come from [UAX24]. For example, if the document has Chinese
characters in it, the value might be "Common,Latin,Han".</p>
<p> o <sourcecode> "originalSrc" attribute -- This attribute is filled
with the original value of the "src" attribute if that attribute
is removed by the prep tool.</p>
<p> o <xref> "derivedContent" attribute -- This attribute is filled in
if there is no content in the <xref> element. The value for this
attribute is based on the value in the "displayFormat" attribute.
Examples of how this value is filled can be found in
Section 2.66.1.</p>
<p> In addition, note that the contents of the <boilerplate> element are
controlled by the prep tool.</p>
<p>Hoffman Informational [Page 103]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>Appendix C. RELAX NG Schema</p>
<p> The following is the RELAX NG schema for the v3 format.</p>
<p> namespace a = "<a href="http://relaxng.org/ns/compatibility/annotations/1.0" title="undefined" rel="noopener noreferrer">http://relaxng.org/ns/compatibility/annotations/1.0</a>"</p>
<h1 id="xml2rfc-version-3-grammar"><a class="anchor" aria-hidden="true" tabindex="-1" href="#xml2rfc-version-3-grammar"><svg class="octicon octicon-link" viewBox="0 0 16 16" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>xml2rfc Version 3 grammar</h1><p> rfc =
element rfc {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute number { text }?,
[ a:defaultValue = "" ] attribute obsoletes { text }?,
[ a:defaultValue = "" ] attribute updates { text }?,
attribute category { text }?,
attribute mode { text }?,
[ a:defaultValue = "false" ]
attribute consensus { "no" | "yes" | "false" | "true" }?,
attribute seriesNo { text }?,
attribute ipr { text }?,
attribute iprExtract { xsd:IDREF }?,
[ a:defaultValue = "IETF" ]
attribute submissionType {
"IETF" | "IAB" | "IRTF" | "independent"
}?,
attribute docName { text }?,
[ a:defaultValue = "false" ]
attribute sortRefs { "true" | "false" }?,
[ a:defaultValue = "true" ]
attribute symRefs { "true" | "false" }?,
[ a:defaultValue = "true" ]
attribute tocInclude { "true" | "false" }?,
[ a:defaultValue = "3" ] attribute tocDepth { text }?,
attribute prepTime { text }?,
[ a:defaultValue = "true" ]
attribute indexInclude { "true" | "false" }?,
attribute version { text }?,
[ a:defaultValue = "Common,Latin" ] attribute scripts { text }?,
attribute expiresDate { text }?,
link*,
front,
middle,
back?
}</p>
<p>Hoffman Informational [Page 104]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> link =
element link {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute href { text },
attribute rel { text }?
}</p>
<p> front =
element front {
attribute xml:base { text }?,
attribute xml:lang { text }?,
title,
seriesInfo*,
author+,
date?,
area*,
workgroup*,
keyword*,
abstract?,
note*,
boilerplate?
}</p>
<p> title =
element title {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute abbrev { text }?,
attribute ascii { text }?,
text
}</p>
<p> author =
element author {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute initials { text }?,
attribute asciiInitials { text }?,
attribute surname { text }?,
attribute asciiSurname { text }?,
attribute fullname { text }?,
attribute role { "editor" }?,
attribute asciiFullname { text }?,
organization?,
address?
}</p>
<p>Hoffman Informational [Page 105]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> organization =
element organization {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute abbrev { text }?,
attribute ascii { text }?,
text
}</p>
<p> address =
element address {
attribute xml:base { text }?,
attribute xml:lang { text }?,
postal?,
phone?,
facsimile?,
email?,
uri?
}</p>
<p> postal =
element postal {
attribute xml:base { text }?,
attribute xml:lang { text }?,
((city | code | country | region | street)* | postalLine+)
}</p>
<p> street =
element street {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute ascii { text }?,
text
}</p>
<p> city =
element city {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute ascii { text }?,
text
}</p>
<p>Hoffman Informational [Page 106]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> region =
element region {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute ascii { text }?,
text
}</p>
<p> code =
element code {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute ascii { text }?,
text
}</p>
<p> country =
element country {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute ascii { text }?,
text
}</p>
<p> postalLine =
element postalLine {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute ascii { text }?,
text
}</p>
<p> phone =
element phone {
attribute xml:base { text }?,
attribute xml:lang { text }?,
text
}</p>
<p> facsimile =
element facsimile {
attribute xml:base { text }?,
attribute xml:lang { text }?,
text
}</p>
<p>Hoffman Informational [Page 107]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> email =
element email {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute ascii { text }?,
text
}</p>
<p> uri =
element uri {
attribute xml:base { text }?,
attribute xml:lang { text }?,
text
}</p>
<p> date =
element date {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute day { text }?,
attribute month { text }?,
attribute year { text }?,
empty
}</p>
<p> area =
element area {
attribute xml:base { text }?,
attribute xml:lang { text }?,
text
}</p>
<p> workgroup =
element workgroup {
attribute xml:base { text }?,
attribute xml:lang { text }?,
text
}</p>
<p> keyword =
element keyword {
attribute xml:base { text }?,
attribute xml:lang { text }?,
text
}</p>
<p>Hoffman Informational [Page 108]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> abstract =
element abstract {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute pn { text }?,
(dl | ol | t | ul)+
}</p>
<p> note =
element note {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute title { text }?,
attribute pn { text }?,
[ a:defaultValue = "false" ]
attribute removeInRFC { "true" | "false" }?,
name?,
(dl | ol | t | ul)+
}</p>
<p> boilerplate =
element boilerplate {
attribute xml:base { text }?,
attribute xml:lang { text }?,
section+
}</p>
<p> middle =
element middle {
attribute xml:base { text }?,
attribute xml:lang { text }?,
section+
}</p>
<p>Hoffman Informational [Page 109]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> section =
element section {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute pn { text }?,
attribute title { text }?,
[ a:defaultValue = "true" ]
attribute numbered { "true" | "false" }?,
[ a:defaultValue = "default" ]
attribute toc { "include" | "exclude" | "default" }?,
[ a:defaultValue = "false" ]
attribute removeInRFC { "true" | "false" }?,
name?,
(artwork
| aside
| blockquote
| dl
| figure
| iref
| ol
| sourcecode
| t
| table
| texttable
| ul)<em>,
section</em>
}</p>
<p> name =
element name {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute slugifiedName { text }?,
(text | cref | eref | relref | tt | xref)*
}</p>
<p>Hoffman Informational [Page 110]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> t =
element t {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute pn { text }?,
attribute hangText { text }?,
[ a:defaultValue = "false" ]
attribute keepWithNext { "false" | "true" }?,
[ a:defaultValue = "false" ]
attribute keepWithPrevious { "false" | "true" }?,
(text
| bcp14
| cref
| em
| eref
| iref
| \list
| relref
| spanx
| strong
| sub
| sup
| tt
| vspace
| xref)*
}</p>
<p> aside =
element aside {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute pn { text }?,
(artwork | dl | figure | iref | \list | ol | t | table | ul)*
}</p>
<p>Hoffman Informational [Page 111]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> blockquote =
element blockquote {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute pn { text }?,
attribute cite { text }?,
attribute quotedFrom { text }?,
((artwork | dl | figure | ol | sourcecode | t | ul)+
| (text
| bcp14
| cref
| em
| eref
| iref
| relref
| strong
| sub
| sup
| tt
| xref)+)
}</p>
<p> \list =
element list {
attribute xml:base { text }?,
attribute xml:lang { text }?,
[ a:defaultValue = "empty" ] attribute style { text }?,
attribute hangIndent { text }?,
attribute counter { text }?,
attribute pn { text }?,
t+
}</p>
<p> ol =
element ol {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
[ a:defaultValue = "1" ] attribute type { text }?,
[ a:defaultValue = "1" ] attribute start { text }?,
attribute group { text }?,
[ a:defaultValue = "normal" ]
attribute spacing { "normal" | "compact" }?,
attribute pn { text }?,
li+
}</p>
<p>Hoffman Informational [Page 112]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> ul =
element ul {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
[ a:defaultValue = "normal" ]
attribute spacing { "normal" | "compact" }?,
([ a:defaultValue = "false" ]
attribute empty { "false" | "true" },
attribute pn { text }?)?,
li+
}</p>
<p> li =
element li {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute pn { text }?,
((artwork | dl | figure | ol | sourcecode | t | ul)+
| (text
| bcp14
| cref
| em
| eref
| iref
| relref
| strong
| sub
| sup
| tt
| xref)+)
}</p>
<p> dl =
element dl {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
[ a:defaultValue = "normal" ]
attribute spacing { "normal" | "compact" }?,
[ a:defaultValue = "true" ]
attribute hanging { "false" | "true" }?,
attribute pn { text }?,
(dt, dd)+
}</p>
<p>Hoffman Informational [Page 113]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> dt =
element dt {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute pn { text }?,
(text
| bcp14
| cref
| em
| eref
| iref
| relref
| strong
| sub
| sup
| tt
| xref)*
}</p>
<p> dd =
element dd {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute pn { text }?,
((artwork | dl | figure | ol | sourcecode | t | ul)+
| (text
| bcp14
| cref
| em
| eref
| iref
| relref
| strong
| sub
| sup
| tt
| xref)+)
}</p>
<p>Hoffman Informational [Page 114]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> xref =
element xref {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute target { xsd:IDREF },
[ a:defaultValue = "false" ]
attribute pageno { "true" | "false" }?,
[ a:defaultValue = "default" ]
attribute format { "default" | "title" | "counter" | "none" }?,
attribute derivedContent { text }?,
text
}</p>
<p> relref =
element relref {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute target { xsd:IDREF },
[ a:defaultValue = "of" ]
attribute displayFormat { "of" | "comma" | "parens" | "bare" }?,
attribute section { text },
attribute relative { text }?,
attribute derivedLink { text }?,
text
}</p>
<p> eref =
element eref {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute target { text },
text
}</p>
<p> iref =
element iref {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute item { text },
[ a:defaultValue = "" ] attribute subitem { text }?,
[ a:defaultValue = "false" ]
attribute primary { "true" | "false" }?,
attribute pn { text }?,
empty
}</p>
<p>Hoffman Informational [Page 115]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> cref =
element cref {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute source { text }?,
[ a:defaultValue = "true" ]
attribute display { "true" | "false" }?,
(text | em | eref | relref | strong | sub | sup | tt | xref)*
}</p>
<p> tt =
element tt {
attribute xml:base { text }?,
attribute xml:lang { text }?,
(text
| bcp14
| cref
| em
| eref
| iref
| relref
| strong
| sub
| sup
| xref)*
}</p>
<p> strong =
element strong {
attribute xml:base { text }?,
attribute xml:lang { text }?,
(text
| bcp14
| cref
| em
| eref
| iref
| relref
| sub
| sup
| tt
| xref)*
}</p>
<p>Hoffman Informational [Page 116]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> em =
element em {
attribute xml:base { text }?,
attribute xml:lang { text }?,
(text
| bcp14
| cref
| eref
| iref
| relref
| strong
| sub
| sup
| tt
| xref)*
}</p>
<p> sub =
element sub {
attribute xml:base { text }?,
attribute xml:lang { text }?,
(text
| bcp14
| cref
| em
| eref
| iref
| relref
| strong
| tt
| xref)*
}</p>
<p> sup =
element sup {
attribute xml:base { text }?,
attribute xml:lang { text }?,
(text
| bcp14
| cref
| em
| eref
| iref
| relref
| strong
| tt
| xref)*
}</p>
<p>Hoffman Informational [Page 117]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> spanx =
element spanx {
attribute xml:base { text }?,
attribute xml:lang { text }?,
[ a:defaultValue = "preserve" ]
attribute xml:space { "default" | "preserve" }?,
[ a:defaultValue = "emph" ] attribute style { text }?,
text
}</p>
<p> vspace =
element vspace {
attribute xml:base { text }?,
attribute xml:lang { text }?,
[ a:defaultValue = "0" ] attribute blankLines { text }?,
empty
}</p>
<p> figure =
element figure {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute pn { text }?,
[ a:defaultValue = "" ] attribute title { text }?,
[ a:defaultValue = "false" ]
attribute suppress-title { "true" | "false" }?,
attribute src { text }?,
attribute originalSrc { text }?,
[ a:defaultValue = "left" ]
attribute align { "left" | "center" | "right" }?,
[ a:defaultValue = "" ] attribute alt { text }?,
[ a:defaultValue = "" ] attribute width { text }?,
[ a:defaultValue = "" ] attribute height { text }?,
name?,
iref*,
preamble?,
(artwork | sourcecode)+,
postamble?
}</p>
<p>Hoffman Informational [Page 118]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> table =
element table {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute pn { text }?,
name?,
iref*,
thead?,
tbody+,
tfoot?
}</p>
<p> preamble =
element preamble {
attribute xml:base { text }?,
attribute xml:lang { text }?,
(text
| bcp14
| cref
| em
| eref
| iref
| relref
| spanx
| strong
| sub
| sup
| tt
| xref)*
}</p>
<p>Hoffman Informational [Page 119]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> artwork =
element artwork {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute pn { text }?,
attribute xml:space { text }?,
[ a:defaultValue = "" ] attribute name { text }?,
[ a:defaultValue = "" ] attribute type { text }?,
attribute src { text }?,
[ a:defaultValue = "left" ]
attribute align { "left" | "center" | "right" }?,
[ a:defaultValue = "" ] attribute alt { text }?,
[ a:defaultValue = "" ] attribute width { text }?,
[ a:defaultValue = "" ] attribute height { text }?,
attribute originalSrc { text }?,
(text* | svg)
}</p>
<h1 id="httpswwwrfc-editororgmaterialsformatsvg-12-rfcrnc"><a class="anchor" aria-hidden="true" tabindex="-1" href="#httpswwwrfc-editororgmaterialsformatsvg-12-rfcrnc"><svg class="octicon octicon-link" viewBox="0 0 16 16" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><a href="https://www.rfc-editor.org/materials/format/SVG-1.2-RFC.rnc" title="undefined" rel="noopener noreferrer">https://www.rfc-editor.org/materials/format/SVG-1.2-RFC.rnc</a></h1><p> sourcecode =
element sourcecode {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute pn { text }?,
[ a:defaultValue = "" ] attribute name { text }?,
[ a:defaultValue = "" ] attribute type { text }?,
attribute src { text }?,
attribute originalSrc { text }?,
text
}</p>
<p> thead =
element thead {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
tr+
}</p>
<p> tbody =
element tbody {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
tr+
}</p>
<p>Hoffman Informational [Page 120]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> tfoot =
element tfoot {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
tr+
}</p>
<p> tr =
element tr {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
(td | th)+
}</p>
<p> td =
element td {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
[ a:defaultValue = "0" ] attribute colspan { text }?,
[ a:defaultValue = "0" ] attribute rowspan { text }?,
[ a:defaultValue = "left" ]
attribute align { "left" | "center" | "right" }?,
((artwork | dl | figure | ol | sourcecode | t | ul)+
| (text
| bcp14
| br
| cref
| em
| eref
| iref
| relref
| strong
| sub
| sup
| tt
| xref)*)
}</p>
<p>Hoffman Informational [Page 121]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> th =
element th {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
[ a:defaultValue = "0" ] attribute colspan { text }?,
[ a:defaultValue = "0" ] attribute rowspan { text }?,
[ a:defaultValue = "left" ]
attribute align { "left" | "center" | "right" }?,
((artwork | dl | figure | ol | sourcecode | t | ul)+
| (text
| bcp14
| br
| cref
| em
| eref
| iref
| relref
| strong
| sub
| sup
| tt
| xref)*)
}</p>
<p> postamble =
element postamble {
attribute xml:base { text }?,
attribute xml:lang { text }?,
(text | cref | eref | iref | spanx | xref)*
}</p>
<p>Hoffman Informational [Page 122]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> texttable =
element texttable {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
[ a:defaultValue = "" ] attribute title { text }?,
[ a:defaultValue = "false" ]
attribute suppress-title { "true" | "false" }?,
[ a:defaultValue = "center" ]
attribute align { "left" | "center" | "right" }?,
[ a:defaultValue = "full" ]
attribute style { "all" | "none" | "headers" | "full" }?,
name?,
preamble?,
ttcol+,
c*,
postamble?
}</p>
<p> ttcol =
element ttcol {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute width { text }?,
[ a:defaultValue = "left" ]
attribute align { "left" | "center" | "right" }?,
(cref | eref | iref | xref | text)*
}</p>
<p> c =
element c {
attribute xml:base { text }?,
attribute xml:lang { text }?,
(text | cref | eref | iref | spanx | xref)*
}</p>
<p> bcp14 =
element bcp14 {
attribute xml:base { text }?,
attribute xml:lang { text }?,
text
}</p>
<p>Hoffman Informational [Page 123]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> br =
element br {
attribute xml:base { text }?,
attribute xml:lang { text }?,
empty
}</p>
<p> back =
element back {
attribute xml:base { text }?,
attribute xml:lang { text }?,
displayreference*,
references*,
section*
}</p>
<p> displayreference =
element displayreference {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute target { xsd:IDREF },
attribute to { text }
}</p>
<p> references =
element references {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute pn { text }?,
attribute anchor { xsd:ID }?,
attribute title { text }?,
name?,
(reference | referencegroup)*
}</p>
<p> reference =
element reference {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID },
attribute target { text }?,
[ a:defaultValue = "true" ]
attribute quoteTitle { "true" | "false" }?,
front,
(annotation | format | refcontent | seriesInfo)*
}</p>
<p>Hoffman Informational [Page 124]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> referencegroup =
element referencegroup {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute anchor { xsd:ID },
reference+
}</p>
<p> seriesInfo =
element seriesInfo {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute name { text },
attribute value { text },
attribute asciiName { text }?,
attribute asciiValue { text }?,
attribute status { text }?,
[ a:defaultValue = "IETF" ]
attribute stream { "IETF" | "IAB" | "IRTF" | "independent" }?,
empty
}</p>
<p> format =
element format {
attribute xml:base { text }?,
attribute xml:lang { text }?,
attribute target { text }?,
attribute type { text },
attribute octets { text }?,
empty
}</p>
<p>Hoffman Informational [Page 125]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p> annotation =
element annotation {
attribute xml:base { text }?,
attribute xml:lang { text }?,
(text
| bcp14
| cref
| em
| eref
| iref
| relref
| spanx
| strong
| sub
| sup
| tt
| xref)*
}</p>
<p> refcontent =
element refcontent {
attribute xml:base { text }?,
attribute xml:lang { text }?,
(text | bcp14 | em | strong | sub | sup | tt)*
}
start |= rfc</p>
<p>Hoffman Informational [Page 126]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>Appendix D. Schema Differences from v2</p>
<p> The following is a non-normative comparison of the v3 format to the
v2 format. A "-" indicates lines removed from the v2 schema, and a
"+" indicates lines added to the v3 schema.</p>
<pre><code class="notranslate"> namespace a =
"http://relaxng.org/ns/compatibility/annotations/1.0"</code></pre><ul>
<li><h1 id="xml2rfc-version-3-grammar-1"><a class="anchor" aria-hidden="true" tabindex="-1" href="#xml2rfc-version-3-grammar-1"><svg class="octicon octicon-link" viewBox="0 0 16 16" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>xml2rfc Version 3 grammar</h1>rfc =
element rfc {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute number { text }?,
[ a:defaultValue = "" ] attribute obsoletes { text }?,
[ a:defaultValue = "" ] attribute updates { text }?,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute category { "std" | "bcp" | "info" | "exp" |</code></pre></li>
<li>"historic" }?,</li>
<li><pre><code class="notranslate">attribute consensus { "no" | "yes" }?,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute category { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute mode { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "false" ]</code></pre></li>
<li><pre><code class="notranslate">attribute consensus { "no" | "yes" | "false" | "true" }?,
attribute seriesNo { text }?,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute ipr {</code></pre></li>
<li><pre><code class="notranslate"> "full2026"</code></pre></li>
<li><pre><code class="notranslate"> | "noDerivativeWorks2026"</code></pre></li>
<li><pre><code class="notranslate"> | "none"</code></pre></li>
<li><pre><code class="notranslate"> | "full3667"</code></pre></li>
<li><pre><code class="notranslate"> | "noModification3667"</code></pre></li>
<li><pre><code class="notranslate"> | "noDerivatives3667"</code></pre></li>
<li><pre><code class="notranslate"> | "full3978"</code></pre></li>
<li><pre><code class="notranslate"> | "noModification3978"</code></pre></li>
<li><pre><code class="notranslate"> | "noDerivatives3978"</code></pre></li>
<li><pre><code class="notranslate"> | "trust200811"</code></pre></li>
<li><pre><code class="notranslate"> | "noModificationTrust200811"</code></pre></li>
<li><pre><code class="notranslate"> | "noDerivativesTrust200811"</code></pre></li>
<li><pre><code class="notranslate"> | "trust200902"</code></pre></li>
<li><pre><code class="notranslate"> | "noModificationTrust200902"</code></pre></li>
<li><pre><code class="notranslate"> | "noDerivativesTrust200902"</code></pre></li>
<li><pre><code class="notranslate"> | "pre5378Trust200902"</code></pre></li>
<li><pre><code class="notranslate">}?,</code></pre></li>
</ul>
<p>Hoffman Informational [Page 127]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li><pre><code class="notranslate">attribute ipr { text }?,
attribute iprExtract { xsd:IDREF }?,
[ a:defaultValue = "IETF" ]
attribute submissionType {
"IETF" | "IAB" | "IRTF" | "independent"
}?,
attribute docName { text }?,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">[ a:defaultValue = "en" ] attribute xml:lang { text }?,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">[ a:defaultValue = "false" ]</code></pre></li>
<li><pre><code class="notranslate">attribute sortRefs { "true" | "false" }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "true" ]</code></pre></li>
<li><pre><code class="notranslate">attribute symRefs { "true" | "false" }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "true" ]</code></pre></li>
<li><pre><code class="notranslate">attribute tocInclude { "true" | "false" }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "3" ] attribute tocDepth { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute prepTime { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "true" ]</code></pre></li>
<li><pre><code class="notranslate">attribute indexInclude { "true" | "false" }?,</code></pre></li>
<li><pre><code class="notranslate">attribute version { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "Common,Latin" ] attribute scripts { text</code></pre></li>
<li>}?,</li>
<li><pre><code class="notranslate">attribute expiresDate { text }?,</code></pre></li>
<li><pre><code class="notranslate">link*,
front,
middle,
back?</code></pre> }</li>
</ul>
<p>Hoffman Informational [Page 128]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>link =</li>
<li>element link {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute href { text },</code></pre></li>
<li><pre><code class="notranslate">attribute rel { text }?</code></pre></li>
<li>}
front =
element front {</li>
</ul>
<ul>
<li><pre><code class="notranslate">title, author+, date, area*, workgroup*, keyword*, abstract?,</code></pre></li>
<li>note*</li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">title,</code></pre></li>
<li><pre><code class="notranslate">seriesInfo*,</code></pre></li>
<li><pre><code class="notranslate">author+,</code></pre></li>
<li><pre><code class="notranslate">date?,</code></pre></li>
<li><pre><code class="notranslate">area*,</code></pre></li>
<li><pre><code class="notranslate">workgroup*,</code></pre></li>
<li><pre><code class="notranslate">keyword*,</code></pre></li>
<li><pre><code class="notranslate">abstract?,</code></pre></li>
<li><pre><code class="notranslate">note*,</code></pre></li>
<li><pre><code class="notranslate">boilerplate?</code></pre> }
title =
element title {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute abbrev { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute ascii { text }?,
text</code></pre> }
author =
element author {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute initials { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute asciiInitials { text }?,
attribute surname { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute asciiSurname { text }?,
attribute fullname { text }?,
attribute role { "editor" }?,</code></pre></li>
<li><pre><code class="notranslate">attribute asciiFullname { text }?,
organization?,
address?</code></pre> }</li>
</ul>
<p>Hoffman Informational [Page 129]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<pre><code class="notranslate"> organization =
element organization {</code></pre><ul>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute abbrev { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute ascii { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
<li>address =</li>
<li>element address {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">postal?,</code></pre></li>
<li><pre><code class="notranslate">phone?,</code></pre></li>
<li><pre><code class="notranslate">facsimile?,</code></pre></li>
<li><pre><code class="notranslate">email?,</code></pre></li>
<li><pre><code class="notranslate">uri?</code></pre></li>
<li>}</li>
<li>postal =</li>
<li>element postal {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">((city | code | country | region | street)* | postalLine+)</code></pre></li>
<li>}</li>
<li>street =</li>
<li>element street {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute ascii { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
<li>city =</li>
<li>element city {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute ascii { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
<li>region =</li>
<li>element region {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute ascii { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
</ul>
<p>Hoffman Informational [Page 130]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>code =</li>
<li>element code {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute ascii { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
<li>country =</li>
<li>element country {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute ascii { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
<li>postalLine =</li>
<li>element postalLine {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute ascii { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
<li>phone =</li>
<li>element phone {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
<li>facsimile =</li>
<li>element facsimile {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
<li>email =</li>
<li>element email {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute ascii { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
</ul>
<p>Hoffman Informational [Page 131]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>uri =</li>
<li>element uri {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
text</code></pre> }</li>
</ul>
<ul>
<li>address = element address { postal?, phone?, facsimile?, email?,</li>
<li>uri? }</li>
<li>postal = element postal { street+, (city | region | code |</li>
<li>country)* }</li>
<li>street = element street { text }</li>
<li>city = element city { text }</li>
<li>region = element region { text }</li>
<li>code = element code { text }</li>
<li>country = element country { text }</li>
<li>phone = element phone { text }</li>
<li>facsimile = element facsimile { text }</li>
<li>email = element email { text }</li>
<li>uri = element uri { text }
date =
element date {</li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute day { text }?,
attribute month { text }?,
attribute year { text }?,
empty</code></pre> }</li>
</ul>
<ul>
<li>area = element area { text }</li>
<li>workgroup = element workgroup { text }</li>
<li>keyword = element keyword { text }</li>
<li>abstract = element abstract { t+ }</li>
</ul>
<ul>
<li>area =</li>
<li>element area {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
<li>workgroup =</li>
<li>element workgroup {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
</ul>
<p>Hoffman Informational [Page 132]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>keyword =</li>
<li>element keyword {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
<li>abstract =</li>
<li>element abstract {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">(dl | ol | t | ul)+</code></pre></li>
<li>}
note =
element note {</li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute title { text },</code></pre></li>
<li><pre><code class="notranslate">t+</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute title { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "false" ]</code></pre></li>
<li><pre><code class="notranslate">attribute removeInRFC { "true" | "false" }?,</code></pre></li>
<li><pre><code class="notranslate">name?,</code></pre></li>
<li><pre><code class="notranslate">(dl | ol | t | ul)+</code></pre></li>
<li>}</li>
<li>boilerplate =</li>
<li>element boilerplate {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">section+</code></pre></li>
<li>}</li>
<li>middle =</li>
<li>element middle {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">section+</code></pre> }</li>
</ul>
<p>Hoffman Informational [Page 133]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>middle = element middle { section+ }
section =
element section {</li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute title { text },</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute title { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "true" ]</code></pre></li>
<li><pre><code class="notranslate">attribute numbered { "true" | "false" }?,
[ a:defaultValue = "default" ]
attribute toc { "include" | "exclude" | "default" }?,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">(t | figure | texttable | iref)*,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">[ a:defaultValue = "false" ]</code></pre></li>
<li><pre><code class="notranslate">attribute removeInRFC { "true" | "false" }?,</code></pre></li>
<li><pre><code class="notranslate">name?,</code></pre></li>
<li><pre><code class="notranslate">(artwork</code></pre></li>
<li><pre><code class="notranslate"> | aside</code></pre></li>
<li><pre><code class="notranslate"> | blockquote</code></pre></li>
<li><pre><code class="notranslate"> | dl</code></pre></li>
<li><pre><code class="notranslate"> | figure</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | ol</code></pre></li>
<li><pre><code class="notranslate"> | sourcecode</code></pre></li>
<li><pre><code class="notranslate"> | t</code></pre></li>
<li><pre><code class="notranslate"> | table</code></pre></li>
<li><pre><code class="notranslate"> | texttable</code></pre></li>
<li><pre><code class="notranslate"> | ul)*,
section*</code></pre> }</li>
</ul>
<p>Hoffman Informational [Page 134]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>name =</li>
<li>element name {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute slugifiedName { text }?,</code></pre></li>
<li><pre><code class="notranslate">(text | cref | eref | relref | tt | xref)*</code></pre></li>
<li>}
t =
element t {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,
attribute hangText { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "false" ]</code></pre></li>
<li><pre><code class="notranslate">attribute keepWithNext { "false" | "true" }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "false" ]</code></pre></li>
<li><pre><code class="notranslate">attribute keepWithPrevious { "false" | "true" }?,
(text</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate"> | \list</code></pre></li>
<li><pre><code class="notranslate"> | figure</code></pre></li>
<li><pre><code class="notranslate"> | xref</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | em
| eref
| iref</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate"> | cref</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate"> | \list</code></pre></li>
<li><pre><code class="notranslate"> | relref
| spanx</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate"> | vspace)*</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate"> | strong</code></pre></li>
<li><pre><code class="notranslate"> | sub</code></pre></li>
<li><pre><code class="notranslate"> | sup</code></pre></li>
<li><pre><code class="notranslate"> | tt</code></pre></li>
<li><pre><code class="notranslate"> | vspace</code></pre></li>
<li><pre><code class="notranslate"> | xref)*</code></pre></li>
<li>}</li>
<li>aside =</li>
<li>element aside {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">(artwork | dl | figure | iref | \list | ol | t | table | ul)*</code></pre></li>
<li>}</li>
</ul>
<p>Hoffman Informational [Page 135]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>blockquote =</li>
<li>element blockquote {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute cite { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute quotedFrom { text }?,</code></pre></li>
<li><pre><code class="notranslate">((artwork | dl | figure | ol | sourcecode | t | ul)+</code></pre></li>
<li><pre><code class="notranslate"> | (text</code></pre></li>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | em</code></pre></li>
<li><pre><code class="notranslate"> | eref</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | relref</code></pre></li>
<li><pre><code class="notranslate"> | strong</code></pre></li>
<li><pre><code class="notranslate"> | sub</code></pre></li>
<li><pre><code class="notranslate"> | sup</code></pre></li>
<li><pre><code class="notranslate"> | tt</code></pre></li>
<li><pre><code class="notranslate"> | xref)+)</code></pre> }
\list =
element list {</li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute style { text }?,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "empty" ] attribute style { text }?,
attribute hangIndent { text }?,
attribute counter { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,
t+</code></pre> }</li>
<li>ol =</li>
<li>element ol {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "1" ] attribute type { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "1" ] attribute start { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute group { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "normal" ]</code></pre></li>
<li><pre><code class="notranslate">attribute spacing { "normal" | "compact" }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">li+</code></pre></li>
<li>}</li>
</ul>
<p>Hoffman Informational [Page 136]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>ul =</li>
<li>element ul {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "normal" ]</code></pre></li>
<li><pre><code class="notranslate">attribute spacing { "normal" | "compact" }?,</code></pre></li>
<li><pre><code class="notranslate">([ a:defaultValue = "false" ]</code></pre></li>
<li><pre><code class="notranslate"> attribute empty { "false" | "true" },</code></pre></li>
<li><pre><code class="notranslate"> attribute pn { text }?)?,</code></pre></li>
<li><pre><code class="notranslate">li+</code></pre></li>
<li>}</li>
<li>li =</li>
<li>element li {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">((artwork | dl | figure | ol | sourcecode | t | ul)+</code></pre></li>
<li><pre><code class="notranslate"> | (text</code></pre></li>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | em</code></pre></li>
<li><pre><code class="notranslate"> | eref</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | relref</code></pre></li>
<li><pre><code class="notranslate"> | strong</code></pre></li>
<li><pre><code class="notranslate"> | sub</code></pre></li>
<li><pre><code class="notranslate"> | sup</code></pre></li>
<li><pre><code class="notranslate"> | tt</code></pre></li>
<li><pre><code class="notranslate"> | xref)+)</code></pre></li>
<li>}</li>
<li>dl =</li>
<li>element dl {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "normal" ]</code></pre></li>
<li><pre><code class="notranslate">attribute spacing { "normal" | "compact" }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "true" ]</code></pre></li>
<li><pre><code class="notranslate">attribute hanging { "false" | "true" }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">(dt, dd)+</code></pre></li>
<li>}</li>
</ul>
<p>Hoffman Informational [Page 137]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>dt =</li>
<li>element dt {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">(text</code></pre></li>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | em</code></pre></li>
<li><pre><code class="notranslate"> | eref</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | relref</code></pre></li>
<li><pre><code class="notranslate"> | strong</code></pre></li>
<li><pre><code class="notranslate"> | sub</code></pre></li>
<li><pre><code class="notranslate"> | sup</code></pre></li>
<li><pre><code class="notranslate"> | tt</code></pre></li>
<li><pre><code class="notranslate"> | xref)*</code></pre></li>
<li>}</li>
<li>dd =</li>
<li>element dd {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">((artwork | dl | figure | ol | sourcecode | t | ul)+</code></pre></li>
<li><pre><code class="notranslate"> | (text</code></pre></li>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | em</code></pre></li>
<li><pre><code class="notranslate"> | eref</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | relref</code></pre></li>
<li><pre><code class="notranslate"> | strong</code></pre></li>
<li><pre><code class="notranslate"> | sub</code></pre></li>
<li><pre><code class="notranslate"> | sup</code></pre></li>
<li><pre><code class="notranslate"> | tt</code></pre></li>
<li><pre><code class="notranslate"> | xref)+)</code></pre></li>
<li>}</li>
</ul>
<p>Hoffman Informational [Page 138]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<pre><code class="notranslate"> xref =
element xref {</code></pre><ul>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute target { xsd:IDREF },</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">[ a:defaultValue = "false" ] attribute pageno { "true" |</code></pre></li>
<li>"false" }?,</li>
</ul>
<ul>
<li><pre><code class="notranslate">[ a:defaultValue = "false" ]</code></pre></li>
<li><pre><code class="notranslate">attribute pageno { "true" | "false" }?,
[ a:defaultValue = "default" ]</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute format { "counter" | "title" | "none" | "default"</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute format { "default" | "title" | "counter" | "none"</code></pre></li>
<li>}?,</li>
<li><pre><code class="notranslate">attribute derivedContent { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
<li>relref =</li>
<li>element relref {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute target { xsd:IDREF },</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "of" ]</code></pre></li>
<li><pre><code class="notranslate">attribute displayFormat { "of" | "comma" | "parens" | "bare"</code></pre>}?,</li>
<li><pre><code class="notranslate">attribute section { text },</code></pre></li>
<li><pre><code class="notranslate">attribute relative { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute derivedLink { text }?,
text</code></pre> }
eref =
element eref {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute target { text },
text</code></pre> }
iref =
element iref {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute item { text },
[ a:defaultValue = "" ] attribute subitem { text }?,
[ a:defaultValue = "false" ]
attribute primary { "true" | "false" }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,
empty</code></pre> }</li>
</ul>
<p>Hoffman Informational [Page 139]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<pre><code class="notranslate"> cref =
element cref {</code></pre><ul>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
attribute source { text }?,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">text</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">[ a:defaultValue = "true" ]</code></pre></li>
<li><pre><code class="notranslate">attribute display { "true" | "false" }?,</code></pre></li>
<li><pre><code class="notranslate">(text | em | eref | relref | strong | sub | sup | tt | xref)*</code></pre></li>
<li>}</li>
<li>tt =</li>
<li>element tt {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">(text</code></pre></li>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | em</code></pre></li>
<li><pre><code class="notranslate"> | eref</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | relref</code></pre></li>
<li><pre><code class="notranslate"> | strong</code></pre></li>
<li><pre><code class="notranslate"> | sub</code></pre></li>
<li><pre><code class="notranslate"> | sup</code></pre></li>
<li><pre><code class="notranslate"> | xref)*</code></pre></li>
<li>}</li>
<li>strong =</li>
<li>element strong {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">(text</code></pre></li>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | em</code></pre></li>
<li><pre><code class="notranslate"> | eref</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | relref</code></pre></li>
<li><pre><code class="notranslate"> | sub</code></pre></li>
<li><pre><code class="notranslate"> | sup</code></pre></li>
<li><pre><code class="notranslate"> | tt</code></pre></li>
<li><pre><code class="notranslate"> | xref)*</code></pre></li>
<li>}</li>
</ul>
<p>Hoffman Informational [Page 140]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>em =</li>
<li>element em {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">(text</code></pre></li>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | eref</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | relref</code></pre></li>
<li><pre><code class="notranslate"> | strong</code></pre></li>
<li><pre><code class="notranslate"> | sub</code></pre></li>
<li><pre><code class="notranslate"> | sup</code></pre></li>
<li><pre><code class="notranslate"> | tt</code></pre></li>
<li><pre><code class="notranslate"> | xref)*</code></pre></li>
<li>}</li>
<li>sub =</li>
<li>element sub {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">(text</code></pre></li>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | em</code></pre></li>
<li><pre><code class="notranslate"> | eref</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | relref</code></pre></li>
<li><pre><code class="notranslate"> | strong</code></pre></li>
<li><pre><code class="notranslate"> | tt</code></pre></li>
<li><pre><code class="notranslate"> | xref)*</code></pre></li>
<li>}</li>
<li>sup =</li>
<li>element sup {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">(text</code></pre></li>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | em</code></pre></li>
<li><pre><code class="notranslate"> | eref</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | relref</code></pre></li>
<li><pre><code class="notranslate"> | strong</code></pre></li>
<li><pre><code class="notranslate"> | tt</code></pre></li>
<li><pre><code class="notranslate"> | xref)*</code></pre> }</li>
</ul>
<p>Hoffman Informational [Page 141]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<pre><code class="notranslate"> spanx =
element spanx {</code></pre><ul>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
[ a:defaultValue = "preserve" ]
attribute xml:space { "default" | "preserve" }?,
[ a:defaultValue = "emph" ] attribute style { text }?,
text</code></pre> }
vspace =
element vspace {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
[ a:defaultValue = "0" ] attribute blankLines { text }?,
empty</code></pre> }
figure =
element figure {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,
[ a:defaultValue = "" ] attribute title { text }?,
[ a:defaultValue = "false" ]
attribute suppress-title { "true" | "false" }?,
attribute src { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute originalSrc { text }?,
[ a:defaultValue = "left" ]
attribute align { "left" | "center" | "right" }?,
[ a:defaultValue = "" ] attribute alt { text }?,
[ a:defaultValue = "" ] attribute width { text }?,
[ a:defaultValue = "" ] attribute height { text }?,</code></pre></li>
<li><pre><code class="notranslate">name?,
iref*,
preamble?,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">artwork,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">(artwork | sourcecode)+,
postamble?</code></pre> }</li>
</ul>
<p>Hoffman Informational [Page 142]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>table =</li>
<li>element table {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">name?,</code></pre></li>
<li><pre><code class="notranslate">iref*,</code></pre></li>
<li><pre><code class="notranslate">thead?,</code></pre></li>
<li><pre><code class="notranslate">tbody+,</code></pre></li>
<li><pre><code class="notranslate">tfoot?</code></pre></li>
<li>}
preamble =</li>
</ul>
<ul>
<li>element preamble { (text | xref | eref | iref | cref | spanx)* }</li>
</ul>
<ul>
<li>element preamble {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">(text</code></pre></li>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | em</code></pre></li>
<li><pre><code class="notranslate"> | eref</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | relref</code></pre></li>
<li><pre><code class="notranslate"> | spanx</code></pre></li>
<li><pre><code class="notranslate"> | strong</code></pre></li>
<li><pre><code class="notranslate"> | sub</code></pre></li>
<li><pre><code class="notranslate"> | sup</code></pre></li>
<li><pre><code class="notranslate"> | tt</code></pre></li>
<li><pre><code class="notranslate"> | xref)*</code></pre></li>
<li>}</li>
</ul>
<p>Hoffman Informational [Page 143]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<pre><code class="notranslate"> artwork =
element artwork {</code></pre><ul>
<li><pre><code class="notranslate">[ a:defaultValue = "preserve" ]</code></pre></li>
<li><pre><code class="notranslate">attribute xml:space { "default" | "preserve" }?,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:space { text }?,
[ a:defaultValue = "" ] attribute name { text }?,
[ a:defaultValue = "" ] attribute type { text }?,
attribute src { text }?,
[ a:defaultValue = "left" ]
attribute align { "left" | "center" | "right" }?,
[ a:defaultValue = "" ] attribute alt { text }?,
[ a:defaultValue = "" ] attribute width { text }?,
[ a:defaultValue = "" ] attribute height { text }?,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">text*</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute originalSrc { text }?,</code></pre></li>
<li><pre><code class="notranslate">(text* | svg)</code></pre></li>
<li>}</li>
<li><h1 id="httpswwwrfc-editororgmaterialsformatsvg-12-rfcrnc-1"><a class="anchor" aria-hidden="true" tabindex="-1" href="#httpswwwrfc-editororgmaterialsformatsvg-12-rfcrnc-1"><svg class="octicon octicon-link" viewBox="0 0 16 16" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><a href="https://www.rfc-editor.org/materials/format/SVG-1.2-RFC.rnc" title="undefined" rel="noopener noreferrer">https://www.rfc-editor.org/materials/format/SVG-1.2-RFC.rnc</a></h1></li>
<li>sourcecode =</li>
<li>element sourcecode {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "" ] attribute name { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "" ] attribute type { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute src { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute originalSrc { text }?,</code></pre></li>
<li><pre><code class="notranslate">text</code></pre></li>
<li>}</li>
<li>thead =</li>
<li>element thead {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">tr+</code></pre></li>
<li>}</li>
<li>tbody =</li>
<li>element tbody {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">tr+</code></pre></li>
<li>}</li>
</ul>
<p>Hoffman Informational [Page 144]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>tfoot =</li>
<li>element tfoot {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">tr+</code></pre></li>
<li>}</li>
<li>tr =</li>
<li>element tr {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">(td | th)+</code></pre></li>
<li>}</li>
<li>td =</li>
<li>element td {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "0" ] attribute colspan { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "0" ] attribute rowspan { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "left" ]</code></pre></li>
<li><pre><code class="notranslate">attribute align { "left" | "center" | "right" }?,</code></pre></li>
<li><pre><code class="notranslate">((artwork | dl | figure | ol | sourcecode | t | ul)+</code></pre></li>
<li><pre><code class="notranslate"> | (text</code></pre></li>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | br</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | em</code></pre></li>
<li><pre><code class="notranslate"> | eref</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | relref</code></pre></li>
<li><pre><code class="notranslate"> | strong</code></pre></li>
<li><pre><code class="notranslate"> | sub</code></pre></li>
<li><pre><code class="notranslate"> | sup</code></pre></li>
<li><pre><code class="notranslate"> | tt</code></pre></li>
<li><pre><code class="notranslate"> | xref)*)</code></pre></li>
<li>}</li>
</ul>
<p>Hoffman Informational [Page 145]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>th =</li>
<li>element th {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "0" ] attribute colspan { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "0" ] attribute rowspan { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "left" ]</code></pre></li>
<li><pre><code class="notranslate">attribute align { "left" | "center" | "right" }?,</code></pre></li>
<li><pre><code class="notranslate">((artwork | dl | figure | ol | sourcecode | t | ul)+</code></pre></li>
<li><pre><code class="notranslate"> | (text</code></pre></li>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | br</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | em</code></pre></li>
<li><pre><code class="notranslate"> | eref</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | relref</code></pre></li>
<li><pre><code class="notranslate"> | strong</code></pre></li>
<li><pre><code class="notranslate"> | sub</code></pre></li>
<li><pre><code class="notranslate"> | sup</code></pre></li>
<li><pre><code class="notranslate"> | tt</code></pre></li>
<li><pre><code class="notranslate"> | xref)*)</code></pre> }
postamble =</li>
</ul>
<ul>
<li>element postamble { (text | xref | eref | iref | cref | spanx)*</li>
</ul>
<ul>
<li>element postamble {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">(text | cref | eref | iref | spanx | xref)*</code></pre>}</li>
</ul>
<p>Hoffman Informational [Page 146]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<pre><code class="notranslate"> texttable =
element texttable {</code></pre><ul>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute anchor { xsd:ID }?,
[ a:defaultValue = "" ] attribute title { text }?,
[ a:defaultValue = "false" ]
attribute suppress-title { "true" | "false" }?,
[ a:defaultValue = "center" ]
attribute align { "left" | "center" | "right" }?,
[ a:defaultValue = "full" ]
attribute style { "all" | "none" | "headers" | "full" }?,</code></pre></li>
<li><pre><code class="notranslate">name?,
preamble?,
ttcol+,
c*,
postamble?</code></pre> }
ttcol =
element ttcol {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute width { text }?,
[ a:defaultValue = "left" ]
attribute align { "left" | "center" | "right" }?,</code></pre></li>
<li><pre><code class="notranslate">(cref | eref | iref | xref | text)*</code></pre></li>
<li>}</li>
<li>c =</li>
<li>element c {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">(text | cref | eref | iref | spanx | xref)*</code></pre></li>
<li>}</li>
<li>bcp14 =</li>
<li>element bcp14 {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
text</code></pre> }</li>
</ul>
<ul>
<li>c = element c { (text | xref | eref | iref | cref | spanx)* }</li>
<li>back = element back { references*, section* }</li>
</ul>
<ul>
<li>br =</li>
<li>element br {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">empty</code></pre></li>
<li>}</li>
</ul>
<p>Hoffman Informational [Page 147]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>back =</li>
<li>element back {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">displayreference*,</code></pre></li>
<li><pre><code class="notranslate">references*,</code></pre></li>
<li><pre><code class="notranslate">section*</code></pre></li>
<li>}</li>
<li>displayreference =</li>
<li>element displayreference {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute target { xsd:IDREF },</code></pre></li>
<li><pre><code class="notranslate">attribute to { text }</code></pre></li>
<li>}
references =
element references {</li>
</ul>
<ul>
<li><pre><code class="notranslate">[ a:defaultValue = "References" ] attribute title { text }?,</code></pre></li>
<li><pre><code class="notranslate">reference+</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute pn { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID }?,</code></pre></li>
<li><pre><code class="notranslate">attribute title { text }?,</code></pre></li>
<li><pre><code class="notranslate">name?,</code></pre></li>
<li><pre><code class="notranslate">(reference | referencegroup)*</code></pre> }
reference =
element reference {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute anchor { xsd:ID },
attribute target { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "true" ]</code></pre></li>
<li><pre><code class="notranslate">attribute quoteTitle { "true" | "false" }?,
front,</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">seriesInfo*,</code></pre></li>
<li><pre><code class="notranslate">format*,</code></pre></li>
<li><pre><code class="notranslate">annotation*</code></pre></li>
</ul>
<ul>
<li><pre><code class="notranslate">(annotation | format | refcontent | seriesInfo)*</code></pre></li>
<li>}</li>
</ul>
<p>Hoffman Informational [Page 148]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<ul>
<li>referencegroup =</li>
<li>element referencegroup {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute anchor { xsd:ID },</code></pre></li>
<li><pre><code class="notranslate">reference+</code></pre> }
seriesInfo =
element seriesInfo {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute name { text },
attribute value { text },</code></pre></li>
<li><pre><code class="notranslate">attribute asciiName { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute asciiValue { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute status { text }?,</code></pre></li>
<li><pre><code class="notranslate">[ a:defaultValue = "IETF" ]</code></pre></li>
<li><pre><code class="notranslate">attribute stream { "IETF" | "IAB" | "IRTF" | "independent" }?,
empty</code></pre> }
format =
element format {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,
attribute target { text }?,
attribute type { text },
attribute octets { text }?,
empty</code></pre> }</li>
</ul>
<p>Hoffman Informational [Page 149]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<pre><code class="notranslate"> annotation =</code></pre><ul>
<li>element annotation { (text | xref | eref | iref | cref |</li>
<li>spanx)* }</li>
<li>start = rfc</li>
</ul>
<ul>
<li>element annotation {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">(text</code></pre></li>
<li><pre><code class="notranslate"> | bcp14</code></pre></li>
<li><pre><code class="notranslate"> | cref</code></pre></li>
<li><pre><code class="notranslate"> | em</code></pre></li>
<li><pre><code class="notranslate"> | eref</code></pre></li>
<li><pre><code class="notranslate"> | iref</code></pre></li>
<li><pre><code class="notranslate"> | relref</code></pre></li>
<li><pre><code class="notranslate"> | spanx</code></pre></li>
<li><pre><code class="notranslate"> | strong</code></pre></li>
<li><pre><code class="notranslate"> | sub</code></pre></li>
<li><pre><code class="notranslate"> | sup</code></pre></li>
<li><pre><code class="notranslate"> | tt</code></pre></li>
<li><pre><code class="notranslate"> | xref)*</code></pre></li>
<li>}</li>
<li>refcontent =</li>
<li>element refcontent {</li>
<li><pre><code class="notranslate">attribute xml:base { text }?,</code></pre></li>
<li><pre><code class="notranslate">attribute xml:lang { text }?,</code></pre></li>
<li><pre><code class="notranslate">(text | bcp14 | em | strong | sub | sup | tt)*</code></pre></li>
<li>}</li>
<li>start |= rfc</li>
</ul>
<p>Hoffman Informational [Page 150]
RFC 7991 The "xml2rfc" Version 3 Vocabulary December 2016</p>
<p>IAB Members at the Time of Approval</p>
<p> The IAB members at the time this memo was approved were
(in alphabetical order):</p>
<pre><code class="notranslate"> Jari Arkko
Ralph Droms
Ted Hardie
Joe Hildebrand
Russ Housley
Lee Howard
Erik Nordmark
Robert Sparks
Andrew Sullivan
Dave Thaler
Martin Thomson
Brian Trammell
Suzanne Woolf</code></pre><p>Acknowledgements</p>
<p> Thanks to everybody who reviewed this document and provided feedback
and/or specification text. Thanks especially go to Julian Reschke
for editing [RFC7749] and those who provided feedback on that
document.</p>
<p> We also thank Marshall T. Rose for both the original design and the
reference implementation of the "xml2rfc" processor.</p>
<p>Author's Address</p>
<p> Paul Hoffman
ICANN</p>
<p> Email: <a href="mailto:paul.hoffman@icann.org" title="undefined" rel="noopener noreferrer">paul.hoffman@icann.org</a></p>
<p>Hoffman Informational [Page 151]</p>