Subject: [Jcardcal] Resolving a comment from Barry: "multi-valued" vs "structured-value"

From: Bert Greevenbosch <[email-masked]>
Date: Thu, 29 Aug 2013 08:46:19 +0000

Hi Barry, all,

To address Barry's comment (below) about "multi-valued" vs "structured-value":

I think Barry has point here. Section 3.2.1.4 discusses structured property values, and the quoted text is in scope with that. In addition, multi-valued properties, as discussed in section 3.2.1.2, are coded as extra array elements in the property array (which with a single-valued property contains exactly 4 elements).

To start with the second part of Barry's comment, I propose the following change:

OLD:
   A structured value is defined as a value
   that contains multiple text components, delimited by the SEMICOLON
   character.  In jCard, the property value is an array containing one
   element for each text component.
NEW:
   In vCard, a structured text value consists of one or
   multiple text components, delimited by the SEMICOLON
   character.  Its equivalent in jCard is a structured property value,
   which is an array containing one element for each text component.
END

To address the first part of Barry's comment, we could change as follows:

OLD:
   If a multi-valued text component is changed to hold only one value,
   the text component SHOULD be represented as a single primitive value,
   dropping the array completely.  Nevertheless, a more simple
   implementation might choose to retain the array, with a single
   primitive value as its element.
NEW:
   Although it is allowed for a structured property value to hold just one component,
   it is RECOMMENDED to represent it as a single text value instead,
   omitting the array completely.  Nevertheless, a simple
   implementation MAY choose to retain the array, with a single
   text value as its element.
END

Comments or suggestions are welcome!

Best regards,
Bert

--- Barry Leiba's COMMENT ---
In Section 3.2.1.4:

'If a multi-valued text component is changed to hold only one value,
the text component SHOULD be represented as a single primitive value,
dropping the array completely.'

Shouldn't that be "If a structured-value text component", rather than
"multi-valued"? I was confused by that at first. And then what do you mean
"is changed"? And I think the use of "component" and "value" are confusing
here, because the whole structured text string is a single vCard "value", and
you've previously referred to its "components" as the bits separated by
semicolons. Now you're using those words differently.