 |
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 |
|