<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc linkmailto="no" ?>
<?rfc rfcedstyle="yes"?>
<?rfc-ext allow-markup-in-artwork="yes" ?>
<?rfc-ext include-references-in-index="yes" ?>
<?rfc-ext html-pretty-print="prettyprint https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"?>

<!--

...some notes might still go in here... 

-->

<!DOCTYPE rfc [
<!ENTITY rfc2026 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2026.xml">
<!ENTITY rfc2397 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2397.xml">
<!ENTITY rfc2629 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY rfc3339 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3339.xml">
<!ENTITY rfc3470 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3470.xml">
<!ENTITY rfc3667 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3667.xml">
<!ENTITY rfc3966 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3966.xml">
<!ENTITY rfc3978 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3978.xml">
<!ENTITY rfc3986 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml">
<!ENTITY rfc5234 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml">
<!ENTITY rfc5378 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5378.xml">
<!ENTITY rfc6068 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6068.xml">
<!ENTITY rfc6266 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6266.xml">
<!ENTITY rfc6838 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6838.xml">
<!ENTITY rfc6949 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6949.xml">
<!ENTITY rfc7303 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7303.xml">
<!ENTITY rfc7322 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7322.xml">
<!ENTITY rfc7669 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7669.xml">
<!ENTITY rfc7749 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7749.xml">
<!ENTITY rfc7841 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7841.xml">
<!ENTITY rfc7996 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7996.xml">
<!ENTITY rfc7997 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7997.xml">
<!ENTITY rfc7998 PUBLIC "" "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7998.xml">
]>

<rfc xmlns:x="http://purl.org/net/xml2rfc/ext" obsoletes="7749" ipr="trust200902" number="7991" category="info" xml:lang="en" submissionType="IAB">
  <!--<x:feedback template="mailto:rfc-interest@rfc-editor.org,iab@iab.org?subject={docname},%20%22{section}%22&amp;body=&lt;{ref}&gt;:"/>-->
	<front>
  <title>The "xml2rfc" Version 3 Vocabulary</title>
  <author initials="P." surname="Hoffman" fullname="Paul Hoffman">
    <organization>ICANN</organization>
	<address><email>paul.hoffman@icann.org</email></address>
  </author>

  <date year="2016" month="December"/>
  
  <abstract>
    <t>
      This document defines the "xml2rfc" version 3 vocabulary: an XML-based
      language used for writing RFCs and Internet-Drafts. It is heavily derived
      from the version 2 vocabulary that is also under discussion. This document
      obsoletes the v2 grammar described in RFC 7749.
    </t>
  </abstract>

  </front>

  <middle>
<section title="Introduction">
<t>
  This document describes version 3 ("v3") of the "xml2rfc" vocabulary: an XML-based
  language ("Extensible Markup Language" <xref target="XML"/>) used for writing RFCs
  <xref target="RFC7322"/> and Internet-Drafts <xref target="IDGUIDE"/>.
</t>
<t>
  This document obsoletes the version 2 vocabulary ("v2") <xref target="RFC7749"/>, which
  contains the extended language definition. That document in turn obsoletes
  the original version ("v1") <xref target="RFC2629"/>. This document directly copies the
  material from <xref target="RFC7749"/> where possible.
</t>
<t>
The v3 format will be used as part of the new RFC Series format described in <xref target="RFC6949"/>.
The new format will be handled by one or more new tools for preparing the XML and
converting it to other representations.
Features of the expected
tools are described in <xref target="tools"/>. That section defines some terms 
used throughout this document, such as "prep tool" and "formatter".
</t>
<t>
  Note that the vocabulary contains certain constructs that might not be used when generating
  the final text; however, they can provide useful
  data for other uses (such as index generation, populating a keyword database, or
  syntax checks).
</t>
<t>
In this document, the term "format" is used when describing types of documents, primarily
XML and HTML. The term "representation" is used when talking about a specific instantiation
of a format, such as an XML document or an HTML document that was created by an XML document.
</t>

<section title="Expected Updates to the Specification">

<t>
Non-interoperable changes in later versions of this specification are likely based on experience gained in
implementing the new publication toolsets.
Revised documents will be
published capturing those changes as the toolsets are completed. Other implementers must not expect
those changes to remain backwards-compatible with the details described in this document.
</t>

</section>

<section title="Design Criteria for the Changes in v3">

<t>The design criteria of the changes from v2 to v3 are as follows:

<list style="symbols">

<t>The intention is that starting and editing a v3 document will be easier than for a v2 document.</t>

<t>There will be good v2-to-v3 conversion tools for when an author wants to change versions.</t>

<t>There are no current plans to make v3 XML the required submission format for drafts or
RFCs. That might happen eventually, but it is likely to be years away.</t>

</list>

There is a desire to keep as much of the v2 grammar as makes sense within the above design
criteria and not to make gratuitous changes to the v2 grammar. Another way to say this is
"we would rather encourage backwards compatibility but not be constrained by it." Still, the
goal of starting and editing a v3 document being easier than for a v2 document is more
important than backwards compatibility with v2, given the latter two design criteria.</t>

<t>
v3 is upwards compatible with v2, meaning that a v2 document is meant to be a valid v3
document as well. However, some features of v2 are deprecated in v3 in favor of new
elements. Deprecated features are listed in <xref target="deprecated_features"/>
and are described in <xref target="RFC7749"/>.
</t>

</section>

<section title="Differences from v2 to v3" anchor="differences.from.v2.to.v3">

<t>
This is a (hopefully) complete list of all the technical changes between <xref target="RFC7749"/>
and this document.
</t>

<section title="New Elements in v3">

<t><list style="symbols">

<t>Add &lt;<x:ref>dl</x:ref>&gt;, &lt;<x:ref>ul</x:ref>&gt;, and &lt;<x:ref>ol</x:ref>&gt;
as new ways to make lists. This is a significant change from v2 in that the child under
these elements is &lt;<x:ref>li</x:ref>&gt;, not &lt;<x:ref>t</x:ref>&gt;.
&lt;<x:ref>li</x:ref>&gt; has a model of either containing one or more
&lt;<x:ref>t</x:ref>&gt; elements, or containing the flowing text normally found in
&lt;<x:ref>t</x:ref>&gt;. These lists are children of &lt;<x:ref>section</x:ref>&gt;s
and other lists
instead of &lt;<x:ref>t</x:ref>&gt;.</t>

<t>Add &lt;<x:ref>strong</x:ref>&gt;, &lt;<x:ref>em</x:ref>&gt;,
&lt;<x:ref>tt</x:ref>&gt;, &lt;<x:ref>sub</x:ref>&gt;, and &lt;<x:ref>sup</x:ref>&gt; for character formatting.</t>

<t>Add &lt;<x:ref>aside</x:ref>&gt; for incidental text that will be indented when displayed.</t>

<t>Add &lt;<x:ref>sourcecode</x:ref>&gt; to differentiate from &lt;<x:ref>artwork</x:ref>&gt;.</t>

<t>Add &lt;<x:ref>table</x:ref>&gt;, &lt;<x:ref>thead</x:ref>&gt;, &lt;<x:ref>tbody</x:ref>&gt;, &lt;<x:ref>tfoot</x:ref>&gt;,
&lt;<x:ref>tr</x:ref>&gt;, &lt;<x:ref>td</x:ref>&gt;, and &lt;<x:ref>th</x:ref>&gt;
to give table functionality like that in HTML.</t>

<t>Add &lt;<x:ref>boilerplate</x:ref>&gt; to hold the automatically generated boilerplate text.</t>

<t>Add &lt;<x:ref>blockquote</x:ref>&gt; to indicate a quotation as in a paragraph-like format.</t>

<t>Add &lt;<x:ref>name</x:ref>&gt; to sections, notes, figures, and texttables to allow character formatting
(fixed-width font) in their titles and to allow references in the names.</t>

<t>Add &lt;<x:ref>postalLine</x:ref>&gt;, free text that represents one line of the address.</t>

<t>Add &lt;<x:ref>displayreference</x:ref>&gt; to allow display of more mnemonic anchor names
for automatically included references.</t>

<t>Add &lt;<x:ref>refcontent</x:ref>&gt; to allow better control of text in a reference.</t>

<t>Add &lt;<x:ref>referencegroup</x:ref>&gt; to allow referencing multi-RFC documents such
as STDs and BCPs.</t>

<t>Add &lt;<x:ref>relref</x:ref>&gt; to allow referencing specific sections or anchors in references.</t>

<t>Add &lt;<x:ref>link</x:ref>&gt; to point to a resource related to the RFC.</t>

<t>Add &lt;<x:ref>br</x:ref>&gt; to allow line breaks (but not blank lines) in the generated output
for table cells.</t>

<t>Add &lt;<x:ref>svg</x:ref>&gt; to allow easy inclusion of SVG drawings in &lt;<x:ref>artwork</x:ref>&gt;.</t>

</list></t>

</section>

<section title="New Attributes for Existing Elements">

<t><list style="symbols">

<t>Add "sortRefs", "symRefs", "tocDepth", and "tocInclude" attributes to &lt;<x:ref>rfc</x:ref>&gt;
to cover Processing Instructions (PIs) that were in v2 that are still needed in the grammar.
Add "prepTime" to indicate the time that the XML went through a preparation step.
Add "version" to indicate the version of xml2rfc vocabulary used in the document.
Add "scripts" to indicate which scripts are needed to render the document.
Add "expiresDate" when an Internet-Draft expires.
</t>

<t>Add "ascii" attributes to &lt;<x:ref>email</x:ref>&gt;,
&lt;<x:ref>organization</x:ref>&gt;, &lt;<x:ref>street</x:ref>&gt;,
&lt;<x:ref>city</x:ref>&gt;, &lt;<x:ref>region</x:ref>&gt;, &lt;<x:ref>country</x:ref>&gt;, and &lt;<x:ref>code</x:ref>&gt;.
Also add "asciiFullname", "asciiInitials", and "asciiSurname" to &lt;<x:ref>author</x:ref>&gt;.
This allows an author to specify their information in their native scripts as the primary
entry and still allow the ASCII-equivalent values to appear in the processed documents.</t>

<t>Add "anchor" attributes to many block elements to allow them to be linked with
&lt;<x:ref>relref</x:ref>&gt; and &lt;<x:ref>xref</x:ref>&gt;.</t>

<t>Add the "section", "relative", and "sectionFormat" attributes to &lt;<x:ref>xref</x:ref>&gt;.</t>

<t>Add the "numbered" and "removeInRFC" attributes to &lt;<x:ref>section</x:ref>&gt;.</t>

<t>Add the "removeInRFC" attribute to &lt;<x:ref>note</x:ref>&gt;.</t>

<t>Add "pn" to &lt;<x:ref>artwork</x:ref>&gt;,
&lt;<x:ref>aside</x:ref>&gt;, &lt;<x:ref>blockquote</x:ref>&gt;, &lt;<x:ref>boilerplate</x:ref>&gt;, &lt;<x:ref>dt</x:ref>&gt;,
&lt;<x:ref>figure</x:ref>&gt;, &lt;<x:ref>iref</x:ref>&gt;, &lt;<x:ref>li</x:ref>&gt;, &lt;<x:ref>references</x:ref>&gt;, &lt;<x:ref>section</x:ref>&gt;,
&lt;<x:ref>sourcecode</x:ref>&gt;, &lt;<x:ref>t</x:ref>&gt;,
and &lt;<x:ref>table</x:ref>&gt; to hold automatically generated
numbers for items in a section that don't have their own numbering (namely figures and tables).</t>

<t>Add "display" to &lt;<x:ref>cref</x:ref>&gt; to indicate to tools whether or not
to display the comment.</t>

<t>Add "keepWithNext" and "keepWithPrevious" to &lt;<x:ref>t</x:ref>&gt; as a hint to tools that
do pagination that they should try to keep the paragraph with the next/previous element.</t>

</list></t>

</section>

<section title="Elements and Attributes Deprecated from v2" anchor="deprecated_features">

<t>Deprecated elements and attributes are legacy vocabulary from v2 that are supported for input
to v3 tools. They are likely to be removed from those tools in the future.
Deprecated attributes are still listed in <xref target="elements"/>, and deprecated elements are listed in <xref target="deprecatedelements"/>.
See <xref target="tools"/> for more information on tools and how they will handle
deprecated features.</t>

<t><list style="symbols">

<t>Deprecate &lt;<x:ref>list</x:ref>&gt; in favor of &lt;<x:ref>dl</x:ref>&gt;, &lt;<x:ref>ul</x:ref>&gt;,
and &lt;<x:ref>ol</x:ref>&gt;.</t>

<t>Deprecate &lt;<x:ref>spanx</x:ref>&gt;; replace it with &lt;<x:ref>strong</x:ref>&gt;,
&lt;<x:ref>em</x:ref>&gt;,
and &lt;<x:ref>tt</x:ref>&gt;.</t>

<t>Deprecate &lt;<x:ref>vspace</x:ref>&gt; because the major use for it,
creating pseudo-paragraph-breaks in lists, is now handled properly.</t>

<t>Deprecate &lt;<x:ref>texttable</x:ref>&gt;, &lt;<x:ref>ttcol</x:ref>&gt;, and &lt;<x:ref>c</x:ref>&gt;;
replace them with the new table elements (&lt;<x:ref>table</x:ref>&gt; and the elements that can be
contained within it).</t>

<t>Deprecate &lt;<x:ref>facsimile</x:ref>&gt; because it is rarely used.</t>

<t>Deprecate &lt;<x:ref>format</x:ref>&gt; because it is not useful and has caused surprise for authors in the past.
If the goal is to provide a single URI (Uniform Resource Identifier) for
a reference, use the "target" attribute in &lt;<x:ref>reference</x:ref>&gt; instead.</t>

<t>Deprecate &lt;<x:ref>preamble</x:ref>&gt; and &lt;<x:ref>postamble</x:ref>&gt; in favor of 
simply using &lt;<x:ref>t</x:ref>&gt; before or after the figure. This also deprecates the "align" attribute in
&lt;<x:ref>figure</x:ref>&gt;.</t>

<t>Deprecate the "title" attribute in &lt;<x:ref>section</x:ref>&gt;,  &lt;<x:ref>note</x:ref>&gt;,
&lt;<x:ref>figure</x:ref>&gt;, &lt;<x:ref>references</x:ref>&gt;, and 
&lt;<x:ref>texttable</x:ref>&gt; in favor of the new &lt;<x:ref>name</x:ref>&gt;.</t>

<t>Deprecate the "alt" and "src" attributes in &lt;<x:ref>figure</x:ref>&gt;
because they overlap with the attributes in &lt;<x:ref>artwork</x:ref>&gt;.</t>

<t>Deprecate the "xml:space" attribute in &lt;<x:ref>artwork</x:ref>&gt; because there was only one useful value.
Deprecate the "height" and "width" attributes in both &lt;<x:ref>artwork</x:ref>&gt; and &lt;<x:ref>figure</x:ref>&gt;
because they are not needed for the new output formats.</t>

<t>Deprecate the "pageno" attribute in &lt;<x:ref>xref</x:ref>&gt; because it was unused in v2.
Deprecate the "none" values for the "format" attribute in &lt;<x:ref>xref</x:ref>&gt;
because it makes no sense semantically.</t>

</list></t>

</section>

<section title="Additional Changes from v2">

<t><list style="symbols">

<t>Allow non-ASCII characters in the format; the characters that are actually allowed will
be determined by the RFC Series Editor.</t>

<t>Allow &lt;<x:ref>artwork</x:ref>&gt; and &lt;<x:ref>sourcecode</x:ref>&gt; to be used on
their own in &lt;<x:ref>section</x:ref>&gt;
(no longer confine them to a figure).</t>

<t>Give more specifics of handling the "type" attribute in &lt;<x:ref>artwork</x:ref>&gt;.</t>

<t>Allow &lt;<x:ref>strong</x:ref>&gt;, &lt;<x:ref>em</x:ref>&gt;,
&lt;<x:ref>tt</x:ref>&gt;, &lt;<x:ref>eref</x:ref>&gt;, and
&lt;<x:ref>xref</x:ref>&gt; in &lt;<x:ref>cref</x:ref>&gt;.</t>

<t>Allow the sub-elements inside a &lt;<x:ref>reference</x:ref>&gt; to be in any order.</t>

<t>Turn off the autogeneration of anchors in &lt;<x:ref>cref</x:ref>&gt; because there is
no use case for them that cannot be achieved in other ways.</t>

<t>Allow more than one &lt;<x:ref>artwork</x:ref>&gt;, or more than one
&lt;<x:ref>sourcecode</x:ref>&gt;, in &lt;<x:ref>figure</x:ref>&gt;.</t>

<t>In &lt;<x:ref>front</x:ref>&gt;, make &lt;<x:ref>date</x:ref>&gt; optional.</t>

<t>In &lt;<x:ref>date</x:ref>&gt;, add restrictions to the "date" and "year" attributes
when used in the &lt;<x:ref>front</x:ref>&gt; for the document's boilerplate text.</t>

<t>In &lt;<x:ref>postal</x:ref>&gt;, allow the sub-elements to be in any order. Also allow the inclusion
of the new &lt;<x:ref>postalLine</x:ref>&gt; instead of the older elements.</t>

<t>In &lt;<x:ref>section</x:ref>&gt;, restrict the names of the anchors that can be used on
some types of sections.</t>

<t>Make &lt;<x:ref>seriesInfo</x:ref>&gt; a child of &lt;<x:ref>front</x:ref>&gt;,
and deprecated it as a child of &lt;<x:ref>reference</x:ref>&gt;. This also
deprecates some of the attributes from &lt;<x:ref>rfc</x:ref>&gt; and moves
them into &lt;<x:ref>seriesInfo</x:ref>&gt;.</t>

<t>&lt;<x:ref>t</x:ref>&gt; now only contains non-block elements, so it no longer contains
&lt;<x:ref>figure</x:ref>&gt; elements.</t>

<t>Do not generate the grammar from a DTD, but instead get it directly from the RELAX Next Generation (RNG) grammar
<xref target="RNG"/>.</t>

</list></t>

</section>

</section>

<section title="Syntax Notation" anchor="syntax.notation">
<t>
  The XML vocabulary here is defined in prose, based on the RELAX NG schema 
  <xref target="RNC"/> contained in <xref target="schema"/> (specified in
  RELAX NG Compact Notation (RNC)).
</t>
<t>  
  Note that the schema can be used for automated validity
  checks, but certain constraints are only described in prose (example:
  the conditionally required presence of the "abbrev" attribute).
</t>
</section>

</section>

<section xmlns:x="http://purl.org/net/xml2rfc/ext" title="Elements" anchor="elements">
<t>
  The sections below describe all elements and their attributes.
</t>
<t>  
  Note that attributes not labeled "mandatory" are optional.
</t>
<t>
  Many elements have an optional "anchor" attribute. In all cases, the value of the "anchor"
  attribute needs to be a valid XML "Name" (<xref target="XML" x:fmt="of" x:sec="2.3"
  x:rel="#sec-common-syn"/>),
  additionally constrained to US-ASCII characters <xref target="USASCII"/>. Thus, the character repertoire consists of
  "A-Z", "a-z", "0-9", "_", "-", ".", and ":", where "0-9", ".", and "-" are disallowed as start characters.
  Anchors are described in more detail in <xref target="anchorsandids"/>.
</t>

<t>
Tools interpreting the XML described here will collapse horizontal whitespace and line breaks to a
single whitespace (except inside &lt;<x:ref>artwork</x:ref>&gt; and
&lt;<x:ref>sourcecode</x:ref>&gt;) and will trim leading and trailing whitespace.
Tab characters (U+0009) inside &lt;<x:ref>artwork</x:ref>&gt; and &lt;<x:ref>sourcecode</x:ref>&gt; are
prohibited.
</t>

<t>
Some of the elements have attributes that are not described in this section because those attributes
are specific to the prep tool. People writing tools to process this format should read all of
the appendices for a complete description of these attributes.
</t>

<t>
  Every element in the v3 vocabulary can have an "xml:lang" attribute, an "xml:base" attribute, or
  both. The xml:lang attribute specifies the language used in the element. This is sometimes useful
  for renderers that display different fonts for ideographic characters used in China and Japan.
  The xml:base attribute is sometimes added to an XML file when doing XML-to-XML conversion where the
  base file has XInclude attributes (see <xref target="includingexternal"/>).
</t>

<?BEGININC xml2rfcv3-spec.xml ?>
<!--THIS IS AN AUTOGENERATED FILE. DO NOT EDIT!-->


<!--abstract--><section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.abstract">
   <name>
      <tt>&lt;abstract&gt;</tt>
   </name>
   <x:anchor-alias value="abstract"/>
   <iref item="Elements" subitem="abstract" primary="true"/>
   <iref item="abstract element" primary="true"/>
   <t>
     Contains the Abstract of the document.
     See <xref target="RFC7322"/> for more information on restrictions for the Abstract.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>front</x:ref>&gt; (<xref target="element.front"/>).</t>
   <t anchor="element.abstract.contents"><!--AG-->
      <xref format="none" target="grammar.abstract">Content model</xref>:
    </t>
   <t><!--AG-->In any order, but at least one of:</t>
   <ul><!--AG-->
      <li><!--AG-->
         <iref item="Elements" subitem="dl"/>
         <iref item="dl element" subitem="inside abstract"/>&lt;<x:ref>dl</x:ref>&gt; elements (<xref target="element.dl"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="ol"/>
         <iref item="ol element" subitem="inside abstract"/>&lt;<x:ref>ol</x:ref>&gt; elements (<xref target="element.ol"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="t"/>
         <iref item="t element" subitem="inside abstract"/>&lt;<x:ref>t</x:ref>&gt; elements (<xref target="element.t"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="ul"/>
         <iref item="ul element" subitem="inside abstract"/>&lt;<x:ref>ul</x:ref>&gt; elements (<xref target="element.ul"/>)</li>
   </ul>

   <!--abstract/@anchor-->
   <section anchor="element.abstract.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="abstract element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in abstract element"/>
      <t>
        Document-wide unique identifier for the Abstract.
      </t>
   </section>
</section>

<!--address-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.address">
   <name>
      <tt>&lt;address&gt;</tt>
   </name>
   <x:anchor-alias value="address"/>
   <iref item="Elements" subitem="address" primary="true"/>
   <iref item="address element" primary="true"/>
   <t>
     Provides address information for the author.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>author</x:ref>&gt; (<xref target="element.author"/>).</t>
   <t anchor="element.address.contents"><!--AG-->
      <xref format="none" target="grammar.address">Content model</xref>:</t>
   <t><!--AG-->In this order:</t>
   <ol><!--AG-->
        
      <li><!--AG-->
         <iref item="Elements" subitem="postal"/>
         <iref item="postal element" subitem="inside address"/>One optional &lt;<x:ref>postal</x:ref>&gt; element (<xref target="element.postal"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="phone"/>
         <iref item="phone element" subitem="inside address"/>One optional &lt;<x:ref>phone</x:ref>&gt; element (<xref target="element.phone"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="facsimile"/>
         <iref item="facsimile element" subitem="inside address"/>One optional &lt;<x:ref>facsimile</x:ref>&gt; element (<xref target="element.facsimile"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="email"/>
         <iref item="email element" subitem="inside address"/>One optional &lt;<x:ref>email</x:ref>&gt; element (<xref target="element.email"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="uri"/>
         <iref item="uri element" subitem="inside address"/>One optional &lt;<x:ref>uri</x:ref>&gt; element (<xref target="element.uri"/>)</li>
      
   </ol>
</section>

<!--annotation-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.annotation">
   <name>
      <tt>&lt;annotation&gt;</tt>
   </name>
   <x:anchor-alias value="annotation"/>
   <iref item="Elements" subitem="annotation" primary="true"/>
   <iref item="annotation element" primary="true"/>
   <t>
      Provides additional prose augmenting a bibliographic reference.
      This text is intended to be shown after the rest of the generated reference text.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>reference</x:ref>&gt; (<xref target="element.reference"/>).</t>
   <t anchor="element.annotation.contents"><!--AG-->
      <xref format="none" target="grammar.annotation">Content model</xref>:
    </t>
   <t><!--AG-->In any order:</t>
   <ul><!--AG-->
      <li><!--AG-->Text</li>
      <li><!--AG-->
         <iref item="Elements" subitem="bcp14"/>
         <iref item="bcp14 element" subitem="inside annotation"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="cref"/>
         <iref item="cref element" subitem="inside annotation"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="em"/>
         <iref item="em element" subitem="inside annotation"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="eref"/>
         <iref item="eref element" subitem="inside annotation"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="iref"/>
         <iref item="iref element" subitem="inside annotation"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="relref"/>
         <iref item="relref element" subitem="inside annotation"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="spanx"/>
         <iref item="spanx element" subitem="inside annotation"/>&lt;<x:ref>spanx</x:ref>&gt; elements (<xref target="element.spanx"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="strong"/>
         <iref item="strong element" subitem="inside annotation"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sub"/>
         <iref item="sub element" subitem="inside annotation"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sup"/>
         <iref item="sup element" subitem="inside annotation"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="tt"/>
         <iref item="tt element" subitem="inside annotation"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="xref"/>
         <iref item="xref element" subitem="inside annotation"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
   </ul>
</section>

<!--area-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.area">
   <name>
      <tt>&lt;area&gt;</tt>
   </name>
   <x:anchor-alias value="area"/>
   <iref item="Elements" subitem="area" primary="true"/>
   <iref item="area element" primary="true"/>
   <t>
      Provides information about the IETF area to which this document relates
      (currently not used when generating documents).
   </t>
   <t>
      The value ought to be either the full name or the abbreviation of one of
      the IETF areas as listed on <eref target="http://www.ietf.org/iesg/area.html"/>.
      A list of full names and abbreviations will be kept by the RFC Series Editor.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>front</x:ref>&gt; (<xref target="element.front"/>).</t>
   <t anchor="element.area.contents"><!--AG-->
      <xref format="none" target="grammar.area">Content model</xref>: only text content.</t>
</section>

<!--artwork-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.artwork">
   <name>
      <tt>&lt;artwork&gt;</tt>
   </name>
   <x:anchor-alias value="artwork"/>
   <iref item="Elements" subitem="artwork" primary="true"/>
   <iref item="artwork element" primary="true"/>
   <t>
      This element allows the inclusion of "artwork" in the document.
      &lt;artwork&gt; provides
      full control of horizontal whitespace and line breaks; thus, it is
      used for a variety of things, such as diagrams ("line art") and protocol unit diagrams.
      Tab characters (U+0009) inside of this element are prohibited.
   </t>
   <t>
      Alternatively, the "src" attribute allows referencing an external graphics
      file, such as a vector drawing in SVG or a bitmap graphic file, using a URI. In this case, the textual
      content acts as a fallback for output representations that do not support graphics;
      thus, it ought to contain either (1) a "line art" variant of the graphics or (2)
      prose that describes the included image in sufficient detail.
   </t>
   <t>
      In <xref target="RFC7749"/>, the &lt;artwork&gt; element was also used for source code and formal
      languages; in v3, this is now done with &lt;<x:ref>sourcecode</x:ref>&gt;.
   </t>
   <t>
      There are at least five ways to include SVG in artwork in Internet-Drafts:
      <list style="symbols">
         <t>Inline, by including all of the SVG in the content of the element, 
            such as: &lt;artwork type="svg"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg..."&gt;</t>
         <t>Inline, but using XInclude (see <xref target="includingexternal"/>),
            such as: &lt;artwork type="svg"&gt;&lt;xi:include href=...&gt;</t>
         <t>As a data: URI, such as: &lt;artwork type="svg"
            src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3..."&gt;</t>
         <t>As a URI to an external entity, such as: &lt;artwork type="svg" src="http://www.example.com/..."&gt;</t>
         <t>As a local file, such as: &lt;artwork type="svg" src="diagram12.svg"&gt;</t>
      </list>
      The use of SVG in Internet-Drafts and RFCs is covered in much more detail in
      <xref target="RFC7996"/>.
   </t>
   <t>
      The above methods for inclusion of SVG art can also be used for including text artwork, but using a data: URI is probably
      confusing for text artwork.
   </t>
   <t>
      Formatters that do pagination should attempt to keep artwork on a single page. This is to prevent
      artwork that is split across pages from looking like two separate pieces of artwork.
   </t>
   <t>
See <xref target="cdata.and.escaping"/> for a description of how to deal with issues of using
"&amp;" and "&lt;" characters in artwork.
</t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>aside</x:ref>&gt; (<xref target="element.aside"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>figure</x:ref>&gt; (<xref target="element.figure"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), and &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>).</t>
   <t anchor="element.artwork.contents"><!--AG-->
      <xref format="none" target="grammar.artwork">Content model</xref>:
    </t>
   <t><!--AG-->Either:</t>
   <ul empty="true"><!--AG-->
          
      <li><!--AG-->Text</li>
        
   </ul>
   <t><!--AG-->Or:</t>
   <ul empty="true"><!--AG-->
      <li><!--AG-->
         <iref item="Elements" subitem="svg"/>
         <iref item="svg element" subitem="inside artwork"/>&lt;<x:ref>svg</x:ref>&gt; elements (<xref target="element.svg"/>)</li>
   </ul>

   <!--artwork/@align-->
   <section anchor="element.artwork.attribute.align" toc="exclude">
      <name>"align" Attribute</name>
      <iref item="Attributes" subitem="align"/>
      <iref item="artwork element" subitem="align attribute"/>
      <iref item="align attribute" subitem="in artwork element"/>
      <t>
            Controls whether the artwork appears left justified (default), centered,
            or right justified.
            Artwork is aligned relative to the left margin of the document.
         </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"left" (default)</li>
         <li>"center"</li>
         <li>"right"</li>
      </ul>
   </section>

   <!--artwork/@alt-->
   <section anchor="element.artwork.attribute.alt" toc="exclude">
      <name>"alt" Attribute</name>
      <iref item="Attributes" subitem="alt"/>
      <iref item="artwork element" subitem="alt attribute"/>
      <iref item="alt attribute" subitem="in artwork element"/>
      <t>
            Alternative text description of the artwork (which is more than just a summary or caption).
            When the art comes from the "src" attribute
            and the format of that artwork supports alternate text,
            the alternative text comes from the text of the artwork itself, not from this attribute.
            The contents of this attribute are important to readers who are visually impaired, as well as
            those reading on devices that cannot show the artwork well, or at all.
         </t>
   </section>

   <!--artwork/@anchor-->
   <section anchor="element.artwork.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="artwork element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in artwork element"/>
      <t>
        Document-wide unique identifier for this artwork.
      </t>
   </section>

   <!--artwork/@height-->
   <section anchor="element.artwork.attribute.height" toc="exclude">
      <name>"height" Attribute</name>
      <iref item="Attributes" subitem="height"/>
      <iref item="artwork element" subitem="height attribute"/>
      <iref item="height attribute" subitem="in artwork element"/>
      <t>
            Deprecated.
      </t>
   </section>

   <!--artwork/@name-->
   <section anchor="element.artwork.attribute.name" toc="exclude">
      <name>"name" Attribute</name>
      <iref item="Attributes" subitem="name"/>
      <iref item="artwork element" subitem="name attribute"/>
      <iref item="name attribute" subitem="in artwork element"/>
      <t>
            A filename suitable for the contents (such as for extraction to a local file).
            This attribute can
            be helpful for other kinds of tools (such as automated syntax checkers,
            which work by extracting the artwork).
            Note that the "name" attribute does not need to be unique for  &lt;<x:ref>artwork</x:ref>&gt; elements in a
            document. If multiple  &lt;<x:ref>artwork</x:ref>&gt; elements have the same "name" attribute, a processing tool might
            assume that the elements are all fragments of a single file, and the tool can
            collect those fragments for later processing.
            See <xref target="security.considerations"/> for a discussion of possible problems with the value of this attribute.
         </t>
   </section>

   <!--artwork/@src-->
   <section anchor="element.artwork.attribute.src" toc="exclude">
      <name>"src" Attribute</name>
      <iref item="Attributes" subitem="src"/>
      <iref item="artwork element" subitem="src attribute"/>
      <iref item="src attribute" subitem="in artwork element"/>
      <t>
         The URI reference of a graphics file <xref target="RFC3986"/>, or the name of a file on the local disk.
         This can be a "data" URI <xref target="RFC2397"/> that contains the contents of the graphics file.
         Note that the inclusion of art with the "src" attribute depends on the capabilities of the processing tool
         reading the XML document. Tools need to be able to handle the file: URI, and they should
         be able to handle http: and https: URIs as well. The prep tool will be able to handle reading the "src" attribute.
      </t>
      <t>
         If no URI scheme is given in the attribute, the attribute is considered to be a local filename
         relative to the current directory.
         Processing tools must be careful to not accept dangerous values for the filename, particularly those that contain
         absolute references outside the current directory.
         Document creators should think hard before using relative URIs due to possible later problems if files move
         around on the disk. Also, documents should most likely use explicit URI schemes wherever possible.
      </t>
      <t>
         In some cases, the prep tool may remove the "src" attribute after processing its value.
         See <xref target="RFC7998"/> for a description of this.
      </t>
      <t>
         It is an error to have both a "src" attribute and content in the &lt;artwork&gt; element.
      </t>
   </section>

   <!--artwork/@type-->
   <section anchor="element.artwork.attribute.type" toc="exclude">
      <name>"type" Attribute</name>
      <iref item="Attributes" subitem="type"/>
      <iref item="artwork element" subitem="type attribute"/>
      <iref item="type attribute" subitem="in artwork element"/>
      <t>
            Specifies the type of the artwork. The value of this attribute is free text with
            certain values designated as preferred.
      </t>
      <t>
            The preferred values for &lt;artwork&gt; types are:
            <list style="symbols">
            <t>ascii-art</t>
            <t>binary-art</t>
            <t>call-flow</t>
            <t>hex-dump</t>
            <t>svg</t>
         </list>
            The RFC Series Editor will maintain a complete list of the preferred values on the RFC Editor
            web site, and that list is expected to be updated over time. Thus, a consumer
            of v3 XML should not cause a failure when it encounters an unexpected type or no type is specified.
            The table will also indicate which type of art can appear in plain-text output (for example, type="svg" cannot).
         </t>
   </section>

   <!--artwork/@width-->
   <section anchor="element.artwork.attribute.width" toc="exclude">
      <name>"width" Attribute</name>
      <iref item="Attributes" subitem="width"/>
      <iref item="artwork element" subitem="width attribute"/>
      <iref item="width attribute" subitem="in artwork element"/>
      <t>
            Deprecated.
      </t>
   </section>

   <!--artwork/@xml:space-->
   <section anchor="element.artwork.attribute.xml-space" toc="exclude">
      <name>"xml:space" Attribute</name>
      <iref item="Attributes" subitem="xml:space"/>
      <iref item="artwork element" subitem="xml:space attribute"/>
      <iref item="xml:space attribute" subitem="in artwork element"/>
      <t>
            Deprecated.
       </t>
   </section>
</section>

<!--aside-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.aside">
   <name>
      <tt>&lt;aside&gt;</tt>
   </name>
   <x:anchor-alias value="aside"/>
   <iref item="Elements" subitem="aside" primary="true"/>
   <iref item="aside element" primary="true"/>
   <t>
      This element is a container for content that is semantically less important or tangential
      to the content that surrounds it.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>).</t>
   <t anchor="element.aside.contents"><!--AG-->
      <xref format="none" target="grammar.aside">Content model</xref>:
    </t>
   <t><!--AG-->In any order:</t>
   <ul><!--AG-->
      <li><!--AG-->
         <iref item="Elements" subitem="artwork"/>
         <iref item="artwork element" subitem="inside aside"/>&lt;<x:ref>artwork</x:ref>&gt; elements (<xref target="element.artwork"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="dl"/>
         <iref item="dl element" subitem="inside aside"/>&lt;<x:ref>dl</x:ref>&gt; elements (<xref target="element.dl"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="figure"/>
         <iref item="figure element" subitem="inside aside"/>&lt;<x:ref>figure</x:ref>&gt; elements (<xref target="element.figure"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="iref"/>
         <iref item="iref element" subitem="inside aside"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="list"/>
         <iref item="list element" subitem="inside aside"/>&lt;<x:ref>list</x:ref>&gt; elements (<xref target="element.list"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="ol"/>
         <iref item="ol element" subitem="inside aside"/>&lt;<x:ref>ol</x:ref>&gt; elements (<xref target="element.ol"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="t"/>
         <iref item="t element" subitem="inside aside"/>&lt;<x:ref>t</x:ref>&gt; elements (<xref target="element.t"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="table"/>
         <iref item="table element" subitem="inside aside"/>&lt;<x:ref>table</x:ref>&gt; elements (<xref target="element.table"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="ul"/>
         <iref item="ul element" subitem="inside aside"/>&lt;<x:ref>ul</x:ref>&gt; elements (<xref target="element.ul"/>)</li>
   </ul>

   <!--aside/@anchor-->
   <section anchor="element.aside.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="aside element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in aside element"/>
      <t>
        Document-wide unique identifier for this aside.
      </t>
   </section>
</section>

<!--author-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.author">
   <name>
      <tt>&lt;author&gt;</tt>
   </name>
   <x:anchor-alias value="author"/>
   <iref item="Elements" subitem="author" primary="true"/>
   <iref item="author element" primary="true"/>
   <t>
      Provides information about a document's author. This is used both for
      the document itself (at the beginning of the document) and for
      referenced documents.
   </t>
   <t>
      The &lt;author&gt; elements contained within the document's &lt;front&gt; element
      are used to fill the boilerplate and also to generate the "Author's Address"
      section (see <xref target="RFC7322"/>).
   </t>
   <t>
      Note that an "author" can also be just an organization (by not specifying any
      of the "name" attributes, but adding the &lt;<x:ref>organization</x:ref>&gt;
      child element).
   </t>
   <t>
      Furthermore, the "role" attribute can be used to mark an author as
      "editor". This is reflected both on the front page and in the "Author's Address" section, as well as in bibliographic
      references. Note that this specification does not define a precise
      meaning for the term "editor".
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>front</x:ref>&gt; (<xref target="element.front"/>).</t>
   <t anchor="element.author.contents"><!--AG-->
      <xref format="none" target="grammar.author">Content model</xref>:</t>
   <t><!--AG-->In this order:</t>
   <ol><!--AG-->
        
      <li><!--AG-->
         <iref item="Elements" subitem="organization"/>
         <iref item="organization element" subitem="inside author"/>One optional &lt;<x:ref>organization</x:ref>&gt; element (<xref target="element.organization"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="address"/>
         <iref item="address element" subitem="inside author"/>One optional &lt;<x:ref>address</x:ref>&gt; element (<xref target="element.address"/>)</li>
      
   </ol>

   <!--author/@asciiFullname-->
   <section anchor="element.author.attribute.asciiFullname" toc="exclude">
      <name>"asciiFullname" Attribute</name>
      <iref item="Attributes" subitem="asciiFullname"/>
      <iref item="author element" subitem="asciiFullname attribute"/>
      <iref item="asciiFullname attribute" subitem="in author element"/>
      <t>
         The ASCII equivalent of the author's full name.
      </t>
   </section>

   <!--author/@asciiInitials-->
   <section anchor="element.author.attribute.asciiInitials" toc="exclude">
      <name>"asciiInitials" Attribute</name>
      <iref item="Attributes" subitem="asciiInitials"/>
      <iref item="author element" subitem="asciiInitials attribute"/>
      <iref item="asciiInitials attribute" subitem="in author element"/>
      <t>
         The ASCII equivalent of the author's initials, to be used in conjunction with the separately specified asciiSurname.
      </t>
   </section>

   <!--author/@asciiSurname-->
   <section anchor="element.author.attribute.asciiSurname" toc="exclude">
      <name>"asciiSurname" Attribute</name>
      <iref item="Attributes" subitem="asciiSurname"/>
      <iref item="author element" subitem="asciiSurname attribute"/>
      <iref item="asciiSurname attribute" subitem="in author element"/>
      <t>
         The ASCII equivalent of the author's surname, to be used in conjunction with the separately specified asciiInitials.
      </t>
   </section>

   <!--author/@fullname-->
   <section anchor="element.author.attribute.fullname" toc="exclude">
      <name>"fullname" Attribute</name>
      <iref item="Attributes" subitem="fullname"/>
      <iref item="author element" subitem="fullname attribute"/>
      <iref item="fullname attribute" subitem="in author element"/>
      <t>
            The full name (used in the automatically generated "Author's Address" section).
            Although this attribute is optional, if one or more of the "asciiFullname", "asciiInitials",
            or "asciiSurname" attributes have values, the "fullname" attribute is required.
      </t>
   </section>

   <!--author/@initials-->
   <section anchor="element.author.attribute.initials" toc="exclude">
      <name>"initials" Attribute</name>
      <iref item="Attributes" subitem="initials"/>
      <iref item="author element" subitem="initials attribute"/>
      <iref item="initials attribute" subitem="in author element"/>
      <t>
         An abbreviated variant of the given name(s), to be used in conjunction
         with the separately specified surname.  It usually appears on the front
         page, in footers, and in references.
      </t>
      <t>
         Some processors will post-process the value -- for instance, when it only
         contains a single letter (in which case they might add a trailing dot).
         Relying on this kind of post-processing can lead to results varying
         across formatters and thus ought to be avoided.
      </t>
   </section>

   <!--author/@role-->
   <section anchor="element.author.attribute.role" toc="exclude">
      <name>"role" Attribute</name>
      <iref item="Attributes" subitem="role"/>
      <iref item="author element" subitem="role attribute"/>
      <iref item="role attribute" subitem="in author element"/>
      <t>
            Specifies the role the author had in creating the document.
         </t>
      <t><!--AG-->Allowed value:</t>
      <ul><!--AG-->
         <li>"editor"</li>
      </ul>
   </section>

   <!--author/@surname-->
   <section anchor="element.author.attribute.surname" toc="exclude">
      <name>"surname" Attribute</name>
      <iref item="Attributes" subitem="surname"/>
      <iref item="author element" subitem="surname attribute"/>
      <iref item="surname attribute" subitem="in author element"/>
      <t>
         The author's surname, to be used in conjunction with the separately
         specified initials.  It usually appears on the front page, in
         footers, and in references.
      </t>
   </section>
</section>

<!--back-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.back">
   <name>
      <tt>&lt;back&gt;</tt>
   </name>
   <x:anchor-alias value="back"/>
   <iref item="Elements" subitem="back" primary="true"/>
   <iref item="back element" primary="true"/>
   <t>
      Contains the "back" part of the document: the references and appendices. In &lt;back&gt;,
      &lt;<x:ref>section</x:ref>&gt; elements indicate appendices.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>rfc</x:ref>&gt; (<xref target="element.rfc"/>).</t>
   <t anchor="element.back.contents"><!--AG-->
      <xref format="none" target="grammar.back">Content model</xref>:</t>
   <t><!--AG-->In this order:</t>
   <ol><!--AG-->
        
      <li><!--AG-->
         <iref item="Elements" subitem="displayreference"/>
         <iref item="displayreference element" subitem="inside back"/>Optional &lt;<x:ref>displayreference</x:ref>&gt; elements (<xref target="element.displayreference"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="references"/>
         <iref item="references element" subitem="inside back"/>Optional &lt;<x:ref>references</x:ref>&gt; elements (<xref target="element.references"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="section"/>
         <iref item="section element" subitem="inside back"/>Optional &lt;<x:ref>section</x:ref>&gt; elements (<xref target="element.section"/>)</li>
      
   </ol>
</section>

<!--bcp14-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.bcp14">
   <name>
      <tt>&lt;bcp14&gt;</tt>
   </name>
   <x:anchor-alias value="bcp14"/>
   <iref item="Elements" subitem="bcp14" primary="true"/>
   <iref item="bcp14 element" primary="true"/>
   <t>
      Marks text that are phrases defined in <xref target="BCP14"/> such as "MUST", "SHOULD NOT", and so on. When shown
      in some of the output representations, the text in this element might be highlighted.
      The use of this element is optional.
   </t>
   <t>
      This element is only to be used around the actual phrase from BCP 14, not the full
      definition of a requirement. For example, it is correct to say
      "The packet &lt;bcp14&gt;MUST&lt;/bcp14&gt; be dropped.", but it is not correct to say
      "&lt;bcp14&gt;The packet MUST be dropped.&lt;/bcp14&gt;".
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>annotation</x:ref>&gt; (<xref target="element.annotation"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>dt</x:ref>&gt; (<xref target="element.dt"/>), &lt;<x:ref>em</x:ref>&gt; (<xref target="element.em"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>preamble</x:ref>&gt; (<xref target="element.preamble"/>), &lt;<x:ref>refcontent</x:ref>&gt; (<xref target="element.refcontent"/>), &lt;<x:ref>strong</x:ref>&gt; (<xref target="element.strong"/>), &lt;<x:ref>sub</x:ref>&gt; (<xref target="element.sub"/>), &lt;<x:ref>sup</x:ref>&gt; (<xref target="element.sup"/>), &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>), and &lt;<x:ref>tt</x:ref>&gt; (<xref target="element.tt"/>).</t>
   <t anchor="element.bcp14.contents"><!--AG-->
      <xref format="none" target="grammar.bcp14">Content model</xref>: only text content.</t>
</section>

<!--blockquote-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.blockquote">
   <name>
      <tt>&lt;blockquote&gt;</tt>
   </name>
   <x:anchor-alias value="blockquote"/>
   <iref item="Elements" subitem="blockquote" primary="true"/>
   <iref item="blockquote element" primary="true"/>
   <t>
      Specifies that a block of text is a quotation.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>).</t>
   <t anchor="element.blockquote.contents"><!--AG-->
      <xref format="none" target="grammar.blockquote">Content model</xref>:
    </t>
   <t><!--AG-->Either:</t>
   <ul empty="true"><!--AG-->
      <li><!--AG-->
         <t>In any order, but at least one of:</t>
         <ul><!--AG-->
            <li><!--AG-->
               <iref item="Elements" subitem="artwork"/>
               <iref item="artwork element" subitem="inside blockquote"/>&lt;<x:ref>artwork</x:ref>&gt; elements (<xref target="element.artwork"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="dl"/>
               <iref item="dl element" subitem="inside blockquote"/>&lt;<x:ref>dl</x:ref>&gt; elements (<xref target="element.dl"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="figure"/>
               <iref item="figure element" subitem="inside blockquote"/>&lt;<x:ref>figure</x:ref>&gt; elements (<xref target="element.figure"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ol"/>
               <iref item="ol element" subitem="inside blockquote"/>&lt;<x:ref>ol</x:ref>&gt; elements (<xref target="element.ol"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sourcecode"/>
               <iref item="sourcecode element" subitem="inside blockquote"/>&lt;<x:ref>sourcecode</x:ref>&gt; elements (<xref target="element.sourcecode"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="t"/>
               <iref item="t element" subitem="inside blockquote"/>&lt;<x:ref>t</x:ref>&gt; elements (<xref target="element.t"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ul"/>
               <iref item="ul element" subitem="inside blockquote"/>&lt;<x:ref>ul</x:ref>&gt; elements (<xref target="element.ul"/>)</li>
         </ul>
      </li>
   </ul>
   <t><!--AG-->Or:</t>
   <ul empty="true"><!--AG-->
      <li><!--AG-->
         <t>In any order, but at least one of:</t>
         <ul><!--AG-->
            <li><!--AG-->Text</li>
            <li><!--AG-->
               <iref item="Elements" subitem="bcp14"/>
               <iref item="bcp14 element" subitem="inside blockquote"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="cref"/>
               <iref item="cref element" subitem="inside blockquote"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="em"/>
               <iref item="em element" subitem="inside blockquote"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="eref"/>
               <iref item="eref element" subitem="inside blockquote"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="iref"/>
               <iref item="iref element" subitem="inside blockquote"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="relref"/>
               <iref item="relref element" subitem="inside blockquote"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="strong"/>
               <iref item="strong element" subitem="inside blockquote"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sub"/>
               <iref item="sub element" subitem="inside blockquote"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sup"/>
               <iref item="sup element" subitem="inside blockquote"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="tt"/>
               <iref item="tt element" subitem="inside blockquote"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="xref"/>
               <iref item="xref element" subitem="inside blockquote"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
         </ul>
      </li>
   </ul>

   <!--blockquote/@anchor-->
   <section anchor="element.blockquote.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="blockquote element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in blockquote element"/>
      <t>
         Document-wide unique identifier for this quotation.
      </t>
   </section>

   <!--blockquote/@cite-->
   <section anchor="element.blockquote.attribute.cite" toc="exclude">
      <name>"cite" Attribute</name>
      <iref item="Attributes" subitem="cite"/>
      <iref item="blockquote element" subitem="cite attribute"/>
      <iref item="cite attribute" subitem="in blockquote element"/>
      <t>
         The source of the citation. This must be a URI. If the "quotedFrom" attribute is given, this URI will be
         used by processing tools as the link for the text of that attribute.
      </t>
   </section>

   <!--blockquote/@quotedFrom-->
   <section anchor="element.blockquote.attribute.quotedFrom" toc="exclude">
      <name>"quotedFrom" Attribute</name>
      <iref item="Attributes" subitem="quotedFrom"/>
      <iref item="blockquote element" subitem="quotedFrom attribute"/>
      <iref item="quotedFrom attribute" subitem="in blockquote element"/>
      <t>
         Name of person or document the text in this element is quoted from. A formatter should render this
         as visible text at the end of the quotation.
      </t>
   </section>
</section>

<!--boilerplate-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.boilerplate">
   <name>
      <tt>&lt;boilerplate&gt;</tt>
   </name>
   <x:anchor-alias value="boilerplate"/>
   <iref item="Elements" subitem="boilerplate" primary="true"/>
   <iref item="boilerplate element" primary="true"/>
   <t>
      Holds the boilerplate text for the document. This element is filled in by the prep tool.
   </t>
   <t>
      This element contains &lt;<x:ref>section</x:ref>&gt; elements. Every &lt;<x:ref>section</x:ref>&gt;
      element in this element must have the "numbered" attribute set to "false".
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>front</x:ref>&gt; (<xref target="element.front"/>).</t>
   <t anchor="element.boilerplate.contents"><!--AG-->
      <xref format="none" target="grammar.boilerplate">Content model</xref>:
    </t>
        
   <t><!--AG-->
      <iref item="Elements" subitem="section"/>
      <iref item="section element" subitem="inside boilerplate"/>One or more &lt;<x:ref>section</x:ref>&gt; elements (<xref target="element.section"/>)</t>
      
</section>

<!--br-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.br">
   <name>
      <tt>&lt;br&gt;</tt>
   </name>
   <x:anchor-alias value="br"/>
   <iref item="Elements" subitem="br" primary="true"/>
   <iref item="br element" primary="true"/>
   <t>
      Indicates that a line break should be inserted in the generated output by a formatting tool.
      Multiple successive instances of this element are ignored.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>) and &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>).</t>
   <t anchor="element.br.contents"><!--AG-->
      <xref format="none" target="grammar.br">Content model</xref>: this element does not have any contents.</t>
</section>

<!--city-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.city">
   <name>
      <tt>&lt;city&gt;</tt>
   </name>
   <x:anchor-alias value="city"/>
   <iref item="Elements" subitem="city" primary="true"/>
   <iref item="city element" primary="true"/>
   <t>
      Gives the city name in a postal address.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>postal</x:ref>&gt; (<xref target="element.postal"/>).</t>
   <t anchor="element.city.contents"><!--AG-->
      <xref format="none" target="grammar.city">Content model</xref>: only text content.</t>

   <!--city/@ascii-->
   <section anchor="element.city.attribute.ascii" toc="exclude">
      <name>"ascii" Attribute</name>
      <iref item="Attributes" subitem="ascii"/>
      <iref item="city element" subitem="ascii attribute"/>
      <iref item="ascii attribute" subitem="in city element"/>
      <t>
         The ASCII equivalent of the city name.
      </t>
   </section>
</section>

<!--code-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.code">
   <name>
      <tt>&lt;code&gt;</tt>
   </name>
   <x:anchor-alias value="code"/>
   <iref item="Elements" subitem="code" primary="true"/>
   <iref item="code element" primary="true"/>
   <t>
      Gives the postal region code.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>postal</x:ref>&gt; (<xref target="element.postal"/>).</t>
   <t anchor="element.code.contents"><!--AG-->
      <xref format="none" target="grammar.code">Content model</xref>: only text content.</t>

   <!--code/@ascii-->
   <section anchor="element.code.attribute.ascii" toc="exclude">
      <name>"ascii" Attribute</name>
      <iref item="Attributes" subitem="ascii"/>
      <iref item="code element" subitem="ascii attribute"/>
      <iref item="ascii attribute" subitem="in code element"/>
      <t>
         The ASCII equivalent of the postal code.
      </t>
   </section>
</section>

<!--country-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.country">
   <name>
      <tt>&lt;country&gt;</tt>
   </name>
   <x:anchor-alias value="country"/>
   <iref item="Elements" subitem="country" primary="true"/>
   <iref item="country element" primary="true"/>
   <t>
      Gives the country name or code in a postal address.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>postal</x:ref>&gt; (<xref target="element.postal"/>).</t>
   <t anchor="element.country.contents"><!--AG-->
      <xref format="none" target="grammar.country">Content model</xref>: only text content.</t>

   <!--country/@ascii-->
   <section anchor="element.country.attribute.ascii" toc="exclude">
      <name>"ascii" Attribute</name>
      <iref item="Attributes" subitem="ascii"/>
      <iref item="country element" subitem="ascii attribute"/>
      <iref item="ascii attribute" subitem="in country element"/>
      <t>
         The ASCII equivalent of the country name.
      </t>
   </section>
</section>

<!--cref-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.cref">
   <name>
      <tt>&lt;cref&gt;</tt>
   </name>
   <x:anchor-alias value="cref"/>
   <iref item="Elements" subitem="cref" primary="true"/>
   <iref item="cref element" primary="true"/>
   <t>
      Represents a comment.
   </t>
   <t>
      Comments can be used in a document while it is work in progress. They
      might appear either inline and visually highlighted, at the end of the document,
      or not at all, depending on the formatting tool.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>annotation</x:ref>&gt; (<xref target="element.annotation"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>c</x:ref>&gt; (<xref target="element.c"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>dt</x:ref>&gt; (<xref target="element.dt"/>), &lt;<x:ref>em</x:ref>&gt; (<xref target="element.em"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>name</x:ref>&gt; (<xref target="element.name"/>), &lt;<x:ref>postamble</x:ref>&gt; (<xref target="element.postamble"/>), &lt;<x:ref>preamble</x:ref>&gt; (<xref target="element.preamble"/>), &lt;<x:ref>strong</x:ref>&gt; (<xref target="element.strong"/>), &lt;<x:ref>sub</x:ref>&gt; (<xref target="element.sub"/>), &lt;<x:ref>sup</x:ref>&gt; (<xref target="element.sup"/>), &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>), &lt;<x:ref>tt</x:ref>&gt; (<xref target="element.tt"/>), and &lt;<x:ref>ttcol</x:ref>&gt; (<xref target="element.ttcol"/>).</t>
   <t anchor="element.cref.contents"><!--AG-->
      <xref format="none" target="grammar.cref">Content model</xref>:
    </t>
   <t><!--AG-->In any order:</t>
   <ul><!--AG-->
      <li><!--AG-->Text</li>
      <li><!--AG-->
         <iref item="Elements" subitem="em"/>
         <iref item="em element" subitem="inside cref"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="eref"/>
         <iref item="eref element" subitem="inside cref"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="relref"/>
         <iref item="relref element" subitem="inside cref"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="strong"/>
         <iref item="strong element" subitem="inside cref"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sub"/>
         <iref item="sub element" subitem="inside cref"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sup"/>
         <iref item="sup element" subitem="inside cref"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="tt"/>
         <iref item="tt element" subitem="inside cref"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="xref"/>
         <iref item="xref element" subitem="inside cref"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
   </ul>

   <!--cref/@anchor-->
   <section anchor="element.cref.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="cref element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in cref element"/>
      <t>
        Document-wide unique identifier for this comment.
      </t>
   </section>

   <!--cref/@display-->
   <section anchor="element.cref.attribute.display" toc="exclude">
      <name>"display" Attribute</name>
      <iref item="Attributes" subitem="display"/>
      <iref item="cref element" subitem="display attribute"/>
      <iref item="display attribute" subitem="in cref element"/>
      <t>
         Suggests whether or not the comment should be displayed by formatting tools. This might be
         set to "false" if you want to keep a comment in a document after the contents of the comment
         have already been dealt with.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"true" (default)</li>
         <li>"false"</li>
      </ul>
   </section>

   <!--cref/@source-->
   <section anchor="element.cref.attribute.source" toc="exclude">
      <name>"source" Attribute</name>
      <iref item="Attributes" subitem="source"/>
      <iref item="cref element" subitem="source attribute"/>
      <iref item="source attribute" subitem="in cref element"/>
      <t>
            Holds the "source" of a comment, such as the name or the initials
            of the person who made the comment.
         </t>
   </section>
</section>

<!--date-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.date">
   <name>
      <tt>&lt;date&gt;</tt>
   </name>
   <x:anchor-alias value="date"/>
   <iref item="Elements" subitem="date" primary="true"/>
   <iref item="date element" primary="true"/>
   <t>
      Provides information about the publication date.
      This element is used for two cases: the boilerplate of the document
      being produced, and inside bibliographic references that use the &lt;<x:ref>front</x:ref>&gt; element.
   <list style="hanging">
         <t hangText="Boilerplate for Internet-Drafts and RFCs:">
      This element defines the date of publication for the current document (Internet-Draft or RFC).
      When producing Internet-Drafts, the prep tool uses this date to compute the expiration date (see <xref target="IDGUIDE"/>).
      When one or more of "year",
      "month", or "day" are left out, the prep tool will attempt to use the
      current system date if the attributes that are present are consistent with that
      date.
   </t>
         <t>
      In dates in &lt;<x:ref>rfc</x:ref>&gt; elements, the month must be a number or a month in English. 
      The prep tool will silently change text month names to numbers.
      Similarly, the year must be a four-digit number.
   </t>
         <t>
      When the prep tool is used to create Internet-Drafts, it will reject a submitted Internet-Draft that has a &lt;<x:ref>date</x:ref>&gt;
      element in the boilerplate for itself that is anything other than today. That is, the tool
      will not allow a submitter to specify a date other than the day of submission. To avoid this problem,
      authors might simply not include a &lt;<x:ref>date</x:ref>&gt; element in the boilerplate.
   </t>
         <t hangText="Bibliographic references:">
      In dates in &lt;<x:ref>reference</x:ref>&gt; elements, the date information can have prose text for the month or year.
      For example, vague dates (year="ca. 2000"), date ranges (year="2012-2013"),
      non-specific months (month="Second quarter"), and so on are allowed.
   </t>
      </list>
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>front</x:ref>&gt; (<xref target="element.front"/>).</t>
   <t anchor="element.date.contents"><!--AG-->
      <xref format="none" target="grammar.date">Content model</xref>: this element does not have any contents.</t>

   <!--date/@day-->
   <section anchor="element.date.attribute.day" toc="exclude">
      <name>"day" Attribute</name>
      <iref item="Attributes" subitem="day"/>
      <iref item="date element" subitem="day attribute"/>
      <iref item="day attribute" subitem="in date element"/>
      <t>
         The day of publication.
      </t>
   </section>

   <!--date/@month-->
   <section anchor="element.date.attribute.month" toc="exclude">
      <name>"month" Attribute</name>
      <iref item="Attributes" subitem="month"/>
      <iref item="date element" subitem="month attribute"/>
      <iref item="month attribute" subitem="in date element"/>
      <t>
          The month or months of publication.
       </t>
   </section>

   <!--date/@year-->
   <section anchor="element.date.attribute.year" toc="exclude">
      <name>"year" Attribute</name>
      <iref item="Attributes" subitem="year"/>
      <iref item="date element" subitem="year attribute"/>
      <iref item="year attribute" subitem="in date element"/>
      <t>
         The year or years of publication.
      </t>
   </section>
</section>

<!--dd-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.dd">
   <name>
      <tt>&lt;dd&gt;</tt>
   </name>
   <x:anchor-alias value="dd"/>
   <iref item="Elements" subitem="dd" primary="true"/>
   <iref item="dd element" primary="true"/>
   <t>
      The definition part of an entry in a definition list.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>dl</x:ref>&gt; (<xref target="element.dl"/>).</t>
   <t anchor="element.dd.contents"><!--AG-->
      <xref format="none" target="grammar.dd">Content model</xref>:
    </t>
   <t><!--AG-->Either:</t>
   <ul empty="true"><!--AG-->
      <li><!--AG-->
         <t>In any order, but at least one of:</t>
         <ul><!--AG-->
            <li><!--AG-->
               <iref item="Elements" subitem="artwork"/>
               <iref item="artwork element" subitem="inside dd"/>&lt;<x:ref>artwork</x:ref>&gt; elements (<xref target="element.artwork"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="dl"/>
               <iref item="dl element" subitem="inside dd"/>&lt;<x:ref>dl</x:ref>&gt; elements (<xref target="element.dl"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="figure"/>
               <iref item="figure element" subitem="inside dd"/>&lt;<x:ref>figure</x:ref>&gt; elements (<xref target="element.figure"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ol"/>
               <iref item="ol element" subitem="inside dd"/>&lt;<x:ref>ol</x:ref>&gt; elements (<xref target="element.ol"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sourcecode"/>
               <iref item="sourcecode element" subitem="inside dd"/>&lt;<x:ref>sourcecode</x:ref>&gt; elements (<xref target="element.sourcecode"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="t"/>
               <iref item="t element" subitem="inside dd"/>&lt;<x:ref>t</x:ref>&gt; elements (<xref target="element.t"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ul"/>
               <iref item="ul element" subitem="inside dd"/>&lt;<x:ref>ul</x:ref>&gt; elements (<xref target="element.ul"/>)</li>
         </ul>
      </li>
   </ul>
   <t><!--AG-->Or:</t>
   <ul empty="true"><!--AG-->
      <li><!--AG-->
         <t>In any order, but at least one of:</t>
         <ul><!--AG-->
            <li><!--AG-->Text</li>
            <li><!--AG-->
               <iref item="Elements" subitem="bcp14"/>
               <iref item="bcp14 element" subitem="inside dd"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="cref"/>
               <iref item="cref element" subitem="inside dd"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="em"/>
               <iref item="em element" subitem="inside dd"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="eref"/>
               <iref item="eref element" subitem="inside dd"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="iref"/>
               <iref item="iref element" subitem="inside dd"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="relref"/>
               <iref item="relref element" subitem="inside dd"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="strong"/>
               <iref item="strong element" subitem="inside dd"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sub"/>
               <iref item="sub element" subitem="inside dd"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sup"/>
               <iref item="sup element" subitem="inside dd"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="tt"/>
               <iref item="tt element" subitem="inside dd"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="xref"/>
               <iref item="xref element" subitem="inside dd"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
         </ul>
      </li>
   </ul>

   <!--dd/@anchor-->
   <section anchor="element.dd.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="dd element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in dd element"/>
      <t>
        Document-wide unique identifier for this definition.
      </t>
   </section>
</section>

<!--displayreference-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.displayreference">
   <name>
      <tt>&lt;displayreference&gt;</tt>
   </name>
   <x:anchor-alias value="displayreference"/>
   <iref item="Elements" subitem="displayreference" primary="true"/>
   <iref item="displayreference element" primary="true"/>
   <t>
      This element gives a mapping between the anchor of a reference and a name that will be displayed instead.
      This allows authors to display more mnemonic anchor names for automatically included references.
      The mapping in this element only applies to &lt;<x:ref>xref</x:ref>&gt; elements whose format is "default".
      For example, if the reference uses the anchor "RFC6949", the following would cause that anchor in the body
      of displayed documents to be "RFC-dev":
<figure>
         <artwork type="example" x:lang="">
&lt;displayreference target="RFC6949" to="RFC-dev"/&gt;
</artwork>
      </figure>
   </t>
   <t>
     If a reference section is sorted, this element changes the sort order.
   </t>
   <t>
     It is expected that this element will only be valid in input documents. It will likely be removed by prep
     tools when preparing a final version after those tools have replaced all of the associated anchors, targets, and "derivedContent"
     attributes.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>back</x:ref>&gt; (<xref target="element.back"/>).</t>
   <t anchor="element.displayreference.contents"><!--AG-->
      <xref format="none" target="grammar.displayreference">Content model</xref>: this element does not have any contents.</t>

   <!--displayreference/@target-->
   <section anchor="element.displayreference.attribute.target" toc="exclude">
      <name>"target" Attribute <em> (Mandatory)</em>
      </name>
      <iref item="Attributes" subitem="target"/>
      <iref item="displayreference element" subitem="target attribute"/>
      <iref item="target attribute" subitem="in displayreference element"/>
      <t>
         This attribute must be the name of an anchor in a &lt;<x:ref>reference</x:ref>&gt; or &lt;<x:ref>referencegroup</x:ref>&gt; element.
      </t>
   </section>

   <!--displayreference/@to-->
   <section anchor="element.displayreference.attribute.to" toc="exclude">
      <name>"to" Attribute <em> (Mandatory)</em>
      </name>
      <iref item="Attributes" subitem="to"/>
      <iref item="displayreference element" subitem="to attribute"/>
      <iref item="to attribute" subitem="in displayreference element"/>
      <t>
        This attribute is a name that will be displayed as the anchor instead of the anchor that is given
        in the &lt;<x:ref>reference</x:ref>&gt; element. The string given must start with one of the following
        characters: 0-9, a-z, or A-Z. The other characters in the string must be 0-9, a-z, A-Z, "-", ".", or "_".
      </t>
   </section>
</section>

<!--dl-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.dl">
   <name>
      <tt>&lt;dl&gt;</tt>
   </name>
   <x:anchor-alias value="dl"/>
   <iref item="Elements" subitem="dl" primary="true"/>
   <iref item="dl element" primary="true"/>
   <t>
      A definition list. Each entry has a pair of elements: a term (&lt;<x:ref>dt</x:ref>&gt;) and
      a definition (&lt;<x:ref>dd</x:ref>&gt;).
      (This is slightly different and simpler than the model used in HTML, which allows for multiple terms for
      a single definition.)
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>abstract</x:ref>&gt; (<xref target="element.abstract"/>), &lt;<x:ref>aside</x:ref>&gt; (<xref target="element.aside"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>note</x:ref>&gt; (<xref target="element.note"/>), &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), and &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>).</t>
   <t anchor="element.dl.contents"><!--AG-->
      <xref format="none" target="grammar.dl">Content model</xref>:
    </t>
   <t><!--AG-->
    One or more sequences of:
  </t>
   <ol><!--AG-->
        
      <li><!--AG-->
         <iref item="Elements" subitem="dt"/>
         <iref item="dt element" subitem="inside dl"/>One &lt;<x:ref>dt</x:ref>&gt; element</li>
        
      <li><!--AG-->
         <iref item="Elements" subitem="dd"/>
         <iref item="dd element" subitem="inside dl"/>One &lt;<x:ref>dd</x:ref>&gt; element</li>
      
   </ol>

   <!--dl/@anchor-->
   <section anchor="element.dl.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="dl element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in dl element"/>
      <t>
        Document-wide unique identifier for the list.
      </t>
   </section>

   <!--dl/@hanging-->
   <section anchor="element.dl.attribute.hanging" toc="exclude">
      <name>"hanging" Attribute</name>
      <iref item="Attributes" subitem="hanging"/>
      <iref item="dl element" subitem="hanging attribute"/>
      <iref item="hanging attribute" subitem="in dl element"/>
      <t>
         The "hanging" attribute defines whether or not the term appears on the same line as the definition.
         hanging="true" indicates that the term is to the left of the definition, while hanging="false"
         indicates that the term will be on a separate line.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"false"</li>
         <li>"true" (default)</li>
      </ul>
   </section>

   <!--dl/@spacing-->
   <section anchor="element.dl.attribute.spacing" toc="exclude">
      <name>"spacing" Attribute</name>
      <iref item="Attributes" subitem="spacing"/>
      <iref item="dl element" subitem="spacing attribute"/>
      <iref item="spacing attribute" subitem="in dl element"/>
      <t>
         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.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"normal" (default)</li>
         <li>"compact"</li>
      </ul>
   </section>
</section>

<!--dt-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.dt">
   <name>
      <tt>&lt;dt&gt;</tt>
   </name>
   <x:anchor-alias value="dt"/>
   <iref item="Elements" subitem="dt" primary="true"/>
   <iref item="dt element" primary="true"/>
   <t>
      The term being defined in a definition list.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>dl</x:ref>&gt; (<xref target="element.dl"/>).</t>
   <t anchor="element.dt.contents"><!--AG-->
      <xref format="none" target="grammar.dt">Content model</xref>:
    </t>
   <t><!--AG-->In any order:</t>
   <ul><!--AG-->
      <li><!--AG-->Text</li>
      <li><!--AG-->
         <iref item="Elements" subitem="bcp14"/>
         <iref item="bcp14 element" subitem="inside dt"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="cref"/>
         <iref item="cref element" subitem="inside dt"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="em"/>
         <iref item="em element" subitem="inside dt"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="eref"/>
         <iref item="eref element" subitem="inside dt"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="iref"/>
         <iref item="iref element" subitem="inside dt"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="relref"/>
         <iref item="relref element" subitem="inside dt"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="strong"/>
         <iref item="strong element" subitem="inside dt"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sub"/>
         <iref item="sub element" subitem="inside dt"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sup"/>
         <iref item="sup element" subitem="inside dt"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="tt"/>
         <iref item="tt element" subitem="inside dt"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="xref"/>
         <iref item="xref element" subitem="inside dt"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
   </ul>

   <!--dt/@anchor-->
   <section anchor="element.dt.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="dt element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in dt element"/>
      <t>
        Document-wide unique identifier for this term.
      </t>
   </section>
</section>

<!--em-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.em">
   <name>
      <tt>&lt;em&gt;</tt>
   </name>
   <x:anchor-alias value="em"/>
   <iref item="Elements" subitem="em" primary="true"/>
   <iref item="em element" primary="true"/>
   <t>
        Indicates text that is semantically emphasized. Text enclosed within this element will be displayed as italic after processing.
        This element can be combined with other character formatting elements, and the
        formatting will be additive.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>annotation</x:ref>&gt; (<xref target="element.annotation"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>cref</x:ref>&gt; (<xref target="element.cref"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>dt</x:ref>&gt; (<xref target="element.dt"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>preamble</x:ref>&gt; (<xref target="element.preamble"/>), &lt;<x:ref>refcontent</x:ref>&gt; (<xref target="element.refcontent"/>), &lt;<x:ref>strong</x:ref>&gt; (<xref target="element.strong"/>), &lt;<x:ref>sub</x:ref>&gt; (<xref target="element.sub"/>), &lt;<x:ref>sup</x:ref>&gt; (<xref target="element.sup"/>), &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>), and &lt;<x:ref>tt</x:ref>&gt; (<xref target="element.tt"/>).</t>
   <t anchor="element.em.contents"><!--AG-->
      <xref format="none" target="grammar.em">Content model</xref>:
    </t>
   <t><!--AG-->In any order:</t>
   <ul><!--AG-->
      <li><!--AG-->Text</li>
      <li><!--AG-->
         <iref item="Elements" subitem="bcp14"/>
         <iref item="bcp14 element" subitem="inside em"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="cref"/>
         <iref item="cref element" subitem="inside em"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="eref"/>
         <iref item="eref element" subitem="inside em"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="iref"/>
         <iref item="iref element" subitem="inside em"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="relref"/>
         <iref item="relref element" subitem="inside em"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="strong"/>
         <iref item="strong element" subitem="inside em"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sub"/>
         <iref item="sub element" subitem="inside em"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sup"/>
         <iref item="sup element" subitem="inside em"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="tt"/>
         <iref item="tt element" subitem="inside em"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="xref"/>
         <iref item="xref element" subitem="inside em"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
   </ul>
</section>

<!--email-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.email">
   <name>
      <tt>&lt;email&gt;</tt>
   </name>
   <x:anchor-alias value="email"/>
   <iref item="Elements" subitem="email" primary="true"/>
   <iref item="email element" primary="true"/>
   <t>
      Provides an email address.
   </t>
   <t>
      The value is expected to be the addr-spec defined in <xref target="RFC6068" x:fmt="of" x:sec="2"/>.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>address</x:ref>&gt; (<xref target="element.address"/>).</t>
   <t anchor="element.email.contents"><!--AG-->
      <xref format="none" target="grammar.email">Content model</xref>: only text content.</t>

   <!--email/@ascii-->
   <section anchor="element.email.attribute.ascii" toc="exclude">
      <name>"ascii" Attribute</name>
      <iref item="Attributes" subitem="ascii"/>
      <iref item="email element" subitem="ascii attribute"/>
      <iref item="ascii attribute" subitem="in email element"/>
      <t>
         The ASCII equivalent of the author's email address. This is only used if the email address has
         any internationalized components.
      </t>
   </section>
</section>

<!--eref-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.eref">
   <name>
      <tt>&lt;eref&gt;</tt>
   </name>
   <x:anchor-alias value="eref"/>
   <iref item="Elements" subitem="eref" primary="true"/>
   <iref item="eref element" primary="true"/>
   <t>
      Represents an "external" link (as specified in the "target" attribute).
      This is useful for embedding URIs in the body of a document.
   </t>
   <t>
      If the &lt;eref&gt; element has non-empty text content, formatters should use the content as the displayed text that is linked.
      Otherwise, the formatter should use the value of the "target" attribute as the displayed text.
      Formatters will link the displayed text to the value of the "target" attribute in a manner appropriate for the output format.
   </t>
   <t>
      For example, with an input of:
<figure>
         <artwork type="example" x:lang="xml">
      This is described at
      &lt;eref target="http://www.example.com/reports/r12.html"/&gt;.
</artwork>
      </figure>
   </t>
   <t>
      An HTML formatter might generate:
<figure>
         <artwork type="example" x:lang="html">
      This is described at
      &lt;a href="http://www.example.com/reports/r12.html"&gt;
      http://www.example.com/reports/r12.html&lt;/a&gt;.
</artwork>
      </figure>
   </t>
   <t>
      With an input of:
<figure>
         <artwork type="example" x:lang="xml">
      This is described
      &lt;eref target="http://www.example.com/reports/r12.html"&gt;
      in this interesting report&lt;/eref&gt;.
</artwork>
      </figure>
   </t>
   <t>
      An HTML formatter might generate:
<figure>
         <artwork type="example" x:lang="html">
      This is described
      &lt;a href="http://www.example.com/reports/r12.html"&gt;
      in this interesting report&lt;/a&gt;.
</artwork>
      </figure>
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>annotation</x:ref>&gt; (<xref target="element.annotation"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>c</x:ref>&gt; (<xref target="element.c"/>), &lt;<x:ref>cref</x:ref>&gt; (<xref target="element.cref"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>dt</x:ref>&gt; (<xref target="element.dt"/>), &lt;<x:ref>em</x:ref>&gt; (<xref target="element.em"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>name</x:ref>&gt; (<xref target="element.name"/>), &lt;<x:ref>postamble</x:ref>&gt; (<xref target="element.postamble"/>), &lt;<x:ref>preamble</x:ref>&gt; (<xref target="element.preamble"/>), &lt;<x:ref>strong</x:ref>&gt; (<xref target="element.strong"/>), &lt;<x:ref>sub</x:ref>&gt; (<xref target="element.sub"/>), &lt;<x:ref>sup</x:ref>&gt; (<xref target="element.sup"/>), &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>), &lt;<x:ref>tt</x:ref>&gt; (<xref target="element.tt"/>), and &lt;<x:ref>ttcol</x:ref>&gt; (<xref target="element.ttcol"/>).</t>
   <t anchor="element.eref.contents"><!--AG-->
      <xref format="none" target="grammar.eref">Content model</xref>: only text content.</t>

   <!--eref/@target-->
   <section anchor="element.eref.attribute.target" toc="exclude">
      <name>"target" Attribute <em> (Mandatory)</em>
      </name>
      <iref item="Attributes" subitem="target"/>
      <iref item="eref element" subitem="target attribute"/>
      <iref item="target attribute" subitem="in eref element"/>
      <t>
         URI of the link target <xref target="RFC3986"/>.
         This must begin with a scheme name (such as "https://") and thus not be relative to the URL of the current document.
         </t>
   </section>
</section>

<!--figure-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.figure">
   <name>
      <tt>&lt;figure&gt;</tt>
   </name>
   <x:anchor-alias value="figure"/>
   <iref item="Elements" subitem="figure" primary="true"/>
   <iref item="figure element" primary="true"/>
   <t>
      Contains a figure with a caption with the figure number.
      If the element contains a &lt;<x:ref>name</x:ref>&gt; element, the caption will also show that name.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>aside</x:ref>&gt; (<xref target="element.aside"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), and &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>).</t>
   <t anchor="element.figure.contents"><!--AG-->
      <xref format="none" target="grammar.figure">Content model</xref>:</t>
   <t><!--AG-->In this order:</t>
   <ol><!--AG-->
        
      <li><!--AG-->
         <iref item="Elements" subitem="name"/>
         <iref item="name element" subitem="inside figure"/>One optional &lt;<x:ref>name</x:ref>&gt; element (<xref target="element.name"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="iref"/>
         <iref item="iref element" subitem="inside figure"/>Optional &lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="preamble"/>
         <iref item="preamble element" subitem="inside figure"/>One optional &lt;<x:ref>preamble</x:ref>&gt; element (<xref target="element.preamble"/>)</li>
      
      <li><!--AG-->
         <t>In any order, but at least one of:</t>
         <ul><!--AG-->
            <li><!--AG-->
               <iref item="Elements" subitem="artwork"/>
               <iref item="artwork element" subitem="inside figure"/>&lt;<x:ref>artwork</x:ref>&gt; elements (<xref target="element.artwork"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sourcecode"/>
               <iref item="sourcecode element" subitem="inside figure"/>&lt;<x:ref>sourcecode</x:ref>&gt; elements (<xref target="element.sourcecode"/>)</li>
         </ul>
      </li>
        
      <li><!--AG-->
         <iref item="Elements" subitem="postamble"/>
         <iref item="postamble element" subitem="inside figure"/>One optional &lt;<x:ref>postamble</x:ref>&gt; element (<xref target="element.postamble"/>)</li>
      
   </ol>

   <!--figure/@align-->
   <section anchor="element.figure.attribute.align" toc="exclude">
      <name>"align" Attribute</name>
      <iref item="Attributes" subitem="align"/>
      <iref item="figure element" subitem="align attribute"/>
      <iref item="align attribute" subitem="in figure element"/>
      <t>
          Deprecated.
      </t>
      <t> 
          Note: does not affect title or &lt;<x:ref>artwork</x:ref>&gt; alignment.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"left" (default)</li>
         <li>"center"</li>
         <li>"right"</li>
      </ul>
   </section>

   <!--figure/@alt-->
   <section anchor="element.figure.attribute.alt" toc="exclude">
      <name>"alt" Attribute</name>
      <iref item="Attributes" subitem="alt"/>
      <iref item="figure element" subitem="alt attribute"/>
      <iref item="alt attribute" subitem="in figure element"/>
      <t>
         Deprecated. If the goal is to provide a single URI for
         a reference, use the "target" attribute in &lt;<x:ref>reference</x:ref>&gt; instead.
       </t>
   </section>

   <!--figure/@anchor-->
   <section anchor="element.figure.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="figure element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in figure element"/>
      <t>
        Document-wide unique identifier for this figure.
      </t>
   </section>

   <!--figure/@height-->
   <section anchor="element.figure.attribute.height" toc="exclude">
      <name>"height" Attribute</name>
      <iref item="Attributes" subitem="height"/>
      <iref item="figure element" subitem="height attribute"/>
      <iref item="height attribute" subitem="in figure element"/>
      <t>
         Deprecated.
       </t>
   </section>

   <!--figure/@src-->
   <section anchor="element.figure.attribute.src" toc="exclude">
      <name>"src" Attribute</name>
      <iref item="Attributes" subitem="src"/>
      <iref item="figure element" subitem="src attribute"/>
      <iref item="src attribute" subitem="in figure element"/>
      <t>
         Deprecated.
       </t>
   </section>

   <!--figure/@suppress-title-->
   <section anchor="element.figure.attribute.suppress-title" toc="exclude">
      <name>"suppress-title" Attribute</name>
      <iref item="Attributes" subitem="suppress-title"/>
      <iref item="figure element" subitem="suppress-title attribute"/>
      <iref item="suppress-title attribute" subitem="in figure element"/>
      <t>
            Deprecated.
         </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"true"</li>
         <li>"false" (default)</li>
      </ul>
   </section>

   <!--figure/@title-->
   <section anchor="element.figure.attribute.title" toc="exclude">
      <name>"title" Attribute</name>
      <iref item="Attributes" subitem="title"/>
      <iref item="figure element" subitem="title attribute"/>
      <iref item="title attribute" subitem="in figure element"/>
      <t>
            Deprecated. Use &lt;<x:ref>name</x:ref>&gt; instead.
      </t>
   </section>

   <!--figure/@width-->
   <section anchor="element.figure.attribute.width" toc="exclude">
      <name>"width" Attribute</name>
      <iref item="Attributes" subitem="width"/>
      <iref item="figure element" subitem="width attribute"/>
      <iref item="width attribute" subitem="in figure element"/>
      <t>
         Deprecated.
       </t>
   </section>
</section>

<!--front-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.front">
   <name>
      <tt>&lt;front&gt;</tt>
   </name>
   <x:anchor-alias value="front"/>
   <iref item="Elements" subitem="front" primary="true"/>
   <iref item="front element" primary="true"/>
   <t>
      Represents the "front matter": metadata (such as author information),
      the Abstract, and additional notes.
   </t>
   <t>
      A &lt;<x:ref>front</x:ref>&gt; element may have more than one &lt;<x:ref>seriesInfo</x:ref>&gt; element.
      A &lt;<x:ref>seriesInfo</x:ref>&gt; element determines the document number (for RFCs)
      or name (for Internet-Drafts).
      Another &lt;<x:ref>seriesInfo</x:ref>&gt; element determines the "maturity level"
      (defined in <xref target="RFC2026"/>), using values of "std" for
      "Standards Track", "bcp" for "BCP", "info" for "Informational", "exp" for "Experimental", and
      "historic" for "Historic".
      The "name" attributes of those
      multiple &lt;<x:ref>seriesInfo</x:ref>&gt; elements interact as described in <xref target="element.seriesInfo"/>.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>reference</x:ref>&gt; (<xref target="element.reference"/>) and &lt;<x:ref>rfc</x:ref>&gt; (<xref target="element.rfc"/>).</t>
   <t anchor="element.front.contents"><!--AG-->
      <xref format="none" target="grammar.front">Content model</xref>:</t>
   <t><!--AG-->In this order:</t>
   <ol><!--AG-->
      <li><!--AG-->
         <iref item="Elements" subitem="title"/>
         <iref item="title element" subitem="inside front"/>One &lt;<x:ref>title</x:ref>&gt; element (<xref target="element.title"/>)</li>
        
      <li><!--AG-->
         <iref item="Elements" subitem="seriesInfo"/>
         <iref item="seriesInfo element" subitem="inside front"/>Optional &lt;<x:ref>seriesInfo</x:ref>&gt; elements (<xref target="element.seriesInfo"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="author"/>
         <iref item="author element" subitem="inside front"/>One or more &lt;<x:ref>author</x:ref>&gt; elements (<xref target="element.author"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="date"/>
         <iref item="date element" subitem="inside front"/>One optional &lt;<x:ref>date</x:ref>&gt; element (<xref target="element.date"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="area"/>
         <iref item="area element" subitem="inside front"/>Optional &lt;<x:ref>area</x:ref>&gt; elements (<xref target="element.area"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="workgroup"/>
         <iref item="workgroup element" subitem="inside front"/>Optional &lt;<x:ref>workgroup</x:ref>&gt; elements (<xref target="element.workgroup"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="keyword"/>
         <iref item="keyword element" subitem="inside front"/>Optional &lt;<x:ref>keyword</x:ref>&gt; elements (<xref target="element.keyword"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="abstract"/>
         <iref item="abstract element" subitem="inside front"/>One optional &lt;<x:ref>abstract</x:ref>&gt; element (<xref target="element.abstract"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="note"/>
         <iref item="note element" subitem="inside front"/>Optional &lt;<x:ref>note</x:ref>&gt; elements (<xref target="element.note"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="boilerplate"/>
         <iref item="boilerplate element" subitem="inside front"/>One optional &lt;<x:ref>boilerplate</x:ref>&gt; element (<xref target="element.boilerplate"/>)</li>
      
   </ol>
</section>

<!--iref-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.iref">
   <name>
      <tt>&lt;iref&gt;</tt>
   </name>
   <x:anchor-alias value="iref"/>
   <iref item="Elements" subitem="iref" primary="true"/>
   <iref item="iref element" primary="true"/>
   <t>
      Provides terms for the document's index.
   </t>
   <t>
      Index entries can be either regular entries (when just the "item"
      attribute is given) or nested entries (by specifying "subitem" as well),
      grouped under a regular entry.
   </t>
   <t>
      Index entries generally refer to the exact place where the &lt;iref&gt; element
      occurred. An exception is the occurrence as a child element of
      &lt;<x:ref>section</x:ref>&gt;, in which case the whole section is
      considered to be relevant for that index entry. In some formats, index
      entries of this type might be displayed as ranges.
   </t>
   <t>
      When the prep tool is creating index content, it collects the items in a case-sensitive fashion
      for both the item and subitem level.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>annotation</x:ref>&gt; (<xref target="element.annotation"/>), &lt;<x:ref>aside</x:ref>&gt; (<xref target="element.aside"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>c</x:ref>&gt; (<xref target="element.c"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>dt</x:ref>&gt; (<xref target="element.dt"/>), &lt;<x:ref>em</x:ref>&gt; (<xref target="element.em"/>), &lt;<x:ref>figure</x:ref>&gt; (<xref target="element.figure"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>postamble</x:ref>&gt; (<xref target="element.postamble"/>), &lt;<x:ref>preamble</x:ref>&gt; (<xref target="element.preamble"/>), &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>), &lt;<x:ref>strong</x:ref>&gt; (<xref target="element.strong"/>), &lt;<x:ref>sub</x:ref>&gt; (<xref target="element.sub"/>), &lt;<x:ref>sup</x:ref>&gt; (<xref target="element.sup"/>), &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>), &lt;<x:ref>table</x:ref>&gt; (<xref target="element.table"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>), &lt;<x:ref>tt</x:ref>&gt; (<xref target="element.tt"/>), and &lt;<x:ref>ttcol</x:ref>&gt; (<xref target="element.ttcol"/>).</t>
   <t anchor="element.iref.contents"><!--AG-->
      <xref format="none" target="grammar.iref">Content model</xref>: this element does not have any contents.</t>

   <!--iref/@item-->
   <section anchor="element.iref.attribute.item" toc="exclude">
      <name>"item" Attribute <em> (Mandatory)</em>
      </name>
      <iref item="Attributes" subitem="item"/>
      <iref item="iref element" subitem="item attribute"/>
      <iref item="item attribute" subitem="in iref element"/>
      <t>
            The item to include.
         </t>
   </section>

   <!--iref/@primary-->
   <section anchor="element.iref.attribute.primary" toc="exclude">
      <name>"primary" Attribute</name>
      <iref item="Attributes" subitem="primary"/>
      <iref item="iref element" subitem="primary attribute"/>
      <iref item="primary attribute" subitem="in iref element"/>
      <t>
            Setting this to "true" declares the occurrence as "primary",
            which might cause it to be highlighted in the index.
            There is no restriction on the number of occurrences that can be "primary".
         </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"true"</li>
         <li>"false" (default)</li>
      </ul>
   </section>

   <!--iref/@subitem-->
   <section anchor="element.iref.attribute.subitem" toc="exclude">
      <name>"subitem" Attribute</name>
      <iref item="Attributes" subitem="subitem"/>
      <iref item="iref element" subitem="subitem attribute"/>
      <iref item="subitem attribute" subitem="in iref element"/>
      <t>
            The subitem to include.
         </t>
   </section>
</section>

<!--keyword-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.keyword">
   <name>
      <tt>&lt;keyword&gt;</tt>
   </name>
   <x:anchor-alias value="keyword"/>
   <iref item="Elements" subitem="keyword" primary="true"/>
   <iref item="keyword element" primary="true"/>
   <t>
      Specifies a keyword applicable to the document.
   </t>
   <t>
      Note that each element should only contain a single keyword; for multiple keywords, the
      element can simply be repeated.
   </t>
   <t>
      Keywords are used both in the RFC Index and in the metadata of generated
      document representations.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>front</x:ref>&gt; (<xref target="element.front"/>).</t>
   <t anchor="element.keyword.contents"><!--AG-->
      <xref format="none" target="grammar.keyword">Content model</xref>: only text content.</t>
</section>

<!--li-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.li">
   <name>
      <tt>&lt;li&gt;</tt>
   </name>
   <x:anchor-alias value="li"/>
   <iref item="Elements" subitem="li" primary="true"/>
   <iref item="li element" primary="true"/>
   <t>
      A list element, used in &lt;<x:ref>ol</x:ref>&gt; and &lt;<x:ref>ul</x:ref>&gt;.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>ol</x:ref>&gt; (<xref target="element.ol"/>) and &lt;<x:ref>ul</x:ref>&gt; (<xref target="element.ul"/>).</t>
   <t anchor="element.li.contents"><!--AG-->
      <xref format="none" target="grammar.li">Content model</xref>:
    </t>
   <t><!--AG-->Either:</t>
   <ul empty="true"><!--AG-->
      <li><!--AG-->
         <t>In any order, but at least one of:</t>
         <ul><!--AG-->
            <li><!--AG-->
               <iref item="Elements" subitem="artwork"/>
               <iref item="artwork element" subitem="inside li"/>&lt;<x:ref>artwork</x:ref>&gt; elements (<xref target="element.artwork"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="dl"/>
               <iref item="dl element" subitem="inside li"/>&lt;<x:ref>dl</x:ref>&gt; elements (<xref target="element.dl"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="figure"/>
               <iref item="figure element" subitem="inside li"/>&lt;<x:ref>figure</x:ref>&gt; elements (<xref target="element.figure"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ol"/>
               <iref item="ol element" subitem="inside li"/>&lt;<x:ref>ol</x:ref>&gt; elements (<xref target="element.ol"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sourcecode"/>
               <iref item="sourcecode element" subitem="inside li"/>&lt;<x:ref>sourcecode</x:ref>&gt; elements (<xref target="element.sourcecode"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="t"/>
               <iref item="t element" subitem="inside li"/>&lt;<x:ref>t</x:ref>&gt; elements (<xref target="element.t"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ul"/>
               <iref item="ul element" subitem="inside li"/>&lt;<x:ref>ul</x:ref>&gt; elements (<xref target="element.ul"/>)</li>
         </ul>
      </li>
   </ul>
   <t><!--AG-->Or:</t>
   <ul empty="true"><!--AG-->
      <li><!--AG-->
         <t>In any order, but at least one of:</t>
         <ul><!--AG-->
            <li><!--AG-->Text</li>
            <li><!--AG-->
               <iref item="Elements" subitem="bcp14"/>
               <iref item="bcp14 element" subitem="inside li"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="cref"/>
               <iref item="cref element" subitem="inside li"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="em"/>
               <iref item="em element" subitem="inside li"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="eref"/>
               <iref item="eref element" subitem="inside li"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="iref"/>
               <iref item="iref element" subitem="inside li"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="relref"/>
               <iref item="relref element" subitem="inside li"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="strong"/>
               <iref item="strong element" subitem="inside li"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sub"/>
               <iref item="sub element" subitem="inside li"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sup"/>
               <iref item="sup element" subitem="inside li"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="tt"/>
               <iref item="tt element" subitem="inside li"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="xref"/>
               <iref item="xref element" subitem="inside li"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
         </ul>
      </li>
   </ul>

   <!--li/@anchor-->
   <section anchor="element.li.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="li element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in li element"/>
      <t>
        Document-wide unique identifier for this list item.
      </t>
   </section>
</section>

<!--link-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.link">
   <name>
      <tt>&lt;link&gt;</tt>
   </name>
   <x:anchor-alias value="link"/>
   <iref item="Elements" subitem="link" primary="true"/>
   <iref item="link element" primary="true"/>
   <t>
      A link to an external document that is related to the RFC.
   </t>
   <t>
      The following are the supported types of external documents that can be pointed to in
      a &lt;link&gt; element:
         <list style="symbols">
         <t>
               The current International Standard Serial Number (ISSN) for the RFC Series.
               The value for the "rel" attribute is "item".
               The link should use the form "urn:issn:".
            </t>
         <t>
               The Digital Object Identifier (DOI) for this document.
               The value for the "rel" attribute is "describedBy".
               The link should use the form specified in <xref target="RFC7669"/>;
               this is expected to change in the future.
            </t>
         <t>
               The Internet-Draft that was submitted to the RFC Editor to become the published RFC.
               The value for the "rel" attribute is "convertedFrom".
               The link should be to an IETF-controlled web site that retains copies of Internet-Drafts.
            </t>
         <t>
               A representation of the document offered by the document author.
               The value for the "rel" attribute is "alternate".
               The link can be to a personally run web site.
            </t>
      </list>
   </t>
   <t>
        In RFC production mode, the prep tool needs to check the values for &lt;link&gt; before an RFC is published.
        In draft production mode, the prep tool might remove some &lt;link&gt; elements during the draft submission process.
      </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>rfc</x:ref>&gt; (<xref target="element.rfc"/>).</t>
   <t anchor="element.link.contents"><!--AG-->
      <xref format="none" target="grammar.link">Content model</xref>: this element does not have any contents.</t>

   <!--link/@href-->
   <section anchor="element.link.attribute.href" toc="exclude">
      <name>"href" Attribute <em> (Mandatory)</em>
      </name>
      <iref item="Attributes" subitem="href"/>
      <iref item="link element" subitem="href attribute"/>
      <iref item="href attribute" subitem="in link element"/>
      <t>
         The URI of the external document.
      </t>
   </section>

   <!--link/@rel-->
   <section anchor="element.link.attribute.rel" toc="exclude">
      <name>"rel" Attribute</name>
      <iref item="Attributes" subitem="rel"/>
      <iref item="link element" subitem="rel attribute"/>
      <iref item="rel attribute" subitem="in link element"/>
      <t>
         The relationship of the external document to this one. The relationships are taken from
         the "Link Relations" registry maintained by IANA <xref target="LINKRELATIONS"/>.
       </t>
   </section>
</section>

<!--middle-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.middle">
   <name>
      <tt>&lt;middle&gt;</tt>
   </name>
   <x:anchor-alias value="middle"/>
   <iref item="Elements" subitem="middle" primary="true"/>
   <iref item="middle element" primary="true"/>
   <t>
      Represents the main content of the document.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>rfc</x:ref>&gt; (<xref target="element.rfc"/>).</t>
   <t anchor="element.middle.contents"><!--AG-->
      <xref format="none" target="grammar.middle">Content model</xref>:
    </t>
        
   <t><!--AG-->
      <iref item="Elements" subitem="section"/>
      <iref item="section element" subitem="inside middle"/>One or more &lt;<x:ref>section</x:ref>&gt; elements (<xref target="element.section"/>)</t>
      
</section>

<!--name-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.name">
   <name>
      <tt>&lt;name&gt;</tt>
   </name>
   <x:anchor-alias value="name"/>
   <iref item="Elements" subitem="name" primary="true"/>
   <iref item="name element" primary="true"/>
   <t>
      The name of the section, note, figure, or texttable. This name can
      indicate markup of flowing text (for example, including references or
      making some characters use a fixed-width font).
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>figure</x:ref>&gt; (<xref target="element.figure"/>), &lt;<x:ref>note</x:ref>&gt; (<xref target="element.note"/>), &lt;<x:ref>references</x:ref>&gt; (<xref target="element.references"/>), &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>), &lt;<x:ref>table</x:ref>&gt; (<xref target="element.table"/>), and &lt;<x:ref>texttable</x:ref>&gt; (<xref target="element.texttable"/>).</t>
   <t anchor="element.name.contents"><!--AG-->
      <xref format="none" target="grammar.name">Content model</xref>:
    </t>
   <t><!--AG-->In any order:</t>
   <ul><!--AG-->
      <li><!--AG-->Text</li>
      <li><!--AG-->
         <iref item="Elements" subitem="cref"/>
         <iref item="cref element" subitem="inside name"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="eref"/>
         <iref item="eref element" subitem="inside name"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="relref"/>
         <iref item="relref element" subitem="inside name"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="tt"/>
         <iref item="tt element" subitem="inside name"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="xref"/>
         <iref item="xref element" subitem="inside name"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
   </ul>
</section>

<!--note-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.note">
   <name>
      <tt>&lt;note&gt;</tt>
   </name>
   <x:anchor-alias value="note"/>
   <iref item="Elements" subitem="note" primary="true"/>
   <iref item="note element" primary="true"/>
   <t>
      Creates an unnumbered, titled block of text that appears after the Abstract.
   </t>
   <t>
      It is usually used for additional information to reviewers (Working
      Group information, mailing list, ...) or for additional publication
      information such as "IESG Notes".
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>front</x:ref>&gt; (<xref target="element.front"/>).</t>
   <t anchor="element.note.contents"><!--AG-->
      <xref format="none" target="grammar.note">Content model</xref>:</t>
   <t><!--AG-->In this order:</t>
   <ol><!--AG-->
        
      <li><!--AG-->
         <iref item="Elements" subitem="name"/>
         <iref item="name element" subitem="inside note"/>One optional &lt;<x:ref>name</x:ref>&gt; element (<xref target="element.name"/>)</li>
      
      <li><!--AG-->
         <t>In any order, but at least one of:</t>
         <ul><!--AG-->
            <li><!--AG-->
               <iref item="Elements" subitem="dl"/>
               <iref item="dl element" subitem="inside note"/>&lt;<x:ref>dl</x:ref>&gt; elements (<xref target="element.dl"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ol"/>
               <iref item="ol element" subitem="inside note"/>&lt;<x:ref>ol</x:ref>&gt; elements (<xref target="element.ol"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="t"/>
               <iref item="t element" subitem="inside note"/>&lt;<x:ref>t</x:ref>&gt; elements (<xref target="element.t"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ul"/>
               <iref item="ul element" subitem="inside note"/>&lt;<x:ref>ul</x:ref>&gt; elements (<xref target="element.ul"/>)</li>
         </ul>
      </li>
   </ol>

   <!--note/@removeInRFC-->
   <section anchor="element.note.attribute.removeInRFC" toc="exclude">
      <name>"removeInRFC" Attribute</name>
      <iref item="Attributes" subitem="removeInRFC"/>
      <iref item="note element" subitem="removeInRFC attribute"/>
      <iref item="removeInRFC attribute" subitem="in note element"/>
      <t>
         If set to "true", this note is marked in the prep tool with text indicating that it should be
         removed before the document is published as an RFC.
         That text will be "This note is to be removed before publishing as an RFC."
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"true"</li>
         <li>"false" (default)</li>
      </ul>
   </section>

   <!--note/@title-->
   <section anchor="element.note.attribute.title" toc="exclude">
      <name>"title" Attribute</name>
      <iref item="Attributes" subitem="title"/>
      <iref item="note element" subitem="title attribute"/>
      <iref item="title attribute" subitem="in note element"/>
      <t>
            Deprecated. Use &lt;<x:ref>name</x:ref>&gt; instead.
         </t>
   </section>
</section>

<!--ol-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.ol">
   <name>
      <tt>&lt;ol&gt;</tt>
   </name>
   <x:anchor-alias value="ol"/>
   <iref item="Elements" subitem="ol" primary="true"/>
   <iref item="ol element" primary="true"/>
   <t>
      An ordered list. The labels on the items will be either a number or a letter, depending
      on the value of the style attribute. 
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>abstract</x:ref>&gt; (<xref target="element.abstract"/>), &lt;<x:ref>aside</x:ref>&gt; (<xref target="element.aside"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>note</x:ref>&gt; (<xref target="element.note"/>), &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), and &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>).</t>
   <t anchor="element.ol.contents"><!--AG-->
      <xref format="none" target="grammar.ol">Content model</xref>:
    </t>
        
   <t><!--AG-->
      <iref item="Elements" subitem="li"/>
      <iref item="li element" subitem="inside ol"/>One or more &lt;<x:ref>li</x:ref>&gt; elements (<xref target="element.li"/>)</t>
      

   <!--ol/@anchor-->
   <section anchor="element.ol.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="ol element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in ol element"/>
      <t>
        Document-wide unique identifier for the list.
      </t>
   </section>

   <!--ol/@group-->
   <section anchor="element.ol.attribute.group" toc="exclude">
      <name>"group" Attribute</name>
      <iref item="Attributes" subitem="group"/>
      <iref item="ol element" subitem="group attribute"/>
      <iref item="group attribute" subitem="in ol element"/>
      <t>
         When the prep tool sees an &lt;ol&gt; element with a "group" attribute that has already been seen,
         it continues the numbering of the list from where the previous list with the same
         group name left off.
         If an &lt;ol&gt; element has both a "group" attribute and a "start" attribute, the group's
         numbering is reset to the given start value.
      </t>
   </section>

   <!--ol/@spacing-->
   <section anchor="element.ol.attribute.spacing" toc="exclude">
      <name>"spacing" Attribute</name>
      <iref item="Attributes" subitem="spacing"/>
      <iref item="ol element" subitem="spacing attribute"/>
      <iref item="spacing attribute" subitem="in ol element"/>
      <t>
         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.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"normal" (default)</li>
         <li>"compact"</li>
      </ul>
   </section>

   <!--ol/@start-->
   <section anchor="element.ol.attribute.start" toc="exclude">
      <name>"start" Attribute</name>
      <iref item="Attributes" subitem="start"/>
      <iref item="ol element" subitem="start attribute"/>
      <iref item="start attribute" subitem="in ol element"/>
      <t>
         The ordinal value at which to start the list. This defaults to "1" and must be an integer of 0 or greater.
      </t>
   </section>

   <!--ol/@type-->
   <section anchor="element.ol.attribute.type" toc="exclude">
      <name>"type" Attribute</name>
      <iref item="Attributes" subitem="type"/>
      <iref item="ol element" subitem="type attribute"/>
      <iref item="type attribute" subitem="in ol element"/>
      <t>
         The type of the labels on list items. If the length of the type value is 1, the
         meaning is the same as it is for HTML:
         <list style="hanging">
            <t hangText="a">Lowercase letters (a, b, c, ...)</t>
            <t hangText="A">Uppercase letters (A, B, C, ...)</t>
            <t hangText="1">Decimal numbers (1, 2, 3, ...)</t>
            <t hangText="i">Lowercase Roman numerals (i, ii, iii, ...)</t>
            <t hangText="I">Uppercase Roman numerals (I, II, III, ...)</t>
         </list>
         For types "a" and "A", after the 26th entry, the numbering starts at "aa"/"AA", then
         "ab"/"AB", and so on.
      </t>
      <t>
        If the length of the type value is greater than 1, the value must contain a
        percent-encoded indicator and other text.
        The value is a free-form text that allows counter values to be
        inserted using a "percent-letter" format. For instance, "[REQ%d]"
        generates labels of the form "[REQ1]", where "%d" inserts the
        item number as a decimal number.
      </t>
      <t>
         The following formats are supported:
         <list style="hanging">
            <t hangText="%c">Lowercase letters (a, b, c, ...)</t>
            <t hangText="%C">Uppercase letters (A, B, C, ...)</t>
            <t hangText="%d">Decimal numbers (1, 2, 3, ...)</t>
            <t hangText="%i">Lowercase Roman numerals (i, ii, iii, ...)</t>
            <t hangText="%I">Uppercase Roman numerals (I, II, III, ...)</t>
            <t hangText="%%">Represents a percent sign</t>
         </list>
         Other formats are reserved for future use. Only one percent encoding other than "%%" is allowed in a type string.
       </t>
      <t>
        It is an error for the type string to be empty.
        For bulleted lists, use the &lt;<x:ref>ul</x:ref>&gt; element.
        For lists that have neither bullets nor numbers, use the &lt;<x:ref>ul</x:ref>&gt; element with the
        'empty="true"' attribute.
      </t>
      <t>
        If no type attribute is given, the default type is the same as "type='%d.'".
      </t>
   </section>
</section>

<!--organization-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.organization">
   <name>
      <tt>&lt;organization&gt;</tt>
   </name>
   <x:anchor-alias value="organization"/>
   <iref item="Elements" subitem="organization" primary="true"/>
   <iref item="organization element" primary="true"/>
   <t>
      Specifies the affiliation <xref target="RFC7322"/> of an author.
   </t>
   <t>
      This information appears both in the "Author's Address" section and
      on the front page (see <xref target="RFC7322"/> for more information).
      If the value is long, an abbreviated variant can be specified in the
      "abbrev" attribute.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>author</x:ref>&gt; (<xref target="element.author"/>).</t>
   <t anchor="element.organization.contents"><!--AG-->
      <xref format="none" target="grammar.organization">Content model</xref>: only text content.</t>

   <!--organization/@abbrev-->
   <section anchor="element.organization.attribute.abbrev" toc="exclude">
      <name>"abbrev" Attribute</name>
      <iref item="Attributes" subitem="abbrev"/>
      <iref item="organization element" subitem="abbrev attribute"/>
      <iref item="abbrev attribute" subitem="in organization element"/>
      <t>
            Abbreviated variant.
         </t>
   </section>

   <!--organization/@ascii-->
   <section anchor="element.organization.attribute.ascii" toc="exclude">
      <name>"ascii" Attribute</name>
      <iref item="Attributes" subitem="ascii"/>
      <iref item="organization element" subitem="ascii attribute"/>
      <iref item="ascii attribute" subitem="in organization element"/>
      <t>
         The ASCII equivalent of the organization's name.
      </t>
   </section>
</section>

<!--phone-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.phone">
   <name>
      <tt>&lt;phone&gt;</tt>
   </name>
   <x:anchor-alias value="phone"/>
   <iref item="Elements" subitem="phone" primary="true"/>
   <iref item="phone element" primary="true"/>
   <t>
      Represents a phone number.
   </t>
   <t>
      The value is expected to be the scheme-specific part of a "tel" URI
      (and so does not include the prefix "tel:"), using the "global-number-digits"
      syntax. See <xref target="RFC3966" x:fmt="of" x:sec="3"/> 
      for details.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>address</x:ref>&gt; (<xref target="element.address"/>).</t>
   <t anchor="element.phone.contents"><!--AG-->
      <xref format="none" target="grammar.phone">Content model</xref>: only text content.</t>
</section>

<!--postal-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.postal">
   <name>
      <tt>&lt;postal&gt;</tt>
   </name>
   <x:anchor-alias value="postal"/>
   <iref item="Elements" subitem="postal" primary="true"/>
   <iref item="postal element" primary="true"/>
   <t>
      Contains optional child elements providing postal information. These elements will be
      displayed in an order that is specific to formatters.
      A postal address can contain only a set of &lt;<x:ref>street</x:ref>&gt;, &lt;<x:ref>city</x:ref>&gt;,
      &lt;<x:ref>region</x:ref>&gt;, &lt;<x:ref>code</x:ref>&gt;, and &lt;<x:ref>country</x:ref>&gt;
      elements, or only an ordered set of &lt;<x:ref>postalLine</x:ref>&gt; elements, but not both.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>address</x:ref>&gt; (<xref target="element.address"/>).</t>
   <t anchor="element.postal.contents"><!--AG-->
      <xref format="none" target="grammar.postal">Content model</xref>:
    </t>
   <t><!--AG-->Either:</t>
   <ul empty="true"><!--AG-->
      <li><!--AG-->
         <t>In any order:</t>
         <ul><!--AG-->
            <li><!--AG-->
               <iref item="Elements" subitem="city"/>
               <iref item="city element" subitem="inside postal"/>&lt;<x:ref>city</x:ref>&gt; elements (<xref target="element.city"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="code"/>
               <iref item="code element" subitem="inside postal"/>&lt;<x:ref>code</x:ref>&gt; elements (<xref target="element.code"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="country"/>
               <iref item="country element" subitem="inside postal"/>&lt;<x:ref>country</x:ref>&gt; elements (<xref target="element.country"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="region"/>
               <iref item="region element" subitem="inside postal"/>&lt;<x:ref>region</x:ref>&gt; elements (<xref target="element.region"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="street"/>
               <iref item="street element" subitem="inside postal"/>&lt;<x:ref>street</x:ref>&gt; elements (<xref target="element.street"/>)</li>
         </ul>
      </li>
   </ul>
   <t><!--AG-->Or:</t>
   <ul empty="true"><!--AG-->
          
      <li><!--AG-->
         <iref item="Elements" subitem="postalLine"/>
         <iref item="postalLine element" subitem="inside postal"/>One or more &lt;<x:ref>postalLine</x:ref>&gt; elements (<xref target="element.postalLine"/>)</li>
        
   </ul>
</section>

<!--postalLine-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.postalLine">
   <name>
      <tt>&lt;postalLine&gt;</tt>
   </name>
   <x:anchor-alias value="postalLine"/>
   <iref item="Elements" subitem="postalLine" primary="true"/>
   <iref item="postalLine element" primary="true"/>
   <t>
      Represents one line of a postal address. When more than one &lt;postalLine&gt; is given, the prep tool
      emits them in the order given.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>postal</x:ref>&gt; (<xref target="element.postal"/>).</t>
   <t anchor="element.postalLine.contents"><!--AG-->
      <xref format="none" target="grammar.postalLine">Content model</xref>: only text content.</t>

   <!--postalLine/@ascii-->
   <section anchor="element.postalLine.attribute.ascii" toc="exclude">
      <name>"ascii" Attribute</name>
      <iref item="Attributes" subitem="ascii"/>
      <iref item="postalLine element" subitem="ascii attribute"/>
      <iref item="ascii attribute" subitem="in postalLine element"/>
      <t>
         The ASCII equivalent of the text in the address line.
      </t>
   </section>
</section>

<!--refcontent-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.refcontent">
   <name>
      <tt>&lt;refcontent&gt;</tt>
   </name>
   <x:anchor-alias value="refcontent"/>
   <iref item="Elements" subitem="refcontent" primary="true"/>
   <iref item="refcontent element" primary="true"/>
   <t>
      Text that should appear between the title and the date of a reference. The purpose
      of this element is to prevent the need to abuse &lt;<x:ref>seriesInfo</x:ref>&gt; to
      get such text in a reference.
   </t>
   <t>
     For example:
<figure>
         <artwork type="example" x:lang="">
&lt;reference anchor="April1"&gt;
  &lt;front&gt;
    &lt;title&gt;On Being A Fool&lt;/title&gt;
    &lt;author initials="K." surname="Phunny" fullname="Knot Phunny"/&gt;
    &lt;date year="2000" month="April"/&gt;
  &lt;/front&gt;
  &lt;refcontent&gt;Self-published pamphlet&lt;/refcontent&gt;
&lt;/reference&gt;
</artwork>
      </figure>
     would render as:
<figure>
         <artwork type="example">
   [April1]     Phunny, K., "On Being A Fool", Self-published
                pamphlet, April 2000.
</artwork>
      </figure>
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>reference</x:ref>&gt; (<xref target="element.reference"/>).</t>
   <t anchor="element.refcontent.contents"><!--AG-->
      <xref format="none" target="grammar.refcontent">Content model</xref>:
    </t>
   <t><!--AG-->In any order:</t>
   <ul><!--AG-->
      <li><!--AG-->Text</li>
      <li><!--AG-->
         <iref item="Elements" subitem="bcp14"/>
         <iref item="bcp14 element" subitem="inside refcontent"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="em"/>
         <iref item="em element" subitem="inside refcontent"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="strong"/>
         <iref item="strong element" subitem="inside refcontent"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sub"/>
         <iref item="sub element" subitem="inside refcontent"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sup"/>
         <iref item="sup element" subitem="inside refcontent"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="tt"/>
         <iref item="tt element" subitem="inside refcontent"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
   </ul>
</section>

<!--reference-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.reference">
   <name>
      <tt>&lt;reference&gt;</tt>
   </name>
   <x:anchor-alias value="reference"/>
   <iref item="Elements" subitem="reference" primary="true"/>
   <iref item="reference element" primary="true"/>
   <t>
      Represents a bibliographic reference.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>referencegroup</x:ref>&gt; (<xref target="element.referencegroup"/>) and &lt;<x:ref>references</x:ref>&gt; (<xref target="element.references"/>).</t>
   <t anchor="element.reference.contents"><!--AG-->
      <xref format="none" target="grammar.reference">Content model</xref>:</t>
   <t><!--AG-->In this order:</t>
   <ol><!--AG-->
      <li><!--AG-->
         <iref item="Elements" subitem="front"/>
         <iref item="front element" subitem="inside reference"/>One &lt;<x:ref>front</x:ref>&gt; element (<xref target="element.front"/>)</li>
      <li><!--AG-->
         <t>In any order:</t>
         <ul><!--AG-->
            <li><!--AG-->
               <iref item="Elements" subitem="annotation"/>
               <iref item="annotation element" subitem="inside reference"/>&lt;<x:ref>annotation</x:ref>&gt; elements (<xref target="element.annotation"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="format"/>
               <iref item="format element" subitem="inside reference"/>&lt;<x:ref>format</x:ref>&gt; elements (<xref target="element.format"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="refcontent"/>
               <iref item="refcontent element" subitem="inside reference"/>&lt;<x:ref>refcontent</x:ref>&gt; elements (<xref target="element.refcontent"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="seriesInfo"/>
               <iref item="seriesInfo element" subitem="inside reference"/>&lt;<x:ref>seriesInfo</x:ref>&gt; elements (<xref target="element.seriesInfo"/>; deprecated in this context)</li>
         </ul>
      </li>
   </ol>

   <!--reference/@anchor-->
   <section anchor="element.reference.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute <em> (Mandatory)</em>
      </name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="reference element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in reference element"/>
      <t>
        Document-wide unique identifier for this reference. Usually, this will
        be used both to "label" the reference in the "References" section and
        as an identifier in links to this reference entry.
      </t>
   </section>

   <!--reference/@quoteTitle-->
   <section anchor="element.reference.attribute.quoteTitle" toc="exclude">
      <name>"quoteTitle" Attribute</name>
      <iref item="Attributes" subitem="quoteTitle"/>
      <iref item="reference element" subitem="quoteTitle attribute"/>
      <iref item="quoteTitle attribute" subitem="in reference element"/>
      <t>
         Specifies whether or not the title in the reference should be quoted.
         This can be used to prevent quoting, such as on errata.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"true" (default)</li>
         <li>"false"</li>
      </ul>
   </section>

   <!--reference/@target-->
   <section anchor="element.reference.attribute.target" toc="exclude">
      <name>"target" Attribute</name>
      <iref item="Attributes" subitem="target"/>
      <iref item="reference element" subitem="target attribute"/>
      <iref item="target attribute" subitem="in reference element"/>
      <t>
            Holds the URI for the reference.
         </t>
   </section>
</section>

<!--referencegroup-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.referencegroup">
   <name>
      <tt>&lt;referencegroup&gt;</tt>
   </name>
   <x:anchor-alias value="referencegroup"/>
   <iref item="Elements" subitem="referencegroup" primary="true"/>
   <iref item="referencegroup element" primary="true"/>
   <t>
      Represents a list of bibliographic references that will be represented as a single reference.
      This is most often used to reference STDs and BCPs, where a single reference
      (such as "BCP 9") may encompass more than one RFC.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>references</x:ref>&gt; (<xref target="element.references"/>).</t>
   <t anchor="element.referencegroup.contents"><!--AG-->
      <xref format="none" target="grammar.referencegroup">Content model</xref>:
    </t>
        
   <t><!--AG-->
      <iref item="Elements" subitem="reference"/>
      <iref item="reference element" subitem="inside referencegroup"/>One or more &lt;<x:ref>reference</x:ref>&gt; elements (<xref target="element.reference"/>)</t>
      

   <!--referencegroup/@anchor-->
   <section anchor="element.referencegroup.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute <em> (Mandatory)</em>
      </name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="referencegroup element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in referencegroup element"/>
      <t>
        Document-wide unique identifier for this reference group. Usually, this will
        be used both to "label" the reference group in the "References" section and
        as an identifier in links to this reference entry.
      </t>
   </section>
</section>

<!--references-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.references">
   <name>
      <tt>&lt;references&gt;</tt>
   </name>
   <x:anchor-alias value="references"/>
   <iref item="Elements" subitem="references" primary="true"/>
   <iref item="references element" primary="true"/>
   <t>
      Contains a set of bibliographic references.
   </t>
   <t>
      In the early days of the RFC Series, there was only one "References" section per RFC. This convention
      was later changed to group references into two sets, "Normative" and "Informative",
      as described in <xref target="RFC7322"/>.
      This vocabulary supports the split with the &lt;<x:ref>name</x:ref>&gt; child element.
      In general, the title should be either "Normative References" or "Informative References".
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>back</x:ref>&gt; (<xref target="element.back"/>).</t>
   <t anchor="element.references.contents"><!--AG-->
      <xref format="none" target="grammar.references">Content model</xref>:</t>
   <t><!--AG-->In this order:</t>
   <ol><!--AG-->
        
      <li><!--AG-->
         <iref item="Elements" subitem="name"/>
         <iref item="name element" subitem="inside references"/>One optional &lt;<x:ref>name</x:ref>&gt; element (<xref target="element.name"/>)</li>
      
      <li><!--AG-->
         <t>In any order:</t>
         <ul><!--AG-->
            <li><!--AG-->
               <iref item="Elements" subitem="reference"/>
               <iref item="reference element" subitem="inside references"/>&lt;<x:ref>reference</x:ref>&gt; elements (<xref target="element.reference"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="referencegroup"/>
               <iref item="referencegroup element" subitem="inside references"/>&lt;<x:ref>referencegroup</x:ref>&gt; elements (<xref target="element.referencegroup"/>)</li>
         </ul>
      </li>
   </ol>

   <!--references/@anchor-->
   <section anchor="element.references.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="references element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in references element"/>
      <t>
         An optional user-supplied identifier for this set of references.
      </t>
   </section>

   <!--references/@title-->
   <section anchor="element.references.attribute.title" toc="exclude">
      <name>"title" Attribute</name>
      <iref item="Attributes" subitem="title"/>
      <iref item="references element" subitem="title attribute"/>
      <iref item="title attribute" subitem="in references element"/>
      <t>
         Deprecated. Use &lt;<x:ref>name</x:ref>&gt; instead.
      </t>
   </section>
</section>

<!--region-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.region">
   <name>
      <tt>&lt;region&gt;</tt>
   </name>
   <x:anchor-alias value="region"/>
   <iref item="Elements" subitem="region" primary="true"/>
   <iref item="region element" primary="true"/>
   <t>
      Provides the region name in a postal address.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>postal</x:ref>&gt; (<xref target="element.postal"/>).</t>
   <t anchor="element.region.contents"><!--AG-->
      <xref format="none" target="grammar.region">Content model</xref>: only text content.</t>

   <!--region/@ascii-->
   <section anchor="element.region.attribute.ascii" toc="exclude">
      <name>"ascii" Attribute</name>
      <iref item="Attributes" subitem="ascii"/>
      <iref item="region element" subitem="ascii attribute"/>
      <iref item="ascii attribute" subitem="in region element"/>
      <t>
         The ASCII equivalent of the region name.
      </t>
   </section>
</section>

<!--relref-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.relref">
   <name>
      <tt>&lt;relref&gt;</tt>
   </name>
   <x:anchor-alias value="relref"/>
   <iref item="Elements" subitem="relref" primary="true"/>
   <iref item="relref element" primary="true"/>
   <t>
      Represents a link to a specific part of a document that appears in a &lt;<x:ref>reference</x:ref>&gt; element.
      Formatters that have links (such as HTML and PDF) render &lt;relref&gt; elements as external hyperlinks
      to the specified part of the reference, creating the link target by combining the base URI from the
      &lt;<x:ref>reference</x:ref>&gt; element with the "relative" attribute from this element.
      The "target" attribute is required, and it must be the anchor of a &lt;<x:ref>reference</x:ref>&gt; element.
   </t>
   <t>   
      The "section" attribute is required, and the "relative" attribute is optional.
      If the reference is not an RFC or Internet-Draft that is in the v3 format, the element needs to have a "relative" attribute;
      in this case, the value of the "section" attribute is ignored.
   </t>
   <t>
      An example of the &lt;relref&gt; element with text content might be:
<figure>
         <artwork type="example" x:lang="xml">
      See
      &lt;relref section="2.3" target="RFC9999" displayFormat="bare"&gt;
      the protocol overview&lt;/relref&gt;
      for more information.
</artwork>
      </figure>
   </t>
   <t>
       An HTML formatter might generate:
<figure>
         <artwork type="example" x:lang="html">
      See 
      &lt;a href="http://www.rfc-editor.org/rfc/rfc9999.html#s-2.3"&gt;
      the protocol overview&lt;/a&gt;
      for more information.
</artwork>
      </figure>
   Note that the URL in the above example might be different when the RFC Editor deploys the v3 format.
   </t>
   <t/>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>annotation</x:ref>&gt; (<xref target="element.annotation"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>cref</x:ref>&gt; (<xref target="element.cref"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>dt</x:ref>&gt; (<xref target="element.dt"/>), &lt;<x:ref>em</x:ref>&gt; (<xref target="element.em"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>name</x:ref>&gt; (<xref target="element.name"/>), &lt;<x:ref>preamble</x:ref>&gt; (<xref target="element.preamble"/>), &lt;<x:ref>strong</x:ref>&gt; (<xref target="element.strong"/>), &lt;<x:ref>sub</x:ref>&gt; (<xref target="element.sub"/>), &lt;<x:ref>sup</x:ref>&gt; (<xref target="element.sup"/>), &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>), and &lt;<x:ref>tt</x:ref>&gt; (<xref target="element.tt"/>).</t>
   <t anchor="element.relref.contents"><!--AG-->
      <xref format="none" target="grammar.relref">Content model</xref>: only text content.</t>

   <!--relref/@displayFormat-->
   <section anchor="element.relref.attribute.displayFormat" toc="exclude">
      <name>"displayFormat" Attribute</name>
      <iref item="Attributes" subitem="displayFormat"/>
      <iref item="relref element" subitem="displayFormat attribute"/>
      <iref item="displayFormat attribute" subitem="in relref element"/>
      <t>
        This attribute is used to signal formatters what the desired format of the relative reference should be.
        Formatters for document types that have linking capability should wrap each part of the displayed text in hyperlinks.
        If there is content in the &lt;relref&gt; element, formatters will ignore the value of this attribute.
      </t>
      <t>
        "of"
        <list style="empty">
            <t>
            A formatter should display the relative reference as the word "Section" followed by a space, the contents of the "section" attribute
            followed by a space, the word "of", another space, and the value from the "target" attribute enclosed in square brackets.
            </t>
            <t>
            For example, with an input of:
<figure>
                  <artwork type="example" x:lang="xml">
      See
      &lt;relref section="2.3" target="RFC9999" displayFormat="of"/&gt;
      for an overview.
</artwork>
               </figure>
            </t>
            <t>
               An HTML formatter might generate:
<figure>
                  <artwork type="example" x:lang="html">
      See
      &lt;a href="http://www.rfc-editor.org/info/rfc9999#s-2.3"&gt;
      Section 2.3&lt;/a&gt; of
      [&lt;a href="#RFC9999"&gt;RFC9999&lt;/a&gt;]
      for an overview.
</artwork>
               </figure>
            </t>
            <t>
            Note that "displayFormat='of'" is the default for &lt;relref&gt;, so it does not need to be given in
            a &lt;relref&gt; element if that format is desired.
            </t>
         </list>
      </t>
      <t>
        "comma"
        <list style="empty">
            <t>
            A formatter should display the relative reference as the value from the "target" attribute enclosed in square brackets,
            a comma, a space, the word "Section" followed by a space, and the "section" attribute.
            </t>
            <t>
            For example, with an input of:
<figure>
                  <artwork type="example" x:lang="xml">
      See
      &lt;relref section="2.3" target="RFC9999" displayFormat="comma"/&gt;,
      for an overview.
</artwork>
               </figure>
            </t>
            <t>
               An HTML formatter might generate:
<figure>
                  <artwork type="example" x:lang="html">
      See
      [&lt;a href="#RFC9999"&gt;RFC9999&lt;/a&gt;], 
      &lt;a href="http://www.rfc-editor.org/info/rfc9999#s-2.3"&gt;
      Section 2.3&lt;/a&gt;, for an overview.
</artwork>
               </figure>
            </t>
         </list>
      </t>
      <t>
        "parens"
        <list style="empty">
            <t>
            A formatter should display the relative reference as the value from the "target" attribute enclosed in square brackets,
            a space, a left parenthesis, the word "Section" followed by a space, the "section" attribute, and a right parenthesis.
            </t>
            <t>
            For example, with an input of:
<figure>
                  <artwork type="example" x:lang="xml">
      See
      &lt;relref section="2.3" target="RFC9999" displayFormat="parens"/&gt;
      for an overview.
</artwork>
               </figure>
            </t>
            <t>
               An HTML formatter might generate:
<figure>
                  <artwork type="example" x:lang="html">
      See
      [&lt;a href="#RFC9999"&gt;RFC9999&lt;/a&gt;]
      (&lt;a href="http://www.rfc-editor.org/info/rfc9999#s-2.3"&gt; 
      Section 2.3&lt;/a&gt;)
      for an overview.
</artwork>
               </figure>
            </t>
         </list>
      </t>
      <t>
        "bare"
        <list style="empty">
            <t>
            A formatter should display the relative reference as the contents of the "section" attribute
            and nothing else. This is useful when there are multiple relative references to a single base reference.
            </t>
            <t>
            For example:
<figure>
                  <artwork type="example" x:lang="xml">
      See Sections
      &lt;relref section="2.3" target="RFC9999" displayFormat="bare"/&gt;
      and
      &lt;relref section="2.4" target="RFC9999" displayFormat="of"/&gt;
      for an overview.
</artwork>
               </figure>
            </t>
            <t>
               An HTML formatter might generate:
<figure>
                  <artwork type="example" x:lang="html">
      See Sections
      &lt;a href="http://www.rfc-editor.org/info/rfc9999#s-2.3"&gt;
      2.3&lt;/a&gt;
      and
      &lt;a href="http://www.rfc-editor.org/info/rfc9999#s-2.4"&gt;
      Section 2.4&lt;/a&gt; of
      [&lt;a href="#RFC9999"&gt;RFC9999&lt;/a&gt;]
      for an overview.
</artwork>
               </figure>
            </t>
         </list>
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"of" (default)</li>
         <li>"comma"</li>
         <li>"parens"</li>
         <li>"bare"</li>
      </ul>
   </section>

   <!--relref/@relative-->
   <section anchor="element.relref.attribute.relative" toc="exclude">
      <name>"relative" Attribute</name>
      <iref item="Attributes" subitem="relative"/>
      <iref item="relref element" subitem="relative attribute"/>
      <iref item="relative attribute" subitem="in relref element"/>
      <t>
         Specifies a relative reference from the URI in the target reference.
         This value must include whatever leading character is needed to create
         the relative reference; typically, this is "#" for HTML documents.
      </t>
   </section>

   <!--relref/@section-->
   <section anchor="element.relref.attribute.section" toc="exclude">
      <name>"section" Attribute <em> (Mandatory)</em>
      </name>
      <iref item="Attributes" subitem="section"/>
      <iref item="relref element" subitem="section attribute"/>
      <iref item="section attribute" subitem="in relref element"/>
      <t>
         Specifies a section of the target reference.
         If the reference is not an RFC or Internet-Draft in the v3 format, it is an error.
      </t>
   </section>

   <!--relref/@target-->
   <section anchor="element.relref.attribute.target" toc="exclude">
      <name>"target" Attribute <em> (Mandatory)</em>
      </name>
      <iref item="Attributes" subitem="target"/>
      <iref item="relref element" subitem="target attribute"/>
      <iref item="target attribute" subitem="in relref element"/>
      <t>
        The anchor of the reference for this element. If this value is not an anchor to a
        &lt;<x:ref>reference</x:ref>&gt; or &lt;<x:ref>referencegroup</x:ref>&gt; element, it is an error.
        If the reference at the target has no URI, it is an error.
      </t>
   </section>
</section>

<!--rfc-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.rfc">
   <name>
      <tt>&lt;rfc&gt;</tt>
   </name>
   <x:anchor-alias value="rfc"/>
   <iref item="Elements" subitem="rfc" primary="true"/>
   <iref item="rfc element" primary="true"/>
   <t>
      This is the root element of the xml2rfc vocabulary.
   </t>
   <t anchor="element.rfc.contents"><!--AG-->
      <xref format="none" target="grammar.rfc">Content model</xref>:</t>
   <t><!--AG-->In this order:</t>
   <ol><!--AG-->
        
      <li><!--AG-->
         <iref item="Elements" subitem="link"/>
         <iref item="link element" subitem="inside rfc"/>Optional &lt;<x:ref>link</x:ref>&gt; elements (<xref target="element.link"/>)</li>
      
      <li><!--AG-->
         <iref item="Elements" subitem="front"/>
         <iref item="front element" subitem="inside rfc"/>One &lt;<x:ref>front</x:ref>&gt; element (<xref target="element.front"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="middle"/>
         <iref item="middle element" subitem="inside rfc"/>One &lt;<x:ref>middle</x:ref>&gt; element (<xref target="element.middle"/>)</li>
        
      <li><!--AG-->
         <iref item="Elements" subitem="back"/>
         <iref item="back element" subitem="inside rfc"/>One optional &lt;<x:ref>back</x:ref>&gt; element (<xref target="element.back"/>)</li>
      
   </ol>

   <!--rfc/@category-->
   <section anchor="element.rfc.attribute.category" toc="exclude">
      <name>"category" Attribute</name>
      <iref item="Attributes" subitem="category"/>
      <iref item="rfc element" subitem="category attribute"/>
      <iref item="category attribute" subitem="in rfc element"/>
      <t>
            Deprecated; instead, use the "name" attribute in &lt;<x:ref>seriesInfo</x:ref>&gt;.
      </t>
   </section>

   <!--rfc/@consensus-->
   <section anchor="element.rfc.attribute.consensus" toc="exclude">
      <name>"consensus" Attribute</name>
      <iref item="Attributes" subitem="consensus"/>
      <iref item="rfc element" subitem="consensus attribute"/>
      <iref item="consensus attribute" subitem="in rfc element"/>
      <t>
            Affects the generated boilerplate. Note that the values of "no" and "yes" are deprecated and are
            replaced by "false" (the default) and "true".
      </t>
      <t>
            See <xref target="RFC7841"/> for more information.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"no"</li>
         <li>"yes"</li>
         <li>"false" (default)</li>
         <li>"true"</li>
      </ul>
   </section>

   <!--rfc/@docName-->
   <section anchor="element.rfc.attribute.docName" toc="exclude">
      <name>"docName" Attribute</name>
      <iref item="Attributes" subitem="docName"/>
      <iref item="rfc element" subitem="docName attribute"/>
      <iref item="docName attribute" subitem="in rfc element"/>
      <t>
            Deprecated; instead, use the "value" attribute in &lt;<x:ref>seriesInfo</x:ref>&gt;.
      </t>
   </section>

   <!--rfc/@indexInclude-->
   <section anchor="element.rfc.attribute.indexInclude" toc="exclude">
      <name>"indexInclude" Attribute</name>
      <iref item="Attributes" subitem="indexInclude"/>
      <iref item="rfc element" subitem="indexInclude attribute"/>
      <iref item="indexInclude attribute" subitem="in rfc element"/>
      <t>
         Specifies whether or not a formatter is requested to include an index in generated files.
         If the source file has no &lt;<x:ref>iref</x:ref>&gt; elements, an index is
         never generated. This option is useful for generating documents where the
         source document has &lt;<x:ref>iref</x:ref>&gt; elements but the author no longer
         wants an index. 
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"true" (default)</li>
         <li>"false"</li>
      </ul>
   </section>

   <!--rfc/@ipr-->
   <section anchor="element.rfc.attribute.ipr" toc="exclude">
      <name>"ipr" Attribute</name>
      <iref item="Attributes" subitem="ipr"/>
      <iref item="rfc element" subitem="ipr attribute"/>
      <iref item="ipr attribute" subitem="in rfc element"/>
      <t>
            Represents the Intellectual Property status of the document.
            See <xref target="attribute-ipr"/> for details.
         </t>
   </section>

   <!--rfc/@iprExtract-->
   <section anchor="element.rfc.attribute.iprExtract" toc="exclude">
      <name>"iprExtract" Attribute</name>
      <iref item="Attributes" subitem="iprExtract"/>
      <iref item="rfc element" subitem="iprExtract attribute"/>
      <iref item="iprExtract attribute" subitem="in rfc element"/>
      <t>
            Identifies a single section within the document for which extraction "as is"
            is explicitly allowed (only relevant for historic values of the "ipr"
            attribute).
      </t>
   </section>

   <!--rfc/@number-->
   <section anchor="element.rfc.attribute.number" toc="exclude">
      <name>"number" Attribute</name>
      <iref item="Attributes" subitem="number"/>
      <iref item="rfc element" subitem="number attribute"/>
      <iref item="number attribute" subitem="in rfc element"/>
      <t>
            Deprecated; instead, use the "value" attribute in &lt;<x:ref>seriesInfo</x:ref>&gt;.
      </t>
   </section>

   <!--rfc/@obsoletes-->
   <section anchor="element.rfc.attribute.obsoletes" toc="exclude">
      <name>"obsoletes" Attribute</name>
      <iref item="Attributes" subitem="obsoletes"/>
      <iref item="rfc element" subitem="obsoletes attribute"/>
      <iref item="obsoletes attribute" subitem="in rfc element"/>
      <t>
            A comma-separated list of RFC numbers or
            Internet-Draft names.
         </t>
      <t>
            The prep tool will parse the attribute value so that incorrect
            references can be detected.
      </t>
   </section>

   <!--rfc/@prepTime-->
   <section anchor="element.rfc.attribute.prepTime" toc="exclude">
      <name>"prepTime" Attribute</name>
      <iref item="Attributes" subitem="prepTime"/>
      <iref item="rfc element" subitem="prepTime attribute"/>
      <iref item="prepTime attribute" subitem="in rfc element"/>
      <t>
         The date that the XML was processed by a prep tool.
         This is included in the XML file just before it is saved to disk.
         The value is formatted using the "date-time" format defined in <xref target="RFC3339" x:fmt="of" x:sec="5.6"/>.
         The "time-offset" should be "Z".
      </t>
   </section>

   <!--rfc/@seriesNo-->
   <section anchor="element.rfc.attribute.seriesNo" toc="exclude">
      <name>"seriesNo" Attribute</name>
      <iref item="Attributes" subitem="seriesNo"/>
      <iref item="rfc element" subitem="seriesNo attribute"/>
      <iref item="seriesNo attribute" subitem="in rfc element"/>
      <t>
            Deprecated; instead, use the "value" attribute in &lt;<x:ref>seriesInfo</x:ref>&gt;.
         </t>
   </section>

   <!--rfc/@sortRefs-->
   <section anchor="element.rfc.attribute.sortRefs" toc="exclude">
      <name>"sortRefs" Attribute</name>
      <iref item="Attributes" subitem="sortRefs"/>
      <iref item="rfc element" subitem="sortRefs attribute"/>
      <iref item="sortRefs attribute" subitem="in rfc element"/>
      <t>
         Specifies whether or not the prep tool will sort the references in each reference section.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"true"</li>
         <li>"false" (default)</li>
      </ul>
   </section>

   <!--rfc/@submissionType-->
   <section anchor="element.rfc.attribute.submissionType" toc="exclude">
      <name>"submissionType" Attribute</name>
      <iref item="Attributes" subitem="submissionType"/>
      <iref item="rfc element" subitem="submissionType attribute"/>
      <iref item="submissionType attribute" subitem="in rfc element"/>
      <t>
            The document stream, as described in <xref target="RFC7841"/>.
            (The RFC Series Editor may change the list of allowed values in the future.)
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"IETF" (default)</li>
         <li>"IAB"</li>
         <li>"IRTF"</li>
         <li>"independent"</li>
      </ul>
   </section>

   <!--rfc/@symRefs-->
   <section anchor="element.rfc.attribute.symRefs" toc="exclude">
      <name>"symRefs" Attribute</name>
      <iref item="Attributes" subitem="symRefs"/>
      <iref item="rfc element" subitem="symRefs attribute"/>
      <iref item="symRefs attribute" subitem="in rfc element"/>
      <t>
         Specifies whether or not a formatter is requested to use symbolic references (such as "[RFC2119]"). If the
         value for this is "false", the references come out as numbers (such as "[3]").
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"true" (default)</li>
         <li>"false"</li>
      </ul>
   </section>

   <!--rfc/@tocDepth-->
   <section anchor="element.rfc.attribute.tocDepth" toc="exclude">
      <name>"tocDepth" Attribute</name>
      <iref item="Attributes" subitem="tocDepth"/>
      <iref item="rfc element" subitem="tocDepth attribute"/>
      <iref item="tocDepth attribute" subitem="in rfc element"/>
      <t>
         Specifies the number of levels of headings that a formatter is requested to include in the table of contents; the default is "3".
      </t>
   </section>

   <!--rfc/@tocInclude-->
   <section anchor="element.rfc.attribute.tocInclude" toc="exclude">
      <name>"tocInclude" Attribute</name>
      <iref item="Attributes" subitem="tocInclude"/>
      <iref item="rfc element" subitem="tocInclude attribute"/>
      <iref item="tocInclude attribute" subitem="in rfc element"/>
      <t>
         Specifies whether or not a formatter is requested to include a table of contents in generated files.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"true" (default)</li>
         <li>"false"</li>
      </ul>
   </section>

   <!--rfc/@updates-->
   <section anchor="element.rfc.attribute.updates" toc="exclude">
      <name>"updates" Attribute</name>
      <iref item="Attributes" subitem="updates"/>
      <iref item="rfc element" subitem="updates attribute"/>
      <iref item="updates attribute" subitem="in rfc element"/>
      <t>
            A comma-separated list of RFC numbers or
            Internet-Draft names.
         </t>
      <t>
            The prep tool will parse the attribute value so that incorrect
            references can be detected.
      </t>
   </section>

   <!--rfc/@version-->
   <section anchor="element.rfc.attribute.version" toc="exclude">
      <name>"version" Attribute</name>
      <iref item="Attributes" subitem="version"/>
      <iref item="rfc element" subitem="version attribute"/>
      <iref item="version attribute" subitem="in rfc element"/>
      <t>
         Specifies the version of xml2rfc syntax used in this document. The only expected value (for now) is "3".
      </t>
   </section>
</section>

<!--section-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.section">
   <name>
      <tt>&lt;section&gt;</tt>
   </name>
   <x:anchor-alias value="section"/>
   <iref item="Elements" subitem="section" primary="true"/>
   <iref item="section element" primary="true"/>
   <t>
      Represents a section (when inside a &lt;middle&gt; element) or an appendix (when inside a
      &lt;back&gt; element).
   </t>
   <t>
      Subsections are created by nesting &lt;section&gt; elements inside &lt;section&gt; elements.
      Sections are allowed to be empty.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>back</x:ref>&gt; (<xref target="element.back"/>), &lt;<x:ref>boilerplate</x:ref>&gt; (<xref target="element.boilerplate"/>), &lt;<x:ref>middle</x:ref>&gt; (<xref target="element.middle"/>), and &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>).</t>
   <t anchor="element.section.contents"><!--AG-->
      <xref format="none" target="grammar.section">Content model</xref>:</t>
   <t><!--AG-->In this order:</t>
   <ol><!--AG-->
        
      <li><!--AG-->
         <iref item="Elements" subitem="name"/>
         <iref item="name element" subitem="inside section"/>One optional &lt;<x:ref>name</x:ref>&gt; element (<xref target="element.name"/>)</li>
      
      <li><!--AG-->
         <t>In any order:</t>
         <ul><!--AG-->
            <li><!--AG-->
               <iref item="Elements" subitem="artwork"/>
               <iref item="artwork element" subitem="inside section"/>&lt;<x:ref>artwork</x:ref>&gt; elements (<xref target="element.artwork"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="aside"/>
               <iref item="aside element" subitem="inside section"/>&lt;<x:ref>aside</x:ref>&gt; elements (<xref target="element.aside"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="blockquote"/>
               <iref item="blockquote element" subitem="inside section"/>&lt;<x:ref>blockquote</x:ref>&gt; elements (<xref target="element.blockquote"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="dl"/>
               <iref item="dl element" subitem="inside section"/>&lt;<x:ref>dl</x:ref>&gt; elements (<xref target="element.dl"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="figure"/>
               <iref item="figure element" subitem="inside section"/>&lt;<x:ref>figure</x:ref>&gt; elements (<xref target="element.figure"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="iref"/>
               <iref item="iref element" subitem="inside section"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ol"/>
               <iref item="ol element" subitem="inside section"/>&lt;<x:ref>ol</x:ref>&gt; elements (<xref target="element.ol"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sourcecode"/>
               <iref item="sourcecode element" subitem="inside section"/>&lt;<x:ref>sourcecode</x:ref>&gt; elements (<xref target="element.sourcecode"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="t"/>
               <iref item="t element" subitem="inside section"/>&lt;<x:ref>t</x:ref>&gt; elements (<xref target="element.t"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="table"/>
               <iref item="table element" subitem="inside section"/>&lt;<x:ref>table</x:ref>&gt; elements (<xref target="element.table"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="texttable"/>
               <iref item="texttable element" subitem="inside section"/>&lt;<x:ref>texttable</x:ref>&gt; elements (<xref target="element.texttable"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ul"/>
               <iref item="ul element" subitem="inside section"/>&lt;<x:ref>ul</x:ref>&gt; elements (<xref target="element.ul"/>)</li>
         </ul>
      </li>
        
      <li><!--AG-->
         <iref item="Elements" subitem="section"/>
         <iref item="section element" subitem="inside section"/>Optional &lt;<x:ref>section</x:ref>&gt; elements (<xref target="element.section"/>)</li>
      
   </ol>

   <!--section/@anchor-->
   <section anchor="element.section.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="section element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in section element"/>
      <t>
        Document-wide unique identifier for this section.
      </t>
   </section>

   <!--section/@numbered-->
   <section anchor="element.section.attribute.numbered" toc="exclude">
      <name>"numbered" Attribute</name>
      <iref item="Attributes" subitem="numbered"/>
      <iref item="section element" subitem="numbered attribute"/>
      <iref item="numbered attribute" subitem="in section element"/>
      <t>
         If set to "false", the formatter is requested to not display a section number. The prep tool will verify that such a
         section is not followed by a numbered section in this part of the document and will verify that the section is a
         top-level section.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"true" (default)</li>
         <li>"false"</li>
      </ul>
   </section>

   <!--section/@removeInRFC-->
   <section anchor="element.section.attribute.removeInRFC" toc="exclude">
      <name>"removeInRFC" Attribute</name>
      <iref item="Attributes" subitem="removeInRFC"/>
      <iref item="section element" subitem="removeInRFC attribute"/>
      <iref item="removeInRFC attribute" subitem="in section element"/>
      <t>
         If set to "true", this note is marked in the prep tool with text indicating that it should be
         removed before the document is published as an RFC.
         That text will be "This note is to be removed before publishing as an RFC."
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"true"</li>
         <li>"false" (default)</li>
      </ul>
   </section>

   <!--section/@title-->
   <section anchor="element.section.attribute.title" toc="exclude">
      <name>"title" Attribute</name>
      <iref item="Attributes" subitem="title"/>
      <iref item="section element" subitem="title attribute"/>
      <iref item="title attribute" subitem="in section element"/>
      <t>
         Deprecated. Use &lt;<x:ref>name</x:ref>&gt; instead. 
      </t>
   </section>

   <!--section/@toc-->
   <section anchor="element.section.attribute.toc" toc="exclude">
      <name>"toc" Attribute</name>
      <iref item="Attributes" subitem="toc"/>
      <iref item="section element" subitem="toc attribute"/>
      <iref item="toc attribute" subitem="in section element"/>
      <t>
            Indicates to a formatter whether or not the section is to be included in a
            table of contents, if such a table of contents is produced. This only takes effect if the level of the section would have
            appeared in the table of contents based on the "tocDepth" attribute of the
            &lt;<x:ref>rfc</x:ref>&gt; element, and of course only if the table of contents
            is being created based on the "tocInclude" attribute of the
            &lt;<x:ref>rfc</x:ref>&gt; element. If this is set to "exclude", any section
            below this one will be excluded as well. The "default" value indicates
            inclusion of the section if it would be included by the tocDepth attribute of the
            &lt;<x:ref>rfc</x:ref>&gt; element.
         </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"include"</li>
         <li>"exclude"</li>
         <li>"default" (default)</li>
      </ul>
   </section>
</section>

<!--seriesInfo-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.seriesInfo">
   <name>
      <tt>&lt;seriesInfo&gt;</tt>
   </name>
   <x:anchor-alias value="seriesInfo"/>
   <iref item="Elements" subitem="seriesInfo" primary="true"/>
   <iref item="seriesInfo element" primary="true"/>
   <t>
      Specifies the document series in which this document appears, and also
      specifies an identifier within that series.
   </t>
   <t>
      A processing tool determines whether it is working on an RFC or an Internet-Draft by inspecting the
      "name" attribute of a &lt;<x:ref>seriesInfo</x:ref>&gt; element inside the
      &lt;<x:ref>front</x:ref>&gt; element inside the &lt;<x:ref>rfc</x:ref>&gt; element, looking
      for "RFC" or "Internet-Draft". (Specifying neither value in any of the
      &lt;<x:ref>seriesInfo</x:ref>&gt; elements can be useful for producing other types of
      documents but is out of scope for this specification.)
   </t>
   <t>
It is invalid to have multiple &lt;<x:ref>seriesInfo</x:ref>&gt; elements inside the same &lt;<x:ref>front</x:ref>&gt;
element containing the same "name" value.  Some combinations of &lt;<x:ref>seriesInfo</x:ref>&gt; "name" attribute values
make no sense, such as having both &lt;seriesInfo name="rfc"/&gt; and &lt;seriesInfo name="Internet-Draft"/&gt;
in the same &lt;front&gt; element.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>front</x:ref>&gt; (<xref target="element.front"/>) and &lt;<x:ref>reference</x:ref>&gt; (<xref target="element.reference"/>; deprecated in this context).</t>
   <t anchor="element.seriesInfo.contents"><!--AG-->
      <xref format="none" target="grammar.seriesInfo">Content model</xref>: this element does not have any contents.</t>

   <!--seriesInfo/@asciiName-->
   <section anchor="element.seriesInfo.attribute.asciiName" toc="exclude">
      <name>"asciiName" Attribute</name>
      <iref item="Attributes" subitem="asciiName"/>
      <iref item="seriesInfo element" subitem="asciiName attribute"/>
      <iref item="asciiName attribute" subitem="in seriesInfo element"/>
      <t>
         The ASCII equivalent of the name field.
      </t>
   </section>

   <!--seriesInfo/@asciiValue-->
   <section anchor="element.seriesInfo.attribute.asciiValue" toc="exclude">
      <name>"asciiValue" Attribute</name>
      <iref item="Attributes" subitem="asciiValue"/>
      <iref item="seriesInfo element" subitem="asciiValue attribute"/>
      <iref item="asciiValue attribute" subitem="in seriesInfo element"/>
      <t>
         The ASCII equivalent of the value field.
      </t>
   </section>

   <!--seriesInfo/@name-->
   <section anchor="element.seriesInfo.attribute.name" toc="exclude">
      <name>"name" Attribute <em> (Mandatory)</em>
      </name>
      <iref item="Attributes" subitem="name"/>
      <iref item="seriesInfo element" subitem="name attribute"/>
      <iref item="name attribute" subitem="in seriesInfo element"/>
      <t>
            The name of the series. The currently known values are "RFC", "Internet-Draft",
            and "DOI". The RFC Series Editor
            may change this list in the future.
      </t>
      <t>
            Some of the values for "name" interact as follows:
      </t>
      <t>
         <list style="symbols">
            <t>
         If a &lt;<x:ref>front</x:ref>&gt; element contains a &lt;<x:ref>seriesInfo</x:ref>&gt;
         element with a name of "Internet-Draft", it can also have at most one additional
         &lt;<x:ref>seriesInfo</x:ref>&gt; element with a "status" attribute whose value is of
         "standard", "full-standard", "bcp", "fyi", "informational", "experimental", or
         "historic" to indicate the intended status of this Internet-Draft, if it were to be later
         published as an RFC. If such an additional &lt;<x:ref>seriesInfo</x:ref>&gt; element has
         one of those statuses, the name needs to be "".
      </t>
            <t>
        If a &lt;<x:ref>front</x:ref>&gt; element contains a &lt;<x:ref>seriesInfo</x:ref>&gt;
        element with a name of "RFC", it can also have at most one additional
        &lt;<x:ref>seriesInfo</x:ref>&gt; element with a "status" attribute whose value is of "full-standard", "bcp", or "fyi" to indicate
        the current status of this RFC. If such an additional &lt;<x:ref>seriesInfo</x:ref>&gt;
        element has one of those statuses, the "value" attribute for that name needs to be the number within
        that series. That &lt;<x:ref>front</x:ref>&gt; element might also contain an additional
        &lt;<x:ref>seriesInfo</x:ref>&gt; element with the status of "info", "exp", or "historic" and a name of "" to
        indicate the status of the RFC.
      </t>
            <t>
         A &lt;<x:ref>front</x:ref>&gt; element that has a &lt;<x:ref>seriesInfo</x:ref>&gt; element
         that has the name "Internet-Draft" cannot also have a &lt;<x:ref>seriesInfo</x:ref>&gt;
         element that has the name "RFC". 
      </t>
            <t>
         The &lt;<x:ref>seriesInfo</x:ref>&gt; element can contain the DOI for the referenced document.
         This cannot be used when the &lt;<x:ref>seriesInfo</x:ref>&gt;
         element is an eventual child element of an &lt;<x:ref>rfc</x:ref>&gt; element --
         only as an eventual child of a &lt;<x:ref>reference</x:ref>&gt; element.
         The "value" attribute should use the form specified in <xref target="RFC7669"/>.
      </t>
         </list>
      </t>
   </section>

   <!--seriesInfo/@status-->
   <section anchor="element.seriesInfo.attribute.status" toc="exclude">
      <name>"status" Attribute</name>
      <iref item="Attributes" subitem="status"/>
      <iref item="seriesInfo element" subitem="status attribute"/>
      <iref item="status attribute" subitem="in seriesInfo element"/>
      <t>
         The status of this document. The currently known values are "standard", "informational", "experimental", "bcp", "fyi", and "full-standard".
         The RFC Series Editor may change this list in the future.
      </t>
   </section>

   <!--seriesInfo/@stream-->
   <section anchor="element.seriesInfo.attribute.stream" toc="exclude">
      <name>"stream" Attribute</name>
      <iref item="Attributes" subitem="stream"/>
      <iref item="seriesInfo element" subitem="stream attribute"/>
      <iref item="stream attribute" subitem="in seriesInfo element"/>
      <t>
         The stream (as described in <xref target="RFC7841"/>) that originated the document.
         (The RFC Series Editor may change this list in the future.)
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"IETF" (default)</li>
         <li>"IAB"</li>
         <li>"IRTF"</li>
         <li>"independent"</li>
      </ul>
   </section>

   <!--seriesInfo/@value-->
   <section anchor="element.seriesInfo.attribute.value" toc="exclude">
      <name>"value" Attribute <em> (Mandatory)</em>
      </name>
      <iref item="Attributes" subitem="value"/>
      <iref item="seriesInfo element" subitem="value attribute"/>
      <iref item="value attribute" subitem="in seriesInfo element"/>
      <t>
            The identifier within the series specified by the "name" attribute.
      </t>
      <t>
            For BCPs, FYIs, RFCs, and STDs, this is the number within the series.
            For Internet-Drafts, it is the full draft name (ending with the two-digit
            version number). For DOIs, the value is given, such as "10.17487/rfc1149",
            as described in <xref target="RFC7669"/>.
      </t>
      <t>
            The name in the value should be the document name without any file
            extension. For Internet-Drafts, the value for this attribute should
            be "draft-ietf-somewg-someprotocol-07", not
            "draft-ietf-somewg-someprotocol-07.txt".
      </t>
   </section>
</section>

<!--sourcecode-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.sourcecode">
   <name>
      <tt>&lt;sourcecode&gt;</tt>
   </name>
   <x:anchor-alias value="sourcecode"/>
   <iref item="Elements" subitem="sourcecode" primary="true"/>
   <iref item="sourcecode element" primary="true"/>
   <t>
      This element allows the inclusion of source code into the document.
   </t>
   <t>
      When rendered, source code is always shown in a monospace font.
      When &lt;sourcecode&gt; is a child of &lt;<x:ref>figure</x:ref>&gt; or &lt;<x:ref>section</x:ref>&gt;, it provides
      full control of horizontal whitespace and line breaks.
      When formatted, it is indented relative to the left margin of the enclosing element.
      It is thus useful for source code and formal languages (such as ABNF <xref target="RFC5234"/> or the RNC notation used in this document).
      (When &lt;sourcecode&gt; is a child of other elements, it flows with the text that surrounds it.)
      Tab characters (U+0009) inside of this element are prohibited.

   </t>
   <t>
      For artwork such as character-based art, diagrams of message layouts, and so on,
      use the &lt;<x:ref>artwork</x:ref>&gt; element instead.
   </t>
   <t>
      Output formatters that do pagination should attempt to keep source code on a single page. This is to prevent
      source code that is split across pages from looking like two separate pieces of code.
   </t>
   <t>
See <xref target="cdata.and.escaping"/> for a description of how to deal with issues of using
"&amp;" and "&lt;" characters in source code.
</t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>figure</x:ref>&gt; (<xref target="element.figure"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), and &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>).</t>
   <t anchor="element.sourcecode.contents"><!--AG-->
      <xref format="none" target="grammar.sourcecode">Content model</xref>: only text content.</t>

   <!--sourcecode/@anchor-->
   <section anchor="element.sourcecode.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="sourcecode element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in sourcecode element"/>
      <t>
        Document-wide unique identifier for this source code.
      </t>
   </section>

   <!--sourcecode/@name-->
   <section anchor="element.sourcecode.attribute.name" toc="exclude">
      <name>"name" Attribute</name>
      <iref item="Attributes" subitem="name"/>
      <iref item="sourcecode element" subitem="name attribute"/>
      <iref item="name attribute" subitem="in sourcecode element"/>
      <t>
            A filename suitable for the contents (such as for extraction to a local file).
            This attribute can
            be helpful for other kinds of tools (such as automated syntax checkers,
            which work by extracting the source code).
            Note that the "name" attribute does not need to be unique for &lt;<x:ref>artwork</x:ref>&gt; elements in a
            document. If multiple &lt;<x:ref>sourcecode</x:ref>&gt; elements have the same "name" attribute, a formatter might
            assume that the elements are all fragments of a single file, and such a formatter can
            collect those fragments for later processing.
         </t>
   </section>

   <!--sourcecode/@src-->
   <section anchor="element.sourcecode.attribute.src" toc="exclude">
      <name>"src" Attribute</name>
      <iref item="Attributes" subitem="src"/>
      <iref item="sourcecode element" subitem="src attribute"/>
      <iref item="src attribute" subitem="in sourcecode element"/>
      <t>
         The URI reference of a source file <xref target="RFC3986"/>.
      </t>
      <t>
         It is an error to have both a "src" attribute and content in the &lt;sourcecode&gt; element.
      </t>
   </section>

   <!--sourcecode/@type-->
   <section anchor="element.sourcecode.attribute.type" toc="exclude">
      <name>"type" Attribute</name>
      <iref item="Attributes" subitem="type"/>
      <iref item="sourcecode element" subitem="type attribute"/>
      <iref item="type attribute" subitem="in sourcecode element"/>
      <t>
            Specifies the type of the source code. The value of this attribute is free text with
            certain values designated as preferred.
      </t>
      <t>
            The preferred values for &lt;sourcecode&gt; types are:
            <list style="symbols">
            <t>abnf</t>
            <t>asn.1</t>
            <t>bash</t>
            <t>c++</t>
            <t>c</t>
            <t>cbor</t>
            <t>dtd</t>
            <t>java</t>
            <t>javascript</t>
            <t>json</t>
            <t>mib</t>
            <t>perl</t>
            <t>pseudocode</t>
            <t>python</t>
            <t>rnc</t>
            <t>xml</t>
            <t>yang</t>
         </list>
            The RFC Series Editor will maintain a complete list of the preferred values on the RFC Editor
            web site, and that list is expected to be updated over time. Thus, a consumer
            of v3 XML should not cause a failure when it encounters an unexpected type or no type is specified. 
         </t>
   </section>
</section>

<!--street-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.street">
   <name>
      <tt>&lt;street&gt;</tt>
   </name>
   <x:anchor-alias value="street"/>
   <iref item="Elements" subitem="street" primary="true"/>
   <iref item="street element" primary="true"/>
   <t>
      Provides a street address.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>postal</x:ref>&gt; (<xref target="element.postal"/>).</t>
   <t anchor="element.street.contents"><!--AG-->
      <xref format="none" target="grammar.street">Content model</xref>: only text content.</t>

   <!--street/@ascii-->
   <section anchor="element.street.attribute.ascii" toc="exclude">
      <name>"ascii" Attribute</name>
      <iref item="Attributes" subitem="ascii"/>
      <iref item="street element" subitem="ascii attribute"/>
      <iref item="ascii attribute" subitem="in street element"/>
      <t>
         The ASCII equivalent of the street address.
      </t>
   </section>
</section>

<!--strong-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.strong">
   <name>
      <tt>&lt;strong&gt;</tt>
   </name>
   <x:anchor-alias value="strong"/>
   <iref item="Elements" subitem="strong" primary="true"/>
   <iref item="strong element" primary="true"/>
   <t>
        Indicates text that is semantically strong. Text enclosed within this element will be displayed as bold after processing.
        This element can be combined with other character formatting elements, and the
        formatting will be additive.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>annotation</x:ref>&gt; (<xref target="element.annotation"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>cref</x:ref>&gt; (<xref target="element.cref"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>dt</x:ref>&gt; (<xref target="element.dt"/>), &lt;<x:ref>em</x:ref>&gt; (<xref target="element.em"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>preamble</x:ref>&gt; (<xref target="element.preamble"/>), &lt;<x:ref>refcontent</x:ref>&gt; (<xref target="element.refcontent"/>), &lt;<x:ref>sub</x:ref>&gt; (<xref target="element.sub"/>), &lt;<x:ref>sup</x:ref>&gt; (<xref target="element.sup"/>), &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>), and &lt;<x:ref>tt</x:ref>&gt; (<xref target="element.tt"/>).</t>
   <t anchor="element.strong.contents"><!--AG-->
      <xref format="none" target="grammar.strong">Content model</xref>:
    </t>
   <t><!--AG-->In any order:</t>
   <ul><!--AG-->
      <li><!--AG-->Text</li>
      <li><!--AG-->
         <iref item="Elements" subitem="bcp14"/>
         <iref item="bcp14 element" subitem="inside strong"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="cref"/>
         <iref item="cref element" subitem="inside strong"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="em"/>
         <iref item="em element" subitem="inside strong"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="eref"/>
         <iref item="eref element" subitem="inside strong"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="iref"/>
         <iref item="iref element" subitem="inside strong"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="relref"/>
         <iref item="relref element" subitem="inside strong"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sub"/>
         <iref item="sub element" subitem="inside strong"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sup"/>
         <iref item="sup element" subitem="inside strong"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="tt"/>
         <iref item="tt element" subitem="inside strong"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="xref"/>
         <iref item="xref element" subitem="inside strong"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
   </ul>
</section>

<!--sub-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.sub">
   <name>
      <tt>&lt;sub&gt;</tt>
   </name>
   <x:anchor-alias value="sub"/>
   <iref item="Elements" subitem="sub" primary="true"/>
   <iref item="sub element" primary="true"/>
   <t>
        Causes the text to be displayed as subscript, approximately half a letter-height lower than normal text.
        This element can be combined with other character formatting elements, and the
        formatting will be additive.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>annotation</x:ref>&gt; (<xref target="element.annotation"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>cref</x:ref>&gt; (<xref target="element.cref"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>dt</x:ref>&gt; (<xref target="element.dt"/>), &lt;<x:ref>em</x:ref>&gt; (<xref target="element.em"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>preamble</x:ref>&gt; (<xref target="element.preamble"/>), &lt;<x:ref>refcontent</x:ref>&gt; (<xref target="element.refcontent"/>), &lt;<x:ref>strong</x:ref>&gt; (<xref target="element.strong"/>), &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>), and &lt;<x:ref>tt</x:ref>&gt; (<xref target="element.tt"/>).</t>
   <t anchor="element.sub.contents"><!--AG-->
      <xref format="none" target="grammar.sub">Content model</xref>:
    </t>
   <t><!--AG-->In any order:</t>
   <ul><!--AG-->
      <li><!--AG-->Text</li>
      <li><!--AG-->
         <iref item="Elements" subitem="bcp14"/>
         <iref item="bcp14 element" subitem="inside sub"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="cref"/>
         <iref item="cref element" subitem="inside sub"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="em"/>
         <iref item="em element" subitem="inside sub"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="eref"/>
         <iref item="eref element" subitem="inside sub"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="iref"/>
         <iref item="iref element" subitem="inside sub"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="relref"/>
         <iref item="relref element" subitem="inside sub"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="strong"/>
         <iref item="strong element" subitem="inside sub"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="tt"/>
         <iref item="tt element" subitem="inside sub"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="xref"/>
         <iref item="xref element" subitem="inside sub"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
   </ul>
</section>

<!--sup-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.sup">
   <name>
      <tt>&lt;sup&gt;</tt>
   </name>
   <x:anchor-alias value="sup"/>
   <iref item="Elements" subitem="sup" primary="true"/>
   <iref item="sup element" primary="true"/>
   <t>
        Causes the text to be displayed as superscript, approximately half a letter-height higher than normal text.
        This element can be combined with other character formatting elements, and the
        formatting will be additive.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>annotation</x:ref>&gt; (<xref target="element.annotation"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>cref</x:ref>&gt; (<xref target="element.cref"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>dt</x:ref>&gt; (<xref target="element.dt"/>), &lt;<x:ref>em</x:ref>&gt; (<xref target="element.em"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>preamble</x:ref>&gt; (<xref target="element.preamble"/>), &lt;<x:ref>refcontent</x:ref>&gt; (<xref target="element.refcontent"/>), &lt;<x:ref>strong</x:ref>&gt; (<xref target="element.strong"/>), &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>), and &lt;<x:ref>tt</x:ref>&gt; (<xref target="element.tt"/>).</t>
   <t anchor="element.sup.contents"><!--AG-->
      <xref format="none" target="grammar.sup">Content model</xref>:
    </t>
   <t><!--AG-->In any order:</t>
   <ul><!--AG-->
      <li><!--AG-->Text</li>
      <li><!--AG-->
         <iref item="Elements" subitem="bcp14"/>
         <iref item="bcp14 element" subitem="inside sup"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="cref"/>
         <iref item="cref element" subitem="inside sup"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="em"/>
         <iref item="em element" subitem="inside sup"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="eref"/>
         <iref item="eref element" subitem="inside sup"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="iref"/>
         <iref item="iref element" subitem="inside sup"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="relref"/>
         <iref item="relref element" subitem="inside sup"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="strong"/>
         <iref item="strong element" subitem="inside sup"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="tt"/>
         <iref item="tt element" subitem="inside sup"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="xref"/>
         <iref item="xref element" subitem="inside sup"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
   </ul>
</section>

<!--t-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.t">
   <name>
      <tt>&lt;t&gt;</tt>
   </name>
   <x:anchor-alias value="t"/>
   <iref item="Elements" subitem="t" primary="true"/>
   <iref item="t element" primary="true"/>
   <t>
      Contains a paragraph of text.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>abstract</x:ref>&gt; (<xref target="element.abstract"/>), &lt;<x:ref>aside</x:ref>&gt; (<xref target="element.aside"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>list</x:ref>&gt; (<xref target="element.list"/>), &lt;<x:ref>note</x:ref>&gt; (<xref target="element.note"/>), &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), and &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>).</t>
   <t anchor="element.t.contents"><!--AG-->
      <xref format="none" target="grammar.t">Content model</xref>:
    </t>
   <t><!--AG-->In any order:</t>
   <ul><!--AG-->
      <li><!--AG-->Text</li>
      <li><!--AG-->
         <iref item="Elements" subitem="bcp14"/>
         <iref item="bcp14 element" subitem="inside t"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="cref"/>
         <iref item="cref element" subitem="inside t"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="em"/>
         <iref item="em element" subitem="inside t"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="eref"/>
         <iref item="eref element" subitem="inside t"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="iref"/>
         <iref item="iref element" subitem="inside t"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="list"/>
         <iref item="list element" subitem="inside t"/>&lt;<x:ref>list</x:ref>&gt; elements (<xref target="element.list"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="relref"/>
         <iref item="relref element" subitem="inside t"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="spanx"/>
         <iref item="spanx element" subitem="inside t"/>&lt;<x:ref>spanx</x:ref>&gt; elements (<xref target="element.spanx"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="strong"/>
         <iref item="strong element" subitem="inside t"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sub"/>
         <iref item="sub element" subitem="inside t"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sup"/>
         <iref item="sup element" subitem="inside t"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="tt"/>
         <iref item="tt element" subitem="inside t"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="vspace"/>
         <iref item="vspace element" subitem="inside t"/>&lt;<x:ref>vspace</x:ref>&gt; elements (<xref target="element.vspace"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="xref"/>
         <iref item="xref element" subitem="inside t"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
   </ul>

   <!--t/@anchor-->
   <section anchor="element.t.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="t element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in t element"/>
      <t>
        Document-wide unique identifier for this paragraph.
      </t>
   </section>

   <!--t/@hangText-->
   <section anchor="element.t.attribute.hangText" toc="exclude">
      <name>"hangText" Attribute</name>
      <iref item="Attributes" subitem="hangText"/>
      <iref item="t element" subitem="hangText attribute"/>
      <iref item="hangText attribute" subitem="in t element"/>
      <t>
         Deprecated. Instead, use &lt;<x:ref>dd</x:ref>&gt; inside of a definition list (&lt;<x:ref>dl</x:ref>&gt;).
      </t>
   </section>

   <!--t/@keepWithNext-->
   <section anchor="element.t.attribute.keepWithNext" toc="exclude">
      <name>"keepWithNext" Attribute</name>
      <iref item="Attributes" subitem="keepWithNext"/>
      <iref item="t element" subitem="keepWithNext attribute"/>
      <iref item="keepWithNext attribute" subitem="in t element"/>
      <t>
         Acts as a hint to the output formatters that do pagination to do a best-effort attempt to
         keep the paragraph with the next element, whatever that happens to be.  For example, the
         HTML output @media print CSS ("CSS" refers to Cascading Style Sheets) might translate this to page-break-after: avoid.  For PDF, the
         paginator could attempt to keep the paragraph with the next element.  Note: this attribute
         is strictly a hint and not always actionable.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"false" (default)</li>
         <li>"true"</li>
      </ul>
   </section>

   <!--t/@keepWithPrevious-->
   <section anchor="element.t.attribute.keepWithPrevious" toc="exclude">
      <name>"keepWithPrevious" Attribute</name>
      <iref item="Attributes" subitem="keepWithPrevious"/>
      <iref item="t element" subitem="keepWithPrevious attribute"/>
      <iref item="keepWithPrevious attribute" subitem="in t element"/>
      <t>
         Acts as a hint to the output formatters that do pagination to do a best-effort attempt to
         keep the paragraph with the previous element, whatever that happens to be.  For example,
         the HTML output @media print CSS might translate this to page-break-before: avoid.  For
         PDF, the paginator could attempt to keep the paragraph with the previous element.  Note:
         this attribute is strictly a hint and not always actionable.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"false" (default)</li>
         <li>"true"</li>
      </ul>
   </section>
</section>

<!--table-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.table">
   <name>
      <tt>&lt;table&gt;</tt>
   </name>
   <x:anchor-alias value="table"/>
   <iref item="Elements" subitem="table" primary="true"/>
   <iref item="table element" primary="true"/>
   <t>
      Contains a table with a caption with the table number.
      If the element contains a &lt;<x:ref>name</x:ref>&gt; element, the caption will also show that name. 
   </t>
   <t>
      Inside the &lt;<x:ref>table</x:ref>&gt; element is, optionally, a &lt;<x:ref>thead</x:ref>&gt; element to
      contain the rows that will be the table's heading and, optionally, a &lt;<x:ref>tfoot</x:ref>&gt; element
      to contain the rows of the table's footer. If the XML is converted to a representation that has page
      breaks (such as PDFs or printed HTML), the header and footer are meant to appear on each page.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>aside</x:ref>&gt; (<xref target="element.aside"/>) and &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>).</t>
   <t anchor="element.table.contents"><!--AG-->
      <xref format="none" target="grammar.table">Content model</xref>:</t>
   <t><!--AG-->In this order:</t>
   <ol><!--AG-->
        
      <li><!--AG-->
         <iref item="Elements" subitem="name"/>
         <iref item="name element" subitem="inside table"/>One optional &lt;<x:ref>name</x:ref>&gt; element (<xref target="element.name"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="iref"/>
         <iref item="iref element" subitem="inside table"/>Optional &lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="thead"/>
         <iref item="thead element" subitem="inside table"/>One optional &lt;<x:ref>thead</x:ref>&gt; element (<xref target="element.thead"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="tbody"/>
         <iref item="tbody element" subitem="inside table"/>One or more &lt;<x:ref>tbody</x:ref>&gt; elements (<xref target="element.tbody"/>)</li>
      
        
      <li><!--AG-->
         <iref item="Elements" subitem="tfoot"/>
         <iref item="tfoot element" subitem="inside table"/>One optional &lt;<x:ref>tfoot</x:ref>&gt; element (<xref target="element.tfoot"/>)</li>
      
   </ol>

   <!--table/@anchor-->
   <section anchor="element.table.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="table element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in table element"/>
      <t>
        Document-wide unique identifier for this table.
      </t>
   </section>
</section>

<!--tbody-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.tbody">
   <name>
      <tt>&lt;tbody&gt;</tt>
   </name>
   <x:anchor-alias value="tbody"/>
   <iref item="Elements" subitem="tbody" primary="true"/>
   <iref item="tbody element" primary="true"/>
   <t>
      A container for a set of body rows for a table.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>table</x:ref>&gt; (<xref target="element.table"/>).</t>
   <t anchor="element.tbody.contents"><!--AG-->
      <xref format="none" target="grammar.tbody">Content model</xref>:
    </t>
        
   <t><!--AG-->
      <iref item="Elements" subitem="tr"/>
      <iref item="tr element" subitem="inside tbody"/>One or more &lt;<x:ref>tr</x:ref>&gt; elements (<xref target="element.tr"/>)</t>
      

   <!--tbody/@anchor-->
   <section anchor="element.tbody.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="tbody element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in tbody element"/>
      <t>
        Document-wide unique identifier for the tbody.
      </t>
   </section>
</section>

<!--td-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.td">
   <name>
      <tt>&lt;td&gt;</tt>
   </name>
   <x:anchor-alias value="td"/>
   <iref item="Elements" subitem="td" primary="true"/>
   <iref item="td element" primary="true"/>
   <t>
      A cell in a table row.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>tr</x:ref>&gt; (<xref target="element.tr"/>).</t>
   <t anchor="element.td.contents"><!--AG-->
      <xref format="none" target="grammar.td">Content model</xref>:
    </t>
   <t><!--AG-->Either:</t>
   <ul empty="true"><!--AG-->
      <li><!--AG-->
         <t>In any order, but at least one of:</t>
         <ul><!--AG-->
            <li><!--AG-->
               <iref item="Elements" subitem="artwork"/>
               <iref item="artwork element" subitem="inside td"/>&lt;<x:ref>artwork</x:ref>&gt; elements (<xref target="element.artwork"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="dl"/>
               <iref item="dl element" subitem="inside td"/>&lt;<x:ref>dl</x:ref>&gt; elements (<xref target="element.dl"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="figure"/>
               <iref item="figure element" subitem="inside td"/>&lt;<x:ref>figure</x:ref>&gt; elements (<xref target="element.figure"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ol"/>
               <iref item="ol element" subitem="inside td"/>&lt;<x:ref>ol</x:ref>&gt; elements (<xref target="element.ol"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sourcecode"/>
               <iref item="sourcecode element" subitem="inside td"/>&lt;<x:ref>sourcecode</x:ref>&gt; elements (<xref target="element.sourcecode"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="t"/>
               <iref item="t element" subitem="inside td"/>&lt;<x:ref>t</x:ref>&gt; elements (<xref target="element.t"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ul"/>
               <iref item="ul element" subitem="inside td"/>&lt;<x:ref>ul</x:ref>&gt; elements (<xref target="element.ul"/>)</li>
         </ul>
      </li>
   </ul>
   <t><!--AG-->Or:</t>
   <ul empty="true"><!--AG-->
      <li><!--AG-->
         <t>In any order:</t>
         <ul><!--AG-->
            <li><!--AG-->Text</li>
            <li><!--AG-->
               <iref item="Elements" subitem="bcp14"/>
               <iref item="bcp14 element" subitem="inside td"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="br"/>
               <iref item="br element" subitem="inside td"/>&lt;<x:ref>br</x:ref>&gt; elements (<xref target="element.br"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="cref"/>
               <iref item="cref element" subitem="inside td"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="em"/>
               <iref item="em element" subitem="inside td"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="eref"/>
               <iref item="eref element" subitem="inside td"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="iref"/>
               <iref item="iref element" subitem="inside td"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="relref"/>
               <iref item="relref element" subitem="inside td"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="strong"/>
               <iref item="strong element" subitem="inside td"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sub"/>
               <iref item="sub element" subitem="inside td"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sup"/>
               <iref item="sup element" subitem="inside td"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="tt"/>
               <iref item="tt element" subitem="inside td"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="xref"/>
               <iref item="xref element" subitem="inside td"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
         </ul>
      </li>
   </ul>

   <!--td/@align-->
   <section anchor="element.td.attribute.align" toc="exclude">
      <name>"align" Attribute</name>
      <iref item="Attributes" subitem="align"/>
      <iref item="td element" subitem="align attribute"/>
      <iref item="align attribute" subitem="in td element"/>
      <t>
         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.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"left" (default)</li>
         <li>"center"</li>
         <li>"right"</li>
      </ul>
   </section>

   <!--td/@anchor-->
   <section anchor="element.td.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="td element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in td element"/>
      <t>
        Document-wide unique identifier for the cell.
      </t>
   </section>

   <!--td/@colspan-->
   <section anchor="element.td.attribute.colspan" toc="exclude">
      <name>"colspan" Attribute</name>
      <iref item="Attributes" subitem="colspan"/>
      <iref item="td element" subitem="colspan attribute"/>
      <iref item="colspan attribute" subitem="in td element"/>
      <t>
         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.
      </t>
   </section>

   <!--td/@rowspan-->
   <section anchor="element.td.attribute.rowspan" toc="exclude">
      <name>"rowspan" Attribute</name>
      <iref item="Attributes" subitem="rowspan"/>
      <iref item="td element" subitem="rowspan attribute"/>
      <iref item="rowspan attribute" subitem="in td element"/>
      <t>
         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.
      </t>
   </section>
</section>

<!--tfoot-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.tfoot">
   <name>
      <tt>&lt;tfoot&gt;</tt>
   </name>
   <x:anchor-alias value="tfoot"/>
   <iref item="Elements" subitem="tfoot" primary="true"/>
   <iref item="tfoot element" primary="true"/>
   <t>
      A container for a set of footer rows for a table.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>table</x:ref>&gt; (<xref target="element.table"/>).</t>
   <t anchor="element.tfoot.contents"><!--AG-->
      <xref format="none" target="grammar.tfoot">Content model</xref>:
    </t>
        
   <t><!--AG-->
      <iref item="Elements" subitem="tr"/>
      <iref item="tr element" subitem="inside tfoot"/>One or more &lt;<x:ref>tr</x:ref>&gt; elements (<xref target="element.tr"/>)</t>
      

   <!--tfoot/@anchor-->
   <section anchor="element.tfoot.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="tfoot element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in tfoot element"/>
      <t>
        Document-wide unique identifier for the tfoot.
      </t>
   </section>
</section>

<!--th-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.th">
   <name>
      <tt>&lt;th&gt;</tt>
   </name>
   <x:anchor-alias value="th"/>
   <iref item="Elements" subitem="th" primary="true"/>
   <iref item="th element" primary="true"/>
   <t>
      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 &lt;<x:ref>td</x:ref>&gt; element.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>tr</x:ref>&gt; (<xref target="element.tr"/>).</t>
   <t anchor="element.th.contents"><!--AG-->
      <xref format="none" target="grammar.th">Content model</xref>:
    </t>
   <t><!--AG-->Either:</t>
   <ul empty="true"><!--AG-->
      <li><!--AG-->
         <t>In any order, but at least one of:</t>
         <ul><!--AG-->
            <li><!--AG-->
               <iref item="Elements" subitem="artwork"/>
               <iref item="artwork element" subitem="inside th"/>&lt;<x:ref>artwork</x:ref>&gt; elements (<xref target="element.artwork"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="dl"/>
               <iref item="dl element" subitem="inside th"/>&lt;<x:ref>dl</x:ref>&gt; elements (<xref target="element.dl"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="figure"/>
               <iref item="figure element" subitem="inside th"/>&lt;<x:ref>figure</x:ref>&gt; elements (<xref target="element.figure"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ol"/>
               <iref item="ol element" subitem="inside th"/>&lt;<x:ref>ol</x:ref>&gt; elements (<xref target="element.ol"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sourcecode"/>
               <iref item="sourcecode element" subitem="inside th"/>&lt;<x:ref>sourcecode</x:ref>&gt; elements (<xref target="element.sourcecode"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="t"/>
               <iref item="t element" subitem="inside th"/>&lt;<x:ref>t</x:ref>&gt; elements (<xref target="element.t"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="ul"/>
               <iref item="ul element" subitem="inside th"/>&lt;<x:ref>ul</x:ref>&gt; elements (<xref target="element.ul"/>)</li>
         </ul>
      </li>
   </ul>
   <t><!--AG-->Or:</t>
   <ul empty="true"><!--AG-->
      <li><!--AG-->
         <t>In any order:</t>
         <ul><!--AG-->
            <li><!--AG-->Text</li>
            <li><!--AG-->
               <iref item="Elements" subitem="bcp14"/>
               <iref item="bcp14 element" subitem="inside th"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="br"/>
               <iref item="br element" subitem="inside th"/>&lt;<x:ref>br</x:ref>&gt; elements (<xref target="element.br"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="cref"/>
               <iref item="cref element" subitem="inside th"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="em"/>
               <iref item="em element" subitem="inside th"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="eref"/>
               <iref item="eref element" subitem="inside th"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="iref"/>
               <iref item="iref element" subitem="inside th"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="relref"/>
               <iref item="relref element" subitem="inside th"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="strong"/>
               <iref item="strong element" subitem="inside th"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sub"/>
               <iref item="sub element" subitem="inside th"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="sup"/>
               <iref item="sup element" subitem="inside th"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="tt"/>
               <iref item="tt element" subitem="inside th"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</li>
            <li><!--AG-->
               <iref item="Elements" subitem="xref"/>
               <iref item="xref element" subitem="inside th"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
         </ul>
      </li>
   </ul>

   <!--th/@align-->
   <section anchor="element.th.attribute.align" toc="exclude">
      <name>"align" Attribute</name>
      <iref item="Attributes" subitem="align"/>
      <iref item="th element" subitem="align attribute"/>
      <iref item="align attribute" subitem="in th element"/>
      <t>
         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.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"left" (default)</li>
         <li>"center"</li>
         <li>"right"</li>
      </ul>
   </section>

   <!--th/@anchor-->
   <section anchor="element.th.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="th element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in th element"/>
      <t>
        Document-wide unique identifier for the row.
      </t>
   </section>

   <!--th/@colspan-->
   <section anchor="element.th.attribute.colspan" toc="exclude">
      <name>"colspan" Attribute</name>
      <iref item="Attributes" subitem="colspan"/>
      <iref item="th element" subitem="colspan attribute"/>
      <iref item="colspan attribute" subitem="in th element"/>
      <t>
         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.
      </t>
   </section>

   <!--th/@rowspan-->
   <section anchor="element.th.attribute.rowspan" toc="exclude">
      <name>"rowspan" Attribute</name>
      <iref item="Attributes" subitem="rowspan"/>
      <iref item="th element" subitem="rowspan attribute"/>
      <iref item="rowspan attribute" subitem="in th element"/>
      <t>
         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.
      </t>
   </section>
</section>

<!--thead-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.thead">
   <name>
      <tt>&lt;thead&gt;</tt>
   </name>
   <x:anchor-alias value="thead"/>
   <iref item="Elements" subitem="thead" primary="true"/>
   <iref item="thead element" primary="true"/>
   <t>
      A container for a set of header rows for a table.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>table</x:ref>&gt; (<xref target="element.table"/>).</t>
   <t anchor="element.thead.contents"><!--AG-->
      <xref format="none" target="grammar.thead">Content model</xref>:
    </t>
        
   <t><!--AG-->
      <iref item="Elements" subitem="tr"/>
      <iref item="tr element" subitem="inside thead"/>One or more &lt;<x:ref>tr</x:ref>&gt; elements (<xref target="element.tr"/>)</t>
      

   <!--thead/@anchor-->
   <section anchor="element.thead.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="thead element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in thead element"/>
      <t>
        Document-wide unique identifier for the thead.
      </t>
   </section>
</section>

<!--title-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.title">
   <name>
      <tt>&lt;title&gt;</tt>
   </name>
   <x:anchor-alias value="title"/>
   <iref item="Elements" subitem="title" primary="true"/>
   <iref item="title element" primary="true"/>
   <t>
      Represents the document title.
   </t>
   <t>
      When this element appears in the &lt;front&gt; 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.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>front</x:ref>&gt; (<xref target="element.front"/>).</t>
   <t anchor="element.title.contents"><!--AG-->
      <xref format="none" target="grammar.title">Content model</xref>: only text content.</t>

   <!--title/@abbrev-->
   <section anchor="element.title.attribute.abbrev" toc="exclude">
      <name>"abbrev" Attribute</name>
      <iref item="Attributes" subitem="abbrev"/>
      <iref item="title element" subitem="abbrev attribute"/>
      <iref item="abbrev attribute" subitem="in title element"/>
      <t>
            Specifies an abbreviated variant of the document title.
         </t>
   </section>

   <!--title/@ascii-->
   <section anchor="element.title.attribute.ascii" toc="exclude">
      <name>"ascii" Attribute</name>
      <iref item="Attributes" subitem="ascii"/>
      <iref item="title element" subitem="ascii attribute"/>
      <iref item="ascii attribute" subitem="in title element"/>
      <t>
         The ASCII equivalent of the title.
      </t>
   </section>
</section>

<!--tr-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.tr">
   <name>
      <tt>&lt;tr&gt;</tt>
   </name>
   <x:anchor-alias value="tr"/>
   <iref item="Elements" subitem="tr" primary="true"/>
   <iref item="tr element" primary="true"/>
   <t>
      A row of a table.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>tbody</x:ref>&gt; (<xref target="element.tbody"/>), &lt;<x:ref>tfoot</x:ref>&gt; (<xref target="element.tfoot"/>), and &lt;<x:ref>thead</x:ref>&gt; (<xref target="element.thead"/>).</t>
   <t anchor="element.tr.contents"><!--AG-->
      <xref format="none" target="grammar.tr">Content model</xref>:
    </t>
   <t><!--AG-->In any order, but at least one of:</t>
   <ul><!--AG-->
      <li><!--AG-->
         <iref item="Elements" subitem="td"/>
         <iref item="td element" subitem="inside tr"/>&lt;<x:ref>td</x:ref>&gt; elements (<xref target="element.td"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="th"/>
         <iref item="th element" subitem="inside tr"/>&lt;<x:ref>th</x:ref>&gt; elements (<xref target="element.th"/>)</li>
   </ul>

   <!--tr/@anchor-->
   <section anchor="element.tr.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="tr element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in tr element"/>
      <t>
        Document-wide unique identifier for the row.
      </t>
   </section>
</section>

<!--tt-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.tt">
   <name>
      <tt>&lt;tt&gt;</tt>
   </name>
   <x:anchor-alias value="tt"/>
   <iref item="Elements" subitem="tt" primary="true"/>
   <iref item="tt element" primary="true"/>
   <t>
        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.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>annotation</x:ref>&gt; (<xref target="element.annotation"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>cref</x:ref>&gt; (<xref target="element.cref"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>dt</x:ref>&gt; (<xref target="element.dt"/>), &lt;<x:ref>em</x:ref>&gt; (<xref target="element.em"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>name</x:ref>&gt; (<xref target="element.name"/>), &lt;<x:ref>preamble</x:ref>&gt; (<xref target="element.preamble"/>), &lt;<x:ref>refcontent</x:ref>&gt; (<xref target="element.refcontent"/>), &lt;<x:ref>strong</x:ref>&gt; (<xref target="element.strong"/>), &lt;<x:ref>sub</x:ref>&gt; (<xref target="element.sub"/>), &lt;<x:ref>sup</x:ref>&gt; (<xref target="element.sup"/>), &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), and &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>).</t>
   <t anchor="element.tt.contents"><!--AG-->
      <xref format="none" target="grammar.tt">Content model</xref>:
    </t>
   <t><!--AG-->In any order:</t>
   <ul><!--AG-->
      <li><!--AG-->Text</li>
      <li><!--AG-->
         <iref item="Elements" subitem="bcp14"/>
         <iref item="bcp14 element" subitem="inside tt"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="cref"/>
         <iref item="cref element" subitem="inside tt"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="em"/>
         <iref item="em element" subitem="inside tt"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="eref"/>
         <iref item="eref element" subitem="inside tt"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="iref"/>
         <iref item="iref element" subitem="inside tt"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="relref"/>
         <iref item="relref element" subitem="inside tt"/>&lt;<x:ref>relref</x:ref>&gt; elements (<xref target="element.relref"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="strong"/>
         <iref item="strong element" subitem="inside tt"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sub"/>
         <iref item="sub element" subitem="inside tt"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="sup"/>
         <iref item="sup element" subitem="inside tt"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</li>
      <li><!--AG-->
         <iref item="Elements" subitem="xref"/>
         <iref item="xref element" subitem="inside tt"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</li>
   </ul>
</section>

<!--ul-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.ul">
   <name>
      <tt>&lt;ul&gt;</tt>
   </name>
   <x:anchor-alias value="ul"/>
   <iref item="Elements" subitem="ul" primary="true"/>
   <iref item="ul element" primary="true"/>
   <t>
      An unordered list. The labels on the items will be symbols picked by the formatter.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>abstract</x:ref>&gt; (<xref target="element.abstract"/>), &lt;<x:ref>aside</x:ref>&gt; (<xref target="element.aside"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>note</x:ref>&gt; (<xref target="element.note"/>), &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), and &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>).</t>
   <t anchor="element.ul.contents"><!--AG-->
      <xref format="none" target="grammar.ul">Content model</xref>:
    </t>
        
   <t><!--AG-->
      <iref item="Elements" subitem="li"/>
      <iref item="li element" subitem="inside ul"/>One or more &lt;<x:ref>li</x:ref>&gt; elements (<xref target="element.li"/>)</t>
      

   <!--ul/@anchor-->
   <section anchor="element.ul.attribute.anchor" toc="exclude">
      <name>"anchor" Attribute</name>
      <iref item="Attributes" subitem="anchor"/>
      <iref item="ul element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in ul element"/>
      <t>
        Document-wide unique identifier for the list.
      </t>
   </section>

   <!--ul/@empty-->
   <section anchor="element.ul.attribute.empty" toc="exclude">
      <name>"empty" Attribute</name>
      <iref item="Attributes" subitem="empty"/>
      <iref item="ul element" subitem="empty attribute"/>
      <iref item="empty attribute" subitem="in ul element"/>
      <t>
         Defines whether or not the label is empty. empty="true" indicates that no label will be shown.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"false" (default)</li>
         <li>"true"</li>
      </ul>
   </section>

   <!--ul/@spacing-->
   <section anchor="element.ul.attribute.spacing" toc="exclude">
      <name>"spacing" Attribute</name>
      <iref item="Attributes" subitem="spacing"/>
      <iref item="ul element" subitem="spacing attribute"/>
      <iref item="spacing attribute" subitem="in ul element"/>
      <t>
         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.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"normal" (default)</li>
         <li>"compact"</li>
      </ul>
   </section>
</section>

<!--uri-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.uri">
   <name>
      <tt>&lt;uri&gt;</tt>
   </name>
   <x:anchor-alias value="uri"/>
   <iref item="Elements" subitem="uri" primary="true"/>
   <iref item="uri element" primary="true"/>
   <t>
      Contains a web address associated with the author.
   </t>
   <t>
      The contents should be a valid URI; this most likely will be an "http:" or "https:" URI. 
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>address</x:ref>&gt; (<xref target="element.address"/>).</t>
   <t anchor="element.uri.contents"><!--AG-->
      <xref format="none" target="grammar.uri">Content model</xref>: only text content.</t>
</section>

<!--workgroup-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.workgroup">
   <name>
      <tt>&lt;workgroup&gt;</tt>
   </name>
   <x:anchor-alias value="workgroup"/>
   <iref item="Elements" subitem="workgroup" primary="true"/>
   <iref item="workgroup element" primary="true"/>
   <t>
      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).
   </t>
   <t>
      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 &lt;<x:ref>rfc</x:ref>&gt; element
      (<xref target="element.rfc.attribute.submissionType"/>).
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>front</x:ref>&gt; (<xref target="element.front"/>).</t>
   <t anchor="element.workgroup.contents"><!--AG-->
      <xref format="none" target="grammar.workgroup">Content model</xref>: only text content.</t>
</section>

<!--xref-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" anchor="element.xref">
   <name>
      <tt>&lt;xref&gt;</tt>
   </name>
   <x:anchor-alias value="xref"/>
   <iref item="Elements" subitem="xref" primary="true"/>
   <iref item="xref element" primary="true"/>
   <t>
      A reference to an anchor in this document.
      Formatters that have links (such as HTML and PDF) are likely to render &lt;xref&gt; 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.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>annotation</x:ref>&gt; (<xref target="element.annotation"/>), &lt;<x:ref>blockquote</x:ref>&gt; (<xref target="element.blockquote"/>), &lt;<x:ref>c</x:ref>&gt; (<xref target="element.c"/>), &lt;<x:ref>cref</x:ref>&gt; (<xref target="element.cref"/>), &lt;<x:ref>dd</x:ref>&gt; (<xref target="element.dd"/>), &lt;<x:ref>dt</x:ref>&gt; (<xref target="element.dt"/>), &lt;<x:ref>em</x:ref>&gt; (<xref target="element.em"/>), &lt;<x:ref>li</x:ref>&gt; (<xref target="element.li"/>), &lt;<x:ref>name</x:ref>&gt; (<xref target="element.name"/>), &lt;<x:ref>postamble</x:ref>&gt; (<xref target="element.postamble"/>), &lt;<x:ref>preamble</x:ref>&gt; (<xref target="element.preamble"/>), &lt;<x:ref>strong</x:ref>&gt; (<xref target="element.strong"/>), &lt;<x:ref>sub</x:ref>&gt; (<xref target="element.sub"/>), &lt;<x:ref>sup</x:ref>&gt; (<xref target="element.sup"/>), &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>), &lt;<x:ref>td</x:ref>&gt; (<xref target="element.td"/>), &lt;<x:ref>th</x:ref>&gt; (<xref target="element.th"/>), &lt;<x:ref>tt</x:ref>&gt; (<xref target="element.tt"/>), and &lt;<x:ref>ttcol</x:ref>&gt; (<xref target="element.ttcol"/>).</t>
   <t anchor="element.xref.contents"><!--AG-->
      <xref format="none" target="grammar.xref">Content model</xref>: only text content.</t>

   <!--xref/@format-->
   <section anchor="element.xref.attribute.format" toc="exclude">
      <name>"format" Attribute</name>
      <iref item="Attributes" subitem="format"/>
      <iref item="xref element" subitem="format attribute"/>
      <iref item="format attribute" subitem="in xref element"/>
      <t>
        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.
      </t>
      <t>
         <iref item="xref formats" subitem="counter" primary="true"/>
        "counter"
        <list style="empty">
            <t>
            The "derivedContent" attribute will contain just a counter.
            This is used for targets that are
            &lt;<x:ref>section</x:ref>&gt;, &lt;<x:ref>figure</x:ref>&gt;, &lt;<x:ref>table</x:ref>&gt;, or items in an ordered list.
            Using "format='counter'" where the target is any other type of element is an error.
            </t>
            <t>
            For example, with an input of:
<figure><artwork type="example" x:lang="">
      &lt;section anchor="overview"&gt;Protocol Overview&lt;/section&gt;
      . . .
      See Section &lt;xref target="overview" format="counter"/&gt;
      for an overview.
</artwork></figure>
            </t>
            <t>
               An HTML formatter might generate:
<figure><artwork type="example" x:lang="">
      See Section &lt;a href="#overview"&gt;1.7&lt;/a&gt; for an overview.
</artwork></figure>
            </t>
         </list>
      </t>
      <t>
         <iref item="xref formats" subitem="default" primary="true"/>
        "default"
        <list style="empty">
            <t>
            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 &lt;<x:ref>reference</x:ref>&gt;,
            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.)
            </t>
            <t>
            For example, with an input of:
<figure><artwork type="example" x:lang="">
      &lt;section anchor="overview"&gt;Protocol Overview&lt;/section&gt;
      . . .
      See &lt;xref target="overview"/&gt; for an overview.
</artwork></figure>
            </t>
            <t>
               An HTML formatter might generate:
<figure><artwork type="example" x:lang="">
      See &lt;a href="#overview"&gt;Section 1.7&lt;/a&gt; for an overview.
</artwork></figure>
            </t>
         </list>
      </t>
      <t>
         <iref item="xref formats" subitem="none" primary="true"/>
        "none"
        <list style="empty">
            <t>
            Deprecated.
          </t>
         </list>
      </t>
      <t>
         <iref item="xref formats" subitem="title" primary="true"/>
        "title"
        <list style="empty">
            <t>
            If the target is a &lt;<x:ref>reference</x:ref>&gt; element, the "derivedContent" attribute will contain the name of
            the reference, extracted from the &lt;<x:ref>title</x:ref>&gt; child of the
            &lt;<x:ref>front</x:ref>&gt; child of the reference.
            Or, if the target element has a &lt;<x:ref>name</x:ref>&gt; child element, the "derivedContent" attribute will contain the
            text content of that &lt;<x:ref>name</x:ref>&gt; element concatenated with the text content of
            each descendant node of &lt;<x:ref>name</x:ref>&gt; (that is, stripping out all of the
            XML markup, leaving only the text).
            Or, if the target element does not contain a &lt;<x:ref>name</x:ref>&gt; child element,
            the "derivedContent" attribute will contain the name of the "anchor" attribute of that element
            with no other adornment.
          </t>
         </list>
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"default" (default)</li>
         <li>"title"</li>
         <li>"counter"</li>
         <li>"none"</li>
      </ul>
   </section>

   <!--xref/@pageno-->
   <section anchor="element.xref.attribute.pageno" toc="exclude">
      <name>"pageno" Attribute</name>
      <iref item="Attributes" subitem="pageno"/>
      <iref item="xref element" subitem="pageno attribute"/>
      <iref item="pageno attribute" subitem="in xref element"/>
      <t>
            Deprecated.
      </t>
      <t><!--AG-->Allowed values:</t>
      <ul><!--AG-->
         <li>"true"</li>
         <li>"false" (default)</li>
      </ul>
   </section>

   <!--xref/@target-->
   <section anchor="element.xref.attribute.target" toc="exclude">
      <name>"target" Attribute <em> (Mandatory)</em>
      </name>
      <iref item="Attributes" subitem="target"/>
      <iref item="xref element" subitem="target attribute"/>
      <iref item="target attribute" subitem="in xref element"/>
      <t>
        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.
      </t>
   </section>
</section>
<?ENDINC xml2rfcv3-spec.xml ?>
</section>

<section xmlns:x="http://purl.org/net/xml2rfc/ext" title="Elements from v2 That Have Been Deprecated" anchor="deprecatedelements">

<t>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.</t>

<!--c-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" title="&lt;c&gt;" anchor="element.c">
   <x:anchor-alias value="c"/>
   <iref item="Elements" subitem="c" primary="true"/>
   <iref item="c element" primary="true"/>
   <t>
      Deprecated. Instead, use &lt;<x:ref>tr</x:ref>&gt;, &lt;<x:ref>td</x:ref>&gt;, and &lt;<x:ref>th</x:ref>&gt;.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>texttable</x:ref>&gt; (<xref target="element.texttable"/>).</t>
   <t anchor="element.c.contents"><!--AG-->
      Content model:
    </t>
   <t><!--AG-->In any order: <list style="symbols">
         <t><!--AG-->Text</t>
         <t><!--AG-->
            <iref item="Elements" subitem="bcp14"/>
            <iref item="bcp14 element" subitem="inside c"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="cref"/>
            <iref item="cref element" subitem="inside c"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="em"/>
            <iref item="em element" subitem="inside c"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="eref"/>
            <iref item="eref element" subitem="inside c"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="iref"/>
            <iref item="iref element" subitem="inside c"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="spanx"/>
            <iref item="spanx element" subitem="inside c"/>&lt;<x:ref>spanx</x:ref>&gt; elements (<xref target="element.spanx"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="strong"/>
            <iref item="strong element" subitem="inside c"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="sub"/>
            <iref item="sub element" subitem="inside c"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="sup"/>
            <iref item="sup element" subitem="inside c"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="tt"/>
            <iref item="tt element" subitem="inside c"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="xref"/>
            <iref item="xref element" subitem="inside c"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</t>
      </list>
   </t>
</section>

<!--facsimile-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" title="&lt;facsimile&gt;" anchor="element.facsimile">
   <x:anchor-alias value="facsimile"/>
   <iref item="Elements" subitem="facsimile" primary="true"/>
   <iref item="facsimile element" primary="true"/>
   <t>
      Deprecated. The &lt;<x:ref>email</x:ref>&gt; element is a much more useful way to get in touch with authors.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>address</x:ref>&gt; (<xref target="element.address"/>).</t>
   <t anchor="element.facsimile.contents"><!--AG-->Content model: only text content.</t>
</section>

<!--format-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" title="&lt;format&gt;" anchor="element.format">
   <x:anchor-alias value="format"/>
   <iref item="Elements" subitem="format" primary="true"/>
   <iref item="format element" primary="true"/>
   <t>
      Deprecated. If the goal is to provide a single URI for
      a reference, use the "target" attribute in &lt;<x:ref>reference</x:ref>&gt; instead.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>reference</x:ref>&gt; (<xref target="element.reference"/>).</t>
   <t anchor="element.format.contents"><!--AG-->Content model: this element does not have any contents.</t>

   <!--format/@octets-->
   <section title='"octets" Attribute' anchor="element.format.attribute.octets" toc="exclude">
      <iref item="Attributes" subitem="octets"/>
      <iref item="format element" subitem="octets attribute"/>
      <iref item="octets attribute" subitem="in format element"/>
      <t>
        Deprecated.
       </t>
   </section>

   <!--format/@target-->
   <section title='"target" Attribute' anchor="element.format.attribute.target" toc="exclude">
      <iref item="Attributes" subitem="target"/>
      <iref item="format element" subitem="target attribute"/>
      <iref item="target attribute" subitem="in format element"/>
      <t>
        Deprecated.
       </t>
   </section>

   <!--format/@type-->
   <section title='"type" Attribute (Mandatory)' anchor="element.format.attribute.type" toc="exclude">
      <iref item="Attributes" subitem="type"/>
      <iref item="format element" subitem="type attribute"/>
      <iref item="type attribute" subitem="in format element"/>
      <t>
        Deprecated.
       </t>
   </section>
</section>

<!--list-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" title="&lt;list&gt;" anchor="element.list">
   <x:anchor-alias value="list"/>
   <iref item="Elements" subitem="list" primary="true"/>
   <iref item="list element" primary="true"/>
   <t>
      Deprecated. Instead, use
      &lt;<x:ref>dl</x:ref>&gt; for list/@style "hanging";
      &lt;<x:ref>ul</x:ref>&gt; for list/@style "empty" or "symbols"; and
      &lt;<x:ref>ol</x:ref>&gt; for list/@style "letters", "numbers", "counter", or "format".
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>).</t>
   <t anchor="element.list.contents"><!--AG-->
      Content model:
    </t>
        
   <t><!--AG-->
      <iref item="Elements" subitem="t"/>
      <iref item="t element" subitem="inside list"/>One or more &lt;<x:ref>t</x:ref>&gt; elements (<xref target="element.t"/>)</t>
      

   <!--list/@counter-->
   <section title='"counter" Attribute' anchor="element.list.attribute.counter" toc="exclude">
      <iref item="Attributes" subitem="counter"/>
      <iref item="list element" subitem="counter attribute"/>
      <iref item="counter attribute" subitem="in list element"/>
      <t>
        Deprecated. The functionality of this attribute has been replaced with &lt;<x:ref>ol</x:ref>&gt;/@start.
      </t>
   </section>

   <!--list/@hangIndent-->
   <section title='"hangIndent" Attribute' anchor="element.list.attribute.hangIndent" toc="exclude">
      <iref item="Attributes" subitem="hangIndent"/>
      <iref item="list element" subitem="hangIndent attribute"/>
      <iref item="hangIndent attribute" subitem="in list element"/>
      <t>
         Deprecated. Use &lt;<x:ref>dl</x:ref>&gt; instead.
      </t>
   </section>

   <!--list/@style-->
   <section title='"style" Attribute' anchor="element.list.attribute.style" toc="exclude">
      <iref item="Attributes" subitem="style"/>
      <iref item="list element" subitem="style attribute"/>
      <iref item="style attribute" subitem="in list element"/>
      <t>
        Deprecated.
      </t>
   </section>
</section>

<!--postamble-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" title="&lt;postamble&gt;" anchor="element.postamble">
   <x:anchor-alias value="postamble"/>
   <iref item="Elements" subitem="postamble" primary="true"/>
   <iref item="postamble element" primary="true"/>
   <t>
      Deprecated. Instead, use a regular paragraph after the figure or table.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>figure</x:ref>&gt; (<xref target="element.figure"/>) and &lt;<x:ref>texttable</x:ref>&gt; (<xref target="element.texttable"/>).</t>
   <t anchor="element.postamble.contents"><!--AG-->
      Content model:
    </t>
   <t><!--AG-->In any order: <list style="symbols">
         <t><!--AG-->Text</t>
         <t><!--AG-->
            <iref item="Elements" subitem="bcp14"/>
            <iref item="bcp14 element" subitem="inside postamble"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="cref"/>
            <iref item="cref element" subitem="inside postamble"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="em"/>
            <iref item="em element" subitem="inside postamble"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="eref"/>
            <iref item="eref element" subitem="inside postamble"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="iref"/>
            <iref item="iref element" subitem="inside postamble"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="spanx"/>
            <iref item="spanx element" subitem="inside postamble"/>&lt;<x:ref>spanx</x:ref>&gt; elements (<xref target="element.spanx"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="strong"/>
            <iref item="strong element" subitem="inside postamble"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="sub"/>
            <iref item="sub element" subitem="inside postamble"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="sup"/>
            <iref item="sup element" subitem="inside postamble"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="tt"/>
            <iref item="tt element" subitem="inside postamble"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="xref"/>
            <iref item="xref element" subitem="inside postamble"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</t>
      </list>
   </t>
</section>

<!--preamble-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" title="&lt;preamble&gt;" anchor="element.preamble">
   <x:anchor-alias value="preamble"/>
   <iref item="Elements" subitem="preamble" primary="true"/>
   <iref item="preamble element" primary="true"/>
   <t>
      Deprecated. Instead, use a regular paragraph before the figure or table.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>figure</x:ref>&gt; (<xref target="element.figure"/>) and &lt;<x:ref>texttable</x:ref>&gt; (<xref target="element.texttable"/>).</t>
   <t anchor="element.preamble.contents"><!--AG-->
      Content model:
    </t>
   <t><!--AG-->In any order: <list style="symbols">
         <t><!--AG-->Text</t>
         <t><!--AG-->
            <iref item="Elements" subitem="bcp14"/>
            <iref item="bcp14 element" subitem="inside preamble"/>&lt;<x:ref>bcp14</x:ref>&gt; elements (<xref target="element.bcp14"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="cref"/>
            <iref item="cref element" subitem="inside preamble"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="em"/>
            <iref item="em element" subitem="inside preamble"/>&lt;<x:ref>em</x:ref>&gt; elements (<xref target="element.em"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="eref"/>
            <iref item="eref element" subitem="inside preamble"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="iref"/>
            <iref item="iref element" subitem="inside preamble"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="spanx"/>
            <iref item="spanx element" subitem="inside preamble"/>&lt;<x:ref>spanx</x:ref>&gt; elements (<xref target="element.spanx"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="strong"/>
            <iref item="strong element" subitem="inside preamble"/>&lt;<x:ref>strong</x:ref>&gt; elements (<xref target="element.strong"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="sub"/>
            <iref item="sub element" subitem="inside preamble"/>&lt;<x:ref>sub</x:ref>&gt; elements (<xref target="element.sub"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="sup"/>
            <iref item="sup element" subitem="inside preamble"/>&lt;<x:ref>sup</x:ref>&gt; elements (<xref target="element.sup"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="tt"/>
            <iref item="tt element" subitem="inside preamble"/>&lt;<x:ref>tt</x:ref>&gt; elements (<xref target="element.tt"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="xref"/>
            <iref item="xref element" subitem="inside preamble"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</t>
      </list>
   </t>
</section>

<!--spanx-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" title="&lt;spanx&gt;" anchor="element.spanx">
   <x:anchor-alias value="spanx"/>
   <iref item="Elements" subitem="spanx" primary="true"/>
   <iref item="spanx element" primary="true"/>
   <t>
      Deprecated.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>annotation</x:ref>&gt; (<xref target="element.annotation"/>), &lt;<x:ref>c</x:ref>&gt; (<xref target="element.c"/>), &lt;<x:ref>postamble</x:ref>&gt; (<xref target="element.postamble"/>), &lt;<x:ref>preamble</x:ref>&gt; (<xref target="element.preamble"/>), and &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>).</t>
   <t anchor="element.spanx.contents"><!--AG-->Content model: only text content.</t>

   <!--spanx/@style-->
   <section title='"style" Attribute' anchor="element.spanx.attribute.style" toc="exclude">
      <iref item="Attributes" subitem="style"/>
      <iref item="spanx element" subitem="style attribute"/>
      <iref item="style attribute" subitem="in spanx element"/>
      <t>
         Deprecated. Instead of &lt;spanx style="emph"&gt;, use &lt;<x:ref>em</x:ref>&gt;;
      instead of &lt;spanx style="strong"&gt;, use &lt;<x:ref>strong</x:ref>&gt;;
      instead of &lt;spanx style="verb"&gt;, use &lt;tt&gt;.
      </t>
   </section>

   <!--spanx/@xml:space-->
   <section title='"xml:space" Attribute' anchor="element.spanx.attribute.xml-space" toc="exclude">
      <iref item="Attributes" subitem="xml:space"/>
      <iref item="spanx element" subitem="xml:space attribute"/>
      <iref item="xml:space attribute" subitem="in spanx element"/>
      <t>
         Deprecated.
      </t>
      <t><!--AG-->Allowed values: <list style="symbols">
            <t>"default"</t>
            <t>"preserve" (default)</t>
         </list>
      </t>
   </section>
</section>

<!--texttable-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" title="&lt;texttable&gt;" anchor="element.texttable">
   <x:anchor-alias value="texttable"/>
   <iref item="Elements" subitem="texttable" primary="true"/>
   <iref item="texttable element" primary="true"/>
   <t>
      Deprecated. Use &lt;<x:ref>table</x:ref>&gt; instead.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>aside</x:ref>&gt; (<xref target="element.aside"/>) and &lt;<x:ref>section</x:ref>&gt; (<xref target="element.section"/>).</t>
   <t anchor="element.texttable.contents"><!--AG-->Content model:</t>
   <t><!--AG-->In this order:<list style="numbers">
        
         <t><!--AG-->
            <iref item="Elements" subitem="name"/>
            <iref item="name element" subitem="inside texttable"/>One optional &lt;<x:ref>name</x:ref>&gt; element (<xref target="element.name"/>)</t>
      
        
         <t><!--AG-->
            <iref item="Elements" subitem="preamble"/>
            <iref item="preamble element" subitem="inside texttable"/>One optional &lt;<x:ref>preamble</x:ref>&gt; element (<xref target="element.preamble"/>)</t>
      
        
         <t><!--AG-->
            <iref item="Elements" subitem="ttcol"/>
            <iref item="ttcol element" subitem="inside texttable"/>One or more &lt;<x:ref>ttcol</x:ref>&gt; elements (<xref target="element.ttcol"/>)</t>
      
        
         <t><!--AG-->
            <iref item="Elements" subitem="c"/>
            <iref item="c element" subitem="inside texttable"/>Optional &lt;<x:ref>c</x:ref>&gt; elements (<xref target="element.c"/>)</t>
      
        
         <t><!--AG-->
            <iref item="Elements" subitem="postamble"/>
            <iref item="postamble element" subitem="inside texttable"/>One optional &lt;<x:ref>postamble</x:ref>&gt; element (<xref target="element.postamble"/>)</t>
      
      </list>
   </t>

   <!--texttable/@align-->
   <section title='"align" Attribute' anchor="element.texttable.attribute.align" toc="exclude">
      <iref item="Attributes" subitem="align"/>
      <iref item="texttable element" subitem="align attribute"/>
      <iref item="align attribute" subitem="in texttable element"/>
      <t>
            Deprecated.
         </t>
      <t><!--AG-->Allowed values: <list style="symbols">
            <t>"left"</t>
            <t>"center" (default)</t>
            <t>"right"</t>
         </list>
      </t>
   </section>

   <!--texttable/@anchor-->
   <section title='"anchor" Attribute' anchor="element.texttable.attribute.anchor" toc="exclude">
      <iref item="Attributes" subitem="anchor"/>
      <iref item="texttable element" subitem="anchor attribute"/>
      <iref item="anchor attribute" subitem="in texttable element"/>
      <t>
        Deprecated.
      </t>
   </section>

   <!--texttable/@style-->
   <section title='"style" Attribute' anchor="element.texttable.attribute.style" toc="exclude">
      <iref item="Attributes" subitem="style"/>
      <iref item="texttable element" subitem="style attribute"/>
      <iref item="style attribute" subitem="in texttable element"/>
      <t>
        Deprecated.
      </t>
   </section>

   <!--texttable/@suppress-title-->
   <section title='"suppress-title" Attribute' anchor="element.texttable.attribute.suppress-title" toc="exclude">
      <iref item="Attributes" subitem="suppress-title"/>
      <iref item="texttable element" subitem="suppress-title attribute"/>
      <iref item="suppress-title attribute" subitem="in texttable element"/>
      <t>
        Deprecated.
      </t>
      <t><!--AG-->Allowed values: <list style="symbols">
            <t>"true"</t>
            <t>"false" (default)</t>
         </list>
      </t>
   </section>

   <!--texttable/@title-->
   <section title='"title" Attribute' anchor="element.texttable.attribute.title" toc="exclude">
      <iref item="Attributes" subitem="title"/>
      <iref item="texttable element" subitem="title attribute"/>
      <iref item="title attribute" subitem="in texttable element"/>
      <t>
            Deprecated.
      </t>
   </section>
</section>

<!--ttcol-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" title="&lt;ttcol&gt;" anchor="element.ttcol">
   <x:anchor-alias value="ttcol"/>
   <iref item="Elements" subitem="ttcol" primary="true"/>
   <iref item="ttcol element" primary="true"/>
   <t>
      Deprecated. Instead, use &lt;<x:ref>tr</x:ref>&gt;, &lt;<x:ref>td</x:ref>&gt;, and &lt;<x:ref>th</x:ref>&gt;.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>texttable</x:ref>&gt; (<xref target="element.texttable"/>).</t>
   <t anchor="element.ttcol.contents"><!--AG-->
      Content model:
    </t>
   <t><!--AG-->In any order: <list style="symbols">
         <t><!--AG-->Text</t>
         <t><!--AG-->
            <iref item="Elements" subitem="cref"/>
            <iref item="cref element" subitem="inside ttcol"/>&lt;<x:ref>cref</x:ref>&gt; elements (<xref target="element.cref"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="eref"/>
            <iref item="eref element" subitem="inside ttcol"/>&lt;<x:ref>eref</x:ref>&gt; elements (<xref target="element.eref"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="iref"/>
            <iref item="iref element" subitem="inside ttcol"/>&lt;<x:ref>iref</x:ref>&gt; elements (<xref target="element.iref"/>)</t>
         <t><!--AG-->
            <iref item="Elements" subitem="xref"/>
            <iref item="xref element" subitem="inside ttcol"/>&lt;<x:ref>xref</x:ref>&gt; elements (<xref target="element.xref"/>)</t>
      </list>
   </t>

   <!--ttcol/@align-->
   <section title='"align" Attribute' anchor="element.ttcol.attribute.align" toc="exclude">
      <iref item="Attributes" subitem="align"/>
      <iref item="ttcol element" subitem="align attribute"/>
      <iref item="align attribute" subitem="in ttcol element"/>
      <t>
        Deprecated.
      </t>
      <t><!--AG-->Allowed values: <list style="symbols">
            <t>"left" (default)</t>
            <t>"center"</t>
            <t>"right"</t>
         </list>
      </t>
   </section>

   <!--ttcol/@width-->
   <section title='"width" Attribute' anchor="element.ttcol.attribute.width" toc="exclude">
      <iref item="Attributes" subitem="width"/>
      <iref item="ttcol element" subitem="width attribute"/>
      <iref item="width attribute" subitem="in ttcol element"/>
      <t>
         Deprecated.
      </t>
   </section>
</section>

<!--vspace-->
<section xmlns:x="http://purl.org/net/xml2rfc/ext" title="&lt;vspace&gt;" anchor="element.vspace">
   <x:anchor-alias value="vspace"/>
   <iref item="Elements" subitem="vspace" primary="true"/>
   <iref item="vspace element" primary="true"/>
   <t>
      Deprecated.  In earlier versions of this format, &lt;vspace&gt; 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 &lt;<x:ref>t</x:ref>&gt; elements inside the
      &lt;<x:ref>li</x:ref>&gt; element. Other uses have no direct replacement.
   </t>
   <t><!--AG-->This element appears as a child element of &lt;<x:ref>t</x:ref>&gt; (<xref target="element.t"/>).</t>
   <t anchor="element.vspace.contents"><!--AG-->Content model: this element does not have any contents.</t>

   <!--vspace/@blankLines-->
   <section title='"blankLines" Attribute' anchor="element.vspace.attribute.blankLines" toc="exclude">
      <iref item="Attributes" subitem="blankLines"/>
      <iref item="vspace element" subitem="blankLines attribute"/>
      <iref item="blankLines attribute" subitem="in vspace element"/>
      <t>
         Deprecated.
      </t>
   </section>
</section>

</section>

<section title="SVG" anchor="element.svg">
   <x:anchor-alias value="svg"/>
<t>
The discussion of the use of SVG can be found in <xref target="RFC7996"/>.
This element is part of the namespace "http://www.w3.org/2000/svg".
</t>
</section>

<section title="Use of CDATA Structures and Escaping" anchor="cdata.and.escaping">

<t>
A common problem authors have with &lt;<x:ref>artwork</x:ref>&gt; and &lt;<x:ref>sourcecode</x:ref>&gt;
elements is that the XML processor returns errors
if the text in the artwork contains either the "&amp;" or "&lt;" character, or the string "]]&gt;".
To avoid these problems, the "&amp;" and "&lt;" characters may be escaped using the strings
"&amp;amp;" and "&amp;lt;", respectively; the "]]&gt;" string can be represented as "]]&amp;gt;".
Alternatively, they may be surrounded in a CDATA structure: "&lt;![CDATA[]]&gt;".  For example:
</t>
<figure><preamble>Desired output:</preamble><artwork type="example">
   allowed-chars = "." | "," | "&amp;" | "&lt;" | "&gt;" | "|"
</artwork></figure>
<figure><preamble>Using escaping:</preamble><artwork type="example" x:lang="xml">
&lt;sourcecode&gt;
   allowed-chars = "." | "," | "&amp;amp;" | "&amp;lt;" | "&amp;gt;" | "|"
&lt;/sourcecode&gt;
</artwork></figure>
<figure><preamble>Using CDATA:</preamble><artwork type="example" x:lang="xml">
&lt;sourcecode&gt;
&lt;![CDATA[   allowed-chars = "." | "," | "&amp;" | "&lt;" | "&gt;" | "|"]]&gt;
&lt;/sourcecode&gt;
</artwork></figure>
<t>
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.
</t>

</section>

<section title="Internationalization Considerations" anchor="i18n.considerations">
<t>
  This format is based on <xref target="XML"/> and thus does not have any
  issues representing arbitrary Unicode <xref target="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 <xref target="RFC7997"/>.
</t>
</section>

<section title="Security Considerations" anchor="security.considerations">
<t>
  The "name" attribute of the &lt;<x:ref>artwork</x:ref>&gt; element
  (<xref target="element.artwork.attribute.name"/>)
  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 <xref target="RFC6266" x:fmt="of" x:sec="4.3"/> for
  more information.
</t>
<t>
    The "src" attribute of the &lt;<x:ref>artwork</x:ref>&gt; 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.
</t>
<t>
  The "type" attribute of the &lt;<x:ref>artwork</x:ref>&gt; and &lt;<x:ref>sourcecode</x:ref>&gt; 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.
</t>
<t>
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.
</t>
<t>
  All security considerations related to XML processing are
  relevant as well (see <xref target="RFC3470" x:fmt="of" x:sec="7"/>).
</t>
</section>

<section title="IANA Considerations" anchor="iana.considerations">
<section title="Internet Media Type Registration">
<iref item="Media Type" subitem="application/rfc+xml" primary="true"/>
<iref item="application/rfc+xml Media Type" primary="true"/>
<t>
  IANA maintains the registry of Internet Media Types <xref target="RFC6838"/>
  at <eref target="https://www.iana.org/assignments/media-types"/>.
</t>
<t>
  This document updates the specification for the Internet Media Type
  "application/rfc+xml" from the one in <xref target="RFC7749"/>. The following has been registered with IANA.
</t>
<t>
  <list style="hanging" x:indent="12em">
    <t hangText="Type name:">
      application
    </t>
    <t hangText="Subtype name:">
      rfc+xml
    </t>
    <t hangText="Required parameters:">
      There are no required parameters.
    </t>
    <t hangText="Optional parameters:">
      "charset": This parameter has identical semantics to the charset
      parameter of the "application/xml" Media Type specified in <xref target="RFC7303" x:fmt="of" x:sec="9.1"/>.
    </t>
    <t hangText="Encoding considerations:">
      Identical to those of "application/xml" as described in <xref target="RFC7303" x:fmt="of" x:sec="9.1"/>.
    </t>
    <t hangText="Security considerations:">
      As defined in <xref target="security.considerations"/>. In addition, as
      this Media Type uses the "+xml" convention, it inherits the security
      considerations described in <xref target="RFC7303" x:fmt="of" x:sec="10"/>.
    </t>
    <t hangText="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.
    </t>
    <t hangText="Published specification:">
      This specification.
    </t>
    <t hangText="Applications that use this Media Type:">
      Applications that transform xml2rfc to output representations such
      as plain text or HTML, plus additional analysis tools.
    </t>
    <t hangText="Fragment identifier considerations:">
      The "anchor" attribute is used for assigning document-wide unique
      identifiers that can be used as shorthand pointers, as described
      in <xref target="XPOINTER"/>.
    </t>
    <t hangText="Additional information:">
      <list style="hanging">
        <t hangText="Deprecated alias names for this type:">None</t>
        <t hangText="Magic number(s):">As specified for "application/xml" in <xref target="RFC7303"/>.</t>
        <t hangText="File extension(s):">.xml or .rfcxml when disambiguation from other XML files is needed</t>
        <t hangText="Macintosh file type code(s):">TEXT</t>
      </list>
    </t>
    <t hangText="Person &amp; email address to contact for further information:">
      See the Author's Address section of RFC 7991.
    </t>
    <t hangText="Intended usage:">
      COMMON
    </t>
    <t hangText="Restrictions on usage:">
      None
    </t>
    <t hangText="Author:">
      See the Author's Address section of RFC 7991.
    </t>
    <t hangText="Change controller:">
      RFC Series Editor (rse@rfc-editor.org)
    </t>
  </list>
</t>

</section>

<section title="Link Relation Registration">

<t>IANA has registered "convertedFrom" in the "Link Relation Types" registry <xref target="LINKRELATIONS"/>.</t>

<t>Relation Name: convertedFrom</t>

<t>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".</t>

<t>Reference: This document.</t>

<t>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.</t>

<t>Application Data: None</t>

</section>

</section>

<!--

<section title="IAB Members at the Time of Publication" numbered="false">
<t>
Jari Arkko (IETF Chair) <vspace blankLines="0"/>
Mary Barnes <vspace blankLines="0"/>
Marc Blanchet <vspace blankLines="0"/>
Ralph Droms <vspace blankLines="0"/>
Ted Hardie <vspace blankLines="0"/>
Joe Hildebrand <vspace blankLines="0"/>
Russ Housley <vspace blankLines="0"/>
Erik Nordmark <vspace blankLines="0"/>
Robert Sparks <vspace blankLines="0"/>
Andrew Sullivan <vspace blankLines="0"/>
Dave Thaler <vspace blankLines="0"/>
Brian Trammell <vspace blankLines="0"/>
Suzanne Woolf
</t>
</section>

-->

  </middle>
  <back>
  
<references title="Normative References">

  <reference anchor='BCP14' target='http://www.rfc-editor.org/info/bcp14'>
    <front>
      <title>Key words for use in RFCs to Indicate Requirement Levels</title>
      <author initials='S.' surname='Bradner' fullname='S. Bradner'/>
      <date year='1997' month='March' />
    </front>
    <seriesInfo name='BCP' value='14'/>
    <seriesInfo name='RFC' value='2119'/>
  </reference>

  <reference anchor='XML' target='https://www.w3.org/TR/2008/REC-xml-20081126/'>
    <front>
      <title>Extensible Markup Language (XML) 1.0 (Fifth Edition)</title>
      <author fullname='Tim Bray' surname='Bray' initials='T.'/>
      <author fullname='Jean Paoli' surname='Paoli' initials='J.'/>
      <author fullname='Michael Sperberg-McQueen' surname='Sperberg-McQueen' initials='C.'/>
      <author fullname='Eve Maler' surname='Maler' initials='E.'/>
      <author fullname='Francois Yergeau' surname='Yergeau' initials='F.'/>
      <date year='2008' month='November' day='26'/>
    </front>
    <seriesInfo name='W3C Recommendation' value='REC-xml-20081126'/>
    <annotation>
      Latest version available at
      <eref target='http://www.w3.org/TR/xml'/>.
    </annotation>
  </reference>

</references>

<references title="Informative References">

  <reference anchor="IDGUIDE" target="https://www.ietf.org/id-info/guidelines.html">
    <front>
      <title>Guidelines to Authors of Internet-Drafts</title>
      <author initials="R." surname="Housley" fullname="R. Housley"/>
      <date year="2010" month="December"/>
    </front>
  </reference>

  <reference anchor="LINKRELATIONS" target="https://www.iana.org/assignments/link-relations/link-relations.xhtml">
    <front>
      <title>Link Relations</title>
      <author>
        <organization>IANA</organization>
      </author>
      <date/>
    </front>
  </reference>

&rfc2026;
&rfc2397;
&rfc2629;
&rfc3339;
&rfc3470;
&rfc3667;
&rfc3966;
&rfc3978;
&rfc3986;
&rfc5234;
&rfc5378;
&rfc6068;
&rfc6266;
&rfc6838;
&rfc6949;
&rfc7303;
&rfc7322;
&rfc7669;
&rfc7749;
&rfc7841;
&rfc7996;
&rfc7997;
&rfc7998;

  <reference anchor="RNC" target="https://www.oasis-open.org/committees/relax-ng/compact-20021121.html">
    <front>
      <title>RELAX NG Compact Syntax</title>
      <author initials="J." surname="Clark" fullname="James Clark">
        <address>
          <email>jjc@jclark.com</email>
        </address>
      </author>
      <date month="November" year="2002" />
    </front>
    <seriesInfo name="The Organization for the Advancement of Structured Information Standards (OASIS)" value=""/>
  </reference>

  <reference anchor="RNG">
    <front>
      <title>Information Technology - Document Schema Definition
      Languages (DSDL) - Part 2: Regular-Grammar-Based Validation -
      RELAX NG (Second Edition)</title>
      <author fullname="ISO/IEC">
        <organization>ISO/IEC</organization>
      </author>
      <date day="15" month="December" year="2008"/>
    </front>
    <seriesInfo name="ISO/IEC" value="19757-2:2008(E)"/>
    <annotation>
      A useful source of RNG-related information is <eref target="http://relaxng.org/"/>.
    </annotation>
  </reference>

  <reference anchor="TLP1.0" target="http://trustee.ietf.org/license-info/IETF-TLP-1.htm">
    <front>
      <title>Legal Provisions Relating to IETF Documents</title>
      <author>
        <organization>IETF Trust</organization>
      </author>
      <date year="2008" month="November"/>
    </front>
  </reference>

  <reference anchor="TLP2.0" target="http://trustee.ietf.org/license-info/IETF-TLP-2.htm">
    <front>
      <title>Legal Provisions Relating to IETF Documents</title>
      <author>
        <organization>IETF Trust</organization>
      </author>
      <date year="2009" month="February"/>
    </front>
  </reference>

  <reference anchor="TLP3.0" target="http://trustee.ietf.org/license-info/IETF-TLP-3.htm">
    <front>
      <title>Legal Provisions Relating to IETF Documents</title>
      <author>
        <organization>IETF Trust</organization>
      </author>
      <date year="2009" month="September"/>
    </front>
  </reference>
  
  <reference anchor="TLP4.0" target="http://trustee.ietf.org/license-info/IETF-TLP-4.htm">
    <front>
      <title>Legal Provisions Relating to IETF Documents</title>
      <author>
        <organization>IETF Trust</organization>
      </author>
      <date year="2009" month="December"/>
    </front>
  </reference>
  
  <reference anchor="TLP5.0" target="http://trustee.ietf.org/license-info/IETF-TLP-5.htm">
    <front>
      <title>Legal Provisions Relating to IETF Documents</title>
      <author>
        <organization>IETF Trust</organization>
      </author>
      <date year="2015" month="March"/>
    </front>
  </reference>

  <reference anchor="UAX24" target="http://www.unicode.org/reports/tr24/">
    <front>
      <title>UAX #24: Unicode Script Property</title>
      <author>
        <organization>The Unicode Consortium</organization>
      </author>
      <date/>
    </front>
  </reference>

  <reference anchor="UNICODE" target="http://www.unicode.org/versions/latest/">
    <front>
      <title>The Unicode Standard</title>
      <author>
        <organization>The Unicode Consortium</organization>
      </author>
      <date/>
    </front>
  </reference>

  <reference anchor="USASCII">
    <front>
      <title>Coded Character Set -- 7-bit American Standard Code for Information Interchange</title>
      <author>
        <organization>American National Standards Institute</organization>
      </author>
      <date year="1986"/>
    </front>
    <seriesInfo name="ANSI" value="X3.4"/>
  </reference>

  <reference anchor='XInclude' target='https://www.w3.org/TR/xinclude/REC-xinclude-20061115/'>
    <front>
      <title>XML Inclusions (XInclude) Version 1.0 (Second Edition)</title>
      <author fullname='Jonathan Marsh' surname='Marsh' initials='J.'/>
      <author fullname='David Orchard' surname='Orchard' initials='D.'/>
      <author fullname='Daniel Veillard' surname='Veillard' initials='D.'/>
      <date year='2006' month='November' day='15'/>
    </front>
    <seriesInfo name='W3C Recommendation' value='REC-xinclude-20061115'/>
    <annotation>
      Latest version available at
      <eref target='http://www.w3.org/TR/xinclude/'/>.
    </annotation>
  </reference>

  <reference anchor='XPOINTER' target='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>
    <front>
      <title>XPointer Framework</title>
      <author fullname='Paul Grosso' surname='Grosso' initials='P.'/>
      <author fullname='Eve Maler' surname='Maler' initials='E.'/>
      <author fullname='Jonathan Marsh' surname='Marsh' initials='J.'/>
      <author fullname='Norman Walsh' surname='Walsh' initials='N.'/>
      <date year='2003' month='March' day='25'/>
    </front>
    <seriesInfo name='W3C Recommendation' value='REC-xptr-framework-20030325'/>
    <annotation>
      Latest version available at
      <eref target='http://www.w3.org/TR/xptr-framework/'/>.
    </annotation>
  </reference>

</references>

<section title="Front-Page (&quot;Boilerplate&quot;) Generation" anchor="front.page">

<t>The values listed here will be defined by the RFC Series Editor. Those listed here
are believed to be the current values in use.</t>

<section title="The &quot;ipr&quot; Attribute" anchor="attribute-ipr">
<t>
  This attribute value can take a long list of values, each of which describes an IPR policy for the document
  (<xref target="element.rfc.attribute.ipr"/>). 
  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.
</t>
<aside>
  <t>
    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 &lt;<x:ref>date</x:ref>&gt; element
    when archiving the XML source of an Internet-Draft on the day of submission.
  </t>
</aside>
<t>
  <em>Disclaimer: THIS ONLY PROVIDES IMPLEMENTATION INFORMATION. IF YOU NEED
  LEGAL ADVICE, PLEASE CONTACT A LAWYER.</em>
  For further information, refer to <eref target="http://trustee.ietf.org/docs/IETF-Copyright-FAQ.pdf"/>.
</t>
<t>
  For the current "Copyright Notice" text, the submissionType attribute of the &lt;rfc&gt; element
  (<xref target="element.rfc.attribute.submissionType"/>)
  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. 
</t>


<section title="Current Values: &quot;*trust200902&quot;" anchor="attribute-ipr-current">
<iref item="ipr attribute" subitem="&quot;*trust200902&quot;"/>
<t>
  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 <xref target="TLP2.0"/>.
  Updates to the document were published on September 12, 2009 <xref target="TLP3.0"/>
  and on December 28, 2009 <xref target="TLP4.0"/>,
  modifying the license for code components (see <eref target="http://trustee.ietf.org/license-info/"/>
  for further information).
  The actual text is located in Section 6 ("Text to Be Included in IETF Documents")
  of these documents.
</t>
<t>  
  The prep tool automatically produces the "correct" text, depending on the
  document's date information (see above):
</t>
<texttable align="left">
  <ttcol>TLP</ttcol><ttcol>starting with publication date</ttcol>

  <c><xref target="TLP3.0"/></c>
  <c>2009-11-01</c>

  <c><xref target="TLP4.0"/></c>
  <c>2010-04-01</c>

</texttable> 

<aside>
  <t>
    The TLP was again updated in March 2015 <xref target="TLP5.0"/>, but
    the changes made in that version do not affect the boilerplate text.
  </t>
</aside>

<section title="trust200902" anchor="attribute-ipr-trust200902">
<iref item="ipr attribute" subitem="&quot;trust200902&quot;"/>
<t>
  This value should be used unless one of the more specific &quot;*trust200902&quot;
  values is a better fit. It produces the text in Sections 6.a and 6.b of
  the TLP.
</t>
</section>

<section title="noModificationTrust200902" anchor="attribute-ipr-noModificationTrust200902">
<iref item="ipr attribute" subitem="&quot;noModificationTrust200902&quot;"/>
<t>
  This produces the additional text from Section 6.c.i of the TLP:
</t>
<blockquote>
  <t>
    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.
  </t>
</blockquote>
<aside>
  <t>
    Note: this clause is incompatible with RFCs that are published
    on the Standards Track.
  </t>
</aside>
</section>

<section title="noDerivativesTrust200902" anchor="attribute-ipr-noDerivativesTrust200902">
<iref item="ipr attribute" subitem="&quot;noDerivativesTrust200902&quot;"/>
<t>
  This produces the additional text from Section 6.c.ii of the TLP:
</t>
<blockquote>
  <t>
    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.
  </t>
</blockquote>
<aside>
  <t>
    Note: this clause is incompatible with RFCs.
  </t>
</aside>
</section>

<section title="pre5378Trust200902" anchor="attribute-ipr-pre5378Trust200902">
<iref item="ipr attribute" subitem="&quot;pre5378Trust200902&quot;"/>
<t>
  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 <xref target="RFC5378"/>:
</t>
<blockquote>
  <t>
    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.
  </t>
</blockquote>
<t>
  See Section 4 of <eref target="http://trustee.ietf.org/docs/IETF-Copyright-FAQ.pdf"/>
  for further information about when to use this value.
</t>
<aside>
  <t>
    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".
  </t>
</aside>
</section>
</section> 

<section title="Historic Values" anchor="attribute-ipr-historic">

<section title="Historic Values: &quot;*trust200811&quot;" anchor="attribute-ipr-200811">
<iref item="ipr attribute" subitem="&quot;*trust200811&quot;"/>
<t>
  The attribute values "<x:span anchor="attribute-ipr-trust200811">trust200811</x:span>",
  "<x:span anchor="attribute-ipr-noModificationTrust200811">noModificationTrust200811</x:span>", and
  "<x:span anchor="attribute-ipr-noDerivativesTrust200811">noDerivativesTrust200811</x:span>"
  are similar to their "trust200902" counterparts, except that they use text
  specified in <xref target="TLP1.0"/>.
</t>
</section>

<section title="Historic Values: &quot;*3978&quot;" anchor="attribute-ipr-3978">
<iref item="ipr attribute" subitem="&quot;*3978&quot;"/>
<t>
  The attribute values "<x:span anchor="attribute-ipr-full3978">full3978</x:span>",
  "<x:span anchor="attribute-ipr-noModification3978">noModification3978</x:span>", and
  "<x:span anchor="attribute-ipr-noDerivatives3978">noDerivatives3978</x:span>"
  are similar to their counterparts above, except that they use text
  specified in <xref target="RFC3978"/>.
</t>
</section>

<section title="Historic Values: &quot;*3667&quot;" anchor="attribute-ipr-3667">
<iref item="ipr attribute" subitem="&quot;*3667&quot;"/>
<t>
  The attribute values "<x:span anchor="attribute-ipr-full3667">full3667</x:span>",
  "<x:span anchor="attribute-ipr-noModification3667">noModification3667</x:span>", and
  "<x:span anchor="attribute-ipr-noDerivatives3667">noDerivatives3667</x:span>"
  are similar to their counterparts above, except that they use text
  specified in <xref target="RFC3667"/>.
</t>
</section>

<section title="Historic Values: &quot;*2026&quot;" anchor="attribute-ipr-2026">
<iref item="ipr attribute" subitem="&quot;*2026&quot;"/>
<t>
  The attribute values "<x:span anchor="attribute-ipr-full2026">full2026</x:span>" and
  "<x:span anchor="attribute-ipr-noDerivativeWorks2026">noDerivativeWorks2026</x:span>"
  are similar to their counterparts above, except that they use text
  specified in Section 10 of <xref target="RFC2026"/>.
</t>
<t>
  The special value "<x:span anchor="attribute-ipr-none">none</x:span>"
  was also used back then; it denied the IETF any rights beyond publication
  as an Internet-Draft.
</t>
</section>
</section>
</section>

<section title="The &quot;submissionType&quot; Attribute" anchor="attribute-submissiontype">
<t>
  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).
</t>
<t>
  The values for the attribute are "IETF" (the default value),
  "independent", "IAB", and "IRTF".
</t>
<t>
  Historically, this attribute did not affect the final appearance of RFCs, except for
  subtle differences in copyright notices.
  Nowadays (as of <xref target="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.
</t>
<t>
  For current documents, setting the "submissionType" attribute will
  have the following effect:
  <list style="symbols">
    <t>
      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 &lt;<x:ref>workgroup</x:ref>&gt; element).
    </t>
    <t>
      For RFCs, it affects the whole "Status of This Memo" section (see
      <xref x:sec="3.2" x:fmt="of" target="RFC7841"/>).
    </t>
    <t>
      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")).
    </t>
  </list>
</t>
</section>

<section title="The &quot;consensus&quot; Attribute" anchor="attribute-consensus">
<t>
  For some of the publication streams (see <xref target="attribute-submissiontype"/>),
  the "Status of This Memo" section depends on whether there was a consensus
  to publish (again, see <xref x:sec="3.4" x:fmt="of" target="RFC7841"/>).
</t>
<t>
  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.
</t>
<t>
The effect of this value for the various streams is:
  <list style="symbols">
    <t>"independent": none.</t>
    <t>"IAB": mention that there was an IAB consensus.</t>
    <t>"IETF": mention that there was an IETF consensus.</t>
    <t>"IRTF": mention that there was a research group consensus (where
      the name of the research group is extracted from the &lt;<x:ref>workgroup</x:ref>&gt;
      element).</t>
  </list>
</t>
</section>

</section>
<section title="The v3 Format and Processing Tools" anchor="tools">

<t>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.</t>

<t>The expected design of the tools that will be used with v3 documents includes:


<list style="symbols">

<x:lt><t>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 <xref target="RFC7998"/>.</t>

<t>The prep tool is expected to have many modes:

<list>

<t>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
&lt;https://www.rfc-editor.org/rse/wiki/doku.php?id=design:format-and-content-rfcs&gt;.</t>

<t>Draft mode -- The mode used by the Internet-Draft submission tool. The restrictions
for the XML from this mode will be described later.</t>

<t>Diagnostic mode -- A mode that can be used by document authors to look for errors
or warnings before they submit their documents for publication.</t>

<t>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 <xref target="RFC7998"/>.</t>

</list></t></x:lt>

<x:lt><t>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.</t></x:lt>

</list></t>

<t>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.</t>

<t>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.</t>

<t>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.</t>

<section title="Including External Text with XInclude" anchor="includingexternal">

<t>All tools for the v3 format are expected to support XInclude <xref target="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.</t>

<t>
In the v3 syntax, XInclude is expressed as the &lt;xi:include&gt; element. To use this
element, you need to include the "xi" namespace in the &lt;<x:ref>rfc</x:ref>&gt; element; that is, you need to specify
<figure><artwork type="code">
xmlns:xi="http://www.w3.org/2001/XInclude"
</artwork></figure>
as one of the attributes in the &lt;<x:ref>rfc</x:ref>&gt; element.</t>

<t>The most common way to use &lt;xi:include&gt; 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:
<figure><artwork type="example" x:lang="">
&lt;references&gt;
    &lt;xi:include href="http://xml2rfc.tools.ietf.org/public/rfc/
       bibxml/reference.RFC.2119.xml"/&gt;
    &lt;xi:include href="http://xml2rfc.tools.ietf.org/public/rfc/
       bibxml/reference.RFC.4869.xml"/&gt;
    &lt;xi:include href="http://xml2rfc.tools.ietf.org/public/rfc/
       bibxml/reference.RFC.7169.xml"/&gt;
&lt;/references&gt;
</artwork></figure>
</t>

<t>&lt;xi:include&gt; 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 &lt;xi:include&gt;. An example of pulling something from the local disk would
be:
<figure><artwork type="example" x:lang="">
&lt;x:include href="file://home/chris/ietf/drafts/commontext.xml"/&gt;
</artwork></figure>
</t>

<t>
In general, XInclude should be used instead of ENTITY references and XML Processing Instructions (PIs)
that allow external inclusions.
</t>

</section>

<section anchor="anchorsandids" title="Anchors and IDs">

<t>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.</t>

<t>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 &lt;<x:ref>xref</x:ref>&gt;
element.</t>

<t>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.</t>

<t>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.
</t>

<section anchor="overlap" title="Overlapping Values">

<t>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.</t>

<t>The following rules prevent this overlap:

<list style="symbols">

<t>"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 &lt;<x:ref>abstract</x:ref>&gt; element, it is always "s-abstract".
For the &lt;<x:ref>note</x:ref>&gt; element, it is always "s-note-nnn", where "nnn" is a sequential value.
For sections in the &lt;<x:ref>boilerplate</x:ref>&gt; element, it is always "s-boilerplate-nnn", where "nnn" is a sequential value.
</t>

<t>"pn" for &lt;<x:ref>references</x:ref>&gt; elements
has the format "s-nnn". It is important to note that "nnn" is a number, not letters,
even though the &lt;<x:ref>references</x:ref>&gt; appear in the back.
It is the number that is one higher than the highest top-level section number in &lt;<x:ref>middle</x:ref>&gt;.
If there are two or more &lt;<x:ref>references</x:ref>&gt;, "nnn" will include a dot as if
the &lt;<x:ref>references</x:ref>&gt; are a subsection of a section that is
numbered one higher than the highest top-level section number in &lt;<x:ref>middle</x:ref>&gt;.</t>

<t>"pn" for &lt;<x:ref>figure</x:ref>&gt; elements
always has the format "f-nnn", where "nnn" is the figure number.
For example, this would be "f-5" for Figure 5.</t>

<t>"pn" for &lt;<x:ref>iref</x:ref>&gt; 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 "&lt;iref item='foo'&gt;" and 
"i-foo-bar-1" for "&lt;iref item='foo' subitem='bar'&gt;".</t>

<t>"pn" for &lt;<x:ref>table</x:ref>&gt; elements
always has the format "t-nnn", where "nnn" is the table number.
For example, this would be "t-5" for Table 5.</t>

<t>"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.</t>

<t>"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.</t>

<t>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.</t>

</list>
</t>

</section>

</section>

<section anchor="prepatts" title="Attributes Controlled by the Prep Tool">

<t>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.</t>

<t>The attributes that are controlled by the prep tool are:
<list style="symbols">

<t>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.</t>

<t>&lt;artwork&gt; originalSrc -- This attribute is filled with the original value of the "src"
attribute if that attribute is removed by the prep tool.</t>

<t>&lt;figure&gt; originalSrc -- This attribute is filled with the original value of the "src"
attribute if that attribute is removed by the prep tool.</t>

<t>&lt;name&gt; "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.</t>

<t>&lt;relref&gt; "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.</t>

<t>&lt;rfc&gt; "expiresDate" attribute -- This attribute is filled with the date that an Internet-Draft
expires. The date is in the format yyyy-mm-dd.</t>

<t>&lt;rfc&gt; "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.</t>

<t>&lt;rfc&gt; "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 <xref target="UAX24"/>.  For example, if the document has Chinese
characters in it, the value might be "Common,Latin,Han". </t>

<t>&lt;sourcecode&gt; "originalSrc" attribute -- This attribute is filled with the original value of
the "src" attribute if that attribute is removed by the prep tool.</t>

<t>&lt;xref&gt; "derivedContent" attribute -- This attribute is filled in if there is no content in
the &lt;xref&gt; 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 <xref target="element.xref.attribute.format"/>.
</t>

</list></t>

<t>In addition, note that the contents of the &lt;boilerplate&gt; element
are controlled by the prep tool.</t>

</section>

</section>

<section title="RELAX NG Schema" anchor="schema">

<t>The following is the RELAX NG schema for the v3 format.</t>

<figure><artwork type="application/relax-ng-compact-syntax">
<?BEGININC xml2rfcv3.rnc.folded ?>
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"

# xml2rfc Version 3 grammar

<strong anchor="grammar.rfc">rfc</strong><iref item="rfc element"/> =
  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?
  }

<strong anchor="grammar.link">link</strong><iref item="link element"/> =
  element link {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute href { text },
    attribute rel { text }?
  }

<strong anchor="grammar.front">front</strong><iref item="front element"/> =
  element front {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    title,
    seriesInfo*,
    author+,
    date?,
    area*,
    workgroup*,
    keyword*,
    abstract?,
    note*,
    boilerplate?
  }

<strong anchor="grammar.title">title</strong><iref item="title element"/> =
  element title {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute abbrev { text }?,
    attribute ascii { text }?,
    text
  }

<strong anchor="grammar.author">author</strong><iref item="author element"/> =
  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?
  }

<strong anchor="grammar.organization">organization</strong><iref item="organization element"/> =
  element organization {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute abbrev { text }?,
    attribute ascii { text }?,
    text
  }

<strong anchor="grammar.address">address</strong><iref item="address element"/> =
  element address {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    postal?,
    phone?,
    facsimile?,
    email?,
    uri?
  }

<strong anchor="grammar.postal">postal</strong><iref item="postal element"/> =
  element postal {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    ((city | code | country | region | street)* | postalLine+)
  }

<strong anchor="grammar.street">street</strong><iref item="street element"/> =
  element street {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute ascii { text }?,
    text
  }

<strong anchor="grammar.city">city</strong><iref item="city element"/> =
  element city {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute ascii { text }?,
    text
  }

<strong anchor="grammar.region">region</strong><iref item="region element"/> =
  element region {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute ascii { text }?,
    text
  }

<strong anchor="grammar.code">code</strong><iref item="code element"/> =
  element code {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute ascii { text }?,
    text
  }

<strong anchor="grammar.country">country</strong><iref item="country element"/> =
  element country {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute ascii { text }?,
    text
  }

<strong anchor="grammar.postalLine">postalLine</strong><iref item="postalLine element"/> =
  element postalLine {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute ascii { text }?,
    text
  }

<strong anchor="grammar.phone">phone</strong><iref item="phone element"/> =
  element phone {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    text
  }

<strong anchor="grammar.facsimile">facsimile</strong><iref item="facsimile element"/> =
  element facsimile {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    text
  }

<strong anchor="grammar.email">email</strong><iref item="email element"/> =
  element email {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute ascii { text }?,
    text
  }

<strong anchor="grammar.uri">uri</strong><iref item="uri element"/> =
  element uri {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    text
  }

<strong anchor="grammar.date">date</strong><iref item="date element"/> =
  element date {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute day { text }?,
    attribute month { text }?,
    attribute year { text }?,
    empty
  }

<strong anchor="grammar.area">area</strong><iref item="area element"/> =
  element area {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    text
  }

<strong anchor="grammar.workgroup">workgroup</strong><iref item="workgroup element"/> =
  element workgroup {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    text
  }

<strong anchor="grammar.keyword">keyword</strong><iref item="keyword element"/> =
  element keyword {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    text
  }

<strong anchor="grammar.abstract">abstract</strong><iref item="abstract element"/> =
  element abstract {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute anchor { xsd:ID }?,
    attribute pn { text }?,
    (dl | ol | t | ul)+
  }

<strong anchor="grammar.note">note</strong><iref item="note element"/> =
  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)+
  }

<strong anchor="grammar.boilerplate">boilerplate</strong><iref item="boilerplate element"/> =
  element boilerplate {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    section+
  }

<strong anchor="grammar.middle">middle</strong><iref item="middle element"/> =
  element middle {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    section+
  }

<strong anchor="grammar.section">section</strong><iref item="section element"/> =
  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)*,
    section*
  }

<strong anchor="grammar.name">name</strong><iref item="name element"/> =
  element name {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute slugifiedName { text }?,
    (text | cref | eref | relref | tt | xref)*
  }

<strong anchor="grammar.t">t</strong><iref item="t element"/> =
  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)*
  }

<strong anchor="grammar.aside">aside</strong><iref item="aside element"/> =
  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)*
  }

<strong anchor="grammar.blockquote">blockquote</strong><iref item="blockquote element"/> =
  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)+)
  }

<strong anchor="grammar.list">\list</strong><iref item="list element"/> =
  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+
  }

<strong anchor="grammar.ol">ol</strong><iref item="ol element"/> =
  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+
  }

<strong anchor="grammar.ul">ul</strong><iref item="ul element"/> =
  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+
  }

<strong anchor="grammar.li">li</strong><iref item="li element"/> =
  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)+)
  }

<strong anchor="grammar.dl">dl</strong><iref item="dl element"/> =
  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)+
  }

<strong anchor="grammar.dt">dt</strong><iref item="dt element"/> =
  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)*
  }

<strong anchor="grammar.dd">dd</strong><iref item="dd element"/> =
  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)+)
  }

<strong anchor="grammar.xref">xref</strong><iref item="xref element"/> =
  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
  }

<strong anchor="grammar.relref">relref</strong><iref item="relref element"/> =
  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
  }

<strong anchor="grammar.eref">eref</strong><iref item="eref element"/> =
  element eref {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute target { text },
    text
  }

<strong anchor="grammar.iref">iref</strong><iref item="iref element"/> =
  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
  }

<strong anchor="grammar.cref">cref</strong><iref item="cref element"/> =
  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)*
  }

<strong anchor="grammar.tt">tt</strong><iref item="tt element"/> =
  element tt {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    (text
     | bcp14
     | cref
     | em
     | eref
     | iref
     | relref
     | strong
     | sub
     | sup
     | xref)*
  }

<strong anchor="grammar.strong">strong</strong><iref item="strong element"/> =
  element strong {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    (text
     | bcp14
     | cref
     | em
     | eref
     | iref
     | relref
     | sub
     | sup
     | tt
     | xref)*
  }

<strong anchor="grammar.em">em</strong><iref item="em element"/> =
  element em {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    (text
     | bcp14
     | cref
     | eref
     | iref
     | relref
     | strong
     | sub
     | sup
     | tt
     | xref)*
  }

<strong anchor="grammar.sub">sub</strong><iref item="sub element"/> =
  element sub {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    (text
     | bcp14
     | cref
     | em
     | eref
     | iref
     | relref
     | strong
     | tt
     | xref)*
  }

<strong anchor="grammar.sup">sup</strong><iref item="sup element"/> =
  element sup {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    (text
     | bcp14
     | cref
     | em
     | eref
     | iref
     | relref
     | strong
     | tt
     | xref)*
  }

<strong anchor="grammar.spanx">spanx</strong><iref item="spanx element"/> =
  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
  }

<strong anchor="grammar.vspace">vspace</strong><iref item="vspace element"/> =
  element vspace {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    [ a:defaultValue = "0" ] attribute blankLines { text }?,
    empty
  }

<strong anchor="grammar.figure">figure</strong><iref item="figure element"/> =
  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?
  }

<strong anchor="grammar.table">table</strong><iref item="table element"/> =
  element table {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute anchor { xsd:ID }?,
    attribute pn { text }?,
    name?,
    iref*,
    thead?,
    tbody+,
    tfoot?
  }

<strong anchor="grammar.preamble">preamble</strong><iref item="preamble element"/> =
  element preamble {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    (text
     | bcp14
     | cref
     | em
     | eref
     | iref
     | relref
     | spanx
     | strong
     | sub
     | sup
     | tt
     | xref)*
  }

<strong anchor="grammar.artwork">artwork</strong><iref item="artwork element"/> =
  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)
  }
# https://www.rfc-editor.org/materials/format/SVG-1.2-RFC.rnc
<strong anchor="grammar.sourcecode">sourcecode</strong><iref item="sourcecode element"/> =
  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
  }

<strong anchor="grammar.thead">thead</strong><iref item="thead element"/> =
  element thead {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute anchor { xsd:ID }?,
    tr+
  }

<strong anchor="grammar.tbody">tbody</strong><iref item="tbody element"/> =
  element tbody {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute anchor { xsd:ID }?,
    tr+
  }

<strong anchor="grammar.tfoot">tfoot</strong><iref item="tfoot element"/> =
  element tfoot {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute anchor { xsd:ID }?,
    tr+
  }

<strong anchor="grammar.tr">tr</strong><iref item="tr element"/> =
  element tr {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute anchor { xsd:ID }?,
    (td | th)+
  }

<strong anchor="grammar.td">td</strong><iref item="td element"/> =
  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)*)
  }

<strong anchor="grammar.th">th</strong><iref item="th element"/> =
  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)*)
  }

<strong anchor="grammar.postamble">postamble</strong><iref item="postamble element"/> =
  element postamble {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    (text | cref | eref | iref | spanx | xref)*
  }

<strong anchor="grammar.texttable">texttable</strong><iref item="texttable element"/> =
  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?
  }

<strong anchor="grammar.ttcol">ttcol</strong><iref item="ttcol element"/> =
  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)*
  }

<strong anchor="grammar.c">c</strong><iref item="c element"/> =
  element c {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    (text | cref | eref | iref | spanx | xref)*
  }

<strong anchor="grammar.bcp14">bcp14</strong><iref item="bcp14 element"/> =
  element bcp14 {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    text
  }

<strong anchor="grammar.br">br</strong><iref item="br element"/> =
  element br {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    empty
  }

<strong anchor="grammar.back">back</strong><iref item="back element"/> =
  element back {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    displayreference*,
    references*,
    section*
  }

<strong anchor="grammar.displayreference">displayreference</strong><iref item="displayreference element"/> =
  element displayreference {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute target { xsd:IDREF },
    attribute to { text }
  }

<strong anchor="grammar.references">references</strong><iref item="references element"/> =
  element references {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute pn { text }?,
    attribute anchor { xsd:ID }?,
    attribute title { text }?,
    name?,
    (reference | referencegroup)*
  }

<strong anchor="grammar.reference">reference</strong><iref item="reference element"/> =
  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)*
  }

<strong anchor="grammar.referencegroup">referencegroup</strong><iref item="referencegroup element"/> =
  element referencegroup {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute anchor { xsd:ID },
    reference+
  }

<strong anchor="grammar.seriesInfo">seriesInfo</strong><iref item="seriesInfo element"/> =
  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
  }

<strong anchor="grammar.format">format</strong><iref item="format element"/> =
  element format {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    attribute target { text }?,
    attribute type { text },
    attribute octets { text }?,
    empty
  }

<strong anchor="grammar.annotation">annotation</strong><iref item="annotation element"/> =
  element annotation {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    (text
     | bcp14
     | cref
     | em
     | eref
     | iref
     | relref
     | spanx
     | strong
     | sub
     | sup
     | tt
     | xref)*
  }

<strong anchor="grammar.refcontent">refcontent</strong><iref item="refcontent element"/> =
  element refcontent {
    attribute xml:base { text }?,
    attribute xml:lang { text }?,
    (text | bcp14 | em | strong | sub | sup | tt)*
  }
start |= rfc
<?ENDINC xml2rfcv3.rnc.folded ?>
</artwork></figure>
</section>

<section title="Schema Differences from v2">

<t>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.</t>

<figure><artwork type="inline">
<?BEGININC differences-from-v2.txt ?>
  namespace a = 
  "http://relaxng.org/ns/compatibility/annotations/1.0"
  
+ # xml2rfc Version 3 grammar
  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 { "std" | "bcp" | "info" | "exp" | 
- "historic" }?,
-     attribute consensus { "no" | "yes" }?,
+     attribute category { text }?,
+     attribute mode { text }?,
+     [ a:defaultValue = "false" ]
+     attribute consensus { "no" | "yes" | "false" | "true" }?,
      attribute seriesNo { text }?,
-     attribute ipr {
-       "full2026"
-       | "noDerivativeWorks2026"
-       | "none"
-       | "full3667"
-       | "noModification3667"
-       | "noDerivatives3667"
-       | "full3978"
-       | "noModification3978"
-       | "noDerivatives3978"
-       | "trust200811"
-       | "noModificationTrust200811"
-       | "noDerivativesTrust200811"
-       | "trust200902"
-       | "noModificationTrust200902"
-       | "noDerivativesTrust200902"
-       | "pre5378Trust200902"
-     }?,
+     attribute ipr { text }?,
      attribute iprExtract { xsd:IDREF }?,
      [ a:defaultValue = "IETF" ]
      attribute submissionType {
        "IETF" | "IAB" | "IRTF" | "independent"
      }?,
      attribute docName { text }?,
-     [ a:defaultValue = "en" ] attribute xml:lang { 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?
    }
+ link =
+   element link {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute href { text },
+     attribute rel { text }?
+   }
  front =
    element front {
-     title, author+, date, area*, workgroup*, keyword*, abstract?, 
- note*
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     title,
+     seriesInfo*,
+     author+,
+     date?,
+     area*,
+     workgroup*,
+     keyword*,
+     abstract?,
+     note*,
+     boilerplate?
    }
  title =
    element title {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
      attribute abbrev { text }?,
+     attribute ascii { text }?,
      text
    }
  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?
    }
  organization =
    element organization {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
      attribute abbrev { text }?,
+     attribute ascii { text }?,
+     text
+   }
+ address =
+   element address {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     postal?,
+     phone?,
+     facsimile?,
+     email?,
+     uri?
+   }
+ postal =
+   element postal {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     ((city | code | country | region | street)* | postalLine+)
+   }
+ street =
+   element street {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute ascii { text }?,
+     text
+   }
+ city =
+   element city {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute ascii { text }?,
+     text
+   }
+ region =
+   element region {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute ascii { text }?,
+     text
+   }
+ code =
+   element code {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute ascii { text }?,
+     text
+   }
+ country =
+   element country {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute ascii { text }?,
+     text
+   }
+ postalLine =
+   element postalLine {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute ascii { text }?,
+     text
+   }
+ phone =
+   element phone {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     text
+   }
+ facsimile =
+   element facsimile {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     text
+   }
+ email =
+   element email {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute ascii { text }?,
+     text
+   }
+ uri =
+   element uri {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
      text
    }
- address = element address { postal?, phone?, facsimile?, email?, 
- uri? }
- postal = element postal { street+, (city | region | code | 
- country)* }
- street = element street { text }
- city = element city { text }
- region = element region { text }
- code = element code { text }
- country = element country { text }
- phone = element phone { text }
- facsimile = element facsimile { text }
- email = element email { text }
- uri = element uri { text }
  date =
    element date {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
      attribute day { text }?,
      attribute month { text }?,
      attribute year { text }?,
      empty
    }
- area = element area { text }
- workgroup = element workgroup { text }
- keyword = element keyword { text }
- abstract = element abstract { t+ }
+ area =
+   element area {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     text
+   }
+ workgroup =
+   element workgroup {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     text
+   }
+ keyword =
+   element keyword {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     text
+   }
+ abstract =
+   element abstract {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute anchor { xsd:ID }?,
+     attribute pn { text }?,
+     (dl | ol | t | ul)+
+   }
  note =
    element note {
-     attribute title { text },
-     t+
+     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)+
+   }
+ boilerplate =
+   element boilerplate {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     section+
+   }
+ middle =
+   element middle {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     section+
    }
- middle = element middle { section+ }
  section =
    element section {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
      attribute anchor { xsd:ID }?,
-     attribute title { text },
+     attribute pn { text }?,
+     attribute title { text }?,
+     [ a:defaultValue = "true" ]
+     attribute numbered { "true" | "false" }?,
      [ a:defaultValue = "default" ]
      attribute toc { "include" | "exclude" | "default" }?,
-     (t | figure | texttable | iref)*,
+     [ a:defaultValue = "false" ]
+     attribute removeInRFC { "true" | "false" }?,
+     name?,
+     (artwork
+      | aside
+      | blockquote
+      | dl
+      | figure
+      | iref
+      | ol
+      | sourcecode
+      | t
+      | table
+      | texttable
+      | ul)*,
      section*
    }
+ name =
+   element name {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute slugifiedName { text }?,
+     (text | cref | eref | relref | tt | xref)*
+   }
  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
-      | \list
-      | figure
-      | xref
+      | bcp14
+      | cref
+      | em
       | eref
       | iref
-      | cref
+      | \list
+      | relref
       | spanx
-      | vspace)*
+      | strong
+      | sub
+      | sup
+      | tt
+      | vspace
+      | xref)*
+   }
+ 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)*
+   }
+ 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)+)
    }
  \list =
    element list {
-     attribute style { text }?,
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     [ a:defaultValue = "empty" ] attribute style { text }?,
      attribute hangIndent { text }?,
      attribute counter { text }?,
+     attribute pn { text }?,
      t+
    }
+ 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+
+   }
+ 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+
+   }
+ 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)+)
+   }
+ 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)+
+   }
+ 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)*
+   }
+ 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)+)
+   }
  xref =
    element xref {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
      attribute target { xsd:IDREF },
-     [ a:defaultValue = "false" ] attribute pageno { "true" | 
- "false" }?,
+     [ a:defaultValue = "false" ]
+     attribute pageno { "true" | "false" }?,
      [ a:defaultValue = "default" ]
-     attribute format { "counter" | "title" | "none" | "default" 
+     attribute format { "default" | "title" | "counter" | "none" 
+ }?,
+     attribute derivedContent { text }?,
+     text
+   }
+ 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
    }
  eref =
    element eref {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
      attribute target { text },
      text
    }
  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
    }
  cref =
    element cref {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
      attribute anchor { xsd:ID }?,
      attribute source { text }?,
-     text
+     [ a:defaultValue = "true" ]
+     attribute display { "true" | "false" }?,
+     (text | em | eref | relref | strong | sub | sup | tt | xref)*
+   }
+ tt =
+   element tt {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     (text
+      | bcp14
+      | cref
+      | em
+      | eref
+      | iref
+      | relref
+      | strong
+      | sub
+      | sup
+      | xref)*
+   }
+ strong =
+   element strong {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     (text
+      | bcp14
+      | cref
+      | em
+      | eref
+      | iref
+      | relref
+      | sub
+      | sup
+      | tt
+      | xref)*
+   }
+ em =
+   element em {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     (text
+      | bcp14
+      | cref
+      | eref
+      | iref
+      | relref
+      | strong
+      | sub
+      | sup
+      | tt
+      | xref)*
+   }
+ sub =
+   element sub {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     (text
+      | bcp14
+      | cref
+      | em
+      | eref
+      | iref
+      | relref
+      | strong
+      | tt
+      | xref)*
+   }
+ sup =
+   element sup {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     (text
+      | bcp14
+      | cref
+      | em
+      | eref
+      | iref
+      | relref
+      | strong
+      | tt
+      | xref)*
    }
  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
    }
  vspace =
    element vspace {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
      [ a:defaultValue = "0" ] attribute blankLines { text }?,
      empty
    }
  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,
+     (artwork | sourcecode)+,
      postamble?
    }
+ table =
+   element table {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute anchor { xsd:ID }?,
+     attribute pn { text }?,
+     name?,
+     iref*,
+     thead?,
+     tbody+,
+     tfoot?
+   }
  preamble =
-   element preamble { (text | xref | eref | iref | cref | spanx)* }
+   element preamble {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     (text
+      | bcp14
+      | cref
+      | em
+      | eref
+      | iref
+      | relref
+      | spanx
+      | strong
+      | sub
+      | sup
+      | tt
+      | xref)*
+   }
  artwork =
    element artwork {
-     [ a:defaultValue = "preserve" ]
-     attribute xml:space { "default" | "preserve" }?,
+     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 }?,
-     text*
+     attribute originalSrc { text }?,
+     (text* | svg)
+   }
+ # https://www.rfc-editor.org/materials/format/SVG-1.2-RFC.rnc
+ 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
+   }
+ thead =
+   element thead {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute anchor { xsd:ID }?,
+     tr+
+   }
+ tbody =
+   element tbody {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute anchor { xsd:ID }?,
+     tr+
+   }
+ tfoot =
+   element tfoot {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute anchor { xsd:ID }?,
+     tr+
+   }
+ tr =
+   element tr {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute anchor { xsd:ID }?,
+     (td | th)+
+   }
+ 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)*)
+   }
+ 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)*)
    }
  postamble =
-   element postamble { (text | xref | eref | iref | cref | spanx)* 
+   element postamble {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     (text | cref | eref | iref | spanx | xref)*
  }
  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?
    }
  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)*
+   }
+ c =
+   element c {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     (text | cref | eref | iref | spanx | xref)*
+   }
+ bcp14 =
+   element bcp14 {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
      text
    }
- c = element c { (text | xref | eref | iref | cref | spanx)* }
- back = element back { references*, section* }
+ br =
+   element br {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     empty
+   }
+ back =
+   element back {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     displayreference*,
+     references*,
+     section*
+   }
+ displayreference =
+   element displayreference {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute target { xsd:IDREF },
+     attribute to { text }
+   }
  references =
    element references {
-     [ a:defaultValue = "References" ] attribute title { text }?,
-     reference+
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute pn { text }?,
+     attribute anchor { xsd:ID }?,
+     attribute title { text }?,
+     name?,
+     (reference | referencegroup)*
    }
  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,
-     seriesInfo*,
-     format*,
-     annotation*
+     (annotation | format | refcontent | seriesInfo)*
+   }
+ referencegroup =
+   element referencegroup {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     attribute anchor { xsd:ID },
+     reference+
    }
  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
    }
  format =
    element format {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
      attribute target { text }?,
      attribute type { text },
      attribute octets { text }?,
      empty
    }
  annotation =
-   element annotation { (text | xref | eref | iref | cref | 
- spanx)* }
- start = rfc
+   element annotation {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     (text
+      | bcp14
+      | cref
+      | em
+      | eref
+      | iref
+      | relref
+      | spanx
+      | strong
+      | sub
+      | sup
+      | tt
+      | xref)*
+   }
+ refcontent =
+   element refcontent {
+     attribute xml:base { text }?,
+     attribute xml:lang { text }?,
+     (text | bcp14 | em | strong | sub | sup | tt)*
+   }
+ start |= rfc
<?ENDINC differences-from-v2.txt ?>
</artwork></figure>
</section>

<section title="IAB Members at the Time of Approval" numbered="false">
<t>
  The IAB members at the time this memo was approved were	
  (in alphabetical order):
</t>
<t>
Jari Arkko<vspace blankLines="0"/>
Ralph Droms <vspace blankLines="0"/>
Ted Hardie <vspace blankLines="0"/>
Joe Hildebrand <vspace blankLines="0"/>
Russ Housley <vspace blankLines="0"/>
Lee Howard <vspace blankLines="0"/>
Erik Nordmark <vspace blankLines="0"/>
Robert Sparks <vspace blankLines="0"/>
Andrew Sullivan <vspace blankLines="0"/>
Dave Thaler <vspace blankLines="0"/>
Martin Thomson <vspace blankLines="0"/>
Brian Trammell <vspace blankLines="0"/>
Suzanne Woolf
</t>
</section>
<section title="Acknowledgments" anchor="acknowledgements" numbered="false">
<t>
  Thanks to everybody who reviewed this document and provided feedback and/or
  specification text. Thanks especially go to Julian Reschke for editing <xref target="RFC7749"/>
  and those who provided feedback on that document. 
</t>
<t>
  We also thank Marshall T. Rose for both the original design and the reference
  implementation of the "xml2rfc" processor.
</t>
</section>

</back>

</rfc>
