rfc9553v4.txt | rfc9553.txt | |||
---|---|---|---|---|
Internet Engineering Task Force (IETF) R. Stepanek | Internet Engineering Task Force (IETF) R. Stepanek | |||
Request for Comments: 9553 Fastmail | Request for Comments: 9553 Fastmail | |||
Category: Standards Track M. Loffredo | Category: Standards Track M. Loffredo | |||
ISSN: 2070-1721 IIT-CNR | ISSN: 2070-1721 IIT-CNR | |||
April 2024 | May 2024 | |||
JSContact: A JSON Representation of Contact Data | JSContact: A JSON Representation of Contact Data | |||
Abstract | Abstract | |||
This specification defines a data model and JavaScript Object | This specification defines a data model and JavaScript Object | |||
Notation (JSON) representation of contact card information that can | Notation (JSON) representation of contact card information that can | |||
be used for data storage and exchange in address book or directory | be used for data storage and exchange in address book or directory | |||
applications. It aims to be an alternative to the vCard data format | applications. It aims to be an alternative to the vCard data format | |||
and to be unambiguous, extendable, and simple to process. In | and to be unambiguous, extendable, and simple to process. In | |||
skipping to change at line 784 ¶ | skipping to change at line 784 ¶ | |||
encoding a JSON Pointer [RFC6901] for that property. | encoding a JSON Pointer [RFC6901] for that property. | |||
Vendor-specific properties MAY be set in any JSContact object. | Vendor-specific properties MAY be set in any JSContact object. | |||
Implementations MUST preserve vendor-specific properties in JSContact | Implementations MUST preserve vendor-specific properties in JSContact | |||
data, irrespective if they know their use. They MUST NOT reject the | data, irrespective if they know their use. They MUST NOT reject the | |||
property value as invalid, unless they are in control of the vendor- | property value as invalid, unless they are in control of the vendor- | |||
specific property as outlined in the above paragraph. | specific property as outlined in the above paragraph. | |||
The ABNF rule "v-extension" formally defines valid vendor-specific | The ABNF rule "v-extension" formally defines valid vendor-specific | |||
property names. Note that the vendor prefix allows for more values | property names. Note that the vendor prefix allows for more values | |||
than Internationalized Domain Names (IDNs) [RFC8499]; therefore, | than Internationalized Domain Names (IDNs) [RFC9499]; therefore, | |||
JSContact implementations can simply validate property names without | JSContact implementations can simply validate property names without | |||
implementing the full set of rules that apply to domain names. | implementing the full set of rules that apply to domain names. | |||
v-extension = v-prefix ":" v-name | v-extension = v-prefix ":" v-name | |||
v-prefix = v-label *("." v-label) | v-prefix = v-label *("." v-label) | |||
v-label = alnum-int / alnum-int *(alnum-int / "-") alnum-int | v-label = alnum-int / alnum-int *(alnum-int / "-") alnum-int | |||
alnum-int = ALPHA / DIGIT / NON-ASCII | alnum-int = ALPHA / DIGIT / NON-ASCII | |||
skipping to change at line 1306 ¶ | skipping to change at line 1306 ¶ | |||
* separator: a formatting separator between two ordered name non- | * separator: a formatting separator between two ordered name non- | |||
separator components. The value property of the component | separator components. The value property of the component | |||
includes the verbatim separator, for example, a hyphen | includes the verbatim separator, for example, a hyphen | |||
character or even an empty string. This value has higher | character or even an empty string. This value has higher | |||
precedence than the defaultSeparator property of the Name. | precedence than the defaultSeparator property of the Name. | |||
Implementations MUST NOT insert two consecutive separator | Implementations MUST NOT insert two consecutive separator | |||
components; instead, they SHOULD insert a single separator | components; instead, they SHOULD insert a single separator | |||
component with the combined value. This component kind MUST | component with the combined value. This component kind MUST | |||
NOT be set if the Name isOrdered property value is "false". | NOT be set if the Name isOrdered property value is "false". | |||
phonetic: String (optional). The pronounciation of the name | phonetic: String (optional). The pronunciation of the name | |||
component. If this property is set, then at least one of the Name | component. If this property is set, then at least one of the Name | |||
object properties, phoneticSystem or phoneticScript, MUST be set. | object properties, phoneticSystem or phoneticScript, MUST be set. | |||
Also see Section 1.5.4. | Also see Section 1.5.4. | |||
2.2.2. nicknames | 2.2.2. nicknames | |||
nicknames: Id[Nickname] (optional). The nicknames of the entity | nicknames: Id[Nickname] (optional). The nicknames of the entity | |||
represented by the Card. | represented by the Card. | |||
A Nickname object has the following properties: | A Nickname object has the following properties: | |||
skipping to change at line 1932 ¶ | skipping to change at line 1932 ¶ | |||
* separator: a formatting separator between two ordered address | * separator: a formatting separator between two ordered address | |||
non-separator components. The value property of the component | non-separator components. The value property of the component | |||
includes the verbatim separator, for example, a hyphen | includes the verbatim separator, for example, a hyphen | |||
character or even an empty string. This value has higher | character or even an empty string. This value has higher | |||
precedence than the defaultSeparator property of the Address. | precedence than the defaultSeparator property of the Address. | |||
Implementations MUST NOT insert two consecutive separator | Implementations MUST NOT insert two consecutive separator | |||
components; instead, they SHOULD insert a single separator | components; instead, they SHOULD insert a single separator | |||
component with the combined value. This component kind MUST | component with the combined value. This component kind MUST | |||
NOT be set if the Address isOrdered property value is "false". | NOT be set if the Address isOrdered property value is "false". | |||
phonetic: String (optional). The pronounciation of the name | phonetic: String (optional). The pronunciation of the name | |||
component. If this property is set, then at least one of the | component. If this property is set, then at least one of the | |||
Address object phoneticSystem or phoneticScript properties MUST be | Address object phoneticSystem or phoneticScript properties MUST be | |||
set. Also see Section 1.5.4. | set. Also see Section 1.5.4. | |||
2.5.1.3. Additional Address Examples | 2.5.1.3. Additional Address Examples | |||
The following example illustrates the use of the address property for | The following example illustrates the use of the address property for | |||
"46, 1 Sukhumvit 51 Alley, Khlong Tan Nuea, Watthana, Bangkok 10110, | "46, 1 Sukhumvit 51 Alley, Khlong Tan Nuea, Watthana, Bangkok 10110, | |||
Thailand". | Thailand". | |||
skipping to change at line 2057 ¶ | skipping to change at line 2057 ¶ | |||
MUNObE5ONEpSWmxDN3hGZnFpTWJGUlU5WjRONll3SURBUUFCCi0tLS0tR | MUNObE5ONEpSWmxDN3hGZnFpTWJGUlU5WjRONll3SURBUUFCCi0tLS0tR | |||
U5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K" | U5EIFJTQSBQVUJMSUMgS0VZLS0tLS0K" | |||
} | } | |||
} | } | |||
Figure 35: Example of cryptoKeys with Embedded Data | Figure 35: Example of cryptoKeys with Embedded Data | |||
2.6.2. directories | 2.6.2. directories | |||
directories: Id[Directory] (optional). The directories containing | directories: Id[Directory] (optional). The directories containing | |||
information about the entitity represented by the Card. | information about the entity represented by the Card. | |||
A Directory object has all properties of the Resource (Section 1.4.4) | A Directory object has all properties of the Resource (Section 1.4.4) | |||
data type, with the following additional definitions: | data type, with the following additional definitions: | |||
* The @type property value MUST be "Directory", if set. | * The @type property value MUST be "Directory", if set. | |||
* The kind property is mandatory. Its enumerated (Section 1.7.5) | * The kind property is mandatory. Its enumerated (Section 1.7.5) | |||
values are: | values are: | |||
- directory: the resource is a directory service that the entity | - directory: the resource is a directory service that the entity | |||
skipping to change at line 3156 ¶ | skipping to change at line 3156 ¶ | |||
| year | UnsignedInt | PartialDate | | | year | UnsignedInt | PartialDate | | |||
| | | (Section 2.8.1) | | | | | (Section 2.8.1) | | |||
+---------------------+-----------------------+--------------------+ | +---------------------+-----------------------+--------------------+ | |||
Table 2: JSContact Properties with "common" Usage | Table 2: JSContact Properties with "common" Usage | |||
The following table lists the initial "reserved" usage entries of the | The following table lists the initial "reserved" usage entries of the | |||
"JSContact Properties" registry. For this property, the Change | "JSContact Properties" registry. For this property, the Change | |||
Controller is "IETF", and the RFC section reference is for RFC 9553. | Controller is "IETF", and the RFC section reference is for RFC 9553. | |||
+===============+============+============+=============+==========+ | +===============+============+============+==========+=============+ | |||
| Property Name | Property | Property | Reference/ | Intended | | | Property Name | Property | Property | Intended | Reference/ | | |||
| | Type | Context | Description | Usage | | | | Type | Context | Usage | Description | | |||
+===============+============+============+=============+==========+ | +===============+============+============+==========+=============+ | |||
| extra | not | not | Section | reserved | | | extra | not | not | reserved | Section | | |||
| | applicable | applicable | 1.7.3.1 | | | | | applicable | applicable | | 1.7.3.1 | | |||
+---------------+------------+------------+-------------+----------+ | +---------------+------------+------------+----------+-------------+ | |||
Table 3: JSContact Properties with "reserved" Usage | Table 3: JSContact Properties with "reserved" Usage | |||
3.6. Creation of the JSContact Types Registry | 3.6. Creation of the JSContact Types Registry | |||
IANA has created the "JSContact Types" registry. The purpose of this | IANA has created the "JSContact Types" registry. The purpose of this | |||
new registry is to avoid name collisions for JSContact type names and | new registry is to avoid name collisions for JSContact type names and | |||
provide a complete reference for all data types used for JSContact | provide a complete reference for all data types used for JSContact | |||
property values. | property values. | |||
skipping to change at line 3991 ¶ | skipping to change at line 3991 ¶ | |||
<https://www.rfc-editor.org/info/rfc6715>. | <https://www.rfc-editor.org/info/rfc6715>. | |||
[RFC6869] Salgueiro, G., Clarke, J., and P. Saint-Andre, "vCard | [RFC6869] Salgueiro, G., Clarke, J., and P. Saint-Andre, "vCard | |||
KIND:device", RFC 6869, DOI 10.17487/RFC6869, February | KIND:device", RFC 6869, DOI 10.17487/RFC6869, February | |||
2013, <https://www.rfc-editor.org/info/rfc6869>. | 2013, <https://www.rfc-editor.org/info/rfc6869>. | |||
[RFC7095] Kewisch, P., "jCard: The JSON Format for vCard", RFC 7095, | [RFC7095] Kewisch, P., "jCard: The JSON Format for vCard", RFC 7095, | |||
DOI 10.17487/RFC7095, January 2014, | DOI 10.17487/RFC7095, January 2014, | |||
<https://www.rfc-editor.org/info/rfc7095>. | <https://www.rfc-editor.org/info/rfc7095>. | |||
[RFC8499] Hoffman, P., Sullivan, A., and K. Fujiwara, "DNS | ||||
Terminology", RFC 8499, DOI 10.17487/RFC8499, January | ||||
2019, <https://www.rfc-editor.org/info/rfc8499>. | ||||
[RFC8605] Hollenbeck, S. and R. Carney, "vCard Format Extensions: | [RFC8605] Hollenbeck, S. and R. Carney, "vCard Format Extensions: | |||
ICANN Extensions for the Registration Data Access Protocol | ICANN Extensions for the Registration Data Access Protocol | |||
(RDAP)", RFC 8605, DOI 10.17487/RFC8605, May 2019, | (RDAP)", RFC 8605, DOI 10.17487/RFC8605, May 2019, | |||
<https://www.rfc-editor.org/info/rfc8605>. | <https://www.rfc-editor.org/info/rfc8605>. | |||
[RFC9554] Stepanek, R. and M. Loffredo, "vCard Format Extension for | [RFC9499] Hoffman, P. and K. Fujiwara, "DNS Terminology", BCP 219, | |||
JSContact", RFC 9554, DOI 10.17487/RFC9554, March 2024, | RFC 9499, DOI 10.17487/RFC9499, March 2024, | |||
<https://www.rfc-editor.org/info/rfc9499>. | ||||
[RFC9554] Stepanek, R. and M. Loffredo, "vCard Format Extensions for | ||||
JSContact", RFC 9554, DOI 10.17487/RFC9554, May 2024, | ||||
<https://www.rfc-editor.org/info/rfc9554>. | <https://www.rfc-editor.org/info/rfc9554>. | |||
[RFC9555] Stepanek, R. and M. Loffredo, "vCard Format Extension for | [RFC9555] Stepanek, R. and M. Loffredo, "JSContact: Converting from | |||
JSContact", RFC 9555, DOI 10.17487/RFC9555, March 2024, | and to vCard", RFC 9555, DOI 10.17487/RFC9555, May 2024, | |||
<https://www.rfc-editor.org/info/rfc9555>. | <https://www.rfc-editor.org/info/rfc9555>. | |||
[RFC9562] Davis, K., Peabody, B., and P. Leach, "Universally Unique | [RFC9562] Davis, K., Peabody, B., and P. Leach, "Universally Unique | |||
IDentifiers (UUIDs)", RFC 9562, DOI 10.17487/RFC9562, | IDentifiers (UUIDs)", RFC 9562, DOI 10.17487/RFC9562, May | |||
April 2024, <https://www.rfc-editor.org/info/rfc9562>. | 2024, <https://www.rfc-editor.org/info/rfc9562>. | |||
[UBiDi] The Unicode Consortium, "Unicode Standard Annex #9: | [UBiDi] The Unicode Consortium, "Unicode Standard Annex #9: | |||
Unicode Bidirectional Algorithm", Revision 48, | Unicode Bidirectional Algorithm", Revision 48, | |||
Unicode 15.1.0, August 2023, | Unicode 15.1.0, August 2023, | |||
<https://www.unicode.org/reports/tr9/>. | <https://www.unicode.org/reports/tr9/>. | |||
[WHATWG-URL] | [WHATWG-URL] | |||
WHATWG, "URL Living Standard", January 2024, | WHATWG, "URL Living Standard", January 2024, | |||
<https://url.spec.whatwg.org>. | <https://url.spec.whatwg.org>. | |||
End of changes. 10 change blocks. | ||||
22 lines changed or deleted | 22 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |