draft-ietf-jmap-jscontact-vcard-04.txt   draft-ietf-jmap-jscontact-vcard-05.txt 
jmap M. Loffredo jmap M. Loffredo
Internet-Draft IIT-CNR/Registro.it Internet-Draft IIT-CNR/Registro.it
Intended status: Standards Track R. Stepanek Intended status: Standards Track R. Stepanek
Expires: November 29, 2021 FastMail Expires: December 12, 2021 FastMail
May 28, 2021 June 10, 2021
JSContact: Converting from and to vCard JSContact: Converting from and to vCard
draft-ietf-jmap-jscontact-vcard-04 draft-ietf-jmap-jscontact-vcard-05
Abstract Abstract
This document defines how to convert contact information as defined This document defines how to convert contact information as defined
in the JSContact [draft-ietf-jmap-jscontact] specification from and in the JSContact [draft-ietf-jmap-jscontact] specification from and
to vCard. to vCard.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 33 skipping to change at page 1, line 33
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 29, 2021. This Internet-Draft will expire on December 12, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 9, line 30 skipping to change at page 9, line 30
}, },
... ...
} }
Figure 4: PHOTO mapping example Figure 4: PHOTO mapping example
2.4.4. BDAY, BIRTHPLACE, DEATHDATE, DEATHPLACE, ANNIVERSARY 2.4.4. BDAY, BIRTHPLACE, DEATHDATE, DEATHPLACE, ANNIVERSARY
The BDAY and ANNIVERSARY properties and the extensions BIRTHPLACE, The BDAY and ANNIVERSARY properties and the extensions BIRTHPLACE,
DEATHDATE, DEATHPLACE described in [RFC6350] are represented as DEATHDATE, DEATHPLACE described in [RFC6350] are represented as
"Anniversary" objects included in the "anniversaries" array "Anniversary" objects included in the "anniversaries" map (Figure 5):
(Figure 5):
o BDAY and BIRTHPLACE are mapped to "date" and "place" where "type" o BDAY and BIRTHPLACE are mapped to "date" and "place" where "type"
is set to "birth"; is set to "birth";
o DEATHDATE and DEATHPLACE are mapped to "date" and "place" where o DEATHDATE and DEATHPLACE are mapped to "date" and "place" where
"type" is set to "death"; "type" is set to "death";
o ANNIVERSARY is mapped to "date" where "type" is set to "other" and o ANNIVERSARY is mapped to "date" where "type" is set to "other" and
"label" is set to a value describing in detail the kind of "label" is set to a value describing in detail the kind of
anniversary (e.g. "marriage date" for the wedding anniversary). anniversary (e.g. "marriage date" for the wedding anniversary).
skipping to change at page 10, line 20 skipping to change at page 10, line 20
BDAY:19531015T231000Z BDAY:19531015T231000Z
BIRTHPLACE:Mail Drop: TNE QB\n123 Main Street\nAny Town, CA 91921-1234\nU.S.A. BIRTHPLACE:Mail Drop: TNE QB\n123 Main Street\nAny Town, CA 91921-1234\nU.S.A.
DEATHDATE:19960415 DEATHDATE:19960415
DEATHPLACE:4445 Courtright Street\nNew England, ND 58647\nU.S.A. DEATHPLACE:4445 Courtright Street\nNew England, ND 58647\nU.S.A.
ANNIVERSARY:19860201 ANNIVERSARY:19860201
... ...
END:VCARD END:VCARD
{ {
... ...
"anniversaries":[ "anniversaries": {
{ "ANNIVERSARY-1" : {
"type": "birth", "type": "birth",
"date": "1953-10-15T23:10:00Z", "date": "1953-10-15T23:10:00Z",
"place":{ "place":{
"fullAddress":{ "fullAddress":{
"value": "Mail Drop: TNE QB\n123 Main Street\nAny Town, CA 91921-1234\nU.S.A." "value": "Mail Drop: TNE QB\n123 Main Street\nAny Town, CA 91921-1234\nU.S.A."
} }
} }
}, },
{ "ANNIVERSARY-2" : {
"type": "birth", "type": "birth",
"date": "1953-10-15T23:10:00Z", "date": "1953-10-15T23:10:00Z",
"place":{ "place":{
"fullAddress":{ "fullAddress":{
"value": "4445 Courtright Street\nNew England, ND 58647\nU.S.A." "value": "4445 Courtright Street\nNew England, ND 58647\nU.S.A."
} }
} }
}, },
{ "ANNIVERSARY-3" : {
"type": "other", "type": "other",
"label": "marriage date", "label": "marriage date",
"date": "1986-02-01" "date": "1986-02-01"
} }
], },
... ...
} }
Figure 5: BDAY, BIRTHPLACE, DEATHDATE, DEATHPLACE, ANNIVERSARY Figure 5: BDAY, BIRTHPLACE, DEATHDATE, DEATHPLACE, ANNIVERSARY
mapping example mapping example
2.4.5. GENDER 2.4.5. GENDER
The GENDER property doesn't have a direct match with a JSContact The GENDER property doesn't have a direct match with a JSContact
feature. feature.
skipping to change at page 25, line 8 skipping to change at page 25, line 8
LEVEL is used in the EXPERTISE property; in this case, the values are LEVEL is used in the EXPERTISE property; in this case, the values are
converted as in the following: converted as in the following:
o "beginner" is converted into "low"; o "beginner" is converted into "low";
o "average" is converted into "medium"; o "average" is converted into "medium";
o "expert" is converted into "high". o "expert" is converted into "high".
2.9.1. EXPERTISE 2.9.1. EXPERTISE
An EXPERTISE property as defined in [RFC6715] is represented as a An EXPERTISE property as defined in [RFC6715] is represented as a
"PersonalInformation" object in the "personalInfo" array (Figure 18). "PersonalInformation" object in the "personalInfo" map (Figure 18).
The "type" member is set to "expertise". The "type" member is set to "expertise".
The INDEX parameter is represented as the index of the expertise The INDEX parameter is represented as the index of the expertise
among the declared expertises. among the declared expertises.
BEGIN:VCARD BEGIN:VCARD
VERSION:4.0 VERSION:4.0
... ...
EXPERTISE;LEVEL=beginner;INDEX=2:chinese literature EXPERTISE;LEVEL=beginner;INDEX=2:chinese literature
EXPERTISE;INDEX=1;LEVEL=expert:chemistry EXPERTISE;INDEX=1;LEVEL=expert:chemistry
... ...
END:VCARD END:VCARD
{ {
... ...
"personalInfo":[ "personalInfo":{
... ...
{ "PERSINFO-1" : {
"type": "expertise", "type": "expertise",
"value": "chemistry", "value": "chemistry",
"level": "high" "level": "high"
}, },
{ "PERSINFO-2" : {
"type": "expertise", "type": "expertise",
"value": "chinese literature", "value": "chinese literature",
"level": "low" "level": "low"
}, },
... ...
], },
... ...
} }
Figure 18: EXPERTISE mapping example Figure 18: EXPERTISE mapping example
2.9.2. HOBBY 2.9.2. HOBBY
A HOBBY property as defined in [RFC6715] is represented as a A HOBBY property as defined in [RFC6715] is represented as a
"PersonalInformation" object in the "personalInfo" array (Figure 19). "PersonalInformation" object in the "personalInfo" map (Figure 19).
The "type" member is set to "hobby". The "type" member is set to "hobby".
The INDEX parameter is represented as the index of the hobby among The INDEX parameter is represented as the index of the hobby among
the declared hobbies. the declared hobbies.
BEGIN:VCARD BEGIN:VCARD
VERSION:4.0 VERSION:4.0
... ...
HOBBY;INDEX=1;LEVEL=high:reading HOBBY;INDEX=1;LEVEL=high:reading
HOBBY;INDEX=2;LEVEL=high:sewing HOBBY;INDEX=2;LEVEL=high:sewing
... ...
END:VCARD END:VCARD
{ {
... ...
"personalInfo":[ "personalInfo":{
... ...
{ "PERSINFO-1" : {
"type": "hobby", "type": "hobby",
"value": "reading", "value": "reading",
"level": "high" "level": "high"
}, },
{ "PERSINFO-2" : {
"type": "hobby", "type": "hobby",
"value": "sewing", "value": "sewing",
"level": "high" "level": "high"
}, },
... ...
], },
... ...
} }
Figure 19: HOBBY mapping example Figure 19: HOBBY mapping example
2.9.3. INTEREST 2.9.3. INTEREST
An INTEREST property as defined in [RFC6715] is represented as a An INTEREST property as defined in [RFC6715] is represented as a
"PersonalInformation" object in the "personalInfo" array (Figure 20). "PersonalInformation" object in the "personalInfo" map (Figure 20).
The "type" member is set to "interest". The "type" member is set to "interest".
The INDEX parameter is represented as the index of the interest among The INDEX parameter is represented as the index of the interest among
the declared interests. the declared interests.
BEGIN:VCARD BEGIN:VCARD
VERSION:4.0 VERSION:4.0
... ...
INTEREST;INDEX=1;LEVEL=medium:r&b music INTEREST;INDEX=1;LEVEL=medium:r&b music
INTEREST;INDEX=2;LEVEL=high:rock 'n' roll music INTEREST;INDEX=2;LEVEL=high:rock 'n' roll music
... ...
END:VCARD END:VCARD
{ {
... ...
"personalInfo":[ "personalInfo":{
... ...
{ "PERSINFO-1" : {
"type": "interest", "type": "interest",
"value": "r&b music", "value": "r&b music",
"level": "medium" "level": "medium"
}, },
{ "PERSINFO-2" : {
"type": "interest", "type": "interest",
"value": "rock 'n' roll music", "value": "rock 'n' roll music",
"level": "high" "level": "high"
}, },
... ...
], },
... ...
} }
Figure 20: INTEREST mapping example Figure 20: INTEREST mapping example
2.9.4. ORG-DIRECTORY 2.9.4. ORG-DIRECTORY
An ORG-DIRECTORY property is represented as an entry of the "online" An ORG-DIRECTORY property is represented as an entry of the "online"
map (Figure 21). The entry value is a "Resource" object whose "type" map (Figure 21). The entry value is a "Resource" object whose "type"
member is set to "uri", the "label" member is set to "org-directory" member is set to "uri", the "label" member is set to "org-directory"
 End of changes. 23 change blocks. 
26 lines changed or deleted 25 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/