c3d2-web/dtd/xcal.dtd

646 lines
16 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- ******************* -->
<!-- Entity declarations -->
<!-- ******************* -->
<!ENTITY % attr.altrep "
altrep ENTITY #IMPLIED
">
<!ENTITY % attr.cn "
cn CDATA ''
">
<!ENTITY % attr.cutype "
cutype NMTOKEN 'INDIVIDUAL'
">
<!-- Valid name tokens are "INDIVIDUAL", "GROUP", "RESOURCE" -->
<!-- "ROOM", "UNKNOWN", a non-standard "X-" name or another -->
<!-- IANA registered name. -->
<!ENTITY % attr.delegated-from "
delegated-from CDATA #IMPLIED
">
<!-- delegated-from value is a calendar user address -->
<!ENTITY % attr.delegated-to "
delegated-to CDATA #IMPLIED
">
<!-- delegated-to value is one or more calendar user addresses -->
<!ENTITY % attr.dir "
dir ENTITY #IMPLIED
">
<!-- dir value is a URI to a directory entry -->
<!ENTITY % attr.fmttype "
fmttype CDATA #REQUIRED
">
<!-- fmttype value is any IANA registered content type -->
<!ENTITY % attr.fbtype "
fbtype NMTOKEN 'BUSY'
">
<!-- Valid token values are "FREE", "BUSY", "BUSY-UNAVAILABLE", -->
<!-- "BUSY-TENTATIVE", a non-standard "X-" name or another -->
<!-- IANA registered name. -->
<!ENTITY % attr.language "
language CDATA #IMPLIED
">
<!-- language value is a valid RFC 1766 language string -->
<!ENTITY % attr.member "
member CDATA #IMPLIED
">
<!-- member value is one or more calendar user addresses -->
<!ENTITY % attr.partstat "
partstat NMTOKEN 'NEEDS-ACTION'
">
<!-- Valid token value for VEVENT: "NEEDS-ACTION", "ACCEPTED", -->
<!-- "DECLINED", "TENTATIVE", "DELEGATED", a non-standard "X- -->
<!-- name or another IANA registered name. -->
<!-- Valid token value for VTODO: "NEEDS-ACTION", "ACCEPTED", -->
<!-- "DECLINED", "TENTATIVE", "DELEGATED", "COMPLETED", -->
<!-- "IN-PROGRESS, a non-standard "X- name or another IANA -->
<!-- registered name. -->
<!-- Valid token value for VJOURNAL: "NEEDS-ACTION", "ACCEPTED", -->
<!-- "DECLINED", a non-standard "X- name or another IANA -->
<!-- registered name. -->
<!ENTITY % attr.range "
range NMTOKEN 'THISONLY'
">
<!-- Valid token values are "THISONLY" or "THISANDPRIOR" or -->
<!-- "THISANDFUTURE" -->
<!ENTITY % attr.related "
related NMTOKEN 'START'
">
<!-- Valid token values are "START" or "END" -->
<!ENTITY % attr.reltype "
reltype NMTOKEN 'PARENT'
">
<!-- Valid token values are "PARENT", "CHILD", SIBLING", -->
<!-- a non-standard "X-" name or any IANA registered name. -->
<!ENTITY % attr.role "
role NMTOKEN 'REQ-PARTICIPANT'
">
<!-- Valid token values are "CHAIR", "REQ-PARTICIPANT", -->
<!-- "OPT-PARTICIPANT", "NON-PARTICIPANT", a non-standard "X-" -->
<!-- name or any IANA registered name. -->
<!ENTITY % attr.rsvp "
rsvp NMTOKEN 'FALSE'
">
<!-- Valid token values are "TRUE" or "FALSE", -->
<!ENTITY % attr.sent-by "
sent-by CDATA #IMPLIED
">
<!-- sent-by value is a calendar user address -->
<!ENTITY % attr.tzid "
tzid CDATA #IMPLIED
">
<!-- tzid value is a time zone identifier -->
<!ENTITY % cal.comp "
vevent | vtodo | vjournal | vfreebusy | vtimezone
">
<!ENTITY % vevent.opt1 "
class | created | description | dtstamp | dtstart | geo |
last-modified | location | organizer | priority | recurrence-id |
sequence | status | summary | transp | uid | url |
(dtend | duration)
">
<!-- These properties may only appear once in a VEVENT -->
<!ENTITY % vevent.optm "
attach | attendee | categories | comment | contact |
exdate | exrule | rdate | related-to | resources | request-status |
rrule
">
<!-- These properties may appear one or more times in a VEVENT -->
<!ENTITY % vtodo.opt1 "
class | completed | created | description | dtstamp | dtstart |
geo | last-modified | location | organizer | percent | priority |
recurrence-id | sequence | status | summary | uid | url |
(due | duration)
">
<!-- These properties may only appear once in a VTODO -->
<!ENTITY % vtodo.optm "
attach | attendee | categories | comment | contact |
exdate | exrule | request-status | related-to | resources |
rdate | rrule
">
<!-- These properties may appear one or more times in a VTODO -->
<!ENTITY % vjournal.opt1 "
class | created | description | dtstart | dtstamp | last-modified |
organizer | recurrence-id | sequence | status | summary | uid | url
">
<!-- These properties may only appear once in a VJOURNAL -->
<!ENTITY % vjournal.optm "
attach | attendee | categories | comment | contact |
exdate | exrule | related-to | rdate | rrule | request-status
">
<!-- These properties may appear one or more times in a VJOURNAL -->
<!ENTITY % vfreebusy.opt1 "
contact | dtstamp | dtstart | dtend | duration |
organizer | uid | url
">
<!-- These properties may only appear once in a VFREEBUSY -->
<!ENTITY % vfreebusy.optm "
attendee | comment | freebusy | request-status
">
<!-- These properties may appear one or more times in a -->
<!-- VFREEBUSY -->
<!ENTITY % vtimezone.man "
tzid
">
<!-- These properties must appear in a VTIMEZONE -->
<!ENTITY % vtimezone.opt1 "
last-modified | tzurl
">
<!-- These properties may only appear once in a VTIMEZONE -->
<!ENTITY % vtimezone.mann "
(standard | daylight), (standard | daylight)*
">
<!-- These properties must appear in a VTIMEZONE and may -->
<!-- appear multiple times -->
<!ENTITY % standard.man "
dtstart | tzoffsetto | tzoffsetfrom
">
<!-- These properties must appear in a STANDARD, but only once -->
<!ENTITY % standard.optm "
comment | rdate | rrule | tzname
">
<!-- These properties may appear one or more times in a STANDARD -->
<!ENTITY % daylight.man "
dtstart | tzoffsetto | tzoffsetfrom
">
<!-- These properties must appear in a DAYLIGHT, but only once -->
<!ENTITY % daylight.optm "
comment | rdate | rrule | tzname
">
<!-- These properties may appear one or more times in a DAYLIGHT -->
<!ENTITY % audio.man "
action, trigger
">
<!-- These properties must appear in an audio VALARM. -->
<!ENTITY % audio.optx "
duration | repeat
">
<!-- These properties may appear once in an audio VALARM. If one -->
<!-- appears, then both must appear. -->
<!ENTITY % audio.opt1 "
attach
">
<!-- These properties may appear once in an audio VALARM. -->
<!ENTITY % valarm.audio "
(%audio.man;), (%audio.optx;)*, (%audio.opt1;)
">
<!ENTITY % display.man "
action, description, trigger
">
<!-- These properties must appear in a display VALARM. -->
<!ENTITY % display.optx "
duration | repeat
">
<!-- These properties may appear once in a display VALARM. If -->
<!-- one appears, then both must appear. -->
<!ENTITY % valarm.display "
(%display.man;), (%display.optx;)*
">
<!ENTITY % email.man "
action, description, summary, trigger
">
<!-- These properties must appear in an email VALARM. -->
<!ENTITY % email.optx "
duration | repeat
">
<!-- These properties may appear once in an email VALARM. If one -->
<!-- appears, then both must appear. -->
<!ENTITY % email.optm "
attach
">
<!-- These properties may appear one or more times in an email -->
<!-- VALARM. -->
<!ENTITY % email.mann "
attendee
">
<!-- These properties must appear in an email VALARM. The may -->
<!-- appear more than once. -->
<!ENTITY % valarm.email "
(%email.man;), (%email.optx;)*, (%email.optm;)*,
(%email.mann;)*
">
<!ENTITY % procedure.man "
action, attach, trigger
">
<!-- These properties must appear in an audio VALARM. -->
<!ENTITY % procedure.optx "
duration | repeat
">
<!-- These properties may appear once in an procedure VALARM. -->
<!-- If one appears, then both must appear. -->
<!ENTITY % procedure.opt1 "
description
">
<!-- These properties may appear once in a procedure VALARM -->
<!ENTITY % valarm.procedure "
(%procedure.man;), (%procedure.optx;)*, (%procedure.opt1;)?
">
<!-- ******************************************** -->
<!-- iCalendar value type notation declarations -->
<!-- ******************************************** -->
<!-- NOTE: The "XCAL" text in the following NOTATION values
will be replaced with the text "RFC xxxx", where "xxxx" is the RFC
number, when this memo is published as a RFC. -->
<!NOTATION BINARY PUBLIC "-//IETF//NOTATION XCAL/Value Type/Binary//EN">
<!NOTATION BOOLEAN PUBLIC "-//IETF//NOTATION XCAL/Value Type/Boolean//EN">
<!NOTATION CALADR PUBLIC "-//IETF//NOTATION XCAL/Value Type/Calendar
User Address//EN">
<!NOTATION DATE PUBLIC "-//IETF//NOTATION XCAL/Value Type/Date//EN">
<!NOTATION DATE-TIME PUBLIC "-//IETF//NOTATION XCAL/Value
Type/Date-Time//EN">
<!NOTATION DURATION PUBLIC "-//IETF//NOTATION XCAL/Value
Type/Duration//EN">
<!NOTATION FLOAT PUBLIC "-//IETF//NOTATION XCAL/Value Type/Float//EN">
<!NOTATION INTEGER PUBLIC "-//IETF//NOTATION XCAL/Value Type/Integer//EN">
<!NOTATION PERIOD PUBLIC "-//IETF//NOTATION XCAL/Value
Type/Period of Time//EN">
<!NOTATION RECUR PUBLIC "-//IETF//NOTATION XCAL/Value
Type/Recurrence Rule//EN">
<!NOTATION TEXT PUBLIC "-//IETF//NOTATION XCAL/Value Type/Text//EN">
<!NOTATION TIME PUBLIC "-//IETF//NOTATION XCAL/Value Type/Time//EN">
<!NOTATION URI PUBLIC "-//IETF//NOTATION XCAL/Value Type/URI//EN">
<!NOTATION UTC-OFFSET PUBLIC "-//IETF//NOTATION XCAL/Value
Type/UTC-Offset//EN">
<!NOTATION X-NAME PUBLIC "-//IETF//NOTATION XCAL/Value Type/X-Name//EN">
<!-- ************************************************* -->
<!-- iCalendar property element/attribute declarations -->
<!-- ************************************************* -->
<!ELEMENT br EMPTY>
<!-- Signifies a new line in the TEXT value content information -->
<!-- Description component properties element type declarations -->
<!ELEMENT attach (extref | b64bin)>
<!-- extref holds a reference to an external entity that -->
<!-- has the attachment. b64bin holds the inline BASE64 encoded -->
<!-- binary data for the attachment as defined in RFC 2045. -->
<!ELEMENT extref EMPTY>
<!ATTLIST extref
uri ENTITY #REQUIRED>
<!ELEMENT b64bin (#PCDATA)>
<!ATTLIST b64bin
%attr.fmttype;
value NOTATION (BINARY) #IMPLIED>
<!ELEMENT categories (item)*>
<!ELEMENT item (#PCDATA)>
<!ATTLIST item
%attr.language;
value NOTATION (TEXT) #IMPLIED>
<!ELEMENT class (#PCDATA)>
<!ATTLIST class
%attr.language;
value NOTATION (TEXT) #IMPLIED>
<!ELEMENT comment (#PCDATA)*>
<!ATTLIST comment
%attr.language;
%attr.altrep;
value NOTATION (TEXT) #IMPLIED>
<!ELEMENT description (#PCDATA)*>
<!ATTLIST description
%attr.language;
%attr.altrep;
value NOTATION (TEXT) #IMPLIED>
<!ELEMENT geo (lat, lon)>
<!ELEMENT lat (#PCDATA)>
<!ATTLIST lat value NOTATION (FLOAT) #IMPLIED>
<!-- A decimal degree float number to 6 decimal places -->
<!ELEMENT lon (#PCDATA)>
<!ATTLIST lon value NOTATION (FLOAT) #IMPLIED>
<!-- A decimal degree float number to 6 decimal places -->
<!ELEMENT location (#PCDATA)>
<!ATTLIST location
%attr.language;
%attr.altrep;
value NOTATION (TEXT) #IMPLIED>
<!ELEMENT percent (#PCDATA)>
<!ATTLIST percent
value NOTATION (INTEGER) #IMPLIED>
<!ELEMENT priority (#PCDATA)>
<!ATTLIST priority
value NOTATION (INTEGER) #IMPLIED>
<!ELEMENT resources (#PCDATA)>
<!ATTLIST resources
%attr.language;
%attr.altrep;
value NOTATION (TEXT) #IMPLIED>
<!ELEMENT status (#PCDATA)>
<!ATTLIST status
%attr.language;
%attr.altrep;
value NOTATION (TEXT) #IMPLIED>
<!-- Text value must match the valid values for the particular -->
<!-- calendar component. -->
<!ELEMENT summary (#PCDATA)>
<!ATTLIST summary
%attr.language;
%attr.altrep;
value NOTATION (TEXT) #IMPLIED >
<!-- Data and time component property element type declarations -->
<!ELEMENT dtstart (#PCDATA)>
<!ATTLIST dtstart
%attr.tzid;
value NOTATION (DATE-TIME | DATE) "DATE-TIME">
<!ELEMENT dtend (#PCDATA)>
<!ATTLIST dtend
%attr.tzid;
value NOTATION (DATE-TIME | DATE) "DATE-TIME">
<!ELEMENT due (#PCDATA)>
<!ATTLIST due
%attr.tzid;
value NOTATION (DATE-TIME | DATE) "DATE-TIME">
<!ELEMENT completed (#PCDATA)>
<!ATTLIST completed
value NOTATION (DATE-TIME) #IMPLIED>
<!ELEMENT duration (#PCDATA)>
<!ATTLIST duration
value NOTATION (DURATION) #IMPLIED>
<!ELEMENT freebusy (#PCDATA)>
<!ATTLIST freebusy
%attr.fbtype;
value NOTATION (PERIOD) #IMPLIED>
<!ELEMENT transp (#PCDATA)>
<!ATTLIST transp
value NOTATION (TEXT) #IMPLIED>
<!-- Text value must be one of the valid enumerations. -->
<!-- Time zone component property element type declarations -->
<!ELEMENT tzid (#PCDATA)>
<!ATTLIST tzid
value NOTATION (TEXT) #IMPLIED>
<!ELEMENT tzname (#PCDATA)>
<!ATTLIST tzname
%attr.language;
value NOTATION (TEXT) #IMPLIED>
<!ELEMENT tzoffsetfrom (#PCDATA)>
<!ATTLIST tzoffsetfrom
value NOTATION (UTC-OFFSET) #IMPLIED>
<!ELEMENT tzoffsetto (#PCDATA)>
<!ATTLIST tzoffsetto
value NOTATION (UTC-OFFSET) #IMPLIED>
<!ELEMENT tzurl EMPTY>
<!ATTLIST tzurl
uri ENTITY #REQUIRED>
<!-- Relationship component property element type declarations -->
<!ELEMENT attendee (#PCDATA)>
<!ATTLIST attendee
%attr.language;
%attr.cn;
%attr.role;
%attr.partstat;
%attr.rsvp;
%attr.cutype;
%attr.member;
%attr.delegated-to;
%attr.delegated-from;
%attr.sent-by;
%attr.dir;
value NOTATION (CALADR) #IMPLIED>
<!ELEMENT contact (#PCDATA)*>
<!ATTLIST contact
%attr.language;
%attr.altrep;
value NOTATION (TEXT) #IMPLIED>
<!ELEMENT organizer (#PCDATA)>
<!ATTLIST organizer
%attr.language;
%attr.cn;
%attr.sent-by;
%attr.dir;
value NOTATION (CALADR) #IMPLIED>
<!ELEMENT recurrence-id (#PCDATA)>
<!ATTLIST recurrence-id
%attr.tzid;
%attr.range;
value NOTATION (DATE-TIME | DATE) "DATE-TIME">
<!ELEMENT related-to (#PCDATA)>
<!ATTLIST related-to
%attr.reltype;
value NOTATION (TEXT) #IMPLIED>
<!ELEMENT url EMPTY>
<!ATTLIST url
uri ENTITY #REQUIRED>
<!ELEMENT uid (#PCDATA)>
<!ATTLIST uid
value NOTATION (TEXT) #IMPLIED>
<!-- Recurrence component property element type declarations -->
<!ELEMENT exdate (#PCDATA)>
<!ATTLIST exdate
%attr.tzid;
value NOTATION (DATE-TIME | DATE) "DATE-TIME">
<!ELEMENT exrule (#PCDATA)>
<!ATTLIST exrule
value NOTATION (RECUR) #IMPLIED>
<!ELEMENT rdate (#PCDATA)>
<!ATTLIST rdate
%attr.tzid;
value NOTATION (DATE-TIME | DATE) "DATE-TIME">
<!ELEMENT rrule (#PCDATA)>
<!ATTLIST rrule
value NOTATION (RECUR) #IMPLIED>
<!-- Alarm component property element type declarations -->
<!ELEMENT action (#PCDATA)>
<!ATTLIST action
value NOTATION (TEXT) #IMPLIED>
<!-- Text value must be a valid enumeration -->
<!ELEMENT repeat (#PCDATA)>
<!ATTLIST repeat
value NOTATION (INTEGER) #IMPLIED>
<!ELEMENT trigger (#PCDATA)>
<!-- <!ATTLIST trigger
%attr.related-to;
value NOTATION (DURATION | DATE-TIME) "DURATION"> -->
<!-- Change management component property element type -->
<!-- declarations -->
<!ELEMENT created (#PCDATA)>
<!ATTLIST created
value NOTATION (DATE-TIME) #IMPLIED>
<!ELEMENT dtstamp (#PCDATA)>
<!ATTLIST dtstamp
value NOTATION (DATE-TIME) #IMPLIED>
<!ELEMENT last-modified (#PCDATA)>
<!ATTLIST last-modified
value NOTATION (DATE-TIME) #IMPLIED>
<!ELEMENT sequence (#PCDATA)>
<!ATTLIST sequence
value NOTATION (INTEGER) #IMPLIED>
<!-- Miscellaneous component property element type declarations -->
<!ELEMENT request-status (#PCDATA)>
<!ATTLIST request-status
%attr.language;
value NOTATION (TEXT) #IMPLIED>
<!-- iCalendar object element type declarations -->
<!ELEMENT iCalendar (vcalendar+)>
<!ELEMENT vcalendar (%cal.comp;)*>
<!ATTLIST vcalendar
%attr.language;
xmlns CDATA #FIXED 'http://www.ietf.org/internet-drafts/draft-ietf-calsch-many-xcal-00.txt'
calscale CDATA "GREGORIAN"
method CDATA "PUBLISH"
version CDATA #REQUIRED
prodid CDATA #IMPLIED>
<!-- version - Must be "2.0" if document conforms to this spec. -->
<!-- calscale - Calendar scale. Default is GREGORIAN. -->
<!-- method - C&S method. Default is iTIP PUBLISH. -->
<!-- prodid - ISO 9070 FPI for product that generated iCalendar. -->
<!-- "vevent" element type declaration -->
<!ELEMENT vevent ((%vevent.opt1;)*, (%vevent.optm;)*, valarm*)>
<!-- "vtodo" element type declaration -->
<!ELEMENT vtodo ((%vtodo.opt1;)*, (%vtodo.optm;)*, valarm*)>
<!-- "vjournal" element type declaration -->
<!ELEMENT vjournal ((%vjournal.opt1;)*, (%vjournal.optm;)*)>
<!-- "vfreebusy" element type declaration -->
<!ELEMENT vfreebusy ((%vfreebusy.opt1;)*, (%vfreebusy.optm;)*)>
<!-- "vtimezone" element type declaration -->
<!ELEMENT vtimezone (%vtimezone.man;, (%vtimezone.opt1;)*,
(%vtimezone.mann;)*)>
<!ELEMENT standard (((%standard.man;)*), (%standard.optm;)*)>
<!ELEMENT daylight (((%daylight.man;)*), (%daylight.optm;)*)>
<!ELEMENT valarm ((%valarm.audio;) | (%valarm.display;) |
(%valarm.email;) | (%valarm.procedure;))>