<?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.30 (Ruby 3.4.5) -->
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-cbor-cddl-2-draft-07" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.1 -->
  <front>
    <title abbrev="CDDL 2.0">CDDL 2.0 and beyond — a draft plan</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-cddl-2-draft-07"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <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>
    <date year="2025" month="August" day="30"/>
    <workgroup>CBOR Working group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 66?>

<t>The Concise Data Definition Language (CDDL) today is defined by
RFC 8610, RFC 9165, RFC 9682, and RFC\ 9741).
RFC 9165 and the latter (as well as some more application specific specifications
such as RFC 9090) have used the extension point provided in RFC 8610,
the control operator.</t>
      <t>As CDDL is used in larger projects, feature requirements become known
that cannot be easily mapped into this single extension point.
Hence, there is a need for evolution of the base CDDL specification
itself.</t>
      <t>The present document provides a roadmap towards a "CDDL 2.0";
it is intended to serve as a basis for implementations that evolve
with the concept of CDDL 2.0.
It is based on draft-bormann-cbor-cddl-freezer, but is more selective
in what potential features it takes up and more detailed in their
discussion.
This document is intended to evolve over time; it might spawn specific
documents and then retire, or it might eventually be published as a roadmap
document.</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-bormann-cbor-cddl-2-draft/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        cbor Working Group mailing list (<eref target="mailto:cbor@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cbor/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cbor/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cbor-wg/cddl-2"/>.</t>
    </note>
  </front>
  <middle>
    <?line 89?>

<section anchor="intro">
      <name>Introduction</name>
      <t>(Please see abstract.)</t>
      <t>Note that the existing extension point can be exercised for new
features in parallel to the work described here.
<xref target="RFC9741"/> forms part of the first set of
specifications going forward from the CDDL-2 project together with <xref target="RFC9682"/>.</t>
      <t>The rest of this introduction gives a rough overview over what could
be the development plan for CDDL 1.1, 2.0, 2.5.</t>
      <section anchor="s11">
        <name>CDDL 1.1 + 2 plan (standards track)</name>
        <t>This section documents the status in Summer 2024.</t>
        <t>CDDL 1.1 milestone (documents technically complete, implemented):</t>
        <ul spacing="normal">
          <li>
            <t>"CDDL 1.1": <xref target="RFC9682"/>, <em>Grammar</em> fixes:
Empty files (enabling CDDL 2), non-literal tags, errata fixes.
Approved document, in RFC editor queue (EDIT state) at the time of writing.</t>
          </li>
          <li>
            <t>Parallel to CDDL 1.1: More <em>control</em> operators
<xref target="RFC9741"/>: Additional control operators, another iteration
like RFC 9165 before.</t>
          </li>
        </ul>
        <t>CDDL 2.0 work:</t>
        <ul spacing="normal">
          <li>
            <t>Technically complete before <strong>IETF 119</strong>: CDDL 2.0: <xref target="I-D.ietf-cbor-cddl-modules"/>
(<tt>import</tt>/<tt>include</tt> directives, implemented).
Feedback is available from IETF 119, one open technical issue
(sockets); WGLC 1H2025.</t>
          </li>
          <li>
            <t>Potentially, further directives to be added.
No proposals are ripe for specification; this work could go into a
second document constituting "CDDL 2.1" so we have the
well-understood <tt>import</tt>/<tt>include</tt> available now.</t>
          </li>
        </ul>
        <t>"CDDL 2.5":</t>
        <ul spacing="normal">
          <li>
            <t>Being prepared in <strong>1H2025</strong>: CDDL 2.5: <xref target="anno"/> of the present document
("<em>annotations</em>", plus some functionality enabled by that).
The requirements are reasonably well-understood;
the specific form this takes needs to be worked out.
Enables, e.g., <xref section="5" sectionFormat="of" target="I-D.bormann-cbor-cddl-freezer"/> (co-occurrence).</t>
          </li>
        </ul>
      </section>
      <section anchor="s12">
        <name>Other documents</name>
        <t>Not on the main line of development, but important ancillary work:</t>
        <ul spacing="normal">
          <li>
            <t>(Informational, implemented): Section <xref target="I-D.bormann-cbor-cddl-freezer" section="6" sectionFormat="bare">alternative representations</xref> of <xref target="I-D.bormann-cbor-cddl-freezer"/>:
CDDL-in-JSON format(s) for interchange of CDDL model information
between tools.</t>
          </li>
          <li>
            <t>(Informational, companion to <xref target="I-D.ietf-cbor-cddl-modules"/>): <xref target="I-D.bormann-cbor-rfc-cddl-models"/>
(builds standard collection of referenceable models).</t>
          </li>
          <li>
            <t>(BCP? Informational?): <xref target="I-D.bormann-cbor-draft-numbers"/>
(BCP for handling assigned numbers during draft stage; can stay
informational as the work described is completed and any reference
to the document erased before a specification using it would be published).</t>
          </li>
          <li>
            <t>Application-oriented literal <tt>e''</tt> <xref target="I-D.ietf-cbor-edn-e-ref"/> makes use of
<xref target="I-D.ietf-cbor-edn-literals"/> so that diagnostic notation can refer
to named numbers that are specified in CDDL.
Implemented, see <xref target="enum-literals"/> for an introduction.</t>
          </li>
        </ul>
        <t>More explorative at this point:</t>
        <ul spacing="normal">
          <li>
            <t>(Standards-Track?) The remaining <xref target="syntax"/> of this document:
application-oriented literals in CDDL mirroring the work in
<xref target="I-D.ietf-cbor-edn-literals"/>.</t>
          </li>
          <li>
            <t>(Informational or Standards-Track?): <xref target="I-D.bormann-cbor-cddl-csv"/> (using CDDL to
model CSV documents).</t>
          </li>
        </ul>
        <t>Important CBOR work that may be reflected in some CDDL extensions:</t>
        <ul spacing="normal">
          <li>
            <t>Evolving Extended Diagnostic Notation <xref target="I-D.ietf-cbor-edn-literals"/>.  While EDN
and CDDL are independent languages (with EDN rooted in JSON and CDDL
in ABNF and Relax-NG), they are often used together, and
developments in one may spawn parallel work in the other.</t>
          </li>
          <li>
            <t>Common Deterministic Encoding (CDE) <xref target="I-D.ietf-cbor-cde"/> and related documents.
These do define CDDL operators already, which may be sufficient for
initial use; this might be extended once more experience has been
gained.</t>
          </li>
          <li>
            <t>Packed CBOR <xref target="I-D.ietf-cbor-packed"/>.
CDDL already can be used to describe the original
data item represented in a packed data item.
Requirements for describing the latter have not yet been collected;
there is some relation to <xref target="transformation">transformation</xref> that
might need to be explored.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="syntax">
      <name>Mending syntax deficits</name>
      <t>The previous content of this section formed the basis for <xref target="RFC9682"/>,
except for <xref target="tagolit-ref"/>.</t>
      <section anchor="tagolit-ref">
        <name>Tag-oriented Literals</name>
        <t>Incomplete, see <xref target="tagolit"/>.</t>
      </section>
    </section>
    <section anchor="anno">
      <name>Processing model: Beyond Validation</name>
      <dl spacing="compact">
        <dt><em>Proposal Status</em>:</dt>
        <dd>
          <t>experiments with implementations ongoing</t>
        </dd>
        <dt><em>Compatibility</em>:</dt>
        <dd>
          <t>backwards compatible</t>
        </dd>
      </dl>
      <t>The basic (implicit) processing model for CDDL 1.0 applies a CDDL data
model to a data item and returns a Boolean that indicates whether the
data item matches that model ("<em>validation</em>").</t>
      <t><xref section="4" sectionFormat="of" target="RFC9165"/> extends this model with named "<em>features</em>".
A validation can indicate which features were used.
Validation could also be parameterized with information about what
features are allowed to be used, enabling variants (see <xref section="4" sectionFormat="of" target="RFC9165"/> and <xref target="useful"/> for examples).</t>
      <section anchor="annotations">
        <name>Annotations</name>
        <t>The <tt>cddl</tt> tool (<xref section="F" sectionFormat="of" target="RFC8610"/>) also supports experimental
forms of "annotating" a validated data item with information about
which rules were used to support validation, currently entirely based on the
information that is in a standard CDDL 1.0 data model.
This leads to a more general concept of "<em>annotation</em>", where the data
model specification supports "annotating" the validated instance by
optionally supplying information in the model.
(The annotated result is a special case of a "post-schema validation
instance" <xref target="PSVI"/>, here one where the data item itself is only
augmented, not changed, by the process.)</t>
        <t>Annotations could in turn provide input to further validation steps,
as is often done with Schematron validation in Relax-NG; with an
appropriate evaluation language this can be used for checking co-occurrence
constraints (<xref section="5" sectionFormat="of" target="I-D.bormann-cbor-cddl-freezer"/>).</t>
      </section>
      <section anchor="transformation">
        <name>Transformation</name>
        <t>Finally, annotations are a first step to <em>transformation</em>, i.e.,
describing how a validated data item should be interpreted as a
transformed data item by performing certain computations.
This generally requires even more support from an evaluation language,
simple transformations such as adding in default values may not need
much support though.</t>
      </section>
      <section anchor="next-steps">
        <name>Next Steps</name>
        <t>At this time, existing experimental implementations do not lead to a
clear choice for what processing model enhancements should be in
CDDL 2.0 follow-ons.
This document proposes to continue the experimentation and document
good approaches.</t>
      </section>
    </section>
    <section anchor="module-superstructure">
      <name>Module superstructure</name>
      <t>The previous content of this section formed the basis for <xref target="I-D.ietf-cbor-cddl-modules"/>.
Additional work might be started on the ideas outlined in the
subsections of this section.</t>
      <section anchor="cross-universe-references">
        <name>Cross-universe references</name>
        <t>See <xref target="cross"/>.
<!-- {Appendix A.2 of -cddl-2-draft}}. -->
        </t>
      </section>
      <section anchor="abnf-is-a-lot-like-cddl">
        <name>ABNF is a lot like CDDL</name>
        <t>Many of the constructs defined here for CDDL also could be used with
ABNF specifications.  ABNF would definitely benefit from a standard
way to import snippets from existing RFCs.
Since CDDL contains ABNF support (<xref section="3" sectionFormat="of" target="RFC9165"/>), it would be
natural to make some of the functionality discussed in this section
available for ABNF as well.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no requests of IANA.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security considerations</name>
      <t>The security considerations of <xref target="RFC8610"/> apply.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed:.plus,.cat, and.det for the construction of constants;.abnf/.abnfb for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and.feature for indicating the use of a non-basic feature in an instance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9165"/>
          <seriesInfo name="DOI" value="10.17487/RFC9165"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.bormann-cbor-cddl-freezer">
          <front>
            <title>A feature freezer for the Concise Data Definition Language (CDDL)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="28" month="February" year="2025"/>
            <abstract>
              <t>   In defining the Concise Data Definition Language (CDDL), some
   features have turned up that would be nice to have.  In the interest
   of completing this specification in a timely manner, the present
   document was started to collect nice-to-have features that did not
   make it into the first RFC for CDDL, RFC 8610, or the specifications
   exercising its extension points, such as RFC 9165.

   Significant parts of this draft have now moved over to the CDDL 2.0
   project, described in draft-bormann-cbor-cddl-2-draft.  The remaining
   items in this draft are not directly related to the CDDL 2.0 effort.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-cddl-freezer-15"/>
        </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="7" month="July" year="2025"/>
            <abstract>
              <t>   This document formalizes and consolidates the definition of the
   Extended Diagnostic Notation (EDN) of the Concise Binary Object
   Representation (CBOR), addressing implementer experience.

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

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


   // (This cref will be removed by the RFC editor:) The present -18
   // corrects a few omissions from -17; it is not intended to make
   // technical changes from -17.  It is intended for use as an input
   // document for the CBOR WG meeting at IETF 123.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-18"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-edn-e-ref">
          <front>
            <title>External References to Values in CBOR Diagnostic Notation (EDN)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="2" month="July" year="2025"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 8949) is a data
   format whose design goals include the possibility of extremely small
   code size, fairly small message size, and extensibility without the
   need for version negotiation.

   CBOR diagnostic notation (EDN) is widely used to represent CBOR data
   items in a way that is accessible to humans, for instance for
   examples in a specification.  At the time of writing, EDN did not
   provide mechanisms for composition of such examples from multiple
   components or sources.  This document uses EDN application extensions
   to provide two such mechanisms, both of which insert an imported data
   item into the data item being described in EDN:

   The e'' application extension provides a way to import data items,
   particularly constant values, from a CDDL model (which itself has
   ways to provide composition).

   The ref'' application extension provides a way to import data items
   that are described in EDN.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-e-ref-02"/>
        </reference>
        <reference anchor="RFC9682">
          <front>
            <title>Updates to the Concise Data Definition Language (CDDL) Grammar</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="November" year="2024"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), as defined in RFCs 8610 and 9165, provides an easy and unambiguous way to express structures for protocol messages and data formats that are represented in Concise Binary Object Representation (CBOR) or JSON.</t>
              <t>This document updates RFC 8610 by addressing related errata reports and making other small fixes for the ABNF grammar defined for CDDL.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9682"/>
          <seriesInfo name="DOI" value="10.17487/RFC9682"/>
        </reference>
        <reference anchor="RFC9741">
          <front>
            <title>Concise Data Definition Language (CDDL): Additional Control Operators for the Conversion and Processing of Text</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point. RFCs have added to this extension point in both an application-specific and a more general way.</t>
              <t>The present document defines a number of additional generally applicable control operators for text conversion (bytes, integers, printf-style formatting, and JSON) and for an operation on text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9741"/>
          <seriesInfo name="DOI" value="10.17487/RFC9741"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-cddl-modules">
          <front>
            <title>CDDL Module Structure</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Brendan Moran" initials="B." surname="Moran">
              <organization>Arm Limited</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   At the time of writing, the Concise Data Definition Language (CDDL)
   is defined by RFC 8610 and RFC 9682 as well as RFC 9165.  The latter
   has used the extension point provided in RFC 8610, the _control
   operator_.

   As CDDL is being used in larger projects, the need for features has
   become known that cannot be easily mapped into this single extension
   point.

   The present document defines a backward- and forward-compatible way
   to add a module structure to CDDL.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-cddl-modules-04"/>
        </reference>
        <reference anchor="I-D.bormann-cbor-rfc-cddl-models">
          <front>
            <title>CDDL models for some existing RFCs</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="29" month="August" year="2025"/>
            <abstract>
              <t>   A number of CBOR- and JSON-based protocols have been defined before
   CDDL was standardized or widely used.

   This short draft records some CDDL definitions for such protocols,
   which could become part of a library of CDDL definitions available
   for use in CDDL2 processors.  It focuses on CDDL in (almost)
   published IETF RFCs.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-rfc-cddl-models-06"/>
        </reference>
        <reference anchor="EXTRACT-RB" target="https://github.com/cabo/common-cddl/blob/main/extract.rb">
          <front>
            <title>extract.rb — extract CDDL from an enum-style IANA registry</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.bormann-cbor-draft-numbers">
          <front>
            <title>Managing CBOR codepoints in Internet-Drafts</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   CBOR-based protocols often make use of numbers allocated in a
   registry.  During development of the protocols, those numbers may not
   yet be available.  This impedes the generation of data models and
   examples that actually can be used by tools.

   This short draft proposes a common way to handle these situations,
   without any changes to existing tools.  Also, in conjunction with the
   application-oriented EDN literal e'', a further reduction in
   editorial processing of CBOR examples around the time of approval can
   be achieved.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-draft-numbers-06"/>
        </reference>
        <reference anchor="I-D.bormann-cbor-cddl-csv">
          <front>
            <title>Using CDDL for CSVs</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   The Concise Data Definition Language (CDDL), standardized in RFC
   8610, is defined to provide data models for data shaped like JSON or
   CBOR.

   Another representation format that is quote popular is the CSV
   (Comma-Separated Values) file as defined by RFC 4180.

   The present document shows a way how to use CDDL to provide a data
   model for CSV files.

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

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

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


   // (This cref will be removed by the RFC editor:) The present
   // revision -16 is intended as input to IETF 123, to address the
   // discussion about the use of simple values as reference items
   // during the 2025-06-11 CBOR interim meeting.  It contains a number
   // of editorial improvements as well as the new concept of an
   // integration tag; it is for discussion whether the latter should or
   // should not be added to Packed CBOR.  The wording of the present
   // revision continues to make use of the tunables A/B/C to be set to
   // specific numbers before completing the Packed CBOR specification;
   // not all the examples may fully align yet.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-packed-16"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-cde">
          <front>
            <title>CBOR Common Deterministic Encoding (CDE)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   CBOR (STD 94, RFC 8949) defines "Deterministically Encoded CBOR" in
   its Section 4.2, providing some flexibility for application specific
   decisions.  To facilitate Deterministic Encoding to be offered as a
   selectable feature of generic encoders, the present document
   documents the Best Current Practice for CBOR Common Deterministic
   Encoding (CDE), which can be shared by a large set of applications
   with potentially diverging detailed requirements.  It also defines
   the term "Basic Serialization", which stops short of the potentially
   more onerous requirements that make CDE fully deterministic, while
   employing most of its reductions of the variability needing to be
   handled by decoders.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-cde-12"/>
        </reference>
        <reference anchor="enum-literals" target="https://mailarchive.ietf.org/arch/msg/cbor/D8h_0Egog89GaRLFNwb1VfKlHI4">
          <front>
            <title>[Cbor] Getting diagnostic notation examples in drafts under control</title>
            <author>
              <organization/>
            </author>
            <date year="2024" month="February" day="26"/>
          </front>
        </reference>
        <reference anchor="useful" target="https://github.com/cbor-wg/cddl/wiki/Useful-CDDL">
          <front>
            <title>Useful CDDL</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="PSVI" target="https://www.w3.org/XML/2002/05/psvi-use-cases">
          <front>
            <title>Use Cases for XML Schema PSVI API</title>
            <author>
              <organization/>
            </author>
            <date year="2002" month="June" day="24"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 286?>

<section anchor="fridge">
      <name>Fridge</name>
      <t>This appendix contains sections that may not make it to a 2.0
milestone, but might be part of a followup.</t>
      <section anchor="tagolit">
        <name>Tag-oriented Literals</name>
        <dl spacing="compact">
          <dt><em>Proposal Status</em>:</dt>
          <dd>
            <t>rough idea, porting from EDN</t>
          </dd>
          <dt><em>Compatibility</em>:</dt>
          <dd>
            <t>backward (not forward)</t>
          </dd>
        </dl>
        <t>Some CBOR tags often would be most natural to use in a CDDL spec with a literal
syntax that is tailored to their semantics instead of the
serialization of their tag content in CBOR.
There is currently no way to add such syntaxes, no
defined extension point either.</t>
        <t>The specification
"CBOR Extended Diagnostic Notation (EDN): Application-Oriented Literals, ABNF, and Media Type"
<xref target="I-D.ietf-cbor-edn-literals"/> defines application-oriented
literals, e.g., of the form</t>
        <ul empty="true">
          <li>
            <t>dt'2019-07-21T19:53Z'</t>
          </li>
        </ul>
        <t>for datetime items.  With additional considerations for unambiguous
syntax, a similar literal form could be included in CDDL.</t>
        <t>This proposal opens a namespace for the prefix that indicates an
application specific literal.
A registry could be provided to turn this namespace into a genuine
extension point.
(This is currently the production <tt>bsqual</tt> in <xref section="B" sectionFormat="of" target="RFC8610"/>.)</t>
        <t>The syntax provided in <xref target="I-D.ietf-cbor-edn-literals"/> does not
enable the use of named CDDL rules — using it directly in CDDL would
have the same flaw that is being
fixed for tag numbers in <xref section="3.2" sectionFormat="of" target="RFC9682"/>.</t>
      </section>
      <section anchor="cross">
        <name>Cross-universe references</name>
        <t>Often, a CDDL specification needs to import from specifications in a
different language or platform.</t>
        <section anchor="iana-references">
          <name>IANA references</name>
          <t>In many cases, CDDL specifications make use of values that are
specified in IANA registries.  The proposed <tt>.iana</tt> control operator can be
used to reference such a set of values.</t>
          <t>The reference needs to be able to point to a draft, the registry of
which has not been established yet, as well as to an established IANA registry.</t>
          <t>An example of such a usage might be:</t>
          <sourcecode type="CDDL"><![CDATA[
cose-algorithm = int .iana ["cose", "algorithms", "value"]
]]></sourcecode>
          <t>Unfortunately, the vocabulary employed in IANA registries has not been
designed for machine references.  In this case, the potential values
would come from applying the XPath expression</t>
          <sourcecode type="xpath"><![CDATA[
//iana:registry[@id='algorithms']/iana:record/iana:value
]]></sourcecode>
          <t>to <tt>https://www.iana.org/assignments/cose/cose.xml</tt>, plus some
filtering on the records returned that only leaves actual allocations.
<xref section="3.1" sectionFormat="of" target="I-D.bormann-cbor-rfc-cddl-models"/> contains an example of a CDDL module that is
automatically generated from those assignments.
(The code for this extraction is available in the document source
repository of <xref target="I-D.bormann-cbor-rfc-cddl-models"/> as <xref target="EXTRACT-RB"/>.)</t>
          <t>Additional functionality may be needed for filtering with respect to other
columns of the registry record, e.g., <tt>&lt;capabilities&gt;</tt> in the case of
this example.</t>
        </section>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>TBD</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA6Va23Ybx3J976/oQA8ieTAgAV0sQccXiqRsJrKsJdGXdRyv
sDHTADoazMDTMwRhLmXlI/IBfsiXOH+SL8muqu6ZAUnZD/Fa5wgE+lJdtatq
V3UnSaKupvqRUrWrczvVXyitT05PX//x+2R0pE2R6Zndlvjnf//zv7TRWWXm
tV7nplBmNqss5rajVVamhVlhER6VzMpqZYoiSfEhSbMsTyaJ/JKb2vpaPdCT
o8nj5OhZMvlMqQ92uymrbKrPi9pWha2TUxqsUlNPtSvmpfJ1Zc0KA84uXqnN
Alu//O6d/rGsPrhioRdV2ayVurJFY6c4xcq4fKoHtPtXztbzUVktBvh+4epl
M5tqFmuzOBTJlFq7qf65LtOh9mWFneYen7Yr+ZCWq7VJa/6wskXtf1HKNPWy
rGirBP/TWs5+Yipf20K/lNPzL9h5qr8v3JWtvKv/579r/bKyWEZf/OOcB9DJ
LI75tvT13KRL/ejR0ePHR/xb6urtNEyQL8oM+5wmk2ePnjwP3zRFXWHU15Y2
3fKX62VZYNzfHj9PHk/GyWT8LHn66PlkzD9a0U5qZuVX9W+OdKOUKkjmGmLS
od69Onn2dHyEQVCQ/P18/PQJ/i6xWZmPlSKr9GacJ6eju0af42i/2Wqqw4cw
kEwio2xWJLmDzU3up7r/171DbQKTYBz9E8R6+mwyhf3NamWq8NVnj8etpJM7
67BgqzJrcostw4f7TlDN03awzWWsZcHOfrp4d3xykbx7OWWN1qZakAmXdb32
08NDgdkIeDkkLR8ScMqCFzuc5eXsEBYoDu11XQFXo2omi4gTdt+y24U/2dOg
xXIFv9SA+Srx9Ta3+vz4zbGu7MIBRtv7TiFehwkzAHCqw4dPWiz1V2J1+nRH
d/CDDxZuKv/eo1pLky1+YBFby96rJYKhqdIlEDSKTnpIXxyuPFwTCx6ePlv+
29HZolw8e/61eff61ZvNbPzD/F/yb84f93X2Bf+h9c8nmPQLPKGuKSpkziwK
eJVLdVHWgGoJ1V2b1RoGR1SRUOV1U2S2injhlTLEqGkIUJNk8hRfNt7Om/yv
zd0LLIcb98Edfs8TE7JfX2T5Woev377/4fz+tTebzWjziFXz07evDydHR5PD
oyeHa3/lEsiUpMYzejuhIfHR02Ty+NZuCE4YqeG0Ggvp9+kScYA31sdvzxEA
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

-->

</rfc>
