root/trunk/spec/set.dbk

Revision 7, 4.0 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      Set 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:set</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>!!set</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            Mapping.
101          </para>
102        </listitem>
103      </varlistentry>
104
105      <varlistentry>
106        <term>
107          <para>
108            Definition:
109          </para>
110        </term>
111
112        <listitem>
113          <para>
114            Unordered set of non-equal values.
115          </para>
116
117          <para>
118            A set is an unordered collection of nodes such that no two nodes
119            are equal. While sets are a fundamental mathematical type, YAML
120            only supports them as the domains of a mapping. Hence the YAML
121            syntax for a set is a mapping with all-null values.
122          </para>
123
124          <para>
125            Most programming languages do not have a built-in native data type
126            for supporting sets. Such data types are usually provided by
127            libraries. If no such data type is available, an application may
128            resort to loading a <quote><userinput>!!set</userinput></quote>
129            into a native hash table where all values are null.
130          </para>
131
132          <para>
133            The <quote><userinput>!!set</userinput></quote> tag may be given
134            explicitly. Alternatively, the application may choose to implicitly
135            type mappings with all-null values to sets. In this case, an
136            explicit <quote><userinput>!!map</userinput></quote> transfer must
137            be given to mappings that have all-null values but do not represent
138            sets.
139          </para>
140        </listitem>
141      </varlistentry>
142    </variablelist>
143
144    <example>
145      <title><userinput>!!set</userinput> Examples</title>
146<programlisting>
147# Explicitly typed set.
148baseball players: !!set
149  ? Mark McGwire
150  ? Sammy Sosa
151  ? Ken Griffey
152# Flow style
153baseball teams: !!set { Boston Red Sox, Detroit Tigers, New York Yankees }
154</programlisting>
155    </example>
156  </section>
157</article>
Note: See TracBrowser for help on using the browser.