Может ли свойство vCard 2.1 Name иметь запятые в своих компонентах?
Мне нужно разобрать vCard 2.1 Имя свойства.
В vCard 3.0 и 4.0 каждый компонент свойства Name может иметь несколько значений. Например, RFC 2426 четко гласит:
Отдельные текстовые компоненты могут включать несколько текстовых значений (например, несколько дополнительных имен), разделенных символом COMMA (десятичный ASCII 44).
но в vCard 2.1 похоже, что каждый компонент может иметь только одно значение. Хотя, вероятно, по крайней мере, Дополнительные имена (третье поле) могут содержать запятые.
Может ли свойство vCard 2.1 Name содержать запятую в строках "Фамилия", "Имя", "Дополнительные имена", "Префикс имени" и "Суффикс имени"? Должно ли это рассматриваться как "множественные текстовые значения", как в vCard 3.0 и 4.0?
1 ответ
Согласно формальному определению BNF в спецификации 2.1, список значений в компоненте, разделенный запятыми, не поддерживается. BNF ничего не говорит о необходимости избегать запятых.
nameparts = 0*4(strnosemi ";") strnosemi
; Family, Given, Middle, Prefix, Suffix.
; Example:Public;John;Q.;Reverend Dr.;III, Esq.
strnosemi = *(*nonsemi ("\;" / "\" CRLF)) *nonsemi
; To include a semicolon in this string, it must be escaped
; with a "\" character.
Один из примеров, приведенных для свойства N, также предполагает, что запятые не имеют особого значения.
N:Veni, Vidi, Vici;The Restaurant.
Таким образом, похоже, что свойство N не поддерживает несколько значений в vCard 2.1.