Introduction

This document describes a data format, which can be used to store some data (e.g. users or groups) from the server in a XML based structure.

Contents

Folder structure

/System
/System/Groups
/System/Resources
/System/Users
/UserData
/UserData/Attachments
/UserData/[username]
/UserData/[username]/Appointments
/UserData/[username]/Contacts
/UserData/[username]/Tasks


"System" folder

In the system folder are the three subdirectories Groups, Resources and Users. This sub-folders contain one or more XML files, depending on how many groups, resources or users are available on the server.


"UserData" folder

Here is the user specific data of all users stored. Each user has a separate subfolder at this path, labeled on the username. Another folder in this directory is the 'Attachments' directory containg all attachments of appointments, tasks or contacts. Furthermore you will find here a XML file with the name "folders.xml". This file contains all the public folders on the server and will be declared later in the document.

"UserData/Attachments" folder

This folder contains all attachmens of appointments, tasks or contacts. The files can contain all type of data (Text, Binary, ...). The reference to this files are stored in the attachment tag of the PIM xml files.


XML files

Groups

The information of the groups are stored at "/System/Groups/". Every group has his own XML file with the structure shown below. The filename has to be the group name with the suffix ".xml", e.g. "testgroup.xml":

<group xmlns="http://www.open-xchange.com" xmlns:xsi="http://www.w3.org/2000/10 XMLSchema-instance">
     <display_name/>
     <member/>
</group>

<group>

Namespace attribute is xmlns="http://www.open-xchange.com" xmlns:xsi="http://www.w3.org/2000/10 XMLSchema-instance"

The <group xmlns="http://www.open-xchange.com" xmlns:xsi="http://www.w3.org/2000/10 XMLSchema-instance"> element is the root element of the group xml file.

<display_name>

The <display_element> contains the name of the group.

<members>

All members of the group located as sub elements of <members>

<member>

For each member of the group is a <member> element necessary. A group can consist of any number of members, but must have at least one member.

Resources

The data of the resources is saved at "/System/Resources". Each resource has a seperate XML file, composed with the name of the resource and the suffix ".xml", e.g. "testresource.xml". The structure has to be like the following:

<resource xmlns="http://www.open-xchange.com" xmlns:xsi="http://www.w3.org/2000/10 XMLSchema-instance">
     <resource_name/>
     <reservable/>
</resource>

<resource>

Namespace attribute is xmlns="http://www.open-xchange.com" xmlns:xsi="http://www.w3.org/2000/10 XMLSchema-instance"

A resource has always just two information to store. This is the name of the resource and if you can reserve it or not.

<display_name>

The display name of the resource.

<available>

Shows if the resource if available for reservation or not.

Users

All information about the user is stored at "/System/Users". There is also for each user a seperate XML file, which is build with the name of the user and the suffix ".xml", e.g. "markus.mustermann.xml". This file has the following structure if all fields are set:


<user xmlns="http://www.open-xchange.com" xmlns:xsi="http://www.w3.org/2000/10 XMLSchema-instance">
     <uid/>
     <uid_number/>
     <imap_server/>
     <smtp_server/>
     <preferred_language/>
     <timezone/>
     <login_shell/>
     <global_address_book_perm/>
     <active/>
     <home_directory/>
     <gid_number/>
     <maildomain/>
     <ox_task_days/>
     <ox_appointment_days/>
     <internal/>
     <area1_permission/>
     <area2_permission/>
     <area3_permission/>
     <area4_permission/>
     <area5_permission/>
     <area6_permission/>
     <mailoption1_permission/>
     <mailoption2_permission/>
     <mailoption3_permission/>
     <area_pos/>
     <refer/>
     <int_groups/>
     <setup/>
     <fentrie_n/>
     <created_from/>
     <creating_date/>
     <changed_from/>
     <changing_date/>
     <alias/>
     <contact_data/>
         <display_name/>
         <first_name/>
         <last_name/>
         <second_name/>
         <nickname/>
         <suffix/>
         <title/>
         <initials/>
         <street_home/>
         <street_business/>
         <street_other/>
         <postal_code_home/>
         <postal_code_business/>
         <postal_code_other/>
         <city_home/>
         <city_business/>
         <city_other/>
         <state_home/>
         <state_business/>
         <state_other/>
         <country_home/>
         <country_business/>
         <country_other/>
         <telephone_business1/>
         <telephone_business2/>
         <telephone_callback/>
         <telephone_car/>
         <telephone_company/>
         <telephone_home1/>
         <telephone_home2/>
         <telephone_isdn/>
         <telephone_pager/>
         <telephone_primary/>
         <telephone_radio/>
         <telephone_telex/>
         <telephone_ttytdd/>
         <telephone_ip/>
         <telephone_assistant/>
         <telephone_other/>
         <cellular_telephone1/>
         <cellular_telephone2/>
         <fax_home/>
         <fax_business/>
         <fax_other/>
         <email1/>
         <email2/>
         <email3/>
         <instant_messenger1/>
         <instant_messenger2/>
         <birthday/>
         <marital_status/>
         <number_of_children/>
         <profession/>
         <spouse_name/>
         <department/>
         <position/>
         <employee_type/>
         <room_number/>
         <number_of_employees/>
         <sales_volume/>
         <tax_id/>
         <commercial_register/>
         <branches/>
         <business_category/>
         <company/>
         <note/>
         <url/>
         <info/>
         <userfield01/>
         <userfield02/>
         <userfield03/>
         <userfield04/>
         <userfield05/>
         <userfield06/>
         <userfield07/>
         <userfield08/>
         <userfield09/>
         <userfield10/>
         <userfield11/>
         <userfield12/>
         <userfield13/>
         <userfield14/>
         <userfield15/>
         <userfield16/>
         <userfield17/>
         <userfield18/>
         <userfield19/>
         <userfield20/>
    </contact_data>
     <groupware_permission/>
         <webmail/>
         <bookmark/>
         <calendar/>
         <contact/>
         <document/>
         <forum/>
         <knowledge/>
         <pinboard/>
         <pinboard_portal/>
         <project/>
    </groupware_permission>
</user>


<user>

The <user xmlns="http://www.open-xchange.com" xmlns:xsi="http://www.w3.org/2000/10 XMLSchema-instance"> element is the root element of the user file and acts as a container for the following elements.

<uid>

The username of the user.


<uid_number>

The unique identification number of the user.


<imap_server>

The IMAP server of the user.


<smtp_server>

The SMTP server of the user.


<preferred_language>

The language of the user.

<timezone>

The timezone of the user

<login_shell>

The login shell of the user.

<global_address_book_perm>

The permissions of the user for the global address book.

<active>

Specifies if the user is activated in the system or not.

<home_directory>

The home directory of the user.

<gid_number>
<maildomain>
<ox_task_days>
<ox_appointment_days>
<internal>
<area1_permission>
<area2_permission>
<area3_permission>
<area4_permission>
<area5_permission>
<area6_permission>
<mailoption1_permission>
<mailoption2_permission>
<mailoption3_permission>
<area_pos>
<refer>
<int_groups>
<setup>
<fentrie_n>
<created_from>
<creating_date>
<changed_from>
<changing_date>
<alias>
<contact_data>
<display_name>
<first_name>
<last_name>
<second_name>
<nickname>
<suffix>
<title>
<initials>
<street_home>
<street_business>
<street_other>
<postal_code_home>
<postal_code_business>
<postal_code_other>
<city_home>
<city_business>
<city_other>
<state_home>
<state_business>
<state_other>
<country_home>
<country_business>
<country_other>
<telephone_business1>
<telephone_business2>
<telephone_callback>
<telephone_car>
<telephone_company>
<telephone_home1>
<telephone_home2>
<telephone_isdn>
<telephone_pager>
<telephone_primary>
<telephone_radio>
<telephone_telex>
<telephone_ttytdd>
<telephone_ip>
<telephone_assistant>
<telephone_other>
<cellular_telephone1>
<cellular_telephone2>
<fax_home>
<fax_business>
<fax_other>
<email1>
<email2>
<email3>
<instant_messenger1>
<instant_messenger2>
<birthday>
<marital_status>
<number_of_children>
<profession>
<managers_name>
<spouse_name>
<assistants_name>
<department>
<position>
<employee_type>
<room_number>
<number_of_employees>
<sales_volume>
<tax_id>
<commercial_register>
<branches>
<business_category>
<company>
<note>
<url>
<info>
<userfield01>
<userfield02>
<userfield03>
<userfield04>
<userfield05>
<userfield06>
<userfield07>
<userfield08>
<userfield09>
<userfield10>
<userfield11>
<userfield12>
<userfield13>
<userfield14>
<userfield15>
<userfield16>
<userfield17>
<userfield18>
<userfield19>
<userfield20>
<groupware_permission>
<webmail>
<bookmark>
<calendar>
<contact>
<document>
<forum>
<knowledge>
<pinboard>
<pinboard_portal>
<project>

Folders

All the folders which a user has on the system are stored at "/UserData/[username]/" in the XML file "folders.xml". The structure of this file is schon below.

<folders xmlns="http://www.open-xchange.com" xmlns:xsi="http://www.w3.org/2000/10 XMLSchema-instance">
     <folder>
         <object_status/>
         <title/>
         <owner/>
         <module/>
         <type/>
         <defaultfolder/>
         <created_by/>
         <creation_time/>
         <last_modified/>
         <object_id/>
         <folder_id/>
         <permissions>
    </folder>
</folders>


<folders>
<folder>
<title>
<owner>
<module>
<type>
<defaultfolder>
<created_by>
<creation_time>
<last_modified>
<object_id>
<folder_id>
<permissions>

Appointments

The information about the appointments are stored at "/UserData/[username]/Appointments/". For each appointment exists a seperate XML-file. The name of this file is build with the word "appointment", a consecutively number and the suffix ".xml", e.g. "appointment23.xml". This file has the following structure:

<appointment xmlns="http://www.open-xchange.com" xmlns:xsi="http://www.w3.org/2000/10 XMLSchema-instance">
     <start_date/>
     <end_date/>
     <location/>
     <full_time/>
     <shown_as/>
     <label/>
     <title/>
     <note/>
     <recurrence_id/>
     <recurrence_position/>
     <recurrence_type/>
     <recurrence_date_position/>
     <day_in_month/>
     <days/>
     <interval/>
     <until/>
     <participants>
         <user alarm="" confirm="" confirm_message="" external=""/>
    </participants>
     <created_by/>
     <creation_time/>
     <last_modified/>
     <object_id/>
     <folder_id/>
     <private_flag/>
     <changeexceptions/>
     <changeexceptionposition/>
     <deleteexceptions/>
     <deleteexceptionposition/>
     <month/>
     <notify_participants/>
     <recurrence_calculator/>
     <categories/>
     <color_label/>
     <attachments/>
     <attachment/>
     <owner/>
     <folder/>
     <id/>
     <modified_by/>
</appointment>


<appointment>
<start_date>
<end_date>
<location>
<full_time>
<shown_as>
<label>
<title>
<note>
<recurrence_id>
<recurrence_position>
<recurrence_type>
<recurrence_date_position>
<day_in_month>
<days>
<interval>
<until>
<participants>
<user>
<created_by>
<creation_time>
<last_modified>
<object_id>
<folder_id>
<private_flag>
<changeexceptions>
<changeexceptionposition>
<deleteexceptions>
<deleteexceptionposition>
<month>
<notify_participants>
<recurrence_calculator>
<categories>
<color_label>
<attachments>
<attachment>

The value of this tag is the filename of the attachment in the folder 'UserData/Attachments'. This tag has additional following attribute:

* mimetype - The mime type of the attachment
* rtf_flag - A flag for attachments created by Outlook
<owner>
<folder>
<id>
<modified_by>

Contacts

The XML-files from the contacts of the users are located at "/UserData/[username]/Contacts". For each contact of a user exists a seperate XML-file, entitled with the word "contact", a serially number and the suffix ".xml", e.g. "contact23.xml".

<contact xmlns="http://www.open-xchange.com" xmlns:xsi="http://www.w3.org/2000/10 XMLSchema-instance">
     <display_name/>
     <first_name/>
     <last_name/>
     <second_name/>
     <nickname/>
     <suffix/>
     <title/>
     <initials/>
     <street_home/>
     <street_business/>
     <street_other/>
     <postal_code_home/>
     <postal_code_business/>
     <postal_code_other/>
     <city_home/>
     <city_business/>
     <city_other/>
     <state_home/>
     <state_business/>
     <state_other/>
     <country_home/>
     <country_business/>
     <country_other/>
     <telephone_business1/>
     <telephone_business2/>
     <telephone_callback/>
     <telephone_car/>
     <telephone_company/>
     <telephone_home1/>
     <telephone_home2/>
     <telephone_isdn/>
     <telephone_pager/>
     <telephone_primary/>
     <telephone_radio/>
     <telephone_telex/>
     <telephone_ttytdd/>
     <telephone_ip/>
     <telephone_assistant/>
     <telephone_other/>
     <cellular_telephone1/>
     <cellular_telephone2/>
     <fax_home/>
     <fax_business/>
     <fax_other/>
     <email1/>
     <email2/>
     <email3/>
     <instant_messenger1/>
     <instant_messenger2/>
     <marital_status/>
     <number_of_children/>
     <profession/>
     <spouse_name/>
     <department/>
     <position/>
     <employee_type/>
     <room_number/>
     <number_of_employees/>
     <sales_volume/>
     <tax_id/>
     <commercial_register/>
     <branches/>
     <business_category/>
     <company/>
     <note/>
     <url/>
     <info/>
     <userfield01/>
     <userfield02/>
     <userfield03/>
     <userfield04/>
     <userfield05/>
     <userfield06/>
     <userfield07/>
     <userfield08/>
     <userfield09/>
     <userfield10/>
     <userfield11/>
     <userfield12/>
     <userfield13/>
     <userfield14/>
     <userfield15/>
     <userfield16/>
     <userfield17/>
     <userfield18/>
     <userfield19/>
     <userfield20/>
</contact>


<display_name>
<first_name>
<last_name>
<second_name>
<nickname>
<suffix>
<title>
<initials>
<street_home>
<street_business>
<street_other>
<postal_code_home>
<postal_code_business>
<postal_code_other>
<city_home>
<city_business>
<city_other>
<state_home>
<state_business>
<state_other>
<country_home>
<country_business>
<country_other>
<telephone_business1>
<telephone_business2>
<telephone_callback>
<telephone_car>
<telephone_company>
<telephone_home1>
<telephone_home2>
<telephone_isdn>
<telephone_pager>
<telephone_primary>
<telephone_radio>
<telephone_telex>
<telephone_ttytdd>
<telephone_ip>
<telephone_assistant>
<telephone_other>
<cellular_telephone1>
<cellular_telephone2>
<fax_home>
<fax_business>
<fax_other>
<email1>
<email2>
<email3>
<instant_messenger1>
<instant_messenger2>
<marital_status>
<number_of_children>
<profession>
<spouse_name>
<department>
<position>
<employee_type>
<room_number>
<number_of_employees>
<sales_volume>
<tax_id>
<commercial_register>
<branches>
<business_category>
<company>
<note>
<url>
<info>
<userfield01>
<userfield02>
<userfield03>
<userfield04>
<userfield05>
<userfield06>
<userfield07>
<userfield08>
<userfield09>
<userfield10>
<userfield11>
<userfield12>
<userfield13>
<userfield14>
<userfield15>
<userfield16>
<userfield17>
<userfield18>
<userfield19>
<userfield20>

Tasks

The data of the tasks is saved at "/UserData/[username]/Tasks/" in a seperate XML-file for each task. The name of this files is build with the word "task", a consecutively numbere and the suffix ".xml". The structure is shown below.

<task xmlns="http://www.open-xchange.com" xmlns:xsi="http://www.w3.org/2000/10 XMLSchema-instance">
     <title/>
     <start_date type=""/>
     <end_date type=""/>
     <actual_costs/>
     <actual_duration/>
     <billing_information/>
     <companies/>
     <currency/>
     <percent_complete/>
     <priority/>
     <status/>
     <target_costs/>
     <target_duration/>
     <trip_meter/>
     <note/>
     <participants/>
         <user confirm="" external=""/>
    </participants>
     <created_by/>
     <creation_time/>
     <last_modified/>
     <object_id/>
     <folder_id/>
     <categories/>
</task>

<task>
<title>
<start_date>
<end_date>
<actual_costs>
<billing_information>
<companies>
<currency>
<percent_complete>
<priority>
<status>
<target_costs>
<target_duration>
<trip_meter>
<note>
<participants>
<created_by>
<creation_time>
<last_modified>
<object_id>
<folder_id>
<categories>



XSD files

User



<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://www.open-xchange.com"
 xmlns="http://www.open-xchange.com"
 elementFormDefault="qualified">

 <xs:element name="user">
  <xs:complexType>
   <xs:all>
    <xs:element name="uid" type="xs:string"/>
    <xs:element name="uid_number" type="xs:string"/>
    <xs:element name="timezone" type="xs:string"/>
    <xs:element name="imap_server" type="xs:string"/>
    <xs:element name="smtp_server" type="xs:string"/>
    <xs:element name="language" type="xs:string"/>
    <xs:element name="login_shell" type="xs:string"/>
    <xs:element name="global_address_book_perm" type="xs:string"/>
    <xs:element name="home_directory" type="xs:string"/>
    <xs:element name="gid_number" type="xs:string"/>
    <xs:element name="maildomain" type="xs:string"/>
    <xs:element name="ox_task_days" type="xs:string"/>
    <xs:element name="ox_appointment_days" type="xs:string"/>
    <xs:element name="area_pos" type="xs:string" minOccurs="0"/>
    <xs:element name="created_by" type="xs:string" minOccurs="0"/>
    <xs:element name="creation_time" type="xs:long" minOccurs="0"/>
    <xs:element name="modified_by" type="xs:string" minOccurs="0"/>
    <xs:element name="last_modified" type="xs:long" minOccurs="0"/>
    <xs:element name="active" type="xs:boolean"/>
    <xs:element name="internal" type="xs:string"/>
    <xs:element name="area1_permission" type="xs:string"/>
    <xs:element name="area2_permission" type="xs:string"/>
    <xs:element name="area3_permission" type="xs:string"/>
    <xs:element name="area4_permission" type="xs:string"/>
    <xs:element name="area5_permission" type="xs:string"/>
    <xs:element name="area6_permission" type="xs:string"/>
    <xs:element name="mailoption1_permission" type="xs:string"/>
    <xs:element name="mailoption2_permission" type="xs:string"/>
    <xs:element name="mailoption3_permission" type="xs:string"/>
    <xs:element name="refer" type="xs:string"/>
    <xs:element name="int_groups" type="xs:string"/>
    <xs:element name="setup" type="xs:string"/>
    <xs:element name="fentrie_n" type="xs:string"/>
    <xs:element name="password" type="xs:string"/>
    <xs:element name="aliases" minOccurs="0">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="alias" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="contact_data">
     <xs:complexType>
      <xs:all>
       <xs:element name="display_name" type="xs:string"/>
       <xs:element name="first_name" type="xs:string" minOccurs="0"/>
       <xs:element name="last_name" type="xs:string"/>
       <xs:element name="second_name" type="xs:string" minOccurs="0"/>
       <xs:element name="initials" type="xs:string" minOccurs="0"/>
       <xs:element name="email1" type="xs:string" minOccurs="0"/>
       <xs:element name="department" type="xs:string" minOccurs="0"/>
       <xs:element name="company" type="xs:string" minOccurs="0"/>
       <xs:element name="note" type="xs:string" minOccurs="0"/>
       <xs:element name="nickname" type="xs:string" minOccurs="0"/>
       <xs:element name="title" type="xs:string" minOccurs="0"/>
       <xs:element name="initials" type="xs:string" minOccurs="0"/>
       <xs:element name="street_home" type="xs:string" minOccurs="0"/>
       <xs:element name="street_business" type="xs:string" minOccurs="0"/>
       <xs:element name="street_other" type="xs:string" minOccurs="0"/>
       <xs:element name="postal_code_home" type="xs:string" minOccurs="0"/>
       <xs:element name="postal_code_business" type="xs:string" minOccurs="0"/>
       <xs:element name="postal_code_other" type="xs:string" minOccurs="0"/>
       <xs:element name="city_home" type="xs:string" minOccurs="0"/>
       <xs:element name="city_business" type="xs:string" minOccurs="0"/>
       <xs:element name="city_other" type="xs:string" minOccurs="0"/>
       <xs:element name="state_home" type="xs:string" minOccurs="0"/>
       <xs:element name="state_business" type="xs:string" minOccurs="0"/>
       <xs:element name="state_other" type="xs:string" minOccurs="0"/>
       <xs:element name="country_home" type="xs:string" minOccurs="0"/>
       <xs:element name="country_business" type="xs:string" minOccurs="0"/>
       <xs:element name="country_other" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_business1" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_business2" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_callback" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_car" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_company" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_home1" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_home2" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_isdn" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_pager" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_primary" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_radio" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_telex" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_ttytdd" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_ip" type="xs:string" minOccurs="0"/>
       <xs:element name="telephone_assistant" type="xs:string" minOccurs="0"/>
       <xs:element name="cellular_telephone1" type="xs:string" minOccurs="0"/>
       <xs:element name="cellular_telephone2" type="xs:string" minOccurs="0"/>
       <xs:element name="fax_home" type="xs:string" minOccurs="0"/>
       <xs:element name="fax_business" type="xs:string" minOccurs="0"/>
       <xs:element name="fax_other" type="xs:string" minOccurs="0"/>
       <xs:element name="email1" type="xs:string" minOccurs="0"/>
       <xs:element name="instant_messenger1" type="xs:string" minOccurs="0"/>
       <xs:element name="instant_messenger2" type="xs:string" minOccurs="0"/>
       <xs:element name="birthday" type="xs:long" minOccurs="0"/>
       <xs:element name="marital_status" type="xs:string" minOccurs="0"/>
       <xs:element name="number_of_children" type="xs:string" minOccurs="0"/>
       <xs:element name="profession" type="xs:string" minOccurs="0"/>
       <xs:element name="spouse_name" type="xs:string" minOccurs="0"/>
       <xs:element name="anniversary" type="xs:string" minOccurs="0"/>
       <xs:element name="department" type="xs:string" minOccurs="0"/>
       <xs:element name="position" type="xs:string" minOccurs="0"/>
       <xs:element name="employee_type" type="xs:string" minOccurs="0"/>
       <xs:element name="room_number" type="xs:string" minOccurs="0"/>
       <xs:element name="number_of_employees" type="xs:string" minOccurs="0"/>
       <xs:element name="sales_volume" type="xs:string" minOccurs="0"/>
       <xs:element name="tax_id" type="xs:string" minOccurs="0"/>
       <xs:element name="commercial_register" type="xs:string" minOccurs="0"/>
       <xs:element name="branches" type="xs:string" minOccurs="0"/>
       <xs:element name="business_category" type="xs:string" minOccurs="0"/>
       <xs:element name="company" type="xs:string" minOccurs="0"/>
       <xs:element name="note" type="xs:string" minOccurs="0"/>
       <xs:element name="url" type="xs:string" minOccurs="0"/>
       <xs:element name="info" type="xs:string" minOccurs="0"/>
      </xs:all>
     </xs:complexType>
    </xs:element>
    <xs:element name="groupware_permission">
     <xs:complexType>
      <xs:all>
       <xs:element name="webmail" type="xs:boolean"/>
       <xs:element name="bookmark" type="xs:boolean"/>
       <xs:element name="calendar" type="xs:boolean"/>
       <xs:element name="task" type="xs:boolean"/>
       <xs:element name="contact" type="xs:boolean"/>
       <xs:element name="document" type="xs:boolean"/>
       <xs:element name="knowledge" type="xs:boolean"/>
       <xs:element name="pinboard" type="xs:boolean"/>
       <xs:element name="pinboard_portal" type="xs:boolean"/>
       <xs:element name="project" type="xs:boolean"/>
      </xs:all>
     </xs:complexType>
    </xs:element>
   </xs:all>
  </xs:complexType>
 </xs:element>
</xs:schema>



Group


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://www.open-xchange.com"
 xmlns="http://www.open-xchange.com"
 elementFormDefault="qualified">

 <xs:element name="group">
  <xs:complexType>
   <xs:all>
    <xs:element name="identifier" type="xs:string"/>
    <xs:element name="display_name" type="xs:string"/>
    <xs:element name="members">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="member" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
   </xs:all>
  </xs:complexType>
 </xs:element>
</xs:schema>


Resource



<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://www.open-xchange.com"
 xmlns="http://www.open-xchange.com"
 elementFormDefault="qualified">
 <xs:element name="resource">
  <xs:complexType>
   <xs:all>
    <xs:element name="identifier" type="xs:string"/>
    <xs:element name="display_name" type="xs:string"/>
    <xs:element name="available" type="xs:boolean"/>
   </xs:all>
  </xs:complexType>
 </xs:element>
</xs:schema>



Folder


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://www.open-xchange.com"
 xmlns="http://www.open-xchange.com"
 elementFormDefault="qualified">

 <xs:simpleType name="folderType">
  <xs:restriction base="xs:string">
   <xs:enumeration value="public"/>
   <xs:enumeration value="private"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:simpleType name="folderModule">
  <xs:restriction base="xs:string">
   <xs:enumeration value="calendar"/>
   <xs:enumeration value="task"/>
   <xs:enumeration value="contact"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:simpleType name="folderPermission">
  <xs:restriction base="xs:string">
   <xs:enumeration value="0"/>
   <xs:enumeration value="2"/>
   <xs:enumeration value="4"/>
   <xs:enumeration value="8"/>
   <xs:enumeration value="128"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:simpleType name="objectPermission">
  <xs:restriction base="xs:string">
   <xs:enumeration value="0"/>
   <xs:enumeration value="2"/>
   <xs:enumeration value="4"/>
   <xs:enumeration value="128"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:element name="folders">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="folder" minOccurs="1" maxOccurs="unbounded">
     <xs:complexType mixed="true">
      <xs:all>
       <xs:element name="title" type="xs:string"/>
       <xs:element name="module" type="folderModule"/>
       <xs:element name="type" type="folderType"/>
       <xs:element name="defaultfolder" type="xs:boolean"/>
       <xs:element name="created_by" type="xs:string"/>
       <xs:element name="creation_time" type="xs:long"/>
       <xs:element name="modified_by" type="xs:string" minOccurs="0"/>
       <xs:element name="last_modified" type="xs:long"/>
       <xs:element name="object_id" type="xs:integer"/>
       <xs:element name="folder_id" type="xs:integer"/>
       <xs:element name="permissions">
        <xs:complexType>
         <xs:sequence>
          <xs:element name="group" minOccurs="0" maxOccurs="unbounded">
           <xs:complexType>
            <xs:simpleContent>
             <xs:extension base="xs:string">
              <xs:attribute name="folderpermission" type="folderPermission"/>
              <xs:attribute name="objectreadpermission" type="objectPermission"/>
              <xs:attribute name="objectwritepermission" type="objectPermission"/>
              <xs:attribute name="objectdeletepermission" type="objectPermission"/>
              <xs:attribute name="admin_flag" type="xs:boolean"/>
             </xs:extension>
            </xs:simpleContent>
           </xs:complexType>
          </xs:element>
          <xs:element name="user" minOccurs="0" maxOccurs="unbounded">
           <xs:complexType>
            <xs:simpleContent>
             <xs:extension base="xs:string">
              <xs:attribute name="folderpermission" type="folderPermission"/>
              <xs:attribute name="objectreadpermission" type="objectPermission"/>
              <xs:attribute name="objectwritepermission" type="objectPermission"/>
              <xs:attribute name="objectdeletepermission" type="objectPermission"/>
              <xs:attribute name="admin_flag" type="xs:boolean"/>
             </xs:extension>
            </xs:simpleContent>
           </xs:complexType>
          </xs:element>
         </xs:sequence>
        </xs:complexType>
       </xs:element>
      </xs:all>
     </xs:complexType>
    </xs:element>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
</xs:schema>




Task


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://www.open-xchange.com"
 xmlns="http://www.open-xchange.com"
 elementFormDefault="qualified">

 <!-- Include common Types -->
 <xs:include schemaLocation="common.xsd"/>

 <xs:simpleType name="priorityType">
  <xs:restriction base="xs:integer">
   <xs:enumeration value="1"/>
   <xs:enumeration value="2"/>
   <xs:enumeration value="3"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:simpleType name="statusType">
  <xs:restriction base="xs:integer">
   <xs:enumeration value="1"/>
   <xs:enumeration value="2"/>
   <xs:enumeration value="3"/>
   <xs:enumeration value="4"/>
   <xs:enumeration value="5"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:element name="task">
  <xs:complexType>
   <xs:all>
    <xs:element name="title" type="xs:string" minOccurs="0"/>
    <xs:element name="start_date" type="xs:long"/>
    <xs:element name="end_date" type="xs:long"/>
    <xs:element name="actual_costs" type="xs:float"/>
    <xs:element name="actual_duration" type="xs:integer"/>
    <xs:element name="currency" type="xs:string"/>
    <xs:element name="percent_complete" type="xs:integer"/>
    <xs:element name="priority" type="priorityType"/>
    <xs:element name="status" type="statusType"/>
    <xs:element name="note" type="xs:string" minOccurs="0"/>
    <xs:element name="categories" type="xs:string" minOccurs="0"/>
    <xs:element name="trip_meter" type="xs:string" minOccurs="0"/>
    <xs:element name="billing_information" type="xs:string" minOccurs="0"/>
    <xs:element name="companies" type="xs:string" minOccurs="0"/>
    <xs:element name="target_costs" type="xs:float"/>
    <xs:element name="target_duration" type="xs:integer"/>
    <xs:element name="created_by" type="xs:string"/>
    <xs:element name="creation_time" type="xs:long"/>
    <xs:element name="modified_by" type="xs:string" minOccurs="0"/>
    <xs:element name="last_modified" type="xs:long"/>
    <xs:element name="object_id" type="xs:integer"/>
    <xs:element name="folder_id" type="xs:integer"/>
    <xs:element name="recurrence_type" type="recurrenceType" minOccurs="0"/>
    <xs:element name="days" type="xs:integer" minOccurs="0"/>
    <xs:element name="day_in_month" type="xs:integer" minOccurs="0"/>
    <xs:element name="month" type="xs:integer" minOccurs="0"/>
    <xs:element name="interval" type="xs:integer" minOccurs="0"/>
    <xs:element name="until" type="xs:long" minOccurs="0"/>
    <xs:element name="participants" minOccurs="0">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="user" minOccurs="0" maxOccurs="unbounded" />
       <xs:element name="external_user" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
         <xs:simpleContent>
          <xs:extension base="xs:string">
           <xs:attribute name="display_name" type="xs:string"/>
          </xs:extension>
         </xs:simpleContent>
        </xs:complexType>
       </xs:element>
       <xs:element name="group" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="users" minOccurs="0">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="user" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
         <xs:simpleContent>
          <xs:extension base="xs:string">
           <xs:attribute name="alarm" type="xs:long"/>
           <xs:attribute name="confirm" type="confirmType"/>
           <xs:attribute name="confirm_message" type="xs:string"/>
          </xs:extension>
         </xs:simpleContent>
        </xs:complexType>
       </xs:element>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="attachments" minOccurs="0">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="attachment" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
         <xs:simpleContent>
          <xs:extension base="xs:string">
           <xs:attribute name="id" type="xs:integer"/>
           <xs:attribute name="last_modified" type="xs:long"/>
           <xs:attribute name="mimetype" type="xs:string"/>
          </xs:extension>
         </xs:simpleContent>
        </xs:complexType>
       </xs:element>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
   </xs:all>
  </xs:complexType>
 </xs:element>
</xs:schema>




Appointment


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://www.open-xchange.com"
 xmlns="http://www.open-xchange.com"
 elementFormDefault="qualified">

 <!-- Include common Types -->
 <xs:include schemaLocation="common.xsd"/>

 <!-- Define used Types -->
 <xs:simpleType name="shownAsType">
  <xs:restriction base="xs:integer">
   <xs:enumeration value="1"/>
   <xs:enumeration value="2"/>
   <xs:enumeration value="3"/>
   <xs:enumeration value="4"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:element name="appointment">
  <xs:complexType>
   <xs:all>
    <xs:element name="title" type="xs:string"/>
    <xs:element name="start_date" type="xs:long"/>
    <xs:element name="end_date" type="xs:long"/>
    <xs:element name="location" type="xs:string" minOccurs="0"/>
    <xs:element name="full_time" type="xs:boolean"/>
    <xs:element name="shown_as" type="xs:integer"/>
    <xs:element name="label" type="xs:integer"  minOccurs="0"/>
    <xs:element name="note" type="xs:string"  minOccurs="0"/>
    <xs:element name="recurrence_id" type="xs:integer" minOccurs="0"/>
    <xs:element name="recurrence_date_position" type="xs:long" minOccurs="0"/>
    <xs:element name="recurrence_position" type="xs:integer" minOccurs="0"/>
    <xs:element name="recurrence_type" type="recurrenceType" minOccurs="0"/>
    <xs:element name="days" type="xs:integer" minOccurs="0"/>
    <xs:element name="day_in_month" type="xs:integer" minOccurs="0"/>
    <xs:element name="month" type="xs:integer" minOccurs="0"/>
    <xs:element name="interval" type="xs:integer" minOccurs="0"/>
    <xs:element name="until" type="xs:long" minOccurs="0"/>
    <xs:element name="created_by" type="xs:string"/>
    <xs:element name="creation_time" type="xs:long"/>
    <xs:element name="modified_by" type="xs:string" minOccurs="0"/>
    <xs:element name="last_modified" type="xs:long"/>
    <xs:element name="object_id" type="xs:integer"/>
    <xs:element name="folder_id" type="xs:integer"/>
    <xs:element name="private_flag" type="xs:boolean" minOccurs="0"/>
    <xs:element name="categories" type="xs:string" minOccurs="0"/>
    <xs:element name="changeexceptions" type="xs:string" minOccurs="0"/>
    <xs:element name="deleteexceptions" type="xs:string" minOccurs="0"/>
    <xs:element name="participants" minOccurs="0">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="user" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
       <xs:element name="external_user" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
         <xs:simpleContent>
          <xs:extension base="xs:string">
           <xs:attribute name="display_name"/>
          </xs:extension>
         </xs:simpleContent>
        </xs:complexType>
       </xs:element>
       <xs:element name="group" minOccurs="0" maxOccurs="unbounded" />
       <xs:element name="resource" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="users" minOccurs="0">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="user" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
         <xs:simpleContent>
          <xs:extension base="xs:string">
           <xs:attribute name="alarm" type="xs:integer"/>
           <xs:attribute name="confirm" type="confirmType"/>
           <xs:attribute name="confirm_message" type="xs:string"/>
          </xs:extension>
         </xs:simpleContent>
        </xs:complexType>
       </xs:element>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="attachments" minOccurs="0">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="attachment" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
         <xs:simpleContent>
          <xs:extension base="xs:string">
           <xs:attribute name="id" type="xs:integer"/>
           <xs:attribute name="last_modified" type="xs:long"/>
           <xs:attribute name="mimetype" type="xs:string"/>
          </xs:extension>
         </xs:simpleContent>
        </xs:complexType>
       </xs:element>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
   </xs:all>
  </xs:complexType>
 </xs:element>
</xs:schema>



Contact


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.open-xchange.com"
 xmlns="http://www.open-xchange.com"
 elementFormDefault="qualified">

 <!-- Include common Types -->
 <xs:include schemaLocation="common.xsd"/>

 <!-- Define used types -->
 <xs:simpleType name="emailfieldType">
  <xs:restriction base="xs:integer">
   <xs:enumeration value="1"/>
   <xs:enumeration value="2"/>
   <xs:enumeration value="3"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:element name="contact">
  <xs:complexType>
   <xs:all>
    <xs:element name="created_by" type="xs:string"/>
    <xs:element name="creation_time" type="xs:long"/>
    <xs:element name="modified_by" type="xs:string" minOccurs="0"/>
    <xs:element name="last_modified" type="xs:long"/>
    <xs:element name="object_id" type="xs:integer"/>
    <xs:element name="folder_id" type="xs:integer"/> 		
    <xs:element name="first_name" type="xs:string" minOccurs="0"/>
    <xs:element name="last_name" type="xs:string"/>
    <xs:element name="second_name" type="xs:string" minOccurs="0"/>
    <xs:element name="suffix" type="xs:string" minOccurs="0"/>
    <xs:element name="categories" type="xs:string" minOccurs="0"/>
    <xs:element name="birthday" type="xs:long" minOccurs="0"/>
    <xs:element name="display_name" type="xs:string"/>
    <xs:element name="email1" type="xs:string" minOccurs="0"/>
    <xs:element name="email2" type="xs:string" minOccurs="0"/>
    <xs:element name="email3" type="xs:string" minOccurs="0"/>
    <xs:element name="department" type="xs:string" minOccurs="0"/>
    <xs:element name="company" type="xs:string" minOccurs="0"/>
    <xs:element name="default_address" type="xs:integer" minOccurs="0"/>
    <xs:element name="nickname" type="xs:string" minOccurs="0"/>
    <xs:element name="title" type="xs:string" minOccurs="0"/>
    <xs:element name="street_home" type="xs:string" minOccurs="0"/>
    <xs:element name="street_business" type="xs:string" minOccurs="0"/>
    <xs:element name="street_other" type="xs:string" minOccurs="0"/>
    <xs:element name="postal_code_home" type="xs:string" minOccurs="0"/>
    <xs:element name="postal_code_business" type="xs:string" minOccurs="0"/>
    <xs:element name="postal_code_other" type="xs:string" minOccurs="0"/>
    <xs:element name="city_home" type="xs:string" minOccurs="0"/>
    <xs:element name="city_business" type="xs:string" minOccurs="0"/>
    <xs:element name="city_other" type="xs:string" minOccurs="0"/>
    <xs:element name="state_home" type="xs:string" minOccurs="0"/>
    <xs:element name="state_business" type="xs:string" minOccurs="0"/>
    <xs:element name="state_other" type="xs:string" minOccurs="0"/>
    <xs:element name="country_home" type="xs:string" minOccurs="0"/>
    <xs:element name="country_business" type="xs:string" minOccurs="0"/>
    <xs:element name="country_other" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_other" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_business1" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_business2" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_callback" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_car" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_company" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_home1" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_home2" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_isdn" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_pager" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_primary" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_radio" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_telex" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_ttytdd" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_ip" type="xs:string" minOccurs="0"/>
    <xs:element name="telephone_assistant" type="xs:string" minOccurs="0"/>
    <xs:element name="cellular_telephone1" type="xs:string" minOccurs="0"/>
    <xs:element name="cellular_telephone2" type="xs:string" minOccurs="0"/>
    <xs:element name="fax_home" type="xs:string" minOccurs="0"/>
    <xs:element name="fax_business" type="xs:string" minOccurs="0"/>
    <xs:element name="fax_other" type="xs:string" minOccurs="0"/>
    <xs:element name="instant_messenger1" type="xs:string" minOccurs="0"/>
    <xs:element name="instant_messenger2" type="xs:string" minOccurs="0"/>
    <xs:element name="marital_status" type="xs:string" minOccurs="0"/>
    <xs:element name="number_of_children" type="xs:string" minOccurs="0"/>
    <xs:element name="profession" type="xs:string" minOccurs="0"/>
    <xs:element name="spouse_name" type="xs:string" minOccurs="0"/>
    <xs:element name="managers_name" type="xs:string" minOccurs="0"/>
    <xs:element name="assistants_name" type="xs:string" minOccurs="0"/>
    <xs:element name="anniversary" type="xs:string" minOccurs="0"/>
    <xs:element name="position" type="xs:string" minOccurs="0"/>
    <xs:element name="employee_type" type="xs:string" minOccurs="0"/>
    <xs:element name="room_number" type="xs:string" minOccurs="0"/>
    <xs:element name="number_of_employees" type="xs:string" minOccurs="0"/>
    <xs:element name="sales_volume" type="xs:string" minOccurs="0"/>
    <xs:element name="tax_id" type="xs:string" minOccurs="0"/>
    <xs:element name="commercial_register" type="xs:string" minOccurs="0"/>
    <xs:element name="branches" type="xs:string" minOccurs="0"/>
    <xs:element name="business_category" type="xs:string" minOccurs="0"/>
    <xs:element name="note" type="xs:string" minOccurs="0"/>
    <xs:element name="url" type="xs:string" minOccurs="0"/>
    <xs:element name="info" type="xs:string" minOccurs="0"/>
    <xs:element name="image1" minOccurs="0">
     <xs:complexType>
      <xs:simpleContent>
       <xs:extension base="xs:string">
        <xs:attribute name="mimetype" type="xs:string" use="required"/>
       </xs:extension>
      </xs:simpleContent>
     </xs:complexType>
    </xs:element>
    <xs:element name="distributionlist_flag" type="xs:boolean" minOccurs="0"/>
    <xs:element name="distributionlist" minOccurs="0">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="email" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
         <xs:simpleContent>
          <xs:extension base="xs:string">
           <xs:attribute name="id" type="xs:integer"/>
           <xs:attribute name="display_name" type="xs:string"/>
           <xs:attribute name="emailfield" type="emailfieldType"/>
          </xs:extension>
         </xs:simpleContent>
        </xs:complexType>
       </xs:element>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="attachments" minOccurs="0" type="attachments"/>
   </xs:all>
  </xs:complexType>
 </xs:element>
</xs:schema>


---

Common


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://www.open-xchange.com"
 xmlns="http://www.open-xchange.com"
 elementFormDefault="qualified">

 <xs:simpleType name="recurrenceType">
  <xs:restriction base="xs:string">
   <xs:enumeration value="daily"/>
   <xs:enumeration value="weekly"/>
   <xs:enumeration value="monthly"/>
   <xs:enumeration value="yearly"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:simpleType name="confirmType">
  <xs:restriction base="xs:string">
   <xs:enumeration value="none"/>
   <xs:enumeration value="accept"/>
   <xs:enumeration value="decline"/>
  </xs:restriction>
 </xs:simpleType>

 <xs:complexType name="externalUser">
  <xs:simpleContent>
   <xs:extension base="xs:string">
    <xs:attribute name="display_name"/>
   </xs:extension>
  </xs:simpleContent>
 </xs:complexType>

 <xs:complexType name="users">
  <xs:sequence>
   <xs:element name="user" minOccurs="0" maxOccurs="unbounded">
    <xs:complexType>
     <xs:simpleContent>
      <xs:extension base="xs:string">
       <xs:attribute name="alarm" type="xs:long"/>
       <xs:attribute name="confirm" type="confirmType"/>
       <xs:attribute name="confirm_message" type="xs:string"/>
      </xs:extension>
     </xs:simpleContent>
    </xs:complexType>
   </xs:element>
  </xs:sequence>
 </xs:complexType>

 <xs:complexType name="attachments">
  <xs:sequence>
   <xs:element name="attachment" minOccurs="0" maxOccurs="unbounded">
    <xs:complexType>
     <xs:simpleContent>
      <xs:extension base="xs:string">
       <xs:attribute name="id" type="xs:integer"/>
       <xs:attribute name="last_modified" type="xs:long"/>
       <xs:attribute name="mimetype" type="xs:string"/>
      </xs:extension>
     </xs:simpleContent>
    </xs:complexType>
   </xs:element>
  </xs:sequence>
 </xs:complexType>

</xs:schema>