<?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.18 (Ruby 3.3.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-href-16" category="std" consensus="true" submissionType="IETF" xml:lang="en" updates="7595" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title>Constrained Resource Identifiers</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-16"/>
    <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="2024" month="July" day="24"/>
    <workgroup>CoRE Working Group</workgroup>
    <abstract>
      <?line 89?>

<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) instead of in a sequence of characters.
This 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 RFC 7595 describes 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 –16 of this draft continues -15 by picking up
more comments; it was made specifically for IETF 120.
<br/>
This revision still contains open issues and is intended to serve
as a snapshot.</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 112?>

<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.
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 involves parsing a character sequence
into its components, combining those components with the components of a
base URI, merging path components, removing dot-segments, 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 <xref target="RFC7228">constrained environments</xref>,
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"/>.</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.
This allows typical operations on URI references such as parsing,
comparison, and reference resolution (including all corner cases) to be
implemented in a comparatively small amount of code.</t>
      <t>As a result of simplification, however, CRIs 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"/>.</t>
      <t>This RFC creates a "CRI Scheme Numbers" registry and updates RFC 7595
to add a note on how this new registry cooperates with the URI Schemes
registry that RFC 7595 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>Constraints</name>
      <t>A Constrained Resource Identifier consists of the same five components
as a URI: scheme, authority, path, query, and fragment.
The components are subject to the following constraints:</t>
      <ol spacing="normal" type="C%d."><li anchor="c-scheme">
          <t>The scheme name can be any Unicode string (see
Definition D80 in <xref target="Unicode"/>) 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
ASCII) and is lowercase (see Definition D139 in <xref target="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 registered name, along with optional port information,
and optionally preceded by user information.  </t>
          <t>
Alternatively, the authority can be absent; 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
values used in place of an absent authority:  </t>
          <ul spacing="normal">
            <li>
              <t>the path can be root-based (zero or more path components 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 component.</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"/>.
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 registered name is a sequence of one or more
<em>labels</em>, which, when joined with dots (".") in between them,
result in a Unicode string that is lowercase and in Unicode
Normalization Form C (NFC) (see Definition D120 in <xref target="Unicode"/>).
(The syntax may be further restricted by the scheme.
As per Section <xref target="RFC3986" section="3.2.2" sectionFormat="bare"/> of RFC 3986 <xref target="STD66"/>, a 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>The port is omitted 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.
<!-- Note that this is hard to do by a generic URI implementation
that may not know the scheme's default port -->
          </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-initial-empty"/> in <xref target="the-small-print"/>.)</t>
        </li>
        <li anchor="c-path-segment">
          <t>A path segment can be any Unicode string that is
in NFC, 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-initial-empty"/> in <xref target="the-small-print"/>.)</t>
        </li>
        <li anchor="c-query">
          <t>A query always consists of one or more query parameters.
   A query parameter can be any Unicode string that is in NFC.
   It is often in the form of a "key=value" pair.
   When converting a CRI to a URI, query parameters are separated by an
   ampersand ("&amp;") character.
   (This matches the structure and encoding of the target URI in CoAP
   requests.)
   Queries are optional; there is a difference between an absent query
   and a single query parameter that is the empty string.</t>
        </li>
        <li anchor="c-fragment">
          <t>A fragment identifier can be any Unicode string that
   is in NFC.
   Fragment identifiers are optional; there is a difference between an
   absent 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 (that is 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 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>For CRI references, this is acceptable -- they can be resolved still and result in a valid 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
(and unsets the query and the fragment)</t>
          </li>
          <li>
            <t><tt>[0, null, []]</tt>: leaves the path alone but unsets the query and the fragment</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 a path component "." or "..".  </t>
            <t>
These 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,
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 two or more empty segments.  </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,
and they would be indistinguishable from a URI with a shorter path and a present but empty authority component.</t>
          </li>
          <li anchor="naked-rootless">
            <t>CRIs without authority that are rootless and do not have a path
component (e.g., <tt>["a", true]</tt>), which would be indistinguishable
from its root-based equivalent (<tt>["a"]</tt>) as both would have the URI <tt>a:</tt>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="creation-and-normalization">
      <name>Creation and Normalization</name>
      <t>In general, resource identifiers are created on the initial creation of a
resource with a certain resource identifier, or the initial exposition
of a resource under a particular resource identifier.</t>
      <t>A Constrained Resource Identifier <bcp14>SHOULD</bcp14> be created by
the naming 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.</t>
      <t>The naming authority <bcp14>MUST</bcp14> ensure that any CRI created
satisfies the constraints defined in <xref target="constraints"/>. The creation of a
CRI fails if the CRI cannot be validated to satisfy all of the
constraints.</t>
      <t>If a naming authority creates a CRI from user input, it <bcp14>MAY</bcp14> 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>
    </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) should be
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>This section 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 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, applications <bcp14>SHOULD NOT</bcp14>
directly compare CRI references; the references should be
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"/>), with the structure described in CDDL as
follows:</t>
        <figure anchor="cddl">
          <name>CDDL for CRI CBOR representation</name>
          <sourcecode type="cddl"><![CDATA[
; not expressed in this CDDL spec: trailing nulls to be left off

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

CRI = [
  scheme,
  authority / no-authority,
  path / null,
  query / null,
  fragment / null
]


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

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

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
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>The rules <tt>scheme</tt>, <tt>authority</tt>, <tt>path</tt>, <tt>query</tt>, <tt>fragment</tt>
correspond to the (sub‑)components of a CRI, as described in
<xref target="constraints"/>, with the addition of the <tt>discard</tt> section.</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 null values <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, and</t>
          </li>
          <li>
            <t>an empty path in a <tt>CRI</tt> <bcp14>MUST</bcp14> be represented as the empty array <tt>[]</tt>
(note that for <tt>CRI-Reference</tt> there is a difference between empty
and absent paths, represented by <tt>[]</tt> and <tt>null</tt>, respectively),</t>
          </li>
          <li>
            <t>an entirely empty outer array is not a valid CRI (but a valid CRI reference,
as per <xref target="ingest"/> equivalent to <tt>[0]</tt>, which essentially copies the
base CRI).</t>
          </li>
        </ul>
        <t>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.</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 by its <tt>scheme-name</tt>
(a text string giving the scheme name as in URIs' scheme section,
mapped to lower case), or as a negative integer <tt>scheme-id</tt> derived
from the <em>scheme number</em>.
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 leading segment
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 leading segments, 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="visualization">
          <name>Visualization</name>
          <t>The structure of a CRI reference is visualized using the somewhat limited means
of a railroad diagram:</t>
          <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>
          <t>This visualization does not go into the details of the elements.</t>
        </section>
        <section anchor="examples">
          <name>Examples</name>
          <sourcecode type="cbor-diag"><![CDATA[
[-1,             / scheme-id -- equivalent to "coap" /
 [h'C6336401',   / host /
  61616],        / port /
 [".well-known", / path /
  "core"]
]
]]></sourcecode>
          <sourcecode type="cbor-diag"><![CDATA[
[true,                  / discard /
 [".well-known",        / path /
  "core"],
 ["rt=temperature-c"]]  / query /
]]></sourcecode>
          <sourcecode type="cbor-diag"><![CDATA[
[-6,                / scheme-id -- equivalent to "did" /
 true,              / authority = NOAUTH-ROOTLESS /
 ["web:alice:bob"]  / path /
]
]]></sourcecode>
        </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 <em>absolute</em> 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>Each of these sections can be unset ("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 must be <tt>true</tt>.</t>
        <t>When ingesting a CRI Reference that is in the transfer form, those
sections are filled in from the transfer form (unset sections are
filled with null), and the following steps are performed:</t>
        <ul spacing="normal">
          <li>
            <t>If the array is entirely empty, replace it with <tt>[0]</tt>.</t>
          </li>
          <li>
            <t>If discard is present in the transfer 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 the transfer 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 the transfer 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 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 basic 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 extended-cris as per <xref target="pet"/>).</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 CRI in the form of
an absolute CRI reference:</t>
        <ol spacing="normal" type="1"><li>
            <t>Establish the base CRI of the CRI reference and express it in the
  form of an abstract absolute 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, unset query and
fragment, 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, unset query and
fragment.  </t>
            <t>
Set discard to <tt>true</tt> in the buffer.</t>
          </li>
          <li>
            <t>If the path section is set in the CRI reference, append all
elements from the path array to the array in the path section in
the buffer; unset query and fragment.</t>
          </li>
          <li>
            <t>Apart from the path and discard, copy all non-null sections from
the CRI reference to the buffer in sequence; unset query in the buffer if query
is the empty array <tt>[]</tt> in the CRI reference; unset fragment 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 <xref target="RFC7228">constrained environments</xref>.
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-initial-empty"/> in <xref target="the-small-print"/> for more details.</t>
        </dd>
        <dt>CRI to IRI</dt>
        <dd>
          <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 unset.</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 unset.
</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> elements 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.</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>
            <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"/>).
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.</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 unset.
</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 unset.
</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>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>The CRI structure described up to this point 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>However, Basic CRIs have one limitation: They 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 basic CRIs:</t>
      <sourcecode type="uri"><![CDATA[
did:web:alice:7%3A1-balun
]]></sourcecode>
      <t>Extended forms of CRIs may be defined to enable these applications.
They will generally extend the potential values of text components of
URIs, such as userinfo, hostnames, paths, queries, and fragments.</t>
      <t>One such extended form is described in the following <xref target="pet"/>.
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 <bcp14>MUST NOT</bcp14> allow indefinite length items.
This provision ensures that recipients of CRIs can deal with unprocessable CRIs
as described in <xref target="unprocessable"/>.</t>
      <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 "extended-cri"

; 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 above DID URI 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 <tt>extended-cri</tt>, 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.)</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 designed for using CRIs will generally avoid using the
extended-cri 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="coap-integration">
      <name>CoAP Integration</name>
      <t>This section discusses ways in which CRIs can be used in the context
of the CoAP protocol <xref target="RFC7252"/>.</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">8</td>
              <td align="left">coap+ws</td>
            </tr>
            <tr>
              <td align="left">9</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"><li>
              <t>If »cri« is not an absolute CRI reference, 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 »cri« has a <tt>fragment</tt> component, 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
value of the <tt>host-name</tt>.  </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 »cri« has a <tt>port</tt> component, then let »port« be that
component'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 UDP 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 »cri« has a <tt>query</tt> component, then, for each element in the
<tt>query</tt> component, include a Uri-Query Option and let that
option's value be the 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"><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>, include
this as the <tt>host-name</tt>.
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 UDP 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
an absolute CRI reference.
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>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>
          <t><cref anchor="location-scheme">TO DO: Discuss the need for a
location-scheme-numeric option?</cref></t>
        </section>
      </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>With the exception of the authority=true fix, host-names split into
labels, and <xref target="pet"/>, CRIs are implemented in <tt>https://gitlab.com/chrysn/micrurus</tt>.
A golang implementation of version -10 of this document is found at:
<tt>https://github.com/thomas-fossati/href</tt>
        <!-- see RFC 7942 -->
      </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.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="cri-reg">
        <name>CRI Scheme Numbers Registry</name>
        <t>This specification defines a new "CRI Scheme Numbers" sub-registry in
the "CoRE Parameters" registry <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>
        </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="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>
  </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>
        <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>
            <date day="3" month="July" year="2024"/>
          </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.core-parameters" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date day="8" month="June" year="2012"/>
          </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:,, and for the construction of constants; / for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and 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="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>
        <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>
        <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="4" month="July" year="2024"/>
            <abstract>
              <t>   The Concise Binary Object Representation, CBOR (STD 94, RFC 8949),
   defines a "diagnostic notation" in order to be able to converse about
   CBOR data items without having to resort to binary data.  RFC 8610
   extends this into what is known as Extended Diagnostic Notation
   (EDN).

   This document sets forth a further step of evolution of EDN, and it
   is intended to serve as a single reference target in specifications
   that use EDN.

   It specifies how to add application-oriented extensions to the
   diagnostic notation.  It then defines two such extensions for text
   representations of epoch-based date/times and of IP addresses and
   prefixes (RFC 9164).

   A few further additions close some gaps in usability.  It modifies
   one extension specified in Appendix G.4 of RFC 8610 to enable further
   increasing usability.  To facilitate tool interoperation, this
   document specifies a formal ABNF definition for EDN as defined today,
   and it adds media types.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-10"/>
        </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="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 1415?>

<section anchor="sec-numbers">
      <name>Mapping Scheme Numbers to Scheme Names</name>
      <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>
      <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">8</td>
            <td align="left">coap+ws</td>
            <td align="left">[RFC-XXXX]</td>
          </tr>
          <tr>
            <td align="left">9</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">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">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">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">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">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">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">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">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">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">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">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">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 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"><li anchor="sp-initial-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 initial 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"><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>
            </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.
Thus, the following examples <em>are</em> convertible to basic CRIs:      </t>
              <t><tt>https://interior%2edot/</tt>      </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 do not cater for unencoded ":" in userinfo, which is
commonly considered a deprecated inclusion of a literal password.</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.</t>
      <t>As an example, the CBOR diagnostic notation</t>
      <sourcecode type="cbor-diag"><![CDATA[
cri'https://example.com/bottarga/shaved'
]]></sourcecode>
      <t>is equivalent to</t>
      <sourcecode type="cbor-diag"><![CDATA[
[-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>The syntax of the content of <tt>cri</tt> literals can be described 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 removeInRFC="true" anchor="change-log">
      <name>Change Log</name>
      <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 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:
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
B4sKI5ZZaQEA

-->

</rfc>
