<?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.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rankin-ccsv-02" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.0 -->
  <front>
    <title abbrev="CCSV">Common Format and Media Type for Control-Character-Separated Values (CCSV) Files</title>
    <seriesInfo name="Internet-Draft" value="draft-rankin-ccsv-02"/>
    <author fullname="Mike Rankin">
      <organization/>
      <address>
        <email>mrankin@oldgrognard.pub</email>
      </address>
    </author>
    <date year="2024" month="September" day="16"/>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 36?>

<t>This document establishes the format used for Control-Character-Separated Values (CCSV) files and registers the associated MIME type "text/ccsv".</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://oldgrognard.github.io/ccsv-id/draft-rankin-ccsv.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-rankin-ccsv/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/oldgrognard/ccsv-id"/>.</t>
    </note>
  </front>
  <middle>
    <?line 41?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>A CCSV (Control-Character-Separated Values file) is a file format that enables moving data between spreadsheets, statistical analysis programs, databases, and any other program that works with rectangular data. It is very similar to (CSV) Comma-Separated Values files <xref target="RFC4180"/>, (TSV) Tab-Separated Values files, and their derivatives. Unlike those file types, the CCSV minimizes usage ambiguity by having non-printable characters as delimiters. The two delimiter characters may not appear in the document's text, making the practice of escaping certain characters or adding additional delimiters for certain strings unnecessary. This document seeks to define the format of Control Character Separated Values (CCSV) files and formally register the "text/ccsv" Media Type for CCSV in accordance with <xref target="RFC6838"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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 BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<section anchor="definition-of-the-ccsv-format">
        <name>Definition of the CCSV format</name>
        <t>In order for a file to be a CCSV, it <bcp14>MUST</bcp14> adhere to the following formatting rules:</t>
        <section anchor="formatting-rules">
          <name>Formatting Rules</name>
          <ol spacing="normal" type="1"><li>
              <t>The file <bcp14>MUST</bcp14> use UTF-8 encoding. Since US-ASCII is a subset of UTF-8, programs may create CCSV files with that encoding.  A consuming program may not be able to interpret all characters if it only works with US-ASCII and <bcp14>SHOULD</bcp14> work with UTF-8 if the source is unknown.</t>
            </li>
            <li>
              <t>The file <bcp14>MUST NOT</bcp14> begin with a Byte Order Mark (U+FEFF).</t>
            </li>
            <li>
              <t>A CCSV <bcp14>MUST</bcp14> begin with a header.  The header consists of the names of the columns separated with US (U+001F) entities.</t>
            </li>
            <li>
              <t>A Unit Separator US (U+001F) is used between each field in a record. Note that carriage returns and line feeds are not part of the delimiter and are valid characters in the body of a field.</t>
            </li>
            <li>
              <t>A Record Separator RS (U+001E) is used between each record in the file including the header.</t>
            </li>
            <li>
              <t>A Record Separator RS (U+001E) <bcp14>MAY</bcp14> appear as the last entity of the last record but is <bcp14>NOT RECOMMENDED</bcp14>.</t>
            </li>
            <li>
              <t>The header and each record, if any, <bcp14>MUST</bcp14> contain the same number of US (U+001F) entities.  Consequently, the header and every record will have the same number of fields.</t>
            </li>
            <li>
              <t>Empty fields are represented by consecutive delimiters.</t>
            </li>
            <li>
              <t>The US (U+001F) entity and the RS (U+001E) entity <bcp14>MUST NOT</bcp14> appear in the body of a field.</t>
            </li>
          </ol>
          <t>The ABNF grammar <xref target="STD68"/> appears as follows:</t>
          <artwork><![CDATA[
file = header RS *(record RS) [record]
header = name *( US name )
record = field *( US field )
name = field
field = *VCHAR
VCHAR = %x00-1D / %x20-D7FF / %xE000-10FFFF ; all characters except the designated delimiters and surrogates
RS = %x1E ; record separator
US = %x1F ; unit separator
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="encoding-considerations">
      <name>Encoding Considerations</name>
      <t>CCSV files <bcp14>MUST</bcp14> be encoded using UTF-8 <xref target="RFC3629"/>.</t>
      <t>Implementations <bcp14>MUST NOT</bcp14> add a byte order mark (U+FEFF) to the beginning of the file or networked-transmitted text.</t>
      <section anchor="why-utf-8">
        <name>Why UTF-8?</name>
        <section anchor="compatibility">
          <name>Compatibility</name>
          <t>UTF-8 is widely supported across different platforms, operating systems, and languages.  This ensures that CCSV files can be opened and read correctly regardless of the environment they are used in.</t>
        </section>
        <section anchor="internationalization">
          <name>Internationalization</name>
          <t>UTF-8 supports a vast range of characters from various languages, including those that use non-Latin scripts. This is crucial for data that might include international names, addresses, or other text in multiple languages, ensuring that all characters are preserved and displayed correctly.</t>
        </section>
        <section anchor="efficiency">
          <name>Efficiency</name>
          <t>UTF-8 is a variable-width encoding scheme that uses 1 to 4 bytes for each character. It is efficient for encoding text that is primarily in English, as it uses only one byte for the most common characters, but can still accommodate characters from other languages when needed.</t>
        </section>
        <section anchor="standardization">
          <name>Standardization</name>
          <t>By requiring UTF-8, the CCSV format ensures a standard way of encoding text, which simplifies processing, parsing, and exchanging files. It helps in avoiding the complexities and potential errors that can arise from dealing with multiple encodings.</t>
        </section>
        <section anchor="future-proofing">
          <name>Future-Proofing</name>
          <t>As the internet and technologies continue to evolve, UTF-8 remains a robust and forward-compatible choice, ensuring that CCSV files remain accessible and usable in the long term</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>CCSV files alone are considered relatively harmless as there is no additional prescribed processing. However, the file may be parsed and further processed by the recipient. To the extent that a receiving application executes arbitrary system level commands from strings contained in a CCSV file, they may be at risk.</t>
    </section>
    <section anchor="interoperability-considerations">
      <name>Interoperability Considerations</name>
      <t>Adherence to the Formatting Rules <xref target="formatting-rules"/> and the Encoding Considerations <xref target="encoding-considerations"/> ensures a high level of interoperability.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This section provides the media-type registration application (as per <xref target="RFC6838"/>).</t>
      <t>Type name: text</t>
      <t>Subtype name: ccsv</t>
      <t>Required parameters: N/A</t>
      <t>Optional parameters: N/A</t>
      <t>Encoding considerations: See <xref target="encoding-considerations"/></t>
      <t>Security considerations: See <xref target="security-considerations"/></t>
      <t>Interoperability considerations: See <xref target="interoperability-considerations"/></t>
      <t>Published specification: TBD</t>
      <t>Applications that use this media type:</t>
      <artwork><![CDATA[
    Databases, spreadsheets, statistical programs, and data conversion utilities
]]></artwork>
      <t>Fragment identifier considerations: N/A</t>
      <t>Additional information:</t>
      <artwork><![CDATA[
    Deprecated alias names for this type: N/A
    Magic number(s): N/A
    File extension(s): CCSV
    Macintosh file type code(s): TEXT
]]></artwork>
      <t>Person &amp; email address to contact for further information:</t>
      <artwork><![CDATA[
    Mike Rankin
    2108 Independence Dr
    Chambersburg, PA  17201
    USA

    mrankin@icf.com
]]></artwork>
      <t>Intended usage: COMMON</t>
      <t>Restrictions on usage: N/A</t>
      <t>Author/Change controller: Mike Rankin</t>
      <t>Provisional registration?</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <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>
      <reference anchor="RFC6838">
        <front>
          <title>Media Type Specifications and Registration Procedures</title>
          <author fullname="N. Freed" initials="N." surname="Freed"/>
          <author fullname="J. Klensin" initials="J." surname="Klensin"/>
          <author fullname="T. Hansen" initials="T." surname="Hansen"/>
          <date month="January" year="2013"/>
          <abstract>
            <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="13"/>
        <seriesInfo name="RFC" value="6838"/>
        <seriesInfo name="DOI" value="10.17487/RFC6838"/>
      </reference>
      <reference anchor="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">
        <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 anchor="STD68" target="https://www.rfc-editor.org/info/std68">
        <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
      </referencegroup>
      <reference anchor="RFC3629">
        <front>
          <title>UTF-8, a transformation format of ISO 10646</title>
          <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
          <date month="November" year="2003"/>
          <abstract>
            <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="63"/>
        <seriesInfo name="RFC" value="3629"/>
        <seriesInfo name="DOI" value="10.17487/RFC3629"/>
      </reference>
    </references>
    <?line 184?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA5VZ7XLbxhX9v0+xpaeNlZKU6HgShY3j0BIZa8aSXJFKmsnk
xxJYkjsCsMguQJnJuM/SZ+mT9dy7CxCU5KbVaCRgP+89e+7XYjAYiMpUmR7L
3pnNc1vImXW5qqQqUnmpU6PkYldqubJOntmicjYbnG2UU0ml3WCuSzxWOpU/
qKzWXj4/O5v/cCRnJtO+J9Ry6fSWlkZrTyQYubZuN5amWFkhUpsUKsfWqVOr
auBUcWeKQZL47eDkhfD1MjfeG2wKAcbyYrqYSflMqsxbLGmKVJcaf4qq15c9
SFpZZ1RGLxeTN/gHiXsXN4tZTxR1vtRuLFIIMBaJLbwufO3HsnK1FhDwC4F1
nVZjObmZTvByb93d2tm6HMsfv5c/4s0Ua/k9tYg7vUN3OhZyIAv9oZJrXWig
AEmpqS5MYh0/eqBzl9HM1PjKmWVNUGU6XWsntrqoIc0zKduN6CUoe7gjmnNl
Mhrynf6g8jLTw8Tm1K5cshnLTVWVfnx83Ok8xnJY2lSbegm4bJZim3WhXHrM
CJu0h/4MiPgK/c0KnXHDMHlobDPj+NFBDTdVnvWEUHW1sY4gwaJSruosC0fb
uzR3Wt7wjB736aBKLw/LfNfdsayXWKxgBpot0BHElP2bGAwGUi2BJfgnxGJj
vASL6hwskFBELTPjN+BhtWHKEpFrD8z/P/quiL5sAU6vcXLahRWV9zYxPOHy
4nLKZyV7FTjACPWGUcLcpGmmBc7ngrZM64TJISaS1scufywJiXAkoZ7ix0aZ
aoM/uoCeGJPbLXNLVUoudXWvdQHKgcYpMNCV70sgUkF+k6gM6qhs57FiCbSd
ytFNM5fKazySsqrYSQs9XTMkbEe24OU9yAA4kkoV6zpTjicP5UVFQm6120lv
ckMdlYWGBCM5FPW0al7+/vufbmZnL0enJx8/9uXzBU1YqOUnhgcBIZvBxtqZ
LTPCD+VtkRHBwD6vA1J0KBhP58Vo56aAYL9hpdqrNQ4xX5p1baqdXO7kRjGE
hS0GpTMFEUjLpDkWoA9+6Qzz6W0oF1i0urf7tu7YXO2wEDxnWWrAYAqWoaHn
Z6AQiNLHMLZs6itpqkm0tCuwN1EldSTaVQqTOyuDvCpNqZP+EZdwnnu5mN3N
NPIzxRrKFoVOtPfK7UjurqF4rXGgFamxMoXuGgsEieSULTnlH5sJz86yXWsv
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
f9IbAAA=

-->

</rfc>
