<?xml version="1.0" encoding="utf-8" ?> 
<xs:schema targetNamespace="http://schemas.novell.com/2003/10/NCSP/methods.xsd" elementFormDefault="qualified"
	xmlns="http://schemas.novell.com/2003/10/NCSP/methods.xsd" 
	xmlns:tns="http://schemas.novell.com/2003/10/NCSP/methods.xsd"
	xmlns:types="http://schemas.novell.com/2003/10/NCSP/types.xsd"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:xs="http://www.w3.org/2001/XMLSchema">

	<xs:element name="acceptRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:ItemRefList"/>
				<xs:element name="comment" type="xs:string"/>
				<xs:element name="acceptLevel" type="types:AcceptLevel"/>
				<xs:element name="recurrenceAllInstances" type="types:recurrenceKey" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="acceptResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="acceptShareRequest">
		<xs:annotation>
			<xs:documentation>
				container is requied for accepting a shared folder notification.
				It is the container id of the folder where the new folder will be
				placed.
				If name or container are not sent, the original values from the
				notification message will be used.
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="types:uid"/>
				<xs:element name="name" type="xs:string" minOccurs="0"/>
				<xs:element name="container" type="types:uid" minOccurs="0"/>
				<xs:element ref="types:description" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="acceptShareResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="addItemRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="container" type="types:uid"/>
				<xs:element name="id" type="types:uid"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="addItemResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="addItemsRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="container" type="types:uid"/>
				<xs:element name="items" type="types:ItemRefList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="addItemsResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="addMembersRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="container" type="types:uid"/>
				<xs:element name="members" type="types:GroupMemberList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="addMembersResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="closeFreeBusySessionRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="freeBusySessionId" type="xs:int"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="closeFreeBusySessionResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="completeRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:ItemRefList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="completeResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="createCursorRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="container" type="types:uid"/>
				<xs:element name="view" type="types:View" minOccurs="0" />
				<xs:element name="filter" type="types:Filter" minOccurs="0" />
<!--				<xs:element name="sort" type="types:Sort" minOccurs="0" /> -->
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="createCursorResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="cursor" type="xs:int"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="createItemRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="item" type="types:Item"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="createItemResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="types:uid"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="createProxyAccessRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="entry" type="types:AccessRightEntry"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="createProxyAccessResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="types:uid"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="createSignatureRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="signature" type="tns:Signature" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="createSignatureResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="declineRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:ItemRefList"/>
				<xs:element name="comment" type="xs:string"/>
				<xs:element name="recurrenceAllInstances" type="types:recurrenceKey" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="declineResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="delegateRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:ItemRefList"/>
				<xs:element name="commentToOrganizer" type="xs:string"/>
				<xs:element name="commentToDelegatee" type="xs:string"/>
				<xs:element name="distribution" type="types:Distribution"/>
				<xs:element name="recurrenceAllInstances" type="types:recurrenceKey" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="delegateResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="destroyCursorRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="container" type="types:uid"/>
				<xs:element name="cursor" type="xs:int"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="destroyCursorResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="forwardRequest">
		<xs:annotation>
			<xs:documentation>
				Forwarding a message is a two step process.
				First you call the method with the id of the original item.
				A new mail item is returned.
				It has the orignal subject.
				The caller is responsible to prepend "Fwd:" or what ever they
				want to modify the original subject.
				If the caller wants the original message body returned, they need
				to supply message or message/RTF in the view.
				It is up to the caller to modify the message body in any way.
				When all of the changes to the returned mail item are complete,
				the caller would then call sendRequest with the new mail item.
				A linkInfo element is return in the mail item. That element needs
				to be passed unchanged in the sendRequest.
				If the caller wants to send the original item as an attachment to
				the new mail item, the caller would pass <embed>1</embed> in the
				forwardRequest.
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="types:uid"/>
				<xs:element name="view" type="types:View" nillable="true"/>
				<xs:element name="embed" type="xs:boolean" default="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="forwardResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="item" type="types:Item"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getAddressBookListRequest">
	</xs:element>

	<xs:element name="getAddressBookListResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="books" type="types:AddressBookList"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getAttachmentRequest">
		<xs:annotation>
			<xs:documentation>
				This work only for file attachments.
				If you try to specify an embedded item, you will get an error.
				If you specify offset = 0 and length = -1,
					you will receive the whole attachment.
				You can supply other values for offset and length to receive
					a part of the attachment.
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="types:uid"/>
				<xs:element name="offset" type="xs:int"/>
				<xs:element name="length" type="xs:int"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getAttachmentResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="part" type="types:MessagePart"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getCategoryListRequest">
	</xs:element>

	<xs:element name="getCategoryListResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="categories" type="types:CategoryList"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getCustomListRequest">
	</xs:element>

	<xs:element name="getCustomListResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="customs" type="types:CustomList"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getFolderListRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="parent" type="types:uid"/>
				<xs:element name="view" type="types:View"/>
				<xs:element name="recurse" type="xs:boolean"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getFolderListResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="folders" type="types:FolderList"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getFreeBusyRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="freeBusySessionId" type="xs:string"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getFreeBusyResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="freeBusyStats" type="types:FreeBusyStats"/>
				<xs:element name="freeBusyInfo" type="types:FreeBusyInfoList"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getItemRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="types:uid"/>
				<xs:element name="view" type="types:View" nillable="true"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getItemResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="item" type="types:Item"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getItemsRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="container" type="types:uid"/>
				<xs:element name="view" type="types:View"/>
				<xs:element name="filter" type="types:Filter"/>
				<xs:element name="items" type="types:ItemRefList" minOccurs="0" maxOccurs="1"/>
<!--				<xs:element name="sort" type="types:Sort"/> -->
				<xs:element name="count" type="xs:int" default="-1"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getItemsResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:Items"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getQuickMessagesRequest">
		<xs:annotation>
			<xs:documentation>
				This method provides a quicker access to mail items.
				It does this by only access fields that are stored in the
				database index. The fields in the index are: id, status, modified,
				container, message type, categories, subject, orignalSubject, and
				source.
				The New list is the fastest access.
				The Modified list is slower.
				The All list is the slowest.
				If you pass a startDate, the test is for any item that is newer
				than that date. (The list does not include that date.)
				If you don't pass a container string. The query will be across
				all folders.
				If you don't pass a types list, the query will be for all message
				types unless the container is the Calendar folder. In that case
				the default will be "CalendarItem. "CalendarItem" is a special
				case it represents Appointment, Note and Task.
				You can select the source types you want to see. If you don't
				specify a source, you will get received, draft and personal.
				If you don't specify a view, the above fields will be returned.
				If you specify other fields than the above fields, they will not
				be returned.
				You can restrict the number of items return by specifying a count.
				All items will be returned if no count is given.
				
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="list" type="types:MessageList"/>
				<xs:element ref="types:startDate" minOccurs="0"/>
				<xs:element name="container" type="types:uid" minOccurs="0"/>
				<xs:element name="types" type="types:MessageTypeList" minOccurs="0"/>
				<xs:element name="source" type="types:ItemSourceList" minOccurs="0"/>
				<xs:element name="view" type="types:View" minOccurs="0"/>
				<xs:element name="count" type="xs:int" default="-1"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getQuickMessagesResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:Items"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getProxyAccessListRequest">
	</xs:element>

	<xs:element name="getProxyAccessListResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="accessRights" type="types:AccessRightList"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getProxyListRequest">
	</xs:element>

	<xs:element name="getProxyListResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="proxies" type="types:ProxyList"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getSettingsRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="xs:string" minOccurs="0" nillable="true"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getSettingsResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="settings" type="types:Settings"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getSignaturesRequest" />

	<xs:element name="getSignaturesResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="signatures" type="types:Signatures"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="getTimezoneListRequest">
	</xs:element>

	<xs:element name="getTimezoneListResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="timezones" type="types:TimezoneList"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="loginRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="auth" type="types:Authentication"/>
				<xs:element name="language" type="xs:language"/>
				<xs:element name="version" type="xs:decimal"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="loginResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="session" type="xs:string"/>
				<xs:element name="userinfo" type="types:UserInfo"/>
				<xs:element name="gwVersion" type="xs:string"/>
				<xs:element name="redirectToHost" type="types:Host" minOccurs="0" maxOccurs="1"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="logoutRequest">
	</xs:element>

	<xs:element name="logoutResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="markPrivateRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:ItemRefList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="markPrivateResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="markReadRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:ItemRefList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="markReadResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="markUnPrivateRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:ItemRefList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="markUnPrivateResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="markUnReadRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:ItemRefList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="markUnReadResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="modifyItemRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="types:uid"/>
				<xs:element name="notification" type="types:SharedFolderNotification" minOccurs="0"/>
				<xs:element name="updates" type="types:ItemChanges"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="modifyItemResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="types:modified" minOccurs="0"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="modifyItemsRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="item" type="types:ModifyItem" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="modifyItemsResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="types:modified" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="modifyPasswordRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="old" type="xs:string" minOccurs="0"/>
				<xs:element name="new" type="xs:string" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="modifyPasswordResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="modifyProxyAccessRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="types:uid"/>
				<xs:element name="updates" type="types:AccessRightChanges"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="modifyProxyAccessResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="modifySettingsRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="settings" type="types:SettingsList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="modifySettingsResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="modifySignaturesRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="updates" type="types:Signatures"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="modifySignaturesResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="moveItemRequest">
		<xs:annotation>
			<xs:documentation>
				This method will link (copy) or move items into the container.
				To do a link (copy) do not supply a from container.
				To move item(s) from one container to another supply the from
				container id.
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="types:uid"/>
				<xs:element name="container" type="types:uid"/>
				<xs:element name="from" type="types:uid" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="moveItemResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="positionCursorRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="container" type="types:uid"/>
				<xs:element name="cursor" type="xs:int"/>
				<xs:element name="seek" type="types:CursorSeek"/>
				<xs:element name="offset" type="xs:int"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="positionCursorResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="purgeDeletedItemsRequest">
		<xs:annotation>
			<xs:documentation>
				This method permanently deletes all items that were previously
				   marked for deletion (i.e. stored in the "Trash").
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence/>
		</xs:complexType>
	</xs:element>

	<xs:element name="purgeDeletedItemsResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="purgeRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:ItemRefList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="purgeResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="readCursorRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="container" type="types:uid"/>
				<xs:element name="cursor" type="xs:int"/>
				<xs:element name="forward" type="xs:boolean" default="1"/>
				<xs:element name="count" type="xs:int"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="readCursorResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:ItemList"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="removeItemRequest">
		<xs:annotation>
			<xs:documentation>
				If the container is not specified then the item is 
				   removed from all of the containers that it is linked
				   to and is stored in the "Trash".
				If the container is specified then the item is only
				   removed from that specific container and it's link
				   is stored in the "Trash".
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="container" type="types:uid" nillable="true"/>
				<xs:element name="id" type="types:uid"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="removeItemResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="removeItemsRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="container" type="types:uid"/>
				<xs:element name="items" type="types:ItemRefList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="removeItemsResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="removeMembersRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="container" type="types:uid"/>
				<xs:element name="members" type="types:GroupMemberList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="removeMembersResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="removeProxyAccessRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="types:uid"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="removeProxyAccessResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="removeSignatureRequest">
		<xs:annotation>
			<xs:documentation>
				The signature will be purged when remove
				request completed. The missing id node or id
				length when it is not delete all signatures
				indicates the removing of plain text signature
				which resides in user's settings record.
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="tns:uid" minOccurs="0"/>
				<xs:element name="all" type="xs:boolean" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="removeSignatureResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="replyRequest">
		<xs:annotation>
			<xs:documentation>
				Replying to a message is a two step process.
				First you call the method with the id of the original item.
				A new mail item is returned.
				It has the orignal subject.
				The caller is responsible to prepend "Re:" or what ever they
				want to modify the original subject.
				If the caller wants the original message body returned, they need
				to supply message or message/RTF in the view.
				It is up to the caller to modify the message body in any way.
				When all of the changes to the returned mail item are complete,
				the caller would then call sendRequest with the new mail item.
				If the caller wants to reply to all recipeints of the original
				item, the caller needs to pass recipients in the view.
				If recipients is not in the view, the response will be addressed
				to the original sender.
				A linkInfo element is return in the mail item. That element needs
				to be passed unchanged in the sendRequest.
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="types:uid"/>
				<xs:element name="view" type="types:View" nillable="true"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="replyResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="item" type="types:Item"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="retractRequest">
		<xs:annotation>
			<xs:documentation>
				If a recipient has opened or accepted a Calendar item, a notice
				will be placed in the recipient's in-box when the item is
				retracted.  The notice can be affected by the following options:
				
				"comment":  The comment will be included in the notice.
				"retractCausedByResend": When TRUE, the notice will be suppressed
				in lieu of the 'new' calendar item that will be delivered to 
				the recipient.
				"retractingAllInstances": When TRUE, a single notice will be 
				placed in the recipient's in-box (instead of a notice for each
				instance).  
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:ItemRefList"/>
				<xs:element name="comment" type="xs:string" minOccurs="0"/>
				<xs:element name="retractingAllInstances" type="xs:bool" minOccurs="0"/>
				<xs:element name="retractCausedByResend" type="xs:bool" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="retractResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="sendItemRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="item" type="types:Item"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="sendItemResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="id" type="types:ItemRefList"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="startFreeBusySessionRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="users" type="types:FreeBusyUserList"/>
				<xs:element name="startDate" type="xs:dateTime"/>
				<xs:element name="endDate" type="xs:dateTime"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="startFreeBusySessionResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="freeBusySessionId" type="xs:int"/>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="unacceptRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:ItemRefList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="unacceptResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="uncompleteRequest">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="items" type="types:ItemRefList"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="uncompleteResponse">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="status" type="types:Status"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

</xs:schema>
