possono / devono essere sfuggiti parametri di proprietà iCal?
Domanda
In particolare, il (nome comune) del parametro NC, per es.
ORGANIZZATORE; CN = John Doe, Eng: mailto: jd@some.com
La RFC è vago su questo, IMHO. E 'molto chiaro sui valori proprietà di Tipo testo, ma per questo parametro si dice solo " Il valore del parametro è il testo ". In ogni modo, l'escape specificato per il tipo di testo non sembra completo per i valori dei parametri (per esempio ':' non è sfuggito)
.grazie mille!
Soluzione
dávka,
Sì, i valori dei parametri può essere sfuggito circondando il valore fra virgolette. I valori dei parametri devono essere sfuggiti se contengono uno dei seguenti caratteri:
; - semicolon
: - colon
, - comma
E 'illegale avere un carattere doppio apice "
dentro i valori dei parametri, per cui dovrebbero essere cancellati (o altrimenti rimossi dal valore del parametro).
Quindi, con il tuo esempio di cui sopra, la fuga giusta è questa:
ORGANIZER;CN="John Doe,Eng":mailto:jd@some.com
Si noti che una volta che si incontra il primo (non quotate) :
del colon, i motori di parsing trattano il resto come il il valore della proprietà . E 'legale utilizzare il carattere due punti :
dentro i valori delle proprietà, così i due punti in mailto:jd@some.com
non ha bisogno di essere sfuggito.
Si può rompere la linea in sue parti:
-
ORGANIZER
- nome della proprietà -
;
- parametro delimitatore -
CN
- nome del parametro -
=
- valore del parametro delimitatore -
"John Doe,Eng"
- valore di parametro -
:
- valore della proprietà delimitatore -
mailto:jd@some.com
- valore della proprietà
Ecco una citazione da RFC 5545 sezione 3.2 che spiega quando i valori dei parametri sono circondati da virgolette, e ci dice virgolette sono illegali in valori dei parametri:
i valori dei parametri di proprietà che contengono il COLON, punto e virgola o virgola separatori di caratteri devono essere specificati come valori di testo citato-stringhe. Proprietà i valori dei parametri non devono contenere la carattere DQUOTE. il DQUOTE carattere viene utilizzato come delimitatore per valori dei parametri che contengono caratteri limitati o testo URI. Ad esempio:
Descrizione; ALTREP = "cid: part1.0001@example.org": il Fall'98 selvaggio Wizards Conference - - Las Vegas \, NV \, Stati Uniti d'America
E 'importante notare che i parametri possono tecnicamente contenere più valori. Una virgola viene utilizzato per separare questi valori multipli:
(dalla sezione 3.2.11 di RFC 5545:)
ATTENDEE;MEMBER="mailto:projectA@example.com","mailto:pr
ojectB@example.com":mailto:janedoe@example.com
Non tutti i motori di iCalendar accetteranno più valori su tutti i parametri, ma i seguenti parametri devono consentire valori multipli (secondo la RFC):
- membro
- DELEGATI DA-
- DELEGATI-TO
Saluti,
-Doug