The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="messages"
	elementFormDefault="qualified"
	version="Exchange2007_SP1" 
	xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" 
	xmlns:tns="http://schemas.microsoft.com/exchange/services/2006/messages" 
	xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" 
	xmlns:xs="http://www.w3.org/2001/XMLSchema" 
	targetNamespace="http://schemas.microsoft.com/exchange/services/2006/messages">
	<!-- Import common types. -->
	<xs:import namespace="http://schemas.microsoft.com/exchange/services/2006/types" schemaLocation="types.xsd"/>
	<!-- Basic response type -->
	<!-- Common to all responses -->
  <xs:simpleType name="ResponseCodeType">
	<xs:annotation>
	  <xs:documentation>
		Represents the message keys that can be returned by response error messages
	  </xs:documentation>
	</xs:annotation>
	<xs:restriction base="xs:string">
	  <xs:enumeration value="NoError"/>
	  <xs:enumeration value="ErrorAccessDenied"/>
	  <xs:enumeration value="ErrorAccountDisabled"/>
	  <xs:enumeration value="ErrorAddDelegatesFailed"/>
	  <xs:enumeration value="ErrorAddressSpaceNotFound"/>
	  <xs:enumeration value="ErrorADOperation"/>
	  <xs:enumeration value="ErrorADSessionFilter"/>
	  <xs:enumeration value="ErrorADUnavailable"/>
	  <xs:enumeration value="ErrorAutoDiscoverFailed"/>
	  <xs:enumeration value="ErrorAffectedTaskOccurrencesRequired"/>
	  <xs:enumeration value="ErrorAttachmentSizeLimitExceeded"/>
	  <xs:enumeration value="ErrorAvailabilityConfigNotFound"/>
	  <xs:enumeration value="ErrorBatchProcessingStopped"/>
	  <xs:enumeration value="ErrorCalendarCannotMoveOrCopyOccurrence"/>
	  <xs:enumeration value="ErrorCalendarCannotUpdateDeletedItem"/>
	  <xs:enumeration value="ErrorCalendarCannotUseIdForOccurrenceId"/>
	  <xs:enumeration value="ErrorCalendarCannotUseIdForRecurringMasterId"/>
	  <xs:enumeration value="ErrorCalendarDurationIsTooLong"/>
	  <xs:enumeration value="ErrorCalendarEndDateIsEarlierThanStartDate"/>
	  <xs:enumeration value="ErrorCalendarFolderIsInvalidForCalendarView"/>
	  <xs:enumeration value="ErrorCalendarInvalidAttributeValue"/>
	  <xs:enumeration value="ErrorCalendarInvalidDayForTimeChangePattern"/>
	  <xs:enumeration value="ErrorCalendarInvalidDayForWeeklyRecurrence"/>
	  <xs:enumeration value="ErrorCalendarInvalidPropertyState"/>
	  <xs:enumeration value="ErrorCalendarInvalidPropertyValue"/>
	  <xs:enumeration value="ErrorCalendarInvalidRecurrence"/>
	  <xs:enumeration value="ErrorCalendarInvalidTimeZone"/>
	  <xs:enumeration value="ErrorCalendarIsDelegatedForAccept"/>
	  <xs:enumeration value="ErrorCalendarIsDelegatedForDecline"/>
	  <xs:enumeration value="ErrorCalendarIsDelegatedForRemove"/>
	  <xs:enumeration value="ErrorCalendarIsDelegatedForTentative"/>
	  <xs:enumeration value="ErrorCalendarIsNotOrganizer"/>
	  <xs:enumeration value="ErrorCalendarIsOrganizerForAccept"/>
	  <xs:enumeration value="ErrorCalendarIsOrganizerForDecline"/>
	  <xs:enumeration value="ErrorCalendarIsOrganizerForRemove"/>
	  <xs:enumeration value="ErrorCalendarIsOrganizerForTentative"/>
	  <xs:enumeration value="ErrorCalendarOccurrenceIndexIsOutOfRecurrenceRange"/>
	  <xs:enumeration value="ErrorCalendarOccurrenceIsDeletedFromRecurrence"/>
	  <xs:enumeration value="ErrorCalendarOutOfRange"/>
	  <xs:enumeration value="ErrorCalendarMeetingRequestIsOutOfDate"/>
	  <xs:enumeration value="ErrorCalendarViewRangeTooBig"/>
	  <xs:enumeration value="ErrorCannotCreateCalendarItemInNonCalendarFolder"/>
	  <xs:enumeration value="ErrorCannotCreateContactInNonContactFolder"/>
	  <xs:enumeration value="ErrorCannotCreatePostItemInNonMailFolder"/>
	  <xs:enumeration value="ErrorCannotCreateTaskInNonTaskFolder"/>
	  <xs:enumeration value="ErrorCannotDeleteObject"/>
	  <xs:enumeration value="ErrorCannotOpenFileAttachment"/>
	  <xs:enumeration value="ErrorCannotDeleteTaskOccurrence"/>
	  <xs:enumeration value="ErrorCannotSetCalendarPermissionOnNonCalendarFolder"/>
	  <xs:enumeration value="ErrorCannotSetNonCalendarPermissionOnCalendarFolder"/>
	  <xs:enumeration value="ErrorCannotSetPermissionUnknownEntries"/>
	  <xs:enumeration value="ErrorCannotUseFolderIdForItemId"/>
	  <xs:enumeration value="ErrorCannotUseItemIdForFolderId"/>
	  <xs:enumeration value="ErrorChangeKeyRequired"/>
	  <xs:enumeration value="ErrorChangeKeyRequiredForWriteOperations"/>
	  <xs:enumeration value="ErrorConnectionFailed"/>
	  <xs:enumeration value="ErrorContentConversionFailed"/>
	  <xs:enumeration value="ErrorCorruptData"/>
	  <xs:enumeration value="ErrorCreateItemAccessDenied"/>
	  <xs:enumeration value="ErrorCreateManagedFolderPartialCompletion"/>
	  <xs:enumeration value="ErrorCreateSubfolderAccessDenied"/>
	  <xs:enumeration value="ErrorCrossMailboxMoveCopy"/>
	  <xs:enumeration value="ErrorDataSizeLimitExceeded"/>
	  <xs:enumeration value="ErrorDataSourceOperation"/>
	  <xs:enumeration value="ErrorDelegateAlreadyExists"/>
	  <xs:enumeration value="ErrorDelegateCannotAddOwner"/>
	  <xs:enumeration value="ErrorDelegateMissingConfiguration"/>
	  <xs:enumeration value="ErrorDelegateNoUser"/>
	  <xs:enumeration value="ErrorDelegateValidationFailed"/>
	  <xs:enumeration value="ErrorDeleteDistinguishedFolder"/>
	  <xs:enumeration value="ErrorDeleteItemsFailed"/>
    <xs:enumeration value="ErrorDistinguishedUserNotSupported"/>
    <xs:enumeration value="ErrorDuplicateInputFolderNames"/>
	  <xs:enumeration value="ErrorDuplicateUserIdsSpecified"/>
	  <xs:enumeration value="ErrorEmailAddressMismatch"/>
	  <xs:enumeration value="ErrorEventNotFound"/>
	  <xs:enumeration value="ErrorExpiredSubscription"/>
	  <xs:enumeration value="ErrorFolderCorrupt"/>
	  <xs:enumeration value="ErrorFolderNotFound"/>
	  <xs:enumeration value="ErrorFolderPropertRequestFailed"/>
	  <xs:enumeration value="ErrorFolderSave"/>
	  <xs:enumeration value="ErrorFolderSaveFailed"/>
	  <xs:enumeration value="ErrorFolderSavePropertyError"/>
	  <xs:enumeration value="ErrorFolderExists"/>
	  <xs:enumeration value="ErrorFreeBusyGenerationFailed"/>
	  <xs:enumeration value="ErrorGetServerSecurityDescriptorFailed"/>
	  <xs:enumeration value="ErrorImpersonateUserDenied"/>
	  <xs:enumeration value="ErrorImpersonationDenied"/>
	  <xs:enumeration value="ErrorImpersonationFailed"/>
    <xs:enumeration value="ErrorIncorrectSchemaVersion"/>
	  <xs:enumeration value="ErrorIncorrectUpdatePropertyCount"/>
	  <xs:enumeration value="ErrorIndividualMailboxLimitReached"/>
	  <xs:enumeration value="ErrorInsufficientResources"/>
	  <xs:enumeration value="ErrorInternalServerError"/>
	  <xs:enumeration value="ErrorInternalServerTransientError"/>
	  <xs:enumeration value="ErrorInvalidAccessLevel"/>
	  <xs:enumeration value="ErrorInvalidAttachmentId"/>
	  <xs:enumeration value="ErrorInvalidAttachmentSubfilter"/>
	  <xs:enumeration value="ErrorInvalidAttachmentSubfilterTextFilter"/>
	  <xs:enumeration value="ErrorInvalidAuthorizationContext"/>
	  <xs:enumeration value="ErrorInvalidChangeKey"/>
	  <xs:enumeration value="ErrorInvalidClientSecurityContext"/>
	  <xs:enumeration value="ErrorInvalidCompleteDate"/>
	  <xs:enumeration value="ErrorInvalidCrossForestCredentials"/>
    <xs:enumeration value="ErrorInvalidDelegatePermission"/>
    <xs:enumeration value="ErrorInvalidDelegateUserId"/>
    <xs:enumeration value="ErrorInvalidExcludesRestriction"/>
	  <xs:enumeration value="ErrorInvalidExpressionTypeForSubFilter"/>
	  <xs:enumeration value="ErrorInvalidExtendedProperty"/>
	  <xs:enumeration value="ErrorInvalidExtendedPropertyValue"/>
	  <xs:enumeration value="ErrorInvalidFolderId"/>
	  <xs:enumeration value="ErrorInvalidFolderTypeForOperation"/>
	  <xs:enumeration value="ErrorInvalidFractionalPagingParameters"/>
	  <xs:enumeration value="ErrorInvalidFreeBusyViewType"/>
	  <xs:enumeration value="ErrorInvalidId"/>
	  <xs:enumeration value="ErrorInvalidIdEmpty"/>
	  <xs:enumeration value="ErrorInvalidIdMalformed"/>
    <xs:enumeration value="ErrorInvalidIdMalformedEwsLegacyIdFormat"/>
    <xs:enumeration value="ErrorInvalidIdMonikerTooLong"/>
	  <xs:enumeration value="ErrorInvalidIdNotAnItemAttachmentId"/>
    <xs:enumeration value="ErrorInvalidIdReturnedByResolveNames"/>
	  <xs:enumeration value="ErrorInvalidIdStoreObjectIdTooLong"/>
	  <xs:enumeration value="ErrorInvalidIdTooManyAttachmentLevels"/>
	  <xs:enumeration value="ErrorInvalidIdXml"/>
	  <xs:enumeration value="ErrorInvalidIndexedPagingParameters"/>
	  <xs:enumeration value="ErrorInvalidInternetHeaderChildNodes"/>
	  <xs:enumeration value="ErrorInvalidItemForOperationCreateItemAttachment"/>
	  <xs:enumeration value="ErrorInvalidItemForOperationCreateItem"/>
	  <xs:enumeration value="ErrorInvalidItemForOperationAcceptItem"/>
	  <xs:enumeration value="ErrorInvalidItemForOperationDeclineItem"/>
	  <xs:enumeration value="ErrorInvalidItemForOperationCancelItem"/>
	  <xs:enumeration value="ErrorInvalidItemForOperationExpandDL"/>
	  <xs:enumeration value="ErrorInvalidItemForOperationRemoveItem"/>
	  <xs:enumeration value="ErrorInvalidItemForOperationSendItem"/>
	  <xs:enumeration value="ErrorInvalidItemForOperationTentative"/>
	  <xs:enumeration value="ErrorInvalidManagedFolderProperty"/>
	  <xs:enumeration value="ErrorInvalidManagedFolderQuota"/>
	  <xs:enumeration value="ErrorInvalidManagedFolderSize"/>
	  <xs:enumeration value="ErrorInvalidMergedFreeBusyInterval"/>
	  <xs:enumeration value="ErrorInvalidNameForNameResolution"/>
	  <xs:enumeration value="ErrorInvalidOperation"/>
	  <xs:enumeration value="ErrorInvalidNetworkServiceContext"/>
	  <xs:enumeration value="ErrorInvalidOofParameter"/>
	  <xs:enumeration value="ErrorInvalidPagingMaxRows"/>
	  <xs:enumeration value="ErrorInvalidParentFolder"/>
	  <xs:enumeration value="ErrorInvalidPercentCompleteValue"/>
	  <xs:enumeration value="ErrorInvalidPermissionSettings"/>
	  <xs:enumeration value="ErrorInvalidUserInfo"/>
	  <xs:enumeration value="ErrorInvalidPropertyAppend"/>
	  <xs:enumeration value="ErrorInvalidPropertyDelete"/>
	  <xs:enumeration value="ErrorInvalidPropertyForExists"/>
	  <xs:enumeration value="ErrorInvalidPropertyForOperation"/>
	  <xs:enumeration value="ErrorInvalidPropertyRequest"/>
	  <xs:enumeration value="ErrorInvalidPropertySet"/>
	  <xs:enumeration value="ErrorInvalidPropertyUpdateSentMessage"/>
	  <xs:enumeration value="ErrorInvalidProxySecurityContext"/>
	  <xs:enumeration value="ErrorInvalidPullSubscriptionId"/>
	  <xs:enumeration value="ErrorInvalidPushSubscriptionUrl"/>
	  <xs:enumeration value="ErrorInvalidRecipients"/>
	  <xs:enumeration value="ErrorInvalidRecipientSubfilter"/>
	  <xs:enumeration value="ErrorInvalidRecipientSubfilterComparison"/>
	  <xs:enumeration value="ErrorInvalidRecipientSubfilterOrder"/>
	  <xs:enumeration value="ErrorInvalidRecipientSubfilterTextFilter"/>
	  <xs:enumeration value="ErrorInvalidReferenceItem"/>
	  <xs:enumeration value="ErrorInvalidRequest"/>
	  <xs:enumeration value="ErrorInvalidRestriction"/>
	  <xs:enumeration value="ErrorInvalidRoutingType"/>
	  <xs:enumeration value="ErrorInvalidScheduledOofDuration"/>
	  <xs:enumeration value="ErrorInvalidSecurityDescriptor"/>
	  <xs:enumeration value="ErrorInvalidSendItemSaveSettings"/>
	  <xs:enumeration value="ErrorInvalidSerializedAccessToken"/>
	  <xs:enumeration value="ErrorInvalidServerVersion"/>
	  <xs:enumeration value="ErrorInvalidSid"/>
	  <xs:enumeration value="ErrorInvalidSmtpAddress"/>
	  <xs:enumeration value="ErrorInvalidSubfilterType"/>
	  <xs:enumeration value="ErrorInvalidSubfilterTypeNotAttendeeType"/>
	  <xs:enumeration value="ErrorInvalidSubfilterTypeNotRecipientType"/>
	  <xs:enumeration value="ErrorInvalidSubscription"/>
	  <xs:enumeration value="ErrorInvalidSubscriptionRequest"/>
	  <xs:enumeration value="ErrorInvalidSyncStateData"/>
	  <xs:enumeration value="ErrorInvalidTimeInterval"/>
	  <xs:enumeration value="ErrorInvalidUserOofSettings"/>
	  <xs:enumeration value="ErrorInvalidUserPrincipalName"/>
	  <xs:enumeration value="ErrorInvalidUserSid"/>
	  <xs:enumeration value="ErrorInvalidUserSidMissingUPN"/>
	  <xs:enumeration value="ErrorInvalidValueForProperty"/>
	  <xs:enumeration value="ErrorInvalidWatermark"/>
	  <xs:enumeration value="ErrorIrresolvableConflict"/>
	  <xs:enumeration value="ErrorItemCorrupt"/>
	  <xs:enumeration value="ErrorItemNotFound"/>
	  <xs:enumeration value="ErrorItemPropertyRequestFailed"/>
	  <xs:enumeration value="ErrorItemSave"/>
	  <xs:enumeration value="ErrorItemSavePropertyError"/>
	  <xs:enumeration value="ErrorLegacyMailboxFreeBusyViewTypeNotMerged"/>
	  <xs:enumeration value="ErrorLocalServerObjectNotFound"/>
	  <xs:enumeration value="ErrorLogonAsNetworkServiceFailed"/>
	  <xs:enumeration value="ErrorMailboxConfiguration"/>
	  <xs:enumeration value="ErrorMailboxDataArrayEmpty"/>
	  <xs:enumeration value="ErrorMailboxDataArrayTooBig"/>
	  <xs:enumeration value="ErrorMailboxLogonFailed"/>
	  <xs:enumeration value="ErrorMailboxMoveInProgress"/>
	  <xs:enumeration value="ErrorMailboxStoreUnavailable"/>
	  <xs:enumeration value="ErrorMailRecipientNotFound"/>
	  <xs:enumeration value="ErrorManagedFolderAlreadyExists"/>
	  <xs:enumeration value="ErrorManagedFolderNotFound"/>
	  <xs:enumeration value="ErrorManagedFoldersRootFailure"/>
	  <xs:enumeration value="ErrorMeetingSuggestionGenerationFailed"/>
	  <xs:enumeration value="ErrorMessageDispositionRequired"/>
	  <xs:enumeration value="ErrorMessageSizeExceeded"/>
	  <xs:enumeration value="ErrorMimeContentConversionFailed"/>
	  <xs:enumeration value="ErrorMimeContentInvalid"/>
	  <xs:enumeration value="ErrorMimeContentInvalidBase64String"/>
	  <xs:enumeration value="ErrorMissingArgument"/>
	  <xs:enumeration value="ErrorMissingEmailAddress"/>
	  <xs:enumeration value="ErrorMissingEmailAddressForManagedFolder"/>
	  <xs:enumeration value="ErrorMissingInformationEmailAddress"/>
	  <xs:enumeration value="ErrorMissingInformationReferenceItemId"/>
	  <xs:enumeration value="ErrorMissingItemForCreateItemAttachment"/>
    <xs:enumeration value="ErrorMissingManagedFolderId"/>
	  <xs:enumeration value="ErrorMissingRecipients"/>
		<xs:enumeration value="ErrorMissingUserIdInformation"/>
		<xs:enumeration value="ErrorMoreThanOneAccessModeSpecified"/>
	  <xs:enumeration value="ErrorMoveCopyFailed"/>
	  <xs:enumeration value="ErrorMoveDistinguishedFolder"/>
	  <xs:enumeration value="ErrorNameResolutionMultipleResults"/>
	  <xs:enumeration value="ErrorNameResolutionNoMailbox"/>
	  <xs:enumeration value="ErrorNameResolutionNoResults"/>
	  <xs:enumeration value="ErrorNoCalendar"/>
	  <xs:enumeration value="ErrorNoDestinationCASDueToKerberosRequirements"/>
	  <xs:enumeration value="ErrorNoDestinationCASDueToSSLRequirements"/>
	  <xs:enumeration value="ErrorNoDestinationCASDueToVersionMismatch"/>
	  <xs:enumeration value="ErrorNoFolderClassOverride"/>
	  <xs:enumeration value="ErrorNoFreeBusyAccess"/>
	  <xs:enumeration value="ErrorNonExistentMailbox"/>
	  <xs:enumeration value="ErrorNonPrimarySmtpAddress"/>
	  <xs:enumeration value="ErrorNoPropertyTagForCustomProperties"/>
	  <xs:enumeration value="ErrorNoPublicFolderReplicaAvailable"/>
	  <xs:enumeration value="ErrorNoRespondingCASInDestinationSite"/>
	  <xs:enumeration value="ErrorNotDelegate"/>
	  <xs:enumeration value="ErrorNotEnoughMemory"/>
	  <xs:enumeration value="ErrorObjectTypeChanged"/>
	  <xs:enumeration value="ErrorOccurrenceCrossingBoundary"/>
	  <xs:enumeration value="ErrorOccurrenceTimeSpanTooBig" />
	  <xs:enumeration value="ErrorOperationNotAllowedWithPublicFolderRoot" />
	  <xs:enumeration value="ErrorParentFolderIdRequired"/>
	  <xs:enumeration value="ErrorParentFolderNotFound"/>
	  <xs:enumeration value="ErrorPasswordChangeRequired"/>
	  <xs:enumeration value="ErrorPasswordExpired"/>
	  <xs:enumeration value="ErrorPropertyUpdate"/>
	  <xs:enumeration value="ErrorPropertyValidationFailure"/>
	  <xs:enumeration value="ErrorProxiedSubscriptionCallFailure"/>
	  <xs:enumeration value="ErrorProxyCallFailed"/>
	  <xs:enumeration value="ErrorProxyGroupSidLimitExceeded"/>
	  <xs:enumeration value="ErrorProxyRequestNotAllowed"/>
	  <xs:enumeration value="ErrorProxyRequestProcessingFailed"/>
	  <xs:enumeration value="ErrorProxyTokenExpired"/>
	  <xs:enumeration value="ErrorPublicFolderRequestProcessingFailed"/>
	  <xs:enumeration value="ErrorPublicFolderServerNotFound"/>
	  <xs:enumeration value="ErrorQueryFilterTooLong"/>
	  <xs:enumeration value="ErrorQuotaExceeded"/>
	  <xs:enumeration value="ErrorReadEventsFailed"/>
	  <xs:enumeration value="ErrorReadReceiptNotPending"/>
	  <xs:enumeration value="ErrorRecurrenceEndDateTooBig"/>
	  <xs:enumeration value="ErrorRecurrenceHasNoOccurrence"/>
	  <xs:enumeration value="ErrorRemoveDelegatesFailed"/>
	  <xs:enumeration value="ErrorRequestAborted"/>
	  <xs:enumeration value="ErrorRequestStreamTooBig"/>
	  <xs:enumeration value="ErrorRequiredPropertyMissing"/>
	  <xs:enumeration value="ErrorResolveNamesInvalidFolderType"/>
	  <xs:enumeration value="ErrorResolveNamesOnlyOneContactsFolderAllowed"/>
	  <xs:enumeration value="ErrorResponseSchemaValidation"/>
	  <xs:enumeration value="ErrorRestrictionTooLong"/>
	  <xs:enumeration value="ErrorRestrictionTooComplex"/>
	  <xs:enumeration value="ErrorResultSetTooBig"/>
	  <xs:enumeration value="ErrorInvalidExchangeImpersonationHeaderData"/>
	  <xs:enumeration value="ErrorSavedItemFolderNotFound"/>
	  <xs:enumeration value="ErrorSchemaValidation"/>
	  <xs:enumeration value="ErrorSearchFolderNotInitialized"/>
	  <xs:enumeration value="ErrorSendAsDenied"/>
	  <xs:enumeration value="ErrorSendMeetingCancellationsRequired"/>
	  <xs:enumeration value="ErrorSendMeetingInvitationsOrCancellationsRequired"/>
	  <xs:enumeration value="ErrorSendMeetingInvitationsRequired"/>
	  <xs:enumeration value="ErrorSentMeetingRequestUpdate"/>
	  <xs:enumeration value="ErrorSentTaskRequestUpdate"/>
	  <xs:enumeration value="ErrorServerBusy"/>
	  <xs:enumeration value="ErrorServiceDiscoveryFailed"/>
	  <xs:enumeration value="ErrorStaleObject"/>
	  <xs:enumeration value="ErrorSubscriptionAccessDenied"/>
	  <xs:enumeration value="ErrorSubscriptionDelegateAccessNotSupported"/>
	  <xs:enumeration value="ErrorSubscriptionNotFound"/>
	  <xs:enumeration value="ErrorSyncFolderNotFound"/>
	  <xs:enumeration value="ErrorTimeIntervalTooBig"/>
	  <xs:enumeration value="ErrorTimeoutExpired"/>
	  <xs:enumeration value="ErrorToFolderNotFound"/>
	  <xs:enumeration value="ErrorTokenSerializationDenied"/>
	  <xs:enumeration value="ErrorUpdatePropertyMismatch"/>
	  <xs:enumeration value="ErrorUnableToGetUserOofSettings"/>
	  <xs:enumeration value="ErrorUnsupportedSubFilter"/>
	  <xs:enumeration value="ErrorUnsupportedCulture"/>
	  <xs:enumeration value="ErrorUnsupportedMapiPropertyType"/>
	  <xs:enumeration value="ErrorUnsupportedMimeConversion"/>
	  <xs:enumeration value="ErrorUnsupportedPathForQuery"/>
	  <xs:enumeration value="ErrorUnsupportedPathForSortGroup"/>
	  <xs:enumeration value="ErrorUnsupportedPropertyDefinition"/>
	  <xs:enumeration value="ErrorUnsupportedQueryFilter"/>
	  <xs:enumeration value="ErrorUnsupportedRecurrence"/>
	  <xs:enumeration value="ErrorUnsupportedTypeForConversion"/>
	  <xs:enumeration value="ErrorUpdateDelegatesFailed"/>
	  <xs:enumeration value="ErrorVoiceMailNotImplemented"/>
	  <xs:enumeration value="ErrorVirusDetected"/>
	  <xs:enumeration value="ErrorVirusMessageDeleted"/>
	  <xs:enumeration value="ErrorWebRequestInInvalidState"/>
	  <xs:enumeration value="ErrorWin32InteropError"/>
	  <xs:enumeration value="ErrorWorkingHoursSaveFailed"/>
	  <xs:enumeration value="ErrorWorkingHoursXmlMalformed"/>
	</xs:restriction>
  </xs:simpleType>

  <xs:complexType name="ResponseMessageType">
    <xs:sequence minOccurs="0">
      <xs:element name="MessageText" type="xs:string" minOccurs="0"/>
      <xs:element name="ResponseCode" type="m:ResponseCodeType" minOccurs="0"/>
      <xs:element name="DescriptiveLinkKey" type="xs:int" minOccurs="0"/>
      <xs:element name="MessageXml" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="ResponseClass" type="t:ResponseClassType" use="required"/>
  </xs:complexType>
  <xs:complexType name="ArrayOfResponseMessagesType">
    <xs:choice maxOccurs="unbounded">
      <xs:element name="CreateItemResponseMessage" type="m:ItemInfoResponseMessageType"/>
      <xs:element name="DeleteItemResponseMessage" type="m:ResponseMessageType"/>
      <xs:element name="GetItemResponseMessage" type="m:ItemInfoResponseMessageType"/>
      <xs:element name="UpdateItemResponseMessage" type="m:UpdateItemResponseMessageType"/>
      <xs:element name="SendItemResponseMessage" type="m:ResponseMessageType"/>
      <xs:element name="DeleteFolderResponseMessage" type="m:ResponseMessageType"/>
      <xs:element name="CreateFolderResponseMessage" type="m:FolderInfoResponseMessageType"/>
      <xs:element name="GetFolderResponseMessage" type="m:FolderInfoResponseMessageType"/>
      <xs:element name="FindFolderResponseMessage" type="m:FindFolderResponseMessageType"/>
      <xs:element name="UpdateFolderResponseMessage" type="m:FolderInfoResponseMessageType"/>
      <xs:element name="MoveFolderResponseMessage" type="m:FolderInfoResponseMessageType"/>
      <xs:element name="CopyFolderResponseMessage" type="m:FolderInfoResponseMessageType"/>
      <xs:element name="CreateAttachmentResponseMessage" type="m:AttachmentInfoResponseMessageType"/>
      <xs:element name="DeleteAttachmentResponseMessage" type="m:DeleteAttachmentResponseMessageType"/>
      <xs:element name="GetAttachmentResponseMessage" type="m:AttachmentInfoResponseMessageType"/>
      <!-- Generic reponse to enumerating the items below a folder -->
      <xs:element name="FindItemResponseMessage" type="m:FindItemResponseMessageType"/>
      <xs:element name="MoveItemResponseMessage" type="m:ItemInfoResponseMessageType"/>
      <xs:element name="CopyItemResponseMessage" type="m:ItemInfoResponseMessageType"/>
      <!-- ANR responses -->
      <xs:element name="ResolveNamesResponseMessage" type="m:ResolveNamesResponseMessageType"/>
      <xs:element name="ExpandDLResponseMessage" type="m:ExpandDLResponseMessageType"/>
      <!-- Notification responses -->
      <xs:element name="GetEventsResponseMessage" type="m:GetEventsResponseMessageType"/>
      <xs:element name="SubscribeResponseMessage" type="m:SubscribeResponseMessageType"/>
      <xs:element name="UnsubscribeResponseMessage" type="m:ResponseMessageType"/>
      <!-- Send Notification response -->
      <xs:element name="SendNotificationResponseMessage" type="m:SendNotificationResponseMessageType" />
      <!-- Sync responses -->
      <xs:element name="SyncFolderHierarchyResponseMessage" type="m:SyncFolderHierarchyResponseMessageType"/>
      <xs:element name="SyncFolderItemsResponseMessage" type="m:SyncFolderItemsResponseMessageType"/>
      <!-- Managed Folder responses -->
      <xs:element name="CreateManagedFolderResponseMessage" type="m:FolderInfoResponseMessageType"/>
		<!-- ConvertId response-->
		<xs:element name="ConvertIdResponseMessage" type="m:ConvertIdResponseMessageType"/>
    </xs:choice>
  </xs:complexType>
	 
  <!-- Base types for all messages. -->
  <xs:complexType name="BaseResponseMessageType">
    <xs:sequence>
      <xs:element name="ResponseMessages" type="m:ArrayOfResponseMessagesType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="BaseRequestType" abstract="true"/>
  <!-- Folder Service messages. -->
  <xs:complexType name="GetFolderType">
    <xs:complexContent>
      <xs:extension base="m:BaseRequestType">
        <xs:sequence>
          <xs:element name="FolderShape" type="t:FolderResponseShapeType"/>
          <xs:element name="FolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="GetFolder" type="m:GetFolderType"/>
  <!-- Creating a folder. -->
  <xs:complexType name="CreateFolderType">
    <xs:complexContent>
      <xs:extension base="m:BaseRequestType">
        <xs:sequence>
          <xs:element name="ParentFolderId" type="t:TargetFolderIdType"/>
          <xs:element name="Folders" type="t:NonEmptyArrayOfFoldersType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="CreateFolder" type="m:CreateFolderType"/>
  <!-- Enumerate folders beneath the elements of a list of folders (Reading, 1) -->
  <xs:complexType name="FindFolderType">
    <xs:complexContent>
      <xs:extension base="m:BaseRequestType">
        <xs:sequence>
          <xs:element name="FolderShape" type="t:FolderResponseShapeType"/>
          <xs:choice maxOccurs="1" minOccurs="0">
            <xs:element name="IndexedPageFolderView" type="t:IndexedPageViewType"/>
            <xs:element name="FractionalPageFolderView" type="t:FractionalPageViewType"/>
          </xs:choice>
          <xs:element name="Restriction" type="t:RestrictionType" minOccurs="0"/>
          <xs:element name="ParentFolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType"/>
        </xs:sequence>
        <xs:attribute name="Traversal" type="t:FolderQueryTraversalType" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="FindFolder" type="m:FindFolderType"/>
  <!-- Generic response to reading a folder's properties.  -->
  <xs:complexType name="FolderInfoResponseMessageType">
    <xs:complexContent>
      <xs:extension base="m:ResponseMessageType">
        <xs:sequence>
          <xs:element name="Folders" type="t:ArrayOfFoldersType" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- FindFolder response type-->
  <xs:complexType name="FindFolderResponseMessageType">
    <xs:complexContent>
      <xs:extension base="m:ResponseMessageType">
        <xs:sequence>
          <xs:element name="RootFolder" type="t:FindFolderParentType" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="FindFolderResponseType">
    <xs:complexContent>
      <xs:extension base="m:BaseResponseMessageType"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="FindFolderResponse" type="m:FindFolderResponseType"/>
  <!-- Deleting an folder.  -->
  <xs:complexType name="DeleteFolderType">
    <xs:complexContent>
      <xs:extension base="m:BaseRequestType">
        <xs:sequence>
          <xs:element name="FolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType"/>
        </xs:sequence>
        <xs:attribute name="DeleteType" type="t:DisposalType" use="required"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="DeleteFolder" type="m:DeleteFolderType"/>
  <xs:complexType name="DeleteFolderResponseType">
    <xs:complexContent>
      <xs:extension base="m:BaseResponseMessageType"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="DeleteFolderResponse" type="m:DeleteFolderResponseType"/>
  <!-- Base for Move/Copy folders -->
  <xs:complexType name="BaseMoveCopyFolderType">
    <xs:complexContent>
      <xs:extension base="m:BaseRequestType">
        <xs:sequence>
          <xs:element name="ToFolderId" type="t:TargetFolderIdType"/>
          <xs:element name="FolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <!-- Move folders -->
  <xs:complexType name="MoveFolderType">
    <xs:complexContent>
      <xs:extension base="m:BaseMoveCopyFolderType"/>
    </xs:complexContent>
  </xs:complexType>
  <!-- Copy folders -->
  <xs:complexType name="CopyFolderType">
    <xs:complexContent>
      <xs:extension base="m:BaseMoveCopyFolderType"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="MoveFolder" type="m:MoveFolderType"/>
  <xs:element name="CopyFolder" type="m:CopyFolderType"/>
  <xs:complexType name="UpdateFolderType">
    <xs:complexContent>
      <xs:extension base="m:BaseRequestType">
        <xs:sequence>
          <xs:element name="FolderChanges" type="t:NonEmptyArrayOfFolderChangesType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="UpdateFolder" type="m:UpdateFolderType"/>
  <xs:complexType name="CreateFolderResponseType">
    <xs:complexContent>
      <xs:extension base="m:BaseResponseMessageType"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="CreateFolderResponse" type="m:CreateFolderResponseType"/>
  <xs:complexType name="GetFolderResponseType">
    <xs:complexContent>
      <xs:extension base="m:BaseResponseMessageType"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="GetFolderResponse" type="m:GetFolderResponseType"/>
  <xs:complexType name="UpdateFolderResponseType">
    <xs:complexContent>
      <xs:extension base="m:BaseResponseMessageType"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="UpdateFolderResponse" type="m:UpdateFolderResponseType"/>
  <xs:complexType name="MoveFolderResponseType">
    <xs:complexContent>
      <xs:extension base="m:BaseResponseMessageType"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="CopyFolderResponseType">
    <xs:complexContent>
      <xs:extension base="m:BaseResponseMessageType"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="MoveFolderResponse" type="m:MoveFolderResponseType"/>
  <xs:element name="CopyFolderResponse" type="m:CopyFolderResponseType"/>

	<!-- Reading an item.  -->

	<xs:complexType name="GetItemType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="ItemShape" type="t:ItemResponseShapeType"/>
					<xs:element name="ItemIds" type="t:NonEmptyArrayOfBaseItemIdsType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="GetItem" type="m:GetItemType"/>

	<xs:complexType name="CreateItemType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="SavedItemFolderId" type="t:TargetFolderIdType" minOccurs="0"/>
					<xs:element name="Items" type="t:NonEmptyArrayOfAllItemsType"/>
				</xs:sequence>
				<xs:attribute name="MessageDisposition" type="t:MessageDispositionType" use="optional"/>
				<xs:attribute name="SendMeetingInvitations" type="t:CalendarItemCreateOrDeleteOperationType" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="CreateItem" type="m:CreateItemType"/>

	<xs:complexType name="UpdateItemType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="SavedItemFolderId" type="t:TargetFolderIdType" minOccurs="0"/>
					<xs:element name="ItemChanges" type="t:NonEmptyArrayOfItemChangesType"/>
				</xs:sequence>
				<xs:attribute name="ConflictResolution" type="t:ConflictResolutionType" use="required"/>
				<xs:attribute name="MessageDisposition" type="t:MessageDispositionType"  use="optional"/>
				<xs:attribute name="SendMeetingInvitationsOrCancellations" type="t:CalendarItemUpdateOperationType"  use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="UpdateItem" type="m:UpdateItemType"/>

	<xs:complexType name="ItemInfoResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
					<xs:element name="Items" type="t:ArrayOfRealItemsType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

  <xs:complexType name="UpdateItemResponseMessageType">
    <xs:complexContent>
      <xs:extension base="m:ItemInfoResponseMessageType">
        <xs:sequence>
          <xs:element name="ConflictResults" type="t:ConflictResultsType" minOccurs="0"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- Deleting an item.  -->

	<xs:complexType name="DeleteItemType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="ItemIds" type="t:NonEmptyArrayOfBaseItemIdsType"/>
				</xs:sequence>
				<xs:attribute name="DeleteType" type="t:DisposalType" use="required" />
				<xs:attribute name="SendMeetingCancellations" type="t:CalendarItemCreateOrDeleteOperationType" use="optional"/>
				<xs:attribute name="AffectedTaskOccurrences" type="t:AffectedTaskOccurrencesType" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="DeleteItem" type="m:DeleteItemType"/>

	<!-- Attachment info response message -->

	<xs:complexType name="AttachmentInfoResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
					<xs:element name="Attachments" type="t:ArrayOfAttachmentsType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<!-- Delete attachment response message -->

	<xs:complexType name="DeleteAttachmentResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
					<xs:element name="RootItemId" type="t:RootItemIdType" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

  <!-- Base for Move/Copy items between folders -->

	<xs:complexType name="BaseMoveCopyItemType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="ToFolderId" type="t:TargetFolderIdType"/>
					<xs:element name="ItemIds" type="t:NonEmptyArrayOfBaseItemIdsType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- Move items between folders -->
	<xs:complexType name="MoveItemType">
		<xs:complexContent>
			<xs:extension base="m:BaseMoveCopyItemType"/>
		</xs:complexContent>
	</xs:complexType>
	<!-- Copy items between folders -->
	<xs:complexType name="CopyItemType">
		<xs:complexContent>
			<xs:extension base="m:BaseMoveCopyItemType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="MoveItem" type="m:MoveItemType"/>
	<xs:element name="CopyItem" type="m:CopyItemType"/>
	<!-- Send an email or post a note to a folder. -->
	<xs:complexType name="SendItemType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="ItemIds" type="t:NonEmptyArrayOfBaseItemIdsType"/>
					<xs:element name="SavedItemFolderId" type="t:TargetFolderIdType" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="SaveItemToFolder" type="xs:boolean" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SendItem" type="m:SendItemType"/>
	<!-- Response to a command to send or post an item -->
	<xs:complexType name="SendItemResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SendItemResponse" type="m:SendItemResponseType"/>

	<!-- Enumerate items in a list of folders (Reading, 2) -->
	<xs:complexType name="FindItemType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="ItemShape" type="t:ItemResponseShapeType"/>
					<xs:choice minOccurs="0">
						<xs:element name="IndexedPageItemView" type="t:IndexedPageViewType"/>
						<xs:element name="FractionalPageItemView" type="t:FractionalPageViewType"/>
						<xs:element name="CalendarView" type="t:CalendarViewType"/>
						<xs:element name="ContactsView" type="t:ContactsViewType"/>
					</xs:choice>
					<xs:choice minOccurs="0">
						<xs:element name="GroupBy" type="t:GroupByType"/>
						<xs:element name="DistinguishedGroupBy" type="t:DistinguishedGroupByType"/>
					</xs:choice>
					<xs:element name="Restriction" type="t:RestrictionType" minOccurs="0"/>
					<xs:element name="SortOrder" type="t:NonEmptyArrayOfFieldOrdersType" minOccurs="0"/>
					<xs:element name="ParentFolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType"/>
				</xs:sequence>
				<xs:attribute name="Traversal" type="t:ItemQueryTraversalType" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="FindItem" type="m:FindItemType"/>

	<!-- Creating attachments -->
	<xs:complexType name="CreateAttachmentType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="ParentItemId" type="t:ItemIdType" minOccurs="1" />
					<xs:element name="Attachments" type="t:NonEmptyArrayOfAttachmentsType" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CreateAttachment" type="m:CreateAttachmentType" />
	<xs:complexType name="CreateAttachmentResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CreateAttachmentResponse" type="m:CreateAttachmentResponseType"/>

	<!-- Deleting attachments -->
	<xs:complexType name="DeleteAttachmentType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="AttachmentIds" type="t:NonEmptyArrayOfRequestAttachmentIdsType" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="DeleteAttachment" type="m:DeleteAttachmentType" />
	<xs:complexType name="DeleteAttachmentResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="DeleteAttachmentResponse" type="m:DeleteAttachmentResponseType"/>

	<!-- Accessing attachments -->
	<xs:complexType name="GetAttachmentType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="AttachmentShape" type="t:AttachmentResponseShapeType" minOccurs="0"/>
					<xs:element name="AttachmentIds" type="t:NonEmptyArrayOfRequestAttachmentIdsType" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="GetAttachment" type="m:GetAttachmentType" />
	<xs:complexType name="GetAttachmentResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="GetAttachmentResponse" type="m:GetAttachmentResponseType"/>

	<xs:complexType name="CreateItemResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CreateItemResponse" type="m:CreateItemResponseType"/>
	<xs:complexType name="UpdateItemResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="UpdateItemResponse" type="m:UpdateItemResponseType"/>
	<xs:complexType name="GetItemResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="GetItemResponse" type="m:GetItemResponseType"/>
	<xs:complexType name="MoveItemResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="CopyItemResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="MoveItemResponse" type="m:MoveItemResponseType"/>
	<xs:element name="CopyItemResponse" type="m:CopyItemResponseType"/>
	<xs:complexType name="DeleteItemResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="DeleteItemResponse" type="m:DeleteItemResponseType"/>
	<!-- FindItem response type-->
	<xs:complexType name="FindItemResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
					<xs:element name="RootFolder" type="t:FindItemParentType" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="FindItemResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="FindItemResponse" type="m:FindItemResponseType"/>

	<!-- Util Service messages -->
	<!-- ResolveNames request -->

	<xs:complexType name="ResolveNamesType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="ParentFolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType" minOccurs="0"/>
					<xs:element name="UnresolvedEntry" type="t:NonEmptyStringType" />
				</xs:sequence>
				<xs:attribute name="ReturnFullContactData" type="xs:boolean" use="required" />
				<xs:attribute name="SearchScope" type="t:ResolveNamesSearchScopeType" default="ActiveDirectoryContacts" />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="ResolveNames" type="m:ResolveNamesType"/>

	<!-- ResolveNames response -->

	<xs:complexType name="ResolveNamesResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
					<xs:element name="ResolutionSet" type="t:ArrayOfResolutionType" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="ResolveNamesResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="ResolveNamesResponse" type="m:ResolveNamesResponseType"/>

	<!-- ExpandDL request -->

	<xs:complexType name="ExpandDLType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="Mailbox" type="t:EmailAddressType"  />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="ExpandDL" type="m:ExpandDLType"/>

	<!-- ExpandDL response -->

	<xs:complexType name="ExpandDLResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
					<xs:element name="DLExpansion" type="t:ArrayOfDLExpansionType" minOccurs="0"/>
				</xs:sequence>
				<xs:attributeGroup ref="t:FindResponsePagingAttributes" />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="ExpandDLResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="ExpandDLResponse" type="m:ExpandDLResponseType"/>

	<!-- CreateManagedFolder request type. -->
	<xs:complexType name="CreateManagedFolderRequestType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="FolderNames" type="t:NonEmptyArrayOfFolderNamesType"/>
					<xs:element name="Mailbox" type="t:EmailAddressType" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CreateManagedFolder" type="m:CreateManagedFolderRequestType"/>
	<!-- CreateManagedFolder response type. -->
	<xs:complexType name="CreateManagedFolderResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType" />
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CreateManagedFolderResponse" type="m:CreateManagedFolderResponseType"/>
	<!-- Subscribe request -->
	<xs:complexType name="SubscribeType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:choice>
					<xs:element name="PullSubscriptionRequest" type="t:PullSubscriptionRequestType"/>
					<xs:element name="PushSubscriptionRequest" type="t:PushSubscriptionRequestType"/>
				</xs:choice>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="Subscribe" type="m:SubscribeType"/>
	<!-- Subscribe response -->
	<xs:complexType name="SubscribeResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
					<xs:element name="SubscriptionId" type="t:SubscriptionIdType"  minOccurs="0"/>
					<xs:element name="Watermark" type="t:WatermarkType"  minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SubscribeResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="SubscribeResponse" type="m:SubscribeResponseType"/>
	<!-- Unsubscribe request -->
	<xs:complexType name="UnsubscribeType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="SubscriptionId" type="t:SubscriptionIdType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="Unsubscribe" type="m:UnsubscribeType"/>
	<!-- Unsubscribe response -->
	<xs:complexType name="UnsubscribeResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="UnsubscribeResponse" type="m:UnsubscribeResponseType"/>
	<!-- GetEvents request -->
	<xs:complexType name="GetEventsType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="SubscriptionId" type="t:SubscriptionIdType"/>
					<xs:element name="Watermark" type="t:WatermarkType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="GetEvents" type="m:GetEventsType"/>
	<!-- GetEvents response -->
	<xs:complexType name="GetEventsResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
					<xs:element name="Notification" type="t:NotificationType"  minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="GetEventsResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="GetEventsResponse" type="m:GetEventsResponseType"/>

	<!-- SendNotification request -->
	<xs:complexType name="SendNotificationResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
					<xs:element name="Notification" type="t:NotificationType" minOccurs="1"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="SendNotificationResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SendNotification" type="m:SendNotificationResponseType"/>

	<!-- SendNotification response -->
	<xs:complexType name="SendNotificationResultType">
		<xs:sequence>
			<xs:element name="SubscriptionStatus" type="t:SubscriptionStatusType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SendNotificationResult" type="m:SendNotificationResultType"/>

	<!-- Sync Service messages. -->
	<xs:complexType name="SyncFolderHierarchyType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="FolderShape" type="t:FolderResponseShapeType" minOccurs="1"/>
					<xs:element name="SyncFolderId" type="t:TargetFolderIdType" minOccurs="0" />
					<xs:element name="SyncState" type="xs:string" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SyncFolderHierarchy" type="m:SyncFolderHierarchyType"/>

	<xs:complexType name="SyncFolderHierarchyResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
					<xs:element name="SyncState" type="xs:string"  minOccurs="0"/>
					<xs:element name="IncludesLastFolderInRange" type="xs:boolean" minOccurs="0"/>
					<xs:element name="Changes" type="t:SyncFolderHierarchyChangesType"  minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SyncFolderHierarchyResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SyncFolderHierarchyResponse" type="m:SyncFolderHierarchyResponseType"/>

	<xs:complexType name="SyncFolderItemsType">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="ItemShape" type="t:ItemResponseShapeType" minOccurs="1"/>
					<xs:element name="SyncFolderId" type="t:TargetFolderIdType" minOccurs="1"/>
					<xs:element name="SyncState" type="xs:string" minOccurs="0"/>
					<xs:element name="Ignore" type="t:ArrayOfBaseItemIdsType" minOccurs="0"/>
					<xs:element name="MaxChangesReturned" type="t:MaxSyncChangesReturnedType" minOccurs="1"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SyncFolderItems" type="m:SyncFolderItemsType"/>

	<xs:complexType name="SyncFolderItemsResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
					<xs:element name="SyncState" type="xs:string"  minOccurs="0"/>
					<xs:element name="IncludesLastItemInRange" type="xs:boolean" minOccurs="0"/>
					<xs:element name="Changes" type="t:SyncFolderItemsChangesType"  minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SyncFolderItemsResponseType">
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SyncFolderItemsResponse" type="m:SyncFolderItemsResponseType"/>

	<!-- Availability Service message definitions -->

	<!-- GetUserAvailabilityRequest -->

	<xs:complexType name="GetUserAvailabilityRequestType">
		<xs:complexContent mixed="false">
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element ref="t:TimeZone" />
					<xs:element name="MailboxDataArray" type="t:ArrayOfMailboxData" />
					<xs:element minOccurs="0" maxOccurs="1" ref="t:FreeBusyViewOptions" />
					<xs:element minOccurs="0" maxOccurs="1" ref="t:SuggestionsViewOptions" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="GetUserAvailabilityRequest" type="m:GetUserAvailabilityRequestType" />

	<!-- FreeBusyResponse -->

	<xs:complexType name="FreeBusyResponseType">
		<xs:sequence>
			<xs:element minOccurs="0" maxOccurs="1" name="ResponseMessage" type="m:ResponseMessageType" />
			<xs:element minOccurs="0" maxOccurs="1" name="FreeBusyView" type="t:FreeBusyView" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="ArrayOfFreeBusyResponse">
		<xs:sequence>
			<xs:element minOccurs="0" maxOccurs="unbounded" name="FreeBusyResponse" type="m:FreeBusyResponseType" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="SuggestionsResponseType">
		<xs:sequence>
			<xs:element minOccurs="0" maxOccurs="1" name="ResponseMessage" type="m:ResponseMessageType" />
			<xs:element minOccurs="0" maxOccurs="1" name="SuggestionDayResultArray" type="t:ArrayOfSuggestionDayResult" />
		</xs:sequence>
	</xs:complexType>

	<!-- GetUserAvailabilityResponse -->

	<xs:complexType name="GetUserAvailabilityResponseType">
		<xs:sequence>
			<xs:element minOccurs="0" maxOccurs="1" name="FreeBusyResponseArray" type="m:ArrayOfFreeBusyResponse" />
			<xs:element minOccurs="0" maxOccurs="1" name="SuggestionsResponse" type="m:SuggestionsResponseType" />
		</xs:sequence>
	</xs:complexType>

	<xs:element name="GetUserAvailabilityResponse" type="m:GetUserAvailabilityResponseType" />

	<!-- GetUserOofSettingsRequest -->

	<xs:complexType name="GetUserOofSettingsRequest">
		<xs:complexContent mixed="false">
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element minOccurs="1" maxOccurs="1" ref="t:Mailbox" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="GetUserOofSettingsRequest" type="tns:GetUserOofSettingsRequest" />

	<!-- GetUserOofSettingsResponse -->

	<xs:complexType name="GetUserOofSettingsResponse">
		<xs:sequence>
			<xs:element minOccurs="1" maxOccurs="1" name="ResponseMessage" type="m:ResponseMessageType" />
			<xs:element minOccurs="0" maxOccurs="1" ref="t:OofSettings" />
			<xs:element minOccurs="0" maxOccurs="1" name="AllowExternalOof" type="t:ExternalAudience" />
		</xs:sequence>
	</xs:complexType>

	<xs:element name="GetUserOofSettingsResponse" type="tns:GetUserOofSettingsResponse" />

	<!-- SetUserOofSettingsRequest -->

	<xs:complexType name="SetUserOofSettingsRequest">
		<xs:complexContent mixed="false">
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element minOccurs="1" maxOccurs="1" ref="t:Mailbox" />
					<xs:element minOccurs="1" maxOccurs="1" ref="t:UserOofSettings" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="SetUserOofSettingsRequest" type="tns:SetUserOofSettingsRequest" />

	<!-- SetUserOofSettingsResponse -->

	<xs:complexType name="SetUserOofSettingsResponse">
		<xs:sequence>
			<xs:element minOccurs="0" maxOccurs="1" name="ResponseMessage" type="m:ResponseMessageType" />
		</xs:sequence>
	</xs:complexType>

	<xs:element name="SetUserOofSettingsResponse" type="tns:SetUserOofSettingsResponse" />

	<!-- ConvertId web method and response -->
	<xs:complexType name="ConvertIdType">
		<xs:annotation>
			<xs:documentation>
				Converts the passed source ids into the destination format.  Change keys are not
				returned.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="SourceIds" type="t:NonEmptyArrayOfAlternateIdsType" minOccurs ="1" maxOccurs="1"/>
				</xs:sequence>
				<xs:attribute name="DestinationFormat" type="t:IdFormatType" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ConvertId" type="m:ConvertIdType"/>

	<xs:complexType name="ConvertIdResponseType">
		<xs:annotation>
			<xs:documentation>Response type for the ConvertId web method</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="m:BaseResponseMessageType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ConvertIdResponse" type="m:ConvertIdResponseType"/>

	<xs:complexType name="ConvertIdResponseMessageType">
		<xs:annotation>
			<xs:documentation>
				Response Message for a single id conversion in the ConvertId web method.  Note
				that the AlternateId element will be missing in the case of an error.
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
          <xs:element name="AlternateId" type="t:AlternateIdBaseType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<!-- GetDelegate web method and response -->
	<xs:complexType name="GetDelegateType">
		<xs:complexContent>
			<xs:extension base="m:BaseDelegateType">
				<xs:sequence>
					<xs:element	 name="UserIds"  type="t:ArrayOfUserIdType" minOccurs="0" maxOccurs="1" />
				</xs:sequence>
				<xs:attribute name="IncludePermissions" type="xs:boolean" use="required" />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="GetDelegate" type="m:GetDelegateType"/>

	<xs:complexType name="GetDelegateResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:BaseDelegateResponseMessageType">
				<xs:sequence>
					<xs:element name="DeliverMeetingRequests" type="t:DeliverMeetingRequestsType" minOccurs="0" maxOccurs="1" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="ArrayOfDelegateUserResponseMessageType">
		<xs:sequence>
			<xs:element name="DelegateUserResponseMessageType" type="m:DelegateUserResponseMessageType" minOccurs="1" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="DelegateUserResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
					<xs:element name="DelegateUser" type="t:DelegateUserType" minOccurs="0" maxOccurs="1"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="GetDelegateResponse" type="m:GetDelegateResponseMessageType"/>

	<!-- AddDelegate web method and response -->
	<xs:complexType name="AddDelegateType">
		<xs:complexContent>
			<xs:extension base="m:BaseDelegateType">
				<xs:sequence>
					<xs:element name="DelegateUsers" type="t:ArrayOfDelegateUserType" />
					<xs:element name="DeliverMeetingRequests" type="t:DeliverMeetingRequestsType" minOccurs="0" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="AddDelegate" type="m:AddDelegateType"/>

	<!-- AddDelegate response -->
	<xs:complexType name="BaseDelegateResponseMessageType" abstract="true">
		<xs:complexContent>
			<xs:extension base="m:ResponseMessageType">
				<xs:sequence>
					<xs:element name="ResponseMessages" type="m:ArrayOfDelegateUserResponseMessageType" minOccurs="0" maxOccurs="1"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="BaseDelegateType" abstract="true">
		<xs:complexContent>
			<xs:extension base="m:BaseRequestType">
				<xs:sequence>
					<xs:element name="Mailbox" type="t:EmailAddressType" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="AddDelegateResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:BaseDelegateResponseMessageType" />
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="AddDelegateResponse" type="m:AddDelegateResponseMessageType"/>

	<!-- RemoveDelegate request -->
	<xs:complexType name="RemoveDelegateType">
		<xs:complexContent>
			<xs:extension base="m:BaseDelegateType">
				<xs:sequence>
					<xs:element	 name="UserIds"  type="t:ArrayOfUserIdType" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="RemoveDelegate" type="m:RemoveDelegateType"/>

	<!-- RemoveDelegate response -->
	<xs:complexType name="RemoveDelegateResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:BaseDelegateResponseMessageType" />
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="RemoveDelegateResponse" type="m:RemoveDelegateResponseMessageType"/>

	<!-- UpdateDelegate request -->
	<xs:complexType name="UpdateDelegateType">
		<xs:complexContent>
			<xs:extension base="m:BaseDelegateType">
				<xs:sequence>
					<xs:element name="DelegateUsers" type="t:ArrayOfDelegateUserType" minOccurs="0" />
					<xs:element name="DeliverMeetingRequests" type="t:DeliverMeetingRequestsType" minOccurs="0" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="UpdateDelegate" type="m:UpdateDelegateType"/>

	<!-- UpdateDelegate response -->
	<xs:complexType name="UpdateDelegateResponseMessageType">
		<xs:complexContent>
			<xs:extension base="m:BaseDelegateResponseMessageType" />
		</xs:complexContent>
	</xs:complexType>


	<xs:element name="UpdateDelegateResponse" type="m:UpdateDelegateResponseMessageType"/>
</xs:schema>