]> err.no Git - sope/blob - sope-ical/NGiCal/NGiCal.xmap
a9a612da3ea377d6757c61cc592652a59c80db02
[sope] / sope-ical / NGiCal / NGiCal.xmap
1 {
2   "http://www.ietf.org/internet-drafts/draft-ietf-calsch-many-xcal-01.txt" = {
3
4     // components
5     
6     iCalendar = {
7       class  = NSMutableDictionary; // "ICalXRoot";
8       tagKey = "tag";
9       
10       ToManyRelationships = {
11         "subcomponents" = ( vcalendar );
12       };
13     };
14     
15     vcalendar = {
16       class  = iCalCalendar; // ICalVCalendar;
17
18       attributes = {
19         prodid   = prodId;
20         version  = version;
21         calscale = calscale;
22       };
23       
24       ToManyRelationships = {
25         events    = ( vevent    );
26         todos     = ( vtodo     );
27         journals  = ( journals  );
28         freeBusys = ( vfreebusy );
29         timezones = ( vtimezone );
30       };
31     };
32     
33     vevent = {
34       class  = iCalEvent;
35
36       attributes = {
37       };
38
39       ToManyRelationships = {
40         "alarms"          = ( valarm   );
41         "attendees"       = ( attendee );
42         "recurrenceRules" = ( rrule    );
43         "exceptionRules"  = ( exrule   );
44         "exceptionDates"  = ( exdate   );
45       };
46     };
47     
48     vtodo = {
49       class = "iCalToDo";
50
51       attributes = {
52       };
53
54       ToManyRelationships = {
55         "alarms"    = ( valarm   );
56         "attendees" = ( attendee );
57       };
58     };
59     
60     valarm = {
61       class = "iCalAlarm";
62
63       attributes = {
64         rrule = recurrenceRule;
65       };
66     };
67     
68     vfreebusy = {
69       class = "iCalFreeBusy";
70       
71       ToManyRelationships = {
72         "entries" = ( freebusy );
73       };
74     };
75     
76     vtimezone = {
77       class = NSMutableDictionary;
78       
79       attributes = {
80         tzid             = timeZoneID;
81         "X-LIC-LOCATION" = location;
82         daylight         = daylightInfo;
83         standard         = standardInfo;
84       };
85     };
86     daylight = {
87       class = NSMutableDictionary;
88       
89       attributes = {
90         tzoffsetfrom = tzOffsetFrom;
91         tzoffsetto   = tzOffsetTo;
92         tzname       = tzName;
93         dtstart      = startDate;
94         rrule        = recurrenceRule;
95       };
96     };
97     standard = {
98       class = NSMutableDictionary;
99       
100       attributes = {
101         tzoffsetfrom = tzOffsetFrom;
102         tzoffsetto   = tzOffsetTo;
103         tzname       = tzName;
104         dtstart      = startDate;
105         rrule        = recurrenceRule;
106       };
107     };
108     
109     // attributes
110     
111     dtstamp = {
112       class      = iCalDateHolder;
113       key        = "timeStampAsDate";
114       tagKey     = "tag";
115       contentKey = "string";
116     };
117     created = {
118       class      = iCalDateHolder;
119       key        = "created";
120       tagKey     = "tag";
121       contentKey = "string";
122     };
123     "last-modified" = {
124       class      = iCalDateHolder;
125       key        = "lastModified";
126       tagKey     = "tag";
127       contentKey = "string";
128     };
129     
130     dtstart = {
131       class = iCalDateHolder;
132       key   = "startDate";
133       attributes = {
134         tzid = tzid;
135       };
136       tagKey     = "tag";
137       contentKey = "string";
138     };
139     dtend = {
140       class = iCalDateHolder;
141       key   = "endDate";
142       attributes = {
143         tzid = tzid;
144       };
145       tagKey     = "tag";
146       contentKey = "string";
147     };
148     exdate = {
149       class = iCalDateHolder;
150       key   = "recurrenceRuleExceptionDate";
151       attributes = {
152         tzid = tzid;
153       };
154       tagKey     = "tag";
155       contentKey = "string";
156     };
157     due = {
158       class = iCalDateHolder;
159       attributes = {
160         tzid = tzid;
161       };
162       tagKey     = "tag";
163       contentKey = "string";
164     };
165     completed = {
166       class = iCalDateHolder;
167       attributes = {
168         tzid = tzid;
169       };
170       tagKey     = "tag";
171       contentKey = "string";
172     };
173     
174     duration = {
175       class = NSString;
176     };
177     
178     summary     = { class = NSString; };
179     description = { class = NSString; key = comment; };
180     uid         = { class = NSString; };
181     action      = { class = NSString; };
182     priority    = { class = NSString; };
183     status      = { class = NSString; };
184     transp      = { class = NSString; key = transparency; };
185     sequence    = { class = NSString; };
186     categories  = { class = NSString; };
187     class       = { class = NSString; key = accessClass; };
188     percent-complete = { class = NSString; key = "percentComplete"; };
189     
190     attendee = {
191       class = iCalPerson;
192       attributes = {
193         cn = cn;
194         rsvp = rsvp;
195         role = role;
196         partstat = partStat;
197       };
198       contentKey = "email";
199     };
200     organizer = {
201       class      = iCalPerson;
202       attributes = {
203         cn = cn;
204       };
205       contentKey = "email";
206     };
207     
208     freebusy = {
209       class = NSString;
210     };
211     url = {
212       class = NSString;
213     };
214     
215     trigger = {
216       class = iCalTrigger;
217       attributes = {
218         value = valueType;
219       };
220       contentKey = "value";
221     };
222     attach = {
223       class = iCalAttachment;
224       attributes = {
225         value = valueType;
226       };
227       contentKey = "value";
228     };
229
230     tzid = {
231       class = NSString;
232     };
233     tzname = {
234       class = NSString;
235     };
236     tzoffsetfrom = {
237       class = NSString;
238     };
239     tzoffsetto = {
240       class = NSString;
241     };
242     rrule = {
243       class = iCalRecurrenceRule;
244       /*
245       attributes = {
246         freq       = rrFreq;
247         until      = rrUntil;
248         count      = rrCount;
249         interval   = rrInterval;
250         bysecond   = rrBySecondList;
251         byminute   = rrByMinuteList;
252         byhour     = rrByHourList;
253         byday      = rrByDayList;
254         bymonthday = rrByMonthDayList;
255         byyearday  = rrByYearDayList;
256         byweekno   = rrByWeekNumberList;
257         bymonth    = rrByMonthList;
258         bysetpos   = rrBySetPosList;
259         wkst       = rrWeekStart;
260       };
261       */
262       contentKey = "rrule";
263       key        = "recurrenceRule";
264     };
265     location = {
266       class = NSString;
267     };
268     
269     // extra tags
270
271     "X-LIC-LOCATION" = {
272       class = NSString;
273     };
274     
275     "X-WR-TIMEZONE" = {
276       rejectWithContent = YES;
277     };
278     "X-WR-CALNAME" = {
279       rejectWithContent = YES;
280     };
281     "X-WR-RELCALID" = {
282       rejectWithContent = YES;
283     };
284
285     "X-MICROSOFT-CDO-TZID" = {
286       rejectWithContent = YES;
287     };
288     "X-MICROSOFT-CDO-BUSYSTATUS" = {
289       rejectWithContent = YES;
290     };
291     "X-MICROSOFT-CDO-INSTTYPE" = {
292       rejectWithContent = YES;
293     };
294     "X-MICROSOFT-CDO-INTENDEDSTATUS" = {
295       rejectWithContent = YES;
296     };
297     "X-MICROSOFT-CDO-ALLDAYEVENT" = {
298       rejectWithContent = YES;
299     };
300     "X-MICROSOFT-CDO-IMPORTANCE" = {
301       rejectWithContent = YES;
302     };
303
304     "X-PILOTID" = {
305       rejectWithContent = YES;
306     };
307     "X-PILOTSTAT" = {
308       rejectWithContent = YES;
309     };
310   };
311 }