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/ |