Subject: Re: 3.1 System Model

From: [email-masked]
Date: Tue, 5 Nov 2002 11:16:22 -0500

Doug replied on 10/31/2002 01:28:40 PM:
> There are possible solutions:
> 
>    (1) We alter the ABNF for CAP to allow it.
>    (2) We create a new object that will only contain
>        a CMD property.
> 
> I would go for (1) by adding the following in section "2. Additions to
> iCalendar", after the 'calprops' ABNF and before the "In addition.."
> paragraph:
> 
>    Also the 'component' part of the 'icalbody' ABNF as described
>    in [iCAL] section 4.6 is optional when the "VCALENDAR" component
>    is sending a command as shown in the following modified ABNF:
> 
>     icalbody = calprops component
> 
>         ; If the "VCALENDAR" component contains the "CMD"
>                    ; component then the 'component' is optional:
>                    ;
>                    / calprops
> 

That sounds ok.

Lets not forget to TARGET is in the same boat as CMD.  We can modify the 
ABNF for 2445 but for those cases where we send only calprops we need to 
be clear in CAP that we are sending iCalendar objects and not iTIP 
objects.  A minor distinction but one that is relevant if iTIP failover or 
gatewaying is being considered in the future.

One thing to note in the new ABNF is that its illogical to have a TARGET 
w/o a CMD.  This should be noted in the ABNF, like:

        calprops   = 2*(

                   ; 'prodid' and 'version' are both REQUIRED,
                   ; but MUST NOT occur more than once.
                   ;
                   prodid /version /

                   ; These are optional, but MUST NOT occur
                   ; more than once.
                   ;
                   calscale        /
                   method          /
                   cmd             /

                   ; These are optional, and may occur more
                   ; than once.  'target' MUST NOT occur if
                   ; 'cmd' does not.
                   ;
                   target          /
                   iana-prop       /
                   x-prop
                   )

or put another way (to make this more parser friendly):

        calprops   = 2*(

                   ; 'prodid' and 'version' are both REQUIRED,
                   ; but MUST NOT occur more than once.

                   prodid /version /

                   ; These are optional, but MUST NOT occur
                   ; more than once.

                   calscale        /
                   method          /

                   ; These are optional, but MUST NOT occur
                   ; more than once.

                   ( cmd             /
                   ( cmd / 1*target )
                   )          /

                   ; These are optional, and may occur more
                   ; than once.

                   iana-prop       /
                   x-prop
                   )

Bruce
===========================================================================
Bruce Kahn                                INet: 
[email-masked]
Messaging & Collaboration                 Phone: 978.399.6496
IBM Software Group                         FAX: and nothing but the FAX...
Standard disclaimers apply, even where prohibited by law...