Index Index for
Section 4
Index Alphabetical
listing for D
Bottom of page Bottom of
page

dtcm_archive(4)

CDE

NAME

dtcm_archive - format of calendar archive file

DESCRIPTION

The calendar archive file format is not documented in the Cde 1.0 Sample Implementation (because there is no API offered to read or write it). The calendar archive file format is a container with a series of packages of attribute value triples embedded within it. Each package of attribute/value triples is the definition of an entry or the definition of calendar attributes. A grammar for the archive file is: archive_file ::= header_string content_list header_string ::= `DTCM Archive 1.0\n' content_list ::= package content_list | package package ::= appt_def | calendar_attr_def appt_def ::= appt_start_marker attr_list appt_end_marker calendar_attr_def ::= cal_start_marker attr_list cal_end_marker attr_list ::= attr_def att_list | attr_def appt_start_marker ::= appt_marker `:string:begin\n' appt_end_marker ::= appt_marker `:string:end\n' appt_marker ::= `- //CDE_XAPIA_PRIVATE/CS/API/ENTRYATTR//NONSGML ApptDelimiter//EN' cal_start_marker ::= cal_marker `:string:begin\n' cal_end_marker ::= cal_marker `:string:end\n' cal_marker ::= `- //CDE_XAPIA_PRIVATE/CS/API/CALATTR//NONSGML CalDelimiter//EN' attr_def ::= attr_name `:' attr_type `:' attr_value `\n' attr_type ::= `string' | `integer' | `reminder' | `accesslist' | `repeatdefinition' | `custom' attr_value ::= The data associated with the attribute attr_name ::= XAPIA string. The span of characters that can be used in the definition of an attribute name is specified in the . An example calendar file with two entries is as follows. DTCM Archive 1.0 -//CDE_XAPIA_PRIVATE/CS/API/ENTRYATTR//NONSGML ApptDelimiter/ \ /EN:string:begin attr_name0: type: value attr_name1: type: value ... -//CDE_XAPIA_PRIVATE/CS/API/ENTRYATTR//NONSGML ApptDelimiter/ \ /EN:string:end . . . -//CDE_XAPIA_PRIVATE/CS/API/ENTRYATTR//NONSGML ApptDelimiter/ \ /EN:string:begin attr_name0: type: value attr_name1: type: value ... -//CDE_XAPIA_PRIVATE/CS/API/ENTRYATTR//NONSGML ApptDelimiter/ \ /EN:string:end Attribute Definition Each entry in a calendar is represented by a series of triples. These triples are constructed of three objects: the attribute name, the type of the attribute and the actual value of the attribute. The attribute name is the same name used to store the attribute in the database and is constructed out of printable characters within the character set. The set of valid characters does not include NUL, tab , newline , "carriage return" , space or colon. The attribute type describes the type of the data associated with the attribute name. This is a limited set of types that includes integer, string, reminder and access list, and buffer. The value is the actual value associated with the attribute name, and is interpreted according to the type value associated with it. Within a calendar archive file, an individual attribute is written with the members of the triple separated by colons: attrname: type: value An example attribute is: -//XAPIA/CS/API/CALATTR//NONSGML Calendar Name/ \ /EN:string:fred@host.Company.COM Attribute types can have the following values. The ``integer/string pairs'' used frequently in this list refer to an integer value followed by a colon and a string value. string A null-terminated sequence of characters. The bytes in an attribute of this type are interpreted relative to the character set attribute for the same entry. integer A decimal integer, expressed as digits from the . reminder An integer/string pair representation of the reminder structure defined in the . The integer is the advance on the reminder, expressed as a number of seconds, with negative numbers indicating time prior to the event. The string describes additional data that may relate to the reminder. The calendar and appointment services use this string as a list of e-mail addresses for e-mail reminders, but ignore it for other reminder types. An example entry is: -//XAPIA/CS/API/ENTRYATTR//NONSGML Mail Reminder//EN: reminder:-1800:hseldon@trantor accesslist A string that describes the individuals who have specific access permissions set on a calendar. This attribute type applies only to a calendar, not an entry, where it is ignored. An access list value is formatted across a series of lines, each line containing one logical access list entry. The first entry starts a line and is indented with a tab character. Each line is an integer/string pair. The integer represents the access granted to the user, as defined by the . The string describes the user who gains that access. An example entry is: -//XAPIA/CS/API/CALATTR//NONSGML Access List/ \ /EN:accesslist: 11:fred 7:joanne repeatdefinition A string representation of a data structure that describes how an event repeats indefinitely. This structure is defined by the . custom Custom entries are for attributes values that do not conform to the constraints of a string data type because they can have embedded NUL characters within them. It is the responsibility of the application to ensure that these values are portable between systems because the calendar and appointment services do not perform any transformation on the characters. Long Values When an attribute value is long, or contains embedded newline s or "carriage return" s, the values for attributes are broken out across a number of lines, using a subset of the MIME RFC rules for long/binary headers. The calendar and appointment services support unbroken lines of at least 256 bytes. All continuation lines begin with a tab. Lines that are too long are broken with a newline / tab pair. Thus, abcd becomes ab\n\tcd. Embedded newline are suffixed with a tab. Thus, ab\ncd becomes ab\n\tcd.

Index Index for
Section 4
Index Alphabetical
listing for D
Top of page Top of
page