]> git.argeo.org Git - gpl/argeo-suite.git/blob - org.argeo.app.core/src/org/argeo/app/core/schemas/xCal-2.0-RFC6321.rnc
Add cn to person entity
[gpl/argeo-suite.git] / org.argeo.app.core / src / org / argeo / app / core / schemas / xCal-2.0-RFC6321.rnc
1 default namespace = "urn:ietf:params:xml:ns:icalendar-2.0"
2
3 # 3.2 Property Parameters
4
5 # 3.2.1 Alternate Text Representation
6
7 altrepparam = element altrep {
8 value-uri
9 }
10
11 # 3.2.2 Common Name
12
13 cnparam = element cn {
14 value-text
15 }
16
17 # 3.2.3 Calendar User Type
18
19 cutypeparam = element cutype {
20 element text {
21 "INDIVIDUAL" |
22 "GROUP" |
23 "RESOURCE" |
24 "ROOM" |
25 "UNKNOWN"
26 }
27 }
28
29 # 3.2.4 Delegators
30
31 delfromparam = element delegated-from {
32 value-cal-address+
33 }
34
35 # 3.2.5 Delegatees
36
37 deltoparam = element delegated-to {
38 value-cal-address+
39 }
40
41 # 3.2.6 Directory Entry Reference
42
43 dirparam = element dir {
44 value-uri
45 }
46
47 # 3.2.7 Inline Encoding
48
49 encodingparam = element encoding {
50 element text {
51 "8BIT" |
52 "BASE64"
53 }
54 }
55
56 # 3.2.8 Format Type
57
58 fmttypeparam = element fmttype {
59 value-text
60 }
61
62 # 3.2.9 Free/Busy Time Type
63
64 fbtypeparam = element fbtype {
65 element text {
66 "FREE" |
67 "BUSY" |
68 "BUSY-UNAVAILABLE" |
69 "BUSY-TENTATIVE"
70 }
71 }
72
73 # 3.2.10 Language
74
75 languageparam = element language {
76 value-text
77 }
78
79 # 3.2.11 Group or List Membership
80
81 memberparam = element member {
82 value-cal-address+
83 }
84
85 # 3.2.12 Participation Status
86
87 partstatparam = element partstat {
88 type-partstat-event |
89 type-partstat-todo |
90 type-partstat-jour
91 }
92
93 type-partstat-event = (
94 element text {
95 "NEEDS-ACTION" |
96 "ACCEPTED" |
97 "DECLINED" |
98 "TENTATIVE" |
99 "DELEGATED"
100 }
101 )
102
103 type-partstat-todo = (
104 element text {
105 "NEEDS-ACTION" |
106 "ACCEPTED" |
107 "DECLINED" |
108 "TENTATIVE" |
109 "DELEGATED" |
110 "COMPLETED" |
111 "IN-PROCESS"
112 }
113 )
114
115 type-partstat-jour = (
116 element text {
117 "NEEDS-ACTION" |
118 "ACCEPTED" |
119 "DECLINED"
120 }
121 )
122
123 # 3.2.13 Recurrence Identifier Range
124
125 rangeparam = element range {
126 element text {
127 "THISANDFUTURE"
128 }
129 }
130
131 # 3.2.14 Alarm Trigger Relationship
132
133 trigrelparam = element related {
134 element text {
135 "START" |
136 "END"
137 }
138 }
139
140 # 3.2.15 Relationship Type
141
142 reltypeparam = element reltype {
143 element text {
144 "PARENT" |
145 "CHILD" |
146 "SIBLING"
147 }
148 }
149
150 # 3.2.16 Participation Role
151
152 roleparam = element role {
153 element text {
154 "CHAIR" |
155 "REQ-PARTICIPANT" |
156 "OPT-PARTICIPANT" |
157 "NON-PARTICIPANT"
158 }
159 }
160
161 # 3.2.17 RSVP Expectation
162
163 rsvpparam = element rsvp {
164 value-boolean
165 }
166
167 # 3.2.18 Sent By
168
169 sentbyparam = element sent-by {
170 value-cal-address
171 }
172
173 # 3.2.19 Time Zone Identifier
174
175 tzidparam = element tzid {
176 value-text
177 }
178
179 # 3.3 Property Value Data Types
180
181 # 3.3.1 BINARY
182
183 value-binary = element binary {
184 xsd:string
185 }
186
187 # 3.3.2 BOOLEAN
188
189 value-boolean = element boolean {
190 xsd:boolean
191 }
192
193 # 3.3.3 CAL-ADDRESS
194
195 value-cal-address = element cal-address {
196 xsd:anyURI
197 }
198
199 # 3.3.4 DATE
200
201 pattern-date = xsd:string {
202 pattern = "\d\d\d\d-\d\d-\d\d"
203 }
204
205 value-date = element date {
206 pattern-date
207 }
208
209 # 3.3.5 DATE-TIME
210
211 pattern-date-time = xsd:string {
212 pattern = "\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\dZ?"
213 }
214
215 value-date-time = element date-time {
216 pattern-date-time
217 }
218
219 # 3.3.6 DURATION
220
221 pattern-duration = xsd:string {
222 pattern = "(+|-)?P(\d+W)|(\d+D)?"
223 ~ "(T(\d+H(\d+M)?(\d+S)?)|"
224 ~ "(\d+M(\d+S)?)|"
225 ~ "(\d+S))?"
226 }
227
228 value-duration = element duration {
229 pattern-duration
230 }
231
232 # 3.3.7 FLOAT
233
234 value-float = element float {
235 xsd:float
236 }
237
238 # 3.3.8 INTEGER
239
240 value-integer = element integer {
241 xsd:integer
242 }
243
244 # 3.3.9 PERIOD
245
246 value-period = element period {
247 element start {
248 pattern-date-time
249 },
250 (
251 element end {
252 pattern-date-time
253 } |
254 element duration {
255 pattern-duration
256 }
257 )
258 }
259
260 # 3.3.10 RECUR
261
262 value-recur = element recur {
263 type-freq,
264 (type-until | type-count)?,
265 element interval {
266 xsd:positiveInteger
267 }?,
268 type-bysecond*,
269 type-byminute*,
270 type-byhour*,
271 type-byday*,
272 type-bymonthday*,
273 type-byyearday*,
274 type-byweekno*,
275 type-bymonth*,
276 type-bysetpos*,
277 element wkst { type-weekday }?
278 }
279
280 type-freq = element freq {
281 "SECONDLY" |
282 "MINUTELY" |
283 "HOURLY" |
284 "DAILY" |
285 "WEEKLY" |
286 "MONTHLY" |
287 "YEARLY"
288 }
289
290 type-until = element until {
291 type-date |
292 type-date-time
293 }
294
295 type-count = element count {
296 xsd:positiveInteger
297 }
298
299 type-bysecond = element bysecond {
300 xsd:positiveInteger
301 }
302
303 type-byminute = element byminute {
304 xsd:positiveInteger
305 }
306
307 type-byhour = element byhour {
308 xsd:positiveInteger
309 }
310
311 type-weekday = (
312 "SU" |
313 "MO" |
314 "TU" |
315 "WE" |
316 "TH" |
317 "FR" |
318 "SA"
319 )
320
321 type-byday = element byday {
322 xsd:integer?,
323 type-weekday
324 }
325
326 type-bymonthday = element bymonthday {
327 xsd:integer
328 }
329
330 type-byyearday = element byyearday {
331 xsd:integer
332 }
333
334 type-byweekno = element byweekno {
335 xsd:integer
336 }
337
338 type-bymonth = element bymonth {
339 xsd:positiveInteger
340 }
341
342 type-bysetpos = element bysetpos {
343 xsd:integer
344 }
345
346 # 3.3.11 TEXT
347
348 value-text = element text {
349 xsd:string
350 }
351
352 # 3.3.12 TIME
353
354 pattern-time = xsd:string {
355 pattern = "\d\d:\d\d:\d\dZ?"
356 }
357
358 value-time = element time {
359 pattern-time
360 }
361
362 # 3.3.13 URI
363
364 value-uri = element uri {
365 xsd:anyURI
366 }
367
368 # 3.3.14 UTC-OFFSET
369
370 value-utc-offset = element utc-offset {
371 xsd:string { pattern = "(+|-)\d\d:\d\d(:\d\d)?" }
372 }
373
374 # UNKNOWN
375
376 value-unknown = element unknown {
377 xsd:string
378 }
379
380 # 3.4 iCalendar Stream
381
382 start = element icalendar {
383 vcalendar+
384 }
385
386 # 3.6 Calendar Components
387
388 vcalendar = element vcalendar {
389 type-calprops,
390 type-component
391 }
392
393 type-calprops = element properties {
394 property-prodid &
395 property-version &
396 property-calscale? &
397 property-method?
398 }
399
400 type-component = element components {
401 (
402 component-vevent |
403 component-vtodo |
404 component-vjournal |
405 component-vfreebusy |
406 component-vtimezone
407 )*
408 }
409
410 # 3.6.1 Event Component
411
412 component-vevent = element vevent {
413 type-eventprop,
414 element components {
415 component-valarm+
416 }?
417 }
418
419 type-eventprop = element properties {
420 property-dtstamp &
421 property-dtstart &
422 property-uid &
423
424 property-class? &
425 property-created? &
426 property-description? &
427 property-geo? &
428 property-last-mod? &
429 property-location? &
430 property-organizer? &
431 property-priority? &
432 property-seq? &
433 property-status-event? &
434
435 property-summary? &
436 property-transp? &
437 property-url? &
438 property-recurid? &
439
440 property-rrule? &
441
442 (property-dtend | property-duration)? &
443
444 property-attach* &
445 property-attendee* &
446 property-categories* &
447 property-comment* &
448 property-contact* &
449 property-exdate* &
450 property-rstatus* &
451 property-related* &
452 property-resources* &
453 property-rdate*
454 }
455
456 # 3.6.2 To-do Component
457
458 component-vtodo = element vtodo {
459 type-todoprop,
460 element components {
461 component-valarm+
462 }?
463 }
464
465 type-todoprop = element properties {
466 property-dtstamp &
467 property-uid &
468
469 property-class? &
470 property-completed? &
471 property-created? &
472 property-description? &
473 property-geo? &
474 property-last-mod? &
475 property-location? &
476 property-organizer? &
477 property-percent? &
478 property-priority? &
479 property-recurid? &
480 property-seq? &
481 property-status-todo? &
482 property-summary? &
483
484 property-url? &
485
486 property-rrule? &
487
488 (
489 (property-dtstart?, property-dtend? ) |
490 (property-dtstart, property-duration)?
491 ) &
492
493 property-attach* &
494 property-attendee* &
495 property-categories* &
496 property-comment* &
497 property-contact* &
498 property-exdate* &
499 property-rstatus* &
500 property-related* &
501 property-resources* &
502 property-rdate*
503 }
504
505 # 3.6.3 Journal Component
506
507 component-vjournal = element vjournal {
508 type-jourprop
509 }
510
511 type-jourprop = element properties {
512 property-dtstamp &
513 property-uid &
514
515 property-class? &
516 property-created? &
517 property-dtstart? &
518 property-last-mod? &
519 property-organizer? &
520 property-recurid? &
521 property-seq? &
522 property-status-jour? &
523 property-summary? &
524 property-url? &
525
526 property-rrule? &
527
528 property-attach* &
529 property-attendee* &
530 property-categories* &
531 property-comment* &
532 property-contact* &
533 property-description? &
534 property-exdate* &
535 property-related* &
536 property-rdate* &
537 property-rstatus*
538 }
539
540 # 3.6.4 Free/Busy Component
541
542 component-vfreebusy = element vfreebusy {
543 type-fbprop
544 }
545
546 type-fbprop = element properties {
547 property-dtstamp &
548 property-uid &
549
550 property-contact? &
551 property-dtstart? &
552 property-dtend? &
553 property-duration? &
554 property-organizer? &
555 property-url? &
556
557 property-attendee* &
558 property-comment* &
559 property-freebusy* &
560 property-rstatus*
561 }
562
563 # 3.6.5 Time Zone Component
564
565 component-vtimezone = element vtimezone {
566 element properties {
567 property-tzid &
568
569 property-last-mod? &
570 property-tzuurl?
571 },
572 element components {
573 (component-standard | component-daylight) &
574 component-standard* &
575 component-daylight*
576 }
577 }
578
579 component-standard = element standard {
580 type-tzprop
581 }
582
583 component-daylight = element daylight {
584 type-tzprop
585 }
586
587 type-tzprop = element properties {
588 property-dtstart &
589 property-tzoffsetto &
590 property-tzoffsetfrom &
591
592 property-rrule? &
593
594 property-comment* &
595 property-rdate* &
596 property-tzname*
597 }
598
599 # 3.6.6 Alarm Component
600
601 component-valarm = element valarm {
602 audioprop | dispprop | emailprop
603 }
604
605 type-audioprop = element properties {
606 property-action &
607
608 property-trigger &
609
610 (property-duration, property-repeat)? &
611
612 property-attach?
613 }
614
615 type-dispprop = element properties {
616 property-action &
617 property-description &
618 property-trigger &
619 property-summary &
620
621 property-attendee+ &
622
623 (property-duration, property-repeat)? &
624
625 property-attach*
626 }
627
628 type-emailprop = element properties {
629 property-action &
630 property-description &
631 property-trigger &
632
633 (property-duration, property-repeat)?
634 }
635
636 # 3.7 Calendar Properties
637
638 # 3.7.1 Calendar Scale
639
640 property-calscale = element calscale {
641
642 element parameters { empty }?,
643
644 element text { "GREGORIAN" }
645 }
646
647 # 3.7.2 Method
648
649 property-method = element method {
650
651 element parameters { empty }?,
652
653 value-text
654 }
655
656 # 3.7.3 Product Identifier
657
658 property-prodid = element prodid {
659
660 element parameters { empty }?,
661
662 value-text
663 }
664
665 # 3.7.4 Version
666
667 property-version = element version {
668
669 element parameters { empty }?,
670
671 element text { "2.0" }
672 }
673
674 # 3.8 Component Properties
675
676 # 3.8.1 Descriptive Component Properties
677
678 # 3.8.1.1 Attachment
679
680 property-attach = element attach {
681
682 element parameters {
683 fmttypeparam? &
684 encodingparam?
685 }?,
686
687 value-uri | value-binary
688 }
689
690 # 3.8.1.2 Categories
691
692 property-categories = element categories {
693
694 element parameters {
695 languageparam? &
696 }?,
697
698 value-text+
699 }
700
701 # 3.8.1.3 Classification
702
703 property-class = element class {
704
705 element parameters { empty }?,
706
707 element text {
708 "PUBLIC" |
709 "PRIVATE" |
710 "CONFIDENTIAL"
711 }
712 }
713
714 # 3.8.1.4 Comment
715
716 property-comment = element comment {
717
718 element parameters {
719 altrepparam? &
720 languageparam?
721 }?,
722
723 value-text
724 }
725
726 # 3.8.1.5 Description
727
728 property-description = element description {
729
730 element parameters {
731 altrepparam? &
732 languageparam?
733 }?,
734
735 value-text
736 }
737
738 # 3.8.1.6 Geographic Position
739
740 property-geo = element geo {
741
742 element parameters { empty }?,
743
744 element latitude { xsd:float },
745 element longitude { xsd:float }
746 }
747
748 # 3.8.1.7 Location
749
750 property-location = element location {
751
752 element parameters {
753
754 altrepparam? &
755 languageparam?
756 }?,
757
758 value-text
759 }
760
761 # 3.8.1.8 Percent Complete
762
763 property-percent = element percent-complete {
764
765 element parameters { empty }?,
766
767 value-integer
768 }
769
770
771 # 3.8.1.9 Priority
772
773 property-priority = element priority {
774
775 element parameters { empty }?,
776
777 value-integer
778 }
779
780 # 3.8.1.10 Resources
781
782 property-resources = element resources {
783
784 element parameters {
785 altrepparam? &
786 languageparam?
787 }?,
788
789 value-text+
790 }
791
792 # 3.8.1.11 Status
793
794 property-status-event = element status {
795
796 element parameters { empty }?,
797
798 element text {
799 "TENTATIVE" |
800 "CONFIRMED" |
801 "CANCELLED"
802 }
803 }
804
805 property-status-todo = element status {
806
807 element parameters { empty }?,
808
809 element text {
810 "NEEDS-ACTION" |
811 "COMPLETED" |
812 "IN-PROCESS" |
813 "CANCELLED"
814 }
815 }
816
817 property-status-jour = element status {
818
819 element parameters { empty }?,
820
821 element text {
822 "DRAFT" |
823 "FINAL" |
824 "CANCELLED"
825 }
826 }
827
828 # 3.8.1.12 Summary
829
830 property-summary = element summary {
831
832 element parameters {
833 altrepparam? &
834 languageparam?
835 }?,
836
837 value-text
838 }
839
840 # 3.8.2 Date and Time Component Properties
841
842 # 3.8.2.1 Date/Time Completed
843
844 property-completed = element completed {
845
846 element parameters { empty }?,
847
848 value-date-time
849 }
850
851 # 3.8.2.2 Date/Time End
852
853 property-dtend = element dtend {
854
855 element parameters {
856 tzidparam?
857 }?,
858
859 value-date-time |
860 value-date
861 }
862
863 # 3.8.2.3 Date/Time Due
864
865 property-due = element due {
866
867 element parameters {
868 tzidparam?
869 }?,
870
871 value-date-time |
872 value-date
873 }
874
875 # 3.8.2.4 Date/Time Start
876
877 property-dtstart = element dtstart {
878
879 element parameters {
880 tzidparam?
881 }?,
882
883 value-date-time |
884 value-date
885 }
886
887 # 3.8.2.5 Duration
888
889 property-duration = element duration {
890
891 element parameters { empty }?,
892
893 value-duration
894 }
895
896 # 3.8.2.6 Free/Busy Time
897
898 property-freebusy = element freebusy {
899
900 element parameters {
901 fbtypeparam?
902 }?,
903
904
905 value-period+
906 }
907
908 # 3.8.2.7 Time Transparency
909
910 property-transp = element transp {
911
912
913 element parameters { empty }?,
914
915 element text {
916 "OPAQUE" |
917 "TRANSPARENT"
918 }
919 }
920
921 # 3.8.3 Time Zone Component Properties
922
923 # 3.8.3.1 Time Zone Identifier
924
925 property-tzid = element tzid {
926
927 element parameters { empty }?,
928
929 value-text
930 }
931
932 # 3.8.3.2 Time Zone Name
933
934 property-tzname = element tzname {
935
936 element parameters {
937 languageparam?
938 }?,
939
940 value-text
941 }
942
943 # 3.8.3.3 Time Zone Offset From
944
945 property-tzoffsetfrom = element tzoffsetfrom {
946
947 element parameters { empty }?,
948
949 value-utc-offset
950 }
951
952 # 3.8.3.4 Time Zone Offset To
953
954 property-tzoffsetto = element tzoffsetto {
955
956 element parameters { empty }?,
957
958 value-utc-offset
959 }
960
961 # 3.8.3.5 Time Zone URL
962
963 property-tzurl = element tzurl {
964
965 element parameters { empty }?,
966
967 value-uri
968 }
969
970 # 3.8.4 Relationship Component Properties
971
972 # 3.8.4.1 Attendee
973
974 property-attendee = element attendee {
975
976 element parameters {
977 cutypeparam? &
978 memberparam? &
979 roleparam? &
980 partstatparam? &
981 rsvpparam? &
982 deltoparam? &
983 delfromparam? &
984 sentbyparam? &
985 cnparam? &
986 dirparam? &
987 languageparam?
988 }?,
989
990 value-cal-address
991 }
992
993 # 3.8.4.2 Contact
994
995 property-contact = element contact {
996
997 element parameters {
998 altrepparam? &
999 languageparam?
1000 }?,
1001
1002 value-text
1003 }
1004
1005 # 3.8.4.3 Organizer
1006
1007 property-organizer = element organizer {
1008
1009 element parameters {
1010 cnparam? &
1011 dirparam? &
1012 sentbyparam? &
1013 languageparam?
1014 }?,
1015
1016 value-cal-address
1017 }
1018
1019 # 3.8.4.4 Recurrence ID
1020
1021 property-recurid = element recurrence-id {
1022
1023 element parameters {
1024 tzidparam? &
1025 rangeparam?
1026 }?,
1027
1028 value-date-time |
1029 value-date
1030 }
1031
1032 # 3.8.4.5 Related-To
1033
1034 property-related = element related-to {
1035
1036 element parameters {
1037 reltypeparam?
1038 }?,
1039
1040 value-text
1041 }
1042
1043 # 3.8.4.6 Uniform Resource Locator
1044
1045 property-url = element url {
1046
1047 element parameters { empty }?,
1048
1049 value-uri
1050 }
1051
1052 # 3.8.4.7 Unique Identifier
1053
1054 property-uid = element uid {
1055
1056 element parameters { empty }?,
1057 value-text
1058 }
1059
1060 # 3.8.5 Recurrence Component Properties
1061
1062 # 3.8.5.1 Exception Date/Times
1063
1064 property-exdate = element exdate {
1065
1066 element parameters {
1067 tzidparam?
1068 }?,
1069
1070 value-date-time+ |
1071 value-date+
1072 }
1073
1074 # 3.8.5.2 Recurrence Date/Times
1075
1076 property-rdate = element rdate {
1077
1078 element parameters {
1079 tzidparam?
1080 }?,
1081
1082 value-date-time+ |
1083 value-date+ |
1084 value-period+
1085 }
1086
1087 # 3.8.5.3 Recurrence Rule
1088
1089 property-rrule = element rrule {
1090
1091 element parameters { empty }?,
1092
1093 value-recur
1094 }
1095
1096 # 3.8.6 Alarm Component Properties
1097
1098 # 3.8.6.1 Action
1099
1100 property-action = element action {
1101
1102 element parameters { empty }?,
1103 element text {
1104 "AUDIO" |
1105 "DISPLAY" |
1106 "EMAIL"
1107 }
1108 }
1109
1110 # 3.8.6.2 Repeat Count
1111
1112 property-repeat = element repeat {
1113
1114 element parameters { empty }?,
1115
1116 value-integer
1117 }
1118
1119 # 3.8.6.3 Trigger
1120
1121 property-trigger = element trigger {
1122
1123 (
1124 element parameters {
1125 trigrelparam?
1126 }?,
1127
1128 value-duration
1129 ) |
1130 (
1131 element parameters { empty }?,
1132
1133 value-date-time
1134 )
1135 }
1136
1137 # 3.8.7 Change Management Component Properties
1138
1139 # 3.8.7.1 Date/Time Created
1140
1141 property-created = element created {
1142
1143 element parameters { empty }?,
1144
1145 value-date-time
1146 }
1147
1148 # 3.8.7.2 Date/Time Stamp
1149
1150 property-dtstamp = element dtstamp {
1151 element parameters { empty }?,
1152
1153 value-date-time
1154 }
1155
1156 # 3.8.7.3 Last Modified
1157
1158 property-last-mod = element last-modified {
1159
1160 element parameters { empty }?,
1161
1162 value-date-time
1163 }
1164
1165 # 3.8.7.4 Sequence Number
1166
1167 property-seq = element sequence {
1168
1169 element parameters { empty }?,
1170
1171 value-integer
1172 }
1173
1174 # 3.8.8 Miscellaneous Component Properties
1175
1176 # 3.8.8.3 Request Status
1177
1178 property-rstatus = element request-status {
1179
1180 element parameters {
1181 languageparam?
1182 }?,
1183
1184 element code { xsd:string },
1185 element description { xsd:string },
1186 element data { xsd:string }?
1187 }
1188
1189
1190
1191
1192