pueden / deben ser escapados parámetros de propiedades iCal?
Pregunta
específicamente, el parámetro CN (nombre común), por ejemplo.
Organizador; CN = John Doe, Eng: mailto: jd@some.com
El RFC es vaga en esto, en mi humilde opinión. Está muy claro acerca de los valores propiedad Tipo texto, pero para este parámetro sólo dice " El valor del parámetro es el texto ". De todas formas, el escape que especifica para el tipo TEXT no parece completa para valores de los parámetros (por ejemplo ':' no está escapado)
.muchas gracias!
Solución
Davka,
Sí, los valores de los parámetros se puede escapar al rodear el valor entre comillas dobles. valores de los parámetros deben escaparse si contienen cualquiera de los siguientes caracteres:
; - semicolon
: - colon
, - comma
Es ilegal tener un carácter de comillas dobles "
dentro de valores de los parámetros, por lo que deben ser borrados (o de otra manera eliminados de la valor de parámetro).
Así que, con su ejemplo anterior, el escape correcta es la siguiente:
ORGANIZER;CN="John Doe,Eng":mailto:jd@some.com
Tenga en cuenta que una vez que se encontró con el primero (sin comillas) :
de colon, los motores de análisis sintáctico tratan a los demás como el valor de la propiedad . Es legal utilizar el carácter :
de colon dentro de los valores de propiedad, por lo que no necesita los dos puntos en mailto:jd@some.com
ser escapado.
puede romper la línea en sus partes:
-
ORGANIZER
- nombre de la propiedad -
;
- parámetro delimitador -
CN
- nombre del parámetro -
=
- valor del parámetro delimitador -
"John Doe,Eng"
- valor del parámetro -
:
- valor de la propiedad delimitador -
mailto:jd@some.com
- valor de la propiedad
He aquí una cita de RFC 5545 Sección 3.2 explica que cuando los valores de los parámetros están rodeados de comillas dobles, y nos dice entre comillas dobles son ilegales en valores de los parámetros:
valores de los parámetros de propiedades que contienen los dos puntos, punto y coma, o una coma caracteres de separación, debe especificarse como valores de texto cita de cadena. Propiedad valores de los parámetros no debe contener el DQUOTE carácter. el DQUOTE carácter se utiliza como un delimitador de valores de los parámetros que contienen caracteres restringidos o texto URI. Por ejemplo:
DESCRIPCIÓN; ALTREP = "cid: part1.0001@example.org": La Fall'98 Conferencia Wizards salvaje - - Las Vegas \, NV \, EE.UU.
Es importante tener en cuenta que los parámetros pueden contener técnicamente varios valores. Una coma se utiliza para separar estos múltiples valores:
(de la Sección 3.2.11 de RFC 5545:)
ATTENDEE;MEMBER="mailto:projectA@example.com","mailto:pr
ojectB@example.com":mailto:janedoe@example.com
No todos los motores iCalendar aceptarán múltiples valores en todos los parámetros, pero los siguientes parámetros deben permitir múltiples valores (de acuerdo con el RFC):
- MIEMBRO
- DELEGADA-FROM
- DELEGADA-A
Saludos,
-Doug