[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