On Mar 5, 2006, at 8:58 AM, Brian Moseley wrote:

in the chandler repository, an item is basically just a list of types
and a flat list of name/value pair style attributes, right? couldn't a
very simple xml format address that in a flexible way?

<cosmo:item primarytype="cosmo:event" mixintypes="cosmo:contact, cosmo:msg">
  <cosmo:attr cosmo:name="summary" cosmo:created="xxx"
cosmo:modified="xxx" cosmo:who="bcm">this is an item</cosmo:attr>
  <cosmo:attr cosmo:name="firstname" cosmo:created="xxx"
cosmo:modified="xxx" cosmo:who="bcm">brian</cosmo:attr>
  <cosmo:attr cosmo:name="to" cosmo:created="xxx" cosmo:modified="xxx"
cosmo:who="ticket-cafebebedeadbeef">[EMAIL PROTECTED]</ cosmo:attr>
</cosmo:item>

I think I'd propose we use the xCalendar standard for representing iCalendar data in XML, and bundling those xCalendar elements within a general item representation using namespaces to qualify the attributes -- something along the lines of:

<core:item
        xmlns:ical="http://www.ietf.org/rfc/RFC2445.txt";
        xmlns:core="http://osafoundation.org/schemas/core/0.1";
        xmlns:pim="http://osafoundation.org/schemas/pim/0.1";>

    <!-- 'Core' attributes living on ContentItem -->
    <core:title>New Event</core:title>
    <core:description>Some description of the item</core:description>
    <core:uuid>a93aa9f6-6f3a-11da-a2d4-000a95bb2738</core:uuid>
    <core:date-created>2006-03-03 12:21:9.890080</core:date-created>
    <core:date-modified>2006-03-03 15:32:9.900080</core:date-modified>
<core:body mimetype='text/plain' encoding='utf-8'>SGVyZSBpcyB0aGUgdGV4dCBvZiB0aGUgbm90ZQ==</core:body>

    <!-- 'Calendar Event' attributes -->
    <pim:isEvent>True</pim:isEvent>
    <ical:vcalendar xmlns:ical="http://www.ietf.org/rfc/RFC2445.txt";
        <ical:version>2.0</ical:version>
        <ical:prodid>-//PYVOBJECT//NONSGML Version 1//EN</ical:prodid>
        <ical:vtimezone>
            <ical:tzid>US/Pacific</ical:tzid>
            <ical:standard>
                <ical:dtstart>20001029T020000</ical:dtstart>
<ical:rrule>FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10</ ical:rrule>
                <ical:tzname>US/Pacific</ical:tzname>
                <ical:tzoffsetfrom>-0700</ical:tzoffsetfrom>
                <ical:tzoffsetto>-0800</ical:tzoffsetto>
            </ical:standard>
            <ical:daylight>
                <ical:dtstart>20000402T020000</ical:dtstart>
<ical:rrule>FREQ=YEARLY;BYDAY=1SU;BYMONTH=4</ ical:rrule>
                <ical:tzname>US/Pacific</ical:tzname>
                <ical:tzoffsetfrom>-0800</ical:tzoffsetfrom>
                <ical:tzoffsetto>-0700</ical:tzoffsetto>
            </ical:daylight>
        </ical:vtimezone>
        [...]
    </ical:vcalendar>

    <!--  Attributes from other mixins follow...  -->
    [...]

</core:item>

Cosmo would only have to pay attention to the xCalendar elements (those in the http://www.ietf.org/rfc/RFC2445.txt namespace) -- the spec for that is at http://ietfreport.isoc.org/idref/draft-hare- xcalendar/




this would not make life difficult for cosmo. when processing a caldav
or atom request, it could easily convert this to icalendar or
hcalendar. when accepting an event from a caldav or atom client, cosmo
could convert the icalendar or hcalendar into this format for indexing
and storage.

supporting a format like this would make cosmo very appealing for
clients other than chandler as well.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev

Reply via email to