metanorma-cli 1.5.24 → 1.6.0.pre

Sign up to get free protection for your applications and to get access to all the features.
data/exe/rfc6350.adoc DELETED
@@ -1,3505 +0,0 @@
1
- = vCard Format Specification
2
- Simon Perreault <simon.perreault@viagenie.ca>
3
- :bibliography-database: rfc6350_refs.xml
4
- :bibliography-passthrough: true
5
- :bibliography-prepend-empty: false
6
- :bibliography-hyperlinks: false
7
- :bibliography-style: rfc-v2
8
- :doctype: rfc
9
- :abbrev: vCard
10
- :obsoletes: 2425, 2426, 4770
11
- :updates: 2739
12
- :name: 6350
13
- :revdate: 2011-08
14
- :submission-type: IETF
15
- :status: standard
16
- :intended-series: full-standard 6350
17
- :fullname: Simon Perreault
18
- :lastname: Perreault
19
- :forename_initials: S.
20
- :organization: Viagenie
21
- :email: simon.perreault@viagenie.ca
22
- :street: 2875 Laurier, suite D2-630
23
- :region: Quebec, QC
24
- :code: G1V 2M2
25
- :country: Canada
26
- :phone: +1 418 656 9254
27
- :uri: http://www.viagenie.ca
28
- :link: urn:issn:2070-1721 item
29
- :rfcedstyle: yes
30
- :ipr: pre5378Trust200902
31
- :inline-definition-lists: true
32
- :comments: yes
33
-
34
- This document defines the vCard data format for representing and
35
- exchanging a variety of information about individuals and other
36
- entities (e.g., formatted and structured name and delivery addresses,
37
- email address, multiple telephone numbers, photograph, logo, audio
38
- clips, etc.). This document obsoletes RFCs 2425, 2426, and 4770, and
39
- updates RFC 2739.
40
-
41
-
42
- [[section1]]
43
- == Introduction
44
-
45
- Electronic address books have become ubiquitous. Their increased
46
- presence on portable, connected devices as well as the diversity of
47
- platforms that exchange contact data call for a standard. This memo
48
- defines the vCard format, which allows the capture and exchange of
49
- information normally stored within an address book or directory
50
- application.
51
-
52
- A high-level overview of the differences from RFCs 2425 and 2426 can
53
- be found in <<appendixA>>.
54
-
55
- [[section2]]
56
- == Conventions
57
-
58
- The key words "[bcp14]#MUST#", "[bcp14]#MUST NOT#", "[bcp14]#REQUIRED#", "[bcp14]#SHALL#", "[bcp14]#SHALL NOT#",
59
- "[bcp14]#SHOULD#", "[bcp14]#SHOULD NOT#", "[bcp14]#RECOMMENDED#", "[bcp14]#NOT RECOMMENDED#", "[bcp14]#MAY#", and
60
- "[bcp14]#OPTIONAL#" in this document are to be interpreted as described in
61
- cite:norm[RFC2119].
62
-
63
- [[section3]]
64
- == vCard Format Specification
65
-
66
- The text/vcard MIME content type (hereafter known as "vCard"; see
67
- <<section10_1>>) contains contact information, typically pertaining to a
68
- single contact or group of contacts. The content consists of one or
69
- more lines in the format given below.
70
-
71
- [[section3_1]]
72
- === Charset
73
-
74
- The charset (see cite:info[RFC3536] for internationalization terminology) for
75
- vCard is UTF-8 as defined in cite:norm[RFC3629]. There is no way to override
76
- this. It is invalid to specify a value other than "UTF-8" in the
77
- "charset" MIME parameter (see <<section10_1>>).
78
-
79
- [[section3_2]]
80
- === Line Delimiting and Folding
81
-
82
- Individual lines within vCard are delimited by the cite:norm[RFC5322] line
83
- break, which is a CRLF sequence (U+000D followed by U+000A). Long
84
- logical lines of text can be split into a multiple-physical-line
85
- representation using the following folding technique. Content lines
86
- [bcp14]#SHOULD# be folded to a maximum width of 75 octets, excluding the line
87
- break. Multi-octet characters [bcp14]#MUST# remain contiguous. The rationale
88
- for this folding process can be found in cite:norm[RFC5322, suffix=", Section 2.1.1"].
89
-
90
- A logical line [bcp14]#MAY# be continued on the next physical line anywhere
91
- between two characters by inserting a CRLF immediately followed by a
92
- single white space character (space (U+0020) or horizontal tab
93
- (U+0009)). The folded line [bcp14]#MUST# contain at least one character. Any
94
- sequence of CRLF followed immediately by a single white space
95
- character is ignored (removed) when processing the content type. For
96
- example, the line:
97
-
98
- ....
99
- NOTE:This is a long description that exists on a long line.
100
- ....
101
-
102
- can be represented as:
103
-
104
- ....
105
- NOTE:This is a long description
106
- that exists on a long line.
107
- ....
108
-
109
- It could also be represented as:
110
-
111
- ....
112
- NOTE:This is a long descrip
113
- tion that exists o
114
- n a long line.
115
- ....
116
-
117
- The process of moving from this folded multiple-line representation
118
- of a property definition to its single-line representation is called
119
- unfolding. Unfolding is accomplished by regarding CRLF immediately
120
- followed by a white space character (namely, HTAB (U+0009) or SPACE
121
- (U+0020)) as equivalent to no characters at all (i.e., the CRLF and
122
- single white space character are removed).
123
-
124
- Note: It is possible for very simple implementations to generate
125
- improperly folded lines in the middle of a UTF-8 multi-octet
126
- sequence. For this reason, implementations [bcp14]#SHOULD# unfold lines in
127
- such a way as to properly restore the original sequence.
128
-
129
- Note: Unfolding is done differently than in cite:norm[RFC5322]. Unfolding
130
- in cite:norm[RFC5322] only removes the CRLF, not the space following it.
131
-
132
- Folding is done after any content encoding of a type value.
133
- Unfolding is done before any decoding of a type value in a content
134
- line.
135
-
136
- [[section3_3]]
137
- === ABNF Format Definition
138
-
139
- The following ABNF uses the notation of cite:norm[RFC5234], which also defines
140
- CRLF, WSP, DQUOTE, VCHAR, ALPHA, and DIGIT.
141
-
142
- [source,abnf]
143
- ----
144
- vcard-entity = 1*vcard
145
-
146
- vcard = "BEGIN:VCARD" CRLF
147
- "VERSION:4.0" CRLF
148
- 1*contentline
149
- "END:VCARD" CRLF
150
- ; A vCard object MUST include the VERSION and FN properties.
151
- ; VERSION MUST come immediately after BEGIN:VCARD.
152
-
153
- contentline = [group "."] name *(";" param) ":" value CRLF
154
- ; When parsing a content line, folded lines must first
155
- ; be unfolded according to the unfolding procedure
156
- ; described in Section 3.2.
157
- ; When generating a content line, lines longer than 75
158
- ; characters SHOULD be folded according to the folding
159
- ; procedure described in Section 3.2.
160
-
161
- group = 1*(ALPHA / DIGIT / "-")
162
- name = "SOURCE" / "KIND" / "FN" / "N" / "NICKNAME"
163
- / "PHOTO" / "BDAY" / "ANNIVERSARY" / "GENDER" / "ADR" / "TEL"
164
- / "EMAIL" / "IMPP" / "LANG" / "TZ" / "GEO" / "TITLE" / "ROLE"
165
- / "LOGO" / "ORG" / "MEMBER" / "RELATED" / "CATEGORIES"
166
- / "NOTE" / "PRODID" / "REV" / "SOUND" / "UID" / "CLIENTPIDMAP"
167
- / "URL" / "KEY" / "FBURL" / "CALADRURI" / "CALURI" / "XML"
168
- / iana-token / x-name
169
- ; Parsing of the param and value is based on the "name" as
170
- ; defined in ABNF sections below.
171
- ; Group and name are case-insensitive.
172
-
173
- iana-token = 1*(ALPHA / DIGIT / "-")
174
- ; identifier registered with IANA
175
-
176
- x-name = "x-" 1*(ALPHA / DIGIT / "-")
177
- ; Names that begin with "x-" or "X-" are
178
- ; reserved for experimental use, not intended for released
179
- ; products, or for use in bilateral agreements.
180
-
181
- param = language-param / value-param / pref-param / pid-param
182
- / type-param / geo-parameter / tz-parameter / sort-as-param
183
- / calscale-param / any-param
184
- ; Allowed parameters depend on property name.
185
-
186
- param-value = *SAFE-CHAR / DQUOTE *QSAFE-CHAR DQUOTE
187
-
188
- any-param = (iana-token / x-name) "=" param-value *("," param-value)
189
-
190
- NON-ASCII = UTF8-2 / UTF8-3 / UTF8-4
191
- ; UTF8-{2,3,4} are defined in [RFC3629]
192
-
193
- QSAFE-CHAR = WSP / "!" / %x23-7E / NON-ASCII
194
- ; Any character except CTLs, DQUOTE
195
-
196
- SAFE-CHAR = WSP / "!" / %x23-39 / %x3C-7E / NON-ASCII
197
- ; Any character except CTLs, DQUOTE, ";", ":"
198
-
199
- VALUE-CHAR = WSP / VCHAR / NON-ASCII
200
- ; Any textual character
201
- ----
202
-
203
- A line that begins with a white space character is a continuation of
204
- the previous line, as described in <<section3_2>>. The white space
205
- character and immediately preceeding CRLF should be discarded when
206
- reconstructing the original line. Note that this line-folding
207
- convention differs from that found in cite:norm[RFC5322], in that the sequence
208
- <CRLF><WSP> found anywhere in the content indicates a continued line
209
- and should be removed.
210
-
211
- Property names and parameter names are case-insensitive (e.g., the
212
- property name "fn" is the same as "FN" and "Fn"). Parameter values
213
- [bcp14]#MAY# be case-sensitive or case-insensitive, depending on their
214
- definition. Parameter values that are not explicitly defined as
215
- being case-sensitive are case-insensitive. Based on experience with
216
- vCard 3 interoperability, it is [bcp14]#RECOMMENDED# that property and
217
- parameter names be upper-case on output.
218
-
219
- The group construct is used to group related properties together.
220
- The group name is a syntactic convention used to indicate that all
221
- property names prefaced with the same group name [bcp14]#SHOULD# be grouped
222
- together when displayed by an application. It has no other
223
- significance. Implementations that do not understand or support
224
- grouping [bcp14]#MAY# simply strip off any text before a "." to the left of
225
- the type name and present the types and values as normal.
226
-
227
- Property cardinalities are indicated using the following notation,
228
- which is based on ABNF (see cite:norm[RFC5234, suffix=", Section 3.6"]):
229
-
230
- |===
231
- | Cardinality | Meaning
232
-
233
- | 1 | Exactly one instance per vCard [bcp14]#MUST# be present.
234
- | *1 | Exactly one instance per vCard [bcp14]#MAY# be present.
235
- | 1* | One or more instances per vCard [bcp14]#MUST# be present.
236
- | * | One or more instances per vCard [bcp14]#MAY# be present.
237
- |===
238
-
239
- Properties defined in a vCard instance may have multiple values
240
- depending on the property cardinality. The general rule for encoding
241
- multi-valued properties is to simply create a new content line for
242
- each value (including the property name). However, it should be
243
- noted that some value types support encoding multiple values in a
244
- single content line by separating the values with a comma ",". This
245
- approach has been taken for several of the content types defined
246
- below (date, time, integer, float).
247
-
248
- [[section3_4]]
249
- === Property Value Escaping
250
-
251
- Some properties may contain one or more values delimited by a COMMA
252
- character (U+002C). Therefore, a COMMA character in a value [bcp14]#MUST# be
253
- escaped with a BACKSLASH character (U+005C), even for properties that
254
- don't allow multiple instances (for consistency).
255
-
256
- Some properties (e.g., N and ADR) comprise multiple fields delimited
257
- by a SEMICOLON character (U+003B). Therefore, a SEMICOLON in a field
258
- of such a "compound" property [bcp14]#MUST# be escaped with a BACKSLASH
259
- character. SEMICOLON characters in non-compound properties [bcp14]#MAY# be
260
- escaped. On input, an escaped SEMICOLON character is never a field
261
- separator. An unescaped SEMICOLON character may be a field
262
- separator, depending on the property in which it appears.
263
-
264
- Furthermore, some fields of compound properties may contain a list of
265
- values delimited by a COMMA character. Therefore, a COMMA character
266
- in one of a field's values [bcp14]#MUST# be escaped with a BACKSLASH
267
- character, even for fields that don't allow multiple values (for
268
- consistency). Compound properties allowing multiple instances [bcp14]#MUST NOT#
269
- be encoded in a single content line.
270
-
271
- Finally, BACKSLASH characters in values [bcp14]#MUST# be escaped with a
272
- BACKSLASH character. NEWLINE (U+000A) characters in values [bcp14]#MUST# be
273
- encoded by two characters: a BACKSLASH followed by either an 'n'
274
- (U+006E) or an 'N' (U+004E).
275
-
276
- In all other cases, escaping [bcp14]#MUST NOT# be used.
277
-
278
- [[section4]]
279
- == Property Value Data Types
280
-
281
- Standard value types are defined below.
282
-
283
- [source,abnf]
284
- ----
285
- value = text
286
- / text-list
287
- / date-list
288
- / time-list
289
- / date-time-list
290
- / date-and-or-time-list
291
- / timestamp-list
292
- / boolean
293
- / integer-list
294
- / float-list
295
- / URI ; from Section 3 of [RFC3986]
296
- / utc-offset
297
- / Language-Tag
298
- / iana-valuespec
299
- ; Actual value type depends on property name and VALUE parameter.
300
-
301
- text = *TEXT-CHAR
302
-
303
- TEXT-CHAR = "\\" / "\," / "\n" / WSP / NON-ASCII
304
- / %x21-2B / %x2D-5B / %x5D-7E
305
- ; Backslashes, commas, and newlines must be encoded.
306
-
307
- component = "\\" / "\," / "\;" / "\n" / WSP / NON-ASCII
308
- / %x21-2B / %x2D-3A / %x3C-5B / %x5D-7E
309
- list-component = component *("," component)
310
-
311
- text-list = text *("," text)
312
- date-list = date *("," date)
313
- time-list = time *("," time)
314
- date-time-list = date-time *("," date-time)
315
- date-and-or-time-list = date-and-or-time *("," date-and-or-time)
316
- timestamp-list = timestamp *("," timestamp)
317
- integer-list = integer *("," integer)
318
- float-list = float *("," float)
319
-
320
- boolean = "TRUE" / "FALSE"
321
- integer = [sign] 1*DIGIT
322
- float = [sign] 1*DIGIT ["." 1*DIGIT]
323
-
324
- sign = "+" / "-"
325
-
326
- year = 4DIGIT ; 0000-9999
327
- month = 2DIGIT ; 01-12
328
- day = 2DIGIT ; 01-28/29/30/31 depending on month and leap year
329
- hour = 2DIGIT ; 00-23
330
- minute = 2DIGIT ; 00-59
331
- second = 2DIGIT ; 00-58/59/60 depending on leap second
332
- zone = utc-designator / utc-offset
333
- utc-designator = %x5A ; uppercase "Z"
334
-
335
- date = year [month day]
336
- / year "-" month
337
- / "--" month [day]
338
- / "--" "-" day
339
- date-noreduc = year month day
340
- / "--" month day
341
- / "--" "-" day
342
- date-complete = year month day
343
-
344
- time = hour [minute [second]] [zone]
345
- / "-" minute [second] [zone]
346
- / "-" "-" second [zone]
347
- time-notrunc = hour [minute [second]] [zone]
348
- time-complete = hour minute second [zone]
349
-
350
-
351
- time-designator = %x54 ; uppercase "T"
352
- date-time = date-noreduc time-designator time-notrunc
353
- timestamp = date-complete time-designator time-complete
354
-
355
- date-and-or-time = date-time / date / time-designator time
356
-
357
- utc-offset = sign hour [minute]
358
-
359
- Language-Tag = <Language-Tag, defined in [RFC5646], Section 2.1>
360
-
361
- iana-valuespec = <value-spec, see Section 12>
362
- ; a publicly defined valuetype format, registered
363
- ; with IANA, as defined in Section 12 of this
364
- ; document.
365
- ----
366
-
367
- [[section4_1]]
368
- === TEXT
369
-
370
- "text": The "text" value type should be used to identify values that
371
- contain human-readable text. As for the language, it is controlled
372
- by the LANGUAGE property parameter defined in <<section5_1>>.
373
-
374
- Examples for "text":
375
-
376
- ....
377
- this is a text value
378
- this is one value,this is another
379
- this is a single value\, with a comma encoded
380
- ....
381
-
382
- A formatted text line break in a text value type [bcp14]#MUST# be represented
383
- as the character sequence backslash (U+005C) followed by a Latin
384
- small letter n (U+006E) or a Latin capital letter N (U+004E), that
385
- is, "\n" or "\N".
386
-
387
- For example, a multiple line NOTE value of:
388
-
389
- ....
390
- Mythical Manager
391
- Hyjinx Software Division
392
- BabsCo, Inc.
393
- ....
394
-
395
- could be represented as:
396
-
397
- ....
398
- NOTE:Mythical Manager\nHyjinx Software Division\n
399
- BabsCo\, Inc.\n
400
- ....
401
-
402
- demonstrating the \n literal formatted line break technique, the
403
- CRLF-followed-by-space line folding technique, and the backslash
404
- escape technique.
405
-
406
- [[section4_2]]
407
- === URI
408
-
409
- "uri": The "uri" value type should be used to identify values that
410
- are referenced by a Uniform Resource Identifier (URI) instead of
411
- encoded in-line. These value references might be used if the value
412
- is too large, or otherwise undesirable to include directly. The
413
- format for the URI is as defined in cite:norm[RFC3986, prefix="Section 3 of "]. Note
414
- that the value of a property of type "uri" is what the URI points to,
415
- not the URI itself.
416
-
417
- Examples for "uri":
418
-
419
- ....
420
- http://www.example.com/my/picture.jpg
421
- ldap://ldap.example.com/cn=babs%20jensen
422
- ....
423
-
424
- [[section4_3]]
425
- === DATE, TIME, DATE-TIME, DATE-AND-OR-TIME, and TIMESTAMP
426
-
427
- "date", "time", "date-time", "date-and-or-time", and "timestamp":
428
- Each of these value types is based on the definitions in
429
- cite:norm[ISO.8601.2004]. Multiple such values can be specified using the
430
- comma-separated notation.
431
-
432
- Only the basic format is supported.
433
-
434
- [[section4_3_1]]
435
- ==== DATE
436
-
437
- A calendar date as specified in cite:norm[ISO.8601.2004, suffix=", Section 4.1.2"].
438
-
439
- Reduced accuracy, as specified in cite:norm[ISO.8601.2004, suffix=", Sections 4.1.2.3"] a)
440
- and b), but not c), is permitted.
441
-
442
- Expanded representation, as specified in cite:norm[ISO.8601.2004, suffix=", Section 4.1.4"], is forbidden.
443
-
444
- Truncated representation, as specified in cite:norm[ISO.8601.2000, suffix=", Sections 5.2.1.3"] d), e), and f), is permitted.
445
-
446
- Examples for "date":
447
-
448
- ....
449
- 19850412
450
- 1985-04
451
- 1985
452
- --0412
453
- ---12
454
-
455
-
456
-
457
- ....
458
-
459
- Note the use of YYYY-MM in the second example above. YYYYMM is
460
- disallowed to prevent confusion with YYMMDD. Note also that
461
- YYYY-MM-DD is disallowed since we are using the basic format instead
462
- of the extended format.
463
-
464
- [[section4_3_2]]
465
- ==== TIME
466
-
467
- A time of day as specified in cite:norm[ISO.8601.2004, suffix=", Section 4.2"].
468
-
469
- Reduced accuracy, as specified in cite:norm[ISO.8601.2004, suffix=", Section 4.2.2.3"],
470
- is permitted.
471
-
472
- Representation with decimal fraction, as specified in
473
- cite:norm[ISO.8601.2004, suffix=", Section 4.2.2.4"], is forbidden.
474
-
475
- The midnight hour is always represented by 00, never 24 (see
476
- cite:norm[ISO.8601.2004, suffix=", Section 4.2.3"]).
477
-
478
- Truncated representation, as specified in cite:norm[ISO.8601.2000, suffix=", Sections 5.3.1.4"] a), b), and c), is permitted.
479
-
480
- Examples for "time":
481
-
482
- ....
483
- 102200
484
- 1022
485
- 10
486
- -2200
487
- --00
488
- 102200Z
489
- 102200-0800
490
- ....
491
-
492
- [[section4_3_3]]
493
- ==== DATE-TIME
494
-
495
- A date and time of day combination as specified in cite:norm[ISO.8601.2004, suffix=", Section 4.3"].
496
-
497
- Truncation of the date part, as specified in cite:norm[ISO.8601.2000, suffix=", Section 5.4.2"] c), is permitted.
498
-
499
- Examples for "date-time":
500
-
501
- ....
502
- 19961022T140000
503
- --1022T1400
504
- ---22T14
505
- ....
506
-
507
- [[section4_3_4]]
508
- ==== DATE-AND-OR-TIME
509
-
510
- Either a DATE-TIME, a DATE, or a TIME value. To allow unambiguous
511
- interpretation, a stand-alone TIME value is always preceded by a "T".
512
-
513
- Examples for "date-and-or-time":
514
-
515
- ....
516
- 19961022T140000
517
- --1022T1400
518
- ---22T14
519
- 19850412
520
- 1985-04
521
- 1985
522
- --0412
523
- ---12
524
- T102200
525
- T1022
526
- T10
527
- T-2200
528
- T--00
529
- T102200Z
530
- T102200-0800
531
- ....
532
-
533
- [[section4_3_5]]
534
- ==== TIMESTAMP
535
-
536
- A complete date and time of day combination as specified in
537
- cite:norm[ISO.8601.2004, suffix=", Section 4.3.2"].
538
-
539
- Examples for "timestamp":
540
-
541
- ....
542
- 19961022T140000
543
- 19961022T140000Z
544
- 19961022T140000-05
545
- 19961022T140000-0500
546
- ....
547
-
548
- [[section4_4]]
549
- === BOOLEAN
550
-
551
- "boolean": The "boolean" value type is used to express boolean
552
- values. These values are case-insensitive.
553
-
554
- Examples: ::
555
- ....
556
- TRUE
557
- false
558
- True
559
- ....
560
-
561
-
562
- [[section4_5]]
563
- === INTEGER
564
-
565
- "integer": The "integer" value type is used to express signed
566
- integers in decimal format. If sign is not specified, the value is
567
- assumed positive "+". Multiple "integer" values can be specified
568
- using the comma-separated notation. The maximum value is
569
- 9223372036854775807, and the minimum value is -9223372036854775808.
570
- These limits correspond to a signed 64-bit integer using two's-
571
- complement arithmetic.
572
-
573
- Examples: ::
574
- ....
575
- 1234567890
576
- -1234556790
577
- +1234556790,432109876
578
- ....
579
-
580
- [[section4_6]]
581
- === FLOAT
582
-
583
- "float": The "float" value type is used to express real numbers. If
584
- sign is not specified, the value is assumed positive "+". Multiple
585
- "float" values can be specified using the comma-separated notation.
586
- Implementations [bcp14]#MUST# support a precision equal or better than that of
587
- the IEEE "binary64" format cite:norm[IEEE.754.2008].
588
-
589
- Note: Scientific notation is disallowed. Implementers wishing to
590
- use their favorite language's %f formatting should be careful.
591
-
592
- Examples: ::
593
- ....
594
- 20.30
595
- 1000000.0000001
596
- 1.333,3.14
597
- ....
598
-
599
- [[section4_7]]
600
- === UTC-OFFSET
601
-
602
- "utc-offset": The "utc-offset" value type specifies that the property
603
- value is a signed offset from UTC. This value type can be specified
604
- in the TZ property.
605
-
606
- The value type is an offset from Coordinated Universal Time (UTC).
607
- It is specified as a positive or negative difference in units of
608
- hours and minutes (e.g., +hhmm). The time is specified as a 24-hour
609
- clock. Hour values are from 00 to 23, and minute values are from 00
610
- to 59. Hour and minutes are 2 digits with high-order zeroes required
611
- to maintain digit count. The basic format for ISO 8601 UTC offsets
612
- [bcp14]#MUST# be used.
613
-
614
- [[section4_8]]
615
- === LANGUAGE-TAG
616
-
617
- "language-tag": A single language tag, as defined in cite:norm[RFC5646].
618
-
619
- [[section5]]
620
- == Property Parameters
621
-
622
- A property can have attributes associated with it. These "property
623
- parameters" contain meta-information about the property or the
624
- property value. In some cases, the property parameter can be multi-
625
- valued in which case the property parameter value elements are
626
- separated by a COMMA (U+002C).
627
-
628
- Property parameter value elements that contain the COLON (U+003A),
629
- SEMICOLON (U+003B), or COMMA (U+002C) character separators [bcp14]#MUST# be
630
- specified as quoted-string text values. Property parameter values
631
- [bcp14]#MUST NOT# contain the DQUOTE (U+0022) character. The DQUOTE character
632
- is used as a delimiter for parameter values that contain restricted
633
- characters or URI text.
634
-
635
- Applications [bcp14]#MUST# ignore x-param and iana-param values they don't
636
- recognize.
637
-
638
- [[section5_1]]
639
- === LANGUAGE
640
-
641
- The LANGUAGE property parameter is used to identify data in multiple
642
- languages. There is no concept of "default" language, except as
643
- specified by any "Content-Language" MIME header parameter that is
644
- present cite:info[RFC3282]. The value of the LANGUAGE property parameter is a
645
- language tag as defined in cite:norm[RFC5646, prefix="Section 2 of "].
646
-
647
- Examples: ::
648
- ....
649
- ROLE;LANGUAGE=tr:hoca
650
- ....
651
-
652
- ABNF: ::
653
- [source,abnf]
654
- ----
655
- language-param = "LANGUAGE=" Language-Tag
656
- ; Language-Tag is defined in section 2.1 of RFC 5646
657
-
658
- ----
659
-
660
- [[section5_2]]
661
- === VALUE
662
-
663
- The VALUE parameter is [bcp14]#OPTIONAL#, used to identify the value type
664
- (data type) and format of the value. The use of these predefined
665
- formats is encouraged even if the value parameter is not explicitly
666
- used. By defining a standard set of value types and their formats,
667
- existing parsing and processing code can be leveraged. The
668
- predefined data type values [bcp14]#MUST NOT# be repeated in COMMA-separated
669
- value lists except within the N, NICKNAME, ADR, and CATEGORIES
670
- properties.
671
-
672
- ABNF: ::
673
- [source,abnf]
674
- ----
675
- value-param = "VALUE=" value-type
676
-
677
- value-type = "text"
678
- / "uri"
679
- / "date"
680
- / "time"
681
- / "date-time"
682
- / "date-and-or-time"
683
- / "timestamp"
684
- / "boolean"
685
- / "integer"
686
- / "float"
687
- / "utc-offset"
688
- / "language-tag"
689
- / iana-token ; registered as described in section 12
690
- / x-name
691
- ----
692
-
693
- [[section5_3]]
694
- === PREF
695
-
696
- The PREF parameter is [bcp14]#OPTIONAL# and is used to indicate that the
697
- corresponding instance of a property is preferred by the vCard
698
- author. Its value [bcp14]#MUST# be an integer between 1 and 100 that
699
- quantifies the level of preference. Lower values correspond to a
700
- higher level of preference, with 1 being most preferred.
701
-
702
- When the parameter is absent, the default [bcp14]#MUST# be to interpret the
703
- property instance as being least preferred.
704
-
705
- Note that the value of this parameter is to be interpreted only in
706
- relation to values assigned to other instances of the same property
707
- in the same vCard. A given value, or the absence of a value, [bcp14]#MUST NOT#
708
- be interpreted on its own.
709
-
710
- This parameter [bcp14]#MAY# be applied to any property that allows multiple
711
- instances.
712
-
713
- ABNF: ::
714
- [source,abnf]
715
- ----
716
- pref-param = "PREF=" (1*2DIGIT / "100")
717
- ; An integer between 1 and 100.
718
- ----
719
-
720
-
721
- [[section5_4]]
722
- === ALTID
723
-
724
- The ALTID parameter is used to "tag" property instances as being
725
- alternative representations of the same logical property. For
726
- example, translations of a property in multiple languages generates
727
- multiple property instances having different LANGUAGE (<<section5_1>>)
728
- parameter that are tagged with the same ALTID value.
729
-
730
- This parameter's value is treated as an opaque string. Its sole
731
- purpose is to be compared for equality against other ALTID parameter
732
- values.
733
-
734
- Two property instances are considered alternative representations of
735
- the same logical property if and only if their names as well as the
736
- value of their ALTID parameters are identical. Property instances
737
- without the ALTID parameter [bcp14]#MUST NOT# be considered an alternative
738
- representation of any other property instance. Values for the ALTID
739
- parameter are not globally unique: they [bcp14]#MAY# be reused for different
740
- property names.
741
-
742
- Property instances having the same ALTID parameter value count as 1
743
- toward cardinality. Therefore, since N (<<section6_2_2>>) has
744
- cardinality *1 and TITLE (<<section6_6_1>>) has cardinality *, these
745
- three examples would be legal:
746
-
747
- ....
748
- N;ALTID=1;LANGUAGE=jp:<U+5C71><U+7530>;<U+592A><U+90CE>;;;
749
- N;ALTID=1;LANGUAGE=en:Yamada;Taro;;;
750
- (<U+XXXX> denotes a UTF8-encoded Unicode character.)
751
- ....
752
-
753
- ....
754
- TITLE;ALTID=1;LANGUAGE=fr:Patron
755
- TITLE;ALTID=1;LANGUAGE=en:Boss
756
- ....
757
-
758
- ....
759
- TITLE;ALTID=1;LANGUAGE=fr:Patron
760
- TITLE;ALTID=1;LANGUAGE=en:Boss
761
- TITLE;ALTID=2;LANGUAGE=en:Chief vCard Evangelist
762
- ....
763
-
764
- while this one would not:
765
-
766
- ....
767
- N;ALTID=1;LANGUAGE=jp:<U+5C71><U+7530>;<U+592A><U+90CE>;;;
768
- N:Yamada;Taro;;;
769
- (Two instances of the N property.)
770
- ....
771
-
772
- and these three would be legal but questionable:
773
-
774
- ....
775
- TITLE;ALTID=1;LANGUAGE=fr:Patron
776
- TITLE;ALTID=2;LANGUAGE=en:Boss
777
- (Should probably have the same ALTID value.)
778
- ....
779
-
780
- ....
781
- TITLE;ALTID=1;LANGUAGE=fr:Patron
782
- TITLE:LANGUAGE=en:Boss
783
- (Second line should probably have ALTID=1.)
784
- ....
785
-
786
- ....
787
- N;ALTID=1;LANGUAGE=jp:<U+5C71><U+7530>;<U+592A><U+90CE>;;;
788
- N;ALTID=1;LANGUAGE=en:Yamada;Taro;;;
789
- N;ALTID=1;LANGUAGE=en:Smith;John;;;
790
- (The last line should probably have ALTID=2. But that would be
791
- illegal because N has cardinality *1.)
792
- ....
793
-
794
- The ALTID property [bcp14]#MAY# also be used in may contexts other than with
795
- the LANGUAGE parameter. Here's an example with two representations
796
- of the same photo in different file formats:
797
-
798
- ....
799
- PHOTO;ALTID=1:data:image/jpeg;base64,...
800
- PHOTO;ALTID=1;data:image/jp2;base64,...
801
-
802
-
803
-
804
- ....
805
-
806
- ABNF: ::
807
- [source,abnf]
808
- ----
809
- altid-param = "ALTID=" param-value
810
- ----
811
-
812
- [[section5_5]]
813
- === PID
814
-
815
- The PID parameter is used to identify a specific property among
816
- multiple instances. It plays a role analogous to the UID property
817
- (<<section6_7_6>>) on a per-property instead of per-vCard basis. It [bcp14]#MAY#
818
- appear more than once in a given property. It [bcp14]#MUST NOT# appear on
819
- properties that may have only one instance per vCard. Its value is
820
- either a single small positive integer or a pair of small positive
821
- integers separated by a dot. Multiple values may be encoded in a
822
- single PID parameter by separating the values with a comma ",". See
823
- <<section7>> for more details on its usage.
824
-
825
- ABNF: ::
826
- [source,abnf]
827
- ----
828
- pid-param = "PID=" pid-value *("," pid-value)
829
- pid-value = 1*DIGIT ["." 1*DIGIT]
830
- ----
831
-
832
- [[section5_6]]
833
- === TYPE
834
-
835
- The TYPE parameter has multiple, different uses. In general, it is a
836
- way of specifying class characteristics of the associated property.
837
- Most of the time, its value is a comma-separated subset of a
838
- predefined enumeration. In this document, the following properties
839
- make use of this parameter: FN, NICKNAME, PHOTO, ADR, TEL, EMAIL,
840
- IMPP, LANG, TZ, GEO, TITLE, ROLE, LOGO, ORG, RELATED, CATEGORIES,
841
- NOTE, SOUND, URL, KEY, FBURL, CALADRURI, and CALURI. The TYPE
842
- parameter [bcp14]#MUST NOT# be applied on other properties defined in this
843
- document.
844
-
845
- The "work" and "home" values act like tags. The "work" value implies
846
- that the property is related to an individual's work place, while the
847
- "home" value implies that the property is related to an individual's
848
- personal life. When neither "work" nor "home" is present, it is
849
- implied that the property is related to both an individual's work
850
- place and personal life in the case that the KIND property's value is
851
- "individual", or to none in other cases.
852
-
853
- ABNF: ::
854
- [source,abnf]
855
- ----
856
- type-param = "TYPE=" type-value *("," type-value)
857
-
858
- type-value = "work" / "home" / type-param-tel
859
- / type-param-related / iana-token / x-name
860
- ; This is further defined in individual property sections.
861
- ----
862
-
863
- [[section5_7]]
864
- === MEDIATYPE
865
-
866
- The MEDIATYPE parameter is used with properties whose value is a URI.
867
- Its use is [bcp14]#OPTIONAL#. It provides a hint to the vCard consumer
868
- application about the media type cite:norm[RFC2046] of the resource identified
869
- by the URI. Some URI schemes do not need this parameter. For
870
- example, the "data" scheme allows the media type to be explicitly
871
- indicated as part of the URI cite:info[RFC2397]. Another scheme, "http",
872
- provides the media type as part of the URI resolution process, with
873
- the Content-Type HTTP header cite:info[RFC2616]. The MEDIATYPE parameter is
874
- intended to be used with URI schemes that do not provide such
875
- functionality (e.g., "ftp" cite:info[RFC1738]).
876
-
877
- ABNF: ::
878
- [source,abnf]
879
- ----
880
- mediatype-param = "MEDIATYPE=" mediatype
881
- mediatype = type-name "/" subtype-name *( ";" attribute "=" value )
882
- ; "attribute" and "value" are from [RFC2045]
883
- ; "type-name" and "subtype-name" are from [RFC4288]
884
- ----
885
-
886
- cite:norm[RFC2045, text="<xref target='RFC2045' format='none'/>"] cite:norm[RFC4288, text="<xref target='RFC4288' format='none'/>"]
887
-
888
- [[section5_8]]
889
- === CALSCALE
890
-
891
- The CALSCALE parameter is identical to the CALSCALE property in
892
- iCalendar (see cite:norm[RFC5545, suffix=", Section 3.7.1"]). It is used to define the
893
- calendar system in which a date or date-time value is expressed. The
894
- only value specified by iCalendar is "gregorian", which stands for
895
- the Gregorian system. It is the default when the parameter is
896
- absent. Additional values may be defined in extension documents and
897
- registered with IANA (see <<section10_3_4>>). A vCard implementation
898
- [bcp14]#MUST# ignore properties with a CALSCALE parameter value that it does
899
- not understand.
900
-
901
- ABNF: ::
902
- [source,abnf]
903
- ----
904
- calscale-param = "CALSCALE=" calscale-value
905
-
906
- calscale-value = "gregorian" / iana-token / x-name
907
- ----
908
-
909
- [[section5_9]]
910
- === SORT-AS
911
-
912
- The "sort-as" parameter is used to specify the string to be used for
913
- national-language-specific sorting. Without this information,
914
- sorting algorithms could incorrectly sort this vCard within a
915
- sequence of sorted vCards. When this property is present in a vCard,
916
- then the given strings are used for sorting the vCard.
917
-
918
- This parameter's value is a comma-separated list that [bcp14]#MUST# have as
919
- many or fewer elements as the corresponding property value has
920
- components. This parameter's value is case-sensitive.
921
-
922
- ABNF: ::
923
- [source,abnf]
924
- ----
925
- sort-as-param = "SORT-AS=" sort-as-value
926
-
927
- sort-as-value = param-value *("," param-value)
928
- ----
929
-
930
- Examples: For the case of surname and given name sorting, the
931
- following examples define common sort string usage with the N
932
- property.
933
-
934
- ....
935
- FN:Rene van der Harten
936
- N;SORT-AS="Harten,Rene":van der Harten;Rene,J.;Sir;R.D.O.N.
937
- ....
938
-
939
- ....
940
- FN:Robert Pau Shou Chang
941
- N;SORT-AS="Pau Shou Chang,Robert":Shou Chang;Robert,Pau;;
942
- ....
943
-
944
- ....
945
- FN:Osamu Koura
946
- N;SORT-AS="Koura,Osamu":Koura;Osamu;;
947
- ....
948
-
949
- ....
950
- FN:Oscar del Pozo
951
- N;SORT-AS="Pozo,Oscar":del Pozo Triscon;Oscar;;
952
- ....
953
-
954
- ....
955
- FN:Chistine d'Aboville
956
- N;SORT-AS="Aboville,Christine":d'Aboville;Christine;;
957
- ....
958
-
959
- ....
960
- FN:H. James de Mann
961
- N;SORT-AS="Mann,James":de Mann;Henry,James;;
962
- ....
963
-
964
- If sorted by surname, the results would be:
965
-
966
- ....
967
- Christine d'Aboville
968
- Rene van der Harten
969
- Osamu Koura
970
- H. James de Mann
971
- Robert Pau Shou Chang
972
- Oscar del Pozo
973
- ....
974
-
975
- If sorted by given name, the results would be:
976
-
977
- ....
978
- Christine d'Aboville
979
- H. James de Mann
980
- Osamu Koura
981
- Oscar del Pozo
982
- Rene van der Harten
983
- Robert Pau Shou Chang
984
- ....
985
-
986
- [[section5_10]]
987
- === GEO
988
-
989
- The GEO parameter can be used to indicate global positioning
990
- information that is specific to an address. Its value is the same as
991
- that of the GEO property (see <<section6_5_2>>).
992
-
993
- ABNF: ::
994
- [source,abnf]
995
- ----
996
- geo-parameter = "GEO=" DQUOTE URI DQUOTE
997
- ----
998
-
999
- [[section5_11]]
1000
- === TZ
1001
-
1002
- The TZ parameter can be used to indicate time zone information that
1003
- is specific to an address. Its value is the same as that of the TZ
1004
- property.
1005
-
1006
- ABNF: ::
1007
- [source,abnf]
1008
- ----
1009
- tz-parameter = "TZ=" (param-value / DQUOTE URI DQUOTE)
1010
-
1011
-
1012
-
1013
-
1014
-
1015
-
1016
- ----
1017
-
1018
- [[section6]]
1019
- == vCard Properties
1020
-
1021
- What follows is an enumeration of the standard vCard properties.
1022
-
1023
- [[section6_1]]
1024
- === General Properties
1025
-
1026
- [[section6_1_1]]
1027
- ==== BEGIN
1028
-
1029
- Purpose: :: To denote the beginning of a syntactic entity within a
1030
- text/vcard content-type.
1031
-
1032
- Value type: :: text
1033
-
1034
- Cardinality: :: 1
1035
-
1036
- Special notes: :: The content entity [bcp14]#MUST# begin with the BEGIN property
1037
- with a value of "VCARD". The value is case-insensitive.
1038
- +
1039
- The BEGIN property is used in conjunction with the END property to
1040
- delimit an entity containing a related set of properties within a
1041
- text/vcard content-type. This construct can be used instead of
1042
- including multiple vCards as body parts inside of a multipart/
1043
- alternative MIME message. It is provided for applications that
1044
- wish to define content that can contain multiple entities within
1045
- the same text/vcard content-type or to define content that can be
1046
- identifiable outside of a MIME environment.
1047
-
1048
- ABNF: ::
1049
- +
1050
- [source,abnf]
1051
- ----
1052
- BEGIN-param = 0" " ; no parameter allowed
1053
- BEGIN-value = "VCARD"
1054
- ----
1055
-
1056
- Example: ::
1057
- +
1058
- ....
1059
- BEGIN:VCARD
1060
- ....
1061
-
1062
- [[section6_1_2]]
1063
- ==== END
1064
-
1065
- Purpose: :: To denote the end of a syntactic entity within a text/vcard
1066
- content-type.
1067
-
1068
- Value type: :: text
1069
-
1070
- Cardinality: :: 1
1071
-
1072
- Special notes: :: The content entity [bcp14]#MUST# end with the END type with a
1073
- value of "VCARD". The value is case-insensitive.
1074
- +
1075
- The END property is used in conjunction with the BEGIN property to
1076
- delimit an entity containing a related set of properties within a
1077
- text/vcard content-type. This construct can be used instead of or
1078
- in addition to wrapping separate sets of information inside
1079
- additional MIME headers. It is provided for applications that
1080
- wish to define content that can contain multiple entities within
1081
- the same text/vcard content-type or to define content that can be
1082
- identifiable outside of a MIME environment.
1083
-
1084
- ABNF: ::
1085
- +
1086
- [source,abnf]
1087
- ----
1088
- END-param = 0" " ; no parameter allowed
1089
- END-value = "VCARD"
1090
- ----
1091
-
1092
- Example: ::
1093
- ....
1094
- END:VCARD
1095
- ....
1096
-
1097
- [[section6_1_3]]
1098
- ==== SOURCE
1099
-
1100
- Purpose: :: To identify the source of directory information contained
1101
- in the content type.
1102
-
1103
- Value type: :: uri
1104
-
1105
- Cardinality: :: *
1106
-
1107
- Special notes: :: The SOURCE property is used to provide the means by
1108
- which applications knowledgable in the given directory service
1109
- protocol can obtain additional or more up-to-date information from
1110
- the directory service. It contains a URI as defined in cite:norm[RFC3986]
1111
- and/or other information referencing the vCard to which the
1112
- information pertains. When directory information is available
1113
- from more than one source, the sending entity can pick what it
1114
- considers to be the best source, or multiple SOURCE properties can
1115
- be included.
1116
-
1117
- ABNF: ::
1118
- +
1119
- [source,abnf]
1120
- ----
1121
- SOURCE-param = "VALUE=uri" / pid-param / pref-param / altid-param
1122
- / mediatype-param / any-param
1123
- SOURCE-value = URI
1124
- ----
1125
-
1126
- Examples: ::
1127
- +
1128
- ....
1129
- SOURCE:ldap://ldap.example.com/cn=Babs%20Jensen,%20o=Babsco,%20c=US
1130
- ....
1131
- +
1132
- ....
1133
- SOURCE:http://directory.example.com/addressbooks/jdoe/
1134
- Jean%20Dupont.vcf
1135
- ....
1136
-
1137
- [[section6_1_4]]
1138
- ==== KIND
1139
-
1140
- Purpose: :: To specify the kind of object the vCard represents.
1141
-
1142
- Value type: :: A single text value.
1143
-
1144
- Cardinality: :: *1
1145
-
1146
- Special notes: :: The value may be one of the following:
1147
- +
1148
- "individual" :: for a vCard representing a single person or entity.
1149
- This is the default kind of vCard.
1150
-
1151
- "group" :: for a vCard representing a group of persons or entities.
1152
- The group's member entities can be other vCards or other types
1153
- of entities, such as email addresses or web sites. A group
1154
- vCard will usually contain MEMBER properties to specify the
1155
- members of the group, but it is not required to. A group vCard
1156
- without MEMBER properties can be considered an abstract
1157
- grouping, or one whose members are known empirically (perhaps
1158
- "IETF Participants" or "Republican U.S. Senators").
1159
- +
1160
- All properties in a group vCard apply to the group as a whole,
1161
- and not to any particular MEMBER. For example, an EMAIL
1162
- property might specify the address of a mailing list associated
1163
- with the group, and an IMPP property might refer to a group
1164
- chat room.
1165
- "org" :: for a vCard representing an organization. An organization
1166
- vCard will not (in fact, [bcp14]#MUST NOT#) contain MEMBER properties,
1167
- and so these are something of a cross between "individual" and
1168
- "group". An organization is a single entity, but not a person.
1169
- It might represent a business or government, a department or
1170
- division within a business or government, a club, an
1171
- association, or the like.
1172
- +
1173
- All properties in an organization vCard apply to the
1174
- organization as a whole, as is the case with a group vCard.
1175
- For example, an EMAIL property might specify the address of a
1176
- contact point for the organization.
1177
-
1178
- "location" :: for a named geographical place. A location vCard will
1179
- usually contain a GEO property, but it is not required to. A
1180
- location vCard without a GEO property can be considered an
1181
- abstract location, or one whose definition is known empirically
1182
- (perhaps "New England" or "The Seashore").
1183
- +
1184
- All properties in a location vCard apply to the location
1185
- itself, and not with any entity that might exist at that
1186
- location. For example, in a vCard for an office building, an
1187
- ADR property might give the mailing address for the building,
1188
- and a TEL property might specify the telephone number of the
1189
- receptionist.
1190
- An x-name. :: vCards [bcp14]#MAY# include private or experimental values for
1191
- KIND. Remember that x-name values are not intended for general
1192
- use and are unlikely to interoperate.
1193
- An iana-token. :: Additional values may be registered with IANA (see
1194
- <<section10_3_4>>). A new value's specification document [bcp14]#MUST#
1195
- specify which properties make sense for that new kind of vCard
1196
- and which do not.
1197
-
1198
- Implementations [bcp14]#MUST# support the specific string values defined
1199
- above. If this property is absent, "individual" [bcp14]#MUST# be assumed
1200
- as the default. If this property is present but the
1201
- implementation does not understand its value (the value is an
1202
- x-name or iana-token that the implementation does not support),
1203
- the implementation [bcp14]#SHOULD# act in a neutral way, which usually
1204
- means treating the vCard as though its kind were "individual".
1205
- The presence of MEMBER properties [bcp14]#MAY#, however, be taken as an
1206
- indication that the unknown kind is an extension of "group".
1207
-
1208
- Clients often need to visually distinguish contacts based on what
1209
- they represent, and the KIND property provides a direct way for
1210
- them to do so. For example, when displaying contacts in a list,
1211
- an icon could be displayed next to each one, using distinctive
1212
- icons for the different kinds; a client might use an outline of a
1213
- single person to represent an "individual", an outline of multiple
1214
- people to represent a "group", and so on. Alternatively, or in
1215
- addition, a client might choose to segregate different kinds of
1216
- vCards to different panes, tabs, or selections in the user
1217
- interface.
1218
-
1219
- Some clients might also make functional distinctions among the
1220
- kinds, ignoring "location" vCards for some purposes and
1221
- considering only "location" vCards for others.
1222
-
1223
- When designing those sorts of visual and functional distinctions,
1224
- client implementations have to decide how to fit unsupported kinds
1225
- into the scheme. What icon is used for them? The one for
1226
- "individual"? A unique one, such as an icon of a question mark?
1227
- Which tab do they go into? It is beyond the scope of this
1228
- specification to answer these questions, but these are things
1229
- implementers need to consider.
1230
-
1231
- ABNF: ::
1232
- +
1233
- [source,abnf]
1234
- ----
1235
- KIND-param = "VALUE=text" / any-param
1236
- KIND-value = "individual" / "group" / "org" / "location"
1237
- / iana-token / x-name
1238
- ----
1239
-
1240
- Example: ::
1241
- +
1242
- This represents someone named Jane Doe working in the marketing
1243
- department of the North American division of ABC Inc.
1244
- +
1245
- ....
1246
- BEGIN:VCARD
1247
- VERSION:4.0
1248
- KIND:individual
1249
- FN:Jane Doe
1250
- ORG:ABC\, Inc.;North American Division;Marketing
1251
- END:VCARD
1252
- ....
1253
- +
1254
- This represents the department itself, commonly known as ABC
1255
- Marketing.
1256
- +
1257
- ....
1258
- BEGIN:VCARD
1259
- VERSION:4.0
1260
- KIND:org
1261
- FN:ABC Marketing
1262
- ORG:ABC\, Inc.;North American Division;Marketing
1263
- END:VCARD
1264
- ....
1265
-
1266
- [[section6_1_5]]
1267
- ==== XML
1268
-
1269
- Purpose: :: To include extended XML-encoded vCard data in a plain
1270
- vCard.
1271
-
1272
- Value type: :: A single text value.
1273
-
1274
- Cardinality: :: *
1275
-
1276
- Special notes: :: The content of this property is a single XML 1.0
1277
- cite:norm[W3C.REC-xml-20081126] element whose namespace [bcp14]#MUST# be explicitly
1278
- specified using the xmlns attribute and [bcp14]#MUST NOT# be the vCard 4
1279
- namespace ("urn:ietf:params:xml:ns:vcard-4.0"). (This implies
1280
- that it cannot duplicate a standard vCard property.) The element
1281
- is to be interpreted as if it was contained in a <vcard> element,
1282
- as defined in cite:norm[RFC6351].
1283
- +
1284
- The fragment is subject to normal line folding and escaping, i.e.,
1285
- replace all backslashes with "\\", then replace all newlines with
1286
- "\n", then fold long lines.
1287
- +
1288
- Support for this property is [bcp14]#OPTIONAL#, but implementations of this
1289
- specification [bcp14]#MUST# preserve instances of this property when
1290
- propagating vCards.
1291
- +
1292
- See cite:norm[RFC6351] for more information on the intended use of this
1293
- property.
1294
-
1295
- ABNF: ::
1296
- +
1297
- [source,abnf]
1298
- ----
1299
- XML-param = "VALUE=text" / altid-param
1300
- XML-value = text
1301
- ----
1302
-
1303
- [[section6_2]]
1304
- === Identification Properties
1305
-
1306
- These types are used to capture information associated with the
1307
- identification and naming of the entity associated with the vCard.
1308
-
1309
- [[section6_2_1]]
1310
- ==== FN
1311
-
1312
- Purpose: :: To specify the formatted text corresponding to the name of
1313
- the object the vCard represents.
1314
-
1315
- Value type: :: A single text value.
1316
-
1317
- Cardinality: :: 1*
1318
-
1319
- Special notes: :: This property is based on the semantics of the X.520
1320
- Common Name attribute cite:norm[CCITT.X520.1988]. The property [bcp14]#MUST# be
1321
- present in the vCard object.
1322
-
1323
- ABNF: ::
1324
- +
1325
- [source,abnf]
1326
- ----
1327
- FN-param = "VALUE=text" / type-param / language-param / altid-param
1328
- / pid-param / pref-param / any-param
1329
- FN-value = text
1330
- ----
1331
-
1332
- Example: ::
1333
- +
1334
- ....
1335
- FN:Mr. John Q. Public\, Esq.
1336
- ....
1337
-
1338
- [[section6_2_2]]
1339
- ==== N
1340
-
1341
- Purpose: :: To specify the components of the name of the object the
1342
- vCard represents.
1343
-
1344
- Value type: :: A single structured text value. Each component can have
1345
- multiple values.
1346
-
1347
- Cardinality: :: *1
1348
-
1349
- Special note: :: The structured property value corresponds, in
1350
- sequence, to the Family Names (also known as surnames), Given
1351
- Names, Additional Names, Honorific Prefixes, and Honorific
1352
- Suffixes. The text components are separated by the SEMICOLON
1353
- character (U+003B). Individual text components can include
1354
- multiple text values separated by the COMMA character (U+002C).
1355
- This property is based on the semantics of the X.520 individual
1356
- name attributes cite:norm[CCITT.X520.1988]. The property [bcp14]#SHOULD# be present
1357
- in the vCard object when the name of the object the vCard
1358
- represents follows the X.520 model.
1359
- +
1360
- The SORT-AS parameter [bcp14]#MAY# be applied to this property.
1361
-
1362
-
1363
- ABNF: ::
1364
- +
1365
- [source,abnf]
1366
- ----
1367
- N-param = "VALUE=text" / sort-as-param / language-param
1368
- / altid-param / any-param
1369
- N-value = list-component 4(";" list-component)
1370
- ----
1371
-
1372
- Examples: ::
1373
- +
1374
- ....
1375
- N:Public;John;Quinlan;Mr.;Esq.
1376
-
1377
- N:Stevenson;John;Philip,Paul;Dr.;Jr.,M.D.,A.C.P.
1378
- ....
1379
-
1380
- [[section6_2_3]]
1381
- ==== NICKNAME
1382
-
1383
- Purpose: :: To specify the text corresponding to the nickname of the
1384
- object the vCard represents.
1385
-
1386
- Value type: :: One or more text values separated by a COMMA character
1387
- (U+002C).
1388
-
1389
- Cardinality: :: *
1390
-
1391
- Special note: :: The nickname is the descriptive name given instead of
1392
- or in addition to the one belonging to the object the vCard
1393
- represents. It can also be used to specify a familiar form of a
1394
- proper name specified by the FN or N properties.
1395
-
1396
- ABNF: ::
1397
- +
1398
- [source,abnf]
1399
- ----
1400
- NICKNAME-param = "VALUE=text" / type-param / language-param
1401
- / altid-param / pid-param / pref-param / any-param
1402
- NICKNAME-value = text-list
1403
- ----
1404
-
1405
- Examples: ::
1406
- +
1407
- ....
1408
- NICKNAME:Robbie
1409
-
1410
- NICKNAME:Jim,Jimmie
1411
-
1412
- NICKNAME;TYPE=work:Boss
1413
- ....
1414
-
1415
- [[section6_2_4]]
1416
- ==== PHOTO
1417
-
1418
- Purpose: :: To specify an image or photograph information that
1419
- annotates some aspect of the object the vCard represents.
1420
-
1421
- Value type: :: A single URI.
1422
-
1423
- Cardinality: :: *
1424
-
1425
- ABNF: ::
1426
- +
1427
- [source,abnf]
1428
- ----
1429
- PHOTO-param = "VALUE=uri" / altid-param / type-param
1430
- / mediatype-param / pref-param / pid-param / any-param
1431
- PHOTO-value = URI
1432
- ----
1433
-
1434
- Examples: ::
1435
- +
1436
- ....
1437
- PHOTO:http://www.example.com/pub/photos/jqpublic.gif
1438
-
1439
- PHOTO:data:image/jpeg;base64,MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhv
1440
- AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm
1441
- ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0
1442
- <...remainder of base64-encoded data...>
1443
- ....
1444
-
1445
- [[section6_2_5]]
1446
- ==== BDAY
1447
-
1448
- Purpose: :: To specify the birth date of the object the vCard
1449
- represents.
1450
-
1451
- Value type: :: The default is a single date-and-or-time value. It can
1452
- also be reset to a single text value.
1453
-
1454
- Cardinality: :: *1
1455
-
1456
- ABNF: ::
1457
- +
1458
- [source,abnf]
1459
- ----
1460
- BDAY-param = BDAY-param-date / BDAY-param-text
1461
- BDAY-value = date-and-or-time / text
1462
- ; Value and parameter MUST match.
1463
-
1464
- BDAY-param-date = "VALUE=date-and-or-time"
1465
- BDAY-param-text = "VALUE=text" / language-param
1466
-
1467
- BDAY-param =/ altid-param / calscale-param / any-param
1468
- ; calscale-param can only be present when BDAY-value is
1469
- ; date-and-or-time and actually contains a date or date-time.
1470
- ----
1471
-
1472
- Examples: ::
1473
- +
1474
- ....
1475
- BDAY:19960415
1476
- BDAY:--0415
1477
- BDAY;19531015T231000Z
1478
- BDAY;VALUE=text:circa 1800
1479
- ....
1480
-
1481
- [[section6_2_6]]
1482
- ==== ANNIVERSARY
1483
-
1484
- Purpose: :: The date of marriage, or equivalent, of the object the
1485
- vCard represents.
1486
-
1487
- Value type: :: The default is a single date-and-or-time value. It can
1488
- also be reset to a single text value.
1489
-
1490
- Cardinality: :: *1
1491
-
1492
- ABNF: ::
1493
- +
1494
- [source,abnf]
1495
- ----
1496
- ANNIVERSARY-param = "VALUE=" ("date-and-or-time" / "text")
1497
- ANNIVERSARY-value = date-and-or-time / text
1498
- ; Value and parameter MUST match.
1499
-
1500
- ANNIVERSARY-param =/ altid-param / calscale-param / any-param
1501
- ; calscale-param can only be present when ANNIVERSARY-value is
1502
- ; date-and-or-time and actually contains a date or date-time.
1503
- ----
1504
-
1505
- Examples: ::
1506
- +
1507
- ....
1508
- ANNIVERSARY:19960415
1509
- ....
1510
-
1511
-
1512
- [[section6_2_7]]
1513
- ==== GENDER
1514
-
1515
- Purpose: :: To specify the components of the sex and gender identity of
1516
- the object the vCard represents.
1517
-
1518
- Value type: :: A single structured value with two components. Each
1519
- component has a single text value.
1520
-
1521
- Cardinality: :: *1
1522
-
1523
- Special notes: :: The components correspond, in sequence, to the sex
1524
- (biological), and gender identity. Each component is optional.
1525
-
1526
- Sex component: ::: A single letter. M stands for "male", F stands
1527
- for "female", O stands for "other", N stands for "none or not
1528
- applicable", U stands for "unknown".
1529
-
1530
- Gender identity component: ::: Free-form text.
1531
-
1532
- ABNF: ::
1533
- +
1534
- [source,abnf]
1535
- ----
1536
- GENDER-param = "VALUE=text" / any-param
1537
- GENDER-value = sex [";" text]
1538
-
1539
- sex = "" / "M" / "F" / "O" / "N" / "U"
1540
- ----
1541
-
1542
- Examples: ::
1543
- +
1544
- ....
1545
- GENDER:M
1546
- GENDER:F
1547
- GENDER:M;Fellow
1548
- GENDER:F;grrrl
1549
- GENDER:O;intersex
1550
- GENDER:;it's complicated
1551
- ....
1552
-
1553
- [[section6_3]]
1554
- === Delivery Addressing Properties
1555
-
1556
- These types are concerned with information related to the delivery
1557
- addressing or label for the vCard object.
1558
-
1559
- [[section6_3_1]]
1560
- ==== ADR
1561
-
1562
- Purpose: :: To specify the components of the delivery address for the
1563
- vCard object.
1564
-
1565
- Value type: :: A single structured text value, separated by the
1566
- SEMICOLON character (U+003B).
1567
-
1568
- Cardinality: :: *
1569
-
1570
- Special notes: :: The structured type value consists of a sequence of
1571
- address components. The component values [bcp14]#MUST# be specified in
1572
- their corresponding position. The structured type value
1573
- corresponds, in sequence, to
1574
- +
1575
- [empty]
1576
- * the post office box;
1577
- * the extended address (e.g., apartment or suite number);
1578
- * the street address;
1579
- * the locality (e.g., city);
1580
- * the region (e.g., state or province);
1581
- * the postal code;
1582
- * the country name (full name in the language specified in
1583
- <<section5_1>>).
1584
-
1585
- When a component value is missing, the associated component
1586
- separator [bcp14]#MUST# still be specified.
1587
-
1588
- Experience with vCard 3 has shown that the first two components
1589
- (post office box and extended address) are plagued with many
1590
- interoperability issues. To ensure maximal interoperability,
1591
- their values [bcp14]#SHOULD# be empty.
1592
-
1593
- The text components are separated by the SEMICOLON character
1594
- (U+003B). Where it makes semantic sense, individual text
1595
- components can include multiple text values (e.g., a "street"
1596
- component with multiple lines) separated by the COMMA character
1597
- (U+002C).
1598
-
1599
- The property can include the "PREF" parameter to indicate the
1600
- preferred delivery address when more than one address is
1601
- specified.
1602
-
1603
- The GEO and TZ parameters [bcp14]#MAY# be used with this property.
1604
-
1605
- The property can also include a "LABEL" parameter to present a
1606
- delivery address label for the address. Its value is a plain-text
1607
- string representing the formatted address. Newlines are encoded
1608
- as \n, as they are for property values.
1609
-
1610
- ABNF: ::
1611
- +
1612
- [source,abnf]
1613
- ----
1614
- label-param = "LABEL=" param-value
1615
-
1616
- ADR-param = "VALUE=text" / label-param / language-param
1617
- / geo-parameter / tz-parameter / altid-param / pid-param
1618
- / pref-param / type-param / any-param
1619
-
1620
- ADR-value = ADR-component-pobox ";" ADR-component-ext ";"
1621
- ADR-component-street ";" ADR-component-locality ";"
1622
- ADR-component-region ";" ADR-component-code ";"
1623
- ADR-component-country
1624
- ADR-component-pobox = list-component
1625
- ADR-component-ext = list-component
1626
- ADR-component-street = list-component
1627
- ADR-component-locality = list-component
1628
- ADR-component-region = list-component
1629
- ADR-component-code = list-component
1630
- ADR-component-country = list-component
1631
- ----
1632
-
1633
- Example: :: In this example, the post office box and the extended
1634
- address are absent.
1635
- +
1636
- ....
1637
- ADR;GEO="geo:12.3457,78.910";LABEL="Mr. John Q. Public, Esq.\n
1638
- Mail Drop: TNE QB\n123 Main Street\nAny Town, CA 91921-1234\n
1639
- U.S.A.":;;123 Main Street;Any Town;CA;91921-1234;U.S.A.
1640
- ....
1641
-
1642
- [[section6_4]]
1643
- === Communications Properties
1644
-
1645
- These properties describe information about how to communicate with
1646
- the object the vCard represents.
1647
-
1648
- [[section6_4_1]]
1649
- ==== TEL
1650
-
1651
- Purpose: :: To specify the telephone number for telephony communication
1652
- with the object the vCard represents.
1653
-
1654
- Value type: :: By default, it is a single free-form text value (for
1655
- backward compatibility with vCard 3), but it [bcp14]#SHOULD# be reset to a
1656
- URI value. It is expected that the URI scheme will be "tel", as
1657
- specified in cite:norm[RFC3966], but other schemes [bcp14]#MAY# be used.
1658
-
1659
- Cardinality: :: *
1660
-
1661
- Special notes: :: This property is based on the X.520 Telephone Number
1662
- attribute cite:norm[CCITT.X520.1988].
1663
- +
1664
- The property can include the "PREF" parameter to indicate a
1665
- preferred-use telephone number.
1666
- +
1667
- The property can include the parameter "TYPE" to specify intended
1668
- use for the telephone number. The predefined values for the TYPE
1669
- parameter are:
1670
-
1671
- [cols="2"]
1672
- |===
1673
- | Value | Description
1674
-
1675
- | text | Indicates that the telephone number supports text messages (SMS).
1676
- | voice | Indicates a voice telephone number.
1677
- | fax | Indicates a facsimile telephone number.
1678
- | cell | Indicates a cellular or mobile telephone number.
1679
- | video | Indicates a video conferencing telephone number.
1680
- | pager | Indicates a paging device telephone number.
1681
- | textphone
1682
- | Indicates a telecommunication device for people with hearing or speech difficulties.
1683
- |===
1684
-
1685
- The default type is "voice". These type parameter values can be
1686
- specified as a parameter list (e.g., TYPE=text;TYPE=voice) or as a
1687
- value list (e.g., TYPE="text,voice"). The default can be
1688
- overridden to another set of values by specifying one or more
1689
- alternate values. For example, the default TYPE of "voice" can be
1690
- reset to a VOICE and FAX telephone number by the value list
1691
- TYPE="voice,fax".
1692
-
1693
- If this property's value is a URI that can also be used for
1694
- instant messaging, the IMPP (<<section6_4_3>>) property [bcp14]#SHOULD# be
1695
- used in addition to this property.
1696
-
1697
- ABNF: ::
1698
- +
1699
- [source,abnf]
1700
- ----
1701
- TEL-param = TEL-text-param / TEL-uri-param
1702
- TEL-value = TEL-text-value / TEL-uri-value
1703
- ; Value and parameter MUST match.
1704
-
1705
- TEL-text-param = "VALUE=text"
1706
- TEL-text-value = text
1707
-
1708
- TEL-uri-param = "VALUE=uri" / mediatype-param
1709
- TEL-uri-value = URI
1710
-
1711
- TEL-param =/ type-param / pid-param / pref-param / altid-param
1712
- / any-param
1713
-
1714
- type-param-tel = "text" / "voice" / "fax" / "cell" / "video"
1715
- / "pager" / "textphone" / iana-token / x-name
1716
- ; type-param-tel MUST NOT be used with a property other than TEL.
1717
-
1718
- ----
1719
-
1720
- Example: ::
1721
- +
1722
- ....
1723
- TEL;VALUE=uri;PREF=1;TYPE="voice,home":tel:+1-555-555-5555;ext=5555
1724
- TEL;VALUE=uri;TYPE=home:tel:+33-01-23-45-67
1725
- ....
1726
-
1727
- [[section6_4_2]]
1728
- ==== EMAIL
1729
-
1730
- Purpose: :: To specify the electronic mail address for communication
1731
- with the object the vCard represents.
1732
-
1733
- Value type: :: A single text value.
1734
-
1735
- Cardinality: :: *
1736
-
1737
- Special notes: :: The property can include tye "PREF" parameter to
1738
- indicate a preferred-use email address when more than one is
1739
- specified.
1740
- +
1741
- Even though the value is free-form UTF-8 text, it is likely to be
1742
- interpreted by a Mail User Agent (MUA) as an "addr-spec", as
1743
- defined in cite:norm[RFC5322, suffix=", Section 3.4.1"]. Readers should also be aware
1744
- of the current work toward internationalized email addresses
1745
- cite:info[RFC5335bis].
1746
-
1747
- ABNF: ::
1748
- +
1749
- [source,abnf]
1750
- ----
1751
- EMAIL-param = "VALUE=text" / pid-param / pref-param / type-param
1752
- / altid-param / any-param
1753
- EMAIL-value = text
1754
- ----
1755
-
1756
- Example: ::
1757
- +
1758
- ....
1759
- EMAIL;TYPE=work:jqpublic@xyz.example.com
1760
-
1761
- EMAIL;PREF=1:jane_doe@example.com
1762
- ....
1763
-
1764
- [[section6_4_3]]
1765
- ==== IMPP
1766
-
1767
- Purpose: :: To specify the URI for instant messaging and presence
1768
- protocol communications with the object the vCard represents.
1769
-
1770
- Value type: :: A single URI.
1771
-
1772
- Cardinality: :: *
1773
-
1774
- Special notes: :: The property may include the "PREF" parameter to
1775
- indicate that this is a preferred address and has the same
1776
- semantics as the "PREF" parameter in a TEL property.
1777
- +
1778
- If this property's value is a URI that can be used for voice
1779
- and/or video, the TEL property (<<section6_4_1>>) [bcp14]#SHOULD# be used in
1780
- addition to this property.
1781
- +
1782
- This property is adapted from cite:info[RFC4770], which is made obsolete by
1783
- this document.
1784
-
1785
- ABNF: ::
1786
- +
1787
- [source,abnf]
1788
- ----
1789
- IMPP-param = "VALUE=uri" / pid-param / pref-param / type-param
1790
- / mediatype-param / altid-param / any-param
1791
- IMPP-value = URI
1792
- ----
1793
-
1794
- Example: ::
1795
- +
1796
- ....
1797
- IMPP;PREF=1:xmpp:alice@example.com
1798
- ....
1799
-
1800
- [[section6_4_4]]
1801
- ==== LANG
1802
-
1803
- Purpose: :: To specify the language(s) that may be used for contacting
1804
- the entity associated with the vCard.
1805
-
1806
- Value type: :: A single language-tag value.
1807
-
1808
- Cardinality: :: *
1809
-
1810
- ABNF: ::
1811
- +
1812
- [source,abnf]
1813
- ----
1814
- LANG-param = "VALUE=language-tag" / pid-param / pref-param
1815
- / altid-param / type-param / any-param
1816
- LANG-value = Language-Tag
1817
- ----
1818
-
1819
- Example: ::
1820
- +
1821
- ....
1822
- LANG;TYPE=work;PREF=1:en
1823
- LANG;TYPE=work;PREF=2:fr
1824
- LANG;TYPE=home:fr
1825
- ....
1826
-
1827
- [[section6_5]]
1828
- === Geographical Properties
1829
-
1830
- These properties are concerned with information associated with
1831
- geographical positions or regions associated with the object the
1832
- vCard represents.
1833
-
1834
- [[section6_5_1]]
1835
- ==== TZ
1836
-
1837
- Purpose: :: To specify information related to the time zone of the
1838
- object the vCard represents.
1839
-
1840
- Value type: :: The default is a single text value. It can also be
1841
- reset to a single URI or utc-offset value.
1842
-
1843
- Cardinality: :: *
1844
-
1845
- Special notes: :: It is expected that names from the public-domain
1846
- Olson database cite:info[TZ-DB] will be used, but this is not a
1847
- restriction. See also cite:info[IANA-TZ].
1848
- +
1849
- Efforts are currently being directed at creating a standard URI
1850
- scheme for expressing time zone information. Usage of such a
1851
- scheme would ensure a high level of interoperability between
1852
- implementations that support it.
1853
- +
1854
- Note that utc-offset values [bcp14]#SHOULD NOT# be used because the UTC
1855
- offset varies with time -- not just because of the usual daylight
1856
- saving time shifts that occur in may regions, but often entire
1857
- regions will "re-base" their overall offset. The actual offset
1858
- may be +/- 1 hour (or perhaps a little more) than the one given.
1859
-
1860
- ABNF: ::
1861
- +
1862
- [source,abnf]
1863
- ----
1864
- TZ-param = "VALUE=" ("text" / "uri" / "utc-offset")
1865
- TZ-value = text / URI / utc-offset
1866
- ; Value and parameter MUST match.
1867
-
1868
- TZ-param =/ altid-param / pid-param / pref-param / type-param
1869
- / mediatype-param / any-param
1870
- ----
1871
-
1872
- Examples: ::
1873
- +
1874
- ....
1875
- TZ:Raleigh/North America
1876
-
1877
- TZ;VALUE=utc-offset:-0500
1878
- ; Note: utc-offset format is NOT RECOMMENDED.
1879
- ....
1880
-
1881
- [[section6_5_2]]
1882
- ==== GEO
1883
-
1884
- Purpose: :: To specify information related to the global positioning of
1885
- the object the vCard represents.
1886
-
1887
- Value type: :: A single URI.
1888
-
1889
- Cardinality: :: *
1890
-
1891
- Special notes: :: The "geo" URI scheme cite:norm[RFC5870] is particularly well
1892
- suited for this property, but other schemes [bcp14]#MAY# be used.
1893
-
1894
-
1895
- ABNF: ::
1896
- +
1897
- [source,abnf]
1898
- ----
1899
- GEO-param = "VALUE=uri" / pid-param / pref-param / type-param
1900
- / mediatype-param / altid-param / any-param
1901
- GEO-value = URI
1902
- ----
1903
-
1904
- Example: ::
1905
- +
1906
- ....
1907
- GEO:geo:37.386013,-122.082932
1908
- ....
1909
-
1910
- [[section6_6]]
1911
- === Organizational Properties
1912
-
1913
- These properties are concerned with information associated with
1914
- characteristics of the organization or organizational units of the
1915
- object that the vCard represents.
1916
-
1917
- [[section6_6_1]]
1918
- ==== TITLE
1919
-
1920
- Purpose: :: To specify the position or job of the object the vCard
1921
- represents.
1922
-
1923
- Value type: :: A single text value.
1924
-
1925
- Cardinality: *
1926
-
1927
- Special notes: :: This property is based on the X.520 Title attribute
1928
- cite:norm[CCITT.X520.1988].
1929
-
1930
- ABNF: ::
1931
- +
1932
- [source,abnf]
1933
- ----
1934
- TITLE-param = "VALUE=text" / language-param / pid-param
1935
- / pref-param / altid-param / type-param / any-param
1936
- TITLE-value = text
1937
- ----
1938
-
1939
- Example: ::
1940
- +
1941
- ....
1942
- TITLE:Research Scientist
1943
- ....
1944
-
1945
- [[section6_6_2]]
1946
- ==== ROLE
1947
-
1948
- Purpose: :: To specify the function or part played in a particular
1949
- situation by the object the vCard represents.
1950
-
1951
- Value type: :: A single text value.
1952
-
1953
- Cardinality: :: *
1954
-
1955
- Special notes: This property is based on the X.520 Business Category
1956
- explanatory attribute cite:norm[CCITT.X520.1988]. This property is
1957
- included as an organizational type to avoid confusion with the
1958
- semantics of the TITLE property and incorrect usage of that
1959
- property when the semantics of this property is intended.
1960
-
1961
- ABNF: ::
1962
- +
1963
- [source,abnf]
1964
- ----
1965
- ROLE-param = "VALUE=text" / language-param / pid-param / pref-param
1966
- / type-param / altid-param / any-param
1967
- ROLE-value = text
1968
- ----
1969
-
1970
- Example: ::
1971
- +
1972
- ....
1973
- ROLE:Project Leader
1974
- ....
1975
-
1976
- [[section6_6_3]]
1977
- ==== LOGO
1978
-
1979
- Purpose: :: To specify a graphic image of a logo associated with the
1980
- object the vCard represents.
1981
-
1982
- Value type: :: A single URI.
1983
-
1984
- Cardinality: :: *
1985
-
1986
- ABNF: ::
1987
- +
1988
- [source,abnf]
1989
- ----
1990
- LOGO-param = "VALUE=uri" / language-param / pid-param / pref-param
1991
- / type-param / mediatype-param / altid-param / any-param
1992
- LOGO-value = URI
1993
- ----
1994
-
1995
- Examples: ::
1996
- +
1997
- ....
1998
- LOGO:http://www.example.com/pub/logos/abccorp.jpg
1999
-
2000
- LOGO:data:image/jpeg;base64,MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvc
2001
- AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm
2002
- ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0
2003
- <...the remainder of base64-encoded data...>
2004
- ....
2005
-
2006
- [[section6_6_4]]
2007
- ==== ORG
2008
-
2009
- Purpose: :: To specify the organizational name and units associated
2010
- with the vCard.
2011
-
2012
- Value type: :: A single structured text value consisting of components
2013
- separated by the SEMICOLON character (U+003B).
2014
-
2015
- Cardinality: :: *
2016
-
2017
- Special notes: :: The property is based on the X.520 Organization Name
2018
- and Organization Unit attributes cite:norm[CCITT.X520.1988]. The property
2019
- value is a structured type consisting of the organization name,
2020
- followed by zero or more levels of organizational unit names.
2021
- +
2022
- The SORT-AS parameter [bcp14]#MAY# be applied to this property.
2023
-
2024
- ABNF: ::
2025
- +
2026
- [source,abnf]
2027
- ----
2028
- ORG-param = "VALUE=text" / sort-as-param / language-param
2029
- / pid-param / pref-param / altid-param / type-param
2030
- / any-param
2031
- ORG-value = component *(";" component)
2032
- ----
2033
-
2034
- Example: :: A property value consisting of an organizational name,
2035
- organizational unit #1 name, and organizational unit #2 name.
2036
- +
2037
- ....
2038
- ORG:ABC\, Inc.;North American Division;Marketing
2039
- ....
2040
-
2041
- [[section6_6_5]]
2042
- ==== MEMBER
2043
-
2044
- Purpose: :: To include a member in the group this vCard represents.
2045
-
2046
- Value type: :: A single URI. It [bcp14]#MAY# refer to something other than a
2047
- vCard object. For example, an email distribution list could
2048
- employ the "mailto" URI scheme cite:info[RFC6068] for efficiency.
2049
-
2050
- Cardinality: :: *
2051
-
2052
- Special notes: :: This property [bcp14]#MUST NOT# be present unless the value of
2053
- the KIND property is "group".
2054
-
2055
- ABNF: ::
2056
- +
2057
- [source,abnf]
2058
- ----
2059
- MEMBER-param = "VALUE=uri" / pid-param / pref-param / altid-param
2060
- / mediatype-param / any-param
2061
- MEMBER-value = URI
2062
- ----
2063
-
2064
- Examples: ::
2065
- +
2066
- ....
2067
- BEGIN:VCARD
2068
- VERSION:4.0
2069
- KIND:group
2070
- FN:The Doe family
2071
- MEMBER:urn:uuid:03a0e51f-d1aa-4385-8a53-e29025acd8af
2072
- MEMBER:urn:uuid:b8767877-b4a1-4c70-9acc-505d3819e519
2073
- END:VCARD
2074
- BEGIN:VCARD
2075
- VERSION:4.0
2076
- FN:John Doe
2077
- UID:urn:uuid:03a0e51f-d1aa-4385-8a53-e29025acd8af
2078
- END:VCARD
2079
- BEGIN:VCARD
2080
- VERSION:4.0
2081
- FN:Jane Doe
2082
- UID:urn:uuid:b8767877-b4a1-4c70-9acc-505d3819e519
2083
- END:VCARD
2084
-
2085
- BEGIN:VCARD
2086
- VERSION:4.0
2087
- KIND:group
2088
- FN:Funky distribution list
2089
- MEMBER:mailto:subscriber1@example.com
2090
- MEMBER:xmpp:subscriber2@example.com
2091
- MEMBER:sip:subscriber3@example.com
2092
- MEMBER:tel:+1-418-555-5555
2093
- END:VCARD
2094
- ....
2095
-
2096
- [[section6_6_6]]
2097
- ==== RELATED
2098
-
2099
- Purpose: :: To specify a relationship between another entity and the
2100
- entity represented by this vCard.
2101
-
2102
- Value type: :: A single URI. It can also be reset to a single text
2103
- value. The text value can be used to specify textual information.
2104
-
2105
- Cardinality: :: *
2106
-
2107
- Special notes: :: The TYPE parameter [bcp14]#MAY# be used to characterize the
2108
- related entity. It contains a comma-separated list of values that
2109
- are registered with IANA as described in <<section10_2>>. The
2110
- registry is pre-populated with the values defined in cite:norm[xfn]. This
2111
- document also specifies two additional values:
2112
-
2113
- agent: ::: an entity who may sometimes act on behalf of the entity
2114
- associated with the vCard.
2115
-
2116
- emergency: ::: indicates an emergency contact
2117
-
2118
- +
2119
- ABNF: ::
2120
- +
2121
- [source,abnf]
2122
- ----
2123
- RELATED-param = RELATED-param-uri / RELATED-param-text
2124
- RELATED-value = URI / text
2125
- ; Parameter and value MUST match.
2126
-
2127
- RELATED-param-uri = "VALUE=uri" / mediatype-param
2128
- RELATED-param-text = "VALUE=text" / language-param
2129
-
2130
- RELATED-param =/ pid-param / pref-param / altid-param / type-param
2131
- / any-param
2132
-
2133
- type-param-related = related-type-value *("," related-type-value)
2134
- ; type-param-related MUST NOT be used with a property other than
2135
- ; RELATED.
2136
-
2137
- related-type-value = "contact" / "acquaintance" / "friend" / "met"
2138
- / "co-worker" / "colleague" / "co-resident"
2139
- / "neighbor" / "child" / "parent"
2140
- / "sibling" / "spouse" / "kin" / "muse"
2141
- / "crush" / "date" / "sweetheart" / "me"
2142
- / "agent" / "emergency"
2143
- ----
2144
-
2145
- Examples: ::
2146
- +
2147
- ....
2148
- RELATED;TYPE=friend:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
2149
- RELATED;TYPE=contact:http://example.com/directory/jdoe.vcf
2150
- RELATED;TYPE=co-worker;VALUE=text:Please contact my assistant Jane
2151
- Doe for any inquiries.
2152
- ....
2153
-
2154
- [[section6_7]]
2155
- === Explanatory Properties
2156
-
2157
- These properties are concerned with additional explanations, such as
2158
- that related to informational notes or revisions specific to the
2159
- vCard.
2160
-
2161
- [[section6_7_1]]
2162
- ==== CATEGORIES
2163
-
2164
- Purpose: :: To specify application category information about the
2165
- vCard, also known as "tags".
2166
-
2167
- Value type: :: One or more text values separated by a COMMA character
2168
- (U+002C).
2169
-
2170
- Cardinality: :: *
2171
-
2172
- ABNF: ::
2173
- +
2174
- [source,abnf]
2175
- ----
2176
- CATEGORIES-param = "VALUE=text" / pid-param / pref-param
2177
- / type-param / altid-param / any-param
2178
- CATEGORIES-value = text-list
2179
- ----
2180
-
2181
- Example: ::
2182
- +
2183
- ....
2184
- CATEGORIES:TRAVEL AGENT
2185
-
2186
- CATEGORIES:INTERNET,IETF,INDUSTRY,INFORMATION TECHNOLOGY
2187
- ....
2188
-
2189
- [[section6_7_2]]
2190
- ==== NOTE
2191
-
2192
- Purpose: :: To specify supplemental information or a comment that is
2193
- associated with the vCard.
2194
-
2195
- Value type: :: A single text value.
2196
-
2197
- Cardinality: :: *
2198
-
2199
- Special notes: The property is based on the X.520 Description
2200
- attribute cite:norm[CCITT.X520.1988].
2201
-
2202
- ABNF: ::
2203
- +
2204
- [source,abnf]
2205
- ----
2206
- NOTE-param = "VALUE=text" / language-param / pid-param / pref-param
2207
- / type-param / altid-param / any-param
2208
- NOTE-value = text
2209
- ----
2210
-
2211
- Example: ::
2212
- +
2213
- ....
2214
- NOTE:This fax number is operational 0800 to 1715
2215
- EST\, Mon-Fri.
2216
- ....
2217
-
2218
- [[section6_7_3]]
2219
- ==== PRODID
2220
-
2221
- Purpose: :: To specify the identifier for the product that created the
2222
- vCard object.
2223
-
2224
- Type value: :: A single text value.
2225
-
2226
- Cardinality: :: *1
2227
-
2228
- Special notes: :: Implementations [bcp14]#SHOULD# use a method such as that
2229
- specified for Formal Public Identifiers in cite:info[ISO9070] or for
2230
- Universal Resource Names in cite:info[RFC3406] to ensure that the text
2231
- value is unique.
2232
-
2233
- ABNF: ::
2234
- +
2235
- [source,abnf]
2236
- ----
2237
- PRODID-param = "VALUE=text" / any-param
2238
- PRODID-value = text
2239
- ----
2240
-
2241
- Example: ::
2242
- +
2243
- ....
2244
- PRODID:-//ONLINE DIRECTORY//NONSGML Version 1//EN
2245
- ....
2246
-
2247
- [[section6_7_4]]
2248
- ==== REV
2249
-
2250
- Purpose: :: To specify revision information about the current vCard.
2251
-
2252
- Value type: :: A single timestamp value.
2253
-
2254
- Cardinality: :: *1
2255
-
2256
- Special notes: :: The value distinguishes the current revision of the
2257
- information in this vCard for other renditions of the information.
2258
-
2259
- ABNF: ::
2260
- +
2261
- [source,abnf]
2262
- ----
2263
- REV-param = "VALUE=timestamp" / any-param
2264
- REV-value = timestamp
2265
- ----
2266
-
2267
- Example: ::
2268
- +
2269
- ....
2270
- REV:19951031T222710Z
2271
- ....
2272
-
2273
- [[section6_7_5]]
2274
- ==== SOUND
2275
-
2276
- Purpose: :: To specify a digital sound content information that
2277
- annotates some aspect of the vCard. This property is often used
2278
- to specify the proper pronunciation of the name property value of
2279
- the vCard.
2280
-
2281
- Value type: :: A single URI.
2282
-
2283
- Cardinality: :: *
2284
-
2285
- ABNF: ::
2286
- +
2287
- [source,abnf]
2288
- ----
2289
- SOUND-param = "VALUE=uri" / language-param / pid-param / pref-param
2290
- / type-param / mediatype-param / altid-param
2291
- / any-param
2292
- SOUND-value = URI
2293
- ----
2294
-
2295
- Example: ::
2296
- +
2297
- ....
2298
- SOUND:CID:JOHNQPUBLIC.part8.19960229T080000.xyzMail@example.com
2299
-
2300
- SOUND:data:audio/basic;base64,MIICajCCAdOgAwIBAgICBEUwDQYJKoZIh
2301
- AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm
2302
- ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0
2303
- <...the remainder of base64-encoded data...>
2304
- ....
2305
-
2306
- [[section6_7_6]]
2307
- ==== UID
2308
-
2309
- Purpose: :: To specify a value that represents a globally unique
2310
- identifier corresponding to the entity associated with the vCard.
2311
-
2312
- Value type: :: A single URI value. It [bcp14]#MAY# also be reset to free-form
2313
- text.
2314
-
2315
- Cardinality: :: *1
2316
-
2317
- Special notes: :: This property is used to uniquely identify the object
2318
- that the vCard represents. The "uuid" URN namespace defined in
2319
- cite:norm[RFC4122] is particularly well suited to this task, but other URI
2320
- schemes [bcp14]#MAY# be used. Free-form text [bcp14]#MAY# also be used.
2321
-
2322
- ABNF: ::
2323
- +
2324
- [source,abnf]
2325
- ----
2326
- UID-param = UID-uri-param / UID-text-param
2327
- UID-value = UID-uri-value / UID-text-value
2328
- ; Value and parameter MUST match.
2329
-
2330
- UID-uri-param = "VALUE=uri"
2331
- UID-uri-value = URI
2332
-
2333
- UID-text-param = "VALUE=text"
2334
- UID-text-value = text
2335
-
2336
- UID-param =/ any-param
2337
- ----
2338
-
2339
- Example: ::
2340
- +
2341
- ....
2342
- UID:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
2343
- ....
2344
-
2345
- [[section6_7_7]]
2346
- ==== CLIENTPIDMAP
2347
-
2348
- Purpose: :: To give a global meaning to a local PID source identifier.
2349
-
2350
- Value type: :: A semicolon-separated pair of values. The first field
2351
- is a small integer corresponding to the second field of a PID
2352
- parameter instance. The second field is a URI. The "uuid" URN
2353
- namespace defined in cite:norm[RFC4122] is particularly well suited to this
2354
- task, but other URI schemes [bcp14]#MAY# be used.
2355
-
2356
- Cardinality: :: *
2357
-
2358
- Special notes: :: PID source identifiers (the source identifier is the
2359
- second field in a PID parameter instance) are small integers that
2360
- only have significance within the scope of a single vCard
2361
- instance. Each distinct source identifier present in a vCard [bcp14]#MUST#
2362
- have an associated CLIENTPIDMAP. See <<section7>> for more details
2363
- on the usage of CLIENTPIDMAP.
2364
- +
2365
- PID source identifiers [bcp14]#MUST# be strictly positive. Zero is not
2366
- allowed.
2367
- +
2368
- As a special exception, the PID parameter [bcp14]#MUST NOT# be applied to
2369
- this property.
2370
-
2371
- ABNF: ::
2372
- +
2373
- [source,abnf]
2374
- ----
2375
- CLIENTPIDMAP-param = any-param
2376
- CLIENTPIDMAP-value = 1*DIGIT ";" URI
2377
- ----
2378
-
2379
- Example: ::
2380
- +
2381
- ....
2382
- TEL;PID=3.1,4.2;VALUE=uri:tel:+1-555-555-5555
2383
- EMAIL;PID=4.1,5.2:jdoe@example.com
2384
- CLIENTPIDMAP:1;urn:uuid:3df403f4-5924-4bb7-b077-3c711d9eb34b
2385
- CLIENTPIDMAP:2;urn:uuid:d89c9c7a-2e1b-4832-82de-7e992d95faa5
2386
- ....
2387
-
2388
- [[section6_7_8]]
2389
- ==== URL
2390
-
2391
- Purpose: :: To specify a uniform resource locator associated with the
2392
- object to which the vCard refers. Examples for individuals
2393
- include personal web sites, blogs, and social networking site
2394
- identifiers.
2395
-
2396
- Cardinality: :: *
2397
-
2398
- Value type: :: A single uri value.
2399
-
2400
- ABNF: ::
2401
- +
2402
- [source,abnf]
2403
- ----
2404
- URL-param = "VALUE=uri" / pid-param / pref-param / type-param
2405
- / mediatype-param / altid-param / any-param
2406
- URL-value = URI
2407
- ----
2408
-
2409
- Example: ::
2410
- +
2411
- ....
2412
- URL:http://example.org/restaurant.french/~chezchic.html
2413
- ....
2414
-
2415
- [[section6_7_9]]
2416
- ==== VERSION
2417
-
2418
- Purpose: :: To specify the version of the vCard specification used to
2419
- format this vCard.
2420
-
2421
- Value type: :: A single text value.
2422
-
2423
- Cardinality: :: 1
2424
-
2425
- Special notes: :: This property [bcp14]#MUST# be present in the vCard object,
2426
- and it must appear immediately after BEGIN:VCARD. The value [bcp14]#MUST#
2427
- be "4.0" if the vCard corresponds to this specification. Note
2428
- that earlier versions of vCard allowed this property to be placed
2429
- anywhere in the vCard object, or even to be absent.
2430
-
2431
- ABNF: ::
2432
- +
2433
- [source,abnf]
2434
- ----
2435
- VERSION-param = "VALUE=text" / any-param
2436
- VERSION-value = "4.0"
2437
- ----
2438
-
2439
- Example: ::
2440
- +
2441
- ....
2442
- VERSION:4.0
2443
- ....
2444
-
2445
- [[section6_8]]
2446
- === Security Properties
2447
-
2448
- These properties are concerned with the security of communication
2449
- pathways or access to the vCard.
2450
-
2451
- [[section6_8_1]]
2452
- ==== KEY
2453
-
2454
- Purpose: :: To specify a public key or authentication certificate
2455
- associated with the object that the vCard represents.
2456
-
2457
- Value type: :: A single URI. It can also be reset to a text value.
2458
-
2459
- Cardinality: :: *
2460
-
2461
- ABNF: ::
2462
- +
2463
- [source,abnf]
2464
- ----
2465
- KEY-param = KEY-uri-param / KEY-text-param
2466
- KEY-value = KEY-uri-value / KEY-text-value
2467
- ; Value and parameter MUST match.
2468
-
2469
- KEY-uri-param = "VALUE=uri" / mediatype-param
2470
- KEY-uri-value = URI
2471
-
2472
- KEY-text-param = "VALUE=text"
2473
- KEY-text-value = text
2474
-
2475
- KEY-param =/ altid-param / pid-param / pref-param / type-param
2476
- / any-param
2477
- ----
2478
-
2479
- Examples: ::
2480
- +
2481
- ....
2482
- KEY:http://www.example.com/keys/jdoe.cer
2483
-
2484
- KEY;MEDIATYPE=application/pgp-keys:ftp://example.com/keys/jdoe
2485
-
2486
- KEY:data:application/pgp-keys;base64,MIICajCCAdOgAwIBAgICBE
2487
- UwDQYJKoZIhvcNAQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05l
2488
- <... remainder of base64-encoded data ...>
2489
- ....
2490
-
2491
- [[section6_9]]
2492
- === Calendar Properties
2493
-
2494
- These properties are further specified in cite:norm[RFC2739].
2495
-
2496
- [[secton6_9_1]]
2497
- ==== FBURL
2498
-
2499
- Purpose: :: To specify the URI for the busy time associated with the
2500
- object that the vCard represents.
2501
-
2502
- Value type: :: A single URI value.
2503
-
2504
- Cardinality: :: *
2505
-
2506
- Special notes: :: Where multiple FBURL properties are specified, the
2507
- default FBURL property is indicated with the PREF parameter. The
2508
- FTP cite:info[RFC1738] or HTTP cite:info[RFC2616] type of URI points to an iCalendar
2509
- cite:norm[RFC5545] object associated with a snapshot of the next few weeks
2510
- or months of busy time data. If the iCalendar object is
2511
- represented as a file or document, its file extension should be
2512
- ".ifb".
2513
-
2514
- ABNF: ::
2515
- +
2516
- [source,abnf]
2517
- ----
2518
- FBURL-param = "VALUE=uri" / pid-param / pref-param / type-param
2519
- / mediatype-param / altid-param / any-param
2520
- FBURL-value = URI
2521
- ----
2522
-
2523
- Examples: ::
2524
- +
2525
- ....
2526
- FBURL;PREF=1:http://www.example.com/busy/janedoe
2527
- FBURL;MEDIATYPE=text/calendar:ftp://example.com/busy/project-a.ifb
2528
- ....
2529
-
2530
- [[section6_9_2]]
2531
- ==== CALADRURI
2532
-
2533
- Purpose: :: To specify the calendar user address cite:norm[RFC5545] to which a
2534
- scheduling request cite:norm[RFC5546] should be sent for the object
2535
- represented by the vCard.
2536
-
2537
- Value type: :: A single URI value.
2538
-
2539
- Cardinality: :: *
2540
-
2541
- Special notes: :: Where multiple CALADRURI properties are specified,
2542
- the default CALADRURI property is indicated with the PREF
2543
- parameter.
2544
-
2545
- ABNF: ::
2546
- +
2547
- [source,abnf]
2548
- ----
2549
- CALADRURI-param = "VALUE=uri" / pid-param / pref-param / type-param
2550
- / mediatype-param / altid-param / any-param
2551
- CALADRURI-value = URI
2552
- ----
2553
-
2554
- Example: ::
2555
- +
2556
- ....
2557
- CALADRURI;PREF=1:mailto:janedoe@example.com
2558
- CALADRURI:http://example.com/calendar/jdoe
2559
- ....
2560
-
2561
- [[section6_9_3]]
2562
- ==== CALURI
2563
-
2564
- Purpose: :: To specify the URI for a calendar associated with the
2565
- object represented by the vCard.
2566
-
2567
- Value type: :: A single URI value.
2568
-
2569
- Cardinality: :: *
2570
-
2571
- Special notes: :: Where multiple CALURI properties are specified, the
2572
- default CALURI property is indicated with the PREF parameter. The
2573
- property should contain a URI pointing to an iCalendar cite:norm[RFC5545]
2574
- object associated with a snapshot of the user's calendar store.
2575
- If the iCalendar object is represented as a file or document, its
2576
- file extension should be ".ics".
2577
-
2578
- ABNF: ::
2579
- +
2580
- [source,abnf]
2581
- ----
2582
- CALURI-param = "VALUE=uri" / pid-param / pref-param / type-param
2583
- / mediatype-param / altid-param / any-param
2584
- CALURI-value = URI
2585
- ----
2586
-
2587
- Examples: ::
2588
- +
2589
- ....
2590
- CALURI;PREF=1:http://cal.example.com/calA
2591
- CALURI;MEDIATYPE=text/calendar:ftp://ftp.example.com/calA.ics
2592
- ....
2593
-
2594
- [[section6_10]]
2595
- === Extended Properties and Parameters
2596
-
2597
- The properties and parameters defined by this document can be
2598
- extended. Non-standard, private properties and parameters with a
2599
- name starting with "X-" may be defined bilaterally between two
2600
- cooperating agents without outside registration or standardization.
2601
-
2602
- [[section7]]
2603
- == Synchronization
2604
-
2605
- vCard data often needs to be synchronized between devices. In this
2606
- context, synchronization is defined as the intelligent merging of two
2607
- representations of the same object. vCard 4.0 includes mechanisms to
2608
- aid this process.
2609
-
2610
- [[section7_1]]
2611
- === Mechanisms
2612
-
2613
- Two mechanisms are available: the UID property is used to match
2614
- multiple instances of the same vCard, while the PID parameter is used
2615
- to match multiple instances of the same property.
2616
-
2617
- The term "matching" is used here to mean recognizing that two
2618
- instances are in fact representations of the same object. For
2619
- example, a single vCard that is shared with someone results in two
2620
- vCard instances. After they have evolved separately, they still
2621
- represent the same object, and therefore may be matched by a
2622
- synchronization engine.
2623
-
2624
- [[section7_1_1]]
2625
- ==== Matching vCard Instances
2626
-
2627
- vCard instances for which the UID properties (<<section6_7_6>>) are
2628
- equivalent [bcp14]#MUST# be matched. Equivalence is determined as specified
2629
- in cite:norm[RFC3986, suffix=", Section 6"].
2630
-
2631
- In all other cases, vCard instances [bcp14]#MAY# be matched at the discretion
2632
- of the synchronization engine.
2633
-
2634
- [[section7_1_2]]
2635
- ==== Matching Property Instances
2636
-
2637
- Property instances belonging to unmatched vCards [bcp14]#MUST NOT# be matched.
2638
-
2639
- Property instances whose name (e.g., EMAIL, TEL, etc.) is not the
2640
- same [bcp14]#MUST NOT# be matched.
2641
-
2642
- Property instances whose name is CLIENTPIDMAP are handled separately
2643
- and [bcp14]#MUST NOT# be matched. The synchronization [bcp14]#MUST# ensure that there
2644
- is consistency of CLIENTPIDMAPs among matched vCard instances.
2645
-
2646
- Property instances belonging to matched vCards, whose name is the
2647
- same, and whose maximum cardinality is 1, [bcp14]#MUST# be matched.
2648
-
2649
- Property instances belonging to matched vCards, whose name is the
2650
- same, and whose PID parameters match, [bcp14]#MUST# be matched. See
2651
- <<section7_1_3>> for details on PID matching.
2652
-
2653
- In all other cases, property instances [bcp14]#MAY# be matched at the
2654
- discretion of the synchronization engine.
2655
-
2656
- [[section7_1_3]]
2657
- ==== PID Matching
2658
-
2659
- Two PID values for which the first fields are equivalent represent
2660
- the same local value.
2661
-
2662
- Two PID values representing the same local value and for which the
2663
- second fields point to CLIENTPIDMAP properties whose second field
2664
- URIs are equivalent (as specified in cite:norm[RFC3986, suffix=", Section 6"]) also
2665
- represent the same global value.
2666
-
2667
- PID parameters for which at least one pair of their values represent
2668
- the same global value [bcp14]#MUST# be matched.
2669
-
2670
- In all other cases, PID parameters [bcp14]#MAY# be matched at the discretion
2671
- of the synchronization engine.
2672
-
2673
- For example, PID value "5.1", in the first vCard below, and PID value
2674
- "5.2", in the second vCard below, represent the same global value.
2675
-
2676
-
2677
- ....
2678
- BEGIN:VCARD
2679
- VERSION:4.0
2680
- EMAIL;PID=4.2,5.1:jdoe@example.com
2681
- CLIENTPIDMAP:1;urn:uuid:3eef374e-7179-4196-a914-27358c3e6527
2682
- CLIENTPIDMAP:2;urn:uuid:42bcd5a7-1699-4514-87b4-056edf68e9cc
2683
- END:VCARD
2684
- ....
2685
-
2686
- ....
2687
- BEGIN:VCARD
2688
- VERSION:4.0
2689
- EMAIL;PID=5.1,5.2:john@example.com
2690
- CLIENTPIDMAP:1;urn:uuid:0c75c629-6a8d-4d5e-a07f-1bb35846854d
2691
- CLIENTPIDMAP:2;urn:uuid:3eef374e-7179-4196-a914-27358c3e6527
2692
- END:VCARD
2693
- ....
2694
-
2695
- [[section7_2]]
2696
- === Example
2697
-
2698
- [[section7_2_1]]
2699
- ==== Creation
2700
-
2701
- The following simple vCard is first created on a given device.
2702
-
2703
- ....
2704
- BEGIN:VCARD
2705
- VERSION:4.0
2706
- UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
2707
- FN;PID=1.1:J. Doe
2708
- N:Doe;J.;;;
2709
- EMAIL;PID=1.1:jdoe@example.com
2710
- CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
2711
- END:VCARD
2712
- ....
2713
-
2714
- This new vCard is assigned the UID
2715
- "urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1" by the creating
2716
- device. The FN and EMAIL properties are assigned the same local
2717
- value of 1, and this value is given global context by associating it
2718
- with "urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556", which
2719
- represents the creating device. We are at liberty to reuse the same
2720
- local value since instances of different properties will never be
2721
- matched. The N property has no PID because it is forbidden by its
2722
- maximum cardinality of 1.
2723
-
2724
- [[section7_2_2]]
2725
- ==== Initial Sharing
2726
-
2727
- This vCard is shared with a second device. Upon inspecting the UID
2728
- property, the second device understands that this is a new vCard
2729
- (i.e., unmatched) and thus the synchronization results in a simple
2730
- copy.
2731
-
2732
- [[section7_2_3]]
2733
- ==== Adding and Sharing a Property
2734
-
2735
- A new phone number is created on the first device, then the vCard is
2736
- shared with the second device. This is what the second device
2737
- receives:
2738
-
2739
- ....
2740
- BEGIN:VCARD
2741
- VERSION:4.0
2742
- UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
2743
- FN;PID=1.1:J. Doe
2744
- N:Doe;J.;;;
2745
- EMAIL;PID=1.1:jdoe@example.com
2746
- TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
2747
- CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
2748
- END:VCARD
2749
- ....
2750
-
2751
- Upon inspecting the UID property, the second device matches the vCard
2752
- it received to the vCard that it already has stored. It then starts
2753
- comparing the properties of the two vCards in same-named pairs.
2754
-
2755
- The FN properties are matched because the PID parameters have the
2756
- same global value. Since the property value is the same, no update
2757
- takes place.
2758
-
2759
- The N properties are matched automatically because their maximum
2760
- cardinality is 1. Since the property value is the same, no update
2761
- takes place.
2762
-
2763
- The EMAIL properties are matched because the PID parameters have the
2764
- same global value. Since the property value is the same, no update
2765
- takes place.
2766
-
2767
- The TEL property in the new vCard is not matched to any in the stored
2768
- vCard because no property in the stored vCard has the same name.
2769
- Therefore, this property is copied from the new vCard to the stored
2770
- vCard.
2771
-
2772
- The CLIENTPIDMAP property is handled separately by the
2773
- synchronization engine. It ensures that it is consistent with the
2774
- stored one. If it was not, the results would be up to the
2775
- synchronization engine, and thus undefined by this document.
2776
-
2777
- [[section7_2_4]]
2778
- ==== Simultaneous Editing
2779
-
2780
- A new email address and a new phone number are added to the vCard on
2781
- each of the two devices, and then a new synchronization event
2782
- happens. Here are the vCards that are communicated to each other:
2783
-
2784
- ....
2785
- BEGIN:VCARD
2786
- VERSION:4.0
2787
- UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
2788
- FN;PID=1.1:J. Doe
2789
- N:Doe;J.;;;
2790
- EMAIL;PID=1.1:jdoe@example.com
2791
- EMAIL;PID=2.1:boss@example.com
2792
- TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
2793
- TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666
2794
- CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
2795
- END:VCARD
2796
- ....
2797
-
2798
- ....
2799
- BEGIN:VCARD
2800
- VERSION:4.0
2801
- UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
2802
- FN;PID=1.1:J. Doe
2803
- N:Doe;J.;;;
2804
- EMAIL;PID=1.1:jdoe@example.com
2805
- EMAIL;PID=2.2:ceo@example.com
2806
- TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
2807
- TEL;PID=2.2;VALUE=uri:tel:+1-666-666-6666
2808
- CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
2809
- CLIENTPIDMAP:2;urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee
2810
- END:VCARD
2811
- ....
2812
-
2813
- On the first device, the same PID source identifier (1) is reused for
2814
- the new EMAIL and TEL properties. On the second device, a new source
2815
- identifier (2) is generated, and a corresponding CLIENTPIDMAP
2816
- property is created. It contains the second device's identifier,
2817
- "urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee".
2818
-
2819
- The new EMAIL properties are unmatched on both sides since the PID
2820
- global value is new in both cases. The sync thus results in a copy
2821
- on both sides.
2822
-
2823
- Although the situation appears to be the same for the TEL properties,
2824
- in this case, the synchronization engine is particularly smart and
2825
- matches the two new TEL properties even though their PID global
2826
- values are different. Note that in this case, the rules of
2827
- <<section7_1_2>> state that two properties [bcp14]#MAY# be matched at the
2828
- discretion of the synchronization engine. Therefore, the two
2829
- properties are merged.
2830
-
2831
- All this results in the following vCard, which is stored on both
2832
- devices:
2833
-
2834
-
2835
- ....
2836
- BEGIN:VCARD
2837
- VERSION:4.0
2838
- UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
2839
- FN:J. Doe
2840
- N:Doe;J.;;;
2841
- EMAIL;PID=1.1:jdoe@example.com
2842
- EMAIL;PID=2.1:boss@example.com
2843
- EMAIL;PID=2.2:ceo@example.com
2844
- TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
2845
- TEL;PID=2.1,2.2;VALUE=uri:tel:+1-666-666-6666
2846
- CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
2847
- CLIENTPIDMAP:2;urn:uuid:1f762d2b-03c4-4a83-9a03-75ff658a6eee
2848
- END:VCARD
2849
- ....
2850
-
2851
- [[section7_2_5]]
2852
- ==== Global Context Simplification
2853
-
2854
- The two devices finish their synchronization procedure by simplifying
2855
- their global contexts. Since they haven't talked to any other
2856
- device, the following vCard is for all purposes equivalent to the
2857
- above. It is also shorter.
2858
-
2859
- ....
2860
- BEGIN:VCARD
2861
- VERSION:4.0
2862
- UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
2863
- FN:J. Doe
2864
- N:Doe;J.;;;
2865
- EMAIL;PID=1.1:jdoe@example.com
2866
- EMAIL;PID=2.1:boss@example.com
2867
- EMAIL;PID=3.1:ceo@example.com
2868
- TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
2869
- TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666
2870
- CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
2871
- END:VCARD
2872
- ....
2873
-
2874
- The details of global context simplification are unspecified by this
2875
- document. They are left up to the synchronization engine. This
2876
- example is merely intended to illustrate the possibility, which
2877
- investigating would be, in the author's opinion, worthwhile.
2878
-
2879
- [[section8]]
2880
- == Example: Author's vCard
2881
-
2882
- ....
2883
- BEGIN:VCARD
2884
- VERSION:4.0
2885
- FN:Simon Perreault
2886
- N:Perreault;Simon;;;ing. jr,M.Sc.
2887
- BDAY:--0203
2888
- ANNIVERSARY:20090808T1430-0500
2889
- GENDER:M
2890
- LANG;PREF=1:fr
2891
- LANG;PREF=2:en
2892
- ORG;TYPE=work:Viagenie
2893
- ADR;TYPE=work:;Suite D2-630;2875 Laurier;
2894
- Quebec;QC;G1V 2M2;Canada
2895
- TEL;VALUE=uri;TYPE="work,voice";PREF=1:tel:+1-418-656-9254;ext=102
2896
- TEL;VALUE=uri;TYPE="work,cell,voice,video,text":tel:+1-418-262-6501
2897
- EMAIL;TYPE=work:simon.perreault@viagenie.ca
2898
- GEO;TYPE=work:geo:46.772673,-71.282945
2899
- KEY;TYPE=work;VALUE=uri:
2900
- http://www.viagenie.ca/simon.perreault/simon.asc
2901
- TZ:-0500
2902
- URL;TYPE=home:http://nomis80.org
2903
- END:VCARD
2904
- ....
2905
-
2906
- [[section9]]
2907
- == Security Considerations
2908
-
2909
- * Internet mail is often used to transport vCards and is subject to
2910
- many well-known security attacks, including monitoring, replay,
2911
- and forgery. Care should be taken by any directory service in
2912
- allowing information to leave the scope of the service itself,
2913
- where any access controls or confidentiality can no longer be
2914
- guaranteed. Applications should also take care to display
2915
- directory data in a "safe" environment.
2916
-
2917
- * vCards can carry cryptographic keys or certificates, as described
2918
- in <<section6_8_1>>.
2919
-
2920
- * vCards often carry information that can be sensitive (e.g.,
2921
- birthday, address, and phone information). Although vCards have
2922
- no inherent authentication or confidentiality provisions, they can
2923
- easily be carried by any security mechanism that transfers MIME
2924
- objects to address authentication or confidentiality (e.g., S/MIME
2925
- cite:info[RFC5751], OpenPGP cite:info[RFC4880]). In cases where the confidentiality
2926
- or authenticity of information contained in vCard is a concern,
2927
- the vCard [bcp14]#SHOULD# be transported using one of these secure
2928
- mechanisms. The KEY property (<<section6_8_1>>) can be used to
2929
- transport the public key used by these mechanisms.
2930
-
2931
- * The information in a vCard may become out of date. In cases where
2932
- the vitality of data is important to an originator of a vCard, the
2933
- SOURCE property (<<section6_1_3>>) [bcp14]#SHOULD# be specified. In addition,
2934
- the "REV" type described in <<section6_7_4>> can be specified to
2935
- indicate the last time that the vCard data was updated.
2936
-
2937
- * Many vCard properties may be used to transport URIs. Please refer
2938
- to cite:norm[RFC3986, suffix=", Section 7"], for considerations related to URIs.
2939
-
2940
- [[section10]]
2941
- == IANA Considerations
2942
-
2943
- [[section10_1]]
2944
- === Media Type Registration
2945
-
2946
- IANA has registered the following Media Type (in
2947
- http://www.iana.org) and marked the text/directory Media Type as
2948
- DEPRECATED.
2949
-
2950
- To: :: \ietf-types@iana.org
2951
-
2952
- Subject: :: Registration of media type text/vcard
2953
-
2954
- Type name: :: text
2955
-
2956
- Subtype name: :: vcard
2957
-
2958
- Required parameters: :: none
2959
-
2960
- Optional parameters: :: version
2961
- +
2962
- The "version" parameter is to be interpreted identically as the
2963
- VERSION vCard property. If this parameter is present, all vCards
2964
- in a text/vcard body part [bcp14]#MUST# have a VERSION property with value
2965
- identical to that of this MIME parameter.
2966
- +
2967
- "charset": as defined for text/plain cite:norm[RFC2046]; encodings other
2968
- than UTF-8 cite:norm[RFC3629] [bcp14]#MUST NOT# be used.
2969
-
2970
- Encoding considerations: :: 8bit
2971
-
2972
- Security considerations: :: See <<section9>>.
2973
-
2974
- Interoperability considerations: :: The text/vcard media type is
2975
- intended to identify vCard data of any version. There are older
2976
- specifications of vCard cite:info[RFC2426] cite:info[vCard21] still in common use.
2977
- While these formats are similar, they are not strictly compatible.
2978
- In general, it is necessary to inspect the value of the VERSION
2979
- property (see <<section6_7_9>>) for identifying the standard to which
2980
- a given vCard object conforms.
2981
- +
2982
- In addition, the following media types are known to have been used
2983
- to refer to vCard data. They should be considered deprecated in
2984
- favor of text/vcard.
2985
- +
2986
- * text/directory
2987
- * text/directory; profile=vcard
2988
- * text/x-vcard
2989
-
2990
- Published specification: :: RFC 6350
2991
-
2992
- Applications that use this media type: :: They are numerous, diverse,
2993
- and include mail user agents, instant messaging clients, address
2994
- book applications, directory servers, and customer relationship
2995
- management software.
2996
-
2997
- Additional information: ::
2998
-
2999
- Magic number(s): :::
3000
-
3001
- File extension(s): ::: .vcf .vcard
3002
-
3003
- Macintosh file type code(s): :::
3004
-
3005
- Person & email address to contact for further information: :: vCard
3006
- discussion mailing list <\vcarddav@ietf.org>
3007
-
3008
- Intended usage: :: COMMON
3009
-
3010
- Restrictions on usage: :: none
3011
-
3012
- Author: :: Simon Perreault
3013
-
3014
- Change controller: :: IETF
3015
-
3016
- [[section10_2]]
3017
- === Registering New vCard Elements
3018
-
3019
- This section defines the process for registering new or modified
3020
- vCard elements (i.e., properties, parameters, value data types, and
3021
- values) with IANA.
3022
-
3023
- [[section10_2_1]]
3024
- ==== Registration Procedure
3025
-
3026
- The IETF has created a mailing list, \vcarddav@ietf.org, which can be
3027
- used for public discussion of vCard element proposals prior to
3028
- registration. Use of the mailing list is strongly encouraged. The
3029
- IESG has appointed a designated expert who will monitor the
3030
- \vcarddav@ietf.org mailing list and review registrations.
3031
-
3032
- Registration of new vCard elements [bcp14]#MUST# be reviewed by the designated
3033
- expert and published in an RFC. A Standards Track RFC is [bcp14]#REQUIRED#
3034
- for the registration of new value data types that modify existing
3035
- properties. A Standards Track RFC is also [bcp14]#REQUIRED# for registration
3036
- of vCard elements that modify vCard elements previously documented in
3037
- a Standards Track RFC.
3038
-
3039
- The registration procedure begins when a completed registration
3040
- template, defined in the sections below, is sent to \vcarddav@ietf.org
3041
- and \iana@iana.org. Within two weeks, the designated expert is
3042
- expected to tell IANA and the submitter of the registration whether
3043
- the registration is approved, approved with minor changes, or
3044
- rejected with cause. When a registration is rejected with cause, it
3045
- can be re-submitted if the concerns listed in the cause are
3046
- addressed. Decisions made by the designated expert can be appealed
3047
- to the IESG Applications Area Director, then to the IESG. They
3048
- follow the normal appeals procedure for IESG decisions.
3049
-
3050
- Once the registration procedure concludes successfully, IANA creates
3051
- or modifies the corresponding record in the vCard registry. The
3052
- completed registration template is discarded.
3053
-
3054
- An RFC specifying new vCard elements [bcp14]#MUST# include the completed
3055
- registration templates, which [bcp14]#MAY# be expanded with additional
3056
- information. These completed templates are intended to go in the
3057
- body of the document, not in the IANA Considerations section.
3058
-
3059
- Finally, note that there is an XML representation for vCard defined
3060
- in cite:norm[RFC6351]. An XML representation [bcp14]#SHOULD# be defined for new vCard
3061
- elements.
3062
-
3063
- [[section10_2_2]]
3064
- ==== Vendor Namespace
3065
-
3066
- The vendor namespace is used for vCard elements associated with
3067
- commercially available products. "Vendor" or "producer" are
3068
- construed as equivalent and very broadly in this context.
3069
-
3070
- A registration may be placed in the vendor namespace by anyone who
3071
- needs to interchange files associated with the particular product.
3072
- However, the registration formally belongs to the vendor or
3073
- organization handling the vCard elements in the namespace being
3074
- registered. Changes to the specification will be made at their
3075
- request, as discussed in subsequent sections.
3076
-
3077
- vCard elements belonging to the vendor namespace will be
3078
- distinguished by the "VND-" prefix. This is followed by an IANA-
3079
- registered Private Enterprise Number (PEN), a dash, and a vCard
3080
- element designation of the vendor's choosing (e.g., "VND-123456-
3081
- MUDPIE").
3082
-
3083
- While public exposure and review of vCard elements to be registered
3084
- in the vendor namespace are not required, using the \vcarddav@ietf.org
3085
- mailing list for review is strongly encouraged to improve the quality
3086
- of those specifications. Registrations in the vendor namespace may
3087
- be submitted directly to the IANA.
3088
-
3089
- [[section10_2_3]]
3090
- ==== Registration Template for Properties
3091
-
3092
- A property is defined by completing the following template.
3093
-
3094
- Namespace: :: Empty for the global namespace, "VND-NNNN-" for a vendor-
3095
- specific property (where NNNN is replaced by the vendor's PEN).
3096
-
3097
- Property name: :: The name of the property.
3098
-
3099
- Purpose: :: The purpose of the property. Give a short but clear
3100
- description.
3101
-
3102
- Value type: :: Any of the valid value types for the property value
3103
- needs to be specified. The default value type also needs to be
3104
- specified.
3105
-
3106
- Cardinality: :: See <<section6>>.
3107
-
3108
- Property parameters: :: Any of the valid property parameters for the
3109
- property [bcp14]#MUST# be specified.
3110
-
3111
- Description: :: Any special notes about the property, how it is to be
3112
- used, etc.
3113
-
3114
- Format definition: :: The ABNF for the property definition needs to be
3115
- specified.
3116
-
3117
- Example(s): :: One or more examples of instances of the property need
3118
- to be specified.
3119
-
3120
- [[section10_2_4]]
3121
- ==== Registration Template for Parameters
3122
-
3123
- A parameter is defined by completing the following template.
3124
-
3125
- Namespace: :: Empty for the global namespace, "VND-NNNN-" for a vendor-
3126
- specific property (where NNNN is replaced by the vendor's PEN).
3127
-
3128
- Parameter name: :: The name of the parameter.
3129
-
3130
- Purpose: :: The purpose of the parameter. Give a short but clear
3131
- description.
3132
-
3133
- Description: :: Any special notes about the parameter, how it is to be
3134
- used, etc.
3135
-
3136
- Format definition: :: The ABNF for the parameter definition needs to be
3137
- specified.
3138
-
3139
- Example(s): :: One or more examples of instances of the parameter need
3140
- to be specified.
3141
-
3142
- [[section10_2_5]]
3143
- ==== Registration Template for Value Data Types
3144
-
3145
- A value data type is defined by completing the following template.
3146
-
3147
- Value name: :: The name of the value type.
3148
-
3149
- Purpose: :: The purpose of the value type. Give a short but clear
3150
- description.
3151
-
3152
- Description: :: Any special notes about the value type, how it is to be
3153
- used, etc.
3154
-
3155
- Format definition: :: The ABNF for the value type definition needs to
3156
- be specified.
3157
-
3158
- Example(s): :: One or more examples of instances of the value type need
3159
- to be specified.
3160
-
3161
- [[section10_2_6]]
3162
- ==== Registration Template for Values
3163
-
3164
- A value is defined by completing the following template.
3165
-
3166
- Value: :: The value literal.
3167
-
3168
- Purpose: :: The purpose of the value. Give a short but clear
3169
- description.
3170
-
3171
- Conformance: :: The vCard properties and/or parameters that can take
3172
- this value needs to be specified.
3173
-
3174
- Example(s): :: One or more examples of instances of the value need to
3175
- be specified.
3176
-
3177
- The following is a fictitious example of a registration of a vCard
3178
- value:
3179
-
3180
- Value: :: supervisor
3181
-
3182
- Purpose: :: It means that the related entity is the direct hierarchical
3183
- superior (i.e., supervisor or manager) of the entity this vCard
3184
- represents.
3185
-
3186
- Conformance: :: This value can be used with the "TYPE" parameter
3187
- applied on the "RELATED" property.
3188
-
3189
-
3190
- Example(s): ::
3191
- +
3192
- ....
3193
- RELATED;TYPE=supervisor:urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
3194
- ....
3195
-
3196
- [[section10_3]]
3197
- === Initial vCard Elements Registries
3198
-
3199
- The IANA has created and will maintain the following registries for
3200
- vCard elements with pointers to appropriate reference documents. The
3201
- registries are grouped together under the heading "vCard Elements".
3202
-
3203
- [[section10_3_1]]
3204
- ==== Properties Registry
3205
-
3206
- The following table has been used to initialize the properties
3207
- registry.
3208
-
3209
- |===
3210
- | Namespace | Property | Reference
3211
-
3212
- | | SOURCE | RFC 6350, Section 6.1.3
3213
- | | KIND | RFC 6350, Section 6.1.4
3214
- | | XML | RFC 6350, Section 6.1.5
3215
- | | FN | RFC 6350, Section 6.2.1
3216
- | | N | RFC 6350, Section 6.2.2
3217
- | | NICKNAME | RFC 6350, Section 6.2.3
3218
- | | PHOTO | RFC 6350, Section 6.2.4
3219
- | | BDAY | RFC 6350, Section 6.2.5
3220
- | | ANNIVERSARY | RFC 6350, Section 6.2.6
3221
- | | GENDER | RFC 6350, Section 6.2.7
3222
- | | ADR | RFC 6350, Section 6.3.1
3223
- | | TEL | RFC 6350, Section 6.4.1
3224
- | | EMAIL | RFC 6350, Section 6.4.2
3225
- | | IMPP | RFC 6350, Section 6.4.3
3226
- | | LANG | RFC 6350, Section 6.4.4
3227
- | | TZ | RFC 6350, Section 6.5.1
3228
- | | GEO | RFC 6350, Section 6.5.2
3229
- | | TITLE | RFC 6350, Section 6.6.1
3230
- | | ROLE | RFC 6350, Section 6.6.2
3231
- | | LOGO | RFC 6350, Section 6.6.3
3232
- | | ORG | RFC 6350, Section 6.6.4
3233
- | | MEMBER | RFC 6350, Section 6.6.5
3234
- | | RELATED | RFC 6350, Section 6.6.6
3235
- | | CATEGORIES | RFC 6350, Section 6.7.1
3236
- | | NOTE | RFC 6350, Section 6.7.2
3237
- | | PRODID | RFC 6350, Section 6.7.3
3238
- | | REV | RFC 6350, Section 6.7.4
3239
- | | SOUND | RFC 6350, Section 6.7.5
3240
- | | UID | RFC 6350, Section 6.7.6
3241
- | | CLIENTPIDMAP | RFC 6350, Section 6.7.7
3242
- | | URL | RFC 6350, Section 6.7.8
3243
- | | VERSION | RFC 6350, Section 6.7.9
3244
- | | KEY | RFC 6350, Section 6.8.1
3245
- | | FBURL | RFC 6350, Section 6.9.1
3246
- | | CALADRURI | RFC 6350, Section 6.9.2
3247
- | | CALURI | RFC 6350, Section 6.9.3
3248
- |===
3249
-
3250
-
3251
- [[section10_3_2]]
3252
- ==== Parameters Registry
3253
-
3254
- The following table has been used to initialize the parameters
3255
- registry.
3256
-
3257
- |===
3258
- | Namespace | Parameter | Reference
3259
-
3260
- | | LANGUAGE | RFC 6350, Section 5.1
3261
- | | VALUE | RFC 6350, Section 5.2
3262
- | | PREF | RFC 6350, Section 5.3
3263
- | | ALTID | RFC 6350, Section 5.4
3264
- | | PID | RFC 6350, Section 5.5
3265
- | | TYPE | RFC 6350, Section 5.6
3266
- | | MEDIATYPE | RFC 6350, Section 5.7
3267
- | | CALSCALE | RFC 6350, Section 5.8
3268
- | | SORT-AS | RFC 6350, Section 5.9
3269
- | | GEO | RFC 6350, Section 5.10
3270
- | | TZ | RFC 6350, Section 5.11
3271
- |===
3272
-
3273
- [[section10_3_3]]
3274
- ==== Value Data Types Registry
3275
-
3276
- The following table has been used to initialize the parameters
3277
- registry.
3278
-
3279
- |===
3280
- | Value Data Type | Reference
3281
-
3282
- | BOOLEAN | RFC 6350, Section 4.4
3283
- | DATE | RFC 6350, Section 4.3.1
3284
- | DATE-AND-OR-TIME | RFC 6350, Section 4.3.4
3285
- | DATE-TIME | RFC 6350, Section 4.3.3
3286
- | FLOAT | RFC 6350, Section 4.6
3287
- | INTEGER | RFC 6350, Section 4.5
3288
- | LANGUAGE-TAG | RFC 6350, Section 4.8
3289
- | TEXT | RFC 6350, Section 4.1
3290
- | TIME | RFC 6350, Section 4.3.2
3291
- | TIMESTAMP | RFC 6350, Section 4.3.5
3292
- | URI | RFC 6350, Section 4.2
3293
- | UTC-OFFSET | RFC 6350, Section 4.7
3294
- |===
3295
-
3296
- [[section10_3_4]]
3297
- ==== Values Registries
3298
-
3299
- Separate tables are used for property and parameter values.
3300
-
3301
- The following table is to be used to initialize the property values
3302
- registry.
3303
-
3304
- |===
3305
- | Property | Value | Reference
3306
-
3307
- | BEGIN | VCARD | RFC 6350, Section 6.1.1
3308
- | END | VCARD | RFC 6350, Section 6.1.2
3309
- | KIND | individual | RFC 6350, Section 6.1.4
3310
- | KIND | group | RFC 6350, Section 6.1.4
3311
- | KIND | org | RFC 6350, Section 6.1.4
3312
- | KIND | location | RFC 6350, Section 6.1.4
3313
- |===
3314
-
3315
- The following table has been used to initialize the parameter values
3316
- registry.
3317
-
3318
- [cols="4"]
3319
- |===
3320
- | Property | Parameter | Value | Reference
3321
-
3322
- | FN, NICKNAME, PHOTO,
3323
- ADR, TEL, EMAIL, IMPP,
3324
- LANG, TZ, GEO, TITLE,
3325
- ROLE, LOGO, ORG,
3326
- RELATED, CATEGORIES,
3327
- NOTE, SOUND, URL, KEY,
3328
- FBURL, CALADRURI, and
3329
- CALURI
3330
- | TYPE | work | RFC 6350, Section 5.6
3331
-
3332
- | FN, NICKNAME, PHOTO,
3333
- ADR, TEL, EMAIL, IMPP,
3334
- LANG, TZ, GEO, TITLE,
3335
- ROLE, LOGO, ORG,
3336
- RELATED, CATEGORIES,
3337
- NOTE, SOUND, URL, KEY,
3338
- FBURL, CALADRURI, and
3339
- CALURI
3340
- | TYPE | home | RFC 6350, Section 5.6
3341
-
3342
- | TEL | TYPE | text | RFC 6350, Section 6.4.1
3343
- | TEL | TYPE | voice | RFC 6350, Section 6.4.1
3344
- | TEL | TYPE | fax | RFC 6350, Section 6.4.1
3345
- | TEL | TYPE | cell | RFC 6350, Section 6.4.1
3346
- | TEL | TYPE | video | RFC 6350, Section 6.4.1
3347
- | TEL | TYPE | pager | RFC 6350, Section 6.4.1
3348
- | TEL | TYPE | textphone | RFC 6350, Section 6.4.1
3349
-
3350
- | BDAY, ANNIVERSARY | CALSCALE | gregorian
3351
- | RFC 6350, Section 5.8
3352
-
3353
- | RELATED | TYPE | contact
3354
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3355
-
3356
- | RELATED | TYPE | acquaintance
3357
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3358
-
3359
- | RELATED | TYPE | friend
3360
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3361
-
3362
- | RELATED | TYPE | met
3363
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3364
-
3365
- | RELATED | TYPE | co-worker
3366
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3367
-
3368
- | RELATED | TYPE | colleague
3369
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3370
-
3371
- | RELATED | TYPE | co-resident
3372
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3373
-
3374
- | RELATED | TYPE | neighbor
3375
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3376
-
3377
- | RELATED | TYPE | child
3378
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3379
-
3380
- | RELATED | TYPE | parent
3381
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3382
-
3383
- | RELATED | TYPE | sibling
3384
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3385
-
3386
- | RELATED | TYPE | spouse
3387
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3388
-
3389
- | RELATED | TYPE | kin
3390
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3391
-
3392
- | RELATED | TYPE | muse
3393
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3394
-
3395
- | RELATED | TYPE | crush
3396
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3397
-
3398
- | RELATED | TYPE | date
3399
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3400
-
3401
- | RELATED | TYPE | sweetheart
3402
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3403
-
3404
- | RELATED | TYPE | me
3405
- | RFC 6350, Section 6.6.6 and cite:norm[xfn]
3406
-
3407
- | RELATED | TYPE | agent | RFC 6350, Section 6.6.6
3408
- | RELATED | TYPE | emergency | RFC 6350, Section 6.6.6
3409
- |===
3410
-
3411
-
3412
- [[section11]]
3413
- == Acknowledgments
3414
-
3415
- The authors would like to thank Tim Howes, Mark Smith, and Frank
3416
- Dawson, the original authors of cite:info[RFC2425] and cite:info[RFC2426], Pete
3417
- Resnick, who got this effort started and provided help along the way,
3418
- as well as the following individuals who have participated in the
3419
- drafting, review, and discussion of this memo:
3420
-
3421
- Aki Niemi, Andy Mabbett, Alexander Mayrhofer, Alexey Melnikov, Anil
3422
- Srivastava, Barry Leiba, Ben Fortuna, Bernard Desruisseaux, Bernie
3423
- Hoeneisen, Bjoern Hoehrmann, Caleb Richardson, Chris Bryant, Chris
3424
- Newman, Cyrus Daboo, Daisuke Miyakawa, Dan Brickley, Dan Mosedale,
3425
- Dany Cauchie, Darryl Champagne, Dave Thewlis, Filip Navara, Florian
3426
- Zeitz, Helge Hess, Jari Urpalainen, Javier Godoy, Jean-Luc Schellens,
3427
- Joe Hildebrand, Jose Luis Gayosso, Joseph Smarr, Julian Reschke,
3428
- Kepeng Li, Kevin Marks, Kevin Wu Won, Kurt Zeilenga, Lisa Dusseault,
3429
- Marc Blanchet, Mark Paterson, Markus Lorenz, Michael Haardt, Mike
3430
- Douglass, Nick Levinson, Peter K. Sheerin, Peter Mogensen, Peter
3431
- Saint-Andre, Renato Iannella, Rohit Khare, Sly Gryphon, Stephane
3432
- Bortzmeyer, Tantek Celik, and Zoltan Ordogh.
3433
-
3434
- [bibliography]
3435
- == Normative References
3436
- ++++
3437
- bibliography::norm[]
3438
- ++++
3439
-
3440
- [bibliography]
3441
- == Informative References
3442
- ++++
3443
- bibliography::info[]
3444
- ++++
3445
-
3446
- [[appendixA]]
3447
- == Differences from RFCs 2425 and 2426
3448
-
3449
- This appendix contains a high-level overview of the major changes
3450
- that have been made in the vCard specification from RFCs 2425 and
3451
- 2426. It is incomplete, as it only lists the most important changes.
3452
-
3453
- [[appendixA_1]]
3454
- === New Structure
3455
-
3456
- * cite:info[RFC2425] and cite:info[RFC2426] have been merged.
3457
-
3458
- * vCard is now not only a MIME type but a stand-alone format.
3459
-
3460
- * A proper MIME type registration form has been included.
3461
-
3462
- * UTF-8 is now the only possible character set.
3463
-
3464
- * New vCard elements can be registered from IANA.
3465
-
3466
- [[appendixA_2]]
3467
- === Removed Features
3468
-
3469
- * The CONTEXT and CHARSET parameters are no more.
3470
-
3471
- * The NAME, MAILER, LABEL, and CLASS properties are no more.
3472
-
3473
- * The "intl", "dom", "postal", and "parcel" TYPE parameter values
3474
- for the ADR property have been removed.
3475
-
3476
- * In-line vCards (such as the value of the AGENT property) are no
3477
- longer supported.
3478
-
3479
- [[appendixA_3]]
3480
- === New Properties and Parameters
3481
-
3482
- * The KIND, GENDER, LANG, ANNIVERSARY, XML, and CLIENTPIDMAP
3483
- properties have been added.
3484
-
3485
- * cite:norm[RFC2739], which defines the FBURL, CALADRURI, CAPURI, and CALURI
3486
- properties, has been merged in.
3487
-
3488
- * cite:info[RFC4770], which defines the IMPP property, has been merged in.
3489
-
3490
- * The "work" and "home" TYPE parameter values are now applicable to
3491
- many more properties.
3492
-
3493
- * The "pref" value of the TYPE parameter is now a parameter of its
3494
- own, with a positive integer value indicating the level of
3495
- preference.
3496
-
3497
- * The ALTID and PID parameters have been added.
3498
-
3499
- * The MEDIATYPE parameter has been added and replaces the TYPE
3500
- parameter when it was used for indicating the media type of the
3501
- property's content.
3502
-
3503
-
3504
-
3505
-