[CalendarServer-changes] [3772] CalendarServer/trunk/doc/Extensions

source_changes at macosforge.org source_changes at macosforge.org
Mon Mar 2 07:54:35 PST 2009


Revision: 3772
          http://trac.macosforge.org/projects/calendarserver/changeset/3772
Author:   cdaboo at apple.com
Date:     2009-03-02 07:54:35 -0800 (Mon, 02 Mar 2009)
Log Message:
-----------
Update schedule-changes spec to use new way of indicate precisely what properties and parameters changed.

Modified Paths:
--------------
    CalendarServer/trunk/doc/Extensions/caldav-schedulingchanges.txt
    CalendarServer/trunk/doc/Extensions/caldav-schedulingchanges.xml

Modified: CalendarServer/trunk/doc/Extensions/caldav-schedulingchanges.txt
===================================================================
--- CalendarServer/trunk/doc/Extensions/caldav-schedulingchanges.txt	2009-03-02 15:51:03 UTC (rev 3771)
+++ CalendarServer/trunk/doc/Extensions/caldav-schedulingchanges.txt	2009-03-02 15:54:35 UTC (rev 3772)
@@ -3,7 +3,7 @@
 
 Calendar Server Extension                                       C. Daboo
                                                                    Apple
-                                                      September 23, 2008
+                                                       February 28, 2009
 
 
        Change Indicators for Processed CalDAV Scheduling Messages
@@ -31,8 +31,8 @@
          4.1.2.3.  CS:changes XML Element  . . . . . . . . . . . . . . 6
          4.1.2.4.  CS:recurrences XML Element  . . . . . . . . . . . . 7
    5.  Security Considerations . . . . . . . . . . . . . . . . . . . . 7
-   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8
-   7.  Normative References  . . . . . . . . . . . . . . . . . . . . . 8
+   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7
+   7.  Normative References  . . . . . . . . . . . . . . . . . . . . . 7
    Appendix A.  Acknowledgments  . . . . . . . . . . . . . . . . . . . 8
    Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . . 8
 
@@ -54,7 +54,7 @@
 
 Daboo                                                           [Page 1]
 
-                   CalDAV Scheduling Change Indicators    September 2008
+                   CalDAV Scheduling Change Indicators     February 2009
 
 
 1.  Introduction
@@ -74,11 +74,11 @@
    result it can't determine changes itself.
 
    This specification defines a new WebDAV property on scheduling
-   messages stored in a calendar users scheduling Inbox collection.
+   messages stored in a calendar user's scheduling Inbox collection.
    This property is automatically generated by the server and contains
-   XML data representing the key changes made by the server when it
-   auto-processed the scheduling message.  Clients can use the data in
-   this property to provide an indication to a calendar user as to what
+   XML data representing the changes made by the server when it auto-
+   processed the scheduling message.  Clients can use the data in this
+   property to provide an indication to a calendar user as to what
    changed.
 
 
@@ -110,7 +110,7 @@
 
 Daboo                                                           [Page 2]
 
-                   CalDAV Scheduling Change Indicators    September 2008
+                   CalDAV Scheduling Change Indicators     February 2009
 
 
    create an XML data value (as described next) and store that in the
@@ -151,24 +151,34 @@
 
    Definition:
 
-       <!ELEMENT schedule-changes
-                 (dtstamp, action) >
 
-       <!ELEMENT dtstamp CDATA>
-       <!-- Date-time value in UTC -->
 
-       <!ELEMENT action (create|update|cancel|reply)>
-       <!-- Type of change that occurred -->
 
-       <!ELEMENT create EMPTY>
 
 
 
+
+
+
+
+
+
+
 Daboo                                                           [Page 3]
 
-                   CalDAV Scheduling Change Indicators    September 2008
+                   CalDAV Scheduling Change Indicators     February 2009
 
 
+       <!ELEMENT schedule-changes
+                 (dtstamp, action) >
+
+       <!ELEMENT dtstamp CDATA>
+       <!-- Date-time value in UTC -->
+
+       <!ELEMENT action (create|update|cancel|reply)>
+       <!-- Type of change that occurred -->
+
+       <!ELEMENT create EMPTY>
        <!-- New calendar object was created -->
 
        <!ELEMENT update (changes, recurrences?)>
@@ -191,23 +201,11 @@
        <!-- X-CALENDARSERVER-PRIVATE-COMMENT property value
             changed -->
 
-       <!ELEMENT changes (datetime?,
-                          location?,
-                          summary?,
-                          description?,
-                          recurrence?,
-                          status?,
-                          attendees?,
-                          attendee-partstat?)>
+       <!ELEMENT changes changed-property*>
+       <!ATTLIST changed-property name PCDATA>
 
-       <!ELEMENT datetime EMPTY>
-       <!ELEMENT location EMPTY>
-       <!ELEMENT summary EMPTY>
-       <!ELEMENT description EMPTY>
-       <!ELEMENT recurrence EMPTY>
-       <!ELEMENT status EMPTY>
-       <!ELEMENT attendees EMPTY>
-       <!ELEMENT attendee-partstat EMPTY>
+       <!ELEMENT changed-property changed-parameter*>
+       <!ATTLIST changed-parameter name PCDATA>
 
        <!ELEMENT recurrences (master?, recurrenceid*)>
        <!-- Which instances were affected by the change -->
@@ -220,9 +218,11 @@
 
 
 
+
+
 Daboo                                                           [Page 4]
 
-                   CalDAV Scheduling Change Indicators    September 2008
+                   CalDAV Scheduling Change Indicators     February 2009
 
 
    Example:
@@ -241,7 +241,7 @@
      <CS:action>
        <CS:update>
          <CS:changes>
-           <CS:summary/>
+           <CS:changed-property name="SUMMARY"/>
          </CS:changes>
          <CS:recurrences/>
        </CS:update>
@@ -278,7 +278,7 @@
 
 Daboo                                                           [Page 5]
 
-                   CalDAV Scheduling Change Indicators    September 2008
+                   CalDAV Scheduling Change Indicators     February 2009
 
 
    +-----------+-------------------------------------------------------+
@@ -308,60 +308,42 @@
    |           |                                                       |
    | CS:reply  | An Attendee's reply was processed.  The CS:attendee,  |
    |           | CS:partstat and CS:private-comment elements indicate  |
-   |           | which Attendee replied, what their new "PARTSTAT" was |
-   |           | set to, and what, if any, private comment was sent.   |
+   |           | which Attendee replied, whether their "PARTSTAT"      |
+   |           | changed, and whether any private comment was changed. |
    |           | The CS:partstat and CS:private-comment child elements |
-   |           | MUST only be present if the relevant properties were  |
-   |           | changed.  If the calendar object is not recurring,    |
-   |           | CS:recurrences MUST NOT be present.  If all or any    |
-   |           | individual instances of a recurring calendar object   |
-   |           | were affected, then CS:recurrences MUST be present    |
-   |           | and indicate which instances were affected..          |
+   |           | MUST only be present if the relevant properties or    |
+   |           | parameters were changed.  If the calendar object is   |
+   |           | not recurring, CS:recurrences MUST NOT be present.    |
+   |           | If all or any individual instances of a recurring     |
+   |           | calendar object were affected, then CS:recurrences    |
+   |           | MUST be present and indicate which instances were     |
+   |           | affected..                                            |
    +-----------+-------------------------------------------------------+
 
 4.1.2.3.  CS:changes XML Element
 
-   This element indicates the key changes that took place:
+   This element indicates the key changes that took place.  The child
+   element CS:changed-property lists all the properties in all instances
+   that changed, with the name attribute on each element indicating
+   which iCalendar property changed.  There MUST only be one CD:changed-
+   property element for a specific name attribute value, i.e. if
+   multiple properties of the same name changed, only one CS:changed-
+   property will appear.
 
 
 
-
-
-
-
-
-
-
 Daboo                                                           [Page 6]
 
-                   CalDAV Scheduling Change Indicators    September 2008
+                   CalDAV Scheduling Change Indicators     February 2009
 
 
-   +----------------------+--------------------------------------------+
-   | Child Element        | iCalendar Property changed                 |
-   +----------------------+--------------------------------------------+
-   | CS:datetime          | "DTSTART", "DTEND", "DURATION", "DUE", or  |
-   |                      | "COMPLETED".                               |
-   |                      |                                            |
-   | CS:location          | "LOCATION"                                 |
-   |                      |                                            |
-   | CS:summary           | "SUMMARY"                                  |
-   |                      |                                            |
-   | CS:description       | "DESCRIPTION"                              |
-   |                      |                                            |
-   | CS:recurrence        | "RRULE", "RDATE", "EXDATE"                 |
-   |                      |                                            |
-   | CS:status            | "STATUS"                                   |
-   |                      |                                            |
-   | CS:attendees         | "ATTENDEE" (added or removed)              |
-   |                      |                                            |
-   | CS:attendee-partstat | "ATTENDEE" ("PARTSTAT" parameter changed)  |
-   +----------------------+--------------------------------------------+
+   For each CD:changed-property element, if any parameters were changed
+   on the corresponding properties, then those should be includes as
+   child elements CD:changed-parameter, with the name attribute on those
+   elements containing the name of the parameter changed.  As with CS:
+   changed-proeprties, there MUST only be one CS:changed-parameter
+   element for each iCalendar parameter that changed.
 
-   If a change did take place, but that change does not correspond to
-   one indicated by the currently defined child XML elements, then the
-   CS:changes element MUST be present but empty.
-
 4.1.2.4.  CS:recurrences XML Element
 
    This element indicates which instances were affected by a change:
@@ -384,15 +366,6 @@
    TODO:
 
 
-
-
-
-
-Daboo                                                           [Page 7]
-
-                   CalDAV Scheduling Change Indicators    September 2008
-
-
 6.  IANA Considerations
 
    This document does not require any actions on the part of IANA.
@@ -401,10 +374,9 @@
 7.  Normative References
 
    [I-D.desruisseaux-caldav-sched]
-              Daboo, C., Desruisseaux, B., and L. Dusseault, "CalDAV
-              Scheduling Extensions to WebDAV",
-              draft-desruisseaux-caldav-sched-04 (work in progress),
-              November 2007.
+              Daboo, C. and B. Desruisseaux, "CalDAV Scheduling
+              Extensions to WebDAV", draft-desruisseaux-caldav-sched-06
+              (work in progress), November 2008.
 
    [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119, March 1997.
@@ -413,6 +385,14 @@
               Scheduling Core Object Specification (iCalendar)",
               RFC 2445, November 1998.
 
+
+
+
+Daboo                                                           [Page 7]
+
+                   CalDAV Scheduling Change Indicators     February 2009
+
+
    [RFC2446]  Silverberg, S., Mansour, S., Dawson, F., and R. Hopson,
               "iCalendar Transport-Independent Interoperability Protocol
               (iTIP) Scheduling Events, BusyTime, To-dos and Journal
@@ -432,23 +412,6 @@
    calendar server and client teams.
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-Daboo                                                           [Page 8]
-
-                   CalDAV Scheduling Change Indicators    September 2008
-
-
 Author's Address
 
    Cyrus Daboo
@@ -481,24 +444,5 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Daboo                                                           [Page 9]
+Daboo                                                           [Page 8]
 

Modified: CalendarServer/trunk/doc/Extensions/caldav-schedulingchanges.xml
===================================================================
--- CalendarServer/trunk/doc/Extensions/caldav-schedulingchanges.xml	2009-03-02 15:51:03 UTC (rev 3771)
+++ CalendarServer/trunk/doc/Extensions/caldav-schedulingchanges.xml	2009-03-02 15:54:35 UTC (rev 3772)
@@ -17,7 +17,7 @@
 <?rfc compact="yes"?>
 <?rfc subcompact="no"?>
 <?rfc private="Calendar Server Extension"?>
-<rfc ipr="none" docName='caldav-schedulingchanges-00'>
+<rfc ipr="none" docName='caldav-schedulingchanges-02'>
     <front>
         <title abbrev="CalDAV Scheduling Change Indicators">Change Indicators for Processed CalDAV Scheduling Messages</title> 
         <author initials="C." surname="Daboo" fullname="Cyrus Daboo">
@@ -36,7 +36,7 @@
                 <uri>http://www.apple.com/</uri>
             </address>
         </author>
-        <date year='2008'/>
+        <date/>
         <abstract>
             <t>
                 This document defines an extension to CalDAV Scheduling that adds a change summary for scheduling messages automatically processed by the server. It can be used by clients to provide a detailed indication to a calendar user of how a calendar object was changed by auto-processing of a scheduling message.
@@ -52,7 +52,7 @@
                 In CalDAV Scheduling, scheduling messages sent between calendar users can be automatically processed by the CalDAV server. Often clients need to provide an indication to the user of what changed when such auto-processing occurs (e.g. to inform the user that an event was re-scheduling or cancelled). Sometimes the client does not have the old copy of the automatically updated calendar object to hand, so as a result it can't determine changes itself.
             </t>
             <t>
-                This specification defines a new WebDAV property on scheduling messages stored in a calendar users scheduling Inbox collection. This property is automatically generated by the server and contains XML data representing the key changes made by the server when it auto-processed the scheduling message. Clients can use the data in this property to provide an indication to a calendar user as to what changed.
+                This specification defines a new WebDAV property on scheduling messages stored in a calendar user's scheduling Inbox collection. This property is automatically generated by the server and contains XML data representing the changes made by the server when it auto-processed the scheduling message. Clients can use the data in this property to provide an indication to a calendar user as to what changed.
             </t>
         </section>
         <section title='Conventions Used in This Document'>
@@ -129,23 +129,11 @@
     <!-- X-CALENDARSERVER-PRIVATE-COMMENT property value
          changed -->
 
-    <!ELEMENT changes (datetime?,
-                       location?,
-                       summary?,
-                       description?,
-                       recurrence?,
-                       status?,
-                       attendees?,
-                       attendee-partstat?)>
+    <!ELEMENT changes changed-property*>
+    <!ATTLIST changed-property name PCDATA>
 
-    <!ELEMENT datetime EMPTY>
-    <!ELEMENT location EMPTY>
-    <!ELEMENT summary EMPTY>
-    <!ELEMENT description EMPTY>
-    <!ELEMENT recurrence EMPTY>
-    <!ELEMENT status EMPTY>
-    <!ELEMENT attendees EMPTY>
-    <!ELEMENT attendee-partstat EMPTY>
+    <!ELEMENT changed-property changed-parameter*>
+    <!ATTLIST changed-parameter name PCDATA>
 
     <!ELEMENT recurrences (master?, recurrenceid*)>
     <!-- Which instances were affected by the change -->
@@ -179,7 +167,7 @@
   <CS:action>
     <CS:update>
       <CS:changes>
-        <CS:summary/>
+        <CS:changed-property name="SUMMARY"/>
       </CS:changes>
       <CS:recurrences/>
     </CS:update>
@@ -222,61 +210,12 @@
                         <c>&nbsp;</c>
                         
                         <c>CS:reply</c>
-                        <c>An Attendee's reply was processed. The CS:attendee, CS:partstat and CS:private-comment elements indicate which Attendee replied, what their new "PARTSTAT" was set to, and what, if any, private comment was sent. The CS:partstat and CS:private-comment child elements MUST only be present if the relevant properties were changed. If the calendar object is not recurring, CS:recurrences MUST NOT be present. If all or any individual instances of a recurring calendar object were affected, then CS:recurrences MUST be present and indicate which instances were affected..</c>
+                        <c>An Attendee's reply was processed. The CS:attendee, CS:partstat and CS:private-comment elements indicate which Attendee replied, whether their "PARTSTAT" changed, and whether any private comment was changed. The CS:partstat and CS:private-comment child elements MUST only be present if the relevant properties or parameters were changed. If the calendar object is not recurring, CS:recurrences MUST NOT be present. If all or any individual instances of a recurring calendar object were affected, then CS:recurrences MUST be present and indicate which instances were affected..</c>
                     </texttable>
                   </section>
                   <section title="CS:changes XML Element">
-                    <t>This element indicates the key changes that took place:</t>
-                    <texttable>
-                        <ttcol>Child Element</ttcol>
-                        <ttcol>iCalendar Property changed</ttcol>
-                        
-                        <c>CS:datetime</c>
-                        <c>"DTSTART", "DTEND", "DURATION", "DUE", or "COMPLETED".</c>
-                        
-                        <c>&nbsp;</c>
-                        <c>&nbsp;</c>
-
-                        <c>CS:location</c>
-                        <c>"LOCATION"</c>
-                        
-                        <c>&nbsp;</c>
-                        <c>&nbsp;</c>
-                        
-                        <c>CS:summary</c>
-                        <c>"SUMMARY"</c>
-                        
-                        <c>&nbsp;</c>
-                        <c>&nbsp;</c>
-                        
-                        <c>CS:description</c>
-                        <c>"DESCRIPTION"</c>
-                        
-                        <c>&nbsp;</c>
-                        <c>&nbsp;</c>
-                        
-                        <c>CS:recurrence</c>
-                        <c>"RRULE", "RDATE", "EXDATE"</c>
-                        
-                        <c>&nbsp;</c>
-                        <c>&nbsp;</c>
-                        
-                        <c>CS:status</c>
-                        <c>"STATUS"</c>
-                        
-                        <c>&nbsp;</c>
-                        <c>&nbsp;</c>
-                        
-                        <c>CS:attendees</c>
-                        <c>"ATTENDEE" (added or removed)</c>
-                        
-                        <c>&nbsp;</c>
-                        <c>&nbsp;</c>
-                        
-                        <c>CS:attendee-partstat</c>
-                        <c>"ATTENDEE" ("PARTSTAT" parameter changed)</c>
-                    </texttable>
-                    <t>If a change did take place, but that change does not correspond to one indicated by the currently defined child XML elements, then the CS:changes element MUST be present but empty.</t>
+                    <t>This element indicates the key changes that took place. The child element CS:changed-property lists all the properties in all instances that changed, with the name attribute on each element indicating which iCalendar property changed. There MUST only be one CD:changed-property element for a specific name attribute value, i.e. if multiple properties of the same name changed, only one CS:changed-property will appear.</t>
+                    <t>For each CD:changed-property element, if any parameters were changed on the corresponding properties, then those should be includes as child elements CD:changed-parameter, with the name attribute on those elements containing the name of the parameter changed. As with CS:changed-proeprties, there MUST only be one CS:changed-parameter element for each iCalendar parameter that changed.</t>
                   </section>
                   <section title="CS:recurrences XML Element">
                     <t>This element indicates which instances were affected by a change:</t>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090302/b6159756/attachment-0001.html>


More information about the calendarserver-changes mailing list