 |
Index for Section 4 |
|
 |
Alphabetical listing for D |
|
 |
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 for Section 4 |
|
 |
Alphabetical listing for D |
|
 |
Top of page |
|