[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[VCARDDAV] Embedding XML in vCard
Dear WG,
Here's a first proposal for embedding XML in vCard, as discussed at IETF 75 in
Stockholm.
First, I propose that this be part of draft-ietf-vcarddav-vcardxml, not of
draft-ietf-vcarddav-vcardrev. This is to eliminate mutual referencing, and also
to eliminate the question of "how do I interpret an XML blob if all I'm
compliant with is plain vCard?" Only XML-aware clients which also happen to
understand plain vCard would know what to do with an XML blob. Which I think
makes sense.
The proposal is for a new property named "XML". Example:
BEGIN:VCARD
VERSION:4.0
FN:Simon Perreault
XML:<email>simon.perreault at viagenie.ca</email>
END:VCARD
That's it.
Details:
- Multiple XML-encoded properties could be present in a single "XML" property,
e.g. XML:<prop1>...</prop1><prop2>...</prop2>
- Multiple instances of an "XML" property could be present in a single vCard.
This is so that the order of properties does not change during conversion. Yes I
know order doesn't matter, but I think it would be nice to have the following
property hold:
strcmp( vcard(xml("BEGIN:VCARD...END:VCARD")), "BEGIN:VCARD...END:VCARD" ) == 0
- The content of the "XML" property would be an XML chunk with default XML
namespace being the vCard 4 namespace. The elements allowed there would be those
that are allowed to be immediate children of the <vcard> element. The normal
rule for extensibility would apply (i.e. things in unknown namespaces are
ignored). The chunk would be subject to normal line folding and escaping, i.e:
1. Replace all newlines with "\n".
(All the rest of the full UTF-8 gamut is untouched.)
2. Fold long lines.
(Do it after "\n" for bonus points.)
- The following would be implicitly valid:
BEGIN:VCARD
XML:<!-- All the content is here. -->
END:VCARD
How about that?
Simon
--
DNS64 open-source --> http://ecdysis.viagenie.ca
STUN/TURN server --> http://numb.viagenie.ca
vCard 4.0 --> http://www.vcarddav.org