root/trunk/spec/binary.dbk

Revision 7, 4.8 KB (checked in by oren, 8 months ago)

April 06, 2008 draft.

Implemented by YamlReference? 0.9.

Contains new productions, new examples, all the changes collected throughout
the last 3 years, and of course JSON compatibility.

Line 
1<?xml version="1.0"?>
2<!DOCTYPE article
3  PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
4         "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
5
6<article>
7  <articleinfo>
8    <title>
9      Binary Data Language-Independent Type for
10      <trademark>YAML</trademark>&nbsp;Version&nbsp;1.1
11    </title>
12
13    <subtitle>
14      Working Draft 2005-01-18
15    </subtitle>
16
17    <authorgroup>
18      <author>
19        <firstname>Oren</firstname>
20        <surname>Ben-Kiki</surname>
21        <email>oren@ben-kiki.org</email>
22      </author>
23
24      <author>
25        <firstname>Clark</firstname>
26        <surname>Evans</surname>
27        <email>cce+yaml@clarkevans.com</email>
28      </author>
29
30      <author>
31        <firstname>Brian</firstname>
32        <surname>Ingerson</surname>
33        <email>ingy@ttul.org</email>
34      </author>
35    </authorgroup>
36
37    <copyright>
38      <year>2001-2005</year>
39      <holder>Oren Ben-Kiki<fo>,&nbsp;</fo></holder>
40      <holder>Clark Evans<fo>,&nbsp;</fo></holder>
41      <holder>Brian Ingerson</holder>
42    </copyright>
43
44    <legalnotice>
45      This document may be freely copied provided it is not modified.
46    </legalnotice>
47
48    <abstract>
49      <title>Status</title>
50
51      <para>
52       This specification is a draft reflecting consensus reached by members of
53       the <ulink
54       url="http://lists.sourceforge.net/lists/listinfo/yaml-core">yaml-core
55       mailing list</ulink>. Any questions regarding this draft should be
56       raised on this list.
57      </para>
58    </abstract>
59  </articleinfo>
60
61  <section>
62    <variablelist>
63      <varlistentry>
64        <term>
65          <para>
66            URI:
67          </para>
68        </term>
69
70        <listitem>
71          <para>
72            <userinput>tag:yaml.org,2002:binary</userinput>
73          </para>
74        </listitem>
75      </varlistentry>
76
77      <varlistentry>
78        <term>
79          <para>
80            Shorthand:
81          </para>
82        </term>
83
84        <listitem>
85          <para>
86            <userinput>!!binary</userinput>
87          </para>
88        </listitem>
89      </varlistentry>
90
91      <varlistentry>
92        <term>
93          <para>
94            Kind:
95          </para>
96        </term>
97
98        <listitem>
99          <para>
100            Scalar.
101          </para>
102        </listitem>
103      </varlistentry>
104
105      <varlistentry>
106        <term>
107          <para>
108            Canonical:
109          </para>
110        </term>
111
112        <listitem>
113          <para>
114            Base64 without white space and line breaks.
115          </para>
116        </listitem>
117      </varlistentry>
118
119      <varlistentry>
120        <term>
121          <para>
122            Regexp:
123          </para>
124        </term>
125
126        <listitem>
127          <para>
128            Base64 including white space and line breaks.
129          </para>
130        </listitem>
131      </varlistentry>
132
133      <varlistentry>
134        <term>
135          <para>
136            Definition:
137          </para>
138        </term>
139
140        <listitem>
141          <para>
142            A sequence of zero or more octets (8 bit values).
143          </para>
144
145          <para>
146            Binary data is serialized using the base64 format as defined by
147            <ulink url="http://www.ietf.org/rfc/rfc2045.txt">RFC2045</ulink>
148            (MIME), with the following notes:
149          </para>
150
151          <itemizedlist>
152            <listitem>
153              <para>
154                The content is not restricted to lines of 76 characters or
155                less.
156              </para>
157            </listitem>
158
159            <listitem>
160              <para>
161                Characters other than the base64 alphabet, line breaks and
162                white space are considered an error.
163              </para>
164            </listitem>
165          </itemizedlist>
166
167          <para>
168            Base64 is the recommended way to store opaque binary data in YAML
169            files. Note that many forms of binary data have internal structure
170            that may benefit from being represented as YAML nodes (e.g. the
171            Java serialization format).
172          </para>
173        </listitem>
174      </varlistentry>
175    </variablelist>
176
177    <example>
178      <title><userinput>!!binary</userinput> Examples</title>
179<programlisting>
180canonical: !!binary "\
181 R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5\
182 OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+\
183 +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC\
184 AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs="
185generic: !binary |
186 R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5
187 OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+
188 +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC
189 AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=
190description:
191 The binary value above is a tiny arrow encoded as a gif image.
192</programlisting>
193    </example>
194  </section>
195</article>
Note: See TracBrowser for help on using the browser.