<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.26 (Ruby 3.4.1) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-href-22" category="std" consensus="true" submissionType="IETF" xml:lang="en" updates="7595" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <?v3xml2rfc table_borders="light"?>
  <front>
    <title>Constrained Resource Identifiers</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-22"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann" role="editor">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>
    <date year="2025" month="March" day="20"/>
    <workgroup>CoRE Working Group</workgroup>
    <abstract>
      <?line 111?>

<t>The Constrained Resource Identifier (CRI) is a complement to the Uniform
Resource Identifier (URI) that represents the URI components in Concise
Binary Object Representation (CBOR) rather than as a sequence of characters.
This approach simplifies parsing, comparison, and reference resolution in
environments with severe limitations on processing power, code size, and
memory size.</t>
      <t>This RFC updates RFC 7595 to add a note on how the "URI Schemes"
registry of RFC 7595 cooperates with the "CRI Scheme Numbers"
registry created by the present RFC.</t>
      <t><cref anchor="status">(This "cref" paragraph will be removed by the RFC editor:)<br/>
The present revision –22 addresses a few remaining post-WGLC nits.</cref></t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-href/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Constrained RESTful Environments Working Group mailing list (<eref target="mailto:core@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/core/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/core-wg/href"/>.</t>
    </note>
  </front>
  <middle>
    <?line 130?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The <xref target="STD66">Uniform Resource Identifier (URI)</xref> and its most common
usage, the URI reference, are the Internet standard for linking to
resources in hypertext formats such as <xref target="W3C.REC-html52-20171214">HTML</xref>
or the <xref target="RFC8288">HTTP "Link" header field</xref>.</t>
      <t>A URI reference is a sequence of characters chosen from the repertoire
of US-ASCII characters (Section <xref target="RFC3986" section="4.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).
The individual components of a URI reference are delimited by a number
of reserved characters, which necessitates the use of a character escape
mechanism called "percent-encoding" when these reserved characters are
used in a non-delimiting function.
The resolution of URI references (Section <xref target="RFC3986" section="5" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>)
involves parsing a character sequence
into its components, combining those components with the components of a
base URI, merging path components, removing dot-segments (<tt>"." and
".."</tt>, see Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), and
recomposing the result back into a character sequence.</t>
      <t>Overall, the proper handling of URI references is quite intricate.
This can be a problem especially in constrained environments <xref target="RFC7228"/><xref target="I-D.ietf-iotops-7228bis"/>,
where nodes often have severe code size and memory size limitations.
As a result, many implementations in such environments support only an
ad-hoc, informally-specified, bug-ridden, non-interoperable subset of
half of <xref target="STD66"/> (aperçu adapted from <xref target="GREENSPUN-10"/>).</t>
      <t>This document defines the <em>Constrained Resource Identifier (CRI)</em> by
constraining URIs to a simplified subset and representing their
components in <xref target="STD94">Concise Binary Object Representation (CBOR)</xref>
instead of a sequence of characters.
Analogously, <em>CRI references</em> are to CRIs what URI references are to
URIs.</t>
      <t>CRIs and CRI references allow typical operations on URIs and URI references such as parsing,
comparison, and reference resolution (including all corner cases) to be
implemented in a comparatively small amount of code and to be less
prone to bugs and interoperability issues.</t>
      <t>As a result of simplification, however, <em>Simple CRIs</em> (i.e., not using
CRI extensions, see <xref target="extending"/>) are not capable of
expressing all URIs permitted by the generic syntax of <xref target="STD66"/> (hence
the "constrained" in "Constrained Resource Identifier").
The supported subset includes all URIs of the
<xref target="RFC7252">Constrained Application Protocol (CoAP)</xref>, most URIs of the
<xref target="STD97">Hypertext Transfer Protocol (HTTP)</xref>,
<xref target="RFC8141">Uniform Resource Names (URNs)</xref>, and other similar URIs.
The exact constraints are defined in <xref target="constraints"/>.
CRI extensions (<xref target="extending"/>) can be defined to address some of the
constraints and/or to provide more convenient representations for
certain areas of application.</t>
      <t>This RFC creates a "CRI Scheme Numbers" registry and updates <xref target="RFC7595"/>
to add a note on how this new registry cooperates with the "URI Schemes"
registry that <xref target="RFC7595"/> describes.</t>
      <section anchor="notational-conventions">
        <name>Notational Conventions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in <xref target="BCP14"/> (<xref target="RFC2119"/>) (<xref target="RFC8174"/>) when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>In this specification, the term "byte" is used in its now customary
sense as a synonym for "octet".</t>
        <t>Terms defined in this document appear in <em>cursive</em> where they
are introduced (in the plaintext form of this document, they are
rendered as the new term surrounded by underscores).</t>
        <t>The general structure of data items is shown in the <xref target="RFC8610">Concise Data Definition
Language (CDDL)</xref> <xref target="RFC9165">including its control
extensions</xref>.
Specific examples are notated in CBOR Extended
Diagnostic Notation (EDN), as originally introduced in Section <xref target="RFC8949" section="8" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/> and extended in <xref section="G" sectionFormat="of" target="RFC8610"/>.
(<xref target="I-D.ietf-cbor-edn-literals"/> more rigorously defines and further extends EDN.)</t>
      </section>
    </section>
    <section anchor="constraints">
      <name>From URIs to CRIs: Considerations and Constraints</name>
      <section anchor="the-cri-interchange-data-model">
        <name>The CRI interchange data model</name>
        <t>A Constrained Resource Identifier consists of the same five components
as a URI: scheme, authority, path, query, and fragment.</t>
        <t>Many components of a URI can be "absent", i.e., they are optional.
This is not mirrored in CRIs, where all components are part of all
CRIs.
Some CRI components can have values that are <tt>null</tt> or empty arrays.
By defining a default value for each of certain components, they often can
be elided at the tail of the serialized form during interchange.
(Note that some subcomponents such as port numbers or userinfo are
optional in a CRI as well and therefore can be absent from a CRI.)</t>
        <t>In a CRI reference, components can additionally be <em>not set</em>
(indicated by interchanging a discard value instead of scheme and
authority, or by <tt>null</tt> for the scheme, path and query components that
can otherwise not have that value).
(For example, for a CRI reference where authority is either not set or
has either of the NOAUTHORITY values, the equivalent URI reference's
authority is absent.)</t>
        <!-- possibly too confusing at this point.
for a CRI reference where the query is an
empty array or not set, the equivalent URI reference's query is absent).
 -->

<t>The components are subject to the considerations and constraints
listed in this section.
Note that CRI extensions can relax constraints; for
example, see <xref target="pet"/> for partially relaxing constraint <xref format="counter" target="c-nfc"/>.</t>
        <ol spacing="normal" type="C%d." start="0"><li anchor="c-nfc">
            <t>Text strings in CRIs ("CRI text strings") are CBOR text
strings (i.e., in UTF-8 form <xref target="STD63"/>) that represent Unicode
strings (see Definition D80 in <xref target="Unicode"/>) in Unicode Normalization
Form C (NFC) (see Definition D120 in <xref target="Unicode"/> and specifically
<xref target="norm-nfc"/>).</t>
          </li>
          <li anchor="c-scheme">
            <t>The scheme name can be any CRI text string that
matches the syntax of a URI scheme (see Section <xref target="RFC3986" section="3.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>, which constrains scheme names to a subset of ASCII),
in its canonical form.
(The canonical form as per Section <xref target="RFC3986" section="3.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> requires
alphabetic characters to be in lowercase.)
<!-- see also Definition D139 in {{Unicode}}). -->
The scheme is always present.</t>
          </li>
          <li anchor="c-authority">
            <t>An authority is always a host identified by an IP
address or a "registered name" (see <xref format="counter" target="c-reg-name"/> below), along with
optional port information, and optionally preceded by user
information.  </t>
            <t>
Alternatively, URIs can be formed without an authority.
The two cases for this defined in Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> are
modeled by two different special values used in the CRI authority component:  </t>
            <ul spacing="normal">
              <li>
                <t>the path can be root-based (zero or more path segments that are
each started in the URI with "/", as when the authority is
present), or</t>
              </li>
              <li>
                <t>the path can be rootless, which requires at least one path
segment, the first one of which has non-zero length and is not
started in the URI with "/".</t>
              </li>
            </ul>
            <t>
(Note that, in <xref target="cddl"/>, <tt>no-authority</tt> is marked as a feature, as
not all CRI implementations will support authority-less URIs.)</t>
          </li>
          <li anchor="c-userinfo">
            <t>A userinfo is a text string built out of unreserved
  characters (Section <xref target="RFC3986" section="2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) or "sub-delims" (Section <xref target="RFC3986" section="2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>); any other character needs to be percent-encoded (<xref target="pet"/>).
Note that this excludes the ":" character, which is commonly
deprecated as a way to delimit a cleartext password in a userinfo.</t>
          </li>
          <li anchor="c-ip-address">
            <t>An IP address can be either an IPv4 address or an
IPv6 address (optionally with a zone identifier <xref target="RFC6874"/>; see
<xref target="zone-id-issue"/>).
Future versions of IP are not supported (it is likely that a binary
mapping would be strongly desirable, and that cannot be designed
ahead of time, so these versions need to be added as a future
extension if needed).</t>
          </li>
          <li anchor="c-reg-name">
            <t>A <em>registered name</em> is represented as a sequence of
one or more lowercase CRI text string <em>labels</em> that do not contain
dots (".").
(These labels joined with dots (".") in between them result in the
CRI equivalent of a URI registered name as per Section <xref target="RFC3986" section="3.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>.
The syntax may be further restricted by the scheme.
A URI registered name can be empty, for which case a scheme can
define a default for the host.)</t>
          </li>
          <li anchor="c-port-range">
            <t>A port is always an integer in the range from 0 to 65535.
Ports outside this range, empty ports (port subcomponents with no
digits, see Section <xref target="RFC3986" section="3.2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), or ports with redundant
leading zeros, are not supported.</t>
          </li>
          <li anchor="c-port-omitted">
            <t>If the scheme's port handling is known to the
CRI creator, it is <bcp14>RECOMMENDED</bcp14> to omit the port if and only if the
port would be the same as the scheme's default port (provided the
scheme is defining such a default port) or the scheme is not using
ports.</t>
          </li>
          <li anchor="c-path">
            <t>A path consists of zero or more path segments.
Note that a path of just a single zero-length path segment is allowed —
this is considered equivalent to a path of zero path segments by
HTTP and CoAP, but this equivalence does not hold for CRIs in general as they only perform
normalization on the Syntax-Based Normalization level (Section <xref target="RFC3986" section="6.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), not on the scheme-specific Scheme-Based
Normalization level (Section <xref target="RFC3986" section="6.2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).  </t>
            <t>
(A CRI implementation may want to offer scheme-cognizant
interfaces, performing this scheme-specific normalization for
schemes it knows.  The interface could assert which schemes the
implementation knows and provide pre-normalized CRIs.  This can
also relieve the application from removing a lone zero-length path
segment before putting path segments into CoAP Options, i.e., from
performing the check and jump in item 8 of <xref section="6.4" sectionFormat="of" target="RFC7252"/>.  See also <xref format="counter" target="sp-leading-empty"/> in <xref target="the-small-print"/>.)</t>
          </li>
          <li anchor="c-path-segment">
            <t>A path segment can be any CRI text string, with
the exception of the special "." and ".." complete path segments.
Note that this includes the zero-length string.  </t>
            <t>
If no authority is present in a CRI, the leading path segment cannot be empty.
(See also <xref format="counter" target="sp-leading-empty"/> in <xref target="the-small-print"/>.)</t>
          </li>
          <li anchor="c-query">
            <t>Queries are optional in URIs; there is a difference
   between an absent query and a single query parameter that is the
   empty string.
   A CRI represents its query component as an array of zero or more query
   parameters, which are CRI text strings.
   Zero query parameters (an empty array) is equivalent to a URI
   where the query is absent.
   A query in a URI is represented in a CRI by splitting its text up
   on any ampersand ("&amp;") characters into one or more query
   parameters, which may contain certain characters (including
   ampersands) that were percent-encoded in the URI.
   Query parameters are often in the form of a "key=value" pair.
   When converting a CRI to a URI, one or more query parameters are
   constructed into a URI query by joining them together with
   ampersand characters, where certain characters (including
   ampersands) present in the query parameters are percent-encoded.
   (This matches the structure and encoding of the target URI in CoAP
   requests.)</t>
          </li>
          <li anchor="c-fragment">
            <t>A fragment identifier can be any CRI text string.
   Fragment identifiers are optional in URIs; in CRIs there is a
   difference between a <tt>null</tt> fragment identifier and a fragment
   identifier that is the empty string.</t>
          </li>
          <li anchor="c-escaping">
            <t>The syntax of registered names, path segments, query
   parameters, and fragment identifiers may be further restricted and
   sub-structured by the scheme.
   There is no support, however, for escaping sub-delimiters
   that are not intended to be used in a delimiting function.</t>
          </li>
          <li anchor="c-mapping">
            <t>When converting a CRI to a URI, any character that is
   outside the allowed character range or is a delimiter in the URI syntax
   is percent-encoded.
   For CRIs, percent-encoding always uses the UTF-8 encoding form (see
   Definition D92 in <xref target="Unicode"/>) to convert the character to a sequence
   of bytes, which are then converted to a sequence of %HH triplets.
   <!-- As per 3986 2.1, use uppercase hex. -->
            </t>
          </li>
        </ol>
        <t>Examples for URIs at or beyond the boundaries of these constraints are in <xref format="counter" target="sp-constraints"/> in <xref target="the-small-print"/>.</t>
      </section>
      <section anchor="discard">
        <name>CRI References: The <tt>discard</tt> Component</name>
        <t>As with URI references and URIs, CRI references are a shorthand for a
CRI that is expressed relative to a base CRI.
URI and CRI references often <em>discard</em> part or all of the trailing
path segments of the base URI or CRI.</t>
        <t>In a URI reference, this is expressed by syntax for its path component
such as leading special path segments <tt>.</tt> and <tt>..</tt> or a leading
slash before giving the path segments to be added at the end of the
(now truncated) base URI.
For use in CRI references, we instead add in a <tt>discard</tt> component as
an alternative to the <tt>scheme</tt> and <tt>authority</tt> components, making the
specification of discarding base URI path segments separate from
adding new path segments from the CRI reference.</t>
        <t>The discarding intent of a CRI reference is thus fully condensed to a
single value in its discard component:</t>
        <ul spacing="normal">
          <li>
            <t>An unsigned integer as the discard component specifies the number of
path segments to be discarded from the base CRI (note that this
includes the value 0 which cannot be expressed in URI references that then add any path component);</t>
          </li>
          <li>
            <t>the value <tt>true</tt> as the discard component
specifies discarding all path segments from the base CRI.</t>
          </li>
        </ul>
        <t>If a scheme or authority is present in a CRI reference, the discard
component is implicitly equivalent to a value of <tt>true</tt> and thus not
included in the interchanged data item.</t>
      </section>
      <section anchor="constraints-not-expressed-by-the-data-model">
        <name>Constraints not expressed by the data model</name>
        <t>There are syntactically valid CRIs and CRI references that cannot be converted into a URI or URI reference, respectively.</t>
        <t>CRI references of this kind can be acceptable -- they still can be resolved
and result in a valid full CRI that can be converted back.
Examples of this are:</t>
        <ul spacing="normal">
          <li>
            <t><tt>[0, ["p"]]</tt>: appends a slash and the path segment "p" to its base,
sets the query to an empty array and the fragment to <tt>null</tt></t>
          </li>
          <li>
            <t><tt>[0, null, []]</tt>: leaves the path alone but sets the query to an
empty array and the fragment to <tt>null</tt></t>
          </li>
        </ul>
        <t>(Full) CRIs that do not correspond to a valid URI are not valid on their own, and cannot be used.
Normatively they are characterized by the <xref target="cri-to-uri"/> process not producing a valid and syntax-normalized URI.
For easier understanding, they are listed here:</t>
        <ul spacing="normal">
          <li>
            <t>CRIs (and CRI references) containing dot-segments (path segment <tt>"."</tt> or <tt>".."</tt>).  </t>
            <t>
These segments would be removed by the remove_dot_segments algorithm of <xref target="STD66"/>,
and thus never produce a normalized URI after resolution.  </t>
            <t>
(In CRI references, the <tt>discard</tt> value is used to afford segment
removal (see <xref target="discard"/>),
and with "." being an unreserved character, expressing them as "%2e" and "%2e%2e" is not even viable,
let alone practical).</t>
          </li>
          <li>
            <t>CRIs without authority whose path starts with a leading empty segment
followed by at least one more segment.  </t>
            <t>
When converted to URIs, these would violate the requirement that in
absence of an authority, a URI's path cannot begin with two slash
characters.
(E.g., two leading empty segments would be indistinguishable from a URI with a shorter path and a present but empty authority component.)
(Compare <xref format="counter" target="c-path-segment"/>.)</t>
          </li>
          <li anchor="naked-rootless">
            <t>CRIs without authority that are rootless and have
an empty path
component (e.g., <tt>["a", true, []]</tt>), which would be indistinguishable
from its root-based equivalent (<tt>["a", null, []]</tt>) as both would have the URI <tt>a:</tt>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="norm">
      <name>Creation and Normalization</name>
      <t>In general, resource identifiers are generated when a
resource is initially created or exposed under a certain resource identifier.</t>
      <t>The naming authority that creates
a Constrained Resource Identifier <bcp14>SHOULD</bcp14> be the authority that governs
the namespace of the resource identifier (see also <xref target="BCP190"/>).
For example, for the resources of an HTTP origin server,
that server is responsible for creating the CRIs for those resources.
If the naming authority creates a URI instead that can be obtained as
a conversion result from a CRI (<xref target="cri-to-uri"/>) that CRI can be
considered to have been created by the naming authority.</t>
      <t>The naming authority <bcp14>MUST</bcp14> ensure that any CRI created
satisfies the required constraints defined in <xref target="constraints"/>. The creation of a
CRI fails if the CRI cannot be validated to satisfy all of the required
constraints.</t>
      <t>If a naming authority creates a CRI from user input, it may need to apply
the following (and only the following) normalizations to get the CRI
more likely to validate:</t>
      <ul spacing="normal">
        <li>
          <t>map the scheme name to lowercase (<xref format="counter" target="c-scheme"/>);</t>
        </li>
        <li>
          <t>map the registered name to NFC (<xref format="counter" target="c-reg-name"/>) and split it on
embedded dots;</t>
        </li>
        <li>
          <t>elide the port if it is the default port for the scheme
(<xref format="counter" target="c-port-omitted"/>);
<!-- * elide a single zero-length path segment ({{<c-path}}); -->
          </t>
        </li>
        <li>
          <t>map path segments, query parameters, and the fragment identifier to
NFC form (<xref format="counter" target="c-path-segment"/>, <xref format="counter" target="c-query"/>, <xref format="counter" target="c-fragment"/>).</t>
        </li>
      </ul>
      <t>Once a CRI has been created, it can be used and transferred without
further normalization.
All operations that operate on a CRI <bcp14>SHOULD</bcp14> rely on the
assumption that the CRI is appropriately pre-normalized.
(This does not contradict the requirement that, when CRIs are
transferred, recipients must operate on as-good-as untrusted input and
fail gracefully in the face of malicious inputs.)</t>
      <t anchor="norm-nfc">Note that the processing of CRIs does not imply that all the
constraints continuously need to be checked and enforced.
Specifically, the text normalization constraints (NFC) can be expanded
as:
The recipient of a CRI <bcp14>MAY</bcp14> reasonably expect the text strings to be in
NFC form, but as with any input <bcp14>MUST NOT</bcp14> fail (beyond possibly not
being able to process the specific CRI) if they are not.
So the onus of fulfilling the expectation is on the original creator
of the CRI, not on each processor (including consumer).
This consideration extends to the sources the CRI creator uses in
building the text strings, which the CRI creator <bcp14>MAY</bcp14> in turn expect to be in
NFC form if that expectation is reasonable.
See <xref section="C" sectionFormat="of" target="MNU"/> for some background.</t>
      <t>CRIs have been designed with the objective that, after the above
normalization, conversion of two distinct CRIs to URIs do
not yield the "same" URI, including equivalence under syntax-based
normalization (Section <xref target="RFC3986" section="6.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), but not including
protocol-based normalization.
Note that this objective exclusively applies to (full) CRIs, not
to CRI references: these need to be resolved relative to a base URI,
with results that may be equivalent or not depending on the base.</t>
    </section>
    <section anchor="comparison">
      <name>Comparison</name>
      <t>One of the most common operations on CRIs is comparison: determining
whether two CRIs are equivalent, without dereferencing the CRIs (i.e.,
using
them to access their respective resource(s)).</t>
      <t>Determination of equivalence or difference of CRIs is based on simple
component-wise comparison. If two CRIs are identical
component-by-component (using code-point-by-code-point comparison for
components that are Unicode strings) then it is safe to conclude that
they are equivalent.</t>
      <t>This comparison mechanism is designed to minimize false negatives while
strictly avoiding false positives.
The constraints defined in <xref target="constraints"/> imply the most
common forms of syntax- and scheme-based normalizations in URIs, but do
not comprise protocol-based normalizations that require accessing the
resources or detailed knowledge of the scheme's dereference algorithm.
False negatives can be caused, for example, by CRIs that are not
appropriately pre-normalized and by resource aliases.</t>
      <t>When CRIs are compared to select (or avoid) a network action, such as
retrieval of a representation, fragment components (if any) do not
play a role and typically are excluded from the comparison.</t>
    </section>
    <section anchor="cri-references">
      <name>CRI References</name>
      <t>The most common usage of a Constrained Resource Identifier is to embed
it in resource representations, e.g., to express a hyperlink between the
represented resource and the resource identified by the CRI.</t>
      <t><xref target="cbor-representation"/> first defines the representation of CRIs in
<xref target="STD94">Concise Binary Object Representation (CBOR)</xref>.
When reduced representation size is desired, CRIs are often not represented directly.
Instead, CRIs are indirectly referenced through <em>CRI references</em>.
These take advantage of hierarchical locality and provide a very compact
encoding.
The CBOR representation of CRI references also is specified in
<xref target="cbor-representation"/>.</t>
      <t>The only operation defined on a CRI reference is <em>reference resolution</em>:
the act of transforming a CRI reference into a CRI.
<!-- , relative to a base URI -->
An application <bcp14>MUST</bcp14> implement this operation by applying
the algorithm specified in <xref target="reference-resolution"/> (or any algorithm
that is functionally equivalent to it).</t>
      <t>The reverse operation of transforming a CRI into a CRI reference is
not specified in detail in this document;
implementations are free to use any algorithm as long as reference
resolution of the resulting CRI reference yields the original CRI.
Notably, a CRI reference is not required to satisfy all of the
constraints of a CRI; the only requirement on a CRI reference is that
reference resolution <bcp14>MUST</bcp14> yield the original CRI.</t>
      <t>When testing for equivalence or difference, it is rarely appropriate
for applications to directly compare CRI references; instead, the
references are typically resolved to their respective CRI before
comparison.</t>
      <section anchor="cbor-representation">
        <name>CBOR Representation</name>
        <t><cref anchor="replace-xxxx">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
        <t>A CRI or CRI reference is encoded as a CBOR array (Major type 4 in
Section <xref target="RFC8949" section="3.1" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>).
<xref target="fig-railroad"/> has a coarse visualization of the structure of this
array, without going into the details of the elements.</t>
        <figure anchor="fig-railroad">
          <name>Overall Structure of a CRI or CRI Reference</name>
          <artset>
            <artwork type="svg"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 530 360">
                <g transform="translate(40 50)">
                  <text x="-30" y="-10">cri-reference:</text>
                  <path class="station" d="M5.5 14 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <path class="station" d="M400.5 14 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="70" x="60" y="10"/>
                  <text class="rule" text-anchor="middle" x="95" y="25">scheme</text>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="90" x="150" y="10"/>
                  <text class="rule" text-anchor="middle" x="195" y="25">authority</text>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="70" x="115" y="40"/>
                  <text class="rule" text-anchor="middle" x="150" y="55">discard</text>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="90" x="290" y="10"/>
                  <text class="rule" text-anchor="middle" x="335" y="25">local-part</text>
                  <path d="M260 30 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M185 50 h65 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M40 40 q0 10 10 10 h65" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M260 30 q0 -10 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M240 20 h50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M130 20 h20" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M30 20 q10 0 10 10 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M380 20 h20" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M10 20 h50" fill="none" stroke="black" stroke-width="1.5"/>
                </g>
                <g transform="translate(40 160)">
                  <text x="-30" y="-10">local-part:</text>
                  <path class="station" d="M5.5 74 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <path class="station" d="M460.5 74 v12 m 4 0 v-12" fill="none" stroke="black" stroke-width="1.5"/>
                  <path class="arrow" d="M237 10 l-4 3 v-6 z" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="50" x="60" y="70"/>
                  <text class="rule" text-anchor="middle" x="85" y="85">path</text>
                  <path class="arrow" d="M272 30 l-4 3 v-6 z" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="50" x="160" y="70"/>
                  <text class="rule" text-anchor="middle" x="185" y="85">query</text>
                  <path class="arrow" d="M307 50 l-4 3 v-6 z" fill="none" stroke="black" stroke-width="1.5"/>
                  <rect class="rule" fill="none" height="20" rx="0" ry="0" stroke="black" stroke-width="1.5" width="90" x="260" y="70"/>
                  <text class="rule" text-anchor="middle" x="305" y="85">fragment</text>
                  <path d="M40 20 v50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M430 70 q0 10 10 10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M140 40 v30" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M400 70 q0 10 10 10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M240 60 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M370 70 q0 10 10 10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M350 80 h110" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M230 80 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M240 60 q0 -10 10 -10 h110 q10 0 10 10 v10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M210 80 h50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M130 80 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M140 40 q0 -10 10 -10 h240 q10 0 10 10 v30" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M110 80 h50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M30 80 q10 0 10 -10" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M40 20 q0 -10 10 -10 h370 q10 0 10 10 v50" fill="none" stroke="black" stroke-width="1.5"/>
                  <path d="M10 80 h50" fill="none" stroke="black" stroke-width="1.5"/>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[cri-reference:
    │├──╮── scheme ── authority ──╭── local-part ──┤│
        │                         │
        ╰──────── discard ────────╯

local-part:
        ╭─────────────────────>─────────────────────╮
        │                                           │
        │          ╭──────────────>──────────────╮  │
        │          │                             │  │
        │          │           ╭──────>───────╮  │  │
        │          │           │              │  │  │
    │├──╯── path ──╯── query ──╯── fragment ──╰──╰──╰──┤│

]]></artwork>
          </artset>
        </figure>
        <t><xref target="cddl"/> has a more detailed description of the structure, in CDDL.</t>
        <figure anchor="cddl">
          <name>CDDL for CRI CBOR representation</name>
          <sourcecode type="cddl"><![CDATA[
; not expressed in this CDDL spec: trailing defaults to be left off

RFC-XXXX-Definitions = [CRI, CRI-Reference]

CRI = [
  scheme,
  authority / no-authority,
  path,                    ; use [] for empty path
  query,                   ; use [] for empty query
  fragment / null
]


CRI-Reference = [
  ((scheme / null, authority / no-authority)
   // discard),            ; relative reference
  path / null,             ; null is explicitly not set
  query / null,            ; null is explicitly not set
  fragment / null
]

scheme      = scheme-id / (scheme-name .feature "scheme-name")
scheme-id   = nint              ; -1 - scheme-number
scheme-name = text .regexp "[a-z][a-z0-9+.-]*"

no-authority = NOAUTH-ROOTBASED / NOAUTH-ROOTLESS
NOAUTH-ROOTBASED = null .feature "no-authority"
NOAUTH-ROOTLESS = true .feature "no-authority"

authority   = [?userinfo, host, ?port]
userinfo    = (false, text .feature "userinfo")
host        = (host-ip // host-name)
host-name   = (*text)      ; lowercase, NFC labels; no dot
host-ip     = (bytes .size 4 //
               (bytes .size 16, ?zone-id))
zone-id     = text
port        = 0..65535

discard     = DISCARD-ALL / 0..127
DISCARD-ALL = true
path        = [*text]
query       = [*text]
fragment    = text

]]></sourcecode>
        </figure>
        <t anchor="discard1">We call the elements of the top-level array <em>sections</em>.
The sections containing the rules <tt>scheme</tt>, <tt>authority</tt>, <tt>path</tt>, <tt>query</tt>, <tt>fragment</tt>
correspond to the components of a URI and thus of a CRI, as described in
<xref target="constraints"/>.
For use in CRI references, the <tt>discard</tt> section (see also <xref target="discard"/>) provides an
alternative to the <tt>scheme</tt> and <tt>authority</tt> sections.</t>
        <t anchor="prose">This CDDL specification is simplified for exposition and needs to be
augmented by the following rules for interchange of CRIs and CRI
references:</t>
        <ul spacing="normal">
          <li>
            <t>Trailing default values (<xref target="tbl-default"/>) <bcp14>MUST</bcp14> be removed.</t>
          </li>
          <li>
            <t>Two leading null values (scheme and authority both not given) <bcp14>MUST</bcp14>
be represented by using the <tt>discard</tt> alternative instead.</t>
          </li>
          <li>
            <t>An empty path in a <tt>CRI</tt> is represented as the empty array
<tt>[]</tt>.
Note that for <tt>CRI-Reference</tt> there is a difference between empty
paths and paths that are not set, represented by <tt>[]</tt> and <tt>null</tt>, respectively.</t>
          </li>
          <li>
            <t>An empty query in a <tt>CRI</tt> (no query parameters, not even an empty
string) is represented as the empty array
<tt>[]</tt>; note that this is equivalent to the absence of the question
mark in a URI, while the equivalent of just a question mark in a URI is
an array with a single query parameter represented by an empty
string <tt>[""]</tt>).
Note that for <tt>CRI-Reference</tt> there is a difference between providing
a query as above and a query that is not set, represented by <tt>null</tt>.</t>
          </li>
          <li>
            <t>An empty outer array (<tt>[]</tt>) is not a valid CRI.
It is a valid CRI reference,
equivalent to <tt>[0]</tt> as per <xref target="ingest"/>, which essentially copies the
base CRI up to and including the path section, setting query and
fragment to absent.</t>
          </li>
        </ul>
        <table anchor="tbl-default">
          <name>Default Values for CRI Sections</name>
          <thead>
            <tr>
              <th align="left">Section</th>
              <th align="left">Default Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">scheme</td>
              <td align="left">–</td>
            </tr>
            <tr>
              <td align="left">authority</td>
              <td align="left">
                <tt>null</tt></td>
            </tr>
            <tr>
              <td align="left">discard</td>
              <td align="left">
                <tt>0</tt></td>
            </tr>
            <tr>
              <td align="left">path</td>
              <td align="left">
                <tt>[]</tt></td>
            </tr>
            <tr>
              <td align="left">query</td>
              <td align="left">
                <tt>[]</tt></td>
            </tr>
            <tr>
              <td align="left">fragment</td>
              <td align="left">
                <tt>null</tt></td>
            </tr>
          </tbody>
        </table>
        <t anchor="no-indef">For interchange as separate encoded data items, CRIs <bcp14>MUST NOT</bcp14> use
indefinite length encoding (see
Section <xref target="RFC8949" section="3.2" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>).
This requirement is relaxed for
specifications that embed CRIs into an encompassing CBOR
representation that does provide for indefinite length encoding;
those specifications that are selective in where they provide for
indefinite length encoding are <bcp14>RECOMMENDED</bcp14> to not provide it for
embedded CRIs.</t>
        <section anchor="scheme-id">
          <name><tt>scheme-name</tt> and <tt>scheme-id</tt></name>
          <t>In the scheme section, a CRI scheme can be given as a negative integer
<tt>scheme-id</tt> derived from the <em>scheme number</em>, or optionally by its
<tt>scheme-name</tt> (a text string giving the scheme name as in URIs' scheme
section, mapped to lower case).
(Note that, in <xref target="cddl"/>, <tt>scheme-name</tt> is marked as a feature, as only
less constrained CRI implementations might support <tt>scheme-name</tt>.)</t>
          <t>Scheme numbers are unsigned integers that are mapped to and from URI
scheme names by the "CRI Scheme Numbers" registry (<xref target="cri-reg"/>).
The relationship of a scheme number to its <tt>scheme-id</tt> is as follows:</t>
          <artset>
            <artwork type="svg"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" height="5.009ex" role="img" viewBox="0 -791.3 43055.4 2156.8" width="100ex">
                <defs>
                  <path d="M390 441l-24 -146h-15c0 64 -36 120 -92 120c-25 0 -51 -17 -51 -58c0 -55 134 -147 134 -242c0 -62 -48 -125 -135 -125c-34 0 -98 20 -110 20c-9 0 -18 -4 -30 -21h-17l25 156h16c0 -63 41 -130 104 -130c59 0 73 50 73 89c0 82 -130 132 -130 230c0 79 59 107 114 107 c43 0 63 -20 92 -20c11 0 22 10 30 20h16Z" id="E1-STIXWEBNORMALI-1D460" stroke-width="1"/>
                  <path d="M363 111l12 -13c-51 -60 -113 -109 -198 -109c-97 0 -137 78 -137 155c0 140 121 297 263 297c50 0 97 -27 97 -76c0 -38 -16 -70 -54 -70c-26 0 -38 21 -38 38c0 24 29 36 29 58c0 12 -10 21 -34 21c-119 0 -176 -179 -176 -259c0 -87 49 -109 94 -109 c61 0 107 33 142 67Z" id="E1-STIXWEBNORMALI-1D450" stroke-width="1"/>
                  <path d="M469 106l14 -11c-29 -34 -78 -106 -133 -106c-18 0 -41 10 -41 42c0 12 1 26 64 267c2 7 7 29 7 44c0 19 -7 35 -24 35c-36 0 -102 -85 -134 -133c-34 -51 -62 -102 -67 -122l-32 -122h-78l152 600c1 4 2 7 2 10c0 13 -10 22 -31 22c-10 0 -21 -1 -29 -2l-2 14l159 24 l-109 -416h4c53 58 125 189 216 189c42 0 57 -34 57 -70c0 -22 -6 -43 -11 -64l-58 -230c-1 -5 -2 -7 -2 -10c0 -6 3 -14 13 -14c22 0 49 35 63 53Z" id="E1-STIXWEBNORMALI-210E" stroke-width="1"/>
                  <path d="M363 112l14 -13c-70 -86 -138 -110 -200 -110c-98 0 -137 84 -137 156c0 23 1 37 6 60c25 111 135 236 262 236c42 0 102 -14 102 -76c0 -127 -167 -176 -286 -182v-28c0 -64 52 -107 113 -107c42 0 90 18 126 64zM124 211h9c104 0 198 69 198 157c0 25 -19 43 -44 43 c-74 0 -134 -115 -163 -200Z" id="E1-STIXWEBNORMALI-1D452" stroke-width="1"/>
                  <path d="M667 107l13 -11c-32 -54 -84 -104 -131 -104c-22 0 -39 10 -39 49c0 7 1 17 6 37l56 221c4 14 6 23 6 40c0 20 -6 38 -24 38c-54 0 -164 -181 -179 -242l-34 -135h-79l77 299c2 9 5 25 5 40c0 20 -5 38 -23 38c-52 0 -162 -181 -178 -242l-35 -135h-78l95 374 c0 18 -6 31 -33 31c-8 0 -19 -1 -27 -2l-2 14l157 24l-44 -169h6c94 143 154 169 192 169c37 0 55 -37 55 -81c0 -17 -3 -32 -9 -52l-10 -36h5c29 52 81 114 130 147c22 15 41 22 61 22c36 0 54 -26 54 -71c0 -18 -1 -37 -7 -61l-61 -231c-1 -3 -2 -9 -2 -12 c0 -8 6 -12 15 -12c17 0 43 16 62 53Z" id="E1-STIXWEBNORMALI-1D45A" stroke-width="1"/>
                  <path d="M285 194h-246v63h246v-63Z" id="E1-STIXWEBMAIN-2D" stroke-width="1"/>
                  <path d="M257 566c0 -26 -22 -46 -48 -46c-29 0 -48 20 -48 46c0 25 19 50 48 50c26 0 48 -25 48 -50zM227 441l-92 -364c-1 -6 -1 -10 -1 -14c0 -7 6 -10 13 -10c22 0 28 12 64 51l13 -10c-35 -45 -85 -105 -134 -105c-28 0 -40 19 -40 46c0 12 0 31 79 338c1 2 2 9 2 12 c0 17 -8 22 -31 22c-9 0 -21 -2 -28 -4l-3 16Z" id="E1-STIXWEBNORMALI-1D456" stroke-width="1"/>
                  <path d="M527 668l-149 -598c-1 -3 -2 -9 -2 -12c0 -6 5 -9 15 -9c20 0 48 35 62 56l11 -12c-30 -45 -83 -105 -130 -105c-32 0 -40 23 -40 41c0 20 2 34 10 64h-5c-74 -93 -134 -105 -171 -105c-73 0 -88 74 -88 127c0 103 103 326 257 326c57 0 80 -26 81 -50h2l53 209 c1 4 2 8 2 12c0 13 -7 20 -33 20c-9 0 -20 -2 -27 -3l-4 15zM363 340c0 47 -15 71 -56 71c-99 0 -180 -200 -180 -296c0 -49 28 -66 56 -66c70 0 136 94 164 186c11 35 16 74 16 105Z" id="E1-STIXWEBNORMALI-1D451" stroke-width="1"/>
                  <path d="M637 320h-589v66h589v-66zM637 120h-589v66h589v-66Z" id="E1-STIXWEBMAIN-3D" stroke-width="1"/>
                  <path d="M621 220h-557v66h557v-66Z" id="E1-STIXWEBMAIN-2212" stroke-width="1"/>
                  <path d="M394 0h-276v15c74 4 95 25 95 80v449c0 34 -9 49 -30 49c-10 0 -27 -5 -45 -12l-27 -10v14l179 91l9 -3v-597c0 -43 20 -61 95 -61v-15Z" id="E1-STIXWEBMAIN-31" stroke-width="1"/>
                  <path d="M467 96l-5 -6c-28 -34 -76 -98 -128 -98c-32 0 -41 23 -41 46c0 13 4 29 7 40l57 221c2 8 7 28 7 42c0 19 -6 38 -24 38c-38 0 -101 -86 -132 -133c-36 -54 -62 -101 -68 -122l-33 -124h-77l95 374c0 18 -3 32 -30 32c-10 0 -21 -2 -28 -3l-2 15l159 23l-51 -189h3 c5 0 54 70 56 73c40 50 100 116 160 116c44 0 56 -29 56 -62c0 -25 -6 -50 -11 -70l-59 -231c-1 -2 -1 -5 -1 -10c1 -6 4 -14 15 -14c24 0 48 36 62 53Z" id="E1-STIXWEBNORMALI-1D45B" stroke-width="1"/>
                  <path d="M444 428l-89 -348c-1 -4 -1 -6 -1 -9c0 -8 4 -14 14 -14c21 0 40 26 57 46l5 6l13 -11c-23 -33 -74 -107 -132 -107c-29 0 -40 19 -40 52c0 9 1 25 4 37l26 95h-1c-7 -5 -97 -126 -137 -156c-23 -17 -49 -28 -72 -28c-47 0 -61 36 -61 74c0 21 3 40 8 59l59 231 c4 15 6 21 6 25c0 12 -11 23 -33 23c-7 0 -19 -1 -26 -3l-3 15l157 26l-84 -326c-2 -9 -3 -16 -3 -24c0 -21 8 -34 26 -34c25 0 65 31 100 77c43 57 89 146 109 219l21 75h77Z" id="E1-STIXWEBNORMALI-1D462" stroke-width="1"/>
                  <path d="M214 382l4 -4c33 32 72 63 121 63c70 0 111 -69 111 -151c0 -121 -109 -301 -266 -301c-53 0 -94 18 -139 48l144 563c1 4 2 8 2 11c-1 13 -16 21 -29 21c-10 0 -22 -1 -30 -4l-3 16l158 24zM179 252l-55 -215c0 -7 32 -19 55 -19c122 0 188 174 188 276 c0 70 -38 92 -71 92c-72 0 -106 -89 -117 -134Z" id="E1-STIXWEBNORMALI-1D44F" stroke-width="1"/>
                  <path d="M175 267l5 -1c9 18 21 38 32 56c34 54 82 119 137 119c29 0 44 -21 44 -48c0 -38 -24 -82 -65 -82c-39 0 -29 38 -47 38c-61 0 -148 -256 -153 -273l-21 -76h-77l92 364c3 11 4 18 4 23c0 13 -11 19 -33 19c-7 0 -21 -2 -27 -3l-2 15l157 23Z" id="E1-STIXWEBNORMALI-1D45F" stroke-width="1"/>
                </defs>
                <g fill="black" stroke="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)">
                  <g transform="translate(14519,0)">
                    <use xlink:href="#E1-STIXWEBNORMALI-1D460" x="0" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D450" x="440" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-210E" x="856" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="1369" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="1815" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="2525" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2D" x="2971" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D456" x="3304" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D451" x="3616" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-3D" x="4426" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2212" x="5389" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-31" x="6075" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2212" x="6797" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D460" x="7705" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D450" x="8146" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-210E" x="8561" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="9075" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="9520" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="10231" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2D" x="10676" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45B" x="11010" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D462" x="11507" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="11982" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D44F" x="12692" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="13163" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45F" x="13608" y="0"/>
                  </g>
                  <g transform="translate(14519,-1200)">
                    <use xlink:href="#E1-STIXWEBNORMALI-1D460" x="0" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D450" x="440" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-210E" x="856" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="1369" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="1815" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="2525" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2D" x="2971" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45B" x="3304" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D462" x="3802" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="4276" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D44F" x="4987" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="5457" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45F" x="5903" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-3D" x="6589" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2212" x="7552" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-31" x="8238" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2212" x="8960" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D460" x="9868" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D450" x="10309" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-210E" x="10724" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="11238" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D45A" x="11683" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D452" x="12394" y="0"/>
                    <use xlink:href="#E1-STIXWEBMAIN-2D" x="12839" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D456" x="13173" y="0"/>
                    <use xlink:href="#E1-STIXWEBNORMALI-1D451" x="13484" y="0"/>
                  </g>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[scheme-id = -1 - scheme-number
scheme-number = -1 - scheme-id
]]></artwork>
          </artset>
          <t>For example, the scheme-name <tt>coap</tt> has the (unsigned integer)
scheme-number <tt>0</tt> which is represented in a (negative integer)
scheme-id <tt>-1</tt>.</t>
        </section>
        <section anchor="the-discard-section">
          <name>The <tt>discard</tt> Section</name>
          <t>The <tt>discard</tt> section can be used in a CRI reference when neither a
scheme nor an authority is present.
It then expresses the operations performed on a base CRI by CRI references that
are equivalent to URI references with relative paths and path prefixes such as "/", "./", "../", "../../", etc.<br/>
"." and ".." are not available in CRIs and are therefore expressed
using <tt>discard</tt> after a normalization step, as is the presence or absence of a leading "/".</t>
          <t>E.g., a simple URI reference "foo" specifies to remove one trailing
segment, if any,
from the base URI's path, which is represented in the equivalent CRI
reference discard section as the value <tt>1</tt>; similarly "../foo" removes
two trailing segments, if any, represented as <tt>2</tt>;
and "/foo" removes all segments, represented in the <tt>discard</tt> section as the value <tt>true</tt>.
The exact semantics of the section values are defined by
<xref target="reference-resolution"/>.</t>
          <t>Most URI references that Section <xref target="RFC3986" section="4.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> calls "relative
references" (i.e., references that need to undergo a resolution
process to obtain a URI) correspond to the CRI reference form that starts with
<tt>discard</tt>.  The exception are relative references with an <tt>authority</tt>
(called a "network-path reference" in Section <xref target="RFC3986" section="4.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), which
discard the entire path of the base CRI.
These CRI references never carry a <tt>discard</tt> section: the value of
<tt>discard</tt> defaults to <tt>true</tt>.</t>
        </section>
        <section anchor="examples">
          <name>Examples</name>
          <figure anchor="fig-ex-1">
            <name>CRI for coap://198.51.100.1:61616/.well-known/core</name>
            <sourcecode type="cbor-diag"><![CDATA[
[-1,             / scheme-id -- equivalent to "coap" /
 [h'C6336401',   / host /
  61616],        / port /
 [".well-known", / path /
  "core"]
]
]]></sourcecode>
          </figure>
          <figure anchor="fig-ex-2">
            <name>CRI Reference for /.well-known/core?rt=temperature-c</name>
            <sourcecode type="cbor-diag"><![CDATA[
[true,                  / discard /
 [".well-known",        / path /
  "core"],
 ["rt=temperature-c"]  / query /
]
]]></sourcecode>
          </figure>
          <figure anchor="fig-ex-3">
            <name>CRI for did:web:alice:bob</name>
            <sourcecode type="cbor-diag"><![CDATA[
[-6,                / scheme-id -- equivalent to "did" /
 true,              / authority = NOAUTH-ROOTLESS /
 ["web:alice:bob"]  / path /
]
]]></sourcecode>
          </figure>
        </section>
        <section anchor="specific-terminology">
          <name>Specific Terminology</name>
          <t>A CRI reference is considered <em>well-formed</em> if it matches the
structure as expressed in <xref target="cddl"/> in CDDL, with the additional
requirement that trailing <tt>null</tt> values are removed from the array.</t>
          <t>A CRI reference is considered a <em>full</em> CRI if it is well-formed
and the sequence of sections starts with a non-null <tt>scheme</tt>.</t>
          <t>A CRI reference is considered <em>relative</em> if it is well-formed
and the sequence of sections is empty or starts with a section other
than those that would constitute a <tt>scheme</tt>.</t>
        </section>
      </section>
      <section anchor="ingest">
        <name>Ingesting and encoding a CRI Reference</name>
        <t>From an abstract point of view, a CRI reference is a data structure
with six sections:</t>
        <t>scheme, authority, discard, path, query, fragment</t>
        <t>We refer to this as the <em>abstract form</em>, while the <em>interchange form</em> (<xref target="cddl"/>) has either
two sections for scheme and authority or one section for discard, but
never both of these alternatives.</t>
        <t>Each of the sections in the abstract form can be <em>not set</em> ("null"),
<!-- "not defined" in RFC 3986 -->
except for discard,
which is always an unsigned integer or <tt>true</tt>.  If scheme and/or
authority are non-null, discard is set to <tt>true</tt>.</t>
        <t>When ingesting a CRI reference that is in interchange form, those
sections are filled in from interchange form (sections not set are
filled with null), and the following steps are performed:</t>
        <ul spacing="normal">
          <li>
            <t>If the array is empty, replace it with <tt>[0]</tt>.</t>
          </li>
          <li>
            <t>If discard is present in interchange form (i.e., the outer array
starts with true or an unsigned integer), set scheme and authority to null.</t>
          </li>
          <li>
            <t>If scheme and/or authority are present in interchange form (i.e.,
the outer array starts with null, a text string, or a negative integer), set
discard to <tt>true</tt>.</t>
          </li>
        </ul>
        <t>Upon encoding the abstract form into interchange form, the inverse
processing is performed:  If scheme and/or authority are not null, the
discard value is not transferred (it must be true in this case).  If
they are both null, they are both left out and only discard is
transferred.
Trailing null values are removed from the array.
As a special case, an empty array is sent in place for a remaining
<tt>[0]</tt> (URI reference "").</t>
        <section anchor="unprocessable">
          <name>Error handling and extensibility</name>
          <t>It is recommended that specifications that describe the use of CRIs in CBOR-based protocols
use the error handling mechanisms outlined in this section.
Implementations of this document <bcp14>MUST</bcp14> adhere to these rules
unless a containing document overrides them.</t>
          <t>When encountering a CRI that is well-formed in terms of CBOR, but that</t>
          <ul spacing="normal">
            <li>
              <t>is not well-formed as a CRI,</t>
            </li>
            <li>
              <t>does not meet the other requirements on CRIs that are not covered by
the term "well-formed", or</t>
            </li>
            <li>
              <t>uses features not supported by the implementation,</t>
            </li>
          </ul>
          <t>the CRI is treated as "unprocessable".</t>
          <t>When encountering an unprocessable CRI,
the processor skips the entire CRI top-level array, including any CBOR
items contained in there,
and continues processing the CBOR items surrounding the unprocessable CRI.
(Note: this skipping can be implemented in bounded memory for CRIs
that do not use indefinite length encoding, as mandated in
<xref target="cbor-representation"/>.)</t>
          <t>The unprocessable CRI is treated as an opaque identifier
that is distinct from all processable CRIs,
and distinct from all unprocessable CRIs with different CBOR representations.
It is up to the implementation whether unprocessable CRIs with identical representations
are treated as identical to each other or not.
Unprocessable CRIs cannot be dereferenced,
and it is an error to query any of their components.</t>
          <t>This mechanism ensures that CRI extensions
(using originally defined features or later extensions)
can be used without extending the compatibility hazard to the containing document.
For example,
if a collection of possible interaction targets contains several CRIs,
some of which use the "no-authority" feature,
an application consuming that collection that does not support that
feature can still offer the supported interaction targets.</t>
          <t>The duty of checking validity is with the recipients that rely on this
validity.
An intermediary that does not use the detailed information in a CRI
(or merely performs reference resolution) <bcp14>MAY</bcp14> pass on a CRI/CRI
reference without having fully checked it, relying on the producer
having generated a valid CRI/CRI reference.
This is true for both Simple CRIs (e.g., checking for valid UTF-8) and
for extensions (e.g., checking both for valid UTF-8 and the minimal
use of PET elements in the text-or-pet feature as per <xref target="pet"/>).</t>
          <t>A system that is checking a CRI for some reason but is not its
ultimate recipient needs to consider the tension between security
requirements and the danger of ossification <xref target="RFC9170"/>: If the system rejects
anything that it does not know, it prevents the other components from
making use of extensions.
If it passes through extensions unknown to it, that might allow
semantics pass through that the system should have been designed to
filter out.</t>
        </section>
      </section>
      <section anchor="reference-resolution">
        <name>Reference Resolution</name>
        <t>The term "relative" implies that a "base CRI" exists against which the
relative reference is applied. Aside from fragment-only references,
relative references are only usable when a base CRI is known.</t>
        <t>The following steps define the process of resolving any well-formed CRI
reference against a base CRI so that the result is a full CRI in the form of
an CRI reference:</t>
        <ol spacing="normal" type="1" start="1"><li>
            <t>Establish the base CRI of the CRI reference (compare Section <xref target="RFC3986" section="5.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) and express it in the form of an abstract (full) CRI
reference.</t>
          </li>
          <li>
            <t>Initialize a buffer with the sections from the base CRI.</t>
          </li>
          <li>
            <t>If the value of discard is <tt>true</tt> in the CRI reference (which is
implicitly the case when scheme and/or authority are present in the reference), replace the
path in the buffer with the empty array, set query to empty and fragment
to null, and set a <tt>true</tt> authority to <tt>null</tt>.  If the value of
discard is an unsigned integer, remove as many elements
from the end of the path array; if it is non-zero, set query to empty and
fragment to null.  </t>
            <t>
Set discard to <tt>true</tt> in the buffer.</t>
          </li>
          <li>
            <t>If the path section is non-null in the CRI reference, append all
elements from the path array to the array in the path section in
the buffer; set query to empty and fragment to null.</t>
          </li>
          <li>
            <t>Apart from the path and discard, copy all non-null sections from
the CRI reference to the buffer in sequence; set fragment to <tt>null</tt>
in the buffer if query is non-null in the CRI reference.</t>
          </li>
          <li>
            <t>Return the sections in the buffer as the resolved CRI.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="relationship-between-cris-uris-and-iris">
      <name>Relationship between CRIs, URIs, and IRIs</name>
      <t>CRIs are meant to replace both <xref target="STD66">Uniform Resource Identifiers (URIs)</xref>
and <xref target="RFC3987">Internationalized Resource Identifiers (IRIs)</xref>
in constrained environments <xref target="RFC7228"/><xref target="I-D.ietf-iotops-7228bis"/>.
Applications in these environments may never need to use URIs and IRIs
directly, especially when the resource identifier is used simply for
identification purposes or when the CRI can be directly converted into a
CoAP request.</t>
      <t>However, it may be necessary in other environments to determine the
associated URI or IRI of a CRI, and vice versa. Applications can perform
these conversions as follows:</t>
      <dl newline="true">
        <dt>CRI to URI</dt>
        <dd>
          <t>A CRI is converted to a URI as specified in <xref target="cri-to-uri"/>.</t>
        </dd>
        <dt>URI to CRI</dt>
        <dd>
          <t>The method of converting a URI to a CRI is unspecified;
implementations are free to use any algorithm as long as converting
the resulting CRI back to a URI yields an equivalent URI.
</t>
          <t>Note that CRIs are defined to enable implementing conversions from
or to URIs analogously to processing URIs into CoAP Options and
back, with the exception that item 8 of <xref section="6.4" sectionFormat="of" target="RFC7252"/>
and item 7 of <xref section="6.5" sectionFormat="of" target="RFC7252"/> do not apply to CRI processing.
See <xref format="counter" target="sp-leading-empty"/> in <xref target="the-small-print"/> for more details.</t>
        </dd>
        <dt>CRI to IRI</dt>
        <dd anchor="critoiri">
          <t>A CRI can be converted to an IRI by first converting it to a URI as
specified in <xref target="cri-to-uri"/>, and then converting the URI
to an IRI as described in <xref section="3.2" sectionFormat="of" target="RFC3987"/>.</t>
        </dd>
        <dt>IRI to CRI</dt>
        <dd>
          <t>An IRI can be converted to a CRI by first converting it to a URI as
described in <xref section="3.1" sectionFormat="of" target="RFC3987"/>, and then
converting the URI to a CRI as described above.</t>
        </dd>
      </dl>
      <!-- What? -->
<t>Everything in this section also applies to CRI references, URI
references, and IRI references.</t>
      <section anchor="cri-to-uri">
        <name>Converting CRIs to URIs</name>
        <t>Applications <bcp14>MUST</bcp14> convert a CRI reference to a URI
reference by determining the components of the URI reference according
to the following steps and then recomposing the components to a URI
reference string as specified in Section <xref target="RFC3986" section="5.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>.</t>
        <dl newline="true">
          <dt>scheme</dt>
          <dd>
            <t>If the CRI reference contains a <tt>scheme</tt> section, the scheme
component of the URI reference consists of the value of that
section, if text (<tt>scheme-name</tt>); or, if a negative integer is given
(<tt>scheme-id</tt>), the lower case scheme name corresponding to the
scheme-id as per <xref target="scheme-id"/>.
Otherwise, the scheme component is not set.</t>
          </dd>
          <dt>authority</dt>
          <dd>
            <t>If the CRI reference contains a <tt>host-name</tt> or <tt>host-ip</tt> item, the
authority component of the URI reference consists of a host
subcomponent, optionally followed by a colon (":") character and a
port subcomponent, optionally preceded by a <tt>userinfo</tt> subcomponent.
Otherwise, the authority component is not set.
</t>
            <t>The host subcomponent consists of the value of the <tt>host-name</tt> or
<tt>host-ip</tt> item.</t>
            <t>The <tt>userinfo</tt> subcomponent, if present, is turned into a single
string by
appending a "@".  Otherwise, both the subcomponent and the "@" sign
are omitted.
Any character in the value of the <tt>userinfo</tt> element that is not in
the set of unreserved characters (Section <xref target="RFC3986" section="2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) or
"sub-delims" (Section <xref target="RFC3986" section="2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) or a colon (":") <bcp14>MUST</bcp14> be
percent-encoded.</t>
            <t>The <tt>host-name</tt> is turned into a single string by joining the
elements separated by dots (".").
Any character in the elements of a <tt>host-name</tt> item that is not in
the set of unreserved characters (Section <xref target="RFC3986" section="2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) or
"sub-delims" (Section <xref target="RFC3986" section="2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) <bcp14>MUST</bcp14> be
percent-encoded.
If there are dots (".") in such elements, the conversion fails
(percent-encoding is not able to represent such elements, as
normalization would turn the percent-encoding back to the unreserved
character that a dot is.)</t>
            <aside>
              <t>Implementations with scheme-specific knowledge <bcp14>MAY</bcp14> convert
  individual elements by using the ToASCII procedure <xref section="4.1" sectionFormat="of" target="RFC3490"/> as discussed in more detail in <xref section="3.1" sectionFormat="of" target="RFC3987"/>.
  This should not be done if the next step of conversion is to an
  IRI as defined in <xref target="critoiri"/> (CRI to IRI).</t>
            </aside>
            <t anchor="host-ip-to-uri">The value of a <tt>host-ip</tt> item <bcp14>MUST</bcp14> be
represented as a string that matches the "IPv4address" or
"IP-literal" rule (Section <xref target="RFC3986" section="3.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).</t>
            <t anchor="zone-id-issue">Any zone-id is appended to the string; the details for how this is
done are currently in flux in the URI specification: <xref section="2" sectionFormat="of" target="RFC6874"/> uses percent-encoding and a separator of "%25", while
proposals for a future superseding zone-id specification document
(such as <xref target="I-D.carpenter-6man-rfc6874bis"/>) are being prepared; this also leads to a modified
"IP-literal" rule as specified in these documents.
While the discussion about the representation of zone-id information
in URIs is ongoing, CRIs maintain a position in the grammar for it
(<tt>zone-id</tt>).
This can be used by consenting implementations to exchange zone
information without being concerned by the ambiguity at the URI
syntax level.
The assumption is that the present specification (1) either will be
updated eventually to obtain consistent URI conversion of zone-id
information (2) or there will be no representation of zone-id
information in URIs.</t>
            <t>If the CRI reference contains a <tt>port</tt> item, the port
subcomponent consists of the value of that item in decimal
notation.
Otherwise, the colon (":") character and the port subcomponent are
both omitted.</t>
          </dd>
          <dt>path</dt>
          <dd>
            <t anchor="colon">If the CRI reference contains a <tt>discard</tt> item of value <tt>true</tt>, the
path component is considered <em>rooted</em>.  If it
contains a <tt>discard</tt> item of value <tt>0</tt> and the <tt>path</tt> item is
present, the conversion fails.  If it contains a positive discard
item, the path component is considered <em>unrooted</em> and
prefixed by as many "../" components as the <tt>discard</tt> value minus
one indicates.  If the discard value is <tt>1</tt> and the first element of
the path contains a <tt>:</tt>, the path component is prefixed by "./"
(this avoids the first element to appear as supplying a URI scheme;
compare <tt>path-noscheme</tt> in Section <xref target="RFC3986" section="4.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).
</t>
            <t>If the discard item is not present and the CRI reference contains an
authority that is <tt>true</tt>, the path component of the URI reference is
considered unrooted.  Otherwise, the path component is considered
rooted.</t>
            <t>If the CRI reference contains one or more <tt>path</tt> items, the path
component is constructed by concatenating the sequence of
representations of these items.  These representations generally
contain a leading slash ("/") character and the value of each item,
processed as discussed below.  The leading slash character is
omitted for the first path item only if the path component is
considered "unrooted".  <!-- A path segment that contains a colon
character (e.g., --> <!-- "this:that") cannot directly be used as
the first such item.  Such a --> <!-- segment MUST be preceded by a
dot-segment (e.g., "./this:that") --> <!-- unless scheme and/or
authority are present. -->
            </t>
            <t>Any character in the value of a <tt>path</tt> item that is not
in the set of unreserved characters or "sub-delims" or a colon
(":") or commercial at ("@") character <bcp14>MUST</bcp14> be
percent-encoded.</t>
            <t>If the authority component is present (not <tt>null</tt> or <tt>true</tt>) and the
path component does not match the "path-abempty" rule (Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), the conversion fails.</t>
            <t>If the authority component is not present, but the scheme component
is, and the path component does not match the "path-absolute",
"path-rootless" (authority == <tt>true</tt>) or "path-empty" rule (Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), the conversion fails.</t>
            <t>If neither the authority component nor the scheme component are
present, and the path component does not match the "path-absolute",
"path-noscheme" or "path-empty" rule (Section <xref target="RFC3986" section="3.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>), the
conversion fails.</t>
          </dd>
          <dt>query</dt>
          <dd>
            <t>If the CRI reference contains one or more <tt>query</tt> items,
the query component of the URI reference consists of the value of
each item, separated by an ampersand ("&amp;") character.
Otherwise, the query component is not set.
</t>
            <t>Any character in the value of a <tt>query</tt> item that is not
in the set of unreserved characters or "sub-delims" or a colon
(":"), commercial at ("@"), slash ("/"), or question mark ("?")
character <bcp14>MUST</bcp14> be percent-encoded.
Additionally, any ampersand character ("&amp;") in the item
value <bcp14>MUST</bcp14> be percent-encoded.</t>
          </dd>
          <dt>fragment</dt>
          <dd>
            <t>If the CRI reference contains a fragment item, the fragment
component of the URI reference consists of the value of that
item.
Otherwise, the fragment component is not set.
</t>
            <t>Any character in the value of a <tt>fragment</tt> item that is
not in the set of unreserved characters or "sub-delims" or a colon
(":"), commercial at ("@"), slash ("/"), or question mark ("?")
character <bcp14>MUST</bcp14> be percent-encoded.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="extending">
      <name>Extending CRIs</name>
      <t>The CRI structure described up to this point, without enabling any
feature ("scheme-name", "no-authority", "userinfo"), is termed the
<em>Basic CRI</em>.
It should be sufficient for all applications that use the CoAP
protocol, as well as most other protocols employing URIs.</t>
      <t>With one or more of the three features enabled, we speak of <em>Simple
CRIs</em>, which cover a larger subset of protocols that employ URIs.
To overcome remaining limitations, <em>Extended Forms</em> of CRIs may be
defined to enable further applications.
They will generally extend the CRI structure to accommodate more potential
values of text components of URIs, such as userinfo, hostnames, paths,
queries, and fragments.</t>
      <t>Extensions may also be defined to afford a more natural
representation of the information in a URI.
<em>Stand-in Items</em> (<xref target="stand-in"/>) are one way to provide such
representations.
For instance, information that needs to be base64-encoded in a URI can
be represented in a CRI in its natural form as a byte string instead.</t>
      <t>Extensions are or will be necessary to cover two limitations of
Simple CRIs:</t>
      <ul spacing="normal">
        <li>
          <t>Simple CRIs do not support IPvFuture (Section <xref target="RFC3986" section="3.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>).
Definition of such an extension probably best waits until a wider
use of new IP literal formats is planned.</t>
        </li>
        <li>
          <t>More important in practice:  </t>
          <t>
Simple CRIs do not support URI components that <em>require</em>
percent-encoding (Section <xref target="RFC3986" section="2.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>) to represent them
in the URI syntax, except where that percent-encoding is used to
escape the main delimiter in use.  </t>
          <t>
E.g., the URI  </t>
          <sourcecode type="uri"><![CDATA[
https://alice/3%2f4-inch
]]></sourcecode>
          <t>
is represented by the Basic CRI  </t>
          <sourcecode type="coap-diag"><![CDATA[
[-4, ["alice"], ["3/4-inch"]]
]]></sourcecode>
          <t>
However, percent-encoding that is used at the application level is not
supported by Simple CRIs:  </t>
          <sourcecode type="uri"><![CDATA[
did:web:alice:7%3A1-balun
]]></sourcecode>
          <t>
CRIs have been designed to relieve implementations operating on CRIs
from string scanning, which both helps constrained implementations and
implementations that need to achieve high throughput.  </t>
          <t>
An extension supporting application-level percent-encoded text in
CRIs is described in <xref target="pet"/>.</t>
        </li>
      </ul>
      <t>Consumers of CRIs will generally notice when an extended form is in
use, by finding structures that do not match the CDDL rules given in
<xref target="cddl"/>.
Future definitions of extended forms need to strive to be
distinguishable in their structures from the extended form presented
here as well as other future forms.</t>
      <t>Extensions to CRIs are not intended to change encoding constraints;
e.g., <xref target="no-indef"/> is applicable to extended forms of CRIs as well.
This also ensures that recipients of CRIs can deal with unprocessable CRIs
as described in <xref target="unprocessable"/>.</t>
      <section anchor="stand-in">
        <name>Extended CRI: Stand-In Items</name>
        <t>Application specifications that use CRIs may explicitly enable the use
of "stand-in" items (tags or simple values).
These are data items used in place of original representation items
such as strings or arrays, where the tag or simple value is defined to
stand for a data item that can be used in the position of the stand-in
item.
Examples would be (1) tags such as 21 to 23 (Section <xref target="RFC8949" section="3.4.5.2" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>) or 108 (<xref section="2.1" sectionFormat="of" target="I-D.bormann-cbor-notable-tags"/>), which stand for text string components but internally
employ more compact byte string representations, or (2) reference tags and
simple values as defined in <xref target="I-D.ietf-cbor-packed"/>.</t>
        <t>Application specifications need to be explicit about which
stand-in items are allowed; otherwise, inconsistent interpretations at
different places in a system can lead to check/use vulnerabilities.</t>
        <t>(Note that specifications that define CBOR tags may be employed in CRI
extensions without actually using the tags defined there as stand-in
tags; e.g., compare the way IP addresses are represented in Basic CRIs
with <xref target="RFC9164"/>.)</t>
      </section>
      <section anchor="pet">
        <name>Extended CRI: Accommodating Percent Encoding (PET)</name>
        <t>This section presents a method to represent percent-encoded segments
of userinfo, hostnames, paths, and queries, as well as fragments.</t>
        <t>The four CDDL rules</t>
        <sourcecode type="cddl"><![CDATA[
userinfo    = (false, text .feature "userinfo")
host-name   = (*text)
path        = [*text]
query       = [*text]
fragment    = text
]]></sourcecode>
        <t>are replaced with</t>
        <sourcecode type="cddl"><![CDATA[
userinfo    = (false, text-or-pet .feature "userinfo")
host-name   = (*text-or-pet)
path        = [*text-or-pet]
query       = [*text-or-pet]
fragment    = text-or-pet

text-or-pet = text /
    text-pet-sequence .feature "text-or-pet"

; text1 and pet1 alternating, at least one pet1:
text-pet-sequence = [?text1, ((+(pet1, text1), ?pet1) // pet1)]
; pet is percent-encoded bytes
pet1 = bytes .ne ''
text1 = text .ne ""
]]></sourcecode>
        <t>That is, for each of the host-name, path, and query segments, and for
the userinfo and fragment components, an alternate representation is provided
besides a simple text string: a non-empty array of alternating non-blank text and byte
strings, the text strings of which stand for non-percent-encoded text,
while the byte strings retain the special
semantics of percent-encoded text without actually being
percent-encoded.</t>
        <t>The abovementioned DID URI</t>
        <sourcecode type="uri"><![CDATA[
did:web:alice:7%3A1-balun
]]></sourcecode>
        <t>can now be represented as:</t>
        <sourcecode type="cbor-diag"><![CDATA[
[-6, true, [["web:alice:7", ':', "1-balun"]]]
]]></sourcecode>
        <t>(Note that, in CBOR diagnostic notation, single quotes delimit
literals for byte strings, double quotes for text strings.)</t>
        <t>To yield a valid CRI using the <tt>text-or-pet</tt> feature, the use of byte
strings <bcp14>MUST</bcp14> be minimal.
Both the following examples are therefore not valid:</t>
        <sourcecode type="cbor-diag"><![CDATA[
[-6, true, [["web:alice:", '7:', "1-balun"]]]
]]></sourcecode>
        <sourcecode type="cbor-diag"><![CDATA[
[-6, true, [["web:alice:7", ':1', "-balun"]]]
]]></sourcecode>
        <t>An algorithm for constructing a valid <tt>text-pet-sequence</tt> might
repeatedly examine the byte sequences in each byte string; if such a
sequence stands for an unreserved ASCII character, or constitutes a
valid UTF-8 character ≥ U+0080, move this character over into a text
string by appending it to the end of the preceding text string,
prepending it to the start of the following text string, or splitting
the byte string and inserting a new text string with this character,
all while preserving the order of the bytes.
(Note that the properties of UTF-8 make this a simple linear process;
working around the NFC constraint <xref format="counter" target="c-nfc"/> in this way may be more
complex.)</t>
        <aside>
          <t>Unlike the text elements of a path or a query, which through CoAP's
heritage are designed to be processable element by element, a
text-pet-sequence does not usually produce a semantically meaningful
division into array elements.
This consequence of the flexibility in delimiters offered in URIs is
demonstrated by this example, which structurally singles out the one
':' that is <em>not</em> a delimiter at the application level.
Applications specifically designed for using CRIs will generally
avoid using the <tt>text-or-pet</tt> feature.
Applications using existing URI structures that require
text-pet-sequence elements for their representation typically need
to process them byte by byte.</t>
        </aside>
      </section>
    </section>
    <section anchor="integration-into-coap-and-ace">
      <name>Integration into CoAP and ACE</name>
      <t>This section discusses ways in which CRIs can be used in the context
of the CoAP protocol <xref target="RFC7252"/> and of Authorization for Constrained
Environments (ACE), specifically the Authorization Information Format
(AIF) <xref target="RFC9237"/>.</t>
      <section anchor="converting-between-coap-cris-and-sets-of-coap-options">
        <name>Converting Between CoAP CRIs and Sets of CoAP Options</name>
        <t>This section provides an analogue to Sections <xref target="RFC7252" section="6.4" sectionFormat="bare"/> and <xref target="RFC7252" section="6.5" sectionFormat="bare"/> of <xref target="RFC7252"/>:
Computing a set of CoAP options from a request CRI (<xref target="decompose-coap"/>) and computing a
request CRI from a set of COAP options (<xref target="compose-coap"/>).</t>
        <t>This section makes use of the mapping between CRI scheme numbers
and URI scheme names shown in <xref target="scheme-map"/>:</t>
        <table anchor="scheme-map">
          <name>Mapping CRI scheme numbers and URI scheme names</name>
          <thead>
            <tr>
              <th align="left">CRI scheme number</th>
              <th align="left">URI scheme name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">coap</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">coaps</td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">coap+tcp</td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">coaps+tcp</td>
            </tr>
            <tr>
              <td align="left">24</td>
              <td align="left">coap+ws</td>
            </tr>
            <tr>
              <td align="left">25</td>
              <td align="left">coaps+ws</td>
            </tr>
          </tbody>
        </table>
        <section anchor="decompose-coap">
          <name>Decomposing a Request CRI into a set of CoAP Options</name>
          <t>The steps to parse a request's options from a CRI »cri« are as
   follows.  These steps either result in zero or more of the Uri-Host,
   Uri-Port, Uri-Path, and Uri-Query Options being included in the
   request or they fail.</t>
          <t>Where the following speaks of deriving a text-string for a CoAP Option
value from a data item in the CRI, the presence of any
<tt>text-pet-sequence</tt> subitem (<xref target="pet"/>) in this item fails this algorithm.</t>
          <ol spacing="normal" type="1" start="1"><li>
              <t>If »cri« is not a full CRI, then fail this algorithm.</t>
            </li>
            <li>
              <t>Translate the scheme-id into a URI scheme name as per
<xref target="scheme-id"/> and
<xref target="scheme-map"/>; if a scheme-id that corresponds to a scheme
number not in this list is being used, or if a scheme-name is
being used,
fail this algorithm.
Remember the specific variant of CoAP to be used based on this
URI scheme name.</t>
            </li>
            <li>
              <t>If the »cri«'s <tt>fragment</tt> component is non-null, then fail this algorithm.</t>
            </li>
            <li>
              <t>If the <tt>host</tt> component of »cri« is a <tt>host-name</tt>, include a
Uri-Host Option and let that option's value be the text string
values of the <tt>host-name</tt> elements joined by dots.  </t>
              <t>
If the <tt>host</tt> component of »cri« is a <tt>host-ip</tt>, check whether
the IP address given represents the request's
destination IP address (and, if present, zone-id).
Only if it does not, include a Uri-Host Option, and let that
option's value be the text value of the URI representation of
the IP address, as derived in <xref target="host-ip-to-uri"/>.</t>
            </li>
            <li>
              <t>If the <tt>port</tt> subcomponent in a »cri« is not absent, then let »port« be that
subcomponent's unsigned integer value; otherwise, let »port« be
the default port number for the scheme.</t>
            </li>
            <li>
              <t>If »port« does not equal the request's destination port,
include a Uri-Port Option and let that option's value be »port«.</t>
            </li>
            <li>
              <t>If the value of the <tt>path</tt> component of »cri« is empty or
consists of a single empty string, then move to the next step.  </t>
              <t>
Otherwise, for each element in the »path« component, include a
Uri-Path Option and let that option's value be the text string
value of that element.</t>
            </li>
            <li>
              <t>If the value of the <tt>query</tt> component of »cri« is non-empty,
then, for each element in the <tt>query</tt> component, include a
Uri-Query Option and let that option's value be the text string
value of that element.</t>
            </li>
          </ol>
        </section>
        <section anchor="compose-coap">
          <name>Composing a Request CRI from a Set of CoAP Options</name>
          <t>The steps to construct a CRI from a request's options are as follows.
   These steps either result in a CRI or they fail.</t>
          <ol spacing="normal" type="1" start="1"><li>
              <t>Based on the variant of CoAP used in the request, choose a
<tt>scheme-id</tt> as per <xref target="scheme-id"/> and table <xref target="scheme-map"/>.  Use
that as the first value in the resulting CRI array.</t>
            </li>
            <li>
              <t>If the request includes a Uri-Host Option, insert an
<tt>authority</tt> with its value determined as follows:
If the value of the Uri-Host Option is a <tt>reg-name</tt>, split it
on any dots in the name and use the resulting text string
values as the elements of the <tt>host-name</tt> array.
If the value is an IP-literal or IPv4address, extract any
<tt>zone-id</tt>, and represent the IP address as a byte string of
the correct length in <tt>host-ip</tt>, followed by any <tt>zone-id</tt>
extracted if present.
If the value is none of the three, fail this algorithm.  </t>
              <t>
If the request does not include a Uri-Host Option, insert an
<tt>authority</tt> with <tt>host-ip</tt> being the byte string that
represents the request's destination IP address and,
if one is present in the request's destination, add a <tt>zone-id</tt>.</t>
            </li>
            <li>
              <t>If the request includes a Uri-Port Option, let »port« be that
option's value.  Otherwise, let »port« be the request's
destination port.
If »port« is not the default port for the scheme, then insert
the integer value of »port« as the value of <tt>port</tt> in the
authority.
Otherwise, elide the <tt>port</tt>.</t>
            </li>
            <li>
              <t>Insert a <tt>path</tt> component that contains an array built from
the text string values of the Uri-Path Options in the request,
or an empty array if no such options are present.</t>
            </li>
            <li>
              <t>Insert a <tt>query</tt> component that contains an array built from
the text string values of the Uri-Query Options in the request,
or an empty array if no such options are present.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="coap-options">
        <name>CoAP Options for Forward-Proxies</name>
        <t>Apart from the above procedures to convert CoAP CRIs to and from sets
of CoAP Options, two additional CoAP Options are defined in <xref section="5.10.2" sectionFormat="of" target="RFC7252"/> that support requests to forward-proxies:</t>
        <ul spacing="normal">
          <li>
            <t>Proxy-Uri, and</t>
          </li>
          <li>
            <t>its more lightweight variant, Proxy-Scheme</t>
          </li>
        </ul>
        <t>This section defines analogues of these that employ CRIs and the URI
Scheme numbering provided by the present specification.</t>
        <section anchor="proxy-cri">
          <name>Proxy-CRI</name>
          <table anchor="tab-proxy-cri">
            <name>Proxy-Cri CoAP Option</name>
            <thead>
              <tr>
                <th align="left">No.</th>
                <th align="left">C</th>
                <th align="left">U</th>
                <th align="left">N</th>
                <th align="left">R</th>
                <th align="left">Name</th>
                <th align="left">Format</th>
                <th align="left">Length</th>
                <th align="left">Default</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">TBD235</td>
                <td align="left">x</td>
                <td align="left">x</td>
                <td align="left">-</td>
                <td align="left"> </td>
                <td align="left">Proxy-Cri</td>
                <td align="left">opaque</td>
                <td align="left">1-1023</td>
                <td align="left">(none)</td>
              </tr>
            </tbody>
          </table>
          <t>The Proxy-CRI Option carries an encoded CBOR data item that represents
a full CRI.
It is used analogously to Proxy-Uri as defined in <xref section="5.10.2" sectionFormat="of" target="RFC7252"/>.
The Proxy-Cri Option <bcp14>MUST</bcp14> take precedence over any of the Uri-Host,
Uri-Port, Uri-Path or Uri-Query options, as well as over any
Proxy-Uri Option (each of which <bcp14>MUST NOT</bcp14> be
included in a request containing the Proxy-Cri Option).</t>
        </section>
        <section anchor="proxy-scheme-number">
          <name>Proxy-Scheme-Number</name>
          <table anchor="tab-proxy-scheme-number">
            <name>Proxy-Scheme-Number CoAP Option</name>
            <thead>
              <tr>
                <th align="left">No.</th>
                <th align="left">C</th>
                <th align="left">U</th>
                <th align="left">N</th>
                <th align="left">R</th>
                <th align="left">Name</th>
                <th align="left">Format</th>
                <th align="left">Length</th>
                <th align="left">Default</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">TBD239</td>
                <td align="left">x</td>
                <td align="left">x</td>
                <td align="left">-</td>
                <td align="left"> </td>
                <td align="left">Proxy-Scheme-Number</td>
                <td align="left">uint</td>
                <td align="left">0-3</td>
                <td align="left">(none)</td>
              </tr>
            </tbody>
          </table>
          <t>The Proxy-Scheme-Number Option carries a CRI Scheme Number represented as a
CoAP unsigned integer.
It is used analogously to Proxy-Scheme as defined in <xref section="5.10.2" sectionFormat="of" target="RFC7252"/>.</t>
          <t>The Proxy-Scheme Option <bcp14>MUST NOT</bcp14> be included in a request that also
contains the Proxy-Scheme-Number Option; servers <bcp14>MUST</bcp14> reject the
request if this is the case.</t>
          <t>As per <xref section="3.2" sectionFormat="of" target="RFC7252"/>, CoAP Options are only defined as one of empty, (text) string,
opaque (byte string), or uint (unsigned integer).
The Option therefore carries an
unsigned integer that represents the CRI scheme-number (which relates to
a CRI scheme-id as defined in <xref target="scheme-id"/>).
For instance, the scheme name "coap" has the scheme-number 0 and is
represented as an unsigned integer by a zero-length CoAP Option value.</t>
        </section>
      </section>
      <section anchor="toid">
        <name>ACE AIF</name>
        <t>The AIF (Authorization Information Format, <xref target="RFC9237"/>) defined by ACE by
default uses the local part of a URI to identify a resource for which
authorization is indicated.
The type and target of this information is an extension point, briefly
called <em>Toid</em> (Type of object identifier).
<xref target="toidreg"/> registers "CRI-local-part" as a Toid.
Together with <em>Tperm</em>, an extension point for a way to indicate
individual access rights (permissions), <xref section="2" sectionFormat="of" target="RFC9237"/>
defines its general Information Model as:</t>
        <sourcecode type="cddl"><![CDATA[
AIF-Generic<Toid, Tperm> = [* [Toid, Tperm]]
]]></sourcecode>
        <t>Using the definitions in <xref target="cddl"/> together with the <xref target="RFC9237"/> default Tperm
choice <tt>REST-method-set</tt>, this information model can be specialized as
in:</t>
        <sourcecode type="cddl"><![CDATA[
CRI-local-part = [path, ?query]
AIF-CRI = AIF-Generic<CRI-local-part, REST-method-set>
]]></sourcecode>
        <!-- cddlc -irfc9237 -sAIF-CRI -r2u -tcddl - -->

</section>
    </section>
    <section anchor="impl">
      <name>Implementation Status</name>
      <t>(Boilerplate as per <xref section="2.1" sectionFormat="of" target="RFC7942"/>:)</t>
      <t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of
this Internet-Draft, and is based on a proposal described in
<xref target="RFC7942"/>.  The description of implementations in this section is
intended to assist the IETF in its decision processes in
progressing drafts to RFCs.  Please note that the listing of any
individual implementation here does not imply endorsement by the
IETF.  Furthermore, no effort has been spent to verify the
information presented here that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a
catalog of available implementations or their features.  Readers
are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working
groups to assign due consideration to documents that have the
benefit of running code, which may serve as evidence of valuable
experimentation and feedback that have made the implemented
protocols more mature.  It is up to the individual working groups
to use this information as they see fit".
<?line -22?>
      </t>
      <t>A golang implementation of revision -10 of this document is found at:
<tt>https://github.com/thomas-fossati/href</tt>.
A Rust implementation is available at <tt>https://codeberg.org/chrysn/cri-ref</tt>;
it is being updated to revision -18 at the time of writing.
A python implementation is available as part of <tt>https://gitlab.com/chrysn/micrurus</tt>
but is based on revision -05.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>Parsers of CRI references must operate on input that is assumed to be
untrusted. This means that parsers <bcp14>MUST</bcp14> fail gracefully
in the face of malicious inputs.
Additionally, parsers <bcp14>MUST</bcp14> be prepared to deal with
resource exhaustion (e.g., resulting from the allocation of big data
items) or exhaustion of the call stack (stack overflow).
See Section <xref target="RFC8949" section="10" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/> for additional
security considerations relating to CBOR.</t>
      <t>The security considerations discussed in Section <xref target="RFC3986" section="7" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> and
<xref section="8" sectionFormat="of" target="RFC3987"/> for URIs and IRIs also apply to CRIs.
The security considerations discussed for URIs in <xref section="6" sectionFormat="of" target="RFC9237"/>
apply analogously to AIF-CRI <xref target="toid"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="removenumbers">RFC-editor: Please replace all references to
<xref target="sec-numbers"/> by a reference to the IANA registry.</cref></t>
      <section anchor="cri-reg">
        <name>CRI Scheme Numbers Registry</name>
        <t>This specification defines a new "CRI Scheme Numbers" registry in the
"Constrained RESTful Environments (CoRE) Parameters" registry group
<xref target="IANA.core-parameters"/>, with the policy "Expert Review" (Section <xref target="RFC8126" section="4.5" sectionFormat="bare"/> of RFC 8126 <xref target="BCP26"/>).
The objective is to have CRI scheme number values registered for all
registered URI schemes (Uniform Resource Identifier (URI) Schemes
registry), as well as exceptionally for certain text strings that the
Designated Expert considers widely used in constrained applications in
place of URI scheme names.</t>
        <section anchor="de-instructions">
          <name>Instructions for the Designated Expert</name>
          <t>The expert is instructed to be frugal in the allocation of CRI scheme
number values whose scheme-id values (<xref target="scheme-id"/>) have short
representations (1+0 and 1+1 encoding), keeping them in
reserve for applications that are likely to enjoy wide use and can
make good use of their shortness.</t>
          <t>When the expert notices that a registration has been made in the
Uniform Resource Identifier (URI) Schemes registry (see also <xref target="upd"/>),
the expert is requested to initiate a parallel registration in the CRI
Scheme Numbers registry.
CRI scheme number values in the range between 1000 and
20000 (inclusive) should be assigned unless a shorter representation
in CRIs appears desirable.</t>
          <t>The expert exceptionally also may make such a registration for text
strings that have not been registered in the Uniform Resource
Identifier (URI) Schemes registry if and only if the expert considers
them to be in wide use in place of URI scheme names in constrained
applications.
(Note that registrations in the CRI Scheme Numbers registry are
oblivious to the details of any URI Schemes registry registration, so
if a registration is later made in the URI Schemes registry that uses
such a previously unregistered text string as a name, the CRI Scheme
Numbers registration simply stays in place, even if the URI Schemes
registration happens to be for something different from what the
expert had in mind at the time for the CRI Scheme Numbers
registration.
Also note that the initial registrations in <xref target="tab-numbers"/> in
<xref target="sec-numbers"/> already include such registrations for the text strings
"mqtt" and "mqtts".)</t>
          <t>A registration in the CRI Scheme Numbers registry does not imply that
a URI scheme under this name exists or has been registered in the
Uniform Resource Identifier (URI) Schemes registry -- it essentially
is only providing an integer identifier for an otherwise uninterpreted
text string.</t>
          <t>Any questions or issues that might interest a wider audience might be
raised by the expert on the core-parameters@ietf.org mailing list for
a time-limited discussion.</t>
        </section>
        <section anchor="structure-of-entries">
          <name>Structure of Entries</name>
          <t>Each entry in the registry must include:</t>
          <dl newline="true">
            <dt>CRI scheme number:</dt>
            <dd>
              <t>An unsigned integer unique in this registry</t>
            </dd>
            <dt>URI scheme name:</dt>
            <dd>
              <t>a text string that would be acceptable for registration as a URI
Scheme Name in the Uniform Resource Identifier (URI) Schemes
registry</t>
            </dd>
            <dt>Reference:</dt>
            <dd>
              <t>a reference to a document, if available, or the registrant</t>
            </dd>
          </dl>
          <t>The Reference field can simply be a copy of the reference field for the
URI-Scheme registration if that exists.
If not, it can contain helpful information (including the name of the
registrant) that may be available for the registration, with the
expectation that this will be updated if a URI-Scheme registration
under that URI scheme name is later made.</t>
        </section>
        <section anchor="initial-registrations">
          <name>Initial Registrations</name>
          <t>The initial registrations for the CRI Scheme Numbers registry are
provided in <xref target="tab-numbers"/> in <xref target="sec-numbers"/>.</t>
        </section>
      </section>
      <section anchor="upd">
        <name>Update to "Uniform Resource Identifier (URI) Schemes" Registry</name>
        <t>RFC 7595 <xref target="BCP35"/> is updated to add the following note in the "Uniform
Resource Identifier (URI) Schemes" Registry <xref target="IANA.uri-schemes"/>:</t>
        <blockquote>
          <t>The CRI Scheme Numbers Registry registers numeric identifiers for what
essentially are URI Scheme names.
Registrants for the Uniform Resource Identifier (URI) Schemes Registry
are requested to make a parallel registration in the CRI Scheme
Numbers registry.
The number for this registration will be assigned by the Designated
Expert for that registry.</t>
        </blockquote>
      </section>
      <section anchor="cri-iana">
        <name>CBOR Diagnostic Notation Application-extension Identifiers Registry</name>
        <t>In the "Application-Extension Identifiers" registry in the "CBOR
Diagnostic Notation" registry group [IANA.cbor-diagnostic-notation],
IANA is requested to register the application-extension identifier
<tt>cri</tt> as described in <xref target="tab-iana"/> and defined in <xref target="edn-cri"/>.</t>
        <table anchor="tab-iana">
          <name>CBOR Extended Diagnostic Notation (EDN) Application-extension Identifier for CRI</name>
          <thead>
            <tr>
              <th align="left">Application-extension Identifier</th>
              <th align="left">Description</th>
              <th align="left">Change Controller</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">cri</td>
              <td align="left">Constrained Resource Identifier</td>
              <td align="left">IETF</td>
              <td align="left">RFC-XXXX, <xref target="edn-cri"/></td>
            </tr>
          </tbody>
        </table>
        <t><cref anchor="replace-xxxx_1">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
      </section>
      <section anchor="tags-iana">
        <name>CBOR Tags Registry</name>
        <t><cref anchor="cpa">RFC-Editor: This document uses the CPA (code point allocation)
  convention described in [I-D.bormann-cbor-draft-numbers].  For
  each usage of the term "CPA", please remove the prefix "CPA"
  from the indicated value and replace the residue with the value
  assigned by IANA; perform an analogous substitution for all other
  occurrences of the prefix "CPA" in the document.  Finally,
  please remove this note.</cref></t>
        <t>In the "CBOR Tags" registry <xref target="IANA.cbor-tags"/>, IANA is requested to assign the
tags in <xref target="tab-tag-values"/> from the "specification required" space
(suggested assignment: 99), with the present document as the
specification reference.</t>
        <table anchor="tab-tag-values">
          <name>Values for Tags</name>
          <thead>
            <tr>
              <th align="right">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">CPA99</td>
              <td align="left">array</td>
              <td align="left">CRI Reference</td>
              <td align="left">RFC-XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="coap-option-numbers-registry">
        <name>CoAP Option Numbers Registry</name>
        <t>In the "CoAP Option Numbers" registry in the "CoRE Parameters" registry group <xref target="IANA.core-parameters"/>,
IANA is requested to register the CoAP Option Numbers
as described in <xref target="tab-iana-options"/> and defined in <xref target="coap-options"/>.</t>
        <table anchor="tab-iana-options">
          <name>New CoAP Option Numbers</name>
          <thead>
            <tr>
              <th align="left">No.</th>
              <th align="left">Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD235</td>
              <td align="left">Proxy-Cri</td>
              <td align="left">RFC-XXXX</td>
            </tr>
            <tr>
              <td align="left">TBD239</td>
              <td align="left">Proxy-Scheme-Number</td>
              <td align="left">RFC-XXXX</td>
            </tr>
          </tbody>
        </table>
        <t><cref anchor="replace-xxxx_2">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
      </section>
      <section anchor="toidreg">
        <name>Media-Type subparameters for ACE AIF</name>
        <t>In the "Sub-Parameter Registry for application/aif+cbor and
application/aif+json" in the "Media Type Sub-Parameter Registries"
registry group <xref target="IANA.media-type-sub-parameters"/>, IANA is requested to
register:</t>
        <table anchor="tab-iana-toid">
          <name>ACE AIF Toid for CRI</name>
          <thead>
            <tr>
              <th align="left">Parameter</th>
              <th align="left">Name</th>
              <th align="left">Description/Specification</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Toid</td>
              <td align="left">CRI-local-part</td>
              <td align="left">local-part of CRI</td>
              <td align="left">
                <xref target="toid"/> of RFC-XXXX</td>
            </tr>
          </tbody>
        </table>
        <t><cref anchor="replace-xxxx_3">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
      </section>
      <section anchor="content-format-for-cri-in-aif">
        <name>Content-Format for CRI in AIF</name>
        <t>IANA is requested to register a Content-Format identifier in the "CoAP
Content-Formats" registry (range 256-999), within the "Constrained
RESTful Environments (CoRE) Parameters" registry group
<xref target="IANA.core-parameters"/>, as follows:</t>
        <table anchor="tab-iana-toid-ct">
          <name>Content-Format for ACE AIF with CRI-local-part Toid</name>
          <thead>
            <tr>
              <th align="left">Content Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/aif+cbor;Toid=CRI-local-part</td>
              <td align="left">-</td>
              <td align="left">TBD</td>
              <td align="left">RFC-XXXX</td>
            </tr>
          </tbody>
        </table>
        <t><cref anchor="replace-xxxx_4">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <referencegroup anchor="STD66" target="https://www.rfc-editor.org/info/std66">
          <reference anchor="RFC3986" target="https://www.rfc-editor.org/info/rfc3986">
            <front>
              <title>Uniform Resource Identifier (URI): Generic Syntax</title>
              <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
              <author fullname="R. Fielding" initials="R." surname="Fielding"/>
              <author fullname="L. Masinter" initials="L." surname="Masinter"/>
              <date month="January" year="2005"/>
              <abstract>
                <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="66"/>
            <seriesInfo name="RFC" value="3986"/>
            <seriesInfo name="DOI" value="10.17487/RFC3986"/>
          </reference>
        </referencegroup>
        <referencegroup anchor="STD63" target="https://www.rfc-editor.org/info/std63">
          <reference anchor="RFC3629" target="https://www.rfc-editor.org/info/rfc3629">
            <front>
              <title>UTF-8, a transformation format of ISO 10646</title>
              <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
              <date month="November" year="2003"/>
              <abstract>
                <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="63"/>
            <seriesInfo name="RFC" value="3629"/>
            <seriesInfo name="DOI" value="10.17487/RFC3629"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC3987">
          <front>
            <title>Internationalized Resource Identifiers (IRIs)</title>
            <author fullname="M. Duerst" initials="M." surname="Duerst"/>
            <author fullname="M. Suignard" initials="M." surname="Suignard"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>This document defines a new protocol element, the Internationalized Resource Identifier (IRI), as a complement of the Uniform Resource Identifier (URI). An IRI is a sequence of characters from the Universal Character Set (Unicode/ISO 10646). A mapping from IRIs to URIs is defined, which means that IRIs can be used instead of URIs, where appropriate, to identify resources.</t>
              <t>The approach of defining a new protocol element was chosen instead of extending or changing the definition of URIs. This was done in order to allow a clear distinction and to avoid incompatibilities with existing software. Guidelines are provided for the use and deployment of IRIs in various protocols, formats, and software components that currently deal with URIs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3987"/>
          <seriesInfo name="DOI" value="10.17487/RFC3987"/>
        </reference>
        <reference anchor="RFC6874">
          <front>
            <title>Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>This document describes how the zone identifier of an IPv6 scoped address, defined as in the IPv6 Scoped Address Architecture (RFC 4007), can be represented in a literal IPv6 address and in a Uniform Resource Identifier that includes such a literal address. It updates the URI Generic Syntax specification (RFC 3986) accordingly.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6874"/>
          <seriesInfo name="DOI" value="10.17487/RFC6874"/>
        </reference>
        <referencegroup anchor="BCP35" target="https://www.rfc-editor.org/info/bcp35">
          <reference anchor="RFC7595" target="https://www.rfc-editor.org/info/rfc7595">
            <front>
              <title>Guidelines and Registration Procedures for URI Schemes</title>
              <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler"/>
              <author fullname="T. Hansen" initials="T." surname="Hansen"/>
              <author fullname="T. Hardie" initials="T." surname="Hardie"/>
              <date month="June" year="2015"/>
              <abstract>
                <t>This document updates the guidelines and recommendations, as well as the IANA registration processes, for the definition of Uniform Resource Identifier (URI) schemes. It obsoletes RFC 4395.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="35"/>
            <seriesInfo name="RFC" value="7595"/>
            <seriesInfo name="DOI" value="10.17487/RFC7595"/>
          </reference>
        </referencegroup>
        <reference anchor="IANA.uri-schemes" target="https://www.iana.org/assignments/uri-schemes">
          <front>
            <title>Uniform Resource Identifier (URI) Schemes</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <referencegroup anchor="BCP26" target="https://www.rfc-editor.org/info/bcp26">
          <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126">
            <front>
              <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
              <author fullname="M. Cotton" initials="M." surname="Cotton"/>
              <author fullname="B. Leiba" initials="B." surname="Leiba"/>
              <author fullname="T. Narten" initials="T." surname="Narten"/>
              <date month="June" year="2017"/>
              <abstract>
                <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
                <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
                <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="26"/>
            <seriesInfo name="RFC" value="8126"/>
            <seriesInfo name="DOI" value="10.17487/RFC8126"/>
          </reference>
        </referencegroup>
        <reference anchor="IANA.media-type-sub-parameters" target="https://www.iana.org/assignments/media-type-sub-parameters">
          <front>
            <title>Media Type Sub-Parameter Registries</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC9237">
          <front>
            <title>An Authorization Information Format (AIF) for Authentication and Authorization for Constrained Environments (ACE)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Information about which entities are authorized to perform what operations on which constituents of other entities is a crucial component of producing an overall system that is secure. Conveying precise authorization information is especially critical in highly automated systems with large numbers of entities, such as the Internet of Things.</t>
              <t>This specification provides a generic information model and format for representing such authorization information, as well as two variants of a specific instantiation of that format for use with Representational State Transfer (REST) resources identified by URI path.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9237"/>
          <seriesInfo name="DOI" value="10.17487/RFC9237"/>
        </reference>
        <reference anchor="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="Unicode" target="https://www.unicode.org/versions/Unicode13.0.0/">
          <front>
            <title>The Unicode Standard, Version 13.0.0</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2020" month="March"/>
          </front>
          <seriesInfo name="ISBN" value="978-1-936213-26-9"/>
        </reference>
        <referencegroup anchor="STD94" target="https://www.rfc-editor.org/info/std94">
          <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
            <front>
              <title>Concise Binary Object Representation (CBOR)</title>
              <author fullname="C. Bormann" initials="C." surname="Bormann"/>
              <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
              <date month="December" year="2020"/>
              <abstract>
                <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
                <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="94"/>
            <seriesInfo name="RFC" value="8949"/>
            <seriesInfo name="DOI" value="10.17487/RFC8949"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed:.plus,.cat, and.det for the construction of constants;.abnf/.abnfb for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and.feature for indicating the use of a non-basic feature in an instance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9165"/>
          <seriesInfo name="DOI" value="10.17487/RFC9165"/>
        </reference>
        <referencegroup anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14">
          <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
            <front>
              <title>Key words for use in RFCs to Indicate Requirement Levels</title>
              <author fullname="S. Bradner" initials="S." surname="Bradner"/>
              <date month="March" year="1997"/>
              <abstract>
                <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="14"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
          </reference>
          <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
            <front>
              <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
              <author fullname="B. Leiba" initials="B." surname="Leiba"/>
              <date month="May" year="2017"/>
              <abstract>
                <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="14"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
          </reference>
        </referencegroup>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3490">
          <front>
            <title>Internationalizing Domain Names in Applications (IDNA)</title>
            <author fullname="P. Faltstrom" initials="P." surname="Faltstrom"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="A. Costello" initials="A." surname="Costello"/>
            <date month="March" year="2003"/>
            <abstract>
              <t>Until now, there has been no standard method for domain names to use characters outside the ASCII repertoire. This document defines internationalized domain names (IDNs) and a mechanism called Internationalizing Domain Names in Applications (IDNA) for handling them in a standard fashion. IDNs use characters drawn from a large repertoire (Unicode), but IDNA allows the non-ASCII characters to be represented using only the ASCII characters already allowed in so-called host names today. This backward-compatible representation is required in existing protocols like DNS, so that IDNs can be introduced with no changes to the existing infrastructure. IDNA is only meant for processing domain names, not free text. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3490"/>
          <seriesInfo name="DOI" value="10.17487/RFC3490"/>
        </reference>
        <reference anchor="RFC7228">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Ersue" initials="M." surname="Ersue"/>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks. This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7228"/>
          <seriesInfo name="DOI" value="10.17487/RFC7228"/>
        </reference>
        <reference anchor="I-D.ietf-iotops-7228bis">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mehmet Ersue" initials="M." surname="Ersue">
         </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Carles Gomez" initials="C." surname="Gomez">
              <organization>Universitat Politecnica de Catalunya</organization>
            </author>
            <date day="8" month="January" year="2025"/>
            <abstract>
              <t>   The Internet Protocol Suite is increasingly used on small devices
   with severe constraints on power, memory, and processing resources,
   creating constrained-node networks.  This document provides a number
   of basic terms that have been useful in the standardization work for
   constrained-node networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-iotops-7228bis-01"/>
        </reference>
        <referencegroup anchor="STD97" target="https://www.rfc-editor.org/info/std97">
          <reference anchor="RFC9110" target="https://www.rfc-editor.org/info/rfc9110">
            <front>
              <title>HTTP Semantics</title>
              <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
              <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
              <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
              <date month="June" year="2022"/>
              <abstract>
                <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
                <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="97"/>
            <seriesInfo name="RFC" value="9110"/>
            <seriesInfo name="DOI" value="10.17487/RFC9110"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC8141">
          <front>
            <title>Uniform Resource Names (URNs)</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="April" year="2017"/>
            <abstract>
              <t>A Uniform Resource Name (URN) is a Uniform Resource Identifier (URI) that is assigned under the "urn" URI scheme and a particular URN namespace, with the intent that the URN will be a persistent, location-independent resource identifier. With regard to URN syntax, this document defines the canonical syntax for URNs (in a way that is consistent with URI syntax), specifies methods for determining URN-equivalence, and discusses URI conformance. With regard to URN namespaces, this document specifies a method for defining a URN namespace and associating it with a namespace identifier, and it describes procedures for registering namespace identifiers with the Internet Assigned Numbers Authority (IANA). This document obsoletes both RFCs 2141 and 3406.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8141"/>
          <seriesInfo name="DOI" value="10.17487/RFC8141"/>
        </reference>
        <reference anchor="RFC8288">
          <front>
            <title>Web Linking</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
              <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8288"/>
          <seriesInfo name="DOI" value="10.17487/RFC8288"/>
        </reference>
        <reference anchor="RFC9164">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for IPv4 and IPv6 Addresses and Prefixes</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This specification defines two Concise Binary Object Representation (CBOR) tags for use with IPv6 and IPv4 addresses and prefixes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9164"/>
          <seriesInfo name="DOI" value="10.17487/RFC9164"/>
        </reference>
        <referencegroup anchor="BCP190" target="https://www.rfc-editor.org/info/bcp190">
          <reference anchor="RFC8820" target="https://www.rfc-editor.org/info/rfc8820">
            <front>
              <title>URI Design and Ownership</title>
              <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
              <date month="June" year="2020"/>
              <abstract>
                <t>Section 1.1.1 of RFC 3986 defines URI syntax as "a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme." In other words, the structure of a URI is defined by its scheme. While it is common for schemes to further delegate their substructure to the URI's owner, publishing independent standards that mandate particular forms of substructure in URIs is often problematic.</t>
                <t>This document provides guidance on the specification of URI substructure in standards.</t>
                <t>This document obsoletes RFC 7320 and updates RFC 3986.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="190"/>
            <seriesInfo name="RFC" value="8820"/>
            <seriesInfo name="DOI" value="10.17487/RFC8820"/>
          </reference>
        </referencegroup>
        <reference anchor="W3C.REC-html52-20171214" target="https://www.w3.org/TR/2017/REC-html52-20171214/">
          <front>
            <title>HTML 5.2</title>
            <author fullname="Alex Danilo" role="editor"/>
            <author fullname="Arron Eicholz" role="editor"/>
            <author fullname="Sangwhan Moon" role="editor"/>
            <author fullname="Steve Faulkner" role="editor"/>
            <author fullname="Travis Leithead" role="editor"/>
            <date day="14" month="December" year="2017"/>
          </front>
          <seriesInfo name="W3C REC" value="REC-html52-20171214"/>
          <seriesInfo name="W3C" value="REC-html52-20171214"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-edn-literals">
          <front>
            <title>CBOR Extended Diagnostic Notation (EDN)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="8" month="January" year="2025"/>
            <abstract>
              <t>   This document formalizes and consolidates the definition of the
   Extended Diagnostic Notation (EDN) of the Concise Binary Object
   Representation (CBOR), addressing implementer experience.

   Replacing EDN's previous informal descriptions, it updates RFC 8949,
   obsoleting its Section 8, and RFC 8610, obsoleting its Appendix G.

   It also specifies and uses registry-based extension points, using one
   to support text representations of epoch-based dates/times and of IP
   addresses and prefixes.


   // (This cref will be removed by the RFC editor:) The present
   // revision (–16) addresses the first half of the WGLC comments,
   // except for the issues around the specific way how to best achieve
   // pluggable ABNF grammars for application-extensions.  It is
   // intended for use as a reference document for the mid-WGLC CBOR WG
   // interim meeting on 2025-01-08.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-16"/>
        </reference>
        <reference anchor="I-D.carpenter-6man-rfc6874bis">
          <front>
            <title>Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers</title>
            <author fullname="Brian E. Carpenter" initials="B. E." surname="Carpenter">
         </author>
            <author fullname="Stuart Cheshire" initials="S." surname="Cheshire">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Bob Hinden" initials="R. M." surname="Hinden">
              <organization>Check Point Software</organization>
            </author>
            <date day="8" month="February" year="2022"/>
            <abstract>
              <t>   This document describes how the zone identifier of an IPv6 scoped
   address, defined as &lt;zone_id&gt; in the IPv6 Scoped Address Architecture
   (RFC 4007), can be represented in a literal IPv6 address and in a
   Uniform Resource Identifier that includes such a literal address.  It
   updates the URI Generic Syntax and Internationalized Resource
   Identifier specifications (RFC 3986, RFC 3987) accordingly, and
   obsoletes RFC 6874.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-carpenter-6man-rfc6874bis-03"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-packed">
          <front>
            <title>Packed CBOR</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mikolai Gütschow" initials="M." surname="Gütschow">
              <organization>TUD Dresden University of Technology</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 8949 == STD 94)
   is a data format whose design goals include the possibility of
   extremely small code size, fairly small message size, and
   extensibility without the need for version negotiation.

   CBOR does not provide any forms of data compression.  CBOR data
   items, in particular when generated from legacy data models, often
   allow considerable gains in compactness when applying data
   compression.  While traditional data compression techniques such as
   DEFLATE (RFC 1951) can work well for CBOR encoded data items, their
   disadvantage is that the recipient needs to decompress the compressed
   form to make use of the data.

   This specification describes Packed CBOR, a set of CBOR tags and
   simple values that enable a simple transformation of an original CBOR
   data item into a Packed CBOR data item that is almost as easy to
   consume as the original CBOR data item.  A separate decompression
   step is therefore often not required at the recipient.


   // The present version (-14) adds additional stand-in items to the
   // previously updated implementation draft -13, with minor editorial
   // improvements.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-packed-14"/>
        </reference>
        <reference anchor="I-D.bormann-cbor-notable-tags">
          <front>
            <title>Notable CBOR Tags</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="12" month="February" year="2025"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 8949) is a data
   format whose design goals include the possibility of extremely small
   code size, fairly small message size, and extensibility without the
   need for version negotiation.

   In CBOR, one point of extensibility is the definition of CBOR tags.
   RFC 8949's original edition, RFC 7049, defined a basic set of 16 tags
   as well as a registry that can be used to contribute additional tag
   definitions [IANA.cbor-tags].  Since RFC 7049 was published, at the
   time of writing some 190 definitions of tags and ranges of tags have
   been added to that registry.

   The present document provides a roadmap to a large subset of these
   tag definitions.  Where applicable, it points to an IETF standards or
   standard development document that specifies the tag.  Where no such
   document exists, the intention is to collect specification
   information from the sources of the registrations.  After some more
   development, the present document is intended to be useful as a
   reference document for the IANA registrations of the CBOR tags the
   definitions of which have been collected.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-notable-tags-12"/>
        </reference>
        <reference anchor="RFC9170">
          <front>
            <title>Long-Term Viability of Protocol Extension Mechanisms</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The ability to change protocols depends on exercising the extension and version-negotiation mechanisms that support change. This document explores how regular use of new protocol features can ensure that it remains possible to deploy changes to a protocol. Examples are given where lack of use caused changes to be more difficult or costly.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9170"/>
          <seriesInfo name="DOI" value="10.17487/RFC9170"/>
        </reference>
        <reference anchor="GREENSPUN-10" target="https://en.wikipedia.org/wiki/Greenspun's_tenth_rule">
          <front>
            <title>Greenspun's tenth rule</title>
            <author>
              <organization>Wikipedia</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="MNU">
          <front>
            <title>Modern Network Unicode</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="2" month="March" year="2025"/>
            <abstract>
              <t>   BCP18 (RFC 2277) has been the basis for the handling of character-
   shaped data in IETF specifications for more than a quarter of a
   century now.  It singles out UTF-8 (STD63, RFC 3629) as the “charset”
   that MUST be supported, and pulls in the Unicode standard with that.

   Based on this, RFC 5198 both defines common conventions for the use
   of Unicode in network protocols and caters for the specific
   requirements of the legacy protocol Telnet.  In applications that do
   not need Telnet compatibility, some of the decisions of RFC 5198 can
   be cumbersome.

   The present specification defines “Modern Network Unicode” (MNU),
   which is a form of RFC 5198 Network Unicode that can be used in
   specifications that require the exchange of plain text over networks
   and where just mandating UTF-8 may not be sufficient, but there is
   also no desire to import all of the baggage of RFC 5198.

   As characters are used in different environments, MNU is defined in a
   one-dimensional (1D) variant that is useful for identifiers and
   labels, but does not use a structure of text lines.  A 2D variant is
   defined for text that is a sequence of text lines, such as plain text
   documents or markdown format.  Additional variances of these two base
   formats can be used to tailor MNU to specific areas of application.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-dispatch-modern-network-unicode-06"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC4180">
          <front>
            <title>Common Format and MIME Type for Comma-Separated Values (CSV) Files</title>
            <author fullname="Y. Shafranovich" initials="Y." surname="Shafranovich"/>
            <date month="October" year="2005"/>
            <abstract>
              <t>This RFC documents the format used for Comma-Separated Values (CSV) files and registers the associated MIME type "text/csv". This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4180"/>
          <seriesInfo name="DOI" value="10.17487/RFC4180"/>
        </reference>
      </references>
    </references>
    <?line 1777?>

<section anchor="the-small-print">
      <name>The Small Print</name>
      <t>This appendix lists a few corner cases of URI semantics that
implementers of CRIs need to be aware of, but that are not
representative of the normal operation of CRIs.</t>
      <ol spacing="normal" type="SP%d." group="SP" start="1"><li anchor="sp-leading-empty">
          <t>Initial (Lone/Leading) Empty Path Segments:</t>
        </li>
      </ol>
      <ul spacing="normal">
        <li>
          <t><em>Lone empty path segments:</em>
  As per <xref target="STD66"/>, <tt>s://x</tt> is distinct from <tt>s://x/</tt> -- i.e., a URI
  with an empty path (<tt>[]</tt> in CRI) is different from one with a lone
  empty path segment (<tt>[""]</tt>).
  However, in HTTP and CoAP, they are implicitly aliased (for CoAP, in
  item 8 of <xref section="6.4" sectionFormat="of" target="RFC7252"/>).
  As per item 7 of <xref section="6.5" sectionFormat="of" target="RFC7252"/>, recomposition of a URI
  without Uri-Path Options from the other URI-related CoAP Options
  produces <tt>s://x/</tt>, not <tt>s://x</tt> -- CoAP prefers the lone empty path
  segment form.
  Similarly, after discussing HTTP semantics, Section <xref target="RFC3986" section="6.2.3" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> states:</t>
        </li>
      </ul>
      <blockquote>
        <t>In general, a URI that uses the generic syntax for authority with an
  empty path should be normalized to a path of "/".</t>
      </blockquote>
      <ul spacing="normal">
        <li>
          <t><em>Leading empty path segments without authority</em>:
  Somewhat related, note also that URIs and URI references that do not
  carry an authority cannot represent leading empty path segments
  (i.e., that are followed by further path segments): <tt>s://x//foo</tt>
  works, but in a <tt>s://foo</tt> URI or an (absolute-path) URI reference of
  the form <tt>//foo</tt> the double slash would be mis-parsed as leading in
  to an authority.</t>
        </li>
      </ul>
      <ol spacing="normal" type="SP%d." group="SP" start="2"><li anchor="sp-constraints">
          <t>Constraints (<xref target="constraints"/>) of CRIs/basic CRIs  </t>
          <t>
While most URIs in everyday use can be converted to CRIs and back to URIs
matching the input after syntax-based normalization of the URI,
these URIs illustrate the constraints by example:  </t>
          <ul spacing="normal">
            <li>
              <t><tt>https://host%ffname</tt>, <tt>https://example.com/x?data=%ff</tt>      </t>
              <t>
All URI components must, after percent decoding, be valid UTF-8 encoded text.
Bytes that are not valid UTF-8 show up, for example, in BitTorrent web seeds.
<!-- <https://www.bittorrent.org/beps/bep_0017.html>, not sure this warrants an informative reference -->      </t>
              <t>
These URIs can be expressed when using the <tt>text-or-pet</tt> feature.</t>
            </li>
            <li>
              <t><tt>https://example.com/component%3bone;component%3btwo</tt>, <tt>http://example.com/component%3dequals</tt>      </t>
              <t>
While delimiters can be used in an escaped and unescaped form in URIs with generally distinct meanings,
basic CRIs (i.e., without percent-encoded text <xref target="pet"/>) only support one escapable delimiter character per component,
which is the delimiter by which the component is split up in the CRI.      </t>
              <t>
Note that the separators <tt>.</tt> (for authority parts), <tt>/</tt> (for paths), <tt>&amp;</tt> (for query parameters)
are special in that they are syntactic delimiters of their
respective components in CRIs (note that <tt>.</tt> is doubly special
because it is not a <tt>reserved</tt> character in <xref target="STD66"/> and therefore
any percent-encoding would be normalized away).      </t>
              <t>
Thus, the following examples <em>are</em> convertible to basic CRIs without the <tt>text-or-pet</tt> feature:      </t>
              <t><tt>https://example.com/path%2fcomponent/second-component</tt>      </t>
              <t><tt>https://example.com/x?ampersand=%26&amp;questionmark=?</tt></t>
            </li>
            <li>
              <t><tt>https://alice@example.com/</tt>      </t>
              <t>
The user information can be expressed in CRIs if the "userinfo"
feature is present.  The URI <tt>https://@example.com</tt> is
represented as <tt>[-4, [false, "", "example", "com"]]</tt>; the <tt>false</tt>
serves as a marker that the next element is the userinfo.      </t>
              <t>
The rules explicitly cater for unencoded ":" in userinfo (without
needing the <tt>text-or-pet</tt> feature).
(We opted for including this syntactic feature instead of
disabling it as a mechanism against potential uses of colons for
the deprecated inclusion of unencrypted secrets.)</t>
            </li>
          </ul>
        </li>
      </ol>
    </section>
    <section anchor="edn-cri">
      <name>CBOR Extended Diagnostic Notation (EDN): The "cri" Extension</name>
      <t><xref target="I-D.ietf-cbor-edn-literals"/> more rigorously defines and further extends the CBOR Extended
Diagnostic Notation (EDN), as originally introduced in Section <xref target="RFC8949" section="8" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/> and extended in <xref section="G" sectionFormat="of" target="RFC8610"/>.
Among others, it provides an extension point for
"application-extension identifiers" that can be used to notate CBOR
data items in application-specific ways.</t>
      <t>The present document defines and registers (<xref target="cri-iana"/>) the
application-extension identifier "<tt>cri</tt>", which can be used to notate
an EDN literal for a CRI reference as defined in this document.</t>
      <t>The text of the literal is a URI Reference as per <xref target="STD66"/> or an IRI
Reference as per <xref target="RFC3987"/>.</t>
      <t>The value of the literal is a CRI reference that can be converted to
the text of the literal using the procedure of <xref target="cri-to-uri"/>.
Note that there may be more than one CRI reference that can be
converted to the URI/IRI reference given; implementations are expected
to favor the simplest variant available and make non-surprising
choices otherwise.
In the all-upper-case variant of the app-prefix, the value is enclosed
in a tag number CPA99.</t>
      <t><cref anchor="cpa_1">RFC-Editor: This document uses the CPA (code point allocation)
  convention described in [I-D.bormann-cbor-draft-numbers].  For
  each usage of the term "CPA", please remove the prefix "CPA"
  from the indicated value and replace the residue with the value
  assigned by IANA; perform an analogous substitution for all other
  occurrences of the prefix "CPA" in the document.  Finally,
  please remove this note.</cref></t>
      <t>As an example, the CBOR diagnostic notation</t>
      <sourcecode type="cbor-diag"><![CDATA[
cri'https://example.com/bottarga/shaved'
CRI'https://example.com/bottarga/shaved'
]]></sourcecode>
      <t>is equivalent to</t>
      <sourcecode type="cbor-diag"><![CDATA[
[-4, ["example", "com"], ["bottarga", "shaved"]]
CPA99([-4, ["example", "com"], ["bottarga", "shaved"]])
]]></sourcecode>
      <t>See <xref target="cri-grammar"/> for an ABNF definition for the content of <tt>cri</tt> literals.</t>
      <section anchor="cri-grammar">
        <name>cri: ABNF Definition of URI Representation of a CRI</name>
        <t>It can be expected that implementations of the application-extension
identifier "<tt>cri</tt>" will make use of platform-provided URI
implementations, which will include a URI parser.</t>
        <t>In case such a URI parser is not available or inconvenient to
integrate,
a grammar of the content of <tt>cri</tt> literals is provided by the
ABNF for <tt>URI-reference</tt> in Section <xref target="RFC3986" section="4.1" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/> with certain
re-arrangements taken from <xref section="Figure 5" relative="#figure-5" sectionFormat="bare" target="I-D.ietf-cbor-edn-literals"/> of <xref target="I-D.ietf-cbor-edn-literals"/>;
these are reproduced in <xref target="abnf-grammar-cri"/>.
If the content is not ASCII only (i.e., for IRIs), first apply
<xref section="3.1" sectionFormat="of" target="RFC3987"/> and apply this grammar to the result.</t>
        <figure anchor="abnf-grammar-cri">
          <name>ABNF Definition of URI Representation of a CRI</name>
          <sourcecode type="abnf" name="cbor-edn-cri.abnf"><![CDATA[
app-string-cri = URI-reference
; ABNF from RFC 3986:

URI           = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

hier-part     = "//" authority path-abempty
                 / path-absolute
                 / path-rootless
                 / path-empty

URI-reference = URI / relative-ref

absolute-URI  = scheme ":" hier-part [ "?" query ]

relative-ref  = relative-part [ "?" query ] [ "#" fragment ]

relative-part = "//" authority path-abempty
                 / path-absolute
                 / path-noscheme
                 / path-empty

scheme        = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

authority     = [ userinfo "@" ] host [ ":" port ]
userinfo      = *( unreserved / pct-encoded / sub-delims / ":" )
host          = IP-literal / IPv4address / reg-name
port          = *DIGIT

IP-literal    = "[" ( IPv6address / IPvFuture  ) "]"

IPvFuture     = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" )

; Use IPv6address, h16, ls32, IPv4adress, dec-octet as re-arranged
; for PEG Compatibility in Figure 5 of [I-D.ietf-cbor-edn-literals]:

IPv6address   =                            6( h16 ":" ) ls32
              /                       "::" 5( h16 ":" ) ls32
              / [ h16               ] "::" 4( h16 ":" ) ls32
              / [ h16 *1( ":" h16 ) ] "::" 3( h16 ":" ) ls32
              / [ h16 *2( ":" h16 ) ] "::" 2( h16 ":" ) ls32
              / [ h16 *3( ":" h16 ) ] "::"    h16 ":"   ls32
              / [ h16 *4( ":" h16 ) ] "::"              ls32
              / [ h16 *5( ":" h16 ) ] "::"              h16
              / [ h16 *6( ":" h16 ) ] "::"

h16           = 1*4HEXDIG
ls32          = ( h16 ":" h16 ) / IPv4address
IPv4address   = dec-octet "." dec-octet "." dec-octet "." dec-octet
dec-octet     = "25" %x30-35         ; 250-255
              / "2" %x30-34 DIGIT    ; 200-249
              / "1" 2DIGIT           ; 100-199
              / %x31-39 DIGIT        ; 10-99
              / DIGIT                ; 0-9
ALPHA         = %x41-5a / %x61-7a
DIGIT         = %x30-39
HEXDIG        = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
; case insensitive matching, i.e., including lower case

reg-name      = *( unreserved / pct-encoded / sub-delims )

path          = path-abempty    ; begins with "/" or is empty
                 / path-absolute   ; begins with "/" but not "//"
                 / path-noscheme   ; begins with a non-colon segment
                 / path-rootless   ; begins with a segment
                 / path-empty      ; zero characters

path-abempty  = *( "/" segment )
path-absolute = "/" [ segment-nz *( "/" segment ) ]
path-noscheme = segment-nz-nc *( "/" segment )
path-rootless = segment-nz *( "/" segment )
path-empty    = 0<pchar>

segment       = *pchar
segment-nz    = 1*pchar
segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
                 ; non-zero-length segment without any colon ":"

pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"

query         = *( pchar / "/" / "?" )

fragment      = *( pchar / "/" / "?" )

pct-encoded   = "%" HEXDIG HEXDIG

unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"
reserved      = gen-delims / sub-delims
gen-delims    = ":" / "/" / "?" / "#" / "[" / "]" / "@"
sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"
                 / "*" / "+" / "," / ";" / "="
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="sec-numbers" removeInRFC="true">
      <name>Mapping Scheme Numbers to Scheme Names</name>
      <t><cref anchor="replace-xxxx_5">RFC Ed.: throughout this section, please replace
RFC-XXXX with the RFC number of this specification and remove this
note.</cref></t>
      <t><xref target="tab-numbers"/> defines the initial mapping from CRI scheme numbers to
URI scheme names.</t>
      <table anchor="tab-numbers">
        <name>Mapping Scheme Numbers to Scheme Names</name>
        <thead>
          <tr>
            <th align="left">CRI scheme number</th>
            <th align="left">URI scheme name</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0</td>
            <td align="left">coap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">coaps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">http</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">https</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4</td>
            <td align="left">urn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">did</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6</td>
            <td align="left">coap+tcp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7</td>
            <td align="left">coaps+tcp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">24</td>
            <td align="left">coap+ws</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">25</td>
            <td align="left">coaps+ws</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1059</td>
            <td align="left">ms-gamingoverlay</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1165</td>
            <td align="left">snmp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1220</td>
            <td align="left">cast</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1242</td>
            <td align="left">openid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1273</td>
            <td align="left">hs20</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1319</td>
            <td align="left">z39.50</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1328</td>
            <td align="left">dweb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1466</td>
            <td align="left">psyc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1528</td>
            <td align="left">ms-people</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1562</td>
            <td align="left">ms-personacard</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1578</td>
            <td align="left">jar</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1658</td>
            <td align="left">wpid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1762</td>
            <td align="left">payment</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1895</td>
            <td align="left">news</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1905</td>
            <td align="left">irc6</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1926</td>
            <td align="left">turns</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1946</td>
            <td align="left">data</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">1982</td>
            <td align="left">ens</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2154</td>
            <td align="left">things</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2284</td>
            <td align="left">resource</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2326</td>
            <td align="left">skype</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2406</td>
            <td align="left">videotex</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2442</td>
            <td align="left">dpp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2747</td>
            <td align="left">upt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2754</td>
            <td align="left">platform</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2790</td>
            <td align="left">ed2k</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2796</td>
            <td align="left">taler</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2806</td>
            <td align="left">fm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">2945</td>
            <td align="left">ms-newsandinterests</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3005</td>
            <td align="left">xmlrpc.beep</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3018</td>
            <td align="left">ark</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3119</td>
            <td align="left">wss</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3143</td>
            <td align="left">tel</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3255</td>
            <td align="left">vscode-insiders</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3342</td>
            <td align="left">geo</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3348</td>
            <td align="left">rtmfp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3358</td>
            <td align="left">mtqp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3365</td>
            <td align="left">filesystem</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3375</td>
            <td align="left">teapots</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3503</td>
            <td align="left">proxy</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3524</td>
            <td align="left">sms</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3634</td>
            <td align="left">jms</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3646</td>
            <td align="left">mid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3690</td>
            <td align="left">ms-calculator</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3775</td>
            <td align="left">gitoid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3783</td>
            <td align="left">calculator</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3786</td>
            <td align="left">about</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3795</td>
            <td align="left">facetime</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3818</td>
            <td align="left">ari</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3837</td>
            <td align="left">ymsgr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3886</td>
            <td align="left">dict</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3906</td>
            <td align="left">ldaps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3920</td>
            <td align="left">rtmp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">3959</td>
            <td align="left">ms-settings-proximity</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4053</td>
            <td align="left">fax</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4102</td>
            <td align="left">ms-drive-to</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4153</td>
            <td align="left">res</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4183</td>
            <td align="left">webcal</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4193</td>
            <td align="left">embedded</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4315</td>
            <td align="left">xftp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4327</td>
            <td align="left">browserext</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4355</td>
            <td align="left">session</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4373</td>
            <td align="left">dav</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4419</td>
            <td align="left">ipps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4515</td>
            <td align="left">uuid-in-package</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4549</td>
            <td align="left">dhttp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4559</td>
            <td align="left">web3</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4590</td>
            <td align="left">iris.lwz</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4598</td>
            <td align="left">diaspora</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4613</td>
            <td align="left">ms-widgets</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4619</td>
            <td align="left">rtsps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4674</td>
            <td align="left">beshare</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4709</td>
            <td align="left">gtalk</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4714</td>
            <td align="left">hxxps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4747</td>
            <td align="left">xrcp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4882</td>
            <td align="left">sgn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4929</td>
            <td align="left">eid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">4951</td>
            <td align="left">submit</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5099</td>
            <td align="left">ar</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5109</td>
            <td align="left">ms-settings-airplanemode</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5134</td>
            <td align="left">steam</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5150</td>
            <td align="left">adt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5152</td>
            <td align="left">ms-appinstaller</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5188</td>
            <td align="left">bb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5217</td>
            <td align="left">udp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5296</td>
            <td align="left">example</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5347</td>
            <td align="left">ms-remotedesktop</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5410</td>
            <td align="left">ms-sttoverlay</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5425</td>
            <td align="left">irc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5472</td>
            <td align="left">sieve</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5477</td>
            <td align="left">machineProvisioningProgressReporter</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5480</td>
            <td align="left">lvlt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5492</td>
            <td align="left">sftp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5536</td>
            <td align="left">ms-excel</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5557</td>
            <td align="left">dlna-playcontainer</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5705</td>
            <td align="left">go</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5717</td>
            <td align="left">fido</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5728</td>
            <td align="left">chrome</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5823</td>
            <td align="left">shc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5825</td>
            <td align="left">swidpath</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5883</td>
            <td align="left">microsoft.windows.camera.picker</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">5990</td>
            <td align="left">crid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6007</td>
            <td align="left">at</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6024</td>
            <td align="left">hcp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6030</td>
            <td align="left">content-type</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6109</td>
            <td align="left">jabber</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6144</td>
            <td align="left">dlna-playsingle</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6189</td>
            <td align="left">ms-spd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6341</td>
            <td align="left">opaquelocktoken</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6349</td>
            <td align="left">soldat</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6380</td>
            <td align="left">z39.50s</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6388</td>
            <td align="left">ms-media-stream-id</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6411</td>
            <td align="left">ms-mixedrealitycapture</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6462</td>
            <td align="left">quic-transport</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6503</td>
            <td align="left">ham</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6516</td>
            <td align="left">nfs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6609</td>
            <td align="left">ut2004</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6632</td>
            <td align="left">hydrazone</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6634</td>
            <td align="left">adiumxtra</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6651</td>
            <td align="left">tip</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6658</td>
            <td align="left">lpa</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6730</td>
            <td align="left">cstr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6755</td>
            <td align="left">ms-settings-screenrotation</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6774</td>
            <td align="left">dab</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6792</td>
            <td align="left">ms-inputapp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6808</td>
            <td align="left">moz</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6840</td>
            <td align="left">acd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6863</td>
            <td align="left">ms-access</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6883</td>
            <td align="left">im</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6903</td>
            <td align="left">pttp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6924</td>
            <td align="left">teamspeak</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">6992</td>
            <td align="left">payto</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7074</td>
            <td align="left">secret-token</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7126</td>
            <td align="left">iax</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7225</td>
            <td align="left">isostore</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7226</td>
            <td align="left">bitcoincash</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7285</td>
            <td align="left">smb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7364</td>
            <td align="left">appdata</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7456</td>
            <td align="left">dtn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7520</td>
            <td align="left">feed</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7667</td>
            <td align="left">ssh</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7743</td>
            <td align="left">ms-transit-to</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7809</td>
            <td align="left">ms-help</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7812</td>
            <td align="left">vscode</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7856</td>
            <td align="left">apt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7868</td>
            <td align="left">ms-settings-notifications</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7874</td>
            <td align="left">shttp (OBSOLETE)</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7913</td>
            <td align="left">ethereum</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7923</td>
            <td align="left">tv</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">7942</td>
            <td align="left">microsoft.windows.camera.multipicker</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8041</td>
            <td align="left">msnim</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8085</td>
            <td align="left">ms-remotedesktop-launch</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8093</td>
            <td align="left">spiffe</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8099</td>
            <td align="left">redis</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8159</td>
            <td align="left">z39.50r</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8251</td>
            <td align="left">brid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8300</td>
            <td align="left">tftp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8387</td>
            <td align="left">content</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8454</td>
            <td align="left">wais</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8506</td>
            <td align="left">view-source</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8519</td>
            <td align="left">soap.beep</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8577</td>
            <td align="left">attachment</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8601</td>
            <td align="left">gopher</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8687</td>
            <td align="left">ircs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8713</td>
            <td align="left">callto</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8765</td>
            <td align="left">bolo</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8766</td>
            <td align="left">notes</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8775</td>
            <td align="left">ipn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">8830</td>
            <td align="left">ms-infopath</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9075</td>
            <td align="left">ms-settings</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9136</td>
            <td align="left">ms-useractivityset</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9154</td>
            <td align="left">modem</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9186</td>
            <td align="left">bitcoin</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9198</td>
            <td align="left">ms-settings-privacy</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9204</td>
            <td align="left">cap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9278</td>
            <td align="left">com-eventbrite-attendee</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9312</td>
            <td align="left">pkcs11</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9318</td>
            <td align="left">ipp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9338</td>
            <td align="left">rediss</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9444</td>
            <td align="left">grd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9453</td>
            <td align="left">ms-screensketch</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9487</td>
            <td align="left">matrix</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9520</td>
            <td align="left">xcon-userid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9535</td>
            <td align="left">sips</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9544</td>
            <td align="left">simpleledger</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9585</td>
            <td align="left">mvn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9770</td>
            <td align="left">keyparc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9805</td>
            <td align="left">magnet</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9816</td>
            <td align="left">vsls</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9859</td>
            <td align="left">drm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9875</td>
            <td align="left">hcap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9910</td>
            <td align="left">wtai</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9965</td>
            <td align="left">num</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9981</td>
            <td align="left">ms-settings-language</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10119</td>
            <td align="left">imap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10147</td>
            <td align="left">query</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10176</td>
            <td align="left">ves</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10183</td>
            <td align="left">ms-recall</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10196</td>
            <td align="left">acr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10225</td>
            <td align="left">barion</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10229</td>
            <td align="left">acct</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10238</td>
            <td align="left">palm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10241</td>
            <td align="left">ocf</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10247</td>
            <td align="left">lid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10317</td>
            <td align="left">h323</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10327</td>
            <td align="left">aim</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10333</td>
            <td align="left">turn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10361</td>
            <td align="left">ms-stickers</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10373</td>
            <td align="left">ms-settings-location</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10380</td>
            <td align="left">dvb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10467</td>
            <td align="left">xcon</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10518</td>
            <td align="left">ms-screenclip</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10551</td>
            <td align="left">pop</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10583</td>
            <td align="left">dat</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10591</td>
            <td align="left">ms-settings-nfctransactions</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10640</td>
            <td align="left">ms-settings-cloudstorage</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10687</td>
            <td align="left">afs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10740</td>
            <td align="left">mqtt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10744</td>
            <td align="left">gizmoproject</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10831</td>
            <td align="left">amss</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10868</td>
            <td align="left">mailserver</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10926</td>
            <td align="left">ni</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">10995</td>
            <td align="left">telnet</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11055</td>
            <td align="left">gg</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11060</td>
            <td align="left">blob</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11072</td>
            <td align="left">ms-settings-emailandaccounts</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11130</td>
            <td align="left">ms-project</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11255</td>
            <td align="left">xri</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11315</td>
            <td align="left">msrp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11351</td>
            <td align="left">ms-settings-connectabledevices</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11393</td>
            <td align="left">cabal</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11428</td>
            <td align="left">nih</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11467</td>
            <td align="left">ms-whiteboard</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11533</td>
            <td align="left">smp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11537</td>
            <td align="left">vnc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11583</td>
            <td align="left">graph</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11645</td>
            <td align="left">dvx</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11718</td>
            <td align="left">lorawan</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11742</td>
            <td align="left">lastfm</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11799</td>
            <td align="left">w3</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11804</td>
            <td align="left">mumble</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11820</td>
            <td align="left">thzp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11824</td>
            <td align="left">feedready</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11857</td>
            <td align="left">microsoft.windows.camera</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11892</td>
            <td align="left">wcr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11945</td>
            <td align="left">ms-mobileplans</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11950</td>
            <td align="left">ms-settings-lock</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11962</td>
            <td align="left">ws</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">11999</td>
            <td align="left">rtspu</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12029</td>
            <td align="left">ms-settings-displays-topology</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12052</td>
            <td align="left">bluetooth</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12068</td>
            <td align="left">file</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12102</td>
            <td align="left">mailto</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12174</td>
            <td align="left">ms-launchremotedesktop</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12237</td>
            <td align="left">ilstring</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12242</td>
            <td align="left">cvs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12337</td>
            <td align="left">mms</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12400</td>
            <td align="left">ssb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12422</td>
            <td align="left">iris.xpc</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12458</td>
            <td align="left">starknet</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12478</td>
            <td align="left">qb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12493</td>
            <td align="left">mss</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12502</td>
            <td align="left">ventrilo</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12525</td>
            <td align="left">ms-lockscreencomponent-config</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12566</td>
            <td align="left">icap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12569</td>
            <td align="left">mupdate</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12599</td>
            <td align="left">paparazzi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12603</td>
            <td align="left">ms-widgetboard</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12634</td>
            <td align="left">fish</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12644</td>
            <td align="left">sip</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12699</td>
            <td align="left">mt</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12705</td>
            <td align="left">acap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12718</td>
            <td align="left">casts</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12726</td>
            <td align="left">reload</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12732</td>
            <td align="left">spotify</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12806</td>
            <td align="left">fuchsia-pkg</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12823</td>
            <td align="left">ms-gamebarservices</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12876</td>
            <td align="left">hyper</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">12932</td>
            <td align="left">dns</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13014</td>
            <td align="left">doi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13026</td>
            <td align="left">ms-settings-power</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13068</td>
            <td align="left">git</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13094</td>
            <td align="left">openpgp4fpr</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13098</td>
            <td align="left">ms-secondary-screen-controller</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13228</td>
            <td align="left">mvrps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13285</td>
            <td align="left">snews</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13340</td>
            <td align="left">smtp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13348</td>
            <td align="left">pack</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13362</td>
            <td align="left">teliaeid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13372</td>
            <td align="left">mongodb</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13404</td>
            <td align="left">afp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13440</td>
            <td align="left">msrps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13442</td>
            <td align="left">ldap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13451</td>
            <td align="left">mvrp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13499</td>
            <td align="left">nntp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13608</td>
            <td align="left">onenote</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13650</td>
            <td align="left">sarif</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13680</td>
            <td align="left">elsi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13829</td>
            <td align="left">otpauth</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13846</td>
            <td align="left">info</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13862</td>
            <td align="left">aaa</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13923</td>
            <td align="left">svn</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">13986</td>
            <td align="left">iris</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14010</td>
            <td align="left">lbry</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14034</td>
            <td align="left">ms-search</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14090</td>
            <td align="left">ms-browser-extension</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14153</td>
            <td align="left">maps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14162</td>
            <td align="left">swid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14168</td>
            <td align="left">ms-officeapp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14180</td>
            <td align="left">ms-settings-bluetooth</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14310</td>
            <td align="left">ms-enrollment</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14347</td>
            <td align="left">dntp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14364</td>
            <td align="left">ms-walk-to</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14366</td>
            <td align="left">ms-getoffice</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14367</td>
            <td align="left">thismessage</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14460</td>
            <td align="left">message</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14477</td>
            <td align="left">prospero</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14526</td>
            <td align="left">aaas</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14595</td>
            <td align="left">market</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14627</td>
            <td align="left">stun</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14667</td>
            <td align="left">chrome-extension</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14830</td>
            <td align="left">itms</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14860</td>
            <td align="left">ms-whiteboard-cmd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14867</td>
            <td align="left">wifi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14868</td>
            <td align="left">icon</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14878</td>
            <td align="left">ftp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14901</td>
            <td align="left">stuns</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14906</td>
            <td align="left">mqtts</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14936</td>
            <td align="left">ms-settings-workplace</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14962</td>
            <td align="left">tn3270</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14972</td>
            <td align="left">pres</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">14982</td>
            <td align="left">p1</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15026</td>
            <td align="left">teapot</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15061</td>
            <td align="left">android</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15118</td>
            <td align="left">simplex</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15163</td>
            <td align="left">ms-visio</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15202</td>
            <td align="left">cid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15206</td>
            <td align="left">unreal</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15230</td>
            <td align="left">tool</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15254</td>
            <td align="left">ms-secondary-screen-setup</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15267</td>
            <td align="left">rtsp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15306</td>
            <td align="left">xfire</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15358</td>
            <td align="left">xmpp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15361</td>
            <td align="left">ms-settings-cellular</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15461</td>
            <td align="left">shelter</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15579</td>
            <td align="left">v-event</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15639</td>
            <td align="left">iris.beep</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15641</td>
            <td align="left">wyciwyg</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15645</td>
            <td align="left">ms-meetnow</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15679</td>
            <td align="left">ms-search-repair</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15773</td>
            <td align="left">ms-settings-camera</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15776</td>
            <td align="left">ms-virtualtouchpad</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15805</td>
            <td align="left">xmlrpc.beeps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15972</td>
            <td align="left">ipfs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">15994</td>
            <td align="left">ms-settings-wifi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16051</td>
            <td align="left">aw</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16069</td>
            <td align="left">first-run-pen-experience</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16079</td>
            <td align="left">oid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16134</td>
            <td align="left">iris.xpcs</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16138</td>
            <td align="left">drop</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16194</td>
            <td align="left">ms-publisher</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16281</td>
            <td align="left">leaptofrogans</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16292</td>
            <td align="left">rmi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16300</td>
            <td align="left">soap.beeps</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16377</td>
            <td align="left">tag</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16585</td>
            <td align="left">ms-word</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16632</td>
            <td align="left">onenote-cmd</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16645</td>
            <td align="left">ms-powerpoint</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16728</td>
            <td align="left">hxxp</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16729</td>
            <td align="left">secondlife</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16884</td>
            <td align="left">rsync</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16918</td>
            <td align="left">vemmi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">16933</td>
            <td align="left">ipns</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17039</td>
            <td align="left">swh</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17068</td>
            <td align="left">pwid</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17097</td>
            <td align="left">dtmi</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17134</td>
            <td align="left">dis</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17170</td>
            <td align="left">iotdisco</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17175</td>
            <td align="left">ms-restoretabcompanion</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17264</td>
            <td align="left">service</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17315</td>
            <td align="left">finger</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17361</td>
            <td align="left">web+ap</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">17381</td>
            <td align="left">ms-eyecontrolspeech</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
        </tbody>
      </table>
      <t>The assignments from this table can be extracted from the XML form of
this document (when stored in a file "this.xml") into CSV form
<xref target="RFC4180"/> using this short Ruby program:</t>
      <sourcecode type="ruby"><![CDATA[
require 'rexml/document'; include REXML
XPath.each(Document.new(File.read("this.xml")),"/rfc/back//tr") {|r|
  puts XPath.each(r,"td").map{|d|d.text()}[0..1].join(",")}
]]></sourcecode>
    </section>
    <section removeInRFC="true" anchor="change-log">
      <name>Change Log</name>
      <t>Changes from -16 to -17</t>
      <t>(Provisional integration of active PRs, please see github.)</t>
      <t>Changes from -15 to -16</t>
      <ul spacing="normal">
        <li>
          <t>Add note that CRI Scheme Number registrations are oblivious of the
actual URI Scheme registrations (if any).</t>
        </li>
        <li>
          <t>Add information about how this RFC updates <xref target="RFC7595"/> to abstract and
introduction.</t>
        </li>
      </ul>
      <t>Changes from -14 to -15</t>
      <ul spacing="normal">
        <li>
          <t>Make scheme numbers unsigned and map them to negative numbers used
as scheme-id values</t>
        </li>
      </ul>
      <t>Changes from -09 to -14</t>
      <ul spacing="normal">
        <li>
          <t>Editorial changes; move some examples to <xref target="the-small-print"/>, break up
railroad diagram; mention commonalities with (and tiny difference
from) CoAP Options; mention failure of percent-encoding for dots in
host-name components</t>
        </li>
        <li>
          <t>Explicitly mention invalid case in <xref target="naked-rootless"/> (rootless CRIs without
authority that do not have a path component)</t>
        </li>
        <li>
          <t>Generalize <xref target="extending"/>, discuss PET (percent-encoded text) extension in more detail</t>
        </li>
        <li>
          <t>Add registry of URI scheme numbers (<xref target="sec-numbers"/>, <xref target="iana-considerations"/>)</t>
        </li>
        <li>
          <t>Add user information to the authority ("userinfo" feature)</t>
        </li>
        <li>
          <t><xref target="cddl"/>: Use separate rule for CRI, allow <tt>[]</tt> for query in CRI
Reference; generalize scheme numbers, add userinfo; add list of
additional requirements in prose (<xref target="prose"/>)</t>
        </li>
        <li>
          <t>Discuss <xref format="title" target="unprocessable"/> (<xref target="unprocessable"/>)</t>
        </li>
        <li>
          <t>Conversion to URI: Handle <tt>:</tt> in first pathname component of a
CRI-Reference (<xref target="colon"/>)</t>
        </li>
        <li>
          <t>Add Christian Amsüss as contributor</t>
        </li>
        <li>
          <t>Add CBOR EDN application-extension "<tt>cri</tt>" (see <xref target="edn-cri"/> and
<xref target="cri-iana"/>).</t>
        </li>
        <li>
          <t>Add Section on CoAP integration (and new CoAP Options Proxy-Cri and
Proxy-Scheme-Number).</t>
        </li>
      </ul>
      <t>Changes from -08 to -09</t>
      <ul spacing="normal">
        <li>
          <t>Identify more esoteric features with a CDDL ".feature".</t>
        </li>
        <li>
          <t>Clarify that well-formedness requires removing trailing nulls.</t>
        </li>
        <li>
          <t>Fragments can contain PET.</t>
        </li>
        <li>
          <t>Percent-encoded text in PET is treated as byte strings.</t>
        </li>
        <li>
          <t>URIs with an authority but a completely empty path (e.g.,
<tt>http://example.com</tt>): CRIs with an authority component no longer
always produce at least a slash in the path component.  </t>
          <t>
For generic schemes, the conversion of <tt>scheme://example.com</tt> to a
CRI is now possible
because CRI produces a URI with an authority not followed by a slash
following the updated rules of <xref target="cri-to-uri"/>.
Schemes like http and coap do not distinguish between the empty path
and the path containing a single slash when an authority is set (as
recommended in <xref target="STD66"/>).
For these schemes, that equivalence allows implementations to
convert the just-a-slash URI to a CRI with a zero length path array
(which, however, when converted back, does not produce a slash after
the authority).  </t>
          <t>
(Add an appendix "the small print" for more detailed discussion of
pesky corner cases like this.)</t>
        </li>
      </ul>
      <t>Changes from -07 to -08</t>
      <ul spacing="normal">
        <li>
          <t>Fix the encoding of NOAUTH-NOSLASH / NOAUTH-LEADINGSLASH</t>
        </li>
        <li>
          <t>Add URN and DID schemes, add example.</t>
        </li>
        <li>
          <t>Add PET</t>
        </li>
        <li>
          <t>Remove hopeless attempt to encode "remote trailing nulls" rule in
CDDL (which is not a transformation language).</t>
        </li>
      </ul>
      <t>Changes from -06 to -07</t>
      <ul spacing="normal">
        <li>
          <t>More explicitly discuss constraints (<xref target="constraints"/>), add examples (<xref target="sp-constraints"/>).</t>
        </li>
        <li>
          <t>Make CDDL more explicit about special simple values.</t>
        </li>
        <li>
          <t>Lots of gratuitous changes from XML2RFC redefinition of <tt>&lt;tt&gt;</tt>
semantics.</t>
        </li>
      </ul>
      <t>Changes from -05 to -06</t>
      <ul spacing="normal">
        <li>
          <t>rework authority:
          </t>
          <ul spacing="normal">
            <li>
              <t>split reg-names at dots;</t>
            </li>
            <li>
              <t>add optional zone identifiers <xref target="RFC6874"/> to IP addresses</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>Changes from -04 to -05</t>
      <ul spacing="normal">
        <li>
          <t>Simplify CBOR structure.</t>
        </li>
        <li>
          <t>Add implementation status section.</t>
        </li>
      </ul>
      <t>Changes from -03 to -04:</t>
      <ul spacing="normal">
        <li>
          <t>Minor editorial improvements.</t>
        </li>
        <li>
          <t>Renamed path.type/path-type to discard.</t>
        </li>
        <li>
          <t>Renamed option to section, substructured into items.</t>
        </li>
        <li>
          <t>Simplified the table "resolution-variables".</t>
        </li>
        <li>
          <t>Use the CBOR structure inspired by Jim Schaad's proposals.</t>
        </li>
      </ul>
      <t>Changes from -02 to -03:</t>
      <ul spacing="normal">
        <li>
          <t>Expanded the set of supported schemes (#3).</t>
        </li>
        <li>
          <t>Specified creation, normalization and comparison (#9).</t>
        </li>
        <li>
          <t>Clarified the default value of the <tt>path.type</tt> option (#33).</t>
        </li>
        <li>
          <t>Removed the <tt>append-relation</tt> path.type option (#41).</t>
        </li>
        <li>
          <t>Renumbered the remaining path.types.</t>
        </li>
        <li>
          <t>Renumbered the option numbers.</t>
        </li>
        <li>
          <t>Restructured the document.</t>
        </li>
        <li>
          <t>Minor editorial improvements.</t>
        </li>
      </ul>
      <t>Changes from -01 to -02:</t>
      <ul spacing="normal">
        <li>
          <t>Changed the syntax of schemes to exclude upper case characters (#13).</t>
        </li>
        <li>
          <t>Minor editorial improvements (#34 #37).</t>
        </li>
      </ul>
      <t>Changes from -00 to -01:</t>
      <ul spacing="normal">
        <li>
          <t>None.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>CRIs were developed by <contact fullname="Klaus Hartke"/> for use in the Constrained
RESTful Application Language (CoRAL).
The current author team is completing this work with a view to achieve
good integration with the potential use cases, both inside and outside of CoRAL.</t>
      <t>Thanks to
<contact fullname="Christian Amsüss"/>,
<contact fullname="Thomas Fossati"/>,
<contact fullname="Ari Keränen"/>,
<contact fullname="Jim Schaad"/>,
<contact fullname="Dave Thaler"/>,
and
<contact fullname="Marco Tiloca"/>
for helpful comments and discussions that have shaped the
document.</t>
      <!--  LocalWords:  CRI normalizations dereferencing dereference CRIs
 -->
<!--  LocalWords:  untrusted subcomponent
 -->

</section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="K." surname="Hartke" fullname="Klaus Hartke">
        <organization>Ericsson</organization>
        <address>
          <postal>
            <street>Torshamnsgatan 23</street>
            <city>Stockholm</city>
            <code>16483</code>
            <country>Sweden</country>
          </postal>
          <email>klaus.hartke@ericsson.com</email>
        </address>
      </contact>
      <contact initials="C." surname="Amsüss" fullname="Christian Amsüss">
        <organization/>
        <address>
          <postal>
            <street>Hollandstr. 12/4</street>
            <city>Vienna</city>
            <code>1020</code>
            <country>Austria</country>
          </postal>
          <email>christian@amsuess.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9S923bbSJYo+I6vQNOTbVJFUKJuluRyZiplu1JrMp1uXzq7
j8vHAkmQQpkEWAAoWSmr13md55lPmFnzMJ9w5qn7T/pLZl/jAoCisrrPOmtU
q5wSiQhE7Nix75coioKrk3AvCCb5OIsXyUk4KeJpFaVJNY3GeZFEl0UyjeZx
lZRVMI6rk7CsJkG5Gi3SskzzrLpZwqDzF+9eBuM8K5OsXJUnYVWskmAeZ7OT
MMmCKq3m8NAZfF8VcZolk/BNUuarYpyE55Mkq9JpmhRlsFpO8D0n4ZOD44Pg
eoZD3rwIf82Lz2k2C/9U5KtlEFztfVnMd4vp+CQIwyoezZNPo7yYwAQn4Tyd
XVbB5yJeTPLr7FO+rGCJJT6Yzz+VVVxUn+Lq0zQtyurTIi4+J4WsNYhX1WVe
nARRyGA4i+GZJAt/yItFnGU4QwELep+lV/CmtPq3/7MKfyiSBTzy7r+cw9ew
tSQB8LzOy2oajy/Dvb2d/f0d+GacVjcn8jD+mU9g/ufR7tHewTH9vcqqAp74
U4KvuoGPlpd5Bs/8Yf842t8dRrvDo+hw73h3CF8lizidn4TjeJR/X/2WDmBV
8GmRI4CTSVrlhdnCj0n2OfwhLT5f5vPfdAMvi3iVXebTpAjfnr+zE17Cw4OR
PPw9bHAwNU8OJomzwTeXSUoHWZYJnJTZ0ePD/d3jg8dmw8/jYgEgn1Rte0Rk
qYp0tKpcoP+v83hVhj/CMX1OdMEvinRclnnmrOBdXpSX8SIrZ3EVZ+Hunnnn
2yof4w4WdlXDw/2jvcfuGt5eJxM6Cdn6Z3zr4JLe+n0irxuM84VFhssiLasU
3nW6KP/t/y1LZzE/5nNA9An8OQiHu9v7Zi3/mCZZFpuFDHd2d9xVnK5gSBo7
R6ov+T5elKukLGkJwVWSrRLE4Bmif+0WvXj7brqahy+yq7TIM8CvCpcm88Ht
/R7vseDILK0uVyP+PLqebePFDoI0myKGV4DW+JI3L8/29o934FbkcTlOU/7o
ye7uEXwEZwd/n0fPB0Qe0rzKl2WEX47Skr+HX+CRt++eHz8BnKqqZfAIJzge
Dnd0qoNdXEO85L+PhvvDk3BVZPLn7hG86ToZRfM0w1vPHx/DKZ6EKY754ez1
EBc4j68zmBz/3t05wLXTm46OCMy/7p0N3rw4iy6rxfxgN9rdGT4Z7g73T9z1
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
Wy1+/v+NhPLKSq4BAA==

-->

</rfc>
