<?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.6.10 (Ruby 3.0.4) -->
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-httpapi-yaml-mediatypes-01" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.7 -->
  <front>
    <title>YAML Media Type</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-yaml-mediatypes-01"/>
    <author initials="R." surname="Polli" fullname="Roberto Polli">
      <organization>Digital Transformation Department, Italian Government</organization>
      <address>
        <postal>
          <country>Italy</country>
        </postal>
        <email>robipolli@gmail.com</email>
      </address>
    </author>
    <author initials="E." surname="Wilde" fullname="Erik Wilde">
      <organization>Axway</organization>
      <address>
        <postal>
          <country>Switzerland</country>
        </postal>
        <email>erik.wilde@dret.net</email>
      </address>
    </author>
    <author initials="E." surname="Aro" fullname="Eemeli Aro">
      <organization>Mozilla</organization>
      <address>
        <postal>
          <country>Finland</country>
        </postal>
        <email>eemeli@gmail.com</email>
      </address>
    </author>
    <date year="2022" month="May" day="27"/>
    <area>Applications and Real-Time</area>
    <workgroup>HTTPAPI</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document registers
the application/yaml media type
and the +yaml structured syntax suffix
on the IANA Media Types registry.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      <t><em>RFC EDITOR: please remove this section before publication</em></t>
      <t>Discussion of this draft takes place on the HTTP APIs working group
mailing list (httpapi@ietf.org), which is archived at
<eref target="https://mailarchive.ietf.org/arch/browse/httpapi/">https://mailarchive.ietf.org/arch/browse/httpapi/</eref>.</t>
      <t>The source code and issues list for this draft can be found at
<eref target="https://github.com/ietf-wg-httpapi/mediatypes">https://github.com/ietf-wg-httpapi/mediatypes</eref>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>YAML <xref target="YAML"/> is a data serialization format that is widely used on the Internet,
including in the API sector (e.g. see <xref target="oas"/>),
but the relevant media type and structured syntax suffix previously had not been registered by IANA.</t>
      <t>To increase interoperability when exchanging YAML data
and leverage content negotiation mechanisms when exchanging
YAML resources,
this specification
registers the <tt>application/yaml</tt> media type
and the <tt>+yaml</tt> structured syntax suffix.</t>
      <t>Moreover, it provides security considerations
and interoperability considerations related to <xref target="YAML"/>,
including its relation with <xref target="JSON"/>.</t>
      <section anchor="notational-conventions">
        <name>Notational Conventions</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" 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.
These words may also appear in this document in
lower case as plain English words, absent their normative meanings.</t>
        <t>This document uses the Augmented BNF defined in <xref target="RFC5234"/> and updated
by <xref target="RFC7405"/>.</t>
        <t>The terms  "content", "content negotiation", "resource",
and "user agent"
in this document are to be interpreted as in <xref target="SEMANTICS"/>.</t>
        <t>The terms "fragment" and "fragment identifier"
in this document are to be interpreted as in <xref target="URI"/>.</t>
        <t>The terms "node", "anchor" and "named anchor"
in this document are to be intepreded as in <xref target="YAML"/>.</t>
      </section>
      <section anchor="application-yaml-fragment">
        <name>Fragment identification</name>
        <t>This section describes how to use
named anchors (see Section 3.2.2.2 of <xref target="YAML"/>)
as fragment identifiers to designate nodes.</t>
        <t>A YAML named anchor can be represented in a URI fragment identifier
by encoding it into octects using UTF-8 <xref target="UTF-8"/>,
while percent-encoding those characters not allowed by the fragment rule
in <xref section="3.5" sectionFormat="of" target="URI"/>.</t>
        <t>If multiple nodes would match a fragment identifier,
the first such match is selected.</t>
        <t>Users concerned with interoperability of fragment identifiers:</t>
        <ul spacing="normal">
          <li>SHOULD limit named anchors to a set of characters
that do not require encoding
to be expressed as URI fragment identifiers:
this is always possible since named anchors are a serialization
detail;</li>
          <li>SHOULD NOT use a named anchor that matches multiple nodes.</li>
        </ul>
        <t>In the example resource below, the URL <tt>file.yaml#foo</tt>
references the anchor <tt>foo</tt> pointing to the node with value <tt>scalar</tt>;
whereas
the URL <tt>file.yaml#bar</tt> references the anchor <tt>bar</tt> pointing to the node
with value <tt>[ some, sequence, items ]</tt>.</t>
        <sourcecode type="example"><![CDATA[
 %YAML 1.2
 ---
 one: &foo scalar
 two: &bar
   - some
   - sequence
   - items
]]></sourcecode>
      </section>
    </section>
    <section anchor="media-type-and-structured-syntax-suffix-registrations">
      <name>Media Type and Structured Syntax Suffix registrations</name>
      <t>This section describes the information required to register
the above media type according to <xref target="MEDIATYPE"/></t>
      <section anchor="application-yaml">
        <name>Media Type application/yaml</name>
        <t>The media type for YAML text is <tt>application/yaml</tt>;
the following information serves as the registration form for this media type.</t>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>yaml</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>None</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>None; unrecognized parameters should be ignored</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>see <xref target="security-considerations"/> of this document</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>see <xref target="interoperability-considerations"/> of this document</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t><xref target="YAML"/></t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>HTTP</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>see <xref target="application-yaml-fragment"/></t>
          </dd>
        </dl>
        <t>Additional information:</t>
        <ul spacing="normal">
          <li>Deprecated alias names for this type:  application/x-yaml, text/yaml, text/x-yaml</li>
          <li>Magic number(s)  n/a</li>
          <li>File extension(s):  yaml, yml</li>
          <li>Macintosh file type code(s):  n/a</li>
        </ul>
        <dl>
          <dt>Person and email address to contact for further information:</dt>
          <dd>
            <t>See Authors' Addresses section.</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>None.</t>
          </dd>
          <dt>Author:</dt>
          <dd>
            <t>See Authors' Addresses section.</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>n/a</t>
          </dd>
        </dl>
      </section>
      <section anchor="suffix-yaml">
        <name>The +yaml Structured Syntax Suffix</name>
        <t>The suffix
<tt>+yaml</tt> MAY be used with any media type whose representation follows
that established for <tt>application/yaml</tt>.
The media type structured syntax suffix registration form follows.
See <xref target="MEDIATYPE"/> for definitions of each of the registration form headings.</t>
        <dl>
          <dt>Name:</dt>
          <dd>
            <t>YAML Ain't Markup Language (YAML)</t>
          </dd>
          <dt>+suffix:</dt>
          <dd>
            <t>+yaml</t>
          </dd>
          <dt>References:</dt>
          <dd>
            <t><xref target="YAML"/></t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>see <xref target="application-yaml"/></t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>Differently from <tt>application/yaml</tt>,
there is no fragment identification syntax defined
for +yaml.
</t>
            <t>A specific <tt>xxx/yyy+yaml</tt> media type
needs to define the syntax and semantics for fragment identifiers
because the ones in <xref target="application-yaml"/>
do not apply unless explicitly expressed.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>See <xref target="application-yaml"/></t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>See <xref target="application-yaml"/></t>
          </dd>
          <dt>Contact:</dt>
          <dd>
            <t>See Authors' Addresses section.</t>
          </dd>
          <dt>Author:</dt>
          <dd>
            <t>See Authors' Addresses section</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>n/a</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="interoperability-considerations">
      <name>Interoperability Considerations</name>
      <section anchor="int-yaml-evolving">
        <name>YAML is an Evolving Language</name>
        <t>YAML is an evolving language and, over time,
some features have been added and others removed.</t>
        <t>While this document is based on a given YAML version <xref target="YAML"/>,
the media type registration does not imply a specific version.
This allows content negotiation of version-independent YAML resources.</t>
        <t>Implementers concerned about features related to a specific YAML version
can specify it in documents using the <tt>%YAML</tt> directive
(see Section 6.8.1 of <xref target="YAML"/>).</t>
      </section>
      <section anchor="int-yaml-and-json">
        <name>YAML and JSON</name>
        <t>When using flow collection styles (see Section 7.4 of <xref target="YAML"/>)
a YAML document could look like JSON <xref target="JSON"/>,
thus similar interoperability considerations apply.</t>
        <t>When using YAML as a more efficient format
to serialize information intented to be consumed as JSON,
information can be discarded:
this includes comments (see Section 3.2.3.3 of <xref target="YAML"/>)
and alias nodes (see Section 7.1 of <xref target="YAML"/>),
that do not have a JSON counterpart.</t>
        <figure anchor="example-json-discards-information">
          <name>JSON replaces alias nodes with static values.</name>
          <sourcecode type="example"><![CDATA[
# This comment will be lost
# when serializing in JSON.
Title:
  type: string
  maxLength: &text_limit 64

Name:
  type: string
  maxLength: *text_limit  # Replaced by the value 64.
]]></sourcecode>
        </figure>
        <t>Implementers need to ensure that relevant
information will not be lost during the processing.
For example, they might consider acceptable
that alias nodes are replaced by static values.</t>
        <t>In some cases an implementer may want to
define a list of allowed YAML features,
taking into account that the following ones
might have interoperability
issues with JSON:</t>
        <ul spacing="normal">
          <li>non UTF-8 encoding, since YAML supports UTF-16 and UTF-32 in addition to UTF-8;</li>
          <li>mapping keys that are not strings;</li>
          <li>circular references represented using anchor (see <xref target="sec-yaml-exhaustion"/>
and <xref target="example-yaml-cyclic"/>);</li>
          <li>
            <tt>.inf</tt> and <tt>.nan</tt> float values, since JSON does not support them;</li>
          <li>non-JSON types,
including the ones associated with tags like <tt>!!timestamp</tt>
that were included in the default schema of older YAML versions;</li>
          <li>tags in general, and specifically the ones that do not map
to JSON types like
custom and local tags such as <tt>!!python/object</tt> and
<tt>!mytag</tt> (see Section 2.4 of <xref target="YAML"/>);</li>
        </ul>
        <figure anchor="example-unsupported-keys">
          <name>Example of mapping keys not supported in JSON</name>
          <sourcecode type="example"><![CDATA[
non-json-keys:
  2020-01-01: a timestamp
  [0, 1]: a sequence
  ? {k: v}
  : a map
non-json-value: 2020-01-01
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Security requirements for both media type and media type suffix
registrations are discussed in Section 4.6 of <xref target="MEDIATYPE"/>.</t>
      <section anchor="sec-yaml-code-execution">
        <name>Arbitrary Code Execution</name>
        <t>Care should be used when using YAML tags,
because their resolution might trigger unexpected code execution.</t>
        <t>Code execution in deserializers should be disabled by default,
and only be enabled explicitly.
In those cases, the implementation should ensure - for example, via specific functions -
that the code execution results in strictly bounded time/memory limits.</t>
        <t>Many implementations provide safe deserializers addressing these issues.</t>
      </section>
      <section anchor="sec-yaml-exhaustion">
        <name>Resource Exhaustion</name>
        <t>YAML documents are rooted, connected, directed graphs
and can contain reference cycles,
so they can't be treated as simple trees (see Section 3.2.1 of <xref target="YAML"/>).
An implementation that attempts to do that
can infinite-loop at some point (e.g. when trying to serialize a YAML document in JSON).</t>
        <figure anchor="example-yaml-cyclic">
          <name>A cyclic document</name>
          <sourcecode type="yaml"><![CDATA[
x: &x
  y: *x
]]></sourcecode>
        </figure>
        <t>Even if a document is not cyclic, treating it as a simple tree could lead to improper behaviors
(such as the "billion laughs" problem).</t>
        <figure anchor="example-yaml-1e9lol">
          <name>A billion laughs document</name>
          <sourcecode type="yaml"><![CDATA[
x1: &a1 ["a", "a"]
x2: &a2 [*a1, *a1]
x3: &a3 [*a2, *a2]
]]></sourcecode>
        </figure>
        <t>This can be addressed using processors limiting the anchor recursion depth
and validating the input before processing it;
even in these cases it is important
to carefully test the implementation you are going to use.
The same considerations apply when serializing a YAML representation graph
in a format that does not support reference cycles (see <xref target="int-yaml-and-json"/>).</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This specification defines the following new Internet media type <xref target="MEDIATYPE"/>.</t>
      <t>IANA has updated the "Media Types" registry at <eref target="https://www.iana.org/assignments/media-types">https://www.iana.org/assignments/media-types</eref>
with the registration information provided below.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Media Type</th>
            <th align="left">Section</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">application/yaml</td>
            <td align="left">
              <xref target="application-yaml"/> of this document</td>
          </tr>
        </tbody>
      </table>
      <t>IANA has updated the "Structured Syntax Suffixes" registry at <eref target="https://www.iana.org/assignments/media-type-structured-suffix">https://www.iana.org/assignments/media-type-structured-suffix</eref>
with the registration information provided below.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Suffix</th>
            <th align="left">Section</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">+yaml</td>
            <td align="left">
              <xref target="suffix-yaml"/> of this document</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="YAML" target="https://yaml.org/spec/1.2.2/">
        <front>
          <title>YAML Ain't Markup Language Version 1.2</title>
          <author initials="" surname="Oren Ben-Kiki">
            <organization/>
          </author>
          <author initials="" surname="Clark Evans">
            <organization/>
          </author>
          <author initials="" surname="Ingy dot Net">
            <organization/>
          </author>
          <author initials="" surname="Tina Müller">
            <organization/>
          </author>
          <author initials="" surname="Pantelis Antoniou">
            <organization/>
          </author>
          <author initials="" surname="Eemeli Aro">
            <organization/>
          </author>
          <author initials="" surname="Thomas Smith">
            <organization/>
          </author>
          <date year="2021" month="October" day="01"/>
        </front>
      </reference>
      <reference anchor="oas">
        <front>
          <title>OpenAPI Specification 3.0.0</title>
          <author initials="" surname="Darrel Miller">
            <organization/>
          </author>
          <author initials="" surname="Jeremy Whitlock">
            <organization/>
          </author>
          <author initials="" surname="Marsh Gardiner">
            <organization/>
          </author>
          <author initials="" surname="Mike Ralphson">
            <organization/>
          </author>
          <author initials="" surname="Ron Ratovsky">
            <organization/>
          </author>
          <author initials="" surname="Uri Sarid">
            <organization/>
          </author>
          <date year="2017" month="July" day="26"/>
        </front>
      </reference>
      <reference anchor="JSON">
        <front>
          <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
          <author fullname="T. Bray" initials="T." role="editor" surname="Bray">
            <organization/>
          </author>
          <date month="December" year="2017"/>
          <abstract>
            <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format.  It was derived from the ECMAScript Programming Language Standard.  JSON defines a small set of formatting rules for the portable representation of structured data.</t>
            <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="90"/>
        <seriesInfo name="RFC" value="8259"/>
        <seriesInfo name="DOI" value="10.17487/RFC8259"/>
      </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">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <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>
      <reference anchor="RFC5234">
        <front>
          <title>Augmented BNF for Syntax Specifications: ABNF</title>
          <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker">
            <organization/>
          </author>
          <author fullname="P. Overell" initials="P." surname="Overell">
            <organization/>
          </author>
          <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>
      <reference anchor="RFC7405">
        <front>
          <title>Case-Sensitive String Support in ABNF</title>
          <author fullname="P. Kyzivat" initials="P." surname="Kyzivat">
            <organization/>
          </author>
          <date month="December" year="2014"/>
          <abstract>
            <t>This document extends the base definition of ABNF (Augmented Backus-Naur Form) to include a way to specify US-ASCII string literals that are matched in a case-sensitive manner.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7405"/>
        <seriesInfo name="DOI" value="10.17487/RFC7405"/>
      </reference>
      <reference anchor="SEMANTICS">
        <front>
          <title>HTTP Semantics</title>
          <author fullname="Roy T. Fielding">
            <organization>Adobe</organization>
          </author>
          <author fullname="Mark Nottingham">
            <organization>Fastly</organization>
          </author>
          <author fullname="Julian Reschke">
            <organization>greenbytes GmbH</organization>
          </author>
          <date day="12" month="September" year="2021"/>
          <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.

   This document updates RFC 3864 and obsoletes RFC 2818, RFC 7231, RFC
   7232, RFC 7233, RFC 7235, RFC 7538, RFC 7615, RFC 7694, and portions
   of RFC 7230.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-semantics-19"/>
      </reference>
      <reference anchor="URI">
        <front>
          <title>Uniform Resource Identifier (URI): Generic Syntax</title>
          <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee">
            <organization/>
          </author>
          <author fullname="R. Fielding" initials="R." surname="Fielding">
            <organization/>
          </author>
          <author fullname="L. Masinter" initials="L." surname="Masinter">
            <organization/>
          </author>
          <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>
      <reference anchor="UTF-8">
        <front>
          <title>UTF-8, a transformation format of ISO 10646</title>
          <author fullname="F. Yergeau" initials="F." surname="Yergeau">
            <organization/>
          </author>
          <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>
      <reference anchor="MEDIATYPE">
        <front>
          <title>Media Type Specifications and Registration Procedures</title>
          <author fullname="N. Freed" initials="N." surname="Freed">
            <organization/>
          </author>
          <author fullname="J. Klensin" initials="J." surname="Klensin">
            <organization/>
          </author>
          <author fullname="T. Hansen" initials="T." surname="Hansen">
            <organization/>
          </author>
          <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>
    </references>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Erik Wilde and David Biesack for being the initial contributors of this specification,
and to Darrel Miller and Rich Salz for their support during the adoption phase.</t>
      <t>In addition to the people above, this document owes a lot to the extensive discussion inside
and outside the HTTPAPI workgroup.
The following contributors have helped improve this specification by
opening pull requests, reporting bugs, asking smart questions,
drafting or reviewing text, and evaluating open issues:</t>
      <t>Tina (tinita) Mueller,
Ben Hutton,
Manu Sporny
and Jason Desrosiers.</t>
    </section>
    <section numbered="false" anchor="faq">
      <name>FAQ</name>
      <dl>
        <dt>Q: Why this document?</dt>
        <dd>
          <t>After all these years, we still lack a proper media-type for YAML.
This has some security implications too
(eg. wrt on identifying parsers or treat downloads)</t>
        </dd>
      </dl>
    </section>
    <section numbered="false" anchor="change-log">
      <name>Change Log</name>
      <t>RFC EDITOR PLEASE DELETE THIS SECTION.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
