Subject: [Jcardcal] Registration of "unknown" value data type

From: Bert Greevenbosch <[email-masked]>
Date: Sat, 8 Jun 2013 01:57:55 +0000

Dear vcarddav and IANA,

The jcardcal WG would like to register the "UNKNOWN" value data type. Please find the registration template below.

In the template, "RFCTODO" refers to the jCard specification:

http://datatracker.ietf.org/doc/draft-ietf-jcardcal-jcard/

The information about "UNKNOWN" can be found in section 5.

We look forward to get in touch with the designated expert for this registration.

Best regards,

Bert

(jcardcal co-chair and jCard shepherd)

---

   In jCard, a new UNKNOWN property value type is introduced.  Its

   purpose is to allow preserving unknown property values when round-

   tripping between jCard and vCard.

   Value name:  UNKNOWN

   Purpose:  To allow preserving unknown property values during round-

      tripping

   Format definition:  (Not applicable)

   Description:  The UNKNOWN value data type is reserved for the

      exclusive use of the jCard format RFCTODO.  It MUST NOT be used in

      plain vCard [RFC6350].  Conversion rules are as follows:

      *  When converting vCard into jCard:

         +  Any property that does not include a "VALUE" property

            parameter and whose default value type is not known, MUST be

            converted to a primitive JSON string.  The content of that

            string is the unprocessed value text.  Also, value type MUST

            be set to "unknown".

         +  To correctly implement this format, it is critical that if

            the default type is not known that the type "unknown" is

            used.  If this requirement is ignored and for example "text"

            is used, additional escaping may occur which breaks round-

            tripping values.

         +  Any unrecognized property parameter MUST be converted to a

            string value, with its content set to the property parameter

            value text, treated as if it were a "TEXT" value.

      *  When converting jCard into vCard:

         +  Since jCard always explicitly specifies the value type, it

            can always be converted to vCard using the VALUE parameter.

         +  If the value type specified in jCard matches the default

            value type in vCard, the VALUE parameter SHOULD be omitted.

         +  If the value type specified in jCard is set to "unknown",

            the value MUST be taken over in vCard without processing.

            In this case, the VALUE parameter MUST NOT be specified.

   Example: The following is an example of an unrecognized vCard

   property (that uses an "URI" value as its default), and the

   equivalent jCard representation of that property.

   vCard:

   X-COMPLAINT-URI:mailto:[email-masked]

   jCard:

   ...

   ["x-complaint-uri", {}, "unknown", "mailto:[email-masked]"],

   ...

   Example: The following is an example of how to cope with jCard data

   where the parser was unable to identify the type.  Note how the

   "unknown" value type is not added to the vCard data and escaping,

   aside from standard JSON string escaping, is not processed.

   jCard:

   ...

   ["x-coffee-data", {}, "unknown", "Stenophylla;Guinea\\,Africa"],

   ...

   vCard:

   X-COFFEE-DATA:Stenophylla;Guinea\,Africa

   Example: The following is an example of a jCard property (where the

   corresponding vCard property uses a "INTEGER" value as its default),

   and the equivalent vCard representation of that property.  It is

   assumed that the parser has knowledge of the default data type for

   the "x-karma-points" property.

   jCard:

   ...

   ["x-karma-points", {}, "integer", 95],

   ...

   vCard:

   X-KARMA-POINTS:95

   Example: The following is an example of an unrecognized vCard

   property parameter (that uses a "FLOAT" value as its default)

   specified on a recognized vCard property, and the equivalent jCard

   representation of that property and property parameter.

   vCard:

   GENDER;X-PROBABILITY=0.8:M

   jCard:

   ...

   ["gender", { "x-probability": "0.8" }, "text", "M"],

   ...