A.0 Schema

The GroupWise events schema follows:

<?xml version="1.0" ?>
<xs:schema
    targetNamespace="urn:novell:schemas:ns:events"
     xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:types="http://schemas.novell.com/2003/10/NCSP/types.xsd"
     xmlns:tns="urn:novell:schemas:ns:events">

     <xs:element name="key" type="xs:string"/>
     <xs:element name="event" type="tns:EventType"/>
     <xs:element name="field" type="tns:FieldList" minOccurs="0"/>

     <xs:complexType name="Event">
           <xs:sequence>
              <xs:element ref="tns:event"/>
             <xs:element ref="types:id"/>
             <xs:element name="timeStamp" type="xs:dateTime"
               minOccurs="0"/>
             <xs:element ref="tns:field"/>
             <xs:element name="container" type="types:uid"
               minOccurs="0"/>
             <xs:element name="from" type="types:uid" minOccurs="0"/>
             <xs:element name="key" type="xs:string" minOccurs="0"/>
           </xs:sequence>
     </xs:complexType>

     <xs:complexType name="EventDefinition">
           <xs:sequence>
             <xs:element ref="tns:event" minOccurs="1" maxOccurs="33"/>
             <xs:element name="type" type="tns:ItemTypeList"
                minOccurs="0"/>
             <xs:element ref="tns:field"/>
             <xs:element name="containers" type="types:ContainerList"
                 minOccurs="0"/>    
         </xs:sequence>
     </xs:complexType>

     <xs:complexType name="EventList">
           <xs:sequence>
             <xs:element name="event" type="tns:Event" minOccurs="0"
                maxOccurs="unbounded"/>
           </xs:sequence>
     </xs:complexType>

      <xs:complexType name="Events">
           <xs:sequence>
             <xs:element ref="tns:key"/>
             <xs:element name="persistence" type="xs:duration"
               minOccurs="0"/>
              <xs:element name="ipAddress" type="xs:string"
               minOccurs="0"/>
             <xs:element name="port" type="xs:int" minOccurs="0"/>
            <xs:element name="http" type="xs:boolean" 
               default="false"/>
            <xs:element name="event" type="tns:EventDefinition"
               maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attribute name="enabled" type="xs:boolean" default="false"/>
   </xs:complexType>

   <xs:simpleType name="EventType">
     <xs:restriction base="xs:string">
           <xs:enumeration value="AddressBookAdd"/>
           <xs:enumeration value="AddressBookDelete"/>
           <xs:enumeration value="AddressBookModify"/>
           <xs:enumeration value="AddressBookItemAdd"/>
           <xs:enumeration value="AddressBookItemDelete"/>
           <xs:enumeration value="AddressBookItemModify"/>
           <xs:enumeration value="FolderAccept"/>
           <xs:enumeration value="FolderAdd"/>
           <xs:enumeration value="FolderDelete"/>
           <xs:enumeration value="FolderItemAdd"/>
           <xs:enumeration value="FolderItemDelete"/>
           <xs:enumeration value="FolderItemMove"/>
           <xs:enumeration value="FolderModify"/>
           <xs:enumeration value="ItemAccept"/>
           <xs:enumeration value="ItemArchive"/>
           <xs:enumeration value="ItemComplete"/>
           <xs:enumeration value="ItemDecline"/>
         <xs:enumeration value="ItemDelete"/>
           <xs:enumeration value="ItemMarkPrivate"/>
           <xs:enumeration value="ItemMarkRead"/>
           <xs:enumeration value="ItemMarkUnread"/>
           <xs:enumeration value="ItemModify"/>
           <xs:enumeration value="ItemPurge"/>
           <xs:enumeration value="ItemUnarchive"/>
           <xs:enumeration value="ItemUnmarkPrivate"/>
           <xs:enumeration value="Login"/>
           <xs:enumeration value="Logout"/>
           <xs:enumeration value="ProxyAccessAdd"/>
           <xs:enumeration value="ProxyAccessModify"/>
           <xs:enumeration value="ProxyAccessDelete"/>
           <xs:enumeration value="ProxyLogin"/>
           <xs:enumeration value="SessionTimedOut"/>
           <xs:enumeration value="TrustedApplicationLogin"/>
        </xs:restriction>
   </xs:simpleType>

   <xs:simpleType name="Field">
        <xs:restriction base="xs:string">
           <xs:enumeration value="AcceptLevel"/>
           <xs:enumeration value="Attachment"/>
           <xs:enumeration value="Category"/>
           <xs:enumeration value="Classification"/>
           <xs:enumeration value="DueDate"/>
           <xs:enumeration value="Duration"/>
           <xs:enumeration value="EmailAddress"/>
           <xs:enumeration value="ExpirationDate"/>
           <xs:enumeration value="IMAddress"/>
           <xs:enumeration value="MessageBody"/>
           <xs:enumeration value="Name"/>
           <xs:enumeration value="PersonalSubject"/>
           <xs:enumeration value="PhoneNumber"/>
         <xs:enumeration value="Place"/>
           <xs:enumeration value="Rights"/>
           <xs:enumeration value="Security"/>
           <xs:enumeration value="SendPriority"/>
           <xs:enumeration value="StartDate"/>
           <xs:enumeration value="TaskCategory"/>
           <xs:enumeration value="TaskPriority"/>
        </xs:restriction>
   </xs:simpleType>

   <xs:simpleType name="FieldList">
      <xs:list fieldType="Field"/>
   </xs:simpleType>

   <xs:simpleType name="ItemType">
     <xs:restriction base="xs:string">
           <xs:enumeration value="AddressBookItem"/>
           <xs:enumeration value="Appointment"/>
           <xs:enumeration value="CalendarItem"/>
           <xs:enumeration value="Contact"/>
           <xs:enumeration value="Group"/>
           <xs:enumeration value="Mail"/>
           <xs:enumeration value="Note"/>
           <xs:enumeration value="Organization"/>
           <xs:enumeration value="PhoneMessage"/>
           <xs:enumeration value="Resource"/>
           <xs:enumeration value="Task"/>
        </xs:restriction>
   </xs:simpleType>

   <xs:simpleType name="ItemTypeList">
      <xs:list itemType="ItemType"/>
   </xs:simpleType>

   <xs:element name="cleanEventConfigurationRequest">
      <xs:complexType>
           <xs:sequence>
             <xs:element name="all" type="xs:boolean" default="false"/>
           </xs:sequence>
        </xs:complexType>
   </xs:element>

   <xs:element name="cleanEventConfigurationResponse">
     <xs:complexType>
        <xs:sequence>
    <xs:element name="status" type="types:Status"/>
         </xs:sequence>
        </xs:complexType>
   </xs:element>

   <xs:element name="configureEventsRequest">
      <xs:complexType>
           <xs:sequence>
              <xs:element name="enabled" type="xs:boolean"/>
                <xs:element name="events" type="tns:Events" 
               minOccurs="0"/>
           </xs:sequence>
        </xs:complexType>
   </xs:element>

   <xs:element name="configureEventsResponse">
      <xs:complexType>
           <xs:sequence>
             <xs:element name="status" type="types:Status"/>
           </xs:sequence>
        </xs:complexType>
   </xs:element>

   <xs:element name="getEventConfigurationRequest">
     <xs:complexType>
         <xs:sequence>
    <xs:element ref="tns:key" minOccurs="0"/>
     </xs:sequence>
        </xs:complexType>
   </xs:element>

   <xs:element name="getEventConfigurationResponse">    
      <xs:complexType>
            <xs:sequence>  
              <xs:element name="enabled" type="xs:boolean"/>
              <xs:element name="events" type="tns:Events" 
              minOccurs="0"/>
                <xs:element name="status" type="types:Status"/>
           </xs:sequence>
        </xs:complexType>
   </xs:element>

   <xs:element name="getEventsRequest">
     <xs:complexType>
           <xs:sequence>
              <xs:element ref="tns:key"/>
                <xs:element name="from" type="xs:dateTime" minOccurs="0"/>
              <xs:element name="until" type="xs:dateTime" 
               minOccurs="0"/>
    <xs:element name="count" type="xs:int" default="-1"/>
    <xs:element name="remove" type="xs:boolean"
               default="false"/>
              <xs:element name="notify" type="xs:boolean"
               default="false"/>
             </xs:sequence>
        </xs:complexType>
   </xs:element>

   <xs:element name="getEventsResponse">
     <xs:complexType>
        <xs:sequence>
              <xs:element name="events" type="types:EventList"/>
              <xs:element name="status" type="types:Status"/>
           </xs:sequence>
      </xs:complexType>
   </xs:element>

   <xs:element name="removeEventConfigurationRequest">
      <xs:complexType>
           <xs:sequence>
             <xs:element ref="tns:key"/>
           </xs:sequence>
        </xs:complexType>
   </xs:element>

   <xs:element name="removeEventConfigurationResponse">
      <xs:complexType>
           <xs:sequence>
              <xs:element name="status" type="types:Status"/>
           </xs:sequence>
      </xs:complexType>
   </xs:element>

   <xs:element name="removeEventsRequest">
      <xs:complexType>
           <xs:sequence>
             <xs:element ref="tns:key"/>
             <xs:element name="from" type="xs:dateTime" minOccurs="0"/>
             <xs:element name="until" type="xs:dateTime" 
               minOccurs="0"/>
           </xs:sequence>
        </xs:complexType>
   </xs:element>

   <xs:element name="removeEventsResponse">
      <xs:complexType>
           <xs:sequence>
             <xs:element name="status" type="types:Status"/>
           </xs:sequence>
      </xs:complexType>
   </xs:element>
</xs:schema>