For ease of implementation, the following is the full XML schema for this protocol.
-
<?xml version="1.0" encoding="utf-8"?> <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="TaskSet" nillable="true" type="TaskSet" /> <xs:complexType name="TaskSet"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="Version" type="Version" /> <xs:element minOccurs="0" maxOccurs="1" name="Tasks" type="ArrayOfTask" /> </xs:sequence> </xs:complexType> <xs:simpleType name="Version"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]+\.[0-9]+(\.[0-9]+(\.[0-9]+)?)?"/> </xs:restriction> </xs:simpleType> <xs:complexType name="ArrayOfTask"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="Task" nillable="true" type="Task" /> </xs:sequence> </xs:complexType> <xs:complexType name="Task"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="TaskString" type="xs:string" /> <xs:element minOccurs="0" maxOccurs="1" name="Assignees" type="ArrayOfEmailUser" /> </xs:sequence> <xs:attribute default="-1" name="StartIndex" type="xs:int" /> <xs:attribute default="LatestReply" name="Position" type="EmailPosition" /> </xs:complexType> <xs:complexType name="ArrayOfEmailUser"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="EmailUser" nillable="true" type="EmailUser" /> </xs:sequence> </xs:complexType> <xs:complexType name="EmailUser"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="Id" type="xs:string" /> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:simpleType name="EmailPosition"> <xs:restriction base="xs:string"> <xs:enumeration value="LatestReply" /> <xs:enumeration value="Subject" /> <xs:enumeration value="Signature" /> <xs:enumeration value="Other" /> </xs:restriction> </xs:simpleType> <xs:element name="AddressSet" nillable="true" type="AddressSet" /> <xs:complexType name="AddressSet"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="Version" type="Version" /> <xs:element minOccurs="0" maxOccurs="1" name="Addresses" type="ArrayOfAddress" /> </xs:sequence> </xs:complexType> <xs:complexType name="ArrayOfAddress"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="Address" nillable="true" type="Address" /> </xs:sequence> </xs:complexType> <xs:complexType name="Address"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute default="-1" name="StartIndex" type="xs:int" /> <xs:attribute default="LatestReply" name="Position" type="EmailPosition" /> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:element name="MeetingSet" nillable="true" type="MeetingSet" /> <xs:complexType name="MeetingSet"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="Version" type="Version" /> <xs:element minOccurs="0" maxOccurs="1" name="Meetings" type="ArrayOfMeeting" /> </xs:sequence> </xs:complexType> <xs:complexType name="ArrayOfMeeting"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="Meeting" nillable="true" type="Meeting" /> </xs:sequence> </xs:complexType> <xs:complexType name="Meeting"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="MeetingString" type="xs:string" /> <xs:element minOccurs="0" maxOccurs="1" name="Attendees" type="ArrayOfEmailUser" /> <xs:element minOccurs="1" maxOccurs="1" name="StartTime" nillable="true" type="xs:dateTime" /> <xs:element minOccurs="1" maxOccurs="1" name="EndTime" nillable="true" type="xs:dateTime" /> </xs:sequence> <xs:attribute name="Location" type="xs:string" /> <xs:attribute name="Subject" type="xs:string" /> <xs:attribute default="-1" name="StartIndex" type="xs:int" /> <xs:attribute default="LatestReply" name="Position" type="EmailPosition" /> </xs:complexType> <xs:element name="PhoneSet" nillable="true" type="PhoneSet" /> <xs:complexType name="PhoneSet"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="Version" type="Version" /> <xs:element minOccurs="0" maxOccurs="1" name="Phones" type="ArrayOfPhone" /> </xs:sequence> </xs:complexType> <xs:complexType name="ArrayOfPhone"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="Phone" nillable="true" type="Phone" /> </xs:sequence> </xs:complexType> <xs:complexType name="Phone"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="PhoneString" type="xs:string" /> <xs:element minOccurs="0" maxOccurs="1" name="OriginalPhoneString" type="xs:string" /> </xs:sequence> <xs:attribute default="-1" name="StartIndex" type="xs:int" /> <xs:attribute default="LatestReply" name="Position" type="EmailPosition" /> <xs:attribute default="Unspecified" name="Type" type="PhoneType" /> </xs:complexType> <xs:simpleType name="PhoneType"> <xs:restriction base="xs:string"> <xs:enumeration value="Unspecified" /> <xs:enumeration value="Home" /> <xs:enumeration value="Mobile" /> <xs:enumeration value="Work" /> <xs:enumeration value="Fax" /> </xs:restriction> </xs:simpleType> <xs:element name="EmailSet" nillable="true" type="EmailSet" /> <xs:complexType name="EmailSet"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="Version" type="Version" /> <xs:element minOccurs="0" maxOccurs="1" name="Emails" type="ArrayOfEmail" /> </xs:sequence> </xs:complexType> <xs:complexType name="ArrayOfEmail"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="Email" nillable="true" type="Email" /> </xs:sequence> </xs:complexType> <xs:complexType name="Email"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="EmailString" type="xs:string" /> </xs:sequence> <xs:attribute default="-1" name="StartIndex" type="xs:int" /> <xs:attribute default="LatestReply" name="Position" type="EmailPosition" /> </xs:complexType> <xs:element name="UrlSet" nillable="true" type="UrlSet" /> <xs:complexType name="UrlSet"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="Version" type="Version" /> <xs:element minOccurs="0" maxOccurs="1" name="Urls" type="ArrayOfUrl" /> </xs:sequence> </xs:complexType> <xs:complexType name="ArrayOfUrl"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="Url" nillable="true" type="Url" /> </xs:sequence> </xs:complexType> <xs:complexType name="Url"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="UrlString" type="xs:string" /> </xs:sequence> <xs:attribute default="-1" name="StartIndex" type="xs:int" /> <xs:attribute default="LatestReply" name="Position" type="EmailPosition" /> <xs:attribute default="Unspecified" name="Type" type="UrlType" /> </xs:complexType> <xs:simpleType name="UrlType"> <xs:restriction base="xs:string"> <xs:enumeration value="Unspecified" /> <xs:enumeration value="Url" /> <xs:enumeration value="Filename" /> </xs:restriction> </xs:simpleType> <xs:element name="ContactSet" nillable="true" type="ContactSet" /> <xs:complexType name="ContactSet"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="Version" type="Version" /> <xs:element minOccurs="0" maxOccurs="1" name="Contacts" type="ArrayOfContact" /> </xs:sequence> </xs:complexType> <xs:complexType name="ArrayOfContact"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="Contact" nillable="true" type="Contact" /> </xs:sequence> </xs:complexType> <xs:complexType name="Person"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="PersonString" type="xs:string" /> </xs:sequence> <xs:attribute default="-1" name="StartIndex" type="xs:int" /> <xs:attribute default="LatestReply" name="Position" type="EmailPosition" /> </xs:complexType> <xs:complexType name="Business"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="BusinessString" type="xs:string" /> </xs:sequence> <xs:attribute default="-1" name="StartIndex" type="xs:int" /> <xs:attribute default="LatestReply" name="Position" type="EmailPosition" /> </xs:complexType> <xs:complexType name="Contact"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="Person" type="Person" /> <xs:element minOccurs="0" maxOccurs="1" name="Business" type="Business" /> <xs:element minOccurs="0" maxOccurs="1" name="Phones" type="ArrayOfPhone" /> <xs:element minOccurs="0" maxOccurs="1" name="Urls" type="ArrayOfUrl" /> <xs:element minOccurs="0" maxOccurs="1" name="Emails" type="ArrayOfEmail" /> <xs:element minOccurs="0" maxOccurs="1" name="Addresses" type="ArrayOfAddress" /> <xs:element minOccurs="0" maxOccurs="1" name="ContactString" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:schema>