[Bedework-commit] bwxml r7 - in trunk: . exchangews exchangews/gensrc exchangews/wsdlbindings

svnadmin at bedework.org svnadmin at bedework.org
Tue Feb 22 13:27:44 EST 2011


Author: douglm
Date: 2011-02-22 13:27:42 -0500 (Tue, 22 Feb 2011)
New Revision: 7

Modified:
   trunk/.classpath
   trunk/build.properties
   trunk/build.xml
   trunk/exchangews/Services.wsdl
   trunk/exchangews/gensrc/
   trunk/exchangews/messages.xsd
   trunk/exchangews/types.xsd
   trunk/exchangews/wsdlbindings/custom-binding.xml
Log:
Changes to introduce bwxml project - all xml schemas now located in this project built separately.

Other projects with a dependency now build this project.

Also fixed a few java warnings that surfaced from the noise.

Added an updateall action to bw

Modified: trunk/.classpath
===================================================================
--- trunk/.classpath	2011-02-22 17:03:44 UTC (rev 6)
+++ trunk/.classpath	2011-02-22 18:27:42 UTC (rev 7)
@@ -1,21 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" path="exsynchws/gensrc/src"/>
+	<classpathentry kind="src" path="exchangews/gensrc/src"/>
 	<classpathentry excluding="ietf/params/xml/ns/icalendar_2/" kind="src" path="timezones/gensrc/src"/>
 	<classpathentry kind="lib" path="dist/bw-exsynchwsschema-3.7.jar"/>
 	<classpathentry kind="lib" path="dist/bw-tzschema-3.7.jar"/>
-	<classpathentry kind="lib" path="dist/temp/wsimportlib/jaxb-impl-2.1.8.jar"/>
-	<classpathentry kind="lib" path="dist/temp/wsimportlib/jaxb-xjc-2.1.7.jar"/>
-	<classpathentry kind="lib" path="dist/temp/wsimportlib/jaxws-rt-2.1.4.jar"/>
-	<classpathentry kind="lib" path="dist/temp/wsimportlib/jaxws-tools-2.1.4.jar"/>
-	<classpathentry kind="lib" path="dist/temp/wsimportlib/stax-ex-2.2.1.jar"/>
-	<classpathentry kind="lib" path="dist/temp/wsimportlib/streambuffer-1.0.jar"/>
-	<classpathentry kind="lib" path="dist/temp/xjclib/jaxb-impl-2.1.8.jar"/>
-	<classpathentry kind="lib" path="dist/temp/xjclib/jaxb-xjc-2.1.7.jar"/>
-	<classpathentry kind="lib" path="dist/temp/xjclib/jaxws-rt-2.1.4.jar"/>
-	<classpathentry kind="lib" path="dist/temp/xjclib/jaxws-tools-2.1.4.jar"/>
-	<classpathentry kind="lib" path="dist/temp/xjclib/stax-ex-2.2.1.jar"/>
-	<classpathentry kind="lib" path="dist/temp/xjclib/streambuffer-1.0.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="output" path="dist/temp/wsclasses/bwxml"/>
 </classpath>

Modified: trunk/build.properties
===================================================================
--- trunk/build.properties	2011-02-22 17:03:44 UTC (rev 6)
+++ trunk/build.properties	2011-02-22 18:27:42 UTC (rev 7)
@@ -9,6 +9,7 @@
 org.bedework.xmlschema.version=3.7
 
 # Name of generated jar files
+org.bedework.module.exchangewsschema.jar=bw-exchangewsschema
 org.bedework.module.exsynchwsschema.jar=bw-exsynchwsschema
 org.bedework.module.tzschema.jar=bw-tzschema
 

Modified: trunk/build.xml
===================================================================
--- trunk/build.xml	2011-02-22 17:03:44 UTC (rev 6)
+++ trunk/build.xml	2011-02-22 18:27:42 UTC (rev 7)
@@ -5,7 +5,7 @@
      Authors: Mike Douglass   douglm  rpi.edu
 -->
 
-<project name="xmlschema" default="build">
+<project name="xmlschema" default="deploy">
   <taskdef resource="net/sf/antcontrib/antcontrib.properties" />
 	
   <property environment="env"/>
@@ -49,30 +49,54 @@
     <property name="org.bedework.schemas.base"
               location="${project.home}/schemas" />
 
+    <property name="org.bedework.exchangews.base"
+              location="${project.home}/exchangews" />
+
     <property name="org.bedework.exsynchws.base"
               location="${project.home}/exsynchws" />
 
     <property name="org.bedework.tzsvc.base"
               location="${project.home}/timezones" />
 
+    <property name="exchangews.jar"
+              location="${dist.home}/${org.bedework.module.exchangewsschema.jar}-${project.version}.jar" />
+
     <property name="exsynchws.jar"
               location="${dist.home}/${org.bedework.module.exsynchwsschema.jar}-${project.version}.jar" />
 
     <property name="tzsvc.jar"
               location="${dist.home}/${org.bedework.module.tzschema.jar}-${project.version}.jar" />
+    
+    <property name="exchange.wsdllocation"
+              value="${bedework-options.org.bedework.app.Exsynch.exchangeWSDLURI}" />
+    
+    <property name="exsynch.wsdllocation"
+              value="${bedework-options.org.bedework.app.Exsynch.remoteWSDLURI}" />
+    
+    <property name="wsdl.deploy.dir"
+              location="${org.bedework.appserver.dir}/${org.bedework.server.resource.root.dir}${org.bedework.app.exsynchwcb.wsdl,deploy.dir}" />
+    <echo message="*****deploy to ${wsdl.deploy.dir}"/>
   </target>
   
   <target name="deploy-init" depends="init">
-    <!-- No deployment -->
   </target>
 
   <!-- ===================== build-source Target ===============================
      This target builds jar files ready for the deploy target.
      =================================================================== -->
 
-  <target name="build-source" >
+  <target name="build-source" >    
+    <!-- Exchange - web service -->
+    <wsimport wsdl="${org.bedework.exchangews.base}/Services.wsdl"
+              wsdllocation="${exchange.wsdllocation}"
+              module-base="${org.bedework.exchangews.base}/gensrc"
+              jar-file="${exchangews.jar}"
+              bindingsdir="${org.bedework.exchangews.base}/wsdlbindings"
+    />
+
     <!-- Exsynch - web service -->
     <wsimport wsdl="${org.bedework.exsynchws.base}/wssvc.wsdl"
+              wsdllocation="${exsynch.wsdllocation}"
               module-base="${org.bedework.exsynchws.base}/gensrc"
               jar-file="${exsynchws.jar}"
               bindingsdir="${org.bedework.exsynchws.base}/wsdlbindings"
@@ -94,7 +118,24 @@
 
   <target name="deploy" depends="deploy-init,build"
                description="Deploy generated files">
-    <!-- No deployment -->
+    <!-- Exchange wsdl -->
+    <echo message="Copy the wsdl to ${exchange.wsdllocation}"/>
+    <echo message="deploy to ${wsdl.deploy.dir}"/>
+    <echo message="appserver deploy dir ${org.bedework.server.resource.root.dir}"/>
+    <debugMsg message="Copy the wsdl to ${exchange.wsdllocation}"/>
+
+    <copy todir="${wsdl.deploy.dir}" overwrite="yes">
+      <fileset dir="${org.bedework.exchangews.base}"
+               includes="*.xsd,*.wsdl" />
+    </copy>
+
+    <!-- Exchange synch wsdl -->
+    <debugMsg message="Copy the wsdl to ${exsynch.wsdllocation}"/>
+
+    <copy todir="${wsdl.deploy.dir}" overwrite="yes">
+      <fileset dir="${org.bedework.exsynchws.base}"
+               includes="*.xsd,*.wsdl" />
+    </copy>
   </target>
 
 <!-- ==================== Javadoc Target ===============================

Modified: trunk/exchangews/Services.wsdl
===================================================================
--- trunk/exchangews/Services.wsdl	2011-02-22 17:03:44 UTC (rev 6)
+++ trunk/exchangews/Services.wsdl	2011-02-22 18:27:42 UTC (rev 7)
@@ -1,787 +1,1517 @@
-<?xml version="1.0" encoding="utf-8"?>
-<wsdl:definitions xmlns:tns="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" targetNamespace="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
-  <wsdl:types>
-    <s:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
-      <xs:import schemaLocation="messages.xsd" namespace="http://schemas.microsoft.com/exchange/services/2006/messages" />
-    </s:schema>
-  </wsdl:types>
-  <wsdl:message name="GetFolderSoapIn">
-    <wsdl:part name="request" element="tns:GetFolder" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="GetFolderSoapOut">
-    <wsdl:part name="GetFolderResult" element="tns:GetFolderResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="CreateFolderSoapIn">
-    <wsdl:part name="request" element="tns:CreateFolder" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="CreateFolderSoapOut">
-    <wsdl:part name="CreateFolderResult" element="tns:CreateFolderResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="CreateManagedFolderSoapIn">
-    <wsdl:part name="request" element="tns:CreateManagedFolder" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="CreateManagedFolderSoapOut">
-    <wsdl:part name="CreateManagedFolderResult" element="tns:CreateManagedFolderResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="DeleteFolderSoapIn">
-    <wsdl:part name="request" element="tns:DeleteFolder" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="DeleteFolderSoapOut">
-    <wsdl:part name="DeleteFolderResult" element="tns:DeleteFolderResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="UpdateFolderSoapIn">
-    <wsdl:part name="request" element="tns:UpdateFolder" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="UpdateFolderSoapOut">
-    <wsdl:part name="UpdateFolderResult" element="tns:UpdateFolderResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="MoveFolderSoapIn">
-    <wsdl:part name="request" element="tns:MoveFolder" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="MoveFolderSoapOut">
-    <wsdl:part name="MoveFolderResult" element="tns:MoveFolderResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="CopyFolderSoapIn">
-    <wsdl:part name="request" element="tns:CopyFolder" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="CopyFolderSoapOut">
-    <wsdl:part name="CopyFolderResult" element="tns:CopyFolderResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="FindFolderSoapIn">
-    <wsdl:part name="request" element="tns:FindFolder" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="FindFolderSoapOut">
-    <wsdl:part name="FindFolderResult" element="tns:FindFolderResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="GetItemSoapIn">
-    <wsdl:part name="request" element="tns:GetItem" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="GetItemSoapOut">
-    <wsdl:part name="GetItemResult" element="tns:GetItemResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="CreateItemSoapIn">
-    <wsdl:part name="request" element="tns:CreateItem" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="CreateItemSoapOut">
-    <wsdl:part name="CreateItemResult" element="tns:CreateItemResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="DeleteItemSoapIn">
-    <wsdl:part name="request" element="tns:DeleteItem" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="DeleteItemSoapOut">
-    <wsdl:part name="DeleteItemResult" element="tns:DeleteItemResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="UpdateItemSoapIn">
-    <wsdl:part name="request" element="tns:UpdateItem" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="UpdateItemSoapOut">
-    <wsdl:part name="UpdateItemResult" element="tns:UpdateItemResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="SendItemSoapIn">
-    <wsdl:part name="request" element="tns:SendItem" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="SendItemSoapOut">
-    <wsdl:part name="SendItemResult" element="tns:SendItemResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="MoveItemSoapIn">
-    <wsdl:part name="request" element="tns:MoveItem" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="MoveItemSoapOut">
-    <wsdl:part name="MoveItemResult" element="tns:MoveItemResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="CopyItemSoapIn">
-    <wsdl:part name="request" element="tns:CopyItem" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="CopyItemSoapOut">
-    <wsdl:part name="CopyItemResult" element="tns:CopyItemResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="CreateAttachmentSoapIn">
-    <wsdl:part name="request" element="tns:CreateAttachment" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="CreateAttachmentSoapOut">
-    <wsdl:part name="CreateAttachmentResult" element="tns:CreateAttachmentResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="DeleteAttachmentSoapIn">
-    <wsdl:part name="request" element="tns:DeleteAttachment" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="DeleteAttachmentSoapOut">
-    <wsdl:part name="DeleteAttachmentResult" element="tns:DeleteAttachmentResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="GetAttachmentSoapIn">
-    <wsdl:part name="request" element="tns:GetAttachment" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="GetAttachmentSoapOut">
-    <wsdl:part name="GetAttachmentResult" element="tns:GetAttachmentResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="ResolveNamesSoapIn">
-    <wsdl:part name="request" element="tns:ResolveNames" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="ResolveNamesSoapOut">
-    <wsdl:part name="ResolveNamesResult" element="tns:ResolveNamesResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="ExpandDLSoapIn">
-    <wsdl:part name="request" element="tns:ExpandDL" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="ExpandDLSoapOut">
-    <wsdl:part name="ExpandDLResult" element="tns:ExpandDLResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="FindItemSoapIn">
-    <wsdl:part name="request" element="tns:FindItem" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="FindItemSoapOut">
-    <wsdl:part name="FindItemResult" element="tns:FindItemResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="SubscribeSoapIn">
-    <wsdl:part name="request" element="tns:Subscribe" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="SubscribeSoapOut">
-    <wsdl:part name="SubscribeResult" element="tns:SubscribeResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="UnsubscribeSoapIn">
-    <wsdl:part name="request" element="tns:Unsubscribe" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="UnsubscribeSoapOut">
-    <wsdl:part name="UnsubscribeResult" element="tns:UnsubscribeResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="GetEventsSoapIn">
-    <wsdl:part name="request" element="tns:GetEvents" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-    <wsdl:part name="MailboxCulture" element="t:MailboxCulture" />
-  </wsdl:message>
-  <wsdl:message name="GetEventsSoapOut">
-    <wsdl:part name="GetEventsResult" element="tns:GetEventsResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="SyncFolderHierarchySoapIn">
-    <wsdl:part name="request" element="tns:SyncFolderHierarchy" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-  </wsdl:message>
-  <wsdl:message name="SyncFolderHierarchySoapOut">
-    <wsdl:part name="SyncFolderHierarchyResult" element="tns:SyncFolderHierarchyResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="SyncFolderItemsSoapIn">
-    <wsdl:part name="request" element="tns:SyncFolderItems" />
-    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation" />
-    <wsdl:part name="S2SAuth" element="t:SerializedSecurityContext" />
-  </wsdl:message>
-  <wsdl:message name="SyncFolderItemsSoapOut">
-    <wsdl:part name="SyncFolderItemsResult" element="tns:SyncFolderItemsResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="GetUserAvailabilitySoapIn">
-    <wsdl:part name="GetUserAvailabilityRequest" element="tns:GetUserAvailabilityRequest" />
-    <wsdl:part name="SerializedSecurityContext" element="t:SerializedSecurityContext" />
-    <wsdl:part name="ProxyRequestTypeHeader" element="t:ProxyRequestTypeHeader" />
-  </wsdl:message>
-  <wsdl:message name="GetUserAvailabilitySoapOut">
-    <wsdl:part name="GetUserAvailabilityResult" element="tns:GetUserAvailabilityResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="GetUserOofSettingsSoapIn">
-    <wsdl:part name="GetUserOofSettingsRequest" element="tns:GetUserOofSettingsRequest" />
-  </wsdl:message>
-  <wsdl:message name="GetUserOofSettingsSoapOut">
-    <wsdl:part name="GetUserOofSettingsResult" element="tns:GetUserOofSettingsResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:message name="SetUserOofSettingsSoapIn">
-    <wsdl:part name="SetUserOofSettingsRequest" element="tns:SetUserOofSettingsRequest" />
-  </wsdl:message>
-  <wsdl:message name="SetUserOofSettingsSoapOut">
-    <wsdl:part name="SetUserOofSettingsResult" element="tns:SetUserOofSettingsResponse" />
-    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo" />
-  </wsdl:message>
-  <wsdl:portType name="ExchangeServicePortType">
-    <wsdl:operation name="ResolveNames">
-      <wsdl:input message="tns:ResolveNamesSoapIn" />
-      <wsdl:output message="tns:ResolveNamesSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="ExpandDL">
-      <wsdl:input message="tns:ExpandDLSoapIn" />
-      <wsdl:output message="tns:ExpandDLSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="FindFolder">
-      <wsdl:input message="tns:FindFolderSoapIn" />
-      <wsdl:output message="tns:FindFolderSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="FindItem">
-      <wsdl:input message="tns:FindItemSoapIn" />
-      <wsdl:output message="tns:FindItemSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="GetFolder">
-      <wsdl:input message="tns:GetFolderSoapIn" />
-      <wsdl:output message="tns:GetFolderSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="CreateFolder">
-      <wsdl:input message="tns:CreateFolderSoapIn" />
-      <wsdl:output message="tns:CreateFolderSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="DeleteFolder">
-      <wsdl:input message="tns:DeleteFolderSoapIn" />
-      <wsdl:output message="tns:DeleteFolderSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="UpdateFolder">
-      <wsdl:input message="tns:UpdateFolderSoapIn" />
-      <wsdl:output message="tns:UpdateFolderSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="MoveFolder">
-      <wsdl:input message="tns:MoveFolderSoapIn" />
-      <wsdl:output message="tns:MoveFolderSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="CopyFolder">
-      <wsdl:input message="tns:CopyFolderSoapIn" />
-      <wsdl:output message="tns:CopyFolderSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="Subscribe">
-      <wsdl:input message="tns:SubscribeSoapIn" />
-      <wsdl:output message="tns:SubscribeSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="Unsubscribe">
-      <wsdl:input message="tns:UnsubscribeSoapIn" />
-      <wsdl:output message="tns:UnsubscribeSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="GetEvents">
-      <wsdl:input message="tns:GetEventsSoapIn" />
-      <wsdl:output message="tns:GetEventsSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="SyncFolderHierarchy">
-      <wsdl:input message="tns:SyncFolderHierarchySoapIn" />
-      <wsdl:output message="tns:SyncFolderHierarchySoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="SyncFolderItems">
-      <wsdl:input message="tns:SyncFolderItemsSoapIn" />
-      <wsdl:output message="tns:SyncFolderItemsSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="CreateManagedFolder">
-      <wsdl:input message="tns:CreateManagedFolderSoapIn" />
-      <wsdl:output message="tns:CreateManagedFolderSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="GetItem">
-      <wsdl:input message="tns:GetItemSoapIn" />
-      <wsdl:output message="tns:GetItemSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="CreateItem">
-      <wsdl:input message="tns:CreateItemSoapIn" />
-      <wsdl:output message="tns:CreateItemSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="DeleteItem">
-      <wsdl:input message="tns:DeleteItemSoapIn" />
-      <wsdl:output message="tns:DeleteItemSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="UpdateItem">
-      <wsdl:input message="tns:UpdateItemSoapIn" />
-      <wsdl:output message="tns:UpdateItemSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="SendItem">
-      <wsdl:input message="tns:SendItemSoapIn" />
-      <wsdl:output message="tns:SendItemSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="MoveItem">
-      <wsdl:input message="tns:MoveItemSoapIn" />
-      <wsdl:output message="tns:MoveItemSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="CopyItem">
-      <wsdl:input message="tns:CopyItemSoapIn" />
-      <wsdl:output message="tns:CopyItemSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="CreateAttachment">
-      <wsdl:input message="tns:CreateAttachmentSoapIn" />
-      <wsdl:output message="tns:CreateAttachmentSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="DeleteAttachment">
-      <wsdl:input message="tns:DeleteAttachmentSoapIn" />
-      <wsdl:output message="tns:DeleteAttachmentSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="GetAttachment">
-      <wsdl:input message="tns:GetAttachmentSoapIn" />
-      <wsdl:output message="tns:GetAttachmentSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="GetUserAvailability">
-      <wsdl:input message="tns:GetUserAvailabilitySoapIn" />
-      <wsdl:output message="tns:GetUserAvailabilitySoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="GetUserOofSettings">
-      <wsdl:input message="tns:GetUserOofSettingsSoapIn" />
-      <wsdl:output message="tns:GetUserOofSettingsSoapOut" />
-    </wsdl:operation>
-    <wsdl:operation name="SetUserOofSettings">
-      <wsdl:input message="tns:SetUserOofSettingsSoapIn" />
-      <wsdl:output message="tns:SetUserOofSettingsSoapOut" />
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding name="ExchangeServiceBinding" type="tns:ExchangeServicePortType">
-    <wsdl:documentation>
-      <wsi:Claim conformsTo="http://ws-i.org/profiles/basic/1.0" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" />
-    </wsdl:documentation>
-    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
-    <wsdl:operation name="ResolveNames">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/ResolveNames" />
-      <wsdl:input>
-        <soap:body use="literal" parts="request" />
-        <soap:header message="tns:ResolveNamesSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:ResolveNamesSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:ResolveNamesSoapIn" part="MailboxCulture" use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="ResolveNamesResult" />
-        <soap:header message="tns:ResolveNamesSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="ExpandDL">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/ExpandDL" />
-      <wsdl:input>
-        <soap:header message="tns:ExpandDLSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:ExpandDLSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:ExpandDLSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="ExpandDLResult" />
-        <soap:header message="tns:ExpandDLSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="FindFolder">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindFolder" />
-      <wsdl:input>
-        <soap:header message="tns:FindFolderSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:FindFolderSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:FindFolderSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="FindFolderResult" />
-        <soap:header message="tns:FindFolderSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="FindItem">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindItem" />
-      <wsdl:input>
-        <soap:header message="tns:FindItemSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:FindItemSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:FindItemSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="FindItemResult" />
-        <soap:header message="tns:FindItemSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetFolder">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetFolder" />
-      <wsdl:input>
-        <soap:header message="tns:GetFolderSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:GetFolderSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:GetFolderSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="GetFolderResult" />
-        <soap:header message="tns:GetFolderSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="CreateFolder">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateFolder" />
-      <wsdl:input>
-        <soap:header message="tns:CreateFolderSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:CreateFolderSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:CreateFolderSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="CreateFolderResult" />
-        <soap:header message="tns:CreateFolderSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="DeleteFolder">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteFolder" />
-      <wsdl:input>
-        <soap:header message="tns:DeleteFolderSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:DeleteFolderSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:DeleteFolderSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="DeleteFolderResult" />
-        <soap:header message="tns:DeleteFolderSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="UpdateFolder">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateFolder" />
-      <wsdl:input>
-        <soap:header message="tns:UpdateFolderSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:UpdateFolderSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:UpdateFolderSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="UpdateFolderResult" />
-        <soap:header message="tns:UpdateFolderSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="MoveFolder">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/MoveFolder" />
-      <wsdl:input>
-        <soap:header message="tns:MoveFolderSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:MoveFolderSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:MoveFolderSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="MoveFolderResult" />
-        <soap:header message="tns:MoveFolderSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="CopyFolder">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CopyFolder" />
-      <wsdl:input>
-        <soap:header message="tns:CopyFolderSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:CopyFolderSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:CopyFolderSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="CopyFolderResult" />
-        <soap:header message="tns:CopyFolderSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="Subscribe">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/Subscribe" />
-      <wsdl:input>
-        <soap:header message="tns:SubscribeSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:SubscribeSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:SubscribeSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="SubscribeResult" />
-        <soap:header message="tns:SubscribeSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="Unsubscribe">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/Unsubscribe" />
-      <wsdl:input>
-        <soap:header message="tns:UnsubscribeSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:UnsubscribeSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:UnsubscribeSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="UnsubscribeResult" />
-        <soap:header message="tns:UnsubscribeSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetEvents">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetEvents" />
-      <wsdl:input>
-        <soap:header message="tns:GetEventsSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:GetEventsSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:GetEventsSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="GetEventsResult" />
-        <soap:header message="tns:GetEventsSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="SyncFolderHierarchy">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SyncFolderHierarchy" />
-      <wsdl:input>
-        <soap:header message="tns:SyncFolderHierarchySoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:SyncFolderHierarchySoapIn" part="S2SAuth" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="SyncFolderHierarchyResult" />
-        <soap:header message="tns:SyncFolderHierarchySoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="SyncFolderItems">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SyncFolderItems" />
-      <wsdl:input>
-        <soap:header message="tns:SyncFolderItemsSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:SyncFolderItemsSoapIn" part="S2SAuth" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="SyncFolderItemsResult" />
-        <soap:header message="tns:SyncFolderItemsSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetItem">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetItem" />
-      <wsdl:input>
-        <soap:header message="tns:GetItemSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:GetItemSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:GetItemSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="GetItemResult" />
-        <soap:header message="tns:GetItemSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="CreateItem">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateItem" />
-      <wsdl:input>
-        <soap:header message="tns:CreateItemSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:CreateItemSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:CreateItemSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="CreateItemResult" />
-        <soap:header message="tns:CreateItemSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="DeleteItem">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteItem" />
-      <wsdl:input>
-        <soap:header message="tns:DeleteItemSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:DeleteItemSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:DeleteItemSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="DeleteItemResult" />
-        <soap:header message="tns:DeleteItemSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="UpdateItem">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateItem" />
-      <wsdl:input>
-        <soap:header message="tns:UpdateItemSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:UpdateItemSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:UpdateItemSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="UpdateItemResult" />
-        <soap:header message="tns:UpdateItemSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="SendItem">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SendItem" />
-      <wsdl:input>
-        <soap:header message="tns:SendItemSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:SendItemSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:SendItemSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="SendItemResult" />
-        <soap:header message="tns:SendItemSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="MoveItem">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/MoveItem" />
-      <wsdl:input>
-        <soap:header message="tns:MoveItemSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:MoveItemSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:MoveItemSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="MoveItemResult" />
-        <soap:header message="tns:MoveItemSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="CopyItem">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CopyItem" />
-      <wsdl:input>
-        <soap:header message="tns:CopyItemSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:CopyItemSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:CopyItemSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="CopyItemResult" />
-        <soap:header message="tns:CopyItemSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="CreateAttachment">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateAttachment" />
-      <wsdl:input>
-        <soap:header message="tns:CreateAttachmentSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:CreateAttachmentSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:CreateAttachmentSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="CreateAttachmentResult" />
-        <soap:header message="tns:CreateAttachmentSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="DeleteAttachment">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteAttachment" />
-      <wsdl:input>
-        <soap:header message="tns:DeleteAttachmentSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:DeleteAttachmentSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:DeleteAttachmentSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="DeleteAttachmentResult" />
-        <soap:header message="tns:DeleteAttachmentSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetAttachment">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetAttachment" />
-      <wsdl:input>
-        <soap:header message="tns:GetAttachmentSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:GetAttachmentSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:GetAttachmentSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="GetAttachmentResult" />
-        <soap:header message="tns:GetAttachmentSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="CreateManagedFolder">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateManagedFolder" />
-      <wsdl:input>
-        <soap:header message="tns:CreateManagedFolderSoapIn" part="Impersonation" use="literal" />
-        <soap:header message="tns:CreateManagedFolderSoapIn" part="S2SAuth" use="literal" />
-        <soap:header message="tns:CreateManagedFolderSoapIn" part="MailboxCulture" use="literal" />
-        <soap:body use="literal" parts="request" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="CreateManagedFolderResult" />
-        <soap:header message="tns:CreateManagedFolderSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetUserAvailability">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetUserAvailability" />
-      <wsdl:input>
-        <soap:body use="literal" parts="GetUserAvailabilityRequest" />
-        <soap:header message="tns:GetUserAvailabilitySoapIn" part="SerializedSecurityContext" use="literal" />
-        <soap:header message="tns:GetUserAvailabilitySoapIn" part="ProxyRequestTypeHeader" use="literal" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="GetUserAvailabilityResult" />
-        <soap:header message="tns:GetUserAvailabilitySoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="GetUserOofSettings">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetUserOofSettings" />
-      <wsdl:input>
-        <soap:body use="literal" parts="GetUserOofSettingsRequest" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="GetUserOofSettingsResult" />
-        <soap:header message="tns:GetUserOofSettingsSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-    <wsdl:operation name="SetUserOofSettings">
-      <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SetUserOofSettings" />
-      <wsdl:input>
-        <soap:body use="literal" parts="SetUserOofSettingsRequest" />
-      </wsdl:input>
-      <wsdl:output>
-        <soap:body use="literal" parts="SetUserOofSettingsResult" />
-        <soap:header message="tns:SetUserOofSettingsSoapOut" part="ServerVersion" use="literal" />
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-
-  <wsdl:service name="ExchangeWebService">
-    <wsdl:port name="ExchangeWebPort" binding="tns:ExchangeServiceBinding">
-       <soap:address location="https://tootles-fe1.neverland.rpi.edu/owa"></soap:address>
-    </wsdl:port>
-  </wsdl:service>
-</wsdl:definitions>
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:s="http://www.w3.org/2001/XMLSchema" targetNamespace="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
+    <wsdl:types>
+        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+            <xs:import namespace="http://schemas.microsoft.com/exchange/services/2006/messages" schemaLocation="messages.xsd"/>
+        </xs:schema>
+    </wsdl:types>
+    <wsdl:message name="ConvertIdSoapIn">
+        <wsdl:part name="request" element="tns:ConvertId"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="ConvertIdSoapOut">
+        <wsdl:part name="ConvertIdResult" element="tns:ConvertIdResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="GetFolderSoapIn">
+        <wsdl:part name="request" element="tns:GetFolder"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+        <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+    </wsdl:message>
+    <wsdl:message name="GetFolderSoapOut">
+        <wsdl:part name="GetFolderResult" element="tns:GetFolderResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="CreateFolderSoapIn">
+        <wsdl:part name="request" element="tns:CreateFolder"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+        <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+    </wsdl:message>
+    <wsdl:message name="CreateFolderSoapOut">
+        <wsdl:part name="CreateFolderResult" element="tns:CreateFolderResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="CreateManagedFolderSoapIn">
+        <wsdl:part name="request" element="tns:CreateManagedFolder"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="CreateManagedFolderSoapOut">
+        <wsdl:part name="CreateManagedFolderResult" element="tns:CreateManagedFolderResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="DeleteFolderSoapIn">
+        <wsdl:part name="request" element="tns:DeleteFolder"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="DeleteFolderSoapOut">
+        <wsdl:part name="DeleteFolderResult" element="tns:DeleteFolderResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="UpdateFolderSoapIn">
+        <wsdl:part name="request" element="tns:UpdateFolder"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+        <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+    </wsdl:message>
+    <wsdl:message name="UpdateFolderSoapOut">
+        <wsdl:part name="UpdateFolderResult" element="tns:UpdateFolderResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="MoveFolderSoapIn">
+        <wsdl:part name="request" element="tns:MoveFolder"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="MoveFolderSoapOut">
+        <wsdl:part name="MoveFolderResult" element="tns:MoveFolderResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="CopyFolderSoapIn">
+        <wsdl:part name="request" element="tns:CopyFolder"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="CopyFolderSoapOut">
+        <wsdl:part name="CopyFolderResult" element="tns:CopyFolderResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="FindFolderSoapIn">
+        <wsdl:part name="request" element="tns:FindFolder"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+        <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+    </wsdl:message>
+    <wsdl:message name="FindFolderSoapOut">
+        <wsdl:part name="FindFolderResult" element="tns:FindFolderResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <!--  Bedework:
+          Comment out Impersonation as null parameters don't work.
+          Reinstate as separate message perhaps?
+     -->
+    <wsdl:message name="GetItemSoapIn">
+        <wsdl:part name="request" element="tns:GetItem"/>
+        <!-- 
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>-->
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+        <!-- <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>-->
+    </wsdl:message>
+    <wsdl:message name="GetItemSoapOut">
+        <wsdl:part name="GetItemResult" element="tns:GetItemResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="CreateItemSoapIn">
+        <wsdl:part name="request" element="tns:CreateItem"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+        <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+    </wsdl:message>
+    <wsdl:message name="CreateItemSoapOut">
+        <wsdl:part name="CreateItemResult" element="tns:CreateItemResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="DeleteItemSoapIn">
+        <wsdl:part name="request" element="tns:DeleteItem"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="DeleteItemSoapOut">
+        <wsdl:part name="DeleteItemResult" element="tns:DeleteItemResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="UpdateItemSoapIn">
+        <wsdl:part name="request" element="tns:UpdateItem"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+        <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+    </wsdl:message>
+    <wsdl:message name="UpdateItemSoapOut">
+        <wsdl:part name="UpdateItemResult" element="tns:UpdateItemResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="SendItemSoapIn">
+        <wsdl:part name="request" element="tns:SendItem"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="SendItemSoapOut">
+        <wsdl:part name="SendItemResult" element="tns:SendItemResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="MoveItemSoapIn">
+        <wsdl:part name="request" element="tns:MoveItem"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="MoveItemSoapOut">
+        <wsdl:part name="MoveItemResult" element="tns:MoveItemResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="CopyItemSoapIn">
+        <wsdl:part name="request" element="tns:CopyItem"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="CopyItemSoapOut">
+        <wsdl:part name="CopyItemResult" element="tns:CopyItemResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="CreateAttachmentSoapIn">
+        <wsdl:part name="request" element="tns:CreateAttachment"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+        <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+    </wsdl:message>
+    <wsdl:message name="CreateAttachmentSoapOut">
+        <wsdl:part name="CreateAttachmentResult" element="tns:CreateAttachmentResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="DeleteAttachmentSoapIn">
+        <wsdl:part name="request" element="tns:DeleteAttachment"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="DeleteAttachmentSoapOut">
+        <wsdl:part name="DeleteAttachmentResult" element="tns:DeleteAttachmentResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="GetAttachmentSoapIn">
+        <wsdl:part name="request" element="tns:GetAttachment"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+        <wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/>
+    </wsdl:message>
+    <wsdl:message name="GetAttachmentSoapOut">
+        <wsdl:part name="GetAttachmentResult" element="tns:GetAttachmentResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="ResolveNamesSoapIn">
+        <wsdl:part name="request" element="tns:ResolveNames"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="ResolveNamesSoapOut">
+        <wsdl:part name="ResolveNamesResult" element="tns:ResolveNamesResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="ExpandDLSoapIn">
+        <wsdl:part name="request" element="tns:ExpandDL"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="ExpandDLSoapOut">
+        <wsdl:part name="ExpandDLResult" element="tns:ExpandDLResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="GetServerTimeZonesSoapIn">
+        <wsdl:part name="request" element="tns:GetServerTimeZones"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="GetServerTimeZonesSoapOut">
+        <wsdl:part name="GetServerTimeZonesResult" element="tns:GetServerTimeZonesResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    
+    <!--  Bedework:
+          Comment out Impersonation as null parameters don't work.
+          Reinstate as separate message perhaps?
+     -->
+    <wsdl:message name="FindItemSoapIn">
+        <wsdl:part name="request" element="tns:FindItem"/>
+        <!-- <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/> -->
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+        <!--<wsdl:part name="TimeZoneContext" element="t:TimeZoneContext"/> -->
+    </wsdl:message>
+    <wsdl:message name="FindItemSoapOut">
+        <wsdl:part name="FindItemResult" element="tns:FindItemResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+
+    <!--  Bedework:
+          Comment out Impersonation as null parameters don't work.
+          Reinstate as separate message perhaps?
+     -->
+    <wsdl:message name="SubscribeSoapIn">
+        <wsdl:part name="request" element="tns:Subscribe"/>
+        <!-- <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/> -->
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="SubscribeSoapOut">
+        <wsdl:part name="SubscribeResult" element="tns:SubscribeResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="UnsubscribeSoapIn">
+        <wsdl:part name="request" element="tns:Unsubscribe"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="UnsubscribeSoapOut">
+        <wsdl:part name="UnsubscribeResult" element="tns:UnsubscribeResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="GetEventsSoapIn">
+        <wsdl:part name="request" element="tns:GetEvents"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="GetEventsSoapOut">
+        <wsdl:part name="GetEventsResult" element="tns:GetEventsResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="SyncFolderHierarchySoapIn">
+        <wsdl:part name="request" element="tns:SyncFolderHierarchy"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="SyncFolderHierarchySoapOut">
+        <wsdl:part name="SyncFolderHierarchyResult" element="tns:SyncFolderHierarchyResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="SyncFolderItemsSoapIn">
+        <wsdl:part name="request" element="tns:SyncFolderItems"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="SyncFolderItemsSoapOut">
+        <wsdl:part name="SyncFolderItemsResult" element="tns:SyncFolderItemsResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+
+    <wsdl:message name="GetDelegateSoapIn">
+        <wsdl:part name="request" element="tns:GetDelegate"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="GetDelegateSoapOut">
+        <wsdl:part name="GetDelegateResult" element="tns:GetDelegateResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="AddDelegateSoapIn">
+        <wsdl:part name="request" element="tns:AddDelegate"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="AddDelegateSoapOut">
+        <wsdl:part name="AddDelegateResult" element="tns:AddDelegateResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="RemoveDelegateSoapIn">
+        <wsdl:part name="request" element="tns:RemoveDelegate"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="RemoveDelegateSoapOut">
+        <wsdl:part name="RemoveDelegateResult" element="tns:RemoveDelegateResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="UpdateDelegateSoapIn">
+        <wsdl:part name="request" element="tns:UpdateDelegate"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="UpdateDelegateSoapOut">
+        <wsdl:part name="UpdateDelegateResult" element="tns:UpdateDelegateResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    
+    <wsdl:message name="CreateUserConfigurationSoapIn">
+        <wsdl:part name="request" element="tns:CreateUserConfiguration"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="CreateUserConfigurationSoapOut">
+        <wsdl:part name="CreateUserConfigurationResult" element="tns:CreateUserConfigurationResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="DeleteUserConfigurationSoapIn">
+        <wsdl:part name="request" element="tns:DeleteUserConfiguration"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="DeleteUserConfigurationSoapOut">
+        <wsdl:part name="DeleteUserConfigurationResult" element="tns:DeleteUserConfigurationResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="GetUserConfigurationSoapIn">
+        <wsdl:part name="request" element="tns:GetUserConfiguration"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="GetUserConfigurationSoapOut">
+        <wsdl:part name="GetUserConfigurationResult" element="tns:GetUserConfigurationResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    <wsdl:message name="UpdateUserConfigurationSoapIn">
+        <wsdl:part name="request" element="tns:UpdateUserConfiguration"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="UpdateUserConfigurationSoapOut">
+        <wsdl:part name="UpdateUserConfigurationResult" element="tns:UpdateUserConfigurationResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+
+    <!-- Availability Service messages -->
+  <wsdl:message name="GetUserAvailabilitySoapIn">
+    <wsdl:part name="GetUserAvailabilityRequest" element="tns:GetUserAvailabilityRequest"/>
+  </wsdl:message>
+  <wsdl:message name="GetUserAvailabilitySoapOut">
+    <wsdl:part name="GetUserAvailabilityResult" element="tns:GetUserAvailabilityResponse"/>
+    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+  </wsdl:message>
+  <wsdl:message name="GetUserOofSettingsSoapIn">
+    <wsdl:part name="GetUserOofSettingsRequest" element="tns:GetUserOofSettingsRequest"/>
+    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+  </wsdl:message>
+  <wsdl:message name="GetUserOofSettingsSoapOut">
+    <wsdl:part name="GetUserOofSettingsResult" element="tns:GetUserOofSettingsResponse"/>
+    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+  </wsdl:message>
+  <wsdl:message name="SetUserOofSettingsSoapIn">
+    <wsdl:part name="SetUserOofSettingsRequest" element="tns:SetUserOofSettingsRequest"/>
+    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+  </wsdl:message>
+  <wsdl:message name="SetUserOofSettingsSoapOut">
+    <wsdl:part name="SetUserOofSettingsResult" element="tns:SetUserOofSettingsResponse"/>
+    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+  </wsdl:message>
+
+    <!-- MailTips Messages -->
+    <wsdl:message name="GetMailTipsSoapIn">
+        <wsdl:part name="request" element="tns:GetMailTips"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+    </wsdl:message>
+    <wsdl:message name="GetMailTipsSoapOut">
+        <wsdl:part name="GetMailTipsResult" element="tns:GetMailTipsResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+
+    <!-- UM Messages -->
+    <wsdl:message name="PlayOnPhoneSoapIn">
+        <wsdl:part name="request" element="tns:PlayOnPhone"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="PlayOnPhoneSoapOut">
+        <wsdl:part name="PlayOnPhoneResult" element="tns:PlayOnPhoneResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+
+    <wsdl:message name="GetPhoneCallInformationSoapIn">
+        <wsdl:part name="request" element="tns:GetPhoneCallInformation"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="GetPhoneCallInformationSoapOut">
+        <wsdl:part name="GetPhoneCallInformationResult" element="tns:GetPhoneCallInformationResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+
+    <wsdl:message name="DisconnectPhoneCallSoapIn">
+        <wsdl:part name="request" element="tns:DisconnectPhoneCall"/>
+        <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+        <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="DisconnectPhoneCallSoapOut">
+        <wsdl:part name="DisconnectPhoneCallResult" element="tns:DisconnectPhoneCallResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+
+  
+  <!-- Sharing Messages -->
+    <wsdl:message name="GetSharingMetadataSoapIn">
+        <wsdl:part name="request" element="tns:GetSharingMetadata"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="GetSharingMetadataSoapOut">
+        <wsdl:part name="GetSharingMetadataResult" element="tns:GetSharingMetadataResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+    
+    <wsdl:message name="RefreshSharingFolderSoapIn">
+        <wsdl:part name="request" element="tns:RefreshSharingFolder"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="RefreshSharingFolderSoapOut">
+        <wsdl:part name="RefreshSharingFolderResult" element="tns:RefreshSharingFolderResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+
+    <wsdl:message name="GetSharingFolderSoapIn">
+        <wsdl:part name="request" element="tns:GetSharingFolder"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+    <wsdl:message name="GetSharingFolderSoapOut">
+        <wsdl:part name="GetSharingFolderResult" element="tns:GetSharingFolderResponse"/>
+        <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+    </wsdl:message>
+  
+  <!-- Find A Room Service Messages -->
+
+  <!-- GetRoomLists Service Messages -->
+  <wsdl:message name="GetRoomListsSoapIn">
+    <wsdl:part name="GetRoomListsRequest" element="tns:GetRoomLists"/>
+    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+    <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+    <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+  </wsdl:message>
+
+  <wsdl:message name="GetRoomListsSoapOut">
+    <wsdl:part name="GetRoomListsResult" element="tns:GetRoomListsResponse"/>
+    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+  </wsdl:message>
+
+  <!-- GetRooms Service Messages -->
+  <wsdl:message name="GetRoomsSoapIn">
+    <wsdl:part name="GetRoomsRequest" element="tns:GetRooms"/>
+    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+    <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+    <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+  </wsdl:message>
+
+  <wsdl:message name="GetRoomsSoapOut">
+    <wsdl:part name="GetRoomsResult" element="tns:GetRoomsResponse"/>
+    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+  </wsdl:message>
+
+  <!-- GetServiceConfiguration Messages -->
+  <wsdl:message name="GetServiceConfigurationSoapIn">
+    <wsdl:part name="request" element="tns:GetServiceConfiguration"/>
+    <wsdl:part name="Impersonation" element="t:ExchangeImpersonation"/>
+    <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    <wsdl:part name="MailboxCulture" element="t:MailboxCulture"/>
+  </wsdl:message>
+  <wsdl:message name="GetServiceConfigurationSoapOut">
+    <wsdl:part name="GetServiceConfigurationResult" element="tns:GetServiceConfigurationResponse"/>
+    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+  </wsdl:message>
+  
+  <!-- MessageTracking Messages -->
+  <wsdl:message name="FindMessageTrackingReportSoapIn">
+        <wsdl:part name="request" element="tns:FindMessageTrackingReport"/>
+        <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+    </wsdl:message>
+  <wsdl:message name="FindMessageTrackingReportSoapOut">
+    <wsdl:part name="FindMessageTrackingReportResult" element="tns:FindMessageTrackingReportResponse"/>
+    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+  </wsdl:message>
+
+  <wsdl:message name="GetMessageTrackingReportSoapIn">
+    <wsdl:part name="request" element="tns:GetMessageTrackingReport"/>
+    <wsdl:part name="RequestVersion" element="t:RequestServerVersion"/>
+  </wsdl:message>
+  <wsdl:message name="GetMessageTrackingReportSoapOut">
+    <wsdl:part name="GetMessageTrackingReportResult" element="tns:GetMessageTrackingReportResponse"/>
+    <wsdl:part name="ServerVersion" element="t:ServerVersionInfo"/>
+  </wsdl:message>
+    
+  <wsdl:portType name="ExchangeServicePortType">
+        <wsdl:operation name="ResolveNames">
+            <wsdl:input message="tns:ResolveNamesSoapIn"/>
+            <wsdl:output message="tns:ResolveNamesSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="ExpandDL">
+            <wsdl:input message="tns:ExpandDLSoapIn"/>
+            <wsdl:output message="tns:ExpandDLSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="GetServerTimeZones">
+            <wsdl:input message="tns:GetServerTimeZonesSoapIn"/>
+            <wsdl:output message="tns:GetServerTimeZonesSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="FindFolder">
+            <wsdl:input message="tns:FindFolderSoapIn"/>
+            <wsdl:output message="tns:FindFolderSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="FindItem">
+            <wsdl:input message="tns:FindItemSoapIn"/>
+            <wsdl:output message="tns:FindItemSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="GetFolder">
+            <wsdl:input message="tns:GetFolderSoapIn"/>
+            <wsdl:output message="tns:GetFolderSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="ConvertId">
+            <wsdl:input message="tns:ConvertIdSoapIn"/>
+            <wsdl:output message="tns:ConvertIdSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="CreateFolder">
+            <wsdl:input message="tns:CreateFolderSoapIn"/>
+            <wsdl:output message="tns:CreateFolderSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="DeleteFolder">
+            <wsdl:input message="tns:DeleteFolderSoapIn"/>
+            <wsdl:output message="tns:DeleteFolderSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="UpdateFolder">
+            <wsdl:input message="tns:UpdateFolderSoapIn"/>
+            <wsdl:output message="tns:UpdateFolderSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="MoveFolder">
+            <wsdl:input message="tns:MoveFolderSoapIn"/>
+            <wsdl:output message="tns:MoveFolderSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="CopyFolder">
+            <wsdl:input message="tns:CopyFolderSoapIn"/>
+            <wsdl:output message="tns:CopyFolderSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="Subscribe">
+            <wsdl:input message="tns:SubscribeSoapIn"/>
+            <wsdl:output message="tns:SubscribeSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="Unsubscribe">
+            <wsdl:input message="tns:UnsubscribeSoapIn"/>
+            <wsdl:output message="tns:UnsubscribeSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="GetEvents">
+            <wsdl:input message="tns:GetEventsSoapIn"/>
+            <wsdl:output message="tns:GetEventsSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="SyncFolderHierarchy">
+            <wsdl:input message="tns:SyncFolderHierarchySoapIn"/>
+            <wsdl:output message="tns:SyncFolderHierarchySoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="SyncFolderItems">
+            <wsdl:input message="tns:SyncFolderItemsSoapIn"/>
+            <wsdl:output message="tns:SyncFolderItemsSoapOut"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="CreateManagedFolder">
+            <wsdl:input message="tns:CreateManagedFolderSoapIn"/>
+            <wsdl:output message="tns:CreateManagedFolderSoapOut"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="GetItem">
+            <wsdl:input message="tns:GetItemSoapIn"/>
+            <wsdl:output message="tns:GetItemSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="CreateItem">
+            <wsdl:input message="tns:CreateItemSoapIn"/>
+            <wsdl:output message="tns:CreateItemSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="DeleteItem">
+            <wsdl:input message="tns:DeleteItemSoapIn"/>
+            <wsdl:output message="tns:DeleteItemSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="UpdateItem">
+            <wsdl:input message="tns:UpdateItemSoapIn"/>
+            <wsdl:output message="tns:UpdateItemSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="SendItem">
+            <wsdl:input message="tns:SendItemSoapIn"/>
+            <wsdl:output message="tns:SendItemSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="MoveItem">
+            <wsdl:input message="tns:MoveItemSoapIn"/>
+            <wsdl:output message="tns:MoveItemSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="CopyItem">
+            <wsdl:input message="tns:CopyItemSoapIn"/>
+            <wsdl:output message="tns:CopyItemSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="CreateAttachment">
+            <wsdl:input message="tns:CreateAttachmentSoapIn"/>
+            <wsdl:output message="tns:CreateAttachmentSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="DeleteAttachment">
+            <wsdl:input message="tns:DeleteAttachmentSoapIn"/>
+            <wsdl:output message="tns:DeleteAttachmentSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="GetAttachment">
+            <wsdl:input message="tns:GetAttachmentSoapIn"/>
+            <wsdl:output message="tns:GetAttachmentSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="GetDelegate">
+            <wsdl:input message="tns:GetDelegateSoapIn"/>
+            <wsdl:output message="tns:GetDelegateSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="AddDelegate">
+            <wsdl:input message="tns:AddDelegateSoapIn"/>
+            <wsdl:output message="tns:AddDelegateSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="RemoveDelegate">
+            <wsdl:input message="tns:RemoveDelegateSoapIn"/>
+            <wsdl:output message="tns:RemoveDelegateSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="UpdateDelegate">
+            <wsdl:input message="tns:UpdateDelegateSoapIn"/>
+            <wsdl:output message="tns:UpdateDelegateSoapOut"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="CreateUserConfiguration">
+            <wsdl:input message="tns:CreateUserConfigurationSoapIn"/>
+            <wsdl:output message="tns:CreateUserConfigurationSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="DeleteUserConfiguration">
+            <wsdl:input message="tns:DeleteUserConfigurationSoapIn"/>
+            <wsdl:output message="tns:DeleteUserConfigurationSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="GetUserConfiguration">
+            <wsdl:input message="tns:GetUserConfigurationSoapIn"/>
+            <wsdl:output message="tns:GetUserConfigurationSoapOut"/>
+        </wsdl:operation>
+        <wsdl:operation name="UpdateUserConfiguration">
+            <wsdl:input message="tns:UpdateUserConfigurationSoapIn"/>
+            <wsdl:output message="tns:UpdateUserConfigurationSoapOut"/>
+        </wsdl:operation>
+
+        <!-- Availability Service Operations -->
+
+        <!-- GetUserAvailability -->
+        <wsdl:operation name="GetUserAvailability">
+            <wsdl:input message="tns:GetUserAvailabilitySoapIn"/>
+            <wsdl:output message="tns:GetUserAvailabilitySoapOut"/>
+        </wsdl:operation>
+
+        <!-- GetUserOofSettings -->
+        <wsdl:operation name="GetUserOofSettings">
+            <wsdl:input message="tns:GetUserOofSettingsSoapIn"/>
+            <wsdl:output message="tns:GetUserOofSettingsSoapOut"/>
+        </wsdl:operation>
+
+        <!-- SetUserOofSettings -->
+        <wsdl:operation name="SetUserOofSettings">
+            <wsdl:input message="tns:SetUserOofSettingsSoapIn"/>
+            <wsdl:output message="tns:SetUserOofSettingsSoapOut"/>
+        </wsdl:operation>
+
+        <!-- GetServiceConfiguration Operations -->
+        <wsdl:operation name="GetServiceConfiguration">
+          <wsdl:input message="tns:GetServiceConfigurationSoapIn"/>
+          <wsdl:output message="tns:GetServiceConfigurationSoapOut"/>
+        </wsdl:operation>
+
+      <!-- MailTips Operations -->
+        <wsdl:operation name="GetMailTips">
+            <wsdl:input message="tns:GetMailTipsSoapIn"/>
+            <wsdl:output message="tns:GetMailTipsSoapOut"/>
+        </wsdl:operation>
+
+        <!-- UM Operations -->
+        <wsdl:operation name="PlayOnPhone">
+            <wsdl:input message="tns:PlayOnPhoneSoapIn"/>
+            <wsdl:output message="tns:PlayOnPhoneSoapOut"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="GetPhoneCallInformation">
+            <wsdl:input message="tns:GetPhoneCallInformationSoapIn"/>
+            <wsdl:output message="tns:GetPhoneCallInformationSoapOut"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="DisconnectPhoneCall">
+            <wsdl:input message="tns:DisconnectPhoneCallSoapIn"/>
+            <wsdl:output message="tns:DisconnectPhoneCallSoapOut"/>
+        </wsdl:operation>
+
+      <!-- Sharing Operations -->
+        <wsdl:operation name="GetSharingMetadata">
+            <wsdl:input message="tns:GetSharingMetadataSoapIn"/>
+            <wsdl:output message="tns:GetSharingMetadataSoapOut"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="RefreshSharingFolder">
+            <wsdl:input message="tns:RefreshSharingFolderSoapIn"/>
+            <wsdl:output message="tns:RefreshSharingFolderSoapOut"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="GetSharingFolder">
+            <wsdl:input message="tns:GetSharingFolderSoapIn"/>
+            <wsdl:output message="tns:GetSharingFolderSoapOut"/>
+        </wsdl:operation>
+    
+      <!-- Find A Room Service Operations -->
+
+        <!-- GetRoomLists -->
+        <wsdl:operation name="GetRoomLists">
+          <wsdl:input message="tns:GetRoomListsSoapIn"/>
+          <wsdl:output message="tns:GetRoomListsSoapOut"/>
+        </wsdl:operation>
+
+        <!-- GetRooms -->
+        <wsdl:operation name="GetRooms">
+          <wsdl:input message="tns:GetRoomsSoapIn"/>
+          <wsdl:output message="tns:GetRoomsSoapOut"/>
+        </wsdl:operation>
+
+      <!-- MessageTracking -->
+        <wsdl:operation name="FindMessageTrackingReport">
+            <wsdl:input message="tns:FindMessageTrackingReportSoapIn"/>
+            <wsdl:output message="tns:FindMessageTrackingReportSoapOut"/>
+        </wsdl:operation>
+        
+        <wsdl:operation name="GetMessageTrackingReport">
+            <wsdl:input message="tns:GetMessageTrackingReportSoapIn"/>
+            <wsdl:output message="tns:GetMessageTrackingReportSoapOut"/>
+        </wsdl:operation>
+    
+  </wsdl:portType>
+
+    <wsdl:binding name="ExchangeServiceBinding" type="tns:ExchangeServicePortType">
+        <wsdl:documentation>
+            <wsi:Claim conformsTo="http://ws-i.org/profiles/basic/1.0" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/"/>
+        </wsdl:documentation>
+        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+        <wsdl:operation name="ResolveNames">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/ResolveNames"/>
+            <wsdl:input>
+                <soap:body parts="request" use="literal"/>
+                <soap:header message="tns:ResolveNamesSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:ResolveNamesSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:ResolveNamesSoapIn" part="RequestVersion" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="ResolveNamesResult" use="literal"/>
+                <soap:header message="tns:ResolveNamesSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="ExpandDL">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/ExpandDL"/>
+            <wsdl:input>
+                <soap:header message="tns:ExpandDLSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:ExpandDLSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:ExpandDLSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="ExpandDLResult" use="literal"/>
+                <soap:header message="tns:ExpandDLSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="GetServerTimeZones">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetServerTimeZones"/>
+            <wsdl:input>
+                <soap:header message="tns:GetServerTimeZonesSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:GetServerTimeZonesSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetServerTimeZonesResult" use="literal"/>
+                <soap:header message="tns:GetServerTimeZonesSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="FindFolder">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindFolder"/>
+            <wsdl:input>
+                <soap:header message="tns:FindFolderSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:FindFolderSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:FindFolderSoapIn" part="RequestVersion" use="literal"/>
+                <soap:header message="tns:FindFolderSoapIn" part="TimeZoneContext" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="FindFolderResult" use="literal"/>
+                <soap:header message="tns:FindFolderSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+    <!--  Bedework:
+          Comment out Impersonation as null parameters don't work.
+          Reinstate as separate message perhaps?
+     -->
+        <wsdl:operation name="FindItem">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindItem"/>
+            <wsdl:input>
+                <!-- <soap:header message="tns:FindItemSoapIn" part="Impersonation" use="literal"/> -->
+                <soap:header message="tns:FindItemSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:FindItemSoapIn" part="RequestVersion" use="literal"/>
+                <!--<soap:header message="tns:FindItemSoapIn" part="TimeZoneContext" use="literal"/> -->
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="FindItemResult" use="literal"/>
+                <soap:header message="tns:FindItemSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="GetFolder">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetFolder"/>
+            <wsdl:input>
+                <soap:header message="tns:GetFolderSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:GetFolderSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:GetFolderSoapIn" part="RequestVersion" use="literal"/>
+                <soap:header message="tns:GetFolderSoapIn" part="TimeZoneContext" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetFolderResult" use="literal"/>
+                <soap:header message="tns:GetFolderSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="ConvertId">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/ConvertId"/>
+            <wsdl:input>
+                <soap:header message="tns:ConvertIdSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="ConvertIdResult" use="literal"/>
+                <soap:header message="tns:ConvertIdSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="CreateFolder">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateFolder"/>
+            <wsdl:input>
+                <soap:header message="tns:CreateFolderSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:CreateFolderSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:CreateFolderSoapIn" part="RequestVersion" use="literal"/>
+                <soap:header message="tns:CreateFolderSoapIn" part="TimeZoneContext" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="CreateFolderResult" use="literal"/>
+                <soap:header message="tns:CreateFolderSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="DeleteFolder">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteFolder"/>
+            <wsdl:input>
+                <soap:header message="tns:DeleteFolderSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:DeleteFolderSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:DeleteFolderSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="DeleteFolderResult" use="literal"/>
+                <soap:header message="tns:DeleteFolderSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="UpdateFolder">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateFolder"/>
+            <wsdl:input>
+                <soap:header message="tns:UpdateFolderSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:UpdateFolderSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:UpdateFolderSoapIn" part="RequestVersion" use="literal"/>
+                <soap:header message="tns:UpdateFolderSoapIn" part="TimeZoneContext" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="UpdateFolderResult" use="literal"/>
+                <soap:header message="tns:UpdateFolderSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="MoveFolder">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/MoveFolder"/>
+            <wsdl:input>
+                <soap:header message="tns:MoveFolderSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:MoveFolderSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:MoveFolderSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="MoveFolderResult" use="literal"/>
+                <soap:header message="tns:MoveFolderSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="CopyFolder">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CopyFolder"/>
+            <wsdl:input>
+                <soap:header message="tns:CopyFolderSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:CopyFolderSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:CopyFolderSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="CopyFolderResult" use="literal"/>
+                <soap:header message="tns:CopyFolderSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+    <!--  Bedework:
+          Comment out Impersonation as null parameters don't work.
+          Reinstate as separate message perhaps?
+     -->
+        <wsdl:operation name="Subscribe">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/Subscribe"/>
+            <wsdl:input>
+                <!-- <soap:header message="tns:SubscribeSoapIn" part="Impersonation" use="literal"/> -->
+                <soap:header message="tns:SubscribeSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:SubscribeSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="SubscribeResult" use="literal"/>
+                <soap:header message="tns:SubscribeSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="Unsubscribe">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/Unsubscribe"/>
+            <wsdl:input>
+                <soap:header message="tns:UnsubscribeSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:UnsubscribeSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:UnsubscribeSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="UnsubscribeResult" use="literal"/>
+                <soap:header message="tns:UnsubscribeSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="GetEvents">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetEvents"/>
+            <wsdl:input>
+                <soap:header message="tns:GetEventsSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:GetEventsSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:GetEventsSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetEventsResult" use="literal"/>
+                <soap:header message="tns:GetEventsSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="SyncFolderHierarchy">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SyncFolderHierarchy"/>
+            <wsdl:input>
+                <soap:header message="tns:SyncFolderHierarchySoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:SyncFolderHierarchySoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:SyncFolderHierarchySoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="SyncFolderHierarchyResult" use="literal"/>
+                <soap:header message="tns:SyncFolderHierarchySoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="SyncFolderItems">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SyncFolderItems"/>
+            <wsdl:input>
+                <soap:header message="tns:SyncFolderItemsSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:SyncFolderItemsSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:SyncFolderItemsSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="SyncFolderItemsResult" use="literal"/>
+                <soap:header message="tns:SyncFolderItemsSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+    <!--  Bedework:
+          Comment out Impersonation as null parameters don't work.
+          Reinstate as separate message perhaps?
+     -->
+        <wsdl:operation name="GetItem">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetItem"/>
+            <wsdl:input>
+            <!-- 
+                <soap:header message="tns:GetItemSoapIn" part="Impersonation" use="literal"/> -->
+                <soap:header message="tns:GetItemSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:GetItemSoapIn" part="RequestVersion" use="literal"/>
+                <!--
+                <soap:header message="tns:GetItemSoapIn" part="TimeZoneContext" use="literal"/> -->
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetItemResult" use="literal"/>
+                <soap:header message="tns:GetItemSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="CreateItem">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateItem"/>
+            <wsdl:input>
+                <soap:header message="tns:CreateItemSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:CreateItemSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:CreateItemSoapIn" part="RequestVersion" use="literal"/>
+                <soap:header message="tns:CreateItemSoapIn" part="TimeZoneContext" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="CreateItemResult" use="literal"/>
+                <soap:header message="tns:CreateItemSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="DeleteItem">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteItem"/>
+            <wsdl:input>
+                <soap:header message="tns:DeleteItemSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:DeleteItemSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:DeleteItemSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="DeleteItemResult" use="literal"/>
+                <soap:header message="tns:DeleteItemSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="UpdateItem">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateItem"/>
+            <wsdl:input>
+                <soap:header message="tns:UpdateItemSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:UpdateItemSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:UpdateItemSoapIn" part="RequestVersion" use="literal"/>
+                <soap:header message="tns:UpdateItemSoapIn" part="TimeZoneContext" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="UpdateItemResult" use="literal"/>
+                <soap:header message="tns:UpdateItemSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="SendItem">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SendItem"/>
+            <wsdl:input>
+                <soap:header message="tns:SendItemSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:SendItemSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:SendItemSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="SendItemResult" use="literal"/>
+                <soap:header message="tns:SendItemSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="MoveItem">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/MoveItem"/>
+            <wsdl:input>
+                <soap:header message="tns:MoveItemSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:MoveItemSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:MoveItemSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="MoveItemResult" use="literal"/>
+                <soap:header message="tns:MoveItemSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="CopyItem">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CopyItem"/>
+            <wsdl:input>
+                <soap:header message="tns:CopyItemSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:CopyItemSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:CopyItemSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="CopyItemResult" use="literal"/>
+                <soap:header message="tns:CopyItemSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="CreateAttachment">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateAttachment"/>
+            <wsdl:input>
+                <soap:header message="tns:CreateAttachmentSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:CreateAttachmentSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:CreateAttachmentSoapIn" part="RequestVersion" use="literal"/>
+                <soap:header message="tns:CreateAttachmentSoapIn" part="TimeZoneContext" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="CreateAttachmentResult" use="literal"/>
+                <soap:header message="tns:CreateAttachmentSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="DeleteAttachment">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteAttachment"/>
+            <wsdl:input>
+                <soap:header message="tns:DeleteAttachmentSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:DeleteAttachmentSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:DeleteAttachmentSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="DeleteAttachmentResult" use="literal"/>
+                <soap:header message="tns:DeleteAttachmentSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        <wsdl:operation name="GetAttachment">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetAttachment"/>
+            <wsdl:input>
+                <soap:header message="tns:GetAttachmentSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:GetAttachmentSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:GetAttachmentSoapIn" part="RequestVersion" use="literal"/>
+                <soap:header message="tns:GetAttachmentSoapIn" part="TimeZoneContext" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetAttachmentResult" use="literal"/>
+                <soap:header message="tns:GetAttachmentSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="CreateManagedFolder">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateManagedFolder"/>
+            <wsdl:input>
+                <soap:header message="tns:CreateManagedFolderSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:CreateManagedFolderSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:CreateManagedFolderSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="CreateManagedFolderResult" use="literal"/>
+                <soap:header message="tns:CreateManagedFolderSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="GetDelegate">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetDelegate"/>
+            <wsdl:input>
+                <soap:header message="tns:GetDelegateSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:GetDelegateSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:GetDelegateSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetDelegateResult" use="literal"/>
+                <soap:header message="tns:GetDelegateSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="AddDelegate">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/AddDelegate"/>
+            <wsdl:input>
+                <soap:header message="tns:AddDelegateSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:AddDelegateSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:AddDelegateSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="AddDelegateResult" use="literal"/>
+                <soap:header message="tns:AddDelegateSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="RemoveDelegate">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/RemoveDelegate"/>
+            <wsdl:input>
+                <soap:header message="tns:RemoveDelegateSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:RemoveDelegateSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:RemoveDelegateSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="RemoveDelegateResult" use="literal"/>
+                <soap:header message="tns:RemoveDelegateSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="UpdateDelegate">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateDelegate"/>
+            <wsdl:input>
+                <soap:header message="tns:UpdateDelegateSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:UpdateDelegateSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:UpdateDelegateSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="UpdateDelegateResult" use="literal"/>
+                <soap:header message="tns:UpdateDelegateSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="CreateUserConfiguration">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/CreateUserConfiguration"/>
+            <wsdl:input>
+                <soap:header message="tns:CreateUserConfigurationSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:CreateUserConfigurationSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:CreateUserConfigurationSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="CreateUserConfigurationResult" use="literal"/>
+                <soap:header message="tns:CreateUserConfigurationSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="DeleteUserConfiguration">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DeleteUserConfiguration"/>
+            <wsdl:input>
+                <soap:header message="tns:DeleteUserConfigurationSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:DeleteUserConfigurationSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:DeleteUserConfigurationSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="DeleteUserConfigurationResult" use="literal"/>
+                <soap:header message="tns:DeleteUserConfigurationSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="GetUserConfiguration">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetUserConfiguration"/>
+            <wsdl:input>
+                <soap:header message="tns:GetUserConfigurationSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:GetUserConfigurationSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:GetUserConfigurationSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetUserConfigurationResult" use="literal"/>
+                <soap:header message="tns:GetUserConfigurationSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="UpdateUserConfiguration">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/UpdateUserConfiguration"/>
+            <wsdl:input>
+                <soap:header message="tns:UpdateUserConfigurationSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:UpdateUserConfigurationSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:UpdateUserConfigurationSoapIn" part="RequestVersion" use="literal"/>
+                <soap:body parts="request" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="UpdateUserConfigurationResult" use="literal"/>
+                <soap:header message="tns:UpdateUserConfigurationSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <!-- Availability Service -->
+
+        <!-- GetUserAvailability -->
+        <wsdl:operation name="GetUserAvailability">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetUserAvailability"/>
+            <wsdl:input>
+                <soap:body parts="GetUserAvailabilityRequest" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetUserAvailabilityResult" use="literal"/>
+                <soap:header message="tns:GetUserAvailabilitySoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <!-- GetUserOofSettings -->
+        <wsdl:operation name="GetUserOofSettings">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetUserOofSettings"/>
+            <wsdl:input>
+                <soap:body parts="GetUserOofSettingsRequest" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetUserOofSettingsResult" use="literal"/>
+                <soap:header message="tns:GetUserOofSettingsSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <!-- SetUserOofSettings -->
+        <wsdl:operation name="SetUserOofSettings">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/SetUserOofSettings"/>
+            <wsdl:input>
+                <soap:body parts="SetUserOofSettingsRequest" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="SetUserOofSettingsResult" use="literal"/>
+                <soap:header message="tns:SetUserOofSettingsSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+      <!-- GetServiceConfiguration Bindings -->
+
+      <!-- GetServiceConfiguration -->
+      <wsdl:operation name="GetServiceConfiguration">
+          <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetServiceConfiguration"/>
+          <wsdl:input>
+              <soap:body parts="request" use="literal"/>
+              <soap:header message="tns:GetServiceConfigurationSoapIn" part="Impersonation" use="literal"/>
+              <soap:header message="tns:GetServiceConfigurationSoapIn" part="RequestVersion" use="literal"/>
+              <soap:header message="tns:GetServiceConfigurationSoapIn" part="MailboxCulture" use="literal"/>
+          </wsdl:input>
+          <wsdl:output>
+              <soap:body parts="GetServiceConfigurationResult" use="literal"/>
+              <soap:header message="tns:GetServiceConfigurationSoapOut" part="ServerVersion" use="literal"/>
+          </wsdl:output>
+      </wsdl:operation>
+
+        <!-- GetMailTips -->
+        <wsdl:operation name="GetMailTips">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetMailTips"/>
+            <wsdl:input>
+                <soap:body parts="request" use="literal"/>
+                <soap:header message="tns:GetMailTipsSoapIn" part="RequestVersion" use="literal"/>
+                <soap:header message="tns:GetMailTipsSoapIn" part="MailboxCulture" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetMailTipsResult" use="literal"/>
+                <soap:header message="tns:GetMailTipsSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <!-- UMBindings -->
+        <wsdl:operation name="PlayOnPhone">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/PlayOnPhone"/>
+            <wsdl:input>
+                <soap:body parts="request" use="literal"/>
+                <soap:header message="tns:PlayOnPhoneSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:PlayOnPhoneSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:PlayOnPhoneSoapIn" part="RequestVersion" use="literal"/>  
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="PlayOnPhoneResult" use="literal"/>
+                <soap:header message="tns:PlayOnPhoneSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="GetPhoneCallInformation">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetPhoneCallInformation"/>
+            <wsdl:input>
+                <soap:body parts="request" use="literal"/>
+                <soap:header message="tns:GetPhoneCallInformationSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:GetPhoneCallInformationSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:GetPhoneCallInformationSoapIn" part="RequestVersion" use="literal"/>  
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetPhoneCallInformationResult" use="literal"/>
+                <soap:header message="tns:GetPhoneCallInformationSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="DisconnectPhoneCall">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/DisconnectPhoneCall"/>
+            <wsdl:input>
+                <soap:body parts="request" use="literal"/>
+                <soap:header message="tns:DisconnectPhoneCallSoapIn" part="Impersonation" use="literal"/>
+                <soap:header message="tns:DisconnectPhoneCallSoapIn" part="MailboxCulture" use="literal"/>
+                <soap:header message="tns:DisconnectPhoneCallSoapIn" part="RequestVersion" use="literal"/>  
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="DisconnectPhoneCallResult" use="literal"/>
+                <soap:header message="tns:DisconnectPhoneCallSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        
+        <!-- Sharing -->
+
+        <!-- GetSharingMetadata -->
+        <wsdl:operation name="GetSharingMetadata">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetSharingMetadata"/>
+            <wsdl:input>
+                <soap:body parts="request" use="literal"/>
+                <soap:header message="tns:GetSharingMetadataSoapIn" part="RequestVersion" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetSharingMetadataResult" use="literal"/>
+                <soap:header message="tns:GetSharingMetadataSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <!-- RefreshSharingFolder -->
+        <wsdl:operation name="RefreshSharingFolder">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/RefreshSharingFolder"/>
+            <wsdl:input>
+                <soap:body parts="request" use="literal"/>
+                <soap:header message="tns:RefreshSharingFolderSoapIn" part="RequestVersion" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="RefreshSharingFolderResult" use="literal"/>
+                <soap:header message="tns:RefreshSharingFolderSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <!-- GetSharingFolder -->
+        <wsdl:operation name="GetSharingFolder">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetSharingFolder"/>
+            <wsdl:input>
+                <soap:body parts="request" use="literal"/>
+                <soap:header message="tns:GetSharingFolderSoapIn" part="RequestVersion" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetSharingFolderResult" use="literal"/>
+                <soap:header message="tns:GetSharingFolderSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <!-- Find A Room Service -->
+
+        <!-- GetRoomLists -->
+        <wsdl:operation name="GetRoomLists">
+          <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetRoomLists"/>
+          <wsdl:input>
+            <soap:body parts="GetRoomListsRequest" use="literal"/>
+            <soap:header message="tns:GetRoomListsSoapIn" part="Impersonation" use="literal"/>
+            <soap:header message="tns:GetRoomListsSoapIn" part="MailboxCulture" use="literal"/>
+            <soap:header message="tns:GetRoomListsSoapIn" part="RequestVersion" use="literal"/>
+          </wsdl:input>
+
+          <wsdl:output>
+            <soap:body parts="GetRoomListsResult" use="literal"/>
+            <soap:header message="tns:GetRoomListsSoapOut" part="ServerVersion" use="literal"/>
+          </wsdl:output>
+        </wsdl:operation>
+
+        <!-- GetRooms -->
+        <wsdl:operation name="GetRooms">
+          <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetRooms"/>
+          <wsdl:input>
+            <soap:body parts="GetRoomsRequest" use="literal"/>
+            <soap:header message="tns:GetRoomsSoapIn" part="Impersonation" use="literal"/>
+            <soap:header message="tns:GetRoomsSoapIn" part="MailboxCulture" use="literal"/>
+            <soap:header message="tns:GetRoomsSoapIn" part="RequestVersion" use="literal"/>
+          </wsdl:input>
+
+          <wsdl:output>
+            <soap:body parts="GetRoomsResult" use="literal"/>
+            <soap:header message="tns:GetRoomsSoapOut" part="ServerVersion" use="literal"/>
+          </wsdl:output>
+        </wsdl:operation>
+
+        <!-- MessageTracking -->
+        <wsdl:operation name="FindMessageTrackingReport">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/FindMessageTrackingReport"/>
+            <wsdl:input>
+                <soap:body parts="request" use="literal"/>
+                <soap:header message="tns:FindMessageTrackingReportSoapIn" part="RequestVersion" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="FindMessageTrackingReportResult" use="literal"/>
+                <soap:header message="tns:FindMessageTrackingReportSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+        <wsdl:operation name="GetMessageTrackingReport">
+            <soap:operation soapAction="http://schemas.microsoft.com/exchange/services/2006/messages/GetMessageTrackingReport"/>
+            <wsdl:input>
+                <soap:body parts="request" use="literal"/>
+                <soap:header message="tns:GetMessageTrackingReportSoapIn" part="RequestVersion" use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body parts="GetMessageTrackingReportResult" use="literal"/>
+                <soap:header message="tns:GetMessageTrackingReportSoapOut" part="ServerVersion" use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+
+    </wsdl:binding>
+
+  <wsdl:service name="ExchangeWebService">
+    <wsdl:port name="ExchangeWebPort" binding="tns:ExchangeServiceBinding">
+       <soap:address location="https://tootles-fe1.neverland.rpi.edu/EWS/Exchange.asmx"></soap:address>
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>


Property changes on: trunk/exchangews/gensrc
___________________________________________________________________
Name: svn:ignore
   + src


Modified: trunk/exchangews/messages.xsd
===================================================================
--- trunk/exchangews/messages.xsd	2011-02-22 17:03:44 UTC (rev 6)
+++ trunk/exchangews/messages.xsd	2011-02-22 18:27:42 UTC (rev 7)
@@ -1,1015 +1,1943 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xs:schema xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:tns="http://schemas.microsoft.com/exchange/services/2006/messages" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/exchange/services/2006/messages" id="messages" xmlns:xs="http://www.w3.org/2001/XMLSchema">
-  <xs:import schemaLocation="types.xsd" namespace="http://schemas.microsoft.com/exchange/services/2006/types" />
-  <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="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="ErrorCalendarViewRangeTooBig" />
-      <xs:enumeration value="ErrorCannotCreateCalendarItemInNonCalendarFolder" />
-      <xs:enumeration value="ErrorCannotCreateContactInNonContactFolder" />
-      <xs:enumeration value="ErrorCannotCreateTaskInNonTaskFolder" />
-      <xs:enumeration value="ErrorCannotDeleteObject" />
-      <xs:enumeration value="ErrorCannotOpenFileAttachment" />
-      <xs:enumeration value="ErrorCannotDeleteTaskOccurrence" />
-      <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="ErrorDeleteDistinguishedFolder" />
-      <xs:enumeration value="ErrorDeleteItemsFailed" />
-      <xs:enumeration value="ErrorDuplicateInputFolderNames" />
-      <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="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="ErrorInvalidExcludesRestriction" />
-      <xs:enumeration value="ErrorInvalidExpressionTypeForSubFilter" />
-      <xs:enumeration value="ErrorInvalidExtendedProperty" />
-      <xs:enumeration value="ErrorInvalidExtendedPropertyValue" />
-      <xs:enumeration value="ErrorInvalidFolderId" />
-      <xs:enumeration value="ErrorInvalidFractionalPagingParameters" />
-      <xs:enumeration value="ErrorInvalidFreeBusyViewType" />
-      <xs:enumeration value="ErrorInvalidId" />
-      <xs:enumeration value="ErrorInvalidIdEmpty" />
-      <xs:enumeration value="ErrorInvalidIdMalformed" />
-      <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="ErrorInvalidNetworkServiceContext" />
-      <xs:enumeration value="ErrorInvalidOofParameter" />
-      <xs:enumeration value="ErrorInvalidPagingMaxRows" />
-      <xs:enumeration value="ErrorInvalidParentFolder" />
-      <xs:enumeration value="ErrorInvalidPercentCompleteValue" />
-      <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="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="ErrorInvalidSid" />
-      <xs:enumeration value="ErrorInvalidSmtpAddress" />
-      <xs:enumeration value="ErrorInvalidSubfilterType" />
-      <xs:enumeration value="ErrorInvalidSubfilterTypeNotAttendeeType" />
-      <xs:enumeration value="ErrorInvalidSubfilterTypeNotRecipientType" />
-      <xs:enumeration value="ErrorInvalidSubscription" />
-      <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="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="ErrorNoFolderClassOverride" />
-      <xs:enumeration value="ErrorNoFreeBusyAccess" />
-      <xs:enumeration value="ErrorNonExistentMailbox" />
-      <xs:enumeration value="ErrorNonPrimarySmtpAddress" />
-      <xs:enumeration value="ErrorNoPropertyTagForCustomProperties" />
-      <xs:enumeration value="ErrorNotEnoughMemory" />
-      <xs:enumeration value="ErrorObjectTypeChanged" />
-      <xs:enumeration value="ErrorOccurrenceCrossingBoundary" />
-      <xs:enumeration value="ErrorOccurrenceTimeSpanTooBig" />
-      <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="ErrorProxyRequestNotAllowed" />
-      <xs:enumeration value="ErrorProxyRequestProcessingFailed" />
-      <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="ErrorRequestAborted" />
-      <xs:enumeration value="ErrorRequestStreamTooBig" />
-      <xs:enumeration value="ErrorRequiredPropertyMissing" />
-      <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="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 minOccurs="0" name="MessageText" type="xs:string" />
-      <xs:element minOccurs="0" name="ResponseCode" type="tns:ResponseCodeType" />
-      <xs:element minOccurs="0" name="DescriptiveLinkKey" type="xs:int" />
-      <xs:element minOccurs="0" name="MessageXml">
-        <xs:complexType>
-          <xs:sequence>
-            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" />
-          </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="tns:ItemInfoResponseMessageType" />
-      <xs:element name="DeleteItemResponseMessage" type="tns:ResponseMessageType" />
-      <xs:element name="GetItemResponseMessage" type="tns:ItemInfoResponseMessageType" />
-      <xs:element name="UpdateItemResponseMessage" type="tns:ItemInfoResponseMessageType" />
-      <xs:element name="SendItemResponseMessage" type="tns:ResponseMessageType" />
-      <xs:element name="DeleteFolderResponseMessage" type="tns:ResponseMessageType" />
-      <xs:element name="CreateFolderResponseMessage" type="tns:FolderInfoResponseMessageType" />
-      <xs:element name="GetFolderResponseMessage" type="tns:FolderInfoResponseMessageType" />
-      <xs:element name="FindFolderResponseMessage" type="tns:FindFolderResponseMessageType" />
-      <xs:element name="UpdateFolderResponseMessage" type="tns:FolderInfoResponseMessageType" />
-      <xs:element name="MoveFolderResponseMessage" type="tns:FolderInfoResponseMessageType" />
-      <xs:element name="CopyFolderResponseMessage" type="tns:FolderInfoResponseMessageType" />
-      <xs:element name="CreateAttachmentResponseMessage" type="tns:AttachmentInfoResponseMessageType" />
-      <xs:element name="DeleteAttachmentResponseMessage" type="tns:DeleteAttachmentResponseMessageType" />
-      <xs:element name="GetAttachmentResponseMessage" type="tns:AttachmentInfoResponseMessageType" />
-      <xs:element name="FindItemResponseMessage" type="tns:FindItemResponseMessageType" />
-      <xs:element name="MoveItemResponseMessage" type="tns:ItemInfoResponseMessageType" />
-      <xs:element name="CopyItemResponseMessage" type="tns:ItemInfoResponseMessageType" />
-      <xs:element name="ResolveNamesResponseMessage" type="tns:ResolveNamesResponseMessageType" />
-      <xs:element name="ExpandDLResponseMessage" type="tns:ExpandDLResponseMessageType" />
-      <xs:element name="GetEventsResponseMessage" type="tns:GetEventsResponseMessageType" />
-      <xs:element name="SubscribeResponseMessage" type="tns:SubscribeResponseMessageType" />
-      <xs:element name="UnsubscribeResponseMessage" type="tns:ResponseMessageType" />
-      <xs:element name="SendNotificationResponseMessage" type="tns:SendNotificationResponseMessageType" />
-      <xs:element name="SyncFolderHierarchyResponseMessage" type="tns:SyncFolderHierarchyResponseMessageType" />
-      <xs:element name="SyncFolderItemsResponseMessage" type="tns:SyncFolderItemsResponseMessageType" />
-      <xs:element name="CreateManagedFolderResponseMessage" type="tns:FolderInfoResponseMessageType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="BaseResponseMessageType">
-    <xs:sequence>
-      <xs:element name="ResponseMessages" type="tns:ArrayOfResponseMessagesType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="BaseRequestType" abstract="true" />
-  <xs:complexType name="GetFolderType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns: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="tns:GetFolderType" />
-  <xs:complexType name="CreateFolderType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns: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="tns:CreateFolderType" />
-  <xs:complexType name="FindFolderType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element name="FolderShape" type="t:FolderResponseShapeType" />
-          <xs:choice minOccurs="0" maxOccurs="1">
-            <xs:element name="IndexedPageFolderView" type="t:IndexedPageViewType" />
-            <xs:element name="FractionalPageFolderView" type="t:FractionalPageViewType" />
-          </xs:choice>
-          <xs:element minOccurs="0" name="Restriction" type="t:RestrictionType" />
-          <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="tns:FindFolderType" />
-  <xs:complexType name="FolderInfoResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:ResponseMessageType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="Folders" type="t:ArrayOfFoldersType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="FindFolderResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:ResponseMessageType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="RootFolder" type="t:FindFolderParentType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="FindFolderResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="FindFolderResponse" type="tns:FindFolderResponseType" />
-  <xs:complexType name="DeleteFolderType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns: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="tns:DeleteFolderType" />
-  <xs:complexType name="DeleteFolderResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="DeleteFolderResponse" type="tns:DeleteFolderResponseType" />
-  <xs:complexType name="BaseMoveCopyFolderType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns: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>
-  <xs:complexType name="MoveFolderType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseMoveCopyFolderType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="CopyFolderType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseMoveCopyFolderType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="MoveFolder" type="tns:MoveFolderType" />
-  <xs:element name="CopyFolder" type="tns:CopyFolderType" />
-  <xs:complexType name="UpdateFolderType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element name="FolderChanges" type="t:NonEmptyArrayOfFolderChangesType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="UpdateFolder" type="tns:UpdateFolderType" />
-  <xs:complexType name="CreateFolderResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="CreateFolderResponse" type="tns:CreateFolderResponseType" />
-  <xs:complexType name="GetFolderResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="GetFolderResponse" type="tns:GetFolderResponseType" />
-  <xs:complexType name="UpdateFolderResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="UpdateFolderResponse" type="tns:UpdateFolderResponseType" />
-  <xs:complexType name="MoveFolderResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="CopyFolderResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="MoveFolderResponse" type="tns:MoveFolderResponseType" />
-  <xs:element name="CopyFolderResponse" type="tns:CopyFolderResponseType" />
-  <xs:complexType name="GetItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns: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="tns:GetItemType" />
-  <xs:complexType name="CreateItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="SavedItemFolderId" type="t:TargetFolderIdType" />
-          <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="tns:CreateItemType" />
-  <xs:complexType name="UpdateItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="SavedItemFolderId" type="t:TargetFolderIdType" />
-          <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="tns:UpdateItemType" />
-  <xs:complexType name="ItemInfoResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:ResponseMessageType">
-        <xs:sequence>
-          <xs:element name="Items" type="t:ArrayOfRealItemsType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="DeleteItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns: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="tns:DeleteItemType" />
-  <xs:complexType name="AttachmentInfoResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:ResponseMessageType">
-        <xs:sequence>
-          <xs:element name="Attachments" type="t:ArrayOfAttachmentsType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="DeleteAttachmentResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:ResponseMessageType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="RootItemId" type="t:RootItemIdType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="BaseMoveCopyItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns: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>
-  <xs:complexType name="MoveItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseMoveCopyItemType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="CopyItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseMoveCopyItemType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="MoveItem" type="tns:MoveItemType" />
-  <xs:element name="CopyItem" type="tns:CopyItemType" />
-  <xs:complexType name="SendItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element name="ItemIds" type="t:NonEmptyArrayOfBaseItemIdsType" />
-          <xs:element minOccurs="0" name="SavedItemFolderId" type="t:TargetFolderIdType" />
-        </xs:sequence>
-        <xs:attribute name="SaveItemToFolder" type="xs:boolean" use="required" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="SendItem" type="tns:SendItemType" />
-  <xs:complexType name="SendItemResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="SendItemResponse" type="tns:SendItemResponseType" />
-  <xs:complexType name="FindItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns: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 minOccurs="0" name="Restriction" type="t:RestrictionType" />
-          <xs:element minOccurs="0" name="SortOrder" type="t:NonEmptyArrayOfFieldOrdersType" />
-          <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="tns:FindItemType" />
-  <xs:complexType name="CreateAttachmentType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element minOccurs="1" name="ParentItemId" type="t:ItemIdType" />
-          <xs:element name="Attachments" type="t:NonEmptyArrayOfAttachmentsType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="CreateAttachment" type="tns:CreateAttachmentType" />
-  <xs:complexType name="CreateAttachmentResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="CreateAttachmentResponse" type="tns:CreateAttachmentResponseType" />
-  <xs:complexType name="DeleteAttachmentType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element name="AttachmentIds" type="t:NonEmptyArrayOfRequestAttachmentIdsType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="DeleteAttachment" type="tns:DeleteAttachmentType" />
-  <xs:complexType name="DeleteAttachmentResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="DeleteAttachmentResponse" type="tns:DeleteAttachmentResponseType" />
-  <xs:complexType name="GetAttachmentType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="AttachmentShape" type="t:AttachmentResponseShapeType" />
-          <xs:element name="AttachmentIds" type="t:NonEmptyArrayOfRequestAttachmentIdsType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="GetAttachment" type="tns:GetAttachmentType" />
-  <xs:complexType name="GetAttachmentResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="GetAttachmentResponse" type="tns:GetAttachmentResponseType" />
-  <xs:complexType name="CreateItemResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="CreateItemResponse" type="tns:CreateItemResponseType" />
-  <xs:complexType name="UpdateItemResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="UpdateItemResponse" type="tns:UpdateItemResponseType" />
-  <xs:complexType name="GetItemResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="GetItemResponse" type="tns:GetItemResponseType" />
-  <xs:complexType name="MoveItemResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="CopyItemResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="MoveItemResponse" type="tns:MoveItemResponseType" />
-  <xs:element name="CopyItemResponse" type="tns:CopyItemResponseType" />
-  <xs:complexType name="DeleteItemResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="DeleteItemResponse" type="tns:DeleteItemResponseType" />
-  <xs:complexType name="FindItemResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:ResponseMessageType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="RootFolder" type="t:FindItemParentType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="FindItemResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="FindItemResponse" type="tns:FindItemResponseType" />
-  <xs:complexType name="ResolveNamesType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element name="UnresolvedEntry" type="t:NonEmptyStringType" />
-        </xs:sequence>
-        <xs:attribute name="ReturnFullContactData" type="xs:boolean" use="required" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="ResolveNames" type="tns:ResolveNamesType" />
-  <xs:complexType name="ResolveNamesResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:ResponseMessageType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="ResolutionSet" type="t:ArrayOfResolutionType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="ResolveNamesResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="ResolveNamesResponse" type="tns:ResolveNamesResponseType" />
-  <xs:complexType name="ExpandDLType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element name="Mailbox" type="t:EmailAddressType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="ExpandDL" type="tns:ExpandDLType" />
-  <xs:complexType name="ExpandDLResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:ResponseMessageType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="DLExpansion" type="t:ArrayOfDLExpansionType" />
-        </xs:sequence>
-        <xs:attributeGroup ref="t:FindResponsePagingAttributes" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="ExpandDLResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="ExpandDLResponse" type="tns:ExpandDLResponseType" />
-  <xs:complexType name="CreateManagedFolderRequestType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element name="FolderNames" type="t:NonEmptyArrayOfFolderNamesType" />
-          <xs:element minOccurs="0" name="Mailbox" type="t:EmailAddressType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="CreateManagedFolder" type="tns:CreateManagedFolderRequestType" />
-  <xs:complexType name="CreateManagedFolderResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="CreateManagedFolderResponse" type="tns:CreateManagedFolderResponseType" />
-  <xs:complexType name="SubscribeType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns: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="tns:SubscribeType" />
-  <xs:complexType name="SubscribeResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:ResponseMessageType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="SubscriptionId" type="t:SubscriptionIdType" />
-          <xs:element minOccurs="0" name="Watermark" type="t:WatermarkType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="SubscribeResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="SubscribeResponse" type="tns:SubscribeResponseType" />
-  <xs:complexType name="UnsubscribeType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element name="SubscriptionId" type="t:SubscriptionIdType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="Unsubscribe" type="tns:UnsubscribeType" />
-  <xs:complexType name="UnsubscribeResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="UnsubscribeResponse" type="tns:UnsubscribeResponseType" />
-  <xs:complexType name="GetEventsType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns: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="tns:GetEventsType" />
-  <xs:complexType name="GetEventsResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:ResponseMessageType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="Notification" type="t:NotificationType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="GetEventsResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="GetEventsResponse" type="tns:GetEventsResponseType" />
-  <xs:complexType name="SendNotificationResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:ResponseMessageType">
-        <xs:sequence>
-          <xs:element minOccurs="1" name="Notification" type="t:NotificationType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="SendNotificationResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="SendNotification" type="tns:SendNotificationResponseType" />
-  <xs:complexType name="SendNotificationResultType">
-    <xs:sequence>
-      <xs:element name="SubscriptionStatus" type="t:SubscriptionStatusType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="SendNotificationResult" type="tns:SendNotificationResultType" />
-  <xs:complexType name="SyncFolderHierarchyType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element minOccurs="1" name="FolderShape" type="t:FolderResponseShapeType" />
-          <xs:element minOccurs="0" name="SyncState" type="xs:string" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="SyncFolderHierarchy" type="tns:SyncFolderHierarchyType" />
-  <xs:complexType name="SyncFolderHierarchyResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:ResponseMessageType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="SyncState" type="xs:string" />
-          <xs:element minOccurs="0" name="IncludesLastFolderInRange" type="xs:boolean" />
-          <xs:element minOccurs="0" name="Changes" type="t:SyncFolderHierarchyChangesType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="SyncFolderHierarchyResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="SyncFolderHierarchyResponse" type="tns:SyncFolderHierarchyResponseType" />
-  <xs:complexType name="SyncFolderItemsType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseRequestType">
-        <xs:sequence>
-          <xs:element minOccurs="1" name="ItemShape" type="t:ItemResponseShapeType" />
-          <xs:element minOccurs="1" name="SyncFolderId" type="t:TargetFolderIdType" />
-          <xs:element minOccurs="0" name="SyncState" type="xs:string" />
-          <xs:element minOccurs="0" name="Ignore" type="t:ArrayOfBaseItemIdsType" />
-          <xs:element minOccurs="1" name="MaxChangesReturned" type="t:MaxSyncChangesReturnedType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="SyncFolderItems" type="tns:SyncFolderItemsType" />
-  <xs:complexType name="SyncFolderItemsResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:ResponseMessageType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="SyncState" type="xs:string" />
-          <xs:element minOccurs="0" name="IncludesLastItemInRange" type="xs:boolean" />
-          <xs:element minOccurs="0" name="Changes" type="t:SyncFolderItemsChangesType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="SyncFolderItemsResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns:BaseResponseMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="SyncFolderItemsResponse" type="tns:SyncFolderItemsResponseType" />
-  <xs:complexType name="GetUserAvailabilityRequestType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns: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="tns:GetUserAvailabilityRequestType" />
-  <xs:complexType name="FreeBusyResponseType">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="1" name="ResponseMessage" type="tns: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="tns:FreeBusyResponseType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="SuggestionsResponseType">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="1" name="ResponseMessage" type="tns:ResponseMessageType" />
-      <xs:element minOccurs="0" maxOccurs="1" name="SuggestionDayResultArray" type="t:ArrayOfSuggestionDayResult" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="GetUserAvailabilityResponseType">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="1" name="FreeBusyResponseArray" type="tns:ArrayOfFreeBusyResponse" />
-      <xs:element minOccurs="0" maxOccurs="1" name="SuggestionsResponse" type="tns:SuggestionsResponseType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="GetUserAvailabilityResponse" type="tns:GetUserAvailabilityResponseType" />
-  <xs:complexType name="GetUserOofSettingsRequest">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns: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" />
-  <xs:complexType name="GetUserOofSettingsResponse">
-    <xs:sequence>
-      <xs:element minOccurs="1" maxOccurs="1" name="ResponseMessage" type="tns: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" />
-  <xs:complexType name="SetUserOofSettingsRequest">
-    <xs:complexContent mixed="false">
-      <xs:extension base="tns: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" />
-  <xs:complexType name="SetUserOofSettingsResponse">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="1" name="ResponseMessage" type="tns:ResponseMessageType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="SetUserOofSettingsResponse" type="tns:SetUserOofSettingsResponse" />
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema id="messages" elementFormDefault="qualified" version="Exchange2010" 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="ErrorCalendarIsCancelledForAccept"/>
+            <xs:enumeration value="ErrorCalendarIsCancelledForDecline"/>
+            <xs:enumeration value="ErrorCalendarIsCancelledForRemove"/>
+            <xs:enumeration value="ErrorCalendarIsCancelledForTentative"/>
+            <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="ErrorCallerIsInvalidADAccount"/>
+            <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="ErrorContainsFilterWrongType"/>
+            <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="ErrorCrossSiteRequest"/>
+            <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="ErrorDistributionListMemberNotExist"/>
+            <xs:enumeration value="ErrorDuplicateInputFolderNames"/>
+            <xs:enumeration value="ErrorDuplicateUserIdsSpecified"/>
+            <xs:enumeration value="ErrorEmailAddressMismatch"/>
+            <xs:enumeration value="ErrorEventNotFound"/>
+            <xs:enumeration value="ErrorExceededConnectionCount"/>
+            <xs:enumeration value="ErrorExceededSubscriptionCount"/>
+            <xs:enumeration value="ErrorExceededFindCountLimit"/>
+            <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="ErrorInvalidArgument"/>
+            <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="ErrorInvalidContactEmailAddress"/>
+            <xs:enumeration value="ErrorInvalidContactEmailIndex"/>
+            <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="ErrorInvalidMailbox"/>
+            <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="ErrorInvalidPhoneCallId"/>
+            <xs:enumeration value="ErrorInvalidPhoneNumber"/>
+            <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="ErrorInvalidSchemaVersionForMailboxVersion"/>
+            <xs:enumeration value="ErrorInvalidSecurityDescriptor"/>
+            <xs:enumeration value="ErrorInvalidSendItemSaveSettings"/>
+            <xs:enumeration value="ErrorInvalidSerializedAccessToken"/>
+            <xs:enumeration value="ErrorInvalidServerVersion"/>
+            <xs:enumeration value="ErrorInvalidSid"/>
+            <xs:enumeration value="ErrorInvalidSIPUri"/>
+            <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="ErrorIPGatewayNotFound"/>
+            <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="ErrorMailTipsDisabled"/>
+            <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="ErrorPhoneNumberNotDialable"/>
+            <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="ErrorSubmissionQuotaExceeded"/>
+            <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="ErrorTimeZone"/>
+            <xs:enumeration value="ErrorToFolderNotFound"/>
+            <xs:enumeration value="ErrorTokenSerializationDenied"/>
+            <xs:enumeration value="ErrorUpdatePropertyMismatch"/>
+            <xs:enumeration value="ErrorUnifiedMessagingDialPlanNotFound"/>
+            <xs:enumeration value="ErrorUnifiedMessagingRequestFailed"/>                   
+            <xs:enumeration value="ErrorUnifiedMessagingServerNotFound"/>          
+            <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="ErrorUserNotUnifiedMessagingEnabled"/>
+            <xs:enumeration value="ErrorVoiceMailNotImplemented"/>
+            <xs:enumeration value="ErrorValueOutOfRange"/>
+            <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:enumeration value="ErrorWrongServerVersion"/>
+            <xs:enumeration value="ErrorWrongServerVersionDelegate"/>
+            <xs:enumeration value="ErrorMissingInformationSharingFolderId"/>
+            <xs:enumeration value="ErrorDuplicateSOAPHeader"/>
+            <xs:enumeration value="ErrorSharingSynchronizationFailed"/>
+            <xs:enumeration value="ErrorSharingNoExternalEwsAvailable"/>
+            <xs:enumeration value="ErrorFreeBusyDLLimitReached"/>
+            <xs:enumeration value="ErrorInvalidGetSharingFolderRequest"/>
+            <xs:enumeration value="ErrorNotAllowedExternalSharingByPolicy"/>
+            <xs:enumeration value="ErrorUserNotAllowedByPolicy"/>
+            <xs:enumeration value="ErrorPermissionNotAllowedByPolicy"/>
+            <xs:enumeration value="ErrorOrganizationNotFederated"/>
+            <xs:enumeration value="ErrorMailboxFailover"/>
+            <xs:enumeration value="ErrorInvalidExternalSharingInitiator"/>
+            <xs:enumeration value="ErrorMessageTrackingPermanentError"/>
+            <xs:enumeration value="ErrorMessageTrackingTransientError"/>
+            <xs:enumeration value="ErrorMessageTrackingNoSuchDomain"/>
+            <xs:enumeration value="ErrorUserWithoutFederatedProxyAddress"/>
+            <xs:enumeration value="ErrorInvalidOrganizationRelationshipForFreeBusy"/>
+            <xs:enumeration value="ErrorInvalidFederatedOrganizationId"/>
+            <xs:enumeration value="ErrorInvalidExternalSharingSubscriber"/>
+            <xs:enumeration value="ErrorInvalidSharingData"/>
+            <xs:enumeration value="ErrorInvalidSharingMessage"/>
+            <xs:enumeration value="ErrorNotSupportedSharingMessage"/>
+        </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"/>
+            <!-- GetServerTimeZones response -->
+            <xs:element name="GetServerTimeZonesResponseMessage" type="m:GetServerTimeZonesResponseMessageType"/>
+            <!-- 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"/>
+            <!-- Sharing responses-->
+            <xs:element name="GetSharingMetadataResponseMessage" type="m:GetSharingMetadataResponseMessageType"/>
+            <xs:element name="RefreshSharingFolderResponseMessage" type="m:RefreshSharingFolderResponseMessageType"/>
+            <xs:element name="GetSharingFolderResponseMessage" type="m:GetSharingFolderResponseMessageType"/>
+            <!-- UserConfiguration responses-->
+            <xs:element name="CreateUserConfigurationResponseMessage" type="m:ResponseMessageType"/>
+            <xs:element name="DeleteUserConfigurationResponseMessage" type="m:ResponseMessageType"/>
+            <xs:element name="GetUserConfigurationResponseMessage" type="m:GetUserConfigurationResponseMessageType"/>
+            <xs:element name="UpdateUserConfigurationResponseMessage" type="m:ResponseMessageType"/>
+            <xs:element name="GetRoomListsResponse" type="m:GetRoomListsResponseMessageType"/>
+            <xs:element name="GetRoomsResponse" type="m:GetRoomsResponseMessageType"/>
+        </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:element name="QueryString" type="xs:string" minOccurs="0"/>
+                </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"/>
+
+    <!-- MailTips -->
+
+    <xs:complexType name="GetMailTipsType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseRequestType">
+                <xs:sequence>
+                    <xs:element name="SendingAs" type="t:EmailAddressType" minOccurs="1" maxOccurs="1"/>
+                    <xs:element name="Recipients" type="t:ArrayOfRecipientsType" minOccurs="1" maxOccurs="1"/>
+                    <xs:element name="MailTipsRequested" type="t:MailTipTypes" minOccurs="1" maxOccurs="1"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="GetMailTips" type="m:GetMailTipsType"/>
+
+    <xs:element name="GetMailTipsResponse" type="m:GetMailTipsResponseMessageType"/>
+
+    <xs:complexType name="GetMailTipsResponseMessageType">
+        <xs:complexContent>
+            <xs:extension base="m:ResponseMessageType">
+                <xs:sequence>
+                    <xs:element name="ResponseMessages" type="m:ArrayOfMailTipsResponseMessageType" minOccurs="0" maxOccurs="1"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:complexType name="ArrayOfMailTipsResponseMessageType">
+        <xs:sequence>
+            <xs:element name="MailTipsResponseMessageType" type="m:MailTipsResponseMessageType" minOccurs="1" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="MailTipsResponseMessageType">
+        <xs:complexContent>
+            <xs:extension base="m:ResponseMessageType">
+                <xs:sequence>
+                    <xs:element name="MailTips" type="t:MailTips" minOccurs="0" maxOccurs="1"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <!-- PlayOnPhone Request -->
+    <xs:complexType name="PlayOnPhoneType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseRequestType">
+                <xs:sequence>
+                    <xs:element name="ItemId" type="t:ItemIdType" minOccurs="1" maxOccurs="1"/>
+                    <xs:element name="DialString" type="xs:string" minOccurs="1" maxOccurs="1"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="PlayOnPhone" type="m:PlayOnPhoneType"/>
+
+    <!-- PlayOnPhone Response -->
+    <xs:complexType name="PlayOnPhoneResponseMessageType">
+        <xs:complexContent>
+            <xs:extension base="m:ResponseMessageType">
+                <xs:sequence>
+                    <xs:element name="PhoneCallId" type="t:PhoneCallIdType" minOccurs="0" maxOccurs="1"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="PlayOnPhoneResponse" type="m:PlayOnPhoneResponseMessageType"/>
+
+  <!-- GetPhoneCallInformation Request -->
+  <xs:complexType name="GetPhoneCallInformationType">
+      <xs:complexContent>
+          <xs:extension base="m:BaseRequestType">
+              <xs:sequence>
+                  <xs:element name="PhoneCallId" type="t:PhoneCallIdType" minOccurs="1" maxOccurs="1"/>
+              </xs:sequence>
+          </xs:extension>
+      </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="GetPhoneCallInformation" type="m:GetPhoneCallInformationType"/>
+
+  <!-- GetPhoneCallInformation Response -->
+  <xs:complexType name="GetPhoneCallInformationResponseMessageType">
+      <xs:complexContent>
+          <xs:extension base="m:ResponseMessageType">
+              <xs:sequence>
+                  <xs:element name="PhoneCallInformation" type="t:PhoneCallInformationType" minOccurs="0" maxOccurs="1"/>
+              </xs:sequence>
+          </xs:extension>
+      </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="GetPhoneCallInformationResponse" type="m:GetPhoneCallInformationResponseMessageType"/>
+
+  <!-- DisconnectPhoneCall Request -->
+  <xs:complexType name="DisconnectPhoneCallType">
+      <xs:complexContent>
+          <xs:extension base="m:BaseRequestType">
+              <xs:sequence>
+                  <xs:element name="PhoneCallId" type="t:PhoneCallIdType" minOccurs="1" maxOccurs="1"/>
+              </xs:sequence>
+          </xs:extension>
+      </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="DisconnectPhoneCall" type="m:DisconnectPhoneCallType"/>
+
+  <!-- DisconnectPhoneCall Response -->
+  <xs:complexType name="DisconnectPhoneCallResponseMessageType">
+      <xs:complexContent>
+          <xs:extension base="m:ResponseMessageType"/>
+      </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="DisconnectPhoneCallResponse" type="m:DisconnectPhoneCallResponseMessageType"/>
+
+  <!-- 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"/>
+
+    <!-- Get TimeZones -->
+
+    <xs:complexType name="GetServerTimeZonesType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseRequestType">
+                <xs:sequence>
+                    <xs:element name="Ids" type="t:NonEmptyArrayOfTimeZoneIdType" minOccurs="0"/>
+                </xs:sequence>
+                <xs:attribute name="ReturnFullTimeZoneData" type="xs:boolean" use="optional"/>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="GetServerTimeZones" type="m:GetServerTimeZonesType"/>
+
+    <!-- TimeZones response -->
+
+    <xs:complexType name="GetServerTimeZonesResponseMessageType">
+        <xs:complexContent>
+            <xs:extension base="m:ResponseMessageType">
+                <xs:sequence>
+                    <xs:element name="TimeZoneDefinitions" type="t:ArrayOfTimeZoneDefinitionType" minOccurs="1"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:complexType name="GetServerTimeZonesResponseType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseResponseMessageType"/>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="GetServerTimeZonesResponse" type="m:GetServerTimeZonesResponseType"/>
+    
+    <!-- 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:element name="SyncScope" type="t:SyncFolderItemsScopeType" minOccurs="0"/>
+                </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 minOccurs="0" maxOccurs="1" 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"/>
+    
+    <!-- GetSharingMetadata request -->
+    <xs:complexType name="GetSharingMetadataType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseRequestType">
+                <xs:sequence>
+                    <xs:element name="IdOfFolderToShare" type="t:FolderIdType"/>
+                    <xs:element name="SenderSmtpAddress" type="t:NonEmptyStringType"/>
+                    <xs:element name="Recipients" type="t:ArrayOfSmtpAddressType"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:element name="GetSharingMetadata" type="m:GetSharingMetadataType"/>
+
+    <!-- GetSharingMetadata response -->
+    <xs:complexType name="GetSharingMetadataResponseMessageType">
+        <xs:complexContent>
+            <xs:extension base="m:ResponseMessageType">
+                <xs:sequence minOccurs="0">
+                    <xs:element name="EncryptedSharedFolderDataCollection" type="t:ArrayOfEncryptedSharedFolderDataType"/>
+                    <xs:element name="InvalidRecipients" type="t:ArrayOfInvalidRecipientsType"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:element name="GetSharingMetadataResponse" type="m:GetSharingMetadataResponseMessageType"/>
+
+    <!-- RefreshSharingFolder request -->
+    <xs:complexType name="RefreshSharingFolderType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseRequestType">
+                <xs:sequence>
+                    <xs:element name="SharingFolderId" type="t:FolderIdType"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:element name="RefreshSharingFolder" type="m:RefreshSharingFolderType"/>
+
+    <!-- RefreshSharingFolder response -->
+    <xs:complexType name="RefreshSharingFolderResponseMessageType">
+        <xs:complexContent>
+            <xs:extension base="m:ResponseMessageType"/>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:element name="RefreshSharingFolderResponse" type="m:RefreshSharingFolderResponseMessageType"/>
+
+    <!-- GetSharingFolder request -->
+    <xs:complexType name="GetSharingFolderType">
+      <xs:complexContent>
+        <xs:extension base="m:BaseRequestType">
+          <xs:sequence>
+            <xs:element name="SmtpAddress" type="t:NonEmptyStringType"/>
+            <xs:element name="DataType" type="t:SharingDataType" minOccurs="0" maxOccurs="1"/>
+            <xs:element name="SharedFolderId" type="t:NonEmptyStringType" minOccurs="0" maxOccurs="1"/>
+          </xs:sequence>
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+    <xs:element name="GetSharingFolder" type="m:GetSharingFolderType"/>
+
+    <!-- GetSharingFolder response -->
+    <xs:complexType name="GetSharingFolderResponseMessageType">
+      <xs:complexContent>
+        <xs:extension base="m:ResponseMessageType">
+          <xs:sequence minOccurs="0">
+            <xs:element name="SharingFolderId" type="t:FolderIdType"/>
+          </xs:sequence>
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+    <xs:element name="GetSharingFolderResponse" type="m:GetSharingFolderResponseMessageType"/>
+
+    <!-- CreateUserConfiguration request -->
+    <xs:complexType name="CreateUserConfigurationType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseRequestType">
+                <xs:sequence>
+                    <xs:element name="UserConfiguration" type="t:UserConfigurationType" minOccurs="1"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="CreateUserConfiguration" type="m:CreateUserConfigurationType"/>
+
+    <!-- CreateUserConfiguration response -->
+    <xs:complexType name="CreateUserConfigurationResponseType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseResponseMessageType"/>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="CreateUserConfigurationResponse" type="m:CreateUserConfigurationResponseType"/>
+
+    <!-- DeleteUserConfiguration request -->
+    <xs:complexType name="DeleteUserConfigurationType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseRequestType">
+                <xs:sequence>
+                    <xs:element name="UserConfigurationName" type="t:UserConfigurationNameType" minOccurs="1"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="DeleteUserConfiguration" type="m:DeleteUserConfigurationType"/>
+
+    <!-- DeleteUserConfiguration response -->
+    <xs:complexType name="DeleteUserConfigurationResponseType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseResponseMessageType"/>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="DeleteUserConfigurationResponse" type="m:DeleteUserConfigurationResponseType"/>
+
+    <!-- GetUserConfiguration request -->
+    <xs:complexType name="GetUserConfigurationType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseRequestType">
+                <xs:sequence>
+                    <xs:element name="UserConfigurationName" type="t:UserConfigurationNameType" minOccurs="1"/>
+                    <xs:element name="UserConfigurationProperties" type="t:UserConfigurationPropertyType" minOccurs="1"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="GetUserConfiguration" type="m:GetUserConfigurationType"/>
+
+    <!-- GetUserConfiguration response -->
+    <xs:complexType name="GetUserConfigurationResponseMessageType">
+        <xs:complexContent>
+            <xs:extension base="m:ResponseMessageType">
+                <xs:sequence>
+                    <xs:element name="UserConfiguration" type="t:UserConfigurationType" minOccurs="0"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="GetUserConfigurationResponseType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseResponseMessageType"/>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="GetUserConfigurationResponse" type="m:GetUserConfigurationResponseType"/>
+
+    <!-- UpdateUserConfiguration request -->
+    <xs:complexType name="UpdateUserConfigurationType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseRequestType">
+                <xs:sequence>
+                    <xs:element name="UserConfiguration" type="t:UserConfigurationType" minOccurs="1"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="UpdateUserConfiguration" type="m:UpdateUserConfigurationType"/>
+
+    <!-- UpdateUserConfiguration response -->
+    <xs:complexType name="UpdateUserConfigurationResponseType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseResponseMessageType"/>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="UpdateUserConfigurationResponse" type="m:UpdateUserConfigurationResponseType"/>
+
+  <!-- Get Rooms Service Message Definitions -->
+
+  <!-- GetRoomLists Request -->
+  <xs:complexType name="GetRoomListsType">
+    <xs:complexContent>
+      <xs:extension base="m:BaseRequestType"/>
+      <!-- We Don't Need Input For GetRoomLists. -->
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="GetRoomLists" type="m:GetRoomListsType"/>
+
+  <!-- GetRoomLists Response -->
+  <xs:complexType name="GetRoomListsResponseMessageType">
+    <xs:complexContent>
+      <xs:extension base="m:ResponseMessageType">
+        <xs:sequence>
+          <xs:element name="RoomLists" type="t:ArrayOfEmailAddressesType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="GetRoomListsResponse" type="m:GetRoomListsResponseMessageType"/>
+
+  <!-- GetRoomsRequest -->
+  <xs:complexType name="GetRoomsType">
+    <xs:complexContent mixed="false">
+      <xs:extension base="m:BaseRequestType">
+        <xs:sequence>
+          <!--Input Will Be A Single RoomList of Type EmailAddressType-->
+          <xs:element name="RoomList" type="t:EmailAddressType" minOccurs="1" maxOccurs="1"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="GetRooms" type="m:GetRoomsType"/>
+
+  <!-- GetRoomsResponse -->
+  <xs:complexType name="GetRoomsResponseMessageType">
+    <xs:complexContent>
+      <xs:extension base="m:ResponseMessageType">
+        <xs:sequence>
+          <!--Output Should Be Rooms of Type ArrayOfRoomsType, Created In Types.xsd, Which Contains EmailAddress-->
+          <!--Keep In Mind, Availability Service Requests For ArrayOfMailboxData-->
+          <xs:element name="Rooms" type="t:ArrayOfRoomsType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="GetRoomsResponse" type="m:GetRoomsResponseMessageType"/>
+
+  <!-- GetServiceConfiguration -->
+
+  <xs:complexType name="ArrayOfServiceConfigurationType">
+    <xs:choice minOccurs="1" maxOccurs="unbounded">
+      <xs:element name="ConfigurationName" type="t:ServiceConfigurationType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="GetServiceConfigurationType">
+    <xs:complexContent>
+      <xs:extension base="m:BaseRequestType">
+        <xs:sequence>
+          <xs:element minOccurs="0" maxOccurs="1" name="ActingAs" type="t:EmailAddressType"/>
+          <xs:element minOccurs="1" maxOccurs="1" name="RequestedConfiguration" type="m:ArrayOfServiceConfigurationType"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="GetServiceConfiguration" type="m:GetServiceConfigurationType"/>
+
+  <xs:element name="GetServiceConfigurationResponse" type="m:GetServiceConfigurationResponseMessageType"/>
+
+  <xs:complexType name="GetServiceConfigurationResponseMessageType">
+    <xs:complexContent>
+      <xs:extension base="m:ResponseMessageType">
+        <xs:sequence>
+          <xs:element name="ResponseMessages" type="m:ArrayOfServiceConfigurationResponseMessageType" minOccurs="0" maxOccurs="1"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfServiceConfigurationResponseMessageType">
+    <xs:sequence>
+      <xs:element name="ServiceConfigurationResponseMessageType" type="m:ServiceConfigurationResponseMessageType" minOccurs="1" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ServiceConfigurationResponseMessageType">
+    <xs:complexContent>
+      <xs:extension base="m:ResponseMessageType">
+        <xs:sequence>
+          <xs:element name="MailTipsConfiguration" type="t:MailTipsServiceConfiguration" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="UnifiedMessagingConfiguration" type="t:UnifiedMessageServiceConfiguration" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="ProtectionRulesConfiguration" type="t:ProtectionRulesServiceConfiguration" minOccurs="0" maxOccurs="1"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+    <!-- MessageTracking -->
+    <xs:complexType name="FindMessageTrackingReportRequestType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseRequestType">
+                <xs:all>
+                    <xs:element name="Scope" type="t:MessageTrackingScopeType"/>
+                    <xs:element name="Domain" type="t:NonEmptyStringType"/>
+                    <xs:element name="Sender" type="t:EmailAddressType" minOccurs="0"/>
+                    <xs:element name="PurportedSender" type="t:EmailAddressType" minOccurs="0"/>
+                    <xs:element name="Recipient" type="t:EmailAddressType" minOccurs="0"/>
+                    <xs:element name="Subject" type="xs:string" minOccurs="0"/>
+                    <xs:element name="StartDateTime" type="xs:dateTime" minOccurs="0"/>
+                    <xs:element name="EndDateTime" type="xs:dateTime" minOccurs="0"/>
+                    <xs:element name="MessageId" type="t:NonEmptyStringType" minOccurs="0"/>
+                    <xs:element name="FederatedDeliveryMailbox" type="t:EmailAddressType" minOccurs="0"/>
+                    <xs:element name="DiagnosticsLevel" type="xs:string" minOccurs="0"/>
+                </xs:all>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="FindMessageTrackingReport" type="m:FindMessageTrackingReportRequestType"/>
+
+    <xs:complexType name="FindMessageTrackingReportResponseMessageType">
+        <xs:complexContent>
+            <xs:extension base="m:ResponseMessageType">
+                <xs:sequence>
+                    <xs:element name="Diagnostics" type="t:ArrayOfStringsType" minOccurs="0"/>
+                    <xs:element name="MessageTrackingSearchResults" type="t:ArrayOfFindMessageTrackingSearchResultType"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="FindMessageTrackingReportResponse" type="m:FindMessageTrackingReportResponseMessageType"/>
+
+    <xs:complexType name="GetMessageTrackingReportRequestType">
+        <xs:complexContent>
+            <xs:extension base="m:BaseRequestType">
+                <xs:all>
+                    <xs:element name="Scope" type="t:MessageTrackingScopeType"/>
+                    <xs:element name="ReportTemplate" type="t:MessageTrackingReportTemplateType"/>
+                    <xs:element name="RecipientFilter" type="t:EmailAddressType" minOccurs="0"/>
+                    <xs:element name="MessageTrackingReportId" type="t:NonEmptyStringType"/>
+                    <xs:element name="ReturnQueueEvents" type="xs:boolean" minOccurs="0"/>
+                    <xs:element name="DiagnosticsLevel" type="xs:string" minOccurs="0"/>
+                </xs:all>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="GetMessageTrackingReport" type="m:GetMessageTrackingReportRequestType"/>
+    
+    <xs:complexType name="GetMessageTrackingReportResponseMessageType">
+        <xs:complexContent>
+            <xs:extension base="m:ResponseMessageType">
+                <xs:sequence>
+                    <xs:element name="MessageTrackingReport" type="t:MessageTrackingReportType"/>
+                    <xs:element name="Diagnostics" type="t:ArrayOfStringsType" minOccurs="0"/>
+                    <xs:element name="Warnings" type="t:ArrayOfStringsType" minOccurs="0"/>
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:element name="GetMessageTrackingReportResponse" type="m:GetMessageTrackingReportResponseMessageType"/>
+    
 </xs:schema>
\ No newline at end of file

Modified: trunk/exchangews/types.xsd
===================================================================
--- trunk/exchangews/types.xsd	2011-02-22 17:03:44 UTC (rev 6)
+++ trunk/exchangews/types.xsd	2011-02-22 18:27:42 UTC (rev 7)
@@ -1,2713 +1,4478 @@
-<?xml version="1.0" encoding="utf-8"?>
-<xs:schema xmlns:tns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/exchange/services/2006/types" id="types" xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
-  <!-- replaced this with the line below <xs:import namespace="http://www.w3.org/XML/1998/namespace" /> -->
-  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-
-  <xs:element name="MailboxCulture" type="xs:language" />
-  <xs:complexType name="SidAndAttributesType">
-    <xs:sequence>
-      <xs:element name="SecurityIdentifier" type="xs:string" />
-    </xs:sequence>
-    <xs:attribute name="Attributes" type="xs:unsignedInt" use="required" />
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfGroupIdentifiersType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="GroupIdentifier" type="t:SidAndAttributesType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfRestrictedGroupIdentifiersType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="RestrictedGroupIdentifier" type="t:SidAndAttributesType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="SerializedSecurityContextType">
-    <xs:sequence>
-      <xs:element name="UserSid" type="xs:string" />
-      <xs:element minOccurs="0" name="GroupSids" type="t:NonEmptyArrayOfGroupIdentifiersType" />
-      <xs:element minOccurs="0" name="RestrictedGroupSids" type="t:NonEmptyArrayOfRestrictedGroupIdentifiersType" />
-      <xs:element minOccurs="0" name="PrimarySmtpAddress" type="xs:string" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="SerializedSecurityContext" type="t:SerializedSecurityContextType" />
-  <xs:complexType name="ConnectingSIDType">
-    <xs:sequence>
-      <xs:element minOccurs="0" name="PrincipalName" type="xs:string" />
-      <xs:element minOccurs="0" name="SID" type="xs:string" />
-      <xs:element minOccurs="0" name="PrimarySmtpAddress" type="xs:string" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ExchangeImpersonationType">
-    <xs:sequence>
-      <xs:element name="ConnectingSID" type="t:ConnectingSIDType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="ExchangeImpersonation" type="t:ExchangeImpersonationType" />
-  <xs:element name="ServerVersionInfo">
-    <xs:complexType>
-      <xs:attribute name="MajorVersion" type="xs:int" use="optional" />
-      <xs:attribute name="MinorVersion" type="xs:int" use="optional" />
-      <xs:attribute name="MajorBuildNumber" type="xs:int" use="optional" />
-      <xs:attribute name="MinorBuildNumber" type="xs:int" use="optional" />
-    </xs:complexType>
-  </xs:element>
-  <xs:simpleType name="NonEmptyStringType">
-    <xs:restriction base="xs:string">
-      <xs:minLength value="1" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="BaseEmailAddressType" />
-  <xs:simpleType name="MailboxTypeType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Mailbox" />
-      <xs:enumeration value="PublicDL" />
-      <xs:enumeration value="PrivateDL" />
-      <xs:enumeration value="Contact" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="EmailAddressType">
-    <xs:annotation>
-      <xs:documentation>Identifier for a fully resolved email address</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseEmailAddressType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="Name" type="xs:string" />
-          <xs:element minOccurs="0" name="EmailAddress" type="t:NonEmptyStringType" />
-          <xs:element minOccurs="0" name="RoutingType" type="t:NonEmptyStringType" />
-          <xs:element minOccurs="0" name="MailboxType" type="t:MailboxTypeType" />
-          <xs:element minOccurs="0" name="ItemId" type="t:ItemIdType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="ArrayOfRecipientsType">
-    <xs:choice minOccurs="0" maxOccurs="unbounded">
-      <xs:element name="Mailbox" type="t:EmailAddressType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="SingleRecipientType">
-    <xs:choice>
-      <xs:element name="Mailbox" type="t:EmailAddressType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:simpleType name="UnindexedFieldURIType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="folder:FolderId" />
-      <xs:enumeration value="folder:ParentFolderId" />
-      <xs:enumeration value="folder:DisplayName" />
-      <xs:enumeration value="folder:UnreadCount" />
-      <xs:enumeration value="folder:TotalCount" />
-      <xs:enumeration value="folder:ChildFolderCount" />
-      <xs:enumeration value="folder:FolderClass" />
-      <xs:enumeration value="folder:SearchParameters" />
-      <xs:enumeration value="folder:ManagedFolderInformation" />
-      <xs:enumeration value="item:ItemId" />
-      <xs:enumeration value="item:ParentFolderId" />
-      <xs:enumeration value="item:ItemClass" />
-      <xs:enumeration value="item:MimeContent" />
-      <xs:enumeration value="item:Attachments" />
-      <xs:enumeration value="item:Subject" />
-      <xs:enumeration value="item:DateTimeReceived" />
-      <xs:enumeration value="item:Size" />
-      <xs:enumeration value="item:Categories" />
-      <xs:enumeration value="item:HasAttachments" />
-      <xs:enumeration value="item:Importance" />
-      <xs:enumeration value="item:InReplyTo" />
-      <xs:enumeration value="item:InternetMessageHeaders" />
-      <xs:enumeration value="item:IsDraft" />
-      <xs:enumeration value="item:IsFromMe" />
-      <xs:enumeration value="item:IsResend" />
-      <xs:enumeration value="item:IsSubmitted" />
-      <xs:enumeration value="item:IsUnmodified" />
-      <xs:enumeration value="item:DateTimeSent" />
-      <xs:enumeration value="item:DateTimeCreated" />
-      <xs:enumeration value="item:Body" />
-      <xs:enumeration value="item:ResponseObjects" />
-      <xs:enumeration value="item:Sensitivity" />
-      <xs:enumeration value="item:ReminderDueBy" />
-      <xs:enumeration value="item:ReminderIsSet" />
-      <xs:enumeration value="item:ReminderMinutesBeforeStart" />
-      <xs:enumeration value="item:DisplayTo" />
-      <xs:enumeration value="item:DisplayCc" />
-      <xs:enumeration value="item:Culture" />
-      <xs:enumeration value="message:ConversationIndex" />
-      <xs:enumeration value="message:ConversationTopic" />
-      <xs:enumeration value="message:InternetMessageId" />
-      <xs:enumeration value="message:IsRead" />
-      <xs:enumeration value="message:IsResponseRequested" />
-      <xs:enumeration value="message:IsReadReceiptRequested" />
-      <xs:enumeration value="message:IsDeliveryReceiptRequested" />
-      <xs:enumeration value="message:References" />
-      <xs:enumeration value="message:ReplyTo" />
-      <xs:enumeration value="message:From" />
-      <xs:enumeration value="message:Sender" />
-      <xs:enumeration value="message:ToRecipients" />
-      <xs:enumeration value="message:CcRecipients" />
-      <xs:enumeration value="message:BccRecipients" />
-      <xs:enumeration value="meeting:AssociatedCalendarItemId" />
-      <xs:enumeration value="meeting:IsDelegated" />
-      <xs:enumeration value="meeting:IsOutOfDate" />
-      <xs:enumeration value="meeting:HasBeenProcessed" />
-      <xs:enumeration value="meeting:ResponseType" />
-      <xs:enumeration value="meetingRequest:MeetingRequestType" />
-      <xs:enumeration value="meetingRequest:IntendedFreeBusyStatus" />
-      <xs:enumeration value="calendar:Start" />
-      <xs:enumeration value="calendar:End" />
-      <xs:enumeration value="calendar:OriginalStart" />
-      <xs:enumeration value="calendar:IsAllDayEvent" />
-      <xs:enumeration value="calendar:LegacyFreeBusyStatus" />
-      <xs:enumeration value="calendar:Location" />
-      <xs:enumeration value="calendar:When" />
-      <xs:enumeration value="calendar:IsMeeting" />
-      <xs:enumeration value="calendar:IsCancelled" />
-      <xs:enumeration value="calendar:IsRecurring" />
-      <xs:enumeration value="calendar:MeetingRequestWasSent" />
-      <xs:enumeration value="calendar:IsResponseRequested" />
-      <xs:enumeration value="calendar:CalendarItemType" />
-      <xs:enumeration value="calendar:MyResponseType" />
-      <xs:enumeration value="calendar:Organizer" />
-      <xs:enumeration value="calendar:RequiredAttendees" />
-      <xs:enumeration value="calendar:OptionalAttendees" />
-      <xs:enumeration value="calendar:Resources" />
-      <xs:enumeration value="calendar:ConflictingMeetingCount" />
-      <xs:enumeration value="calendar:AdjacentMeetingCount" />
-      <xs:enumeration value="calendar:ConflictingMeetings" />
-      <xs:enumeration value="calendar:AdjacentMeetings" />
-      <xs:enumeration value="calendar:Duration" />
-      <xs:enumeration value="calendar:TimeZone" />
-      <xs:enumeration value="calendar:AppointmentReplyTime" />
-      <xs:enumeration value="calendar:AppointmentSequenceNumber" />
-      <xs:enumeration value="calendar:AppointmentState" />
-      <xs:enumeration value="calendar:Recurrence" />
-      <xs:enumeration value="calendar:FirstOccurrence" />
-      <xs:enumeration value="calendar:LastOccurrence" />
-      <xs:enumeration value="calendar:ModifiedOccurrences" />
-      <xs:enumeration value="calendar:DeletedOccurrences" />
-      <xs:enumeration value="calendar:MeetingTimeZone" />
-      <xs:enumeration value="calendar:ConferenceType" />
-      <xs:enumeration value="calendar:AllowNewTimeProposal" />
-      <xs:enumeration value="calendar:IsOnlineMeeting" />
-      <xs:enumeration value="calendar:MeetingWorkspaceUrl" />
-      <xs:enumeration value="calendar:NetShowUrl" />
-      <xs:enumeration value="task:ActualWork" />
-      <xs:enumeration value="task:AssignedTime" />
-      <xs:enumeration value="task:BillingInformation" />
-      <xs:enumeration value="task:ChangeCount" />
-      <xs:enumeration value="task:Companies" />
-      <xs:enumeration value="task:CompleteDate" />
-      <xs:enumeration value="task:Contacts" />
-      <xs:enumeration value="task:DelegationState" />
-      <xs:enumeration value="task:Delegator" />
-      <xs:enumeration value="task:DueDate" />
-      <xs:enumeration value="task:IsAssignmentEditable" />
-      <xs:enumeration value="task:IsComplete" />
-      <xs:enumeration value="task:IsRecurring" />
-      <xs:enumeration value="task:IsTeamTask" />
-      <xs:enumeration value="task:Mileage" />
-      <xs:enumeration value="task:Owner" />
-      <xs:enumeration value="task:PercentComplete" />
-      <xs:enumeration value="task:Recurrence" />
-      <xs:enumeration value="task:StartDate" />
-      <xs:enumeration value="task:Status" />
-      <xs:enumeration value="task:StatusDescription" />
-      <xs:enumeration value="task:TotalWork" />
-      <xs:enumeration value="contacts:AssistantName" />
-      <xs:enumeration value="contacts:Birthday" />
-      <xs:enumeration value="contacts:BusinessHomePage" />
-      <xs:enumeration value="contacts:Children" />
-      <xs:enumeration value="contacts:Companies" />
-      <xs:enumeration value="contacts:CompanyName" />
-      <xs:enumeration value="contacts:CompleteName" />
-      <xs:enumeration value="contacts:ContactSource" />
-      <xs:enumeration value="contacts:Culture" />
-      <xs:enumeration value="contacts:Department" />
-      <xs:enumeration value="contacts:DisplayName" />
-      <xs:enumeration value="contacts:EmailAddresses" />
-      <xs:enumeration value="contacts:FileAs" />
-      <xs:enumeration value="contacts:FileAsMapping" />
-      <xs:enumeration value="contacts:Generation" />
-      <xs:enumeration value="contacts:GivenName" />
-      <xs:enumeration value="contacts:ImAddresses" />
-      <xs:enumeration value="contacts:Initials" />
-      <xs:enumeration value="contacts:JobTitle" />
-      <xs:enumeration value="contacts:Manager" />
-      <xs:enumeration value="contacts:MiddleName" />
-      <xs:enumeration value="contacts:Mileage" />
-      <xs:enumeration value="contacts:Nickname" />
-      <xs:enumeration value="contacts:OfficeLocation" />
-      <xs:enumeration value="contacts:PhoneNumbers" />
-      <xs:enumeration value="contacts:PhysicalAddresses" />
-      <xs:enumeration value="contacts:PostalAddressIndex" />
-      <xs:enumeration value="contacts:Profession" />
-      <xs:enumeration value="contacts:SpouseName" />
-      <xs:enumeration value="contacts:Surname" />
-      <xs:enumeration value="contacts:WeddingAnniversary" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="DictionaryURIType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="item:InternetMessageHeader" />
-      <xs:enumeration value="contacts:ImAddress" />
-      <xs:enumeration value="contacts:PhysicalAddress:Street" />
-      <xs:enumeration value="contacts:PhysicalAddress:City" />
-      <xs:enumeration value="contacts:PhysicalAddress:State" />
-      <xs:enumeration value="contacts:PhysicalAddress:CountryOrRegion" />
-      <xs:enumeration value="contacts:PhysicalAddress:PostalCode" />
-      <xs:enumeration value="contacts:PhoneNumber" />
-      <xs:enumeration value="contacts:EmailAddress" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ExceptionPropertyURIType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="attachment:Name" />
-      <xs:enumeration value="attachment:ContentType" />
-      <xs:enumeration value="attachment:Content" />
-      <xs:enumeration value="recurrence:Month" />
-      <xs:enumeration value="recurrence:DayOfWeekIndex" />
-      <xs:enumeration value="recurrence:DaysOfWeek" />
-      <xs:enumeration value="recurrence:DayOfMonth" />
-      <xs:enumeration value="recurrence:Interval" />
-      <xs:enumeration value="recurrence:NumberOfOccurrences" />
-      <xs:enumeration value="timezone:Offset" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="GuidType">
-    <xs:annotation>
-      <xs:documentation>
-        The regular expression captures the standard representation of a GUID
-      </xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:pattern value="[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="DistinguishedPropertySetType">
-    <xs:annotation>
-      <xs:documentation>
-        Defines the well known property set ids for extended properties.
-      </xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Meeting" />
-      <xs:enumeration value="Appointment" />
-      <xs:enumeration value="Common" />
-      <xs:enumeration value="PublicStrings" />
-      <xs:enumeration value="Address" />
-      <xs:enumeration value="InternetHeaders" />
-      <xs:enumeration value="CalendarAssistant" />
-      <xs:enumeration value="UnifiedMessaging" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="MapiPropertyTypeType">
-    <xs:annotation>
-      <xs:documentation>
-        Includes all of the extended property types that we support.  Note that Error, Null,
-        Object and Object array can not be used in restrictions, or for setting/getting values.
-        They are only there for error reporting purposes.
-      </xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="ApplicationTime" />
-      <xs:enumeration value="ApplicationTimeArray" />
-      <xs:enumeration value="Binary" />
-      <xs:enumeration value="BinaryArray" />
-      <xs:enumeration value="Boolean" />
-      <xs:enumeration value="CLSID" />
-      <xs:enumeration value="CLSIDArray" />
-      <xs:enumeration value="Currency" />
-      <xs:enumeration value="CurrencyArray" />
-      <xs:enumeration value="Double" />
-      <xs:enumeration value="DoubleArray" />
-      <xs:enumeration value="Error" />
-      <xs:enumeration value="Float" />
-      <xs:enumeration value="FloatArray" />
-      <xs:enumeration value="Integer" />
-      <xs:enumeration value="IntegerArray" />
-      <xs:enumeration value="Long" />
-      <xs:enumeration value="LongArray" />
-      <xs:enumeration value="Null" />
-      <xs:enumeration value="Object" />
-      <xs:enumeration value="ObjectArray" />
-      <xs:enumeration value="Short" />
-      <xs:enumeration value="ShortArray" />
-      <xs:enumeration value="SystemTime" />
-      <xs:enumeration value="SystemTimeArray" />
-      <xs:enumeration value="String" />
-      <xs:enumeration value="StringArray" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="BasePathToElementType" abstract="true" />
-  <xs:complexType name="PathToUnindexedFieldType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BasePathToElementType">
-        <xs:attribute name="FieldURI" type="t:UnindexedFieldURIType" use="required" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="PathToIndexedFieldType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BasePathToElementType">
-        <xs:attribute name="FieldURI" type="t:DictionaryURIType" use="required" />
-        <xs:attribute name="FieldIndex" type="xs:string" use="required" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="PathToExceptionFieldType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BasePathToElementType">
-        <xs:attribute name="FieldURI" type="t:ExceptionPropertyURIType" use="required" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:simpleType name="PropertyTagType">
-    <xs:annotation>
-      <xs:documentation>
-        This type represents the property tag (MINUS the type part).  There are two options
-        for representation:
-        1.  Hex ==&gt; 0x3fa4
-        2.  Decimal ==&gt; 0-65535
-      </xs:documentation>
-    </xs:annotation>
-    <xs:union memberTypes="xs:unsignedShort">
-      <xs:simpleType id="HexPropertyTagType">
-        <xs:restriction base="xs:string">
-          <xs:pattern value="(0x|0X)[0-9A-Fa-f]{1,4}" />
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:union>
-  </xs:simpleType>
-  <xs:complexType name="PathToExtendedFieldType">
-    <xs:annotation>
-      <xs:documentation>
-        Represents an extended property.  Note that there are only a couple of valid attribute
-        combinations.  Note that all occurances require the PropertyType attribute.
-
-        1.  (DistinguishedPropertySetId || PropertySetId) + (PropertyName || Property Id)
-        2.  PropertyTag
-
-      </xs:documentation>
-    </xs:annotation>
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BasePathToElementType">
-        <xs:attribute name="DistinguishedPropertySetId" type="t:DistinguishedPropertySetType" use="optional" />
-        <xs:attribute name="PropertySetId" type="t:GuidType" use="optional" />
-        <xs:attribute name="PropertyTag" type="t:PropertyTagType" use="optional" />
-        <xs:attribute name="PropertyName" type="xs:string" use="optional" />
-        <xs:attribute name="PropertyId" type="xs:int" use="optional" />
-        <xs:attribute name="PropertyType" type="t:MapiPropertyTypeType" use="required" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element abstract="true" name="Path" type="t:BasePathToElementType" />
-  <xs:element name="FieldURI" substitutionGroup="t:Path" type="t:PathToUnindexedFieldType" />
-  <xs:element name="IndexedFieldURI" substitutionGroup="t:Path" type="t:PathToIndexedFieldType" />
-  <xs:element name="ExceptionFieldURI" substitutionGroup="t:Path" type="t:PathToExceptionFieldType" />
-  <xs:element name="ExtendedFieldURI" substitutionGroup="t:Path" type="t:PathToExtendedFieldType" />
-  <xs:complexType name="NonEmptyArrayOfPathsToElementType">
-    <xs:choice maxOccurs="unbounded">
-      <xs:element ref="t:Path" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfPropertyValuesType">
-    <xs:choice>
-      <xs:element maxOccurs="unbounded" name="Value" type="xs:string" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="ExtendedPropertyType">
-    <xs:annotation>
-      <xs:documentation>
-        Represents an extended property instance (both its path identifier along with its
-        associated value).
-      </xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element name="ExtendedFieldURI" type="t:PathToExtendedFieldType" />
-      <xs:choice>
-        <xs:element name="Value" type="xs:string" />
-        <xs:element name="Values" type="t:NonEmptyArrayOfPropertyValuesType" />
-      </xs:choice>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="FolderQueryTraversalType">
-    <xs:annotation>
-      <xs:documentation>Types of sub-tree traversal for deletion and enumeration</xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Shallow" />
-      <xs:enumeration value="Deep" />
-      <xs:enumeration value="SoftDeleted" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="SearchFolderTraversalType">
-    <xs:annotation>
-      <xs:documentation>Types of sub-tree traversal for deletion and enumeration</xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Shallow" />
-      <xs:enumeration value="Deep" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ItemQueryTraversalType">
-    <xs:annotation>
-      <xs:documentation>Types of sub-tree traversal for deletion and enumeration</xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Shallow" />
-      <xs:enumeration value="SoftDeleted" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="DefaultShapeNamesType">
-    <xs:restriction base="xs:NMTOKEN">
-      <xs:enumeration value="IdOnly" />
-      <xs:enumeration value="Default" />
-      <xs:enumeration value="AllProperties" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="BodyTypeResponseType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Best" />
-      <xs:enumeration value="HTML" />
-      <xs:enumeration value="Text" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="FolderResponseShapeType">
-    <xs:sequence>
-      <xs:element name="BaseShape" type="t:DefaultShapeNamesType" />
-      <xs:element minOccurs="0" name="AdditionalProperties" type="t:NonEmptyArrayOfPathsToElementType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ItemResponseShapeType">
-    <xs:sequence>
-      <xs:element name="BaseShape" type="t:DefaultShapeNamesType" />
-      <xs:element minOccurs="0" name="IncludeMimeContent" type="xs:boolean" />
-      <xs:element minOccurs="0" name="BodyType" type="t:BodyTypeResponseType" />
-      <xs:element minOccurs="0" name="AdditionalProperties" type="t:NonEmptyArrayOfPathsToElementType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="AttachmentResponseShapeType">
-    <xs:sequence>
-      <xs:element minOccurs="0" name="IncludeMimeContent" type="xs:boolean" />
-      <xs:element minOccurs="0" name="BodyType" type="t:BodyTypeResponseType" />
-      <xs:element minOccurs="0" name="AdditionalProperties" type="t:NonEmptyArrayOfPathsToElementType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="DisposalType">
-    <xs:restriction base="xs:NMTOKEN">
-      <xs:enumeration value="HardDelete" />
-      <xs:enumeration value="SoftDelete" />
-      <xs:enumeration value="MoveToDeletedItems" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ConflictResolutionType">
-    <xs:annotation>
-      <xs:documentation>Type of conflict resolution to attempt during update</xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:NMTOKEN">
-      <xs:enumeration value="NeverOverwrite" />
-      <xs:enumeration value="AutoResolve" />
-      <xs:enumeration value="AlwaysOverwrite" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ResponseClassType">
-    <xs:restriction base="xs:NMTOKEN">
-      <xs:enumeration value="Success" />
-      <xs:enumeration value="Warning" />
-      <xs:enumeration value="Error" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="ChangeDescriptionType" abstract="true">
-    <xs:sequence>
-      <xs:element ref="t:Path" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ItemChangeDescriptionType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:ChangeDescriptionType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="FolderChangeDescriptionType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:ChangeDescriptionType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="SetItemFieldType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:ItemChangeDescriptionType">
-        <xs:choice>
-          <xs:element name="Item" type="t:ItemType" />
-          <xs:element name="Message" type="t:MessageType" />
-          <xs:element name="CalendarItem" type="t:CalendarItemType" />
-          <xs:element name="Contact" type="t:ContactItemType" />
-          <xs:element name="DistributionList" type="t:DistributionListType" />
-          <xs:element name="MeetingMessage" type="t:MeetingMessageType" />
-          <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType" />
-          <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType" />
-          <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType" />
-          <xs:element name="Task" type="t:TaskType" />
-        </xs:choice>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="SetFolderFieldType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:FolderChangeDescriptionType">
-        <xs:choice>
-          <xs:element name="Folder" type="t:FolderType" />
-          <xs:element name="CalendarFolder" type="t:CalendarFolderType" />
-          <xs:element name="ContactsFolder" type="t:ContactsFolderType" />
-          <xs:element name="SearchFolder" type="t:SearchFolderType" />
-          <xs:element name="TasksFolder" type="t:TasksFolderType" />
-        </xs:choice>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="DeleteItemFieldType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:ItemChangeDescriptionType">
-        <xs:sequence />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="DeleteFolderFieldType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:FolderChangeDescriptionType">
-        <xs:sequence />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="AppendToItemFieldType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:ItemChangeDescriptionType">
-        <xs:choice>
-          <xs:element name="Item" type="t:ItemType" />
-          <xs:element name="Message" type="t:MessageType" />
-          <xs:element name="CalendarItem" type="t:CalendarItemType" />
-          <xs:element name="Contact" type="t:ContactItemType" />
-          <xs:element name="DistributionList" type="t:DistributionListType" />
-          <xs:element name="MeetingMessage" type="t:MeetingMessageType" />
-          <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType" />
-          <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType" />
-          <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType" />
-          <xs:element name="Task" type="t:TaskType" />
-        </xs:choice>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="AppendToFolderFieldType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:FolderChangeDescriptionType">
-        <xs:sequence>
-          <xs:choice>
-            <xs:element name="Folder" type="t:FolderType" />
-            <xs:element name="CalendarFolder" type="t:CalendarFolderType" />
-            <xs:element name="ContactsFolder" type="t:ContactsFolderType" />
-            <xs:element name="SearchFolder" type="t:SearchFolderType" />
-            <xs:element name="TasksFolder" type="t:TasksFolderType" />
-          </xs:choice>
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfItemChangeDescriptionsType">
-    <xs:choice maxOccurs="unbounded">
-      <xs:element name="AppendToItemField" type="t:AppendToItemFieldType" />
-      <xs:element name="SetItemField" type="t:SetItemFieldType" />
-      <xs:element name="DeleteItemField" type="t:DeleteItemFieldType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfFolderChangeDescriptionsType">
-    <xs:choice maxOccurs="unbounded">
-      <xs:element name="AppendToFolderField" type="t:AppendToFolderFieldType" />
-      <xs:element name="SetFolderField" type="t:SetFolderFieldType" />
-      <xs:element name="DeleteFolderField" type="t:DeleteFolderFieldType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="ItemChangeType">
-    <xs:sequence>
-      <xs:choice>
-        <xs:element name="ItemId" type="t:ItemIdType" />
-        <xs:element name="OccurrenceItemId" type="t:OccurrenceItemIdType" />
-        <xs:element name="RecurringMasterItemId" type="t:RecurringMasterItemIdType" />
-      </xs:choice>
-      <xs:element name="Updates" type="t:NonEmptyArrayOfItemChangeDescriptionsType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfItemChangesType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="ItemChange" type="t:ItemChangeType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="InternetHeaderType">
-    <xs:simpleContent>
-      <xs:extension base="xs:string">
-        <xs:attribute name="HeaderName" type="xs:string" />
-      </xs:extension>
-    </xs:simpleContent>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfInternetHeadersType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="InternetMessageHeader" type="t:InternetHeaderType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="RequestAttachmentIdType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseItemIdType">
-        <xs:attribute name="Id" type="xs:string" use="required" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="AttachmentIdType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:RequestAttachmentIdType">
-        <xs:attribute name="RootItemId" type="xs:string" use="optional" />
-        <xs:attribute name="RootItemChangeKey" type="xs:string" use="optional" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="RootItemIdType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseItemIdType">
-        <xs:attribute name="RootItemId" type="xs:string" use="required" />
-        <xs:attribute name="RootItemChangeKey" type="xs:string" use="required" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfRequestAttachmentIdsType">
-    <xs:choice minOccurs="1" maxOccurs="unbounded">
-      <xs:element name="AttachmentId" type="t:RequestAttachmentIdType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="AttachmentType">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="1" name="AttachmentId" type="t:AttachmentIdType" />
-      <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
-      <xs:element minOccurs="0" maxOccurs="1" name="ContentType" type="xs:string" />
-      <xs:element minOccurs="0" maxOccurs="1" name="ContentId" type="xs:string" />
-      <xs:element minOccurs="0" maxOccurs="1" name="ContentLocation" type="xs:string" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ItemAttachmentType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:AttachmentType">
-        <xs:choice minOccurs="0" maxOccurs="1">
-          <xs:element name="Item" type="t:ItemType" />
-          <xs:element name="Message" type="t:MessageType" />
-          <xs:element name="CalendarItem" type="t:CalendarItemType" />
-          <xs:element name="Contact" type="t:ContactItemType" />
-          <xs:element name="MeetingMessage" type="t:MeetingMessageType" />
-          <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType" />
-          <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType" />
-          <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType" />
-          <xs:element name="Task" type="t:TaskType" />
-        </xs:choice>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="SyncFolderItemsCreateOrUpdateType">
-    <xs:choice>
-      <xs:element name="Item" type="t:ItemType" />
-      <xs:element name="Message" type="t:MessageType" />
-      <xs:element name="CalendarItem" type="t:CalendarItemType" />
-      <xs:element name="Contact" type="t:ContactItemType" />
-      <xs:element name="DistributionList" type="t:DistributionListType" />
-      <xs:element name="MeetingMessage" type="t:MeetingMessageType" />
-      <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType" />
-      <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType" />
-      <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType" />
-      <xs:element name="Task" type="t:TaskType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="FileAttachmentType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:AttachmentType">
-        <xs:sequence>
-          <xs:element minOccurs="0" maxOccurs="1" name="Content" type="xs:base64Binary" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="ArrayOfAttachmentsType">
-    <xs:choice minOccurs="0" maxOccurs="unbounded">
-      <xs:element name="ItemAttachment" type="t:ItemAttachmentType" />
-      <xs:element name="FileAttachment" type="t:FileAttachmentType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfAttachmentsType">
-    <xs:choice minOccurs="1" maxOccurs="unbounded">
-      <xs:element name="ItemAttachment" type="t:ItemAttachmentType" />
-      <xs:element name="FileAttachment" type="t:FileAttachmentType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:simpleType name="SensitivityChoicesType">
-    <xs:restriction base="xs:NMTOKEN">
-      <xs:enumeration value="Normal" />
-      <xs:enumeration value="Personal" />
-      <xs:enumeration value="Private" />
-      <xs:enumeration value="Confidential" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ImportanceChoicesType">
-    <xs:restriction base="xs:NMTOKEN">
-      <xs:enumeration value="Low" />
-      <xs:enumeration value="Normal" />
-      <xs:enumeration value="High" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="BodyTypeType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="HTML" />
-      <xs:enumeration value="Text" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="BodyType">
-    <xs:simpleContent>
-      <xs:extension base="xs:string">
-        <xs:attribute name="BodyType" type="t:BodyTypeType" use="required" />
-      </xs:extension>
-    </xs:simpleContent>
-  </xs:complexType>
-  <xs:complexType name="BaseFolderIdType" abstract="true">
-    <xs:annotation>
-      <xs:documentation>Utility type which should never appear in user documents</xs:documentation>
-    </xs:annotation>
-  </xs:complexType>
-  <xs:simpleType name="FolderClassType">
-    <xs:restriction base="xs:string" />
-  </xs:simpleType>
-  <xs:simpleType name="DistinguishedFolderIdNameType">
-    <xs:annotation>
-      <xs:documentation>URIs for the distinguished folders accessible from a mailbox</xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:NMTOKEN">
-      <xs:enumeration value="calendar" />
-      <xs:enumeration value="contacts" />
-      <xs:enumeration value="deleteditems" />
-      <xs:enumeration value="drafts" />
-      <xs:enumeration value="inbox" />
-      <xs:enumeration value="journal" />
-      <xs:enumeration value="notes" />
-      <xs:enumeration value="outbox" />
-      <xs:enumeration value="sentitems" />
-      <xs:enumeration value="tasks" />
-      <xs:enumeration value="msgfolderroot" />
-      <xs:enumeration value="root" />
-      <xs:enumeration value="junkemail" />
-      <xs:enumeration value="searchfolders" />
-      <xs:enumeration value="voicemail" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="DistinguishedFolderIdType">
-    <xs:annotation>
-      <xs:documentation>Identifier for a distinguished folder</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseFolderIdType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="Mailbox" type="t:EmailAddressType" />
-        </xs:sequence>
-        <xs:attribute name="Id" type="t:DistinguishedFolderIdNameType" use="required" />
-        <xs:attribute name="ChangeKey" type="xs:string" use="optional" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="FolderIdType">
-    <xs:annotation>
-      <xs:documentation>Identifier for a fully resolved folder</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseFolderIdType">
-        <xs:attribute name="Id" type="xs:string" use="required" />
-        <xs:attribute name="ChangeKey" type="xs:string" use="optional" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfBaseFolderIdsType">
-    <xs:choice minOccurs="1" maxOccurs="unbounded">
-      <xs:element name="FolderId" type="t:FolderIdType" />
-      <xs:element name="DistinguishedFolderId" type="t:DistinguishedFolderIdType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="TargetFolderIdType">
-    <xs:choice>
-      <xs:element name="FolderId" type="t:FolderIdType" />
-      <xs:element name="DistinguishedFolderId" type="t:DistinguishedFolderIdType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:attributeGroup name="FindResponsePagingAttributes">
-    <xs:attribute name="IndexedPagingOffset" type="xs:int" use="optional" />
-    <xs:attribute name="NumeratorOffset" type="xs:int" use="optional" />
-    <xs:attribute name="AbsoluteDenominator" type="xs:int" use="optional" />
-    <xs:attribute name="IncludesLastItemInRange" type="xs:boolean" use="optional" />
-    <xs:attribute name="TotalItemsInView" type="xs:int" use="optional" />
-  </xs:attributeGroup>
-  <xs:complexType name="FindFolderParentType">
-    <xs:sequence>
-      <xs:element minOccurs="0" name="Folders" type="t:ArrayOfFoldersType" />
-    </xs:sequence>
-    <xs:attributeGroup ref="t:FindResponsePagingAttributes" />
-  </xs:complexType>
-  <xs:complexType name="BaseFolderType" abstract="true">
-    <xs:sequence>
-      <xs:element minOccurs="0" name="FolderId" type="t:FolderIdType" />
-      <xs:element minOccurs="0" name="ParentFolderId" type="t:FolderIdType" />
-      <xs:element minOccurs="0" name="FolderClass" type="xs:string" />
-      <xs:element minOccurs="0" name="DisplayName" type="xs:string" />
-      <xs:element minOccurs="0" name="TotalCount" type="xs:int" />
-      <xs:element minOccurs="0" name="ChildFolderCount" type="xs:int" />
-      <xs:element minOccurs="0" maxOccurs="unbounded" name="ExtendedProperty" type="t:ExtendedPropertyType" />
-      <xs:element minOccurs="0" name="ManagedFolderInformation" type="t:ManagedFolderInformationType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ManagedFolderInformationType">
-    <xs:annotation>
-      <xs:documentation>Compound property for Managed Folder related information for Managed Folders.</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-      <xs:element minOccurs="0" name="CanDelete" type="xs:boolean" />
-      <xs:element minOccurs="0" name="CanRenameOrMove" type="xs:boolean" />
-      <xs:element minOccurs="0" name="MustDisplayComment" type="xs:boolean" />
-      <xs:element minOccurs="0" name="HasQuota" type="xs:boolean" />
-      <xs:element minOccurs="0" name="IsManagedFoldersRoot" type="xs:boolean" />
-      <xs:element minOccurs="0" name="ManagedFolderId" type="xs:string" />
-      <xs:element minOccurs="0" name="Comment" type="xs:string" />
-      <xs:element minOccurs="0" name="StorageQuota" type="xs:int" />
-      <xs:element minOccurs="0" name="FolderSize" type="xs:int" />
-      <xs:element minOccurs="0" name="HomePage" type="xs:string" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="FolderType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseFolderType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="UnreadCount" type="xs:int" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="CalendarFolderType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseFolderType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="ContactsFolderType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseFolderType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="SearchFolderType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:FolderType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="SearchParameters" type="t:SearchParametersType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="TasksFolderType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:FolderType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfFoldersType">
-    <xs:choice minOccurs="1" maxOccurs="unbounded">
-      <xs:element name="Folder" type="t:FolderType" />
-      <xs:element name="CalendarFolder" type="t:CalendarFolderType" />
-      <xs:element name="ContactsFolder" type="t:ContactsFolderType" />
-      <xs:element name="SearchFolder" type="t:SearchFolderType" />
-      <xs:element name="TasksFolder" type="t:TasksFolderType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="ArrayOfFoldersType">
-    <xs:choice minOccurs="0" maxOccurs="unbounded">
-      <xs:element name="Folder" type="t:FolderType" />
-      <xs:element name="CalendarFolder" type="t:CalendarFolderType" />
-      <xs:element name="ContactsFolder" type="t:ContactsFolderType" />
-      <xs:element name="SearchFolder" type="t:SearchFolderType" />
-      <xs:element name="TasksFolder" type="t:TasksFolderType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="BaseItemIdType" abstract="true">
-    <xs:annotation>
-      <xs:documentation>Abstract base type for item identifiers.  Should never be used in web service calls</xs:documentation>
-    </xs:annotation>
-  </xs:complexType>
-  <xs:element name="BaseItemId" type="t:BaseItemIdType" />
-  <xs:simpleType name="DerivedItemIdType">
-    <xs:restriction base="xs:string" />
-  </xs:simpleType>
-  <xs:complexType name="ItemIdType">
-    <xs:annotation>
-      <xs:documentation>Identifier for a fully resolved item</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseItemIdType">
-        <xs:attribute name="Id" type="xs:string" use="required" />
-        <xs:attribute name="ChangeKey" type="xs:string" use="optional" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfBaseItemIdsType">
-    <xs:choice minOccurs="1" maxOccurs="unbounded">
-      <xs:element name="ItemId" type="t:ItemIdType" />
-      <xs:element name="OccurrenceItemId" type="t:OccurrenceItemIdType" />
-      <xs:element name="RecurringMasterItemId" type="t:RecurringMasterItemIdType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="ArrayOfBaseItemIdsType">
-    <xs:choice minOccurs="0" maxOccurs="unbounded">
-      <xs:element name="ItemId" type="t:ItemIdType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:simpleType name="ItemClassType">
-    <xs:restriction base="xs:string" />
-  </xs:simpleType>
-  <xs:complexType name="ResponseObjectCoreType" abstract="true">
-    <xs:annotation>
-      <xs:documentation>
-        Internal abstract base type for reply objects.
-        Should not appear in client code
-      </xs:documentation>
-    </xs:annotation>
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:MessageType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="ReferenceItemId" type="t:ItemIdType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="ResponseObjectType" abstract="true">
-    <xs:annotation>
-      <xs:documentation>Abstract base type for reply objects</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:ResponseObjectCoreType">
-        <xs:attribute name="ObjectName" type="xs:string">
-          <xs:annotation>
-            <xs:documentation>
-              The name of this reply object class as an English string.  The client
-              application is required to translate it if it's running in a different locale
-            </xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfResponseObjectsType">
-    <xs:choice minOccurs="0" maxOccurs="unbounded">
-      <xs:element name="AcceptItem" type="t:AcceptItemType" />
-      <xs:element name="TentativelyAcceptItem" type="t:TentativelyAcceptItemType" />
-      <xs:element name="DeclineItem" type="t:DeclineItemType" />
-      <xs:element name="ReplyToItem" type="t:ReplyToItemType" />
-      <xs:element name="ForwardItem" type="t:ForwardItemType" />
-      <xs:element name="ReplyAllToItem" type="t:ReplyAllToItemType" />
-      <xs:element name="CancelCalendarItem" type="t:CancelCalendarItemType" />
-      <xs:element name="RemoveItem" type="t:RemoveItemType" />
-      <xs:element name="SuppressReadReceipt" type="t:SuppressReadReceiptType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="FolderChangeType">
-    <xs:sequence>
-      <xs:choice>
-        <xs:element name="FolderId" type="t:FolderIdType" />
-        <xs:element name="DistinguishedFolderId" type="t:DistinguishedFolderIdType" />
-      </xs:choice>
-      <xs:element name="Updates" type="t:NonEmptyArrayOfFolderChangeDescriptionsType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfFolderChangesType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="FolderChange" type="t:FolderChangeType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="WellKnownResponseObjectType">
-    <xs:complexContent mixed="false">
-      <xs:restriction base="t:ResponseObjectType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="ItemClass" type="t:ItemClassType" />
-          <xs:element minOccurs="0" name="Sensitivity" type="t:SensitivityChoicesType" />
-          <xs:element minOccurs="0" name="Body" type="t:BodyType" />
-          <xs:element minOccurs="0" name="Attachments" type="t:NonEmptyArrayOfAttachmentsType" />
-          <xs:element minOccurs="0" name="InternetMessageHeaders" type="t:NonEmptyArrayOfInternetHeadersType" />
-          <xs:element minOccurs="0" name="Sender" type="t:SingleRecipientType" />
-          <xs:element minOccurs="0" name="ToRecipients" type="t:ArrayOfRecipientsType" />
-          <xs:element minOccurs="0" name="CcRecipients" type="t:ArrayOfRecipientsType" />
-          <xs:element minOccurs="0" name="BccRecipients" type="t:ArrayOfRecipientsType" />
-          <xs:element minOccurs="0" name="IsReadReceiptRequested" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsDeliveryReceiptRequested" type="xs:boolean" />
-          <xs:element minOccurs="0" name="ReferenceItemId" type="t:ItemIdType" />
-        </xs:sequence>
-        <xs:attribute name="ObjectName" type="xs:string" use="prohibited" />
-      </xs:restriction>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="SmartResponseBaseType">
-    <xs:complexContent mixed="false">
-      <xs:restriction base="t:ResponseObjectType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="Subject" type="xs:string" />
-          <xs:element minOccurs="0" name="Body" type="t:BodyType" />
-          <xs:element minOccurs="0" name="ToRecipients" type="t:ArrayOfRecipientsType" />
-          <xs:element minOccurs="0" name="CcRecipients" type="t:ArrayOfRecipientsType" />
-          <xs:element minOccurs="0" name="BccRecipients" type="t:ArrayOfRecipientsType" />
-          <xs:element minOccurs="0" name="IsReadReceiptRequested" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsDeliveryReceiptRequested" type="xs:boolean" />
-          <xs:element minOccurs="0" name="ReferenceItemId" type="t:ItemIdType" />
-        </xs:sequence>
-        <xs:attribute name="ObjectName" type="xs:string" use="prohibited" />
-      </xs:restriction>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="SmartResponseType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:SmartResponseBaseType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="NewBodyContent" type="t:BodyType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="ReplyToItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:SmartResponseType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="ReplyAllToItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:SmartResponseType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="ForwardItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:SmartResponseType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="CancelCalendarItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:SmartResponseType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="ReferenceItemResponseType">
-    <xs:complexContent mixed="false">
-      <xs:restriction base="t:ResponseObjectType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="ReferenceItemId" type="t:ItemIdType" />
-        </xs:sequence>
-        <xs:attribute name="ObjectName" type="xs:string" use="prohibited" />
-      </xs:restriction>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="SuppressReadReceiptType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:ReferenceItemResponseType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="FindItemParentType">
-    <xs:choice>
-      <xs:element name="Items" type="t:ArrayOfRealItemsType" />
-      <xs:element name="Groups" type="t:ArrayOfGroupedItemsType" />
-    </xs:choice>
-    <xs:attributeGroup ref="t:FindResponsePagingAttributes" />
-  </xs:complexType>
-  <xs:complexType name="ItemType">
-    <xs:sequence>
-      <xs:element minOccurs="0" name="MimeContent" type="t:MimeContentType" />
-      <xs:element minOccurs="0" name="ItemId" type="t:ItemIdType" />
-      <xs:element minOccurs="0" name="ParentFolderId" type="t:FolderIdType" />
-      <xs:element minOccurs="0" name="ItemClass" type="t:ItemClassType" />
-      <xs:element minOccurs="0" name="Subject" type="xs:string" />
-      <xs:element minOccurs="0" name="Sensitivity" type="t:SensitivityChoicesType" />
-      <xs:element minOccurs="0" name="Body" type="t:BodyType" />
-      <xs:element minOccurs="0" name="Attachments" type="t:NonEmptyArrayOfAttachmentsType" />
-      <xs:element minOccurs="0" name="DateTimeReceived" type="xs:dateTime" />
-      <xs:element minOccurs="0" name="Size" type="xs:int" />
-      <xs:element minOccurs="0" name="Categories" type="t:ArrayOfStringsType" />
-      <xs:element minOccurs="0" name="Importance" type="t:ImportanceChoicesType" />
-      <xs:element minOccurs="0" name="InReplyTo" type="xs:string" />
-      <xs:element minOccurs="0" name="IsSubmitted" type="xs:boolean" />
-      <xs:element minOccurs="0" name="IsDraft" type="xs:boolean" />
-      <xs:element minOccurs="0" name="IsFromMe" type="xs:boolean" />
-      <xs:element minOccurs="0" name="IsResend" type="xs:boolean" />
-      <xs:element minOccurs="0" name="IsUnmodified" type="xs:boolean" />
-      <xs:element minOccurs="0" name="InternetMessageHeaders" type="t:NonEmptyArrayOfInternetHeadersType" />
-      <xs:element minOccurs="0" name="DateTimeSent" type="xs:dateTime" />
-      <xs:element minOccurs="0" name="DateTimeCreated" type="xs:dateTime" />
-      <xs:element minOccurs="0" name="ResponseObjects" type="t:NonEmptyArrayOfResponseObjectsType" />
-      <xs:element minOccurs="0" name="ReminderDueBy" type="xs:dateTime" />
-      <xs:element minOccurs="0" name="ReminderIsSet" type="xs:boolean" />
-      <xs:element minOccurs="0" name="ReminderMinutesBeforeStart" type="t:ReminderMinutesBeforeStartType" />
-      <xs:element minOccurs="0" name="DisplayCc" type="xs:string" />
-      <xs:element minOccurs="0" name="DisplayTo" type="xs:string" />
-      <xs:element minOccurs="0" name="HasAttachments" type="xs:boolean" />
-      <xs:element minOccurs="0" maxOccurs="unbounded" name="ExtendedProperty" type="t:ExtendedPropertyType" />
-      <xs:element minOccurs="0" name="Culture" type="xs:language" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ArrayOfStringsType">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="unbounded" name="String" type="xs:string" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ArrayOfRealItemsType">
-    <xs:sequence>
-      <xs:choice minOccurs="0" maxOccurs="unbounded">
-        <xs:element name="Item" type="t:ItemType" />
-        <xs:element name="Message" type="t:MessageType" />
-        <xs:element name="CalendarItem" type="t:CalendarItemType" />
-        <xs:element name="Contact" type="t:ContactItemType" />
-        <xs:element name="DistributionList" type="t:DistributionListType" />
-        <xs:element name="MeetingMessage" type="t:MeetingMessageType" />
-        <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType" />
-        <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType" />
-        <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType" />
-        <xs:element name="Task" type="t:TaskType" />
-      </xs:choice>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfAllItemsType">
-    <xs:sequence>
-      <xs:choice minOccurs="1" maxOccurs="unbounded">
-        <xs:element name="Item" type="t:ItemType" />
-        <xs:element name="Message" type="t:MessageType" />
-        <xs:element name="CalendarItem" type="t:CalendarItemType" />
-        <xs:element name="Contact" type="t:ContactItemType" />
-        <xs:element name="DistributionList" type="t:DistributionListType" />
-        <xs:element name="MeetingMessage" type="t:MeetingMessageType" />
-        <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType" />
-        <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType" />
-        <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType" />
-        <xs:element name="Task" type="t:TaskType" />
-        <xs:element name="ReplyToItem" type="t:ReplyToItemType" />
-        <xs:element name="ForwardItem" type="t:ForwardItemType" />
-        <xs:element name="ReplyAllToItem" type="t:ReplyAllToItemType" />
-        <xs:element name="AcceptItem" type="t:AcceptItemType" />
-        <xs:element name="TentativelyAcceptItem" type="t:TentativelyAcceptItemType" />
-        <xs:element name="DeclineItem" type="t:DeclineItemType" />
-        <xs:element name="CancelCalendarItem" type="t:CancelCalendarItemType" />
-        <xs:element name="RemoveItem" type="t:RemoveItemType" />
-        <xs:element name="SuppressReadReceipt" type="t:SuppressReadReceiptType" />
-      </xs:choice>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="AcceptItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:WellKnownResponseObjectType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="TentativelyAcceptItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:WellKnownResponseObjectType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="DeclineItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:WellKnownResponseObjectType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="RemoveItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:ResponseObjectType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="MimeContentType">
-    <xs:simpleContent>
-      <xs:extension base="xs:string">
-        <xs:attribute name="CharacterSet" type="xs:string" use="optional" />
-      </xs:extension>
-    </xs:simpleContent>
-  </xs:complexType>
-  <xs:simpleType name="MessageDispositionType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="SaveOnly" />
-      <xs:enumeration value="SendOnly" />
-      <xs:enumeration value="SendAndSaveCopy" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="CalendarItemCreateOrDeleteOperationType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="SendToNone" />
-      <xs:enumeration value="SendOnlyToAll" />
-      <xs:enumeration value="SendToAllAndSaveCopy" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="CalendarItemUpdateOperationType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="SendToNone" />
-      <xs:enumeration value="SendOnlyToAll" />
-      <xs:enumeration value="SendOnlyToChanged" />
-      <xs:enumeration value="SendToAllAndSaveCopy" />
-      <xs:enumeration value="SendToChangedAndSaveCopy" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="AffectedTaskOccurrencesType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="AllOccurrences" />
-      <xs:enumeration value="SpecifiedOccurrenceOnly" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="MessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:ItemType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="Sender" type="t:SingleRecipientType" />
-          <xs:element minOccurs="0" name="ToRecipients" type="t:ArrayOfRecipientsType" />
-          <xs:element minOccurs="0" name="CcRecipients" type="t:ArrayOfRecipientsType" />
-          <xs:element minOccurs="0" name="BccRecipients" type="t:ArrayOfRecipientsType" />
-          <xs:element minOccurs="0" name="IsReadReceiptRequested" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsDeliveryReceiptRequested" type="xs:boolean" />
-          <xs:element minOccurs="0" name="ConversationIndex" type="xs:base64Binary" />
-          <xs:element minOccurs="0" name="ConversationTopic" type="xs:string" />
-          <xs:element minOccurs="0" name="From" type="t:SingleRecipientType" />
-          <xs:element minOccurs="0" name="InternetMessageId" type="xs:string" />
-          <xs:element minOccurs="0" name="IsRead" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsResponseRequested" type="xs:boolean" />
-          <xs:element minOccurs="0" name="References" type="xs:string" />
-          <xs:element minOccurs="0" name="ReplyTo" type="t:ArrayOfRecipientsType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:simpleType name="TaskStatusType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="NotStarted" />
-      <xs:enumeration value="InProgress" />
-      <xs:enumeration value="Completed" />
-      <xs:enumeration value="WaitingOnOthers" />
-      <xs:enumeration value="Deferred" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="TaskDelegateStateType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="NoMatch" />
-      <xs:enumeration value="OwnNew" />
-      <xs:enumeration value="Owned" />
-      <xs:enumeration value="Accepted" />
-      <xs:enumeration value="Declined" />
-      <xs:enumeration value="Max" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="TaskType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:ItemType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="ActualWork" type="xs:int" />
-          <xs:element minOccurs="0" name="AssignedTime" type="xs:dateTime" />
-          <xs:element minOccurs="0" name="BillingInformation" type="xs:string" />
-          <xs:element minOccurs="0" name="ChangeCount" type="xs:int" />
-          <xs:element minOccurs="0" name="Companies" type="t:ArrayOfStringsType" />
-          <xs:element minOccurs="0" name="CompleteDate" type="xs:dateTime" />
-          <xs:element minOccurs="0" name="Contacts" type="t:ArrayOfStringsType" />
-          <xs:element minOccurs="0" name="DelegationState" type="t:TaskDelegateStateType" />
-          <xs:element minOccurs="0" name="Delegator" type="xs:string" />
-          <xs:element minOccurs="0" name="DueDate" type="xs:dateTime" />
-          <xs:element minOccurs="0" name="IsAssignmentEditable" type="xs:int" />
-          <xs:element minOccurs="0" name="IsComplete" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsRecurring" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsTeamTask" type="xs:boolean" />
-          <xs:element minOccurs="0" name="Mileage" type="xs:string" />
-          <xs:element minOccurs="0" name="Owner" type="xs:string" />
-          <xs:element minOccurs="0" name="PercentComplete" type="xs:double" />
-          <xs:element minOccurs="0" name="Recurrence" type="t:TaskRecurrenceType" />
-          <xs:element minOccurs="0" name="StartDate" type="xs:dateTime" />
-          <xs:element minOccurs="0" name="Status" type="t:TaskStatusType" />
-          <xs:element minOccurs="0" name="StatusDescription" type="xs:string" />
-          <xs:element minOccurs="0" name="TotalWork" type="xs:int" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="BasePagingType" abstract="true">
-    <xs:attribute name="MaxEntriesReturned" type="xs:int" />
-  </xs:complexType>
-  <xs:simpleType name="IndexBasePointType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Beginning" />
-      <xs:enumeration value="End" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="IndexedPageViewType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BasePagingType">
-        <xs:attribute name="Offset" type="xs:int" use="required" />
-        <xs:attribute name="BasePoint" type="t:IndexBasePointType" use="required" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="FractionalPageViewType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BasePagingType">
-        <xs:attribute name="Numerator" type="xs:int" use="required" />
-        <xs:attribute name="Denominator" type="xs:int" use="required" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="CalendarViewType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BasePagingType">
-        <xs:attribute name="StartDate" type="xs:dateTime" use="required" />
-        <xs:attribute name="EndDate" type="xs:dateTime" use="required" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="ContactsViewType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BasePagingType">
-        <xs:attribute name="InitialName" type="xs:string" />
-        <xs:attribute name="FinalName" type="xs:string" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="ResolutionType">
-    <xs:sequence>
-      <xs:element name="Mailbox" type="t:EmailAddressType" />
-      <xs:element minOccurs="0" name="Contact" type="t:ContactItemType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ArrayOfResolutionType">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="100" name="Resolution" type="t:ResolutionType" />
-    </xs:sequence>
-    <xs:attributeGroup ref="t:FindResponsePagingAttributes" />
-  </xs:complexType>
-  <xs:complexType name="ArrayOfDLExpansionType">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="unbounded" name="Mailbox" type="t:EmailAddressType" />
-    </xs:sequence>
-    <xs:attributeGroup ref="t:FindResponsePagingAttributes" />
-  </xs:complexType>
-  <xs:simpleType name="MeetingRequestTypeType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="FullUpdate" />
-      <xs:enumeration value="InformationalUpdate" />
-      <xs:enumeration value="NewMeetingRequest" />
-      <xs:enumeration value="Outdated" />
-      <xs:enumeration value="SilentUpdate" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ReminderMinutesBeforeStartType">
-    <xs:union>
-      <xs:simpleType id="ReminderMinutesBeforeStartType">
-        <xs:restriction base="xs:int">
-          <xs:minInclusive value="0" />
-          <xs:maxInclusive value="2629800" />
-        </xs:restriction>
-      </xs:simpleType>
-      <xs:simpleType id="ReminderMinutesBeforeStartMarkerType">
-        <xs:restriction base="xs:int">
-          <xs:minInclusive value="1525252321" />
-          <xs:maxInclusive value="1525252321" />
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:union>
-  </xs:simpleType>
-  <xs:simpleType name="LegacyFreeBusyType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Free" />
-      <xs:enumeration value="Tentative" />
-      <xs:enumeration value="Busy" />
-      <xs:enumeration value="OOF" />
-      <xs:enumeration value="NoData" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="CalendarItemTypeType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Single" />
-      <xs:enumeration value="Occurrence" />
-      <xs:enumeration value="Exception" />
-      <xs:enumeration value="RecurringMaster" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ResponseTypeType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Unknown" />
-      <xs:enumeration value="Organizer" />
-      <xs:enumeration value="Tentative" />
-      <xs:enumeration value="Accept" />
-      <xs:enumeration value="Decline" />
-      <xs:enumeration value="NoResponseReceived" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="AttendeeType">
-    <xs:sequence>
-      <xs:element name="Mailbox" type="t:EmailAddressType" />
-      <xs:element minOccurs="0" name="ResponseType" type="t:ResponseTypeType" />
-      <xs:element minOccurs="0" name="LastResponseTime" type="xs:dateTime" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfAttendeesType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="Attendee" type="t:AttendeeType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="OccurrenceItemIdType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseItemIdType">
-        <xs:attribute name="RecurringMasterId" type="t:DerivedItemIdType" use="required" />
-        <xs:attribute name="ChangeKey" type="xs:string" use="optional" />
-        <xs:attribute name="InstanceIndex" type="xs:int" use="required" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="RecurringMasterItemIdType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseItemIdType">
-        <xs:attribute name="OccurrenceId" type="t:DerivedItemIdType" use="required" />
-        <xs:attribute name="ChangeKey" type="xs:string" use="optional" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:simpleType name="DayOfWeekType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Sunday" />
-      <xs:enumeration value="Monday" />
-      <xs:enumeration value="Tuesday" />
-      <xs:enumeration value="Wednesday" />
-      <xs:enumeration value="Thursday" />
-      <xs:enumeration value="Friday" />
-      <xs:enumeration value="Saturday" />
-      <xs:enumeration value="Day" />
-      <xs:enumeration value="Weekday" />
-      <xs:enumeration value="WeekendDay" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="DaysOfWeekType">
-    <xs:list itemType="t:DayOfWeekType" />
-  </xs:simpleType>
-  <xs:simpleType name="DayOfWeekIndexType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="First" />
-      <xs:enumeration value="Second" />
-      <xs:enumeration value="Third" />
-      <xs:enumeration value="Fourth" />
-      <xs:enumeration value="Last" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="MonthNamesType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="January" />
-      <xs:enumeration value="February" />
-      <xs:enumeration value="March" />
-      <xs:enumeration value="April" />
-      <xs:enumeration value="May" />
-      <xs:enumeration value="June" />
-      <xs:enumeration value="July" />
-      <xs:enumeration value="August" />
-      <xs:enumeration value="September" />
-      <xs:enumeration value="October" />
-      <xs:enumeration value="November" />
-      <xs:enumeration value="December" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="RecurrencePatternBaseType" abstract="true" />
-  <xs:complexType name="IntervalRecurrencePatternBaseType" abstract="true">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:RecurrencePatternBaseType">
-        <xs:sequence>
-          <xs:element name="Interval" type="xs:int" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="RegeneratingPatternBaseType" abstract="true">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:IntervalRecurrencePatternBaseType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="DailyRegeneratingPatternType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:RegeneratingPatternBaseType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="WeeklyRegeneratingPatternType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:RegeneratingPatternBaseType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="MonthlyRegeneratingPatternType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:RegeneratingPatternBaseType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="YearlyRegeneratingPatternType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:RegeneratingPatternBaseType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="RelativeYearlyRecurrencePatternType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:RecurrencePatternBaseType">
-        <xs:sequence>
-          <xs:element name="DaysOfWeek" type="t:DayOfWeekType" />
-          <xs:element name="DayOfWeekIndex" type="t:DayOfWeekIndexType" />
-          <xs:element name="Month" type="t:MonthNamesType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="AbsoluteYearlyRecurrencePatternType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:RecurrencePatternBaseType">
-        <xs:sequence>
-          <xs:element name="DayOfMonth" type="xs:int" />
-          <xs:element name="Month" type="t:MonthNamesType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="RelativeMonthlyRecurrencePatternType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:IntervalRecurrencePatternBaseType">
-        <xs:sequence>
-          <xs:element name="DaysOfWeek" type="t:DayOfWeekType" />
-          <xs:element name="DayOfWeekIndex" type="t:DayOfWeekIndexType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="AbsoluteMonthlyRecurrencePatternType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:IntervalRecurrencePatternBaseType">
-        <xs:sequence>
-          <xs:element name="DayOfMonth" type="xs:int" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="WeeklyRecurrencePatternType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:IntervalRecurrencePatternBaseType">
-        <xs:sequence>
-          <xs:element name="DaysOfWeek" type="t:DaysOfWeekType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="DailyRecurrencePatternType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:IntervalRecurrencePatternBaseType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:group name="TimeChangePatternTypes">
-    <xs:sequence>
-      <xs:choice>
-        <xs:element name="RelativeYearlyRecurrence" type="t:RelativeYearlyRecurrencePatternType" />
-        <xs:element name="AbsoluteDate" type="xs:date" />
-      </xs:choice>
-    </xs:sequence>
-  </xs:group>
-  <xs:complexType name="TimeChangeType">
-    <xs:sequence>
-      <xs:element name="Offset" type="xs:duration" />
-      <xs:group minOccurs="0" ref="t:TimeChangePatternTypes" />
-      <xs:element name="Time" type="xs:time" />
-    </xs:sequence>
-    <xs:attribute name="TimeZoneName" type="xs:string" use="optional" />
-  </xs:complexType>
-  <xs:complexType name="TimeZoneType">
-    <xs:sequence>
-      <xs:element name="BaseOffset" type="xs:duration" />
-      <xs:sequence minOccurs="0">
-        <xs:element name="Standard" type="t:TimeChangeType" />
-        <xs:element name="Daylight" type="t:TimeChangeType" />
-      </xs:sequence>
-    </xs:sequence>
-    <xs:attribute name="TimeZoneName" type="xs:string" use="optional" />
-  </xs:complexType>
-  <xs:complexType name="RecurrenceRangeBaseType" abstract="true">
-    <xs:sequence>
-      <xs:element name="StartDate" type="xs:date" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="NoEndRecurrenceRangeType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:RecurrenceRangeBaseType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="EndDateRecurrenceRangeType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:RecurrenceRangeBaseType">
-        <xs:sequence>
-          <xs:element name="EndDate" type="xs:date" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="NumberedRecurrenceRangeType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:RecurrenceRangeBaseType">
-        <xs:sequence>
-          <xs:element name="NumberOfOccurrences" type="xs:int" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:group name="RecurrencePatternTypes">
-    <xs:sequence>
-      <xs:choice>
-        <xs:element name="RelativeYearlyRecurrence" type="t:RelativeYearlyRecurrencePatternType" />
-        <xs:element name="AbsoluteYearlyRecurrence" type="t:AbsoluteYearlyRecurrencePatternType" />
-        <xs:element name="RelativeMonthlyRecurrence" type="t:RelativeMonthlyRecurrencePatternType" />
-        <xs:element name="AbsoluteMonthlyRecurrence" type="t:AbsoluteMonthlyRecurrencePatternType" />
-        <xs:element name="WeeklyRecurrence" type="t:WeeklyRecurrencePatternType" />
-        <xs:element name="DailyRecurrence" type="t:DailyRecurrencePatternType" />
-      </xs:choice>
-    </xs:sequence>
-  </xs:group>
-  <xs:group name="TaskRecurrencePatternTypes">
-    <xs:sequence>
-      <xs:choice>
-        <xs:element name="RelativeYearlyRecurrence" type="t:RelativeYearlyRecurrencePatternType" />
-        <xs:element name="AbsoluteYearlyRecurrence" type="t:AbsoluteYearlyRecurrencePatternType" />
-        <xs:element name="RelativeMonthlyRecurrence" type="t:RelativeMonthlyRecurrencePatternType" />
-        <xs:element name="AbsoluteMonthlyRecurrence" type="t:AbsoluteMonthlyRecurrencePatternType" />
-        <xs:element name="WeeklyRecurrence" type="t:WeeklyRecurrencePatternType" />
-        <xs:element name="DailyRecurrence" type="t:DailyRecurrencePatternType" />
-        <xs:element name="DailyRegeneration" type="t:DailyRegeneratingPatternType" />
-        <xs:element name="WeeklyRegeneration" type="t:WeeklyRegeneratingPatternType" />
-        <xs:element name="MonthlyRegeneration" type="t:MonthlyRegeneratingPatternType" />
-        <xs:element name="YearlyRegeneration" type="t:YearlyRegeneratingPatternType" />
-      </xs:choice>
-    </xs:sequence>
-  </xs:group>
-  <xs:group name="RecurrenceRangeTypes">
-    <xs:sequence>
-      <xs:choice>
-        <xs:element name="NoEndRecurrence" type="t:NoEndRecurrenceRangeType" />
-        <xs:element name="EndDateRecurrence" type="t:EndDateRecurrenceRangeType" />
-        <xs:element name="NumberedRecurrence" type="t:NumberedRecurrenceRangeType" />
-      </xs:choice>
-    </xs:sequence>
-  </xs:group>
-  <xs:complexType name="RecurrenceType">
-    <xs:sequence>
-      <xs:group ref="t:RecurrencePatternTypes" />
-      <xs:group ref="t:RecurrenceRangeTypes" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="TaskRecurrenceType">
-    <xs:sequence>
-      <xs:group ref="t:TaskRecurrencePatternTypes" />
-      <xs:group ref="t:RecurrenceRangeTypes" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="OccurrenceInfoType">
-    <xs:sequence>
-      <xs:element name="ItemId" type="t:ItemIdType" />
-      <xs:element name="Start" type="xs:dateTime" />
-      <xs:element name="End" type="xs:dateTime" />
-      <xs:element name="OriginalStart" type="xs:dateTime" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfOccurrenceInfoType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="Occurrence" type="t:OccurrenceInfoType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="DeletedOccurrenceInfoType">
-    <xs:sequence>
-      <xs:element name="Start" type="xs:dateTime" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfDeletedOccurrencesType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="DeletedOccurrence" type="t:DeletedOccurrenceInfoType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="CalendarItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:ItemType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="Start" type="xs:dateTime" />
-          <xs:element minOccurs="0" name="End" type="xs:dateTime" />
-          <xs:element minOccurs="0" name="OriginalStart" type="xs:dateTime" />
-          <xs:element minOccurs="0" name="IsAllDayEvent" type="xs:boolean" />
-          <xs:element minOccurs="0" name="LegacyFreeBusyStatus" type="t:LegacyFreeBusyType" />
-          <xs:element minOccurs="0" name="Location" type="xs:string" />
-          <xs:element minOccurs="0" name="When" type="xs:string" />
-          <xs:element minOccurs="0" name="IsMeeting" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsCancelled" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsRecurring" type="xs:boolean" />
-          <xs:element minOccurs="0" name="MeetingRequestWasSent" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsResponseRequested" type="xs:boolean" />
-          <xs:element minOccurs="0" name="CalendarItemType" type="t:CalendarItemTypeType" />
-          <xs:element minOccurs="0" name="MyResponseType" type="t:ResponseTypeType" />
-          <xs:element minOccurs="0" name="Organizer" type="t:SingleRecipientType" />
-          <xs:element minOccurs="0" name="RequiredAttendees" type="t:NonEmptyArrayOfAttendeesType" />
-          <xs:element minOccurs="0" name="OptionalAttendees" type="t:NonEmptyArrayOfAttendeesType" />
-          <xs:element minOccurs="0" name="Resources" type="t:NonEmptyArrayOfAttendeesType" />
-          <xs:element minOccurs="0" name="ConflictingMeetingCount" type="xs:int" />
-          <xs:element minOccurs="0" name="AdjacentMeetingCount" type="xs:int" />
-          <xs:element minOccurs="0" name="ConflictingMeetings" type="t:NonEmptyArrayOfAllItemsType" />
-          <xs:element minOccurs="0" name="AdjacentMeetings" type="t:NonEmptyArrayOfAllItemsType" />
-          <xs:element minOccurs="0" name="Duration" type="xs:string" />
-          <xs:element minOccurs="0" name="TimeZone" type="xs:string" />
-          <xs:element minOccurs="0" name="AppointmentReplyTime" type="xs:dateTime" />
-          <xs:element minOccurs="0" name="AppointmentSequenceNumber" type="xs:int" />
-          <xs:element minOccurs="0" name="AppointmentState" type="xs:int" />
-          <xs:element minOccurs="0" name="Recurrence" type="t:RecurrenceType" />
-          <xs:element minOccurs="0" name="FirstOccurrence" type="t:OccurrenceInfoType" />
-          <xs:element minOccurs="0" name="LastOccurrence" type="t:OccurrenceInfoType" />
-          <xs:element minOccurs="0" name="ModifiedOccurrences" type="t:NonEmptyArrayOfOccurrenceInfoType" />
-          <xs:element minOccurs="0" name="DeletedOccurrences" type="t:NonEmptyArrayOfDeletedOccurrencesType" />
-          <xs:element minOccurs="0" name="MeetingTimeZone" type="t:TimeZoneType" />
-          <xs:element minOccurs="0" name="ConferenceType" type="xs:int" />
-          <xs:element minOccurs="0" name="AllowNewTimeProposal" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsOnlineMeeting" type="xs:boolean" />
-          <xs:element minOccurs="0" name="MeetingWorkspaceUrl" type="xs:string" />
-          <xs:element minOccurs="0" name="NetShowUrl" type="xs:string" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="MeetingMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:MessageType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="AssociatedCalendarItemId" type="t:ItemIdType" />
-          <xs:element minOccurs="0" name="IsDelegated" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsOutOfDate" type="xs:boolean" />
-          <xs:element minOccurs="0" name="HasBeenProcessed" type="xs:boolean" />
-          <xs:element minOccurs="0" name="ResponseType" type="t:ResponseTypeType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="MeetingRequestMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:MeetingMessageType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="MeetingRequestType" type="t:MeetingRequestTypeType" />
-          <xs:element minOccurs="0" name="IntendedFreeBusyStatus" type="t:LegacyFreeBusyType" />
-          <xs:element minOccurs="0" name="Start" type="xs:dateTime" />
-          <xs:element minOccurs="0" name="End" type="xs:dateTime" />
-          <xs:element minOccurs="0" name="OriginalStart" type="xs:dateTime" />
-          <xs:element minOccurs="0" name="IsAllDayEvent" type="xs:boolean" />
-          <xs:element minOccurs="0" name="LegacyFreeBusyStatus" type="t:LegacyFreeBusyType" />
-          <xs:element minOccurs="0" name="Location" type="xs:string" />
-          <xs:element minOccurs="0" name="When" type="xs:string" />
-          <xs:element minOccurs="0" name="IsMeeting" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsCancelled" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsRecurring" type="xs:boolean" />
-          <xs:element minOccurs="0" name="MeetingRequestWasSent" type="xs:boolean" />
-          <xs:element minOccurs="0" name="CalendarItemType" type="t:CalendarItemTypeType" />
-          <xs:element minOccurs="0" name="MyResponseType" type="t:ResponseTypeType" />
-          <xs:element minOccurs="0" name="Organizer" type="t:SingleRecipientType" />
-          <xs:element minOccurs="0" name="RequiredAttendees" type="t:NonEmptyArrayOfAttendeesType" />
-          <xs:element minOccurs="0" name="OptionalAttendees" type="t:NonEmptyArrayOfAttendeesType" />
-          <xs:element minOccurs="0" name="Resources" type="t:NonEmptyArrayOfAttendeesType" />
-          <xs:element minOccurs="0" name="ConflictingMeetingCount" type="xs:int" />
-          <xs:element minOccurs="0" name="AdjacentMeetingCount" type="xs:int" />
-          <xs:element minOccurs="0" name="ConflictingMeetings" type="t:NonEmptyArrayOfAllItemsType" />
-          <xs:element minOccurs="0" name="AdjacentMeetings" type="t:NonEmptyArrayOfAllItemsType" />
-          <xs:element minOccurs="0" name="Duration" type="xs:string" />
-          <xs:element minOccurs="0" name="TimeZone" type="xs:string" />
-          <xs:element minOccurs="0" name="AppointmentReplyTime" type="xs:dateTime" />
-          <xs:element minOccurs="0" name="AppointmentSequenceNumber" type="xs:int" />
-          <xs:element minOccurs="0" name="AppointmentState" type="xs:int" />
-          <xs:element minOccurs="0" name="Recurrence" type="t:RecurrenceType" />
-          <xs:element minOccurs="0" name="FirstOccurrence" type="t:OccurrenceInfoType" />
-          <xs:element minOccurs="0" name="LastOccurrence" type="t:OccurrenceInfoType" />
-          <xs:element minOccurs="0" name="ModifiedOccurrences" type="t:NonEmptyArrayOfOccurrenceInfoType" />
-          <xs:element minOccurs="0" name="DeletedOccurrences" type="t:NonEmptyArrayOfDeletedOccurrencesType" />
-          <xs:element minOccurs="0" name="MeetingTimeZone" type="t:TimeZoneType" />
-          <xs:element minOccurs="0" name="ConferenceType" type="xs:int" />
-          <xs:element minOccurs="0" name="AllowNewTimeProposal" type="xs:boolean" />
-          <xs:element minOccurs="0" name="IsOnlineMeeting" type="xs:boolean" />
-          <xs:element minOccurs="0" name="MeetingWorkspaceUrl" type="xs:string" />
-          <xs:element minOccurs="0" name="NetShowUrl" type="xs:string" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="MeetingResponseMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:MeetingMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="MeetingCancellationMessageType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:MeetingMessageType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:simpleType name="ImAddressKeyType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="ImAddress1" />
-      <xs:enumeration value="ImAddress2" />
-      <xs:enumeration value="ImAddress3" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="EmailAddressKeyType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="EmailAddress1" />
-      <xs:enumeration value="EmailAddress2" />
-      <xs:enumeration value="EmailAddress3" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="PhoneNumberKeyType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="AssistantPhone" />
-      <xs:enumeration value="BusinessFax" />
-      <xs:enumeration value="BusinessPhone" />
-      <xs:enumeration value="BusinessPhone2" />
-      <xs:enumeration value="Callback" />
-      <xs:enumeration value="CarPhone" />
-      <xs:enumeration value="CompanyMainPhone" />
-      <xs:enumeration value="HomeFax" />
-      <xs:enumeration value="HomePhone" />
-      <xs:enumeration value="HomePhone2" />
-      <xs:enumeration value="Isdn" />
-      <xs:enumeration value="MobilePhone" />
-      <xs:enumeration value="OtherFax" />
-      <xs:enumeration value="OtherTelephone" />
-      <xs:enumeration value="Pager" />
-      <xs:enumeration value="PrimaryPhone" />
-      <xs:enumeration value="RadioPhone" />
-      <xs:enumeration value="Telex" />
-      <xs:enumeration value="TtyTddPhone" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="PhysicalAddressIndexType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="None" />
-      <xs:enumeration value="Business" />
-      <xs:enumeration value="Home" />
-      <xs:enumeration value="Other" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="PhysicalAddressKeyType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Business" />
-      <xs:enumeration value="Home" />
-      <xs:enumeration value="Other" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="FileAsMappingType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="None" />
-      <xs:enumeration value="LastCommaFirst" />
-      <xs:enumeration value="FirstSpaceLast" />
-      <xs:enumeration value="Company" />
-      <xs:enumeration value="LastCommaFirstCompany" />
-      <xs:enumeration value="CompanyLastFirst" />
-      <xs:enumeration value="LastFirst" />
-      <xs:enumeration value="LastFirstCompany" />
-      <xs:enumeration value="CompanyLastCommaFirst" />
-      <xs:enumeration value="LastFirstSuffix" />
-      <xs:enumeration value="LastSpaceFirstCompany" />
-      <xs:enumeration value="CompanyLastSpaceFirst" />
-      <xs:enumeration value="LastSpaceFirst" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ContactSourceType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="ActiveDirectory" />
-      <xs:enumeration value="Store" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="CompleteNameType">
-    <xs:sequence>
-      <xs:element minOccurs="0" name="Title" type="xs:string" />
-      <xs:element minOccurs="0" name="FirstName" type="xs:string" />
-      <xs:element minOccurs="0" name="MiddleName" type="xs:string" />
-      <xs:element minOccurs="0" name="LastName" type="xs:string" />
-      <xs:element minOccurs="0" name="Suffix" type="xs:string" />
-      <xs:element minOccurs="0" name="Initials" type="xs:string" />
-      <xs:element minOccurs="0" name="FullName" type="xs:string" />
-      <xs:element minOccurs="0" name="Nickname" type="xs:string" />
-      <xs:element minOccurs="0" name="YomiFirstName" type="xs:string" />
-      <xs:element minOccurs="0" name="YomiLastName" type="xs:string" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ImAddressDictionaryEntryType">
-    <xs:simpleContent>
-      <xs:extension base="xs:string">
-        <xs:attribute name="Key" type="t:ImAddressKeyType" use="required" />
-      </xs:extension>
-    </xs:simpleContent>
-  </xs:complexType>
-  <xs:complexType name="EmailAddressDictionaryEntryType">
-    <xs:simpleContent>
-      <xs:extension base="xs:string">
-        <xs:attribute name="Key" type="t:EmailAddressKeyType" use="required" />
-      </xs:extension>
-    </xs:simpleContent>
-  </xs:complexType>
-  <xs:complexType name="PhoneNumberDictionaryEntryType">
-    <xs:simpleContent>
-      <xs:extension base="xs:string">
-        <xs:attribute name="Key" type="t:PhoneNumberKeyType" use="required" />
-      </xs:extension>
-    </xs:simpleContent>
-  </xs:complexType>
-  <xs:complexType name="PhysicalAddressDictionaryEntryType">
-    <xs:sequence>
-      <xs:element minOccurs="0" name="Street" type="xs:string" />
-      <xs:element minOccurs="0" name="City" type="xs:string" />
-      <xs:element minOccurs="0" name="State" type="xs:string" />
-      <xs:element minOccurs="0" name="CountryOrRegion" type="xs:string" />
-      <xs:element minOccurs="0" name="PostalCode" type="xs:string" />
-    </xs:sequence>
-    <xs:attribute name="Key" type="t:PhysicalAddressKeyType" use="required" />
-  </xs:complexType>
-  <xs:complexType name="ImAddressDictionaryType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="Entry" type="t:ImAddressDictionaryEntryType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="EmailAddressDictionaryType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="Entry" type="t:EmailAddressDictionaryEntryType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="PhoneNumberDictionaryType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="Entry" type="t:PhoneNumberDictionaryEntryType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="PhysicalAddressDictionaryType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="Entry" type="t:PhysicalAddressDictionaryEntryType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ContactItemType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:ItemType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="FileAs" type="xs:string" />
-          <xs:element minOccurs="0" name="FileAsMapping" type="t:FileAsMappingType" />
-          <xs:element minOccurs="0" name="DisplayName" type="xs:string" />
-          <xs:element minOccurs="0" name="GivenName" type="xs:string" />
-          <xs:element minOccurs="0" name="Initials" type="xs:string" />
-          <xs:element minOccurs="0" name="MiddleName" type="xs:string" />
-          <xs:element minOccurs="0" name="Nickname" type="xs:string" />
-          <xs:element minOccurs="0" name="CompleteName" type="t:CompleteNameType" />
-          <xs:element minOccurs="0" name="CompanyName" type="xs:string" />
-          <xs:element minOccurs="0" name="EmailAddresses" type="t:EmailAddressDictionaryType" />
-          <xs:element minOccurs="0" name="PhysicalAddresses" type="t:PhysicalAddressDictionaryType" />
-          <xs:element minOccurs="0" name="PhoneNumbers" type="t:PhoneNumberDictionaryType" />
-          <xs:element minOccurs="0" name="AssistantName" type="xs:string" />
-          <xs:element minOccurs="0" name="Birthday" type="xs:dateTime" />
-          <xs:element minOccurs="0" name="BusinessHomePage" type="xs:anyURI" />
-          <xs:element minOccurs="0" name="Children" type="t:ArrayOfStringsType" />
-          <xs:element minOccurs="0" name="Companies" type="t:ArrayOfStringsType" />
-          <xs:element minOccurs="0" name="ContactSource" type="t:ContactSourceType" />
-          <xs:element minOccurs="0" name="Department" type="xs:string" />
-          <xs:element minOccurs="0" name="Generation" type="xs:string" />
-          <xs:element minOccurs="0" name="ImAddresses" type="t:ImAddressDictionaryType" />
-          <xs:element minOccurs="0" name="JobTitle" type="xs:string" />
-          <xs:element minOccurs="0" name="Manager" type="xs:string" />
-          <xs:element minOccurs="0" name="Mileage" type="xs:string" />
-          <xs:element minOccurs="0" name="OfficeLocation" type="xs:string" />
-          <xs:element minOccurs="0" name="PostalAddressIndex" type="t:PhysicalAddressIndexType" />
-          <xs:element minOccurs="0" name="Profession" type="xs:string" />
-          <xs:element minOccurs="0" name="SpouseName" type="xs:string" />
-          <xs:element minOccurs="0" name="Surname" type="xs:string" />
-          <xs:element minOccurs="0" name="WeddingAnniversary" type="xs:dateTime" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="DistributionListType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:ItemType">
-        <xs:sequence>
-          <xs:element minOccurs="0" name="DisplayName" type="xs:string" />
-          <xs:element minOccurs="0" name="FileAs" type="xs:string" />
-          <xs:element minOccurs="0" name="ContactSource" type="t:ContactSourceType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="SearchParametersType">
-    <xs:sequence>
-      <xs:element name="Restriction" type="t:RestrictionType" />
-      <xs:element name="BaseFolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType" />
-    </xs:sequence>
-    <xs:attribute name="Traversal" type="t:SearchFolderTraversalType" />
-  </xs:complexType>
-  <xs:complexType name="ConstantValueType">
-    <xs:attribute name="Value" type="xs:string" />
-  </xs:complexType>
-  <xs:complexType name="SearchExpressionType" abstract="true" />
-  <xs:element name="SearchExpression" type="t:SearchExpressionType" />
-  <xs:simpleType name="AggregateType">
-    <xs:annotation>
-      <xs:documentation>
-        This max/min evaluation is applied to the field specified within the group by
-        instance for EACH item within that group.  This determines which item from each group
-        is to be selected as the representative for that group.
-      </xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Minimum" />
-      <xs:enumeration value="Maximum" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="AggregateOnType">
-    <xs:annotation>
-      <xs:documentation>
-        Represents the field of each item to aggregate on and the qualifier to apply to that
-        field in determining which item will represent the group.
-      </xs:documentation>
-    </xs:annotation>
-    <xs:choice>
-      <xs:element name="FieldURI" type="t:PathToUnindexedFieldType" />
-      <xs:element name="IndexedFieldURI" type="t:PathToIndexedFieldType" />
-      <xs:element name="ExtendedFieldURI" type="t:PathToExtendedFieldType" />
-    </xs:choice>
-    <xs:attribute name="Aggregate" type="t:AggregateType" use="required" />
-  </xs:complexType>
-  <xs:complexType name="BaseGroupByType" abstract="true">
-    <xs:attribute name="Order" type="t:SortDirectionType" use="required" />
-  </xs:complexType>
-  <xs:complexType name="GroupByType">
-    <xs:annotation>
-      <xs:documentation>
-        Allows consumers to specify arbitrary groupings for FindItem queries.
-      </xs:documentation>
-    </xs:annotation>
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseGroupByType">
-        <xs:sequence>
-          <xs:choice>
-            <xs:element name="FieldURI" type="t:PathToUnindexedFieldType" />
-            <xs:element name="IndexedFieldURI" type="t:PathToIndexedFieldType" />
-            <xs:element name="ExtendedFieldURI" type="t:PathToExtendedFieldType" />
-          </xs:choice>
-          <xs:element name="AggregateOn" type="t:AggregateOnType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:simpleType name="StandardGroupByType">
-    <xs:annotation>
-      <xs:documentation>
-        Represents standard groupings for GroupBy queries.
-      </xs:documentation>
-    </xs:annotation>
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="ConversationTopic" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="DistinguishedGroupByType">
-    <xs:annotation>
-      <xs:documentation>
-        Allows consumers to access standard groupings for FindItem queries.  This is in
-        contrast to the arbitrary (custom) groupings available via the t:GroupByType
-      </xs:documentation>
-    </xs:annotation>
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseGroupByType">
-        <xs:sequence>
-          <xs:element name="StandardGroupBy" type="t:StandardGroupByType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="GroupedItemsType">
-    <xs:sequence>
-      <xs:element name="GroupIndex" type="xs:string" />
-      <xs:element name="Items" type="t:ArrayOfRealItemsType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ArrayOfGroupedItemsType">
-    <xs:choice>
-      <xs:element minOccurs="0" maxOccurs="unbounded" name="GroupedItems" type="t:GroupedItemsType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="ExistsType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:SearchExpressionType">
-        <xs:sequence>
-          <xs:element ref="t:Path" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="Exists" substitutionGroup="t:SearchExpression" type="t:ExistsType" />
-  <xs:complexType name="FieldURIOrConstantType">
-    <xs:choice>
-      <xs:element ref="t:Path" />
-      <xs:element name="Constant" type="t:ConstantValueType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="TwoOperandExpressionType" abstract="true">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:SearchExpressionType">
-        <xs:sequence>
-          <xs:element ref="t:Path" />
-          <xs:element name="FieldURIOrConstant" type="t:FieldURIOrConstantType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:simpleType name="ExcludesAttributeType">
-    <xs:restriction base="xs:string">
-      <xs:pattern value="((0x|0X)[0-9A-Fa-f]*)|([0-9]*)" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="ExcludesValueType">
-    <xs:attribute name="Value" type="t:ExcludesAttributeType" />
-  </xs:complexType>
-  <xs:complexType name="ExcludesType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:SearchExpressionType">
-        <xs:sequence>
-          <xs:element ref="t:Path" />
-          <xs:element name="Bitmask" type="t:ExcludesValueType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="Excludes" substitutionGroup="t:SearchExpression" type="t:ExcludesType" />
-  <xs:complexType name="IsEqualToType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:TwoOperandExpressionType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="IsEqualTo" substitutionGroup="t:SearchExpression" type="t:IsEqualToType" />
-  <xs:complexType name="IsNotEqualToType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:TwoOperandExpressionType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="IsNotEqualTo" substitutionGroup="t:SearchExpression" type="t:IsNotEqualToType" />
-  <xs:complexType name="IsGreaterThanType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:TwoOperandExpressionType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="IsGreaterThan" substitutionGroup="t:SearchExpression" type="t:IsGreaterThanType" />
-  <xs:complexType name="IsGreaterThanOrEqualToType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:TwoOperandExpressionType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="IsGreaterThanOrEqualTo" substitutionGroup="t:SearchExpression" type="t:IsGreaterThanOrEqualToType" />
-  <xs:complexType name="IsLessThanType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:TwoOperandExpressionType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="IsLessThan" substitutionGroup="t:SearchExpression" type="t:IsLessThanType" />
-  <xs:complexType name="IsLessThanOrEqualToType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:TwoOperandExpressionType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="IsLessThanOrEqualTo" substitutionGroup="t:SearchExpression" type="t:IsLessThanOrEqualToType" />
-  <xs:simpleType name="ContainmentModeType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="FullString" />
-      <xs:enumeration value="Prefixed" />
-      <xs:enumeration value="Substring" />
-      <xs:enumeration value="PrefixOnWords" />
-      <xs:enumeration value="ExactPhrase" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ContainmentComparisonType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Exact" />
-      <xs:enumeration value="IgnoreCase" />
-      <xs:enumeration value="IgnoreNonSpacingCharacters" />
-      <xs:enumeration value="Loose" />
-      <xs:enumeration value="IgnoreCaseAndNonSpacingCharacters" />
-      <xs:enumeration value="LooseAndIgnoreCase" />
-      <xs:enumeration value="LooseAndIgnoreNonSpace" />
-      <xs:enumeration value="LooseAndIgnoreCaseAndIgnoreNonSpace" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="ContainsExpressionType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:SearchExpressionType">
-        <xs:sequence>
-          <xs:element ref="t:Path" />
-          <xs:element name="Constant" type="t:ConstantValueType" />
-        </xs:sequence>
-        <xs:attribute name="ContainmentMode" type="t:ContainmentModeType" />
-        <xs:attribute name="ContainmentComparison" type="t:ContainmentComparisonType" />
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="Contains" substitutionGroup="t:SearchExpression" type="t:ContainsExpressionType" />
-  <xs:complexType name="NotType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:SearchExpressionType">
-        <xs:sequence>
-          <xs:element ref="t:SearchExpression" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="Not" substitutionGroup="t:SearchExpression" type="t:NotType" />
-  <xs:complexType name="MultipleOperandBooleanExpressionType" abstract="true">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:SearchExpressionType">
-        <xs:sequence>
-          <xs:element minOccurs="2" maxOccurs="unbounded" ref="t:SearchExpression" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="AndType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:MultipleOperandBooleanExpressionType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="And" substitutionGroup="t:SearchExpression" type="t:AndType" />
-  <xs:complexType name="OrType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:MultipleOperandBooleanExpressionType" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:element name="Or" substitutionGroup="t:SearchExpression" type="t:OrType" />
-  <xs:complexType name="RestrictionType">
-    <xs:sequence>
-      <xs:element ref="t:SearchExpression" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="SortDirectionType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Ascending" />
-      <xs:enumeration value="Descending" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="FieldOrderType">
-    <xs:sequence>
-      <xs:element ref="t:Path" />
-    </xs:sequence>
-    <xs:attribute name="Order" type="t:SortDirectionType" use="required" />
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfFieldOrdersType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="FieldOrder" type="t:FieldOrderType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="NonEmptyArrayOfFolderNamesType">
-    <xs:sequence>
-      <xs:element maxOccurs="unbounded" name="FolderName" type="xs:string" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="WatermarkType">
-    <xs:restriction base="t:NonEmptyStringType" />
-  </xs:simpleType>
-  <xs:simpleType name="SubscriptionIdType">
-    <xs:restriction base="t:NonEmptyStringType" />
-  </xs:simpleType>
-  <xs:complexType name="BaseNotificationEventType">
-    <xs:sequence>
-      <xs:element name="Watermark" type="t:WatermarkType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="BaseObjectChangedEventType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseNotificationEventType">
-        <xs:sequence>
-          <xs:element name="TimeStamp" type="xs:dateTime" />
-          <xs:choice>
-            <xs:element name="FolderId" type="t:FolderIdType" />
-            <xs:element name="ItemId" type="t:ItemIdType" />
-          </xs:choice>
-          <xs:element name="ParentFolderId" type="t:FolderIdType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="ModifiedEventType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseObjectChangedEventType">
-        <xs:sequence>
-          <xs:element minOccurs="0" maxOccurs="1" name="UnreadCount" type="xs:int" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="MovedCopiedEventType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseObjectChangedEventType">
-        <xs:sequence>
-          <xs:choice>
-            <xs:element name="OldFolderId" type="t:FolderIdType" />
-            <xs:element name="OldItemId" type="t:ItemIdType" />
-          </xs:choice>
-          <xs:element name="OldParentFolderId" type="t:FolderIdType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="NotificationType">
-    <xs:sequence>
-      <xs:element name="SubscriptionId" type="t:SubscriptionIdType" />
-      <xs:element name="PreviousWatermark" type="t:WatermarkType" />
-      <xs:element name="MoreEvents" type="xs:boolean" />
-      <xs:choice minOccurs="1" maxOccurs="unbounded">
-        <xs:element name="CopiedEvent" type="t:MovedCopiedEventType" />
-        <xs:element name="CreatedEvent" type="t:BaseObjectChangedEventType" />
-        <xs:element name="DeletedEvent" type="t:BaseObjectChangedEventType" />
-        <xs:element name="ModifiedEvent" type="t:ModifiedEventType" />
-        <xs:element name="MovedEvent" type="t:MovedCopiedEventType" />
-        <xs:element name="NewMailEvent" type="t:BaseObjectChangedEventType" />
-        <xs:element name="StatusEvent" type="t:BaseNotificationEventType" />
-      </xs:choice>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="NotificationEventTypeType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="CopiedEvent" />
-      <xs:enumeration value="CreatedEvent" />
-      <xs:enumeration value="DeletedEvent" />
-      <xs:enumeration value="ModifiedEvent" />
-      <xs:enumeration value="MovedEvent" />
-      <xs:enumeration value="NewMailEvent" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="NonEmptyArrayOfNotificationEventTypesType">
-    <xs:choice minOccurs="1" maxOccurs="unbounded">
-      <xs:element name="EventType" type="t:NotificationEventTypeType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:simpleType name="SubscriptionTimeoutType">
-    <xs:restriction base="xs:int">
-      <xs:minInclusive value="1" />
-      <xs:maxInclusive value="1440" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="SubscriptionStatusFrequencyType">
-    <xs:restriction base="xs:int">
-      <xs:minInclusive value="1" />
-      <xs:maxInclusive value="1440" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="BaseSubscriptionRequestType" abstract="true">
-    <xs:sequence>
-      <xs:element name="FolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType" />
-      <xs:element name="EventTypes" type="t:NonEmptyArrayOfNotificationEventTypesType" />
-      <xs:element minOccurs="0" name="Watermark" type="t:WatermarkType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="PushSubscriptionRequestType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseSubscriptionRequestType">
-        <xs:sequence>
-          <xs:element name="StatusFrequency" type="t:SubscriptionStatusFrequencyType" />
-          <xs:element name="URL" type="xs:string" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="PullSubscriptionRequestType">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:BaseSubscriptionRequestType">
-        <xs:sequence>
-          <xs:element name="Timeout" type="t:SubscriptionTimeoutType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:simpleType name="SubscriptionStatusType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="OK" />
-      <xs:enumeration value="Unsubscribe" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="SyncFolderItemsDeleteType">
-    <xs:sequence>
-      <xs:element name="ItemId" type="t:ItemIdType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="SyncFolderItemsChangesType">
-    <xs:sequence>
-      <xs:choice minOccurs="0" maxOccurs="unbounded">
-        <xs:element name="Create" type="t:SyncFolderItemsCreateOrUpdateType" />
-        <xs:element name="Update" type="t:SyncFolderItemsCreateOrUpdateType" />
-        <xs:element name="Delete" type="t:SyncFolderItemsDeleteType" />
-      </xs:choice>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="SyncFolderHierarchyCreateOrUpdateType">
-    <xs:choice>
-      <xs:element name="Folder" type="t:FolderType" />
-      <xs:element name="CalendarFolder" type="t:CalendarFolderType" />
-      <xs:element name="ContactsFolder" type="t:ContactsFolderType" />
-      <xs:element name="SearchFolder" type="t:SearchFolderType" />
-      <xs:element name="TasksFolder" type="t:TasksFolderType" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="SyncFolderHierarchyDeleteType">
-    <xs:sequence>
-      <xs:element name="FolderId" type="t:FolderIdType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="SyncFolderHierarchyChangesType">
-    <xs:sequence>
-      <xs:choice minOccurs="0" maxOccurs="unbounded">
-        <xs:element name="Create" type="t:SyncFolderHierarchyCreateOrUpdateType" />
-        <xs:element name="Update" type="t:SyncFolderHierarchyCreateOrUpdateType" />
-        <xs:element name="Delete" type="t:SyncFolderHierarchyDeleteType" />
-      </xs:choice>
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="MaxSyncChangesReturnedType">
-    <xs:restriction base="xs:int">
-      <xs:minInclusive value="1" />
-      <xs:maxInclusive value="512" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="AvailabilityProxyRequestType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="CrossSite" />
-      <xs:enumeration value="CrossForest" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:element name="ProxyRequestTypeHeader" type="t:AvailabilityProxyRequestType" />
-  <xs:simpleType name="MeetingAttendeeType">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Organizer" />
-      <xs:enumeration value="Required" />
-      <xs:enumeration value="Optional" />
-      <xs:enumeration value="Room" />
-      <xs:enumeration value="Resource" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="CalendarEventDetails">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="1" name="ID" type="xs:string" />
-      <xs:element minOccurs="0" maxOccurs="1" name="Subject" type="xs:string" />
-      <xs:element minOccurs="0" maxOccurs="1" name="Location" type="xs:string" />
-      <xs:element minOccurs="1" maxOccurs="1" name="IsMeeting" type="xs:boolean" />
-      <xs:element minOccurs="1" maxOccurs="1" name="IsRecurring" type="xs:boolean" />
-      <xs:element minOccurs="1" maxOccurs="1" name="IsException" type="xs:boolean" />
-      <xs:element minOccurs="1" maxOccurs="1" name="IsReminderSet" type="xs:boolean" />
-      <xs:element minOccurs="1" maxOccurs="1" name="IsPrivate" type="xs:boolean" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="CalendarEvent">
-    <xs:sequence>
-      <xs:element minOccurs="1" maxOccurs="1" name="StartTime" type="xs:dateTime" />
-      <xs:element minOccurs="1" maxOccurs="1" name="EndTime" type="xs:dateTime" />
-      <xs:element minOccurs="1" maxOccurs="1" name="BusyType" type="t:LegacyFreeBusyType" />
-      <xs:element minOccurs="0" maxOccurs="1" name="CalendarEventDetails" type="t:CalendarEventDetails" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ArrayOfCalendarEvent">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="unbounded" name="CalendarEvent" type="t:CalendarEvent" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="Duration">
-    <xs:sequence>
-      <xs:element minOccurs="1" maxOccurs="1" name="StartTime" type="xs:dateTime" />
-      <xs:element minOccurs="1" maxOccurs="1" name="EndTime" type="xs:dateTime" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="EmailAddress">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
-      <xs:element minOccurs="1" maxOccurs="1" name="Address" type="xs:string" />
-      <xs:element minOccurs="0" maxOccurs="1" name="RoutingType" type="xs:string" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="Mailbox" type="t:EmailAddress" />
-  <xs:simpleType name="FreeBusyViewType">
-    <xs:list>
-      <xs:simpleType>
-        <xs:restriction base="xs:string">
-          <xs:enumeration value="None" />
-          <xs:enumeration value="MergedOnly" />
-          <xs:enumeration value="FreeBusy" />
-          <xs:enumeration value="FreeBusyMerged" />
-          <xs:enumeration value="Detailed" />
-          <xs:enumeration value="DetailedMerged" />
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:list>
-  </xs:simpleType>
-  <xs:complexType name="FreeBusyViewOptionsType">
-    <xs:sequence>
-      <xs:element minOccurs="1" maxOccurs="1" name="TimeWindow" type="t:Duration" />
-      <xs:element minOccurs="0" maxOccurs="1" name="MergedFreeBusyIntervalInMinutes" type="xs:int" />
-      <xs:element minOccurs="0" maxOccurs="1" name="RequestedView" type="t:FreeBusyViewType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="FreeBusyViewOptions" type="t:FreeBusyViewOptionsType" />
-  <xs:complexType name="WorkingPeriod">
-    <xs:sequence>
-      <xs:element minOccurs="1" maxOccurs="1" name="DayOfWeek" type="t:DaysOfWeekType" />
-      <xs:element minOccurs="1" maxOccurs="1" name="StartTimeInMinutes" type="xs:int" />
-      <xs:element minOccurs="1" maxOccurs="1" name="EndTimeInMinutes" type="xs:int" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ArrayOfWorkingPeriod">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="unbounded" name="WorkingPeriod" type="t:WorkingPeriod" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="SerializableTimeZoneTime">
-    <xs:sequence>
-      <xs:element minOccurs="1" maxOccurs="1" name="Bias" type="xs:int" />
-      <xs:element minOccurs="1" maxOccurs="1" name="Time" type="xs:string" />
-      <xs:element minOccurs="1" maxOccurs="1" name="DayOrder" type="xs:short" />
-      <xs:element minOccurs="1" maxOccurs="1" name="Month" type="xs:short" />
-      <xs:element minOccurs="1" maxOccurs="1" name="DayOfWeek" type="t:DayOfWeekType" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="SerializableTimeZone">
-    <xs:sequence>
-      <xs:element minOccurs="1" maxOccurs="1" name="Bias" type="xs:int" />
-      <xs:element minOccurs="1" maxOccurs="1" name="StandardTime" type="t:SerializableTimeZoneTime" />
-      <xs:element minOccurs="1" maxOccurs="1" name="DaylightTime" type="t:SerializableTimeZoneTime" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="TimeZone" type="t:SerializableTimeZone" />
-  <xs:complexType name="WorkingHours">
-    <xs:sequence>
-      <xs:element minOccurs="1" maxOccurs="1" name="TimeZone" type="t:SerializableTimeZone" />
-      <xs:element minOccurs="1" maxOccurs="1" name="WorkingPeriodArray" type="t:ArrayOfWorkingPeriod" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="FreeBusyView">
-    <xs:sequence>
-      <xs:element minOccurs="1" maxOccurs="1" name="FreeBusyViewType" type="t:FreeBusyViewType" />
-      <xs:element minOccurs="0" maxOccurs="1" name="MergedFreeBusy" type="xs:string" />
-      <xs:element minOccurs="0" maxOccurs="1" name="CalendarEventArray" type="t:ArrayOfCalendarEvent" />
-      <xs:element minOccurs="0" maxOccurs="1" name="WorkingHours" type="t:WorkingHours" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="MailboxData">
-    <xs:sequence>
-      <xs:element minOccurs="1" maxOccurs="1" name="Email" type="t:EmailAddress" />
-      <xs:element minOccurs="1" maxOccurs="1" name="AttendeeType" type="t:MeetingAttendeeType" />
-      <xs:element minOccurs="0" maxOccurs="1" name="ExcludeConflicts" type="xs:boolean" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ArrayOfMailboxData">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="unbounded" name="MailboxData" nillable="true" type="t:MailboxData" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="SuggestionQuality">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Excellent" />
-      <xs:enumeration value="Good" />
-      <xs:enumeration value="Fair" />
-      <xs:enumeration value="Poor" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="SuggestionsViewOptionsType">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="1" name="GoodThreshold" type="xs:int" />
-      <xs:element minOccurs="0" maxOccurs="1" name="MaximumResultsByDay" type="xs:int" />
-      <xs:element minOccurs="0" maxOccurs="1" name="MaximumNonWorkHourResultsByDay" type="xs:int" />
-      <xs:element minOccurs="0" maxOccurs="1" name="MeetingDurationInMinutes" type="xs:int" />
-      <xs:element minOccurs="0" maxOccurs="1" name="MinimumSuggestionQuality" type="t:SuggestionQuality" />
-      <xs:element minOccurs="1" maxOccurs="1" name="DetailedSuggestionsWindow" type="t:Duration" />
-      <xs:element minOccurs="0" maxOccurs="1" name="CurrentMeetingTime" type="xs:dateTime" />
-      <xs:element minOccurs="0" maxOccurs="1" name="GlobalObjectId" type="xs:string" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="SuggestionsViewOptions" type="t:SuggestionsViewOptionsType" />
-  <xs:complexType name="ArrayOfAttendeeConflictData">
-    <xs:choice minOccurs="0" maxOccurs="unbounded">
-      <xs:element minOccurs="1" maxOccurs="1" name="UnknownAttendeeConflictData" nillable="true" type="t:UnknownAttendeeConflictData" />
-      <xs:element minOccurs="1" maxOccurs="1" name="IndividualAttendeeConflictData" nillable="true" type="t:IndividualAttendeeConflictData" />
-      <xs:element minOccurs="1" maxOccurs="1" name="TooBigGroupAttendeeConflictData" nillable="true" type="t:TooBigGroupAttendeeConflictData" />
-      <xs:element minOccurs="1" maxOccurs="1" name="GroupAttendeeConflictData" nillable="true" type="t:GroupAttendeeConflictData" />
-    </xs:choice>
-  </xs:complexType>
-  <xs:complexType name="AttendeeConflictData" abstract="true" />
-  <xs:complexType name="UnknownAttendeeConflictData">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:AttendeeConflictData" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="TooBigGroupAttendeeConflictData">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:AttendeeConflictData" />
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="IndividualAttendeeConflictData">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:AttendeeConflictData">
-        <xs:sequence>
-          <xs:element minOccurs="1" maxOccurs="1" name="BusyType" type="t:LegacyFreeBusyType" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="GroupAttendeeConflictData">
-    <xs:complexContent mixed="false">
-      <xs:extension base="t:AttendeeConflictData">
-        <xs:sequence>
-          <xs:element minOccurs="1" maxOccurs="1" name="NumberOfMembers" type="xs:int" />
-          <xs:element minOccurs="1" maxOccurs="1" name="NumberOfMembersAvailable" type="xs:int" />
-          <xs:element minOccurs="1" maxOccurs="1" name="NumberOfMembersWithConflict" type="xs:int" />
-          <xs:element minOccurs="1" maxOccurs="1" name="NumberOfMembersWithNoData" type="xs:int" />
-        </xs:sequence>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <xs:complexType name="Suggestion">
-    <xs:sequence>
-      <xs:element minOccurs="1" maxOccurs="1" name="MeetingTime" type="xs:dateTime" />
-      <xs:element minOccurs="1" maxOccurs="1" name="IsWorkTime" type="xs:boolean" />
-      <xs:element minOccurs="1" maxOccurs="1" name="SuggestionQuality" type="t:SuggestionQuality" />
-      <xs:element minOccurs="0" maxOccurs="1" name="AttendeeConflictDataArray" type="t:ArrayOfAttendeeConflictData" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ArrayOfSuggestion">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="unbounded" name="Suggestion" type="t:Suggestion" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="SuggestionDayResult">
-    <xs:sequence>
-      <xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime" />
-      <xs:element minOccurs="1" maxOccurs="1" name="DayQuality" type="t:SuggestionQuality" />
-      <xs:element minOccurs="0" maxOccurs="1" name="SuggestionArray" type="t:ArrayOfSuggestion" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:complexType name="ArrayOfSuggestionDayResult">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="unbounded" name="SuggestionDayResult" type="t:SuggestionDayResult" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:simpleType name="OofState">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="Disabled" />
-      <xs:enumeration value="Enabled" />
-      <xs:enumeration value="Scheduled" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:simpleType name="ExternalAudience">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="None" />
-      <xs:enumeration value="Known" />
-      <xs:enumeration value="All" />
-    </xs:restriction>
-  </xs:simpleType>
-  <xs:complexType name="ReplyBody">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="1" name="Message" type="xs:string" />
-    </xs:sequence>
-    <xs:attribute ref="xml:lang" use="optional" />
-  </xs:complexType>
-  <xs:complexType name="UserOofSettings">
-    <xs:sequence>
-      <xs:element minOccurs="1" maxOccurs="1" name="OofState" type="t:OofState" />
-      <xs:element minOccurs="1" maxOccurs="1" name="ExternalAudience" type="t:ExternalAudience" />
-      <xs:element minOccurs="0" maxOccurs="1" name="Duration" type="t:Duration" />
-      <xs:element minOccurs="0" maxOccurs="1" name="InternalReply" type="t:ReplyBody" />
-      <xs:element minOccurs="0" maxOccurs="1" name="ExternalReply" type="t:ReplyBody" />
-    </xs:sequence>
-  </xs:complexType>
-  <xs:element name="OofSettings" type="t:UserOofSettings" />
-  <xs:element name="UserOofSettings" type="t:UserOofSettings" />
-  <xs:complexType name="Value">
-    <xs:simpleContent>
-      <xs:extension base="xs:string">
-        <xs:attribute name="Name" type="xs:string" use="required" />
-      </xs:extension>
-    </xs:simpleContent>
-  </xs:complexType>
-</xs:schema>
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema id="types" elementFormDefault="qualified" version="Exchange2010" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" targetNamespace="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:tns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+  <!-- replaced this with the line below <xs:import namespace="http://www.w3.org/XML/1998/namespace" /> -->
+  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+  <!-- SOAP header to indicate language for mailbox interaction-->
+  <xs:complexType name="MailboxCultureType">
+    <xs:simpleContent>
+      <xs:extension base="xs:language">
+        <xs:anyAttribute namespace="http://schemas.xmlsoap.org/soap/envelope/">
+          <xs:annotation>
+            <xs:documentation>Allow attributes in the soap namespace to be used here</xs:documentation>
+          </xs:annotation>
+        </xs:anyAttribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <xs:element name="MailboxCulture" type="t:MailboxCultureType"/>
+
+  <!-- Server to Server auth SOAP header information -->
+  <xs:complexType name="SidAndAttributesType">
+    <xs:sequence>
+      <xs:element name="SecurityIdentifier" type="xs:string"/>
+    </xs:sequence>
+    <xs:attribute name="Attributes" type="xs:unsignedInt" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfGroupIdentifiersType">
+    <xs:sequence>
+      <xs:element name="GroupIdentifier" type="t:SidAndAttributesType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfRestrictedGroupIdentifiersType">
+    <xs:sequence>
+      <xs:element name="RestrictedGroupIdentifier" type="t:SidAndAttributesType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="SerializedSecurityContextType">
+    <xs:sequence>
+      <xs:element name="UserSid" type="xs:string"/>
+      <xs:element name="GroupSids" type="t:NonEmptyArrayOfGroupIdentifiersType" minOccurs="0"/>
+      <xs:element name="RestrictedGroupSids" type="t:NonEmptyArrayOfRestrictedGroupIdentifiersType" minOccurs="0"/>
+      <xs:element name="PrimarySmtpAddress" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="http://schemas.xmlsoap.org/soap/envelope/">
+      <xs:annotation>
+        <xs:documentation>Allow attributes in the soap namespace to be used here</xs:documentation>
+      </xs:annotation>
+    </xs:anyAttribute>
+  </xs:complexType>
+  <xs:element name="SerializedSecurityContext" type="t:SerializedSecurityContextType"/>
+
+  <xs:complexType name="ConnectingSIDType">
+    <xs:choice>
+      <xs:element name="PrincipalName" type="t:NonEmptyStringType"/>
+      <xs:element name="SID" type="t:NonEmptyStringType"/>
+      <xs:element name="PrimarySmtpAddress" type="t:NonEmptyStringType"/>
+      <xs:element name="SmtpAddress" type="t:NonEmptyStringType"/>
+    </xs:choice>
+  </xs:complexType>
+  <xs:complexType name="ExchangeImpersonationType">
+    <xs:sequence>
+      <xs:element name="ConnectingSID" type="t:ConnectingSIDType"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="http://schemas.xmlsoap.org/soap/envelope/">
+      <xs:annotation>
+        <xs:documentation>Allow attributes in the soap namespace to be used here</xs:documentation>
+      </xs:annotation>
+    </xs:anyAttribute>
+  </xs:complexType>
+  <xs:element name="ExchangeImpersonation" type="t:ExchangeImpersonationType"/>
+
+  <!-- External sharing security header for person-to-person sharing relationships -->
+  <xs:element name="SharingSecurity" type="t:EncryptedDataContainerType"/>
+
+  <!-- Enumeration of Exchange Server versions -->
+  <xs:simpleType name="ExchangeVersionType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Exchange2007"/>
+      <xs:enumeration value="Exchange2007_SP1"/>
+      <xs:enumeration value="Exchange2010"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ProxySecurityContextType">
+    <xs:simpleContent>
+      <xs:extension base="xs:base64Binary">
+        <xs:anyAttribute namespace="http://schemas.xmlsoap.org/soap/envelope/">
+          <xs:annotation>
+            <xs:documentation>Allow attributes in the soap namespace to be used here</xs:documentation>
+          </xs:annotation>
+        </xs:anyAttribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <xs:element name="ProxySecurityContext" type="t:ProxySecurityContextType"/>
+  <xs:element name="ProxySuggesterSid" type="t:ProxySecurityContextType"/>
+
+  <!-- Used in the SOAP header of responses for diagnostics purposes. -->
+  <xs:element name="ServerVersionInfo">
+    <xs:complexType>
+      <xs:attribute name="MajorVersion" type="xs:int" use="optional"/>
+      <xs:attribute name="MinorVersion" type="xs:int" use="optional"/>
+      <xs:attribute name="MajorBuildNumber" type="xs:int" use="optional"/>
+      <xs:attribute name="MinorBuildNumber" type="xs:int" use="optional"/>
+      <xs:attribute name="Version" type="xs:string" use="optional"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- Used in the SOAP header of requests to specify version for request. -->
+  <xs:element name="RequestServerVersion">
+    <xs:complexType>
+      <xs:attribute name="Version" type="t:ExchangeVersionType" fixed="Exchange2010" use="required"/>
+      <xs:anyAttribute namespace="http://schemas.xmlsoap.org/soap/envelope/">
+        <xs:annotation>
+          <xs:documentation>Allow attributes in the soap namespace to be used here</xs:documentation>
+        </xs:annotation>
+      </xs:anyAttribute>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- Email address/participant types -->
+
+  <xs:simpleType name="NonEmptyStringType">
+    <xs:restriction base="xs:string">
+      <xs:minLength value="1"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="BaseEmailAddressType"/>
+
+  <xs:simpleType name="MailboxTypeType">
+    <xs:restriction base="xs:string">
+
+      <xs:enumeration value="Unknown"/>
+      <xs:enumeration value="OneOff"/>
+
+      <xs:enumeration value="Mailbox"/>
+      <xs:enumeration value="PublicDL"/>
+
+      <xs:enumeration value="PrivateDL"/>
+      <xs:enumeration value="Contact"/>
+
+      <xs:enumeration value="PublicFolder"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="EmailAddressType">
+    <xs:annotation>
+      <xs:documentation>Identifier for a fully resolved email address</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="t:BaseEmailAddressType">
+        <xs:sequence>
+          <xs:element name="Name" type="xs:string" minOccurs="0"/>
+          <xs:element name="EmailAddress" type="t:NonEmptyStringType" minOccurs="0"/>
+          <xs:element name="RoutingType" type="t:NonEmptyStringType" minOccurs="0"/>
+          <xs:element name="MailboxType" type="t:MailboxTypeType" minOccurs="0"/>
+          <xs:element name="ItemId" type="t:ItemIdType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- GetRooms Service Types -->
+
+  <xs:complexType name="ArrayOfEmailAddressesType">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="Address" type="t:EmailAddressType"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="DirectoryEntryType">
+    <xs:sequence>
+      <xs:element name="Id" type="t:EmailAddressType" minOccurs="0" maxOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="RoomType">
+    <xs:complexContent>
+      <xs:extension base="t:DirectoryEntryType">
+        <!-- We don't need anything additional at this time -->
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfRoomsType">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="Room" type="t:RoomType"/>
+    </xs:sequence>
+  </xs:complexType>
+
+
+  <!-- - - - - - - - - - - - - - - - - - - -->
+  <!--            Recipient List           -->
+  <!-- - - - - - - - - - - - - - - - - - - -->
+  <xs:complexType name="ArrayOfRecipientsType">
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="Mailbox" type="t:EmailAddressType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="SingleRecipientType">
+    <xs:choice>
+      <xs:element name="Mailbox" type="t:EmailAddressType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <!-- URIs for frequently referenced types -->
+  <xs:simpleType name="UnindexedFieldURIType">
+    <xs:restriction base="xs:string">
+      <!-- Folder fields -->
+
+      <xs:enumeration value="folder:FolderId"/>
+      <xs:enumeration value="folder:ParentFolderId"/>
+      <xs:enumeration value="folder:DisplayName"/>
+      <xs:enumeration value="folder:UnreadCount"/>
+      <xs:enumeration value="folder:TotalCount"/>
+      <xs:enumeration value="folder:ChildFolderCount"/>
+      <xs:enumeration value="folder:FolderClass"/>
+      <xs:enumeration value="folder:SearchParameters"/>
+      <xs:enumeration value="folder:ManagedFolderInformation"/>
+      <xs:enumeration value="folder:PermissionSet"/>
+      <xs:enumeration value="folder:EffectiveRights"/>
+      <xs:enumeration value="folder:SharingEffectiveRights"/>
+      <!-- Item fields -->
+
+      <xs:enumeration value="item:ItemId"/>
+      <xs:enumeration value="item:ParentFolderId"/>
+      <xs:enumeration value="item:ItemClass"/>
+      <xs:enumeration value="item:MimeContent"/>
+      <xs:enumeration value="item:Attachments"/>
+      <xs:enumeration value="item:Subject"/>
+      <xs:enumeration value="item:DateTimeReceived"/>
+      <xs:enumeration value="item:Size"/>
+      <xs:enumeration value="item:Categories"/>
+      <xs:enumeration value="item:HasAttachments"/>
+      <xs:enumeration value="item:Importance"/>
+      <xs:enumeration value="item:InReplyTo"/>
+      <xs:enumeration value="item:InternetMessageHeaders"/>
+      <xs:enumeration value="item:IsAssociated"/>
+      <xs:enumeration value="item:IsDraft"/>
+      <xs:enumeration value="item:IsFromMe"/>
+      <xs:enumeration value="item:IsResend"/>
+      <xs:enumeration value="item:IsSubmitted"/>
+      <xs:enumeration value="item:IsUnmodified"/>
+      <xs:enumeration value="item:DateTimeSent"/>
+      <xs:enumeration value="item:DateTimeCreated"/>
+      <xs:enumeration value="item:Body"/>
+      <xs:enumeration value="item:ResponseObjects"/>
+      <xs:enumeration value="item:Sensitivity"/>
+
+      <xs:enumeration value="item:ReminderDueBy"/>
+      <xs:enumeration value="item:ReminderIsSet"/>
+      <xs:enumeration value="item:ReminderMinutesBeforeStart"/>
+
+      <xs:enumeration value="item:DisplayTo"/>
+      <xs:enumeration value="item:DisplayCc"/>
+
+      <xs:enumeration value="item:Culture"/>
+      <xs:enumeration value="item:EffectiveRights"/>
+
+      <xs:enumeration value="item:LastModifiedName"/>
+      <xs:enumeration value="item:LastModifiedTime"/>
+      <xs:enumeration value="item:ConversationId"/>
+      <xs:enumeration value="item:UniqueBody"/>
+
+      <xs:enumeration value="item:WebClientReadFormQueryString"/>
+      <xs:enumeration value="item:WebClientEditFormQueryString"/>
+
+      <!-- Messages -->
+
+      <xs:enumeration value="message:ConversationIndex"/>
+      <xs:enumeration value="message:ConversationTopic"/>
+      <xs:enumeration value="message:InternetMessageId"/>
+      <xs:enumeration value="message:IsRead"/>
+      <xs:enumeration value="message:IsResponseRequested"/>
+      <xs:enumeration value="message:IsReadReceiptRequested"/>
+      <xs:enumeration value="message:IsDeliveryReceiptRequested"/>
+      <xs:enumeration value="message:ReceivedBy"/>
+      <xs:enumeration value="message:ReceivedRepresenting"/>
+      <xs:enumeration value="message:References"/>
+      <xs:enumeration value="message:ReplyTo"/>
+      <xs:enumeration value="message:From"/>
+      <xs:enumeration value="message:Sender"/>
+      <xs:enumeration value="message:ToRecipients"/>
+      <xs:enumeration value="message:CcRecipients"/>
+      <xs:enumeration value="message:BccRecipients"/>
+
+      <!-- Meeting Message -->
+
+      <xs:enumeration value="meeting:AssociatedCalendarItemId"/>
+      <xs:enumeration value="meeting:IsDelegated"/>
+      <xs:enumeration value="meeting:IsOutOfDate"/>
+      <xs:enumeration value="meeting:HasBeenProcessed"/>
+      <xs:enumeration value="meeting:ResponseType"/>
+
+      <!-- Meeting Request -->
+
+      <xs:enumeration value="meetingRequest:MeetingRequestType"/>
+      <xs:enumeration value="meetingRequest:IntendedFreeBusyStatus"/>
+
+      <!-- Calendar items and appointments -->
+
+      <xs:enumeration value="calendar:Start"/>
+      <xs:enumeration value="calendar:End"/>
+      <xs:enumeration value="calendar:OriginalStart"/>
+      <xs:enumeration value="calendar:IsAllDayEvent"/>
+      <xs:enumeration value="calendar:LegacyFreeBusyStatus"/>
+      <xs:enumeration value="calendar:Location"/>
+      <xs:enumeration value="calendar:When"/>
+      <xs:enumeration value="calendar:IsMeeting"/>
+      <xs:enumeration value="calendar:IsCancelled"/>
+      <xs:enumeration value="calendar:IsRecurring"/>
+      <xs:enumeration value="calendar:MeetingRequestWasSent"/>
+      <xs:enumeration value="calendar:IsResponseRequested"/>
+      <xs:enumeration value="calendar:CalendarItemType"/>
+      <xs:enumeration value="calendar:MyResponseType"/>
+      <xs:enumeration value="calendar:Organizer"/>
+      <xs:enumeration value="calendar:RequiredAttendees"/>
+      <xs:enumeration value="calendar:OptionalAttendees"/>
+      <xs:enumeration value="calendar:Resources"/>
+      <xs:enumeration value="calendar:ConflictingMeetingCount"/>
+      <xs:enumeration value="calendar:AdjacentMeetingCount"/>
+      <xs:enumeration value="calendar:ConflictingMeetings"/>
+      <xs:enumeration value="calendar:AdjacentMeetings"/>
+
+      <xs:enumeration value="calendar:Duration"/>
+      <xs:enumeration value="calendar:TimeZone"/>
+      <xs:enumeration value="calendar:AppointmentReplyTime"/>
+      <xs:enumeration value="calendar:AppointmentSequenceNumber"/>
+      <xs:enumeration value="calendar:AppointmentState"/>
+
+      <xs:enumeration value="calendar:Recurrence"/>
+      <xs:enumeration value="calendar:FirstOccurrence"/>
+      <xs:enumeration value="calendar:LastOccurrence"/>
+      <xs:enumeration value="calendar:ModifiedOccurrences"/>
+      <xs:enumeration value="calendar:DeletedOccurrences"/>
+      <xs:enumeration value="calendar:MeetingTimeZone"/>
+
+      <xs:enumeration value="calendar:ConferenceType"/>
+      <xs:enumeration value="calendar:AllowNewTimeProposal"/>
+      <xs:enumeration value="calendar:IsOnlineMeeting"/>
+      <xs:enumeration value="calendar:MeetingWorkspaceUrl"/>
+      <xs:enumeration value="calendar:NetShowUrl"/>
+
+      <xs:enumeration value="calendar:UID"/>
+      <xs:enumeration value="calendar:RecurrenceId"/>
+      <xs:enumeration value="calendar:DateTimeStamp"/>
+      <xs:enumeration value="calendar:StartTimeZone"/>
+      <xs:enumeration value="calendar:EndTimeZone"/>
+
+      <!-- Task properties -->
+
+      <xs:enumeration value="task:ActualWork"/>
+      <xs:enumeration value="task:AssignedTime"/>
+      <xs:enumeration value="task:BillingInformation"/>
+      <xs:enumeration value="task:ChangeCount"/>
+      <xs:enumeration value="task:Companies"/>
+      <xs:enumeration value="task:CompleteDate"/>
+      <xs:enumeration value="task:Contacts"/>
+      <xs:enumeration value="task:DelegationState"/>
+      <xs:enumeration value="task:Delegator"/>
+      <xs:enumeration value="task:DueDate"/>
+      <xs:enumeration value="task:IsAssignmentEditable"/>
+      <xs:enumeration value="task:IsComplete"/>
+      <xs:enumeration value="task:IsRecurring"/>
+      <xs:enumeration value="task:IsTeamTask"/>
+      <xs:enumeration value="task:Mileage"/>
+      <xs:enumeration value="task:Owner"/>
+      <xs:enumeration value="task:PercentComplete"/>
+      <xs:enumeration value="task:Recurrence"/>
+      <xs:enumeration value="task:StartDate"/>
+      <xs:enumeration value="task:Status"/>
+      <xs:enumeration value="task:StatusDescription"/>
+      <xs:enumeration value="task:TotalWork"/>
+
+      <!-- Contacts -->
+
+      <xs:enumeration value="contacts:AssistantName"/>
+      <xs:enumeration value="contacts:Birthday"/>
+      <xs:enumeration value="contacts:BusinessHomePage"/>
+      <xs:enumeration value="contacts:Children"/>
+      <xs:enumeration value="contacts:Companies"/>
+      <xs:enumeration value="contacts:CompanyName"/>
+      <xs:enumeration value="contacts:CompleteName"/>
+      <xs:enumeration value="contacts:ContactSource"/>
+      <xs:enumeration value="contacts:Culture"/>
+      <xs:enumeration value="contacts:Department"/>
+      <xs:enumeration value="contacts:DisplayName"/>
+      <xs:enumeration value="contacts:EmailAddresses"/>
+      <xs:enumeration value="contacts:FileAs"/>
+      <xs:enumeration value="contacts:FileAsMapping"/>
+      <xs:enumeration value="contacts:Generation"/>
+      <xs:enumeration value="contacts:GivenName"/>
+      <xs:enumeration value="contacts:ImAddresses"/>
+      <xs:enumeration value="contacts:Initials"/>
+      <xs:enumeration value="contacts:JobTitle"/>
+      <xs:enumeration value="contacts:Manager"/>
+      <xs:enumeration value="contacts:MiddleName"/>
+      <xs:enumeration value="contacts:Mileage"/>
+      <xs:enumeration value="contacts:Nickname"/>
+      <xs:enumeration value="contacts:OfficeLocation"/>
+      <xs:enumeration value="contacts:PhoneNumbers"/>
+      <xs:enumeration value="contacts:PhysicalAddresses"/>
+      <xs:enumeration value="contacts:PostalAddressIndex"/>
+      <xs:enumeration value="contacts:Profession"/>
+      <xs:enumeration value="contacts:SpouseName"/>
+      <xs:enumeration value="contacts:Surname"/>
+      <xs:enumeration value="contacts:WeddingAnniversary"/>
+      <xs:enumeration value="contacts:HasPicture"/>
+
+      <xs:enumeration value="distributionlist:Members"/>
+
+      <!-- Post item -->
+      <xs:enumeration value="postitem:PostedTime"/>
+      <!-- Note: The following message Field URIs are also valid for a postitem:
+                             message:ConversationIndex
+                             message:ConversationTopic
+                             message:From
+                             message:InternetMessageId
+                             message:References
+                             message:Sender
+      -->
+
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="DictionaryURIType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="item:InternetMessageHeader"/>
+      <xs:enumeration value="contacts:ImAddress"/>
+      <xs:enumeration value="contacts:PhysicalAddress:Street"/>
+      <xs:enumeration value="contacts:PhysicalAddress:City"/>
+      <xs:enumeration value="contacts:PhysicalAddress:State"/>
+      <xs:enumeration value="contacts:PhysicalAddress:CountryOrRegion"/>
+      <xs:enumeration value="contacts:PhysicalAddress:PostalCode"/>
+      <xs:enumeration value="contacts:PhoneNumber"/>
+      <xs:enumeration value="contacts:EmailAddress"/>
+
+      <xs:enumeration value="distributionlist:Members:Member"/>
+
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- URIs for property types used in MessageXml -->
+  <xs:simpleType name="ExceptionPropertyURIType">
+    <xs:restriction base="xs:string">
+      <!-- Attachment fields -->
+
+      <xs:enumeration value="attachment:Name"/>
+      <xs:enumeration value="attachment:ContentType"/>
+      <xs:enumeration value="attachment:Content"/>
+
+      <!-- Recurrence fields -->
+
+      <xs:enumeration value="recurrence:Month"/>
+      <xs:enumeration value="recurrence:DayOfWeekIndex"/>
+      <xs:enumeration value="recurrence:DaysOfWeek"/>
+      <xs:enumeration value="recurrence:DayOfMonth"/>
+      <xs:enumeration value="recurrence:Interval"/>
+      <xs:enumeration value="recurrence:NumberOfOccurrences"/>
+
+      <xs:enumeration value="timezone:Offset"/>
+
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- path types -->
+  <xs:simpleType name="GuidType">
+    <xs:annotation>
+      <xs:documentation>
+        The regular expression captures the standard representation of a GUID
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:pattern value="[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="DistinguishedPropertySetType">
+    <xs:annotation>
+      <xs:documentation>
+        Defines the well known property set ids for extended properties.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Meeting"/>
+      <xs:enumeration value="Appointment"/>
+      <xs:enumeration value="Common"/>
+      <xs:enumeration value="PublicStrings"/>
+      <xs:enumeration value="Address"/>
+      <xs:enumeration value="InternetHeaders"/>
+      <xs:enumeration value="CalendarAssistant"/>
+      <xs:enumeration value="UnifiedMessaging"/>
+      <xs:enumeration value="Task"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="MapiPropertyTypeType">
+    <xs:annotation>
+      <xs:documentation>
+        Includes all of the extended property types that we support.  Note that Error, Null,
+        Object and Object array can not be used in restrictions, or for setting/getting values.
+        They are only there for error reporting purposes.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="ApplicationTime"/>
+      <xs:enumeration value="ApplicationTimeArray"/>
+      <xs:enumeration value="Binary"/>
+      <xs:enumeration value="BinaryArray"/>
+      <xs:enumeration value="Boolean"/>
+      <xs:enumeration value="CLSID"/>
+      <xs:enumeration value="CLSIDArray"/>
+      <xs:enumeration value="Currency"/>
+      <xs:enumeration value="CurrencyArray"/>
+      <xs:enumeration value="Double"/>
+      <xs:enumeration value="DoubleArray"/>
+      <xs:enumeration value="Error"/>
+      <xs:enumeration value="Float"/>
+      <xs:enumeration value="FloatArray"/>
+      <xs:enumeration value="Integer"/>
+      <xs:enumeration value="IntegerArray"/>
+      <xs:enumeration value="Long"/>
+      <xs:enumeration value="LongArray"/>
+      <xs:enumeration value="Null"/>
+      <xs:enumeration value="Object"/>
+      <xs:enumeration value="ObjectArray"/>
+      <xs:enumeration value="Short"/>
+      <xs:enumeration value="ShortArray"/>
+      <xs:enumeration value="SystemTime"/>
+      <xs:enumeration value="SystemTimeArray"/>
+      <xs:enumeration value="String"/>
+      <xs:enumeration value="StringArray"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="BasePathToElementType" abstract="true"/>
+
+  <xs:complexType name="PathToUnindexedFieldType">
+    <xs:complexContent>
+      <xs:extension base="t:BasePathToElementType">
+        <xs:attribute name="FieldURI" type="t:UnindexedFieldURIType" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="PathToIndexedFieldType">
+    <xs:complexContent>
+      <xs:extension base="t:BasePathToElementType">
+        <xs:attribute name="FieldURI" type="t:DictionaryURIType" use="required"/>
+        <xs:attribute name="FieldIndex" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="PathToExceptionFieldType">
+    <xs:complexContent>
+      <xs:extension base="t:BasePathToElementType">
+        <xs:attribute name="FieldURI" type="t:ExceptionPropertyURIType" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="PropertyTagType">
+    <xs:annotation>
+      <xs:documentation>
+        This type represents the property tag (MINUS the type part).  There are two options
+        for representation:
+        1.  Hex ==&gt; 0x3fa4
+        2.  Decimal ==&gt; 0-65535
+      </xs:documentation>
+    </xs:annotation>
+    <xs:union memberTypes="xs:unsignedShort">
+      <xs:simpleType id="HexPropertyTagType">
+        <xs:restriction base="xs:string">
+          <xs:pattern value="(0x|0X)[0-9A-Fa-f]{1,4}"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="PathToExtendedFieldType">
+    <xs:annotation>
+      <xs:documentation>
+        Represents an extended property.  Note that there are only a couple of valid attribute
+        combinations.  Note that all occurances require the PropertyType attribute.
+
+        1.  (DistinguishedPropertySetId || PropertySetId) + (PropertyName || Property Id)
+        2.  PropertyTag
+
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="t:BasePathToElementType">
+        <xs:attribute name="DistinguishedPropertySetId" type="t:DistinguishedPropertySetType" use="optional"/>
+        <xs:attribute name="PropertySetId" type="t:GuidType" use="optional"/>
+        <xs:attribute name="PropertyTag" type="t:PropertyTagType" use="optional"/>
+        <xs:attribute name="PropertyName" type="xs:string" use="optional"/>
+        <xs:attribute name="PropertyId" type="xs:int" use="optional"/>
+        <xs:attribute name="PropertyType" type="t:MapiPropertyTypeType" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="Path" abstract="true" type="t:BasePathToElementType"/>
+  <xs:element name="FieldURI" type="t:PathToUnindexedFieldType" substitutionGroup="t:Path"/>
+  <xs:element name="IndexedFieldURI" type="t:PathToIndexedFieldType" substitutionGroup="t:Path"/>
+  <xs:element name="ExtendedFieldURI" type="t:PathToExtendedFieldType" substitutionGroup="t:Path"/>
+
+  <!-- For errors only, identifies fields that do not have a uri. -->
+  <xs:element name="ExceptionFieldURI" type="t:PathToExceptionFieldType"/>
+
+  <!-- Arrays of paths -->
+  <xs:complexType name="NonEmptyArrayOfPathsToElementType">
+    <!-- using choice here so that proxy generator will not flatten the array and thus lose the
+        item element names -->
+    <xs:choice maxOccurs="unbounded">
+      <xs:element ref="t:Path"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <!-- ExtendedProperty value instances -->
+
+  <xs:complexType name="NonEmptyArrayOfPropertyValuesType">
+    <xs:choice>
+      <xs:element name="Value" type="xs:string" maxOccurs="unbounded"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="ExtendedPropertyType">
+    <xs:annotation>
+      <xs:documentation>
+        Represents an extended property instance (both its path identifier along with its
+        associated value).
+      </xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="ExtendedFieldURI" type="t:PathToExtendedFieldType"/>
+      <xs:choice>
+        <xs:element name="Value" type="xs:string"/>
+        <xs:element name="Values" type="t:NonEmptyArrayOfPropertyValuesType"/>
+      </xs:choice>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- Query Traversal types -->
+  <xs:simpleType name="FolderQueryTraversalType">
+    <xs:annotation>
+      <xs:documentation>Types of sub-tree traversal for deletion and enumeration</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Shallow"/>
+      <xs:enumeration value="Deep"/>
+      <xs:enumeration value="SoftDeleted"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="SearchFolderTraversalType">
+    <xs:annotation>
+      <xs:documentation>Types of sub-tree traversal for deletion and enumeration</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Shallow"/>
+      <xs:enumeration value="Deep"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ItemQueryTraversalType">
+    <xs:annotation>
+      <xs:documentation>Types of sub-tree traversal for deletion and enumeration</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Shallow"/>
+      <xs:enumeration value="SoftDeleted"/>
+      <xs:enumeration value="Associated"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- Default shape names for response shapes -->
+  <xs:simpleType name="DefaultShapeNamesType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="IdOnly"/>
+      <xs:enumeration value="Default"/>
+      <xs:enumeration value="AllProperties"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="BodyTypeResponseType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Best"/>
+      <xs:enumeration value="HTML"/>
+      <xs:enumeration value="Text"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- Placeholder type from which all folder shape properties are to be derived -->
+  <xs:complexType name="FolderResponseShapeType">
+    <xs:sequence>
+      <xs:element name="BaseShape" type="t:DefaultShapeNamesType"/>
+      <xs:element name="AdditionalProperties" type="t:NonEmptyArrayOfPathsToElementType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ItemResponseShapeType">
+    <xs:sequence>
+      <xs:element name="BaseShape" type="t:DefaultShapeNamesType"/>
+      <xs:element name="IncludeMimeContent" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="BodyType" type="t:BodyTypeResponseType" minOccurs="0"/>
+      <xs:element name="FilterHtmlContent" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="AdditionalProperties" type="t:NonEmptyArrayOfPathsToElementType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="AttachmentResponseShapeType">
+    <xs:sequence>
+      <xs:element name="IncludeMimeContent" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="BodyType" type="t:BodyTypeResponseType" minOccurs="0"/>
+      <xs:element name="FilterHtmlContent" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="AdditionalProperties" type="t:NonEmptyArrayOfPathsToElementType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="DisposalType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="HardDelete"/>
+      <xs:enumeration value="SoftDelete"/>
+      <xs:enumeration value="MoveToDeletedItems"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- auto-conflict resolution levels -->
+  <xs:simpleType name="ConflictResolutionType">
+    <xs:annotation>
+      <xs:documentation>Type of conflict resolution to attempt during update</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="NeverOverwrite"/>
+      <xs:enumeration value="AutoResolve"/>
+      <xs:enumeration value="AlwaysOverwrite"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ResponseClassType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Success"/>
+      <xs:enumeration value="Warning"/>
+      <xs:enumeration value="Error"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- Core update operations -->
+  <xs:complexType name="ChangeDescriptionType" abstract="true">
+    <!-- This path element needs some explanation.  For update operations, only ONE
+            property can be modified within a single request.  That single property must be
+            referenced in the Path element.  The Item/Folder element in the derived classes
+            can then only hold a single property that is in agreement with the single path
+            element-->
+    <xs:sequence>
+      <xs:element ref="t:Path"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ItemChangeDescriptionType">
+    <xs:complexContent>
+      <xs:extension base="t:ChangeDescriptionType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="FolderChangeDescriptionType">
+    <xs:complexContent>
+      <xs:extension base="t:ChangeDescriptionType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="SetItemFieldType">
+    <xs:complexContent>
+      <xs:extension base="t:ItemChangeDescriptionType">
+        <xs:choice>
+          <xs:element name="Item" type="t:ItemType"/>
+          <xs:element name="Message" type="t:MessageType"/>
+          <xs:element name="CalendarItem" type="t:CalendarItemType"/>
+          <xs:element name="Contact" type="t:ContactItemType"/>
+          <xs:element name="DistributionList" type="t:DistributionListType"/>
+          <xs:element name="MeetingMessage" type="t:MeetingMessageType"/>
+          <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType"/>
+          <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType"/>
+          <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType"/>
+          <xs:element name="Task" type="t:TaskType"/>
+          <xs:element name="PostItem" type="t:PostItemType"/>
+        </xs:choice>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="SetFolderFieldType">
+    <xs:complexContent>
+      <xs:extension base="t:FolderChangeDescriptionType">
+        <xs:choice>
+          <xs:element name="Folder" type="t:FolderType"/>
+          <xs:element name="CalendarFolder" type="t:CalendarFolderType"/>
+          <xs:element name="ContactsFolder" type="t:ContactsFolderType"/>
+          <xs:element name="SearchFolder" type="t:SearchFolderType"/>
+          <xs:element name="TasksFolder" type="t:TasksFolderType"/>
+        </xs:choice>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="DeleteItemFieldType">
+    <xs:complexContent>
+      <xs:extension base="t:ItemChangeDescriptionType">
+        <xs:sequence/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="DeleteFolderFieldType">
+    <xs:complexContent>
+      <xs:extension base="t:FolderChangeDescriptionType">
+        <xs:sequence/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="AppendToItemFieldType">
+    <xs:complexContent>
+      <xs:extension base="t:ItemChangeDescriptionType">
+        <xs:choice>
+          <xs:element name="Item" type="t:ItemType"/>
+          <xs:element name="Message" type="t:MessageType"/>
+          <xs:element name="CalendarItem" type="t:CalendarItemType"/>
+          <xs:element name="Contact" type="t:ContactItemType"/>
+          <xs:element name="DistributionList" type="t:DistributionListType"/>
+          <xs:element name="MeetingMessage" type="t:MeetingMessageType"/>
+          <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType"/>
+          <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType"/>
+          <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType"/>
+          <xs:element name="Task" type="t:TaskType"/>
+          <xs:element name="PostItem" type="t:PostItemType"/>
+        </xs:choice>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="AppendToFolderFieldType">
+    <xs:complexContent>
+      <xs:extension base="t:FolderChangeDescriptionType">
+        <xs:sequence>
+          <xs:choice>
+            <xs:element name="Folder" type="t:FolderType"/>
+            <xs:element name="CalendarFolder" type="t:CalendarFolderType"/>
+            <xs:element name="ContactsFolder" type="t:ContactsFolderType"/>
+            <xs:element name="SearchFolder" type="t:SearchFolderType"/>
+            <xs:element name="TasksFolder" type="t:TasksFolderType"/>
+          </xs:choice>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfItemChangeDescriptionsType">
+    <xs:choice maxOccurs="unbounded">
+      <xs:element name="AppendToItemField" type="t:AppendToItemFieldType"/>
+      <xs:element name="SetItemField" type="t:SetItemFieldType"/>
+      <xs:element name="DeleteItemField" type="t:DeleteItemFieldType"/>
+    </xs:choice>
+  </xs:complexType>
+  <xs:complexType name="NonEmptyArrayOfFolderChangeDescriptionsType">
+    <xs:choice maxOccurs="unbounded">
+      <xs:element name="AppendToFolderField" type="t:AppendToFolderFieldType"/>
+      <xs:element name="SetFolderField" type="t:SetFolderFieldType"/>
+      <xs:element name="DeleteFolderField" type="t:DeleteFolderFieldType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <!-- Updating an item. -->
+
+  <xs:complexType name="ItemChangeType">
+    <xs:sequence>
+      <xs:choice>
+        <xs:element name="ItemId" type="t:ItemIdType"/>
+        <xs:element name="OccurrenceItemId" type="t:OccurrenceItemIdType"/>
+        <xs:element name="RecurringMasterItemId" type="t:RecurringMasterItemIdType"/>
+      </xs:choice>
+      <xs:element name="Updates" type="t:NonEmptyArrayOfItemChangeDescriptionsType"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfItemChangesType">
+    <xs:sequence>
+      <xs:element name="ItemChange" type="t:ItemChangeType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- Other headers -->
+  <xs:complexType name="InternetHeaderType">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="HeaderName" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfInternetHeadersType">
+    <xs:sequence>
+      <xs:element name="InternetMessageHeader" type="t:InternetHeaderType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- Attachments -->
+
+  <!-- This type is used in GetAttachment -->
+  <xs:complexType name="RequestAttachmentIdType">
+    <xs:complexContent>
+      <xs:extension base="t:BaseItemIdType">
+        <xs:attribute name="Id" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- This type is used in CreateAttachment responses. CreateAttachment modifies the
+        change key of the root item of the created attachment. We have to return that new
+        change key.-->
+  <xs:complexType name="AttachmentIdType">
+    <xs:complexContent>
+      <xs:extension base="t:RequestAttachmentIdType">
+        <xs:attribute name="RootItemId" type="xs:string" use="optional"/>
+        <xs:attribute name="RootItemChangeKey" type="xs:string" use="optional"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- This type is used solely in DeleteAttachment responses. -->
+  <xs:complexType name="RootItemIdType">
+    <xs:complexContent>
+      <xs:extension base="t:BaseItemIdType">
+        <xs:attribute name="RootItemId" type="xs:string" use="required"/>
+        <xs:attribute name="RootItemChangeKey" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfRequestAttachmentIdsType">
+    <xs:choice minOccurs="1" maxOccurs="unbounded">
+      <xs:element name="AttachmentId" type="t:RequestAttachmentIdType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="AttachmentType">
+    <xs:sequence>
+      <xs:element name="AttachmentId" type="t:AttachmentIdType" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="ContentType" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="ContentId" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="ContentLocation" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="Size" type="xs:int" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="LastModifiedTime" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="IsInline" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ItemAttachmentType">
+    <xs:complexContent>
+      <xs:extension base="t:AttachmentType">
+        <xs:choice minOccurs="0" maxOccurs="1">
+          <xs:element name="Item" type="t:ItemType"/>
+          <xs:element name="Message" type="t:MessageType"/>
+          <xs:element name="CalendarItem" type="t:CalendarItemType"/>
+          <xs:element name="Contact" type="t:ContactItemType"/>
+          <xs:element name="MeetingMessage" type="t:MeetingMessageType"/>
+          <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType"/>
+          <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType"/>
+          <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType"/>
+          <xs:element name="Task" type="t:TaskType"/>
+          <xs:element name="PostItem" type="t:PostItemType"/>
+        </xs:choice>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="SyncFolderItemsCreateOrUpdateType">
+    <xs:choice>
+      <xs:element name="Item" type="t:ItemType"/>
+      <xs:element name="Message" type="t:MessageType"/>
+      <xs:element name="CalendarItem" type="t:CalendarItemType"/>
+      <xs:element name="Contact" type="t:ContactItemType"/>
+      <xs:element name="DistributionList" type="t:DistributionListType"/>
+      <xs:element name="MeetingMessage" type="t:MeetingMessageType"/>
+      <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType"/>
+      <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType"/>
+      <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType"/>
+      <xs:element name="Task" type="t:TaskType"/>
+      <xs:element name="PostItem" type="t:PostItemType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="FileAttachmentType">
+    <xs:complexContent>
+      <xs:extension base="t:AttachmentType">
+        <xs:sequence>
+          <xs:element name="IsContactPhoto" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="Content" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfAttachmentsType">
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="ItemAttachment" type="t:ItemAttachmentType"/>
+      <xs:element name="FileAttachment" type="t:FileAttachmentType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfAttachmentsType">
+    <xs:choice minOccurs="1" maxOccurs="unbounded">
+      <xs:element name="ItemAttachment" type="t:ItemAttachmentType"/>
+      <xs:element name="FileAttachment" type="t:FileAttachmentType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <!-- Sensitivity enumeration -->
+  <xs:simpleType name="SensitivityChoicesType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Normal"/>
+      <xs:enumeration value="Personal"/>
+      <xs:enumeration value="Private"/>
+      <xs:enumeration value="Confidential"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- Importance enumeration -->
+  <xs:simpleType name="ImportanceChoicesType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Low"/>
+      <xs:enumeration value="Normal"/>
+      <xs:enumeration value="High"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- Type of body returned -->
+  <xs:simpleType name="BodyTypeType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="HTML"/>
+      <xs:enumeration value="Text"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- Body content with body type attribute -->
+  <xs:complexType name="BodyType">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="BodyType" type="t:BodyTypeType" use="required"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <!-- Folder Service types. -->
+  <!-- Folder Ids -->
+  <xs:complexType name="BaseFolderIdType" abstract="true">
+    <xs:annotation>
+      <xs:documentation>Utility type which should never appear in user documents</xs:documentation>
+    </xs:annotation>
+  </xs:complexType>
+
+  <!-- Folder classes -->
+  <xs:simpleType name="FolderClassType">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+
+  <xs:simpleType name="DistinguishedFolderIdNameType">
+    <xs:annotation>
+      <xs:documentation>URIs for the distinguished folders accessible from a mailbox</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="calendar"/>
+      <xs:enumeration value="contacts"/>
+      <xs:enumeration value="deleteditems"/>
+      <xs:enumeration value="drafts"/>
+      <xs:enumeration value="inbox"/>
+      <xs:enumeration value="journal"/>
+      <xs:enumeration value="notes"/>
+      <xs:enumeration value="outbox"/>
+      <xs:enumeration value="sentitems"/>
+      <xs:enumeration value="tasks"/>
+      <xs:enumeration value="msgfolderroot"/>
+      <xs:enumeration value="publicfoldersroot"/>
+      <xs:enumeration value="root"/>
+      <xs:enumeration value="junkemail"/>
+      <xs:enumeration value="searchfolders"/>
+      <xs:enumeration value="voicemail"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="DistinguishedFolderIdType">
+    <xs:annotation>
+      <xs:documentation>Identifier for a distinguished folder</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="t:BaseFolderIdType">
+        <xs:sequence>
+          <xs:element name="Mailbox" type="t:EmailAddressType" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="Id" type="t:DistinguishedFolderIdNameType" use="required"/>
+        <xs:attribute name="ChangeKey" type="xs:string" use="optional"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="FolderIdType">
+    <xs:annotation>
+      <xs:documentation>Identifier for a fully resolved folder</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="t:BaseFolderIdType">
+        <xs:attribute name="Id" type="xs:string" use="required"/>
+        <xs:attribute name="ChangeKey" type="xs:string" use="optional"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfBaseFolderIdsType">
+    <xs:choice maxOccurs="unbounded" minOccurs="1">
+      <xs:element name="FolderId" type="t:FolderIdType"/>
+      <xs:element name="DistinguishedFolderId" type="t:DistinguishedFolderIdType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="TargetFolderIdType">
+    <xs:choice>
+      <xs:element name="FolderId" type="t:FolderIdType"/>
+      <xs:element name="DistinguishedFolderId" type="t:DistinguishedFolderIdType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <!-- Find Folder/Item/Search supporting types -->
+  <!-- When returning offset information for FindFolder/FindItem, we need to indicate where we
+    are in the result set.  For the different paging mechanisms we need to indicate this in
+    different ways.  The only common paging types between FindFolder and FindItem are indexed and
+    fractional.
+    -->
+  <xs:attributeGroup name="FindResponsePagingAttributes">
+    <xs:attribute name="IndexedPagingOffset" type="xs:int" use="optional"/>
+    <xs:attribute name="NumeratorOffset" type="xs:int" use="optional"/>
+    <xs:attribute name="AbsoluteDenominator" type="xs:int" use="optional"/>
+    <xs:attribute name="IncludesLastItemInRange" type="xs:boolean" use="optional"/>
+    <xs:attribute name="TotalItemsInView" type="xs:int" use="optional"/>
+  </xs:attributeGroup>
+
+  <!-- FindFolder response element for holding the results from a single parent -->
+  <xs:complexType name="FindFolderParentType">
+    <xs:sequence>
+      <xs:element name="Folders" type="t:ArrayOfFoldersType" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attributeGroup ref="t:FindResponsePagingAttributes"/>
+  </xs:complexType>
+
+  <!-- Basic information in a folder definition -->
+  <xs:complexType name="BaseFolderType" abstract="true">
+    <xs:sequence>
+      <xs:element name="FolderId" type="t:FolderIdType" minOccurs="0"/>
+      <xs:element name="ParentFolderId" type="t:FolderIdType" minOccurs="0"/>
+      <xs:element name="FolderClass" type="xs:string" minOccurs="0"/>
+      <xs:element name="DisplayName" type="xs:string" minOccurs="0"/>
+      <xs:element name="TotalCount" type="xs:int" minOccurs="0"/>
+      <xs:element name="ChildFolderCount" type="xs:int" minOccurs="0"/>
+      <xs:element name="ExtendedProperty" type="t:ExtendedPropertyType" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="ManagedFolderInformation" type="t:ManagedFolderInformationType" minOccurs="0"/>
+      <xs:element name="EffectiveRights" type="t:EffectiveRightsType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- ManagedFolderInformation property type -->
+  <xs:complexType name="ManagedFolderInformationType">
+    <xs:annotation>
+      <xs:documentation>Compound property for Managed Folder related information for Managed Folders.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="CanDelete" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="CanRenameOrMove" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="MustDisplayComment" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="HasQuota" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="IsManagedFoldersRoot" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="ManagedFolderId" type="xs:string" minOccurs="0"/>
+      <xs:element name="Comment" type="xs:string" minOccurs="0"/>
+      <xs:element name="StorageQuota" type="xs:int" minOccurs="0"/>
+      <xs:element name="FolderSize" type="xs:int" minOccurs="0"/>
+      <xs:element name="HomePage" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="FolderType">
+    <xs:complexContent>
+      <xs:extension base="t:BaseFolderType">
+        <xs:sequence>
+          <xs:element name="PermissionSet" type="t:PermissionSetType" minOccurs="0"/>
+          <xs:element name="UnreadCount" type="xs:int" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- Calendar Folder Type-->
+  <xs:complexType name="CalendarFolderType">
+    <xs:complexContent>
+      <xs:extension base="t:BaseFolderType">
+        <xs:sequence>
+          <xs:element name="SharingEffectiveRights" type="t:CalendarPermissionReadAccessType" minOccurs="0"/>
+          <xs:element name="PermissionSet" type="t:CalendarPermissionSetType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- Contacts Folder Type-->
+  <xs:complexType name="ContactsFolderType">
+    <xs:complexContent>
+      <xs:extension base="t:BaseFolderType">
+        <xs:sequence>
+          <xs:element name="SharingEffectiveRights" type="t:PermissionReadAccessType" minOccurs="0"/>
+          <xs:element name="PermissionSet" type="t:PermissionSetType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- Search Folder Type-->
+  <xs:complexType name="SearchFolderType">
+    <xs:complexContent>
+      <xs:extension base="t:FolderType">
+        <xs:sequence>
+          <xs:element name="SearchParameters" type="t:SearchParametersType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- Tasks Folder Type-->
+  <xs:complexType name="TasksFolderType">
+    <xs:complexContent>
+      <xs:extension base="t:FolderType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfFoldersType">
+    <xs:choice minOccurs="1" maxOccurs="unbounded">
+      <xs:element name="Folder" type="t:FolderType"/>
+      <xs:element name="CalendarFolder" type="t:CalendarFolderType"/>
+      <xs:element name="ContactsFolder" type="t:ContactsFolderType"/>
+      <xs:element name="SearchFolder" type="t:SearchFolderType"/>
+      <xs:element name="TasksFolder" type="t:TasksFolderType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfFoldersType">
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="Folder" type="t:FolderType"/>
+      <xs:element name="CalendarFolder" type="t:CalendarFolderType"/>
+      <xs:element name="ContactsFolder" type="t:ContactsFolderType"/>
+      <xs:element name="SearchFolder" type="t:SearchFolderType"/>
+      <xs:element name="TasksFolder" type="t:TasksFolderType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <!-- Item Service types. -->
+  <xs:complexType name="BaseItemIdType" abstract="true">
+    <xs:annotation>
+      <xs:documentation>Abstract base type for item identifiers.  Should never be used in web service calls</xs:documentation>
+    </xs:annotation>
+  </xs:complexType>
+  <xs:element name="BaseItemId" type="t:BaseItemIdType"/>
+
+  <xs:simpleType name="DerivedItemIdType">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+
+  <xs:complexType name="ItemIdType">
+    <xs:annotation>
+      <xs:documentation>Identifier for a fully resolved item</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="t:BaseItemIdType">
+        <xs:attribute name="Id" type="xs:string" use="required"/>
+        <xs:attribute name="ChangeKey" type="xs:string" use="optional"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfBaseItemIdsType">
+    <xs:choice minOccurs="1" maxOccurs="unbounded">
+      <xs:element name="ItemId" type="t:ItemIdType"/>
+      <xs:element name="OccurrenceItemId" type="t:OccurrenceItemIdType"/>
+      <xs:element name="RecurringMasterItemId" type="t:RecurringMasterItemIdType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfBaseItemIdsType">
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="ItemId" type="t:ItemIdType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <!-- Item classes -->
+  <xs:simpleType name="ItemClassType">
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
+
+  <!--Reply objects-->
+  <xs:complexType name="ResponseObjectCoreType" abstract="true">
+    <xs:annotation>
+      <xs:documentation>
+        Internal abstract base type for reply objects.
+        Should not appear in client code
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="t:MessageType">
+        <xs:sequence>
+          <xs:element name="ReferenceItemId" type="t:ItemIdType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ResponseObjectType" abstract="true">
+    <xs:annotation>
+      <xs:documentation>Abstract base type for reply objects</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="t:ResponseObjectCoreType">
+        <xs:attribute name="ObjectName" type="xs:string" use="optional">
+          <xs:annotation>
+            <xs:documentation>
+              The name of this reply object class as an English string.  The client
+              application is required to translate it if it's running in a different locale
+            </xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!--The wrapper around all reply object types-->
+  <xs:complexType name="NonEmptyArrayOfResponseObjectsType">
+    <xs:choice maxOccurs="unbounded" minOccurs="0">
+      <xs:element name="AcceptItem" type="t:AcceptItemType"/>
+      <xs:element name="TentativelyAcceptItem" type="t:TentativelyAcceptItemType"/>
+      <xs:element name="DeclineItem" type="t:DeclineItemType"/>
+      <xs:element name="ReplyToItem" type="t:ReplyToItemType"/>
+      <xs:element name="ForwardItem" type="t:ForwardItemType"/>
+      <xs:element name="ReplyAllToItem" type="t:ReplyAllToItemType"/>
+      <xs:element name="CancelCalendarItem" type="t:CancelCalendarItemType"/>
+      <xs:element name="RemoveItem" type="t:RemoveItemType"/>
+      <xs:element name="SuppressReadReceipt" type="t:SuppressReadReceiptType"/>
+      <xs:element name="PostReplyItem" type="t:PostReplyItemType"/>
+      <xs:element name="AcceptSharingInvitation" type="t:AcceptSharingInvitationType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <!-- Updating an folder.  Represents a set of changes to a single folder -->
+  <xs:complexType name="FolderChangeType">
+    <xs:sequence>
+      <xs:choice>
+        <xs:element name="FolderId" type="t:FolderIdType"/>
+        <xs:element name="DistinguishedFolderId" type="t:DistinguishedFolderIdType"/>
+      </xs:choice>
+      <xs:element name="Updates" type="t:NonEmptyArrayOfFolderChangeDescriptionsType"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfFolderChangesType">
+    <xs:sequence>
+      <xs:element name="FolderChange" type="t:FolderChangeType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- Generic response to deleting a folder -->
+  <!-- Some well-known reply objects -->
+  <xs:complexType name="WellKnownResponseObjectType">
+    <xs:complexContent>
+      <xs:restriction base="t:ResponseObjectType">
+        <xs:sequence>
+          <xs:element name="ItemClass" type="t:ItemClassType" minOccurs="0"/>
+          <xs:element name="Sensitivity" type="t:SensitivityChoicesType" minOccurs="0"/>
+          <xs:element name="Body" type="t:BodyType" minOccurs="0"/>
+          <xs:element name="Attachments" type="t:NonEmptyArrayOfAttachmentsType" minOccurs="0"/>
+          <xs:element name="InternetMessageHeaders" type="t:NonEmptyArrayOfInternetHeadersType" minOccurs="0"/>
+          <xs:element name="Sender" type="t:SingleRecipientType" minOccurs="0"/>
+          <xs:element name="ToRecipients" type="t:ArrayOfRecipientsType" minOccurs="0"/>
+          <xs:element name="CcRecipients" type="t:ArrayOfRecipientsType" minOccurs="0"/>
+          <xs:element name="BccRecipients" type="t:ArrayOfRecipientsType" minOccurs="0"/>
+          <xs:element name="IsReadReceiptRequested" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsDeliveryReceiptRequested" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="From" type="t:SingleRecipientType" minOccurs="0"/>
+          <xs:element name="ReferenceItemId" type="t:ItemIdType" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="ObjectName" type="xs:string" use="prohibited"/>
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <!-- Smart reponses: ReplyToItem, ReplyAllToItem, ForwardItem-->
+  <xs:complexType name="SmartResponseBaseType">
+    <xs:complexContent>
+      <xs:restriction base="t:ResponseObjectType">
+        <xs:sequence>
+          <xs:element name="Subject" type="xs:string" minOccurs="0"/>
+          <xs:element name="Body" type="t:BodyType" minOccurs="0"/>
+          <xs:element name="ToRecipients" type="t:ArrayOfRecipientsType" minOccurs="0"/>
+          <xs:element name="CcRecipients" type="t:ArrayOfRecipientsType" minOccurs="0"/>
+          <xs:element name="BccRecipients" type="t:ArrayOfRecipientsType" minOccurs="0"/>
+          <xs:element name="IsReadReceiptRequested" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsDeliveryReceiptRequested" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="From" type="t:SingleRecipientType" minOccurs="0"/>
+          <xs:element name="ReferenceItemId" type="t:ItemIdType" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="ObjectName" type="xs:string" use="prohibited"/>
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="SmartResponseType">
+    <xs:complexContent>
+      <xs:extension base="t:SmartResponseBaseType">
+        <xs:sequence>
+          <xs:element name="NewBodyContent" type="t:BodyType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <!-- Distinguish the various kinds of responses which differ only in name by making them -->
+  <!-- have types which all extend the same base types trivially -->
+  <xs:complexType name="ReplyToItemType">
+    <xs:complexContent>
+      <xs:extension base="t:SmartResponseType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="ReplyAllToItemType">
+    <xs:complexContent>
+      <xs:extension base="t:SmartResponseType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="ForwardItemType">
+    <xs:complexContent>
+      <xs:extension base="t:SmartResponseType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="CancelCalendarItemType">
+    <xs:complexContent>
+      <xs:extension base="t:SmartResponseType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- Reference Item response object  -->
+
+  <xs:complexType name="ReferenceItemResponseType">
+    <xs:complexContent>
+      <xs:restriction base="t:ResponseObjectType">
+        <xs:sequence>
+          <xs:element name="ReferenceItemId" type="t:ItemIdType" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="ObjectName" type="xs:string" use="prohibited"/>
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="SuppressReadReceiptType">
+    <xs:complexContent>
+      <xs:extension base="t:ReferenceItemResponseType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- FindItem response element for holding the results from a single parent -->
+  <xs:complexType name="FindItemParentType">
+    <xs:choice>
+      <xs:element name="Items" type="t:ArrayOfRealItemsType"/>
+      <xs:element name="Groups" type="t:ArrayOfGroupedItemsType"/>
+    </xs:choice>
+    <xs:attributeGroup ref="t:FindResponsePagingAttributes"/>
+  </xs:complexType>
+
+  <!-- Core contents of an item. -->
+  <xs:complexType name="ItemType">
+    <xs:sequence>
+      <xs:element name="MimeContent" type="t:MimeContentType" minOccurs="0"/>
+      <xs:element name="ItemId" type="t:ItemIdType" minOccurs="0"/>
+      <xs:element name="ParentFolderId" type="t:FolderIdType" minOccurs="0"/>
+      <xs:element name="ItemClass" type="t:ItemClassType" minOccurs="0"/>
+      <xs:element name="Subject" type="xs:string" minOccurs="0"/>
+      <xs:element name="Sensitivity" type="t:SensitivityChoicesType" minOccurs="0"/>
+      <xs:element name="Body" type="t:BodyType" minOccurs="0"/>
+      <xs:element name="Attachments" type="t:NonEmptyArrayOfAttachmentsType" minOccurs="0"/>
+      <xs:element name="DateTimeReceived" type="xs:dateTime" minOccurs="0"/>
+      <xs:element name="Size" type="xs:int" minOccurs="0"/>
+      <xs:element name="Categories" type="t:ArrayOfStringsType" minOccurs="0"/>
+      <xs:element name="Importance" type="t:ImportanceChoicesType" minOccurs="0"/>
+      <xs:element name="InReplyTo" type="xs:string" minOccurs="0"/>
+      <xs:element name="IsSubmitted" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="IsDraft" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="IsFromMe" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="IsResend" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="IsUnmodified" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="InternetMessageHeaders" type="t:NonEmptyArrayOfInternetHeadersType" minOccurs="0"/>
+      <xs:element name="DateTimeSent" type="xs:dateTime" minOccurs="0"/>
+      <xs:element name="DateTimeCreated" type="xs:dateTime" minOccurs="0"/>
+      <xs:element name="ResponseObjects" type="t:NonEmptyArrayOfResponseObjectsType" minOccurs="0"/>
+      <xs:element name="ReminderDueBy" type="xs:dateTime" minOccurs="0"/>
+      <xs:element name="ReminderIsSet" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="ReminderMinutesBeforeStart" type="t:ReminderMinutesBeforeStartType" minOccurs="0"/>
+      <xs:element name="DisplayCc" type="xs:string" minOccurs="0"/>
+      <xs:element name="DisplayTo" type="xs:string" minOccurs="0"/>
+      <xs:element name="HasAttachments" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="ExtendedProperty" type="t:ExtendedPropertyType" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="Culture" type="xs:language" minOccurs="0"/>
+      <xs:element name="EffectiveRights" type="t:EffectiveRightsType" minOccurs="0"/>
+      <xs:element name="LastModifiedName" type="xs:string" minOccurs="0"/>
+      <xs:element name="LastModifiedTime" type="xs:dateTime" minOccurs="0"/>
+      <xs:element name="IsAssociated" type="xs:boolean" minOccurs="0"/>
+      <xs:element name="WebClientReadFormQueryString" type="xs:string" minOccurs="0"/>
+      <xs:element name="WebClientEditFormQueryString" type="xs:string" minOccurs="0"/>
+      <xs:element name="ConversationId" type="t:ItemIdType" minOccurs="0"/>
+      <xs:element name="UniqueBody" type="t:BodyType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfStringsType">
+    <xs:sequence>
+      <xs:element name="String" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfRealItemsType">
+    <xs:sequence>
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element name="Item" type="t:ItemType"/>
+        <xs:element name="Message" type="t:MessageType"/>
+        <xs:element name="CalendarItem" type="t:CalendarItemType"/>
+        <xs:element name="Contact" type="t:ContactItemType"/>
+        <xs:element name="DistributionList" type="t:DistributionListType"/>
+        <xs:element name="MeetingMessage" type="t:MeetingMessageType"/>
+        <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType"/>
+        <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType"/>
+        <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType"/>
+        <xs:element name="Task" type="t:TaskType"/>
+        <xs:element name="PostItem" type="t:PostItemType"/>
+      </xs:choice>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfAllItemsType">
+    <xs:sequence>
+      <xs:choice minOccurs="1" maxOccurs="unbounded">
+        <xs:element name="Item" type="t:ItemType"/>
+        <xs:element name="Message" type="t:MessageType"/>
+        <xs:element name="CalendarItem" type="t:CalendarItemType"/>
+        <xs:element name="Contact" type="t:ContactItemType"/>
+        <xs:element name="DistributionList" type="t:DistributionListType"/>
+        <xs:element name="MeetingMessage" type="t:MeetingMessageType"/>
+        <xs:element name="MeetingRequest" type="t:MeetingRequestMessageType"/>
+        <xs:element name="MeetingResponse" type="t:MeetingResponseMessageType"/>
+        <xs:element name="MeetingCancellation" type="t:MeetingCancellationMessageType"/>
+        <xs:element name="Task" type="t:TaskType"/>
+        <xs:element name="PostItem" type="t:PostItemType"/>
+        <xs:element name="ReplyToItem" type="t:ReplyToItemType"/>
+        <xs:element name="ForwardItem" type="t:ForwardItemType"/>
+        <xs:element name="ReplyAllToItem" type="t:ReplyAllToItemType"/>
+        <xs:element name="AcceptItem" type="t:AcceptItemType"/>
+        <xs:element name="TentativelyAcceptItem" type="t:TentativelyAcceptItemType"/>
+        <xs:element name="DeclineItem" type="t:DeclineItemType"/>
+        <xs:element name="CancelCalendarItem" type="t:CancelCalendarItemType"/>
+        <xs:element name="RemoveItem" type="t:RemoveItemType"/>
+        <xs:element name="SuppressReadReceipt" type="t:SuppressReadReceiptType"/>
+        <xs:element name="PostReplyItem" type="t:PostReplyItemType"/>
+        <xs:element name="AcceptSharingInvitation" type="t:AcceptSharingInvitationType"/>
+      </xs:choice>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="AcceptItemType">
+    <xs:complexContent>
+      <xs:extension base="t:WellKnownResponseObjectType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="TentativelyAcceptItemType">
+    <xs:complexContent>
+      <xs:extension base="t:WellKnownResponseObjectType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="DeclineItemType">
+    <xs:complexContent>
+      <xs:extension base="t:WellKnownResponseObjectType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="RemoveItemType">
+    <xs:complexContent>
+      <xs:extension base="t:ResponseObjectType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="PostReplyItemBaseType">
+    <xs:complexContent>
+      <xs:restriction base="t:ResponseObjectType">
+        <xs:sequence>
+          <xs:element name="Subject" type="xs:string" minOccurs="0"/>
+          <xs:element name="Body" type="t:BodyType" minOccurs="0"/>
+          <xs:element name="ReferenceItemId" type="t:ItemIdType" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="ObjectName" type="xs:string" use="prohibited"/>
+      </xs:restriction>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="PostReplyItemType">
+    <xs:complexContent>
+      <xs:extension base="t:PostReplyItemBaseType">
+        <xs:sequence>
+          <xs:element name="NewBodyContent" type="t:BodyType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- Mime content support -->
+  <xs:complexType name="MimeContentType">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="CharacterSet" type="xs:string" use="optional"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <!-- Special items for creating and updating items -->
+
+  <xs:simpleType name="MessageDispositionType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="SaveOnly"/>
+      <xs:enumeration value="SendOnly"/>
+      <xs:enumeration value="SendAndSaveCopy"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="CalendarItemCreateOrDeleteOperationType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="SendToNone"/>
+      <xs:enumeration value="SendOnlyToAll"/>
+      <xs:enumeration value="SendToAllAndSaveCopy"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="CalendarItemUpdateOperationType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="SendToNone"/>
+      <xs:enumeration value="SendOnlyToAll"/>
+      <xs:enumeration value="SendOnlyToChanged"/>
+      <xs:enumeration value="SendToAllAndSaveCopy"/>
+      <xs:enumeration value="SendToChangedAndSaveCopy"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="AffectedTaskOccurrencesType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="AllOccurrences"/>
+      <xs:enumeration value="SpecifiedOccurrenceOnly"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- - - - - - - - - - - - - - - - - - - -->
+  <!--   Message type: derived from item   -->
+  <!-- - - - - - - - - - - - - - - - - - - -->
+  <xs:complexType name="MessageType">
+    <xs:complexContent>
+      <xs:extension base="t:ItemType">
+        <xs:sequence>
+          <xs:element name="Sender" minOccurs="0" type="t:SingleRecipientType"/>
+          <xs:element name="ToRecipients" type="t:ArrayOfRecipientsType" minOccurs="0"/>
+          <xs:element name="CcRecipients" type="t:ArrayOfRecipientsType" minOccurs="0"/>
+          <xs:element name="BccRecipients" type="t:ArrayOfRecipientsType" minOccurs="0"/>
+          <xs:element name="IsReadReceiptRequested" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsDeliveryReceiptRequested" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="ConversationIndex" type="xs:base64Binary" minOccurs="0"/>
+          <xs:element name="ConversationTopic" type="xs:string" minOccurs="0"/>
+          <xs:element name="From" type="t:SingleRecipientType" minOccurs="0"/>
+          <xs:element name="InternetMessageId" type="xs:string" minOccurs="0"/>
+          <xs:element name="IsRead" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsResponseRequested" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="References" type="xs:string" minOccurs="0"/>
+          <xs:element name="ReplyTo" type="t:ArrayOfRecipientsType" minOccurs="0"/>
+          <xs:element name="ReceivedBy" type="t:SingleRecipientType" minOccurs="0"/>
+          <xs:element name="ReceivedRepresenting" type="t:SingleRecipientType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="TaskStatusType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="NotStarted"/>
+      <xs:enumeration value="InProgress"/>
+      <xs:enumeration value="Completed"/>
+      <xs:enumeration value="WaitingOnOthers"/>
+      <xs:enumeration value="Deferred"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="TaskDelegateStateType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="NoMatch"/>
+      <xs:enumeration value="OwnNew"/>
+      <xs:enumeration value="Owned"/>
+      <xs:enumeration value="Accepted"/>
+      <xs:enumeration value="Declined"/>
+      <xs:enumeration value="Max"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="TaskType">
+    <xs:complexContent>
+      <xs:extension base="t:ItemType">
+        <xs:sequence>
+          <xs:element name="ActualWork" type="xs:int" minOccurs="0"/>
+          <xs:element name="AssignedTime" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="BillingInformation" type="xs:string" minOccurs="0"/>
+          <xs:element name="ChangeCount" type="xs:int" minOccurs="0"/>
+          <xs:element name="Companies" type="t:ArrayOfStringsType" minOccurs="0"/>
+          <xs:element name="CompleteDate" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="Contacts" type="t:ArrayOfStringsType" minOccurs="0"/>
+          <xs:element name="DelegationState" type="t:TaskDelegateStateType" minOccurs="0"/>
+          <xs:element name="Delegator" type="xs:string" minOccurs="0"/>
+          <xs:element name="DueDate" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="IsAssignmentEditable" type="xs:int" minOccurs="0"/>
+          <xs:element name="IsComplete" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsRecurring" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsTeamTask" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="Mileage" type="xs:string" minOccurs="0"/>
+          <xs:element name="Owner" type="xs:string" minOccurs="0"/>
+          <xs:element name="PercentComplete" type="xs:double" minOccurs="0"/>
+          <xs:element name="Recurrence" type="t:TaskRecurrenceType" minOccurs="0"/>
+          <xs:element name="StartDate" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="Status" type="t:TaskStatusType" minOccurs="0"/>
+          <xs:element name="StatusDescription" type="xs:string" minOccurs="0"/>
+          <xs:element name="TotalWork" type="xs:int" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="PostItemType">
+    <xs:complexContent>
+      <xs:extension base="t:ItemType">
+        <xs:sequence>
+          <xs:element name="ConversationIndex" type="xs:base64Binary" minOccurs="0"/>
+          <xs:element name="ConversationTopic" type="xs:string" minOccurs="0"/>
+          <!-- From property can only be set at creation time -->
+          <xs:element name="From" type="t:SingleRecipientType" minOccurs="0"/>
+          <xs:element name="InternetMessageId" type="xs:string" minOccurs="0"/>
+          <xs:element name="IsRead" type="xs:boolean" minOccurs="0"/>
+          <!-- PostedTime is read only -->
+          <xs:element name="PostedTime" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="References" type="xs:string" minOccurs="0"/>
+          <!-- Sender can only be set at creation time -->
+          <xs:element name="Sender" type="t:SingleRecipientType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- Paging specification -->
+  <xs:complexType name="BasePagingType" abstract="true">
+    <xs:attribute name="MaxEntriesReturned" type="xs:int" use="optional"/>
+  </xs:complexType>
+
+  <xs:simpleType name="IndexBasePointType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Beginning"/>
+      <xs:enumeration value="End"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="IndexedPageViewType">
+    <xs:complexContent>
+      <xs:extension base="t:BasePagingType">
+        <xs:attribute name="Offset" type="xs:int" use="required"/>
+        <xs:attribute name="BasePoint" type="t:IndexBasePointType" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="FractionalPageViewType">
+    <xs:complexContent>
+      <xs:extension base="t:BasePagingType">
+        <xs:attribute name="Numerator" type="xs:int" use="required"/>
+        <xs:attribute name="Denominator" type="xs:int" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="CalendarViewType">
+    <xs:complexContent>
+      <xs:extension base="t:BasePagingType">
+        <xs:attribute name="StartDate" type="xs:dateTime" use="required"/>
+        <xs:attribute name="EndDate" type="xs:dateTime" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ContactsViewType">
+    <xs:complexContent>
+      <xs:extension base="t:BasePagingType">
+        <xs:attribute name="InitialName" type="xs:string" use="optional"/>
+        <xs:attribute name="FinalName" type="xs:string" use="optional"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- Util Service Types. -->
+
+
+  <!-- ResolveNames request -->
+
+  <xs:simpleType name="ResolveNamesSearchScopeType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="ActiveDirectory"/>
+      <xs:enumeration value="ActiveDirectoryContacts"/>
+      <xs:enumeration value="Contacts"/>
+      <xs:enumeration value="ContactsActiveDirectory"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- ResolveNames response -->
+
+  <xs:complexType name="ResolutionType">
+    <xs:sequence>
+      <xs:element name="Mailbox" type="t:EmailAddressType"/>
+      <xs:element name="Contact" type="t:ContactItemType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfResolutionType">
+    <xs:sequence>
+      <xs:element name="Resolution" type="t:ResolutionType" minOccurs="0" maxOccurs="100"/>
+    </xs:sequence>
+    <xs:attributeGroup ref="t:FindResponsePagingAttributes"/>
+  </xs:complexType>
+
+  <!-- DLExpansion response -->
+
+  <xs:complexType name="ArrayOfDLExpansionType">
+    <xs:sequence>
+      <xs:element name="Mailbox" type="t:EmailAddressType" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attributeGroup ref="t:FindResponsePagingAttributes"/>
+  </xs:complexType>
+
+  <!-- end of DLExpansion -->
+  
+  <!-- GetServerTimeZones response -->
+
+  <xs:complexType name="NonEmptyArrayOfTimeZoneIdType">
+    <xs:sequence>
+      <xs:element name="Id" type="xs:string" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfTimeZoneDefinitionType">
+    <xs:sequence minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="TimeZoneDefinition" type="t:TimeZoneDefinitionType"/>
+    </xs:sequence>
+  </xs:complexType>
+
+    <!-- end of GetServerTimeZones -->
+
+
+  <!-- MeetingMessage types -->
+  <xs:simpleType name="MeetingRequestTypeType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None"/>
+      <xs:enumeration value="FullUpdate"/>
+      <xs:enumeration value="InformationalUpdate"/>
+      <xs:enumeration value="NewMeetingRequest"/>
+      <xs:enumeration value="Outdated"/>
+      <xs:enumeration value="SilentUpdate"/>
+      <xs:enumeration value="PrincipalWantsCopy"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- CalendarItem Types -->
+
+  <xs:simpleType name="ReminderMinutesBeforeStartType">
+    <xs:union>
+      <xs:simpleType id="ReminderMinutesBeforeStartType">
+        <xs:restriction base="xs:int">
+          <xs:minInclusive value="0"/>
+          <xs:maxInclusive value="2629800"/>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType id="ReminderMinutesBeforeStartMarkerType">
+        <xs:restriction base="xs:int">
+          <xs:minInclusive value="1525252321"/>
+          <xs:maxInclusive value="1525252321"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <!-- Enumeration types -->
+
+  <xs:simpleType name="LegacyFreeBusyType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Free"/>
+      <xs:enumeration value="Tentative"/>
+      <xs:enumeration value="Busy"/>
+      <xs:enumeration value="OOF"/>
+      <xs:enumeration value="NoData"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="CalendarItemTypeType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Single"/>
+      <xs:enumeration value="Occurrence"/>
+      <xs:enumeration value="Exception"/>
+      <xs:enumeration value="RecurringMaster"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ResponseTypeType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Unknown"/>
+      <xs:enumeration value="Organizer"/>
+      <xs:enumeration value="Tentative"/>
+      <xs:enumeration value="Accept"/>
+      <xs:enumeration value="Decline"/>
+      <xs:enumeration value="NoResponseReceived"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- Representation of attendees -->
+
+  <xs:complexType name="AttendeeType">
+    <xs:sequence>
+      <xs:element name="Mailbox" type="t:EmailAddressType"/>
+      <xs:element name="ResponseType" type="t:ResponseTypeType" minOccurs="0"/>
+      <xs:element name="LastResponseTime" type="xs:dateTime" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfAttendeesType">
+    <xs:sequence>
+      <xs:element name="Attendee" type="t:AttendeeType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- Special item ids for interconverting between instances and masters -->
+
+  <xs:complexType name="OccurrenceItemIdType">
+    <xs:complexContent>
+      <xs:extension base="t:BaseItemIdType">
+        <xs:attribute name="RecurringMasterId" type="t:DerivedItemIdType" use="required"/>
+        <xs:attribute name="ChangeKey" type="xs:string" use="optional"/>
+        <xs:attribute name="InstanceIndex" type="xs:int" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="RecurringMasterItemIdType">
+    <xs:complexContent>
+      <xs:extension base="t:BaseItemIdType">
+        <xs:attribute name="OccurrenceId" type="t:DerivedItemIdType" use="required"/>
+        <xs:attribute name="ChangeKey" type="xs:string" use="optional"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- Days of the week and months-->
+
+  <xs:simpleType name="DayOfWeekType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Sunday"/>
+      <xs:enumeration value="Monday"/>
+      <xs:enumeration value="Tuesday"/>
+      <xs:enumeration value="Wednesday"/>
+      <xs:enumeration value="Thursday"/>
+      <xs:enumeration value="Friday"/>
+      <xs:enumeration value="Saturday"/>
+      <xs:enumeration value="Day"/>
+      <xs:enumeration value="Weekday"/>
+      <xs:enumeration value="WeekendDay"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="DaysOfWeekType">
+    <xs:list itemType="t:DayOfWeekType"/>
+  </xs:simpleType>
+
+  <xs:simpleType name="DayOfWeekIndexType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="First"/>
+      <xs:enumeration value="Second"/>
+      <xs:enumeration value="Third"/>
+      <xs:enumeration value="Fourth"/>
+      <xs:enumeration value="Last"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="MonthNamesType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="January"/>
+      <xs:enumeration value="February"/>
+      <xs:enumeration value="March"/>
+      <xs:enumeration value="April"/>
+      <xs:enumeration value="May"/>
+      <xs:enumeration value="June"/>
+      <xs:enumeration value="July"/>
+      <xs:enumeration value="August"/>
+      <xs:enumeration value="September"/>
+      <xs:enumeration value="October"/>
+      <xs:enumeration value="November"/>
+      <xs:enumeration value="December"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- Recurrence pattern types -->
+
+  <xs:complexType name="RecurrencePatternBaseType" abstract="true"/>
+
+  <xs:complexType name="IntervalRecurrencePatternBaseType" abstract="true">
+    <xs:complexContent>
+      <xs:extension base="t:RecurrencePatternBaseType">
+        <xs:sequence>
+          <xs:element name="Interval" type="xs:int"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!--
+    Base regeneration pattern type for tasks.
+    -->
+
+  <xs:complexType name="RegeneratingPatternBaseType" abstract="true">
+    <xs:complexContent>
+      <xs:extension base="t:IntervalRecurrencePatternBaseType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="DailyRegeneratingPatternType">
+    <xs:complexContent>
+      <xs:extension base="t:RegeneratingPatternBaseType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="WeeklyRegeneratingPatternType">
+    <xs:complexContent>
+      <xs:extension base="t:RegeneratingPatternBaseType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="MonthlyRegeneratingPatternType">
+    <xs:complexContent>
+      <xs:extension base="t:RegeneratingPatternBaseType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="YearlyRegeneratingPatternType">
+    <xs:complexContent>
+      <xs:extension base="t:RegeneratingPatternBaseType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- Realizable Recurrence pattern types -->
+
+  <xs:complexType name="RelativeYearlyRecurrencePatternType">
+    <xs:complexContent>
+      <xs:extension base="t:RecurrencePatternBaseType">
+        <xs:sequence>
+          <xs:element name="DaysOfWeek" type="t:DayOfWeekType"/>
+          <xs:element name="DayOfWeekIndex" type="t:DayOfWeekIndexType"/>
+          <xs:element name="Month" type="t:MonthNamesType"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="AbsoluteYearlyRecurrencePatternType">
+    <xs:complexContent>
+      <xs:extension base="t:RecurrencePatternBaseType">
+        <xs:sequence>
+          <xs:element name="DayOfMonth" type="xs:int"/>
+          <xs:element name="Month" type="t:MonthNamesType"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="RelativeMonthlyRecurrencePatternType">
+    <xs:complexContent>
+      <xs:extension base="t:IntervalRecurrencePatternBaseType">
+        <xs:sequence>
+          <xs:element name="DaysOfWeek" type="t:DayOfWeekType"/>
+          <xs:element name="DayOfWeekIndex" type="t:DayOfWeekIndexType"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="AbsoluteMonthlyRecurrencePatternType">
+    <xs:complexContent>
+      <xs:extension base="t:IntervalRecurrencePatternBaseType">
+        <xs:sequence>
+          <xs:element name="DayOfMonth" type="xs:int"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="WeeklyRecurrencePatternType">
+    <xs:complexContent>
+      <xs:extension base="t:IntervalRecurrencePatternBaseType">
+        <xs:sequence>
+          <xs:element name="DaysOfWeek" type="t:DaysOfWeekType"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="DailyRecurrencePatternType">
+    <xs:complexContent>
+      <xs:extension base="t:IntervalRecurrencePatternBaseType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- Description of a time zone -->
+
+  <xs:group name="TimeChangePatternTypes">
+    <xs:sequence>
+      <xs:choice>
+        <xs:element name="RelativeYearlyRecurrence" type="t:RelativeYearlyRecurrencePatternType"/>
+        <xs:element name="AbsoluteDate" type="xs:date"/>
+      </xs:choice>
+    </xs:sequence>
+  </xs:group>
+
+  <xs:complexType name="TimeChangeType">
+    <xs:sequence>
+      <xs:element name="Offset" type="xs:duration"/>
+      <xs:group ref="t:TimeChangePatternTypes" minOccurs="0"/>
+      <xs:element name="Time" type="xs:time"/>
+    </xs:sequence>
+    <xs:attribute name="TimeZoneName" type="xs:string" use="optional"/>
+  </xs:complexType>
+
+  <xs:complexType name="TimeZoneType">
+    <xs:sequence minOccurs="0">
+      <xs:element name="BaseOffset" type="xs:duration"/>
+      <xs:sequence minOccurs="0">
+        <xs:element name="Standard" type="t:TimeChangeType"/>
+        <xs:element name="Daylight" type="t:TimeChangeType"/>
+      </xs:sequence>
+    </xs:sequence>
+    <xs:attribute name="TimeZoneName" type="xs:string" use="optional"/>
+  </xs:complexType>
+
+    <!-- TimeZoneDefinitionContextType for Soap header -->
+
+  <xs:complexType name="TimeZoneContextType">
+    <xs:sequence>
+      <xs:element name="TimeZoneDefinition" type="t:TimeZoneDefinitionType" minOccurs="1"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="http://schemas.xmlsoap.org/soap/envelope/">
+      <xs:annotation>
+        <xs:documentation>Allow attributes in the soap namespace to be used here</xs:documentation>
+      </xs:annotation>
+    </xs:anyAttribute>
+  </xs:complexType>
+
+
+  <xs:element name="TimeZoneContext" type="t:TimeZoneContextType"/>
+
+  <!-- Time zone definition types -->
+
+  <xs:simpleType name="TransitionTargetKindType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Period"/>
+        <xs:enumeration value="Group"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="TransitionTargetType">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="Kind" type="t:TransitionTargetKindType" use="required"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="TransitionType" abstract="false">
+    <xs:sequence>
+      <xs:element name="To" type="t:TransitionTargetType"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="AbsoluteDateTransitionType">
+    <xs:complexContent>
+      <xs:extension base="t:TransitionType">
+        <xs:sequence>
+          <xs:element name="DateTime" type="xs:dateTime"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="RecurringTimeTransitionType" abstract="true">
+    <xs:complexContent>
+      <xs:extension base="t:TransitionType">
+        <xs:sequence>
+          <xs:element name="TimeOffset" type="xs:duration"/>
+          <xs:element name="Month" type="xs:int"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="RecurringDateTransitionType">
+    <xs:complexContent>
+      <xs:extension base="t:RecurringTimeTransitionType">
+        <xs:sequence>
+          <xs:element name="Day" type="xs:int"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="RecurringDayTransitionType">
+    <xs:complexContent>
+      <xs:extension base="t:RecurringTimeTransitionType">
+        <xs:sequence>
+          <xs:element name="DayOfWeek" type="t:DayOfWeekType"/>
+          <xs:element name="Occurrence" type="xs:int"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="Transition" type="t:TransitionType"/>
+  <xs:element name="AbsoluteDateTransition" type="t:AbsoluteDateTransitionType" substitutionGroup="t:Transition"/>
+  <xs:element name="RecurringDayTransition" type="t:RecurringDayTransitionType" substitutionGroup="t:Transition"/>
+  <xs:element name="RecurringDateTransition" type="t:RecurringDateTransitionType" substitutionGroup="t:Transition"/>
+
+  <!-- TimeZoneDefinition -->
+
+  <xs:complexType name="TimeZoneDefinitionType">
+    <xs:sequence minOccurs="0">
+      <xs:element name="Periods" type="t:NonEmptyArrayOfPeriodsType"/>
+      <xs:element name="TransitionsGroups" type="t:ArrayOfTransitionsGroupsType" minOccurs="0"/>
+      <xs:element name="Transitions" type="t:ArrayOfTransitionsType" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="Id" type="xs:string"/>
+    <xs:attribute name="Name" type="xs:string"/>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfPeriodsType">
+    <xs:sequence>
+      <xs:element name="Period" type="t:PeriodType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="PeriodType">
+    <xs:attribute name="Bias" type="xs:duration"/>
+    <xs:attribute name="Name" type="xs:string"/>
+    <xs:attribute name="Id" type="xs:string"/>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfTransitionsGroupsType">
+    <xs:sequence>
+      <xs:element name="TransitionsGroup" type="t:ArrayOfTransitionsType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfTransitionsType">
+    <xs:sequence>
+      <xs:element ref="t:Transition" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="Id" type="xs:string"/>
+  </xs:complexType>
+
+  <!-- Recurrence range types -->
+
+  <xs:complexType name="RecurrenceRangeBaseType" abstract="true">
+    <xs:sequence>
+      <xs:element name="StartDate" type="xs:date"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="NoEndRecurrenceRangeType">
+    <xs:complexContent>
+      <xs:extension base="t:RecurrenceRangeBaseType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="EndDateRecurrenceRangeType">
+    <xs:complexContent>
+      <xs:extension base="t:RecurrenceRangeBaseType">
+        <xs:sequence>
+          <xs:element name="EndDate" type="xs:date"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="NumberedRecurrenceRangeType">
+    <xs:complexContent>
+      <xs:extension base="t:RecurrenceRangeBaseType">
+        <xs:sequence>
+          <xs:element name="NumberOfOccurrences" type="xs:int"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- The real Recurrence type -->
+
+  <xs:group name="RecurrencePatternTypes">
+    <xs:sequence>
+      <xs:choice>
+        <xs:element name="RelativeYearlyRecurrence" type="t:RelativeYearlyRecurrencePatternType"/>
+        <xs:element name="AbsoluteYearlyRecurrence" type="t:AbsoluteYearlyRecurrencePatternType"/>
+        <xs:element name="RelativeMonthlyRecurrence" type="t:RelativeMonthlyRecurrencePatternType"/>
+        <xs:element name="AbsoluteMonthlyRecurrence" type="t:AbsoluteMonthlyRecurrencePatternType"/>
+        <xs:element name="WeeklyRecurrence" type="t:WeeklyRecurrencePatternType"/>
+        <xs:element name="DailyRecurrence" type="t:DailyRecurrencePatternType"/>
+      </xs:choice>
+    </xs:sequence>
+  </xs:group>
+
+  <xs:group name="TaskRecurrencePatternTypes">
+    <xs:sequence>
+      <xs:choice>
+        <xs:element name="RelativeYearlyRecurrence" type="t:RelativeYearlyRecurrencePatternType"/>
+        <xs:element name="AbsoluteYearlyRecurrence" type="t:AbsoluteYearlyRecurrencePatternType"/>
+        <xs:element name="RelativeMonthlyRecurrence" type="t:RelativeMonthlyRecurrencePatternType"/>
+        <xs:element name="AbsoluteMonthlyRecurrence" type="t:AbsoluteMonthlyRecurrencePatternType"/>
+        <xs:element name="WeeklyRecurrence" type="t:WeeklyRecurrencePatternType"/>
+        <xs:element name="DailyRecurrence" type="t:DailyRecurrencePatternType"/>
+        <xs:element name="DailyRegeneration" type="t:DailyRegeneratingPatternType"/>
+        <xs:element name="WeeklyRegeneration" type="t:WeeklyRegeneratingPatternType"/>
+        <xs:element name="MonthlyRegeneration" type="t:MonthlyRegeneratingPatternType"/>
+        <xs:element name="YearlyRegeneration" type="t:YearlyRegeneratingPatternType"/>
+      </xs:choice>
+    </xs:sequence>
+  </xs:group>
+
+  <xs:group name="RecurrenceRangeTypes">
+    <xs:sequence>
+      <xs:choice>
+        <xs:element name="NoEndRecurrence" type="t:NoEndRecurrenceRangeType"/>
+        <xs:element name="EndDateRecurrence" type="t:EndDateRecurrenceRangeType"/>
+        <xs:element name="NumberedRecurrence" type="t:NumberedRecurrenceRangeType"/>
+      </xs:choice>
+    </xs:sequence>
+  </xs:group>
+
+  <xs:complexType name="RecurrenceType">
+    <xs:sequence>
+      <xs:group ref="t:RecurrencePatternTypes"/>
+      <xs:group ref="t:RecurrenceRangeTypes"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="TaskRecurrenceType">
+    <xs:sequence>
+      <xs:group ref="t:TaskRecurrencePatternTypes"/>
+      <xs:group ref="t:RecurrenceRangeTypes"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- Individual occurrences of an expanded Recurrence -->
+
+  <xs:complexType name="OccurrenceInfoType">
+    <xs:sequence>
+      <xs:element name="ItemId" type="t:ItemIdType"/>
+      <xs:element name="Start" type="xs:dateTime"/>
+      <xs:element name="End" type="xs:dateTime"/>
+      <xs:element name="OriginalStart" type="xs:dateTime"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfOccurrenceInfoType">
+    <xs:sequence>
+      <xs:element name="Occurrence" type="t:OccurrenceInfoType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="DeletedOccurrenceInfoType">
+    <xs:sequence>
+      <xs:element name="Start" type="xs:dateTime"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfDeletedOccurrencesType">
+    <xs:sequence>
+      <xs:element name="DeletedOccurrence" type="t:DeletedOccurrenceInfoType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- The main calendar item from which all others derive -->
+
+  <xs:complexType name="CalendarItemType">
+    <xs:complexContent>
+      <xs:extension base="t:ItemType">
+        <xs:sequence>
+
+          <!-- iCalendar properties -->
+
+          <xs:element name="UID" type="xs:string" minOccurs="0"/>
+          <xs:element name="RecurrenceId" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="DateTimeStamp" type="xs:dateTime" minOccurs="0"/>
+
+          <!-- Single and Occurrence only -->
+
+          <xs:element name="Start" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="End" type="xs:dateTime" minOccurs="0"/>
+
+          <!-- Occurrence only -->
+
+          <xs:element name="OriginalStart" type="xs:dateTime" minOccurs="0"/>
+
+          <xs:element name="IsAllDayEvent" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="LegacyFreeBusyStatus" type="t:LegacyFreeBusyType" minOccurs="0"/>
+          <xs:element name="Location" type="xs:string" minOccurs="0"/>
+          <xs:element name="When" type="xs:string" minOccurs="0"/>
+          <xs:element name="IsMeeting" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsCancelled" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsRecurring" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="MeetingRequestWasSent" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsResponseRequested" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="CalendarItemType" type="t:CalendarItemTypeType" minOccurs="0"/>
+          <xs:element name="MyResponseType" type="t:ResponseTypeType" minOccurs="0"/>
+          <xs:element name="Organizer" type="t:SingleRecipientType" minOccurs="0"/>
+          <xs:element name="RequiredAttendees" type="t:NonEmptyArrayOfAttendeesType" minOccurs="0"/>
+          <xs:element name="OptionalAttendees" type="t:NonEmptyArrayOfAttendeesType" minOccurs="0"/>
+          <xs:element name="Resources" type="t:NonEmptyArrayOfAttendeesType" minOccurs="0"/>
+
+          <!-- Conflicting and adjacent meetings -->
+
+          <xs:element name="ConflictingMeetingCount" type="xs:int" minOccurs="0"/>
+          <xs:element name="AdjacentMeetingCount" type="xs:int" minOccurs="0"/>
+          <xs:element name="ConflictingMeetings" type="t:NonEmptyArrayOfAllItemsType" minOccurs="0"/>
+          <xs:element name="AdjacentMeetings" type="t:NonEmptyArrayOfAllItemsType" minOccurs="0"/>
+
+          <xs:element name="Duration" type="xs:string" minOccurs="0"/>
+          <xs:element name="TimeZone" type="xs:string" minOccurs="0"/>
+
+          <xs:element name="AppointmentReplyTime" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="AppointmentSequenceNumber" type="xs:int" minOccurs="0"/>
+          <xs:element name="AppointmentState" type="xs:int" minOccurs="0"/>
+
+          <!-- Recurrence specific data, only valid if CalendarItemType is RecurringMaster -->
+
+          <xs:element name="Recurrence" type="t:RecurrenceType" minOccurs="0"/>
+          <xs:element name="FirstOccurrence" type="t:OccurrenceInfoType" minOccurs="0"/>
+          <xs:element name="LastOccurrence" type="t:OccurrenceInfoType" minOccurs="0"/>
+          <xs:element name="ModifiedOccurrences" type="t:NonEmptyArrayOfOccurrenceInfoType" minOccurs="0"/>
+          <xs:element name="DeletedOccurrences" type="t:NonEmptyArrayOfDeletedOccurrencesType" minOccurs="0"/>
+          <xs:element name="MeetingTimeZone" type="t:TimeZoneType" minOccurs="0"/>
+          <xs:element name="StartTimeZone" type="t:TimeZoneDefinitionType" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="EndTimeZone" type="t:TimeZoneDefinitionType" minOccurs="0" maxOccurs="1"/>
+
+          <xs:element name="ConferenceType" type="xs:int" minOccurs="0"/>
+          <xs:element name="AllowNewTimeProposal" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsOnlineMeeting" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="MeetingWorkspaceUrl" type="xs:string" minOccurs="0"/>
+          <xs:element name="NetShowUrl" type="xs:string" minOccurs="0"/>
+
+        </xs:sequence>
+
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- Getting occurrences from Recurring masters and vice versa -->
+
+  <!--Meeting invitation-->
+
+  <xs:complexType name="MeetingMessageType">
+    <xs:complexContent>
+      <xs:extension base="t:MessageType">
+        <xs:sequence>
+          <xs:element name="AssociatedCalendarItemId" type="t:ItemIdType" minOccurs="0"/>
+          <xs:element name="IsDelegated" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsOutOfDate" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="HasBeenProcessed" type="xs:boolean" minOccurs="0"/>
+
+          <!-- Meeting response related properties -->
+
+          <xs:element name="ResponseType" type="t:ResponseTypeType" minOccurs="0"/>
+
+          <!-- iCalendar properties -->
+
+          <xs:element name="UID" type="xs:string" minOccurs="0"/>
+          <xs:element name="RecurrenceId" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="DateTimeStamp" type="xs:dateTime" minOccurs="0"/>
+
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="MeetingRequestMessageType">
+    <xs:complexContent>
+      <xs:extension base="t:MeetingMessageType">
+        <xs:sequence>
+          <!--- MeetingRequest properties -->
+
+          <xs:element name="MeetingRequestType" type="t:MeetingRequestTypeType" minOccurs="0"/>
+          <xs:element name="IntendedFreeBusyStatus" type="t:LegacyFreeBusyType" minOccurs="0"/>
+
+          <!-- Calendar Properties of the associated meeting request -->
+
+          <!-- Single and Occurrence only -->
+
+          <xs:element name="Start" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="End" type="xs:dateTime" minOccurs="0"/>
+
+          <!-- Occurrence only -->
+
+          <xs:element name="OriginalStart" type="xs:dateTime" minOccurs="0"/>
+
+          <xs:element name="IsAllDayEvent" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="LegacyFreeBusyStatus" type="t:LegacyFreeBusyType" minOccurs="0"/>
+          <xs:element name="Location" type="xs:string" minOccurs="0"/>
+          <xs:element name="When" type="xs:string" minOccurs="0"/>
+          <xs:element name="IsMeeting" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsCancelled" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsRecurring" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="MeetingRequestWasSent" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="CalendarItemType" type="t:CalendarItemTypeType" minOccurs="0"/>
+          <xs:element name="MyResponseType" type="t:ResponseTypeType" minOccurs="0"/>
+          <xs:element name="Organizer" type="t:SingleRecipientType" minOccurs="0"/>
+          <xs:element name="RequiredAttendees" type="t:NonEmptyArrayOfAttendeesType" minOccurs="0"/>
+          <xs:element name="OptionalAttendees" type="t:NonEmptyArrayOfAttendeesType" minOccurs="0"/>
+          <xs:element name="Resources" type="t:NonEmptyArrayOfAttendeesType" minOccurs="0"/>
+
+          <!-- Conflicting and adjacent meetings -->
+
+          <xs:element name="ConflictingMeetingCount" type="xs:int" minOccurs="0"/>
+          <xs:element name="AdjacentMeetingCount" type="xs:int" minOccurs="0"/>
+          <xs:element name="ConflictingMeetings" type="t:NonEmptyArrayOfAllItemsType" minOccurs="0"/>
+          <xs:element name="AdjacentMeetings" type="t:NonEmptyArrayOfAllItemsType" minOccurs="0"/>
+
+          <xs:element name="Duration" type="xs:string" minOccurs="0"/>
+          <xs:element name="TimeZone" type="xs:string" minOccurs="0"/>
+
+          <xs:element name="AppointmentReplyTime" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="AppointmentSequenceNumber" type="xs:int" minOccurs="0"/>
+          <xs:element name="AppointmentState" type="xs:int" minOccurs="0"/>
+
+          <!-- Recurrence specific data, only valid if CalendarItemType is RecurringMaster -->
+
+          <xs:element name="Recurrence" type="t:RecurrenceType" minOccurs="0"/>
+          <xs:element name="FirstOccurrence" type="t:OccurrenceInfoType" minOccurs="0"/>
+          <xs:element name="LastOccurrence" type="t:OccurrenceInfoType" minOccurs="0"/>
+          <xs:element name="ModifiedOccurrences" type="t:NonEmptyArrayOfOccurrenceInfoType" minOccurs="0"/>
+          <xs:element name="DeletedOccurrences" type="t:NonEmptyArrayOfDeletedOccurrencesType" minOccurs="0"/>
+          <xs:element name="MeetingTimeZone" type="t:TimeZoneType" minOccurs="0"/>
+          <xs:element name="StartTimeZone" type="t:TimeZoneDefinitionType" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="EndTimeZone" type="t:TimeZoneDefinitionType" minOccurs="0" maxOccurs="1"/>
+
+          <xs:element name="ConferenceType" type="xs:int" minOccurs="0"/>
+          <xs:element name="AllowNewTimeProposal" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="IsOnlineMeeting" type="xs:boolean" minOccurs="0"/>
+          <xs:element name="MeetingWorkspaceUrl" type="xs:string" minOccurs="0"/>
+          <xs:element name="NetShowUrl" type="xs:string" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="MeetingResponseMessageType">
+    <xs:complexContent>
+      <xs:extension base="t:MeetingMessageType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="MeetingCancellationMessageType">
+    <xs:complexContent>
+      <xs:extension base="t:MeetingMessageType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- End of CalendarItem Types -->
+
+  <!-- Contacts Types -->
+
+  <xs:simpleType name="ImAddressKeyType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="ImAddress1"/>
+      <xs:enumeration value="ImAddress2"/>
+      <xs:enumeration value="ImAddress3"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="EmailAddressKeyType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="EmailAddress1"/>
+      <xs:enumeration value="EmailAddress2"/>
+      <xs:enumeration value="EmailAddress3"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="PhoneNumberKeyType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="AssistantPhone"/>
+      <xs:enumeration value="BusinessFax"/>
+      <xs:enumeration value="BusinessPhone"/>
+      <xs:enumeration value="BusinessPhone2"/>
+      <xs:enumeration value="Callback"/>
+      <xs:enumeration value="CarPhone"/>
+      <xs:enumeration value="CompanyMainPhone"/>
+      <xs:enumeration value="HomeFax"/>
+      <xs:enumeration value="HomePhone"/>
+      <xs:enumeration value="HomePhone2"/>
+      <xs:enumeration value="Isdn"/>
+      <xs:enumeration value="MobilePhone"/>
+      <xs:enumeration value="OtherFax"/>
+      <xs:enumeration value="OtherTelephone"/>
+      <xs:enumeration value="Pager"/>
+      <xs:enumeration value="PrimaryPhone"/>
+      <xs:enumeration value="RadioPhone"/>
+      <xs:enumeration value="Telex"/>
+      <xs:enumeration value="TtyTddPhone"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="PhysicalAddressIndexType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None"/>
+      <xs:enumeration value="Business"/>
+      <xs:enumeration value="Home"/>
+      <xs:enumeration value="Other"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="PhysicalAddressKeyType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Business"/>
+      <xs:enumeration value="Home"/>
+      <xs:enumeration value="Other"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="FileAsMappingType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None"/>
+      <xs:enumeration value="LastCommaFirst"/>
+      <xs:enumeration value="FirstSpaceLast"/>
+      <xs:enumeration value="Company"/>
+      <xs:enumeration value="LastCommaFirstCompany"/>
+      <xs:enumeration value="CompanyLastFirst"/>
+      <xs:enumeration value="LastFirst"/>
+      <xs:enumeration value="LastFirstCompany"/>
+      <xs:enumeration value="CompanyLastCommaFirst"/>
+      <xs:enumeration value="LastFirstSuffix"/>
+      <xs:enumeration value="LastSpaceFirstCompany"/>
+      <xs:enumeration value="CompanyLastSpaceFirst"/>
+      <xs:enumeration value="LastSpaceFirst"/>
+      <xs:enumeration value="DisplayName"/>
+      <xs:enumeration value="FirstName"/>
+      <xs:enumeration value="LastFirstMiddleSuffix"/>
+      <xs:enumeration value="LastName"/>
+      <xs:enumeration value="Empty"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- Contact source -->
+
+  <xs:simpleType name="ContactSourceType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="ActiveDirectory"/>
+      <xs:enumeration value="Store"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- complete name for a contact -->
+
+  <xs:complexType name="CompleteNameType">
+    <xs:sequence>
+      <xs:element name="Title" type="xs:string" minOccurs="0"/>
+      <xs:element name="FirstName" type="xs:string" minOccurs="0"/>
+      <xs:element name="MiddleName" type="xs:string" minOccurs="0"/>
+      <xs:element name="LastName" type="xs:string" minOccurs="0"/>
+      <xs:element name="Suffix" type="xs:string" minOccurs="0"/>
+      <xs:element name="Initials" type="xs:string" minOccurs="0"/>
+      <xs:element name="FullName" type="xs:string" minOccurs="0"/>
+      <xs:element name="Nickname" type="xs:string" minOccurs="0"/>
+      <xs:element name="YomiFirstName" type="xs:string" minOccurs="0"/>
+      <xs:element name="YomiLastName" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- Dictionary types for items -->
+
+  <xs:complexType name="ImAddressDictionaryEntryType">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="Key" type="t:ImAddressKeyType" use="required"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="EmailAddressDictionaryEntryType">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="Key" type="t:EmailAddressKeyType" use="required"/>
+        <xs:attribute name="Name" type="xs:string" use="optional"/>
+        <xs:attribute name="RoutingType" type="xs:string" use="optional"/>
+        <xs:attribute name="MailboxType" type="t:MailboxTypeType" use="optional"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="PhoneNumberDictionaryEntryType">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="Key" type="t:PhoneNumberKeyType" use="required"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="PhysicalAddressDictionaryEntryType">
+    <xs:sequence>
+      <xs:element name="Street" type="xs:string" minOccurs="0"/>
+      <xs:element name="City" type="xs:string" minOccurs="0"/>
+      <xs:element name="State" type="xs:string" minOccurs="0"/>
+      <xs:element name="CountryOrRegion" type="xs:string" minOccurs="0"/>
+      <xs:element name="PostalCode" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="Key" type="t:PhysicalAddressKeyType" use="required"/>
+  </xs:complexType>
+
+  <!-- The actual dictionaries -->
+
+  <xs:complexType name="ImAddressDictionaryType">
+    <xs:sequence>
+      <xs:element name="Entry" type="t:ImAddressDictionaryEntryType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="EmailAddressDictionaryType">
+    <xs:sequence>
+      <xs:element name="Entry" type="t:EmailAddressDictionaryEntryType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="PhoneNumberDictionaryType">
+    <xs:sequence>
+      <xs:element name="Entry" type="t:PhoneNumberDictionaryEntryType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="PhysicalAddressDictionaryType">
+    <xs:sequence>
+      <xs:element name="Entry" type="t:PhysicalAddressDictionaryEntryType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="MemberStatusType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Unrecognized"/>
+      <xs:enumeration value="Normal"/>
+      <xs:enumeration value="Demoted"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="MembersListType">
+    <xs:sequence>
+      <xs:element name="Member" type="t:MemberType" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="MemberType">
+    <xs:sequence>
+      <xs:element name="Mailbox" type="t:EmailAddressType" minOccurs="0"/>
+      <xs:element name="Status" type="t:MemberStatusType" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="Key" type="xs:string" use="optional"/>
+  </xs:complexType>
+
+  <!-- ContactItemType -->
+
+  <xs:complexType name="ContactItemType">
+    <xs:complexContent>
+      <xs:extension base="t:ItemType">
+        <xs:sequence>
+          <xs:element name="FileAs" type="xs:string" minOccurs="0"/>
+          <xs:element name="FileAsMapping" type="t:FileAsMappingType" minOccurs="0"/>
+          <xs:element name="DisplayName" type="xs:string" minOccurs="0"/>
+          <xs:element name="GivenName" type="xs:string" minOccurs="0"/>
+          <xs:element name="Initials" type="xs:string" minOccurs="0"/>
+          <xs:element name="MiddleName" type="xs:string" minOccurs="0"/>
+          <xs:element name="Nickname" type="xs:string" minOccurs="0"/>
+          <xs:element name="CompleteName" type="t:CompleteNameType" minOccurs="0"/>
+          <xs:element name="CompanyName" type="xs:string" minOccurs="0"/>
+          <xs:element name="EmailAddresses" type="t:EmailAddressDictionaryType" minOccurs="0"/>
+          <xs:element name="PhysicalAddresses" type="t:PhysicalAddressDictionaryType" minOccurs="0"/>
+          <xs:element name="PhoneNumbers" type="t:PhoneNumberDictionaryType" minOccurs="0"/>
+          <xs:element name="AssistantName" type="xs:string" minOccurs="0"/>
+          <xs:element name="Birthday" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="BusinessHomePage" type="xs:anyURI" minOccurs="0"/>
+          <xs:element name="Children" type="t:ArrayOfStringsType" minOccurs="0"/>
+          <xs:element name="Companies" type="t:ArrayOfStringsType" minOccurs="0"/>
+          <xs:element name="ContactSource" type="t:ContactSourceType" minOccurs="0"/>
+          <xs:element name="Department" type="xs:string" minOccurs="0"/>
+          <xs:element name="Generation" type="xs:string" minOccurs="0"/>
+          <xs:element name="ImAddresses" type="t:ImAddressDictionaryType" minOccurs="0"/>
+          <xs:element name="JobTitle" type="xs:string" minOccurs="0"/>
+          <xs:element name="Manager" type="xs:string" minOccurs="0"/>
+          <xs:element name="Mileage" type="xs:string" minOccurs="0"/>
+          <xs:element name="OfficeLocation" type="xs:string" minOccurs="0"/>
+          <xs:element name="PostalAddressIndex" type="t:PhysicalAddressIndexType" minOccurs="0"/>
+          <xs:element name="Profession" type="xs:string" minOccurs="0"/>
+          <xs:element name="SpouseName" type="xs:string" minOccurs="0"/>
+          <xs:element name="Surname" type="xs:string" minOccurs="0"/>
+          <xs:element name="WeddingAnniversary" type="xs:dateTime" minOccurs="0"/>
+          <xs:element name="HasPicture" type="xs:boolean" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- ContactItemType -->
+
+  <xs:complexType name="DistributionListType">
+    <xs:complexContent>
+      <xs:extension base="t:ItemType">
+        <xs:sequence>
+          <xs:element name="DisplayName" type="xs:string" minOccurs="0"/>
+          <xs:element name="FileAs" type="xs:string" minOccurs="0"/>
+          <xs:element name="ContactSource" type="t:ContactSourceType" minOccurs="0"/>
+
+          <xs:element name="Members" type="t:MembersListType" minOccurs="0"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- End of Contacts Types-->
+
+  <!-- Description of a search folder -->
+
+  <xs:complexType name="SearchParametersType">
+    <xs:sequence>
+      <xs:element name="Restriction" type="t:RestrictionType"/>
+      <xs:element name="BaseFolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType"/>
+    </xs:sequence>
+    <xs:attribute name="Traversal" type="t:SearchFolderTraversalType" use="optional"/>
+  </xs:complexType>
+
+  <!-- Search expressions -->
+  <xs:complexType name="ConstantValueType">
+    <xs:attribute name="Value" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <!-- Search expression type -->
+  <xs:complexType name="SearchExpressionType" abstract="true"/>
+  <xs:element name="SearchExpression" type="t:SearchExpressionType"/>
+
+  <!-- GroupBy types for FindItem -->
+  <xs:simpleType name="AggregateType">
+    <xs:annotation>
+      <xs:documentation>
+        This max/min evaluation is applied to the field specified within the group by
+        instance for EACH item within that group.  This determines which item from each group
+        is to be selected as the representative for that group.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Minimum"/>
+      <xs:enumeration value="Maximum"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="AggregateOnType">
+    <xs:annotation>
+      <xs:documentation>
+        Represents the field of each item to aggregate on and the qualifier to apply to that
+        field in determining which item will represent the group.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:choice>
+      <!-- Note that the property path here determines which property to examine on each item
+            in the group for the aggregation function.  This has nothing to do with defintion what
+            is in each group.  That determination has already been made via the GroupBy property path.
+            -->
+      <xs:element name="FieldURI" type="t:PathToUnindexedFieldType"/>
+      <xs:element name="IndexedFieldURI" type="t:PathToIndexedFieldType"/>
+      <xs:element name="ExtendedFieldURI" type="t:PathToExtendedFieldType"/>
+    </xs:choice>
+    <xs:attribute name="Aggregate" type="t:AggregateType" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="BaseGroupByType" abstract="true">
+    <xs:attribute name="Order" type="t:SortDirectionType" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="GroupByType">
+    <xs:annotation>
+      <xs:documentation>
+        Allows consumers to specify arbitrary groupings for FindItem queries.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="t:BaseGroupByType">
+        <xs:sequence>
+          <!-- This property path represents the property that defines what is in each group.
+                    All items within a given group will have the same value for this property. -->
+          <xs:choice>
+            <xs:element name="FieldURI" type="t:PathToUnindexedFieldType"/>
+            <xs:element name="IndexedFieldURI" type="t:PathToIndexedFieldType"/>
+            <xs:element name="ExtendedFieldURI" type="t:PathToExtendedFieldType"/>
+          </xs:choice>
+          <xs:element name="AggregateOn" type="t:AggregateOnType"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="StandardGroupByType">
+    <xs:annotation>
+      <xs:documentation>
+        Represents standard groupings for GroupBy queries.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="ConversationTopic"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="DistinguishedGroupByType">
+    <xs:annotation>
+      <xs:documentation>
+        Allows consumers to access standard groupings for FindItem queries.  This is in
+        contrast to the arbitrary (custom) groupings available via the t:GroupByType
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="t:BaseGroupByType">
+        <xs:sequence>
+          <xs:element name="StandardGroupBy" type="t:StandardGroupByType"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- GroupBy result types -->
+
+  <xs:complexType name="GroupedItemsType">
+    <xs:sequence>
+      <xs:element name="GroupIndex" type="xs:string"/>
+      <xs:element name="Items" type="t:ArrayOfRealItemsType"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfGroupedItemsType">
+    <xs:choice>
+      <xs:element name="GroupedItems" type="t:GroupedItemsType" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <!-- Basic arithmetic operations -->
+
+  <xs:complexType name="ExistsType">
+    <xs:complexContent>
+      <xs:extension base="t:SearchExpressionType">
+        <xs:sequence>
+          <xs:element ref="t:Path"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="Exists" type="t:ExistsType" substitutionGroup="t:SearchExpression"/>
+
+  <xs:complexType name="FieldURIOrConstantType">
+    <xs:choice>
+      <xs:element ref="t:Path"/>
+      <xs:element name="Constant" type="t:ConstantValueType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="TwoOperandExpressionType" abstract="true">
+    <xs:complexContent>
+      <xs:extension base="t:SearchExpressionType">
+        <xs:sequence>
+          <xs:element ref="t:Path"/>
+          <xs:element name="FieldURIOrConstant" type="t:FieldURIOrConstantType"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <!-- Excludes patterns can either be hex (starting with 0x or 0X) or integers -->
+  <xs:simpleType name="ExcludesAttributeType">
+    <xs:restriction base="xs:string">
+      <xs:pattern value="((0x|0X)[0-9A-Fa-f]*)|([0-9]*)"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ExcludesValueType">
+    <xs:attribute name="Value" type="t:ExcludesAttributeType" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="ExcludesType">
+    <xs:complexContent>
+      <xs:extension base="t:SearchExpressionType">
+        <xs:sequence>
+          <xs:element ref="t:Path"/>
+          <xs:element name="Bitmask" type="t:ExcludesValueType"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="Excludes" type="t:ExcludesType" substitutionGroup="t:SearchExpression"/>
+
+
+  <xs:complexType name="IsEqualToType">
+    <xs:complexContent>
+      <xs:extension base="t:TwoOperandExpressionType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="IsEqualTo" type="t:IsEqualToType" substitutionGroup="t:SearchExpression"/>
+  <xs:complexType name="IsNotEqualToType">
+    <xs:complexContent>
+      <xs:extension base="t:TwoOperandExpressionType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="IsNotEqualTo" type="t:IsNotEqualToType" substitutionGroup="t:SearchExpression"/>
+  <xs:complexType name="IsGreaterThanType">
+    <xs:complexContent>
+      <xs:extension base="t:TwoOperandExpressionType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="IsGreaterThan" type="t:IsGreaterThanType" substitutionGroup="t:SearchExpression"/>
+  <xs:complexType name="IsGreaterThanOrEqualToType">
+    <xs:complexContent>
+      <xs:extension base="t:TwoOperandExpressionType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="IsGreaterThanOrEqualTo" type="t:IsGreaterThanOrEqualToType" substitutionGroup="t:SearchExpression"/>
+  <xs:complexType name="IsLessThanType">
+    <xs:complexContent>
+      <xs:extension base="t:TwoOperandExpressionType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="IsLessThan" type="t:IsLessThanType" substitutionGroup="t:SearchExpression"/>
+  <xs:complexType name="IsLessThanOrEqualToType">
+    <xs:complexContent>
+      <xs:extension base="t:TwoOperandExpressionType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="IsLessThanOrEqualTo" type="t:IsLessThanOrEqualToType" substitutionGroup="t:SearchExpression"/>
+
+
+  <!-- Content indexing comparison -->
+  <xs:simpleType name="ContainmentModeType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="FullString"/>
+      <xs:enumeration value="Prefixed"/>
+      <xs:enumeration value="Substring"/>
+      <xs:enumeration value="PrefixOnWords"/>
+      <xs:enumeration value="ExactPhrase"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="ContainmentComparisonType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Exact"/>
+      <xs:enumeration value="IgnoreCase"/>
+      <xs:enumeration value="IgnoreNonSpacingCharacters"/>
+      <xs:enumeration value="Loose"/>
+      <xs:enumeration value="IgnoreCaseAndNonSpacingCharacters"/>
+      <xs:enumeration value="LooseAndIgnoreCase"/>
+      <xs:enumeration value="LooseAndIgnoreNonSpace"/>
+      <xs:enumeration value="LooseAndIgnoreCaseAndIgnoreNonSpace"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ContainsExpressionType">
+    <xs:complexContent>
+      <xs:extension base="t:SearchExpressionType">
+        <xs:sequence>
+          <xs:element ref="t:Path"/>
+          <xs:element name="Constant" type="t:ConstantValueType"/>
+        </xs:sequence>
+        <xs:attribute name="ContainmentMode" type="t:ContainmentModeType" use="optional"/>
+        <xs:attribute name="ContainmentComparison" type="t:ContainmentComparisonType" use="optional"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="Contains" type="t:ContainsExpressionType" substitutionGroup="t:SearchExpression"/>
+
+  <!-- Boolean operations -->
+  <xs:complexType name="NotType">
+    <xs:complexContent>
+      <xs:extension base="t:SearchExpressionType">
+        <xs:sequence>
+          <xs:element ref="t:SearchExpression"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="Not" type="t:NotType" substitutionGroup="t:SearchExpression"/>
+
+  <xs:complexType name="MultipleOperandBooleanExpressionType" abstract="true">
+    <xs:complexContent>
+      <xs:extension base="t:SearchExpressionType">
+        <xs:sequence>
+          <xs:element ref="t:SearchExpression" minOccurs="1" maxOccurs="unbounded"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="AndType">
+    <xs:complexContent>
+      <xs:extension base="t:MultipleOperandBooleanExpressionType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="And" type="t:AndType" substitutionGroup="t:SearchExpression"/>
+
+  <xs:complexType name="OrType">
+    <xs:complexContent>
+      <xs:extension base="t:MultipleOperandBooleanExpressionType"/>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:element name="Or" type="t:OrType" substitutionGroup="t:SearchExpression"/>
+
+  <!-- The type of object which actually encodes a restriction -->
+  <xs:complexType name="RestrictionType">
+    <xs:sequence>
+      <xs:element ref="t:SearchExpression"/>
+    </xs:sequence>
+  </xs:complexType>
+  <!-- Sort order specification -->
+  <xs:simpleType name="SortDirectionType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Ascending"/>
+      <xs:enumeration value="Descending"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="FieldOrderType">
+    <xs:sequence>
+      <xs:element ref="t:Path"/>
+    </xs:sequence>
+    <xs:attribute name="Order" type="t:SortDirectionType" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfFieldOrdersType">
+    <xs:sequence>
+      <xs:element name="FieldOrder" type="t:FieldOrderType" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- Data type needed by CreateManagedFolder. -->
+  <xs:complexType name="NonEmptyArrayOfFolderNamesType">
+    <xs:sequence>
+      <xs:element name="FolderName" type="xs:string" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+
+  <!-- Notification types -->
+
+  <xs:simpleType name="WatermarkType">
+    <xs:restriction base="t:NonEmptyStringType"/>
+  </xs:simpleType>
+
+  <xs:simpleType name="SubscriptionIdType">
+    <xs:restriction base="t:NonEmptyStringType"/>
+  </xs:simpleType>
+
+  <xs:complexType name="BaseNotificationEventType">
+    <xs:sequence>
+      <xs:element name="Watermark" type="t:WatermarkType"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="BaseObjectChangedEventType">
+    <xs:complexContent>
+      <xs:extension base="t:BaseNotificationEventType">
+        <xs:sequence>
+          <xs:element name="TimeStamp" type="xs:dateTime"/>
+          <xs:choice>
+            <xs:element name="FolderId" type="t:FolderIdType"/>
+            <xs:element name="ItemId" type="t:ItemIdType"/>
+          </xs:choice>
+          <xs:element name="ParentFolderId" type="t:FolderIdType"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ModifiedEventType">
+    <xs:complexContent>
+      <xs:extension base="t:BaseObjectChangedEventType">
+        <xs:sequence>
+          <xs:element name="UnreadCount" type="xs:int" minOccurs="0" maxOccurs="1"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="MovedCopiedEventType">
+    <xs:complexContent>
+      <xs:extension base="t:BaseObjectChangedEventType">
+        <xs:sequence>
+          <xs:choice>
+            <xs:element name="OldFolderId" type="t:FolderIdType"/>
+            <xs:element name="OldItemId" type="t:ItemIdType"/>
+          </xs:choice>
+          <xs:element name="OldParentFolderId" type="t:FolderIdType"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="NotificationType">
+    <xs:sequence>
+      <xs:element name="SubscriptionId" type="t:SubscriptionIdType"/>
+      <xs:element name="PreviousWatermark" type="t:WatermarkType"/>
+      <xs:element name="MoreEvents" type="xs:boolean"/>
+      <xs:choice maxOccurs="unbounded" minOccurs="1">
+        <xs:element name="CopiedEvent" type="t:MovedCopiedEventType"/>
+        <xs:element name="CreatedEvent" type="t:BaseObjectChangedEventType"/>
+        <xs:element name="DeletedEvent" type="t:BaseObjectChangedEventType"/>
+        <xs:element name="ModifiedEvent" type="t:ModifiedEventType"/>
+        <xs:element name="MovedEvent" type="t:MovedCopiedEventType"/>
+        <xs:element name="NewMailEvent" type="t:BaseObjectChangedEventType"/>
+        <xs:element name="StatusEvent" type="t:BaseNotificationEventType"/>
+      </xs:choice>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="NotificationEventTypeType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="CopiedEvent"/>
+      <xs:enumeration value="CreatedEvent"/>
+      <xs:enumeration value="DeletedEvent"/>
+      <xs:enumeration value="ModifiedEvent"/>
+      <xs:enumeration value="MovedEvent"/>
+      <xs:enumeration value="NewMailEvent"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="NonEmptyArrayOfNotificationEventTypesType">
+    <xs:choice maxOccurs="unbounded" minOccurs="1">
+      <xs:element name="EventType" type="t:NotificationEventTypeType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:simpleType name="SubscriptionTimeoutType">
+    <xs:restriction base="xs:int">
+      <xs:minInclusive value="1"/>
+      <xs:maxInclusive value="1440"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="SubscriptionStatusFrequencyType">
+    <xs:restriction base="xs:int">
+      <xs:minInclusive value="1"/>
+      <xs:maxInclusive value="1440"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="BaseSubscriptionRequestType" abstract="true">
+    <xs:sequence>
+      <xs:element name="FolderIds" type="t:NonEmptyArrayOfBaseFolderIdsType" minOccurs="0"/>
+      <xs:element name="EventTypes" type="t:NonEmptyArrayOfNotificationEventTypesType"/>
+      <xs:element name="Watermark" type="t:WatermarkType" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute name="SubscribeToAllFolders" type="xs:boolean" use="optional"/>
+  </xs:complexType>
+  <xs:complexType name="PushSubscriptionRequestType">
+    <xs:complexContent>
+      <xs:extension base="t:BaseSubscriptionRequestType">
+        <xs:sequence>
+          <xs:element name="StatusFrequency" type="t:SubscriptionStatusFrequencyType"/>
+          <xs:element name="URL" type="xs:string"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  <xs:complexType name="PullSubscriptionRequestType">
+    <xs:complexContent>
+      <xs:extension base="t:BaseSubscriptionRequestType">
+        <xs:sequence>
+          <xs:element name="Timeout" type="t:SubscriptionTimeoutType"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="SubscriptionStatusType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="OK"/>
+      <xs:enumeration value="Unsubscribe"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="SyncFolderItemsDeleteType">
+    <xs:sequence>
+      <xs:element name="ItemId" type="t:ItemIdType"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="SyncFolderItemsReadFlagType">
+    <xs:sequence>
+      <xs:element name="ItemId" type="t:ItemIdType"/>
+      <xs:element name="IsRead" type="xs:boolean"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="SyncFolderItemsChangesType">
+    <xs:sequence>
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
+        <xs:element name="Create" type="t:SyncFolderItemsCreateOrUpdateType"/>
+        <xs:element name="Update" type="t:SyncFolderItemsCreateOrUpdateType"/>
+        <xs:element name="Delete" type="t:SyncFolderItemsDeleteType"/>
+        <xs:element name="ReadFlagChange" type="t:SyncFolderItemsReadFlagType"/>
+      </xs:choice>
+    </xs:sequence>
+  </xs:complexType>
+
+
+  <xs:complexType name="SyncFolderHierarchyCreateOrUpdateType">
+    <xs:choice>
+      <xs:element name="Folder" type="t:FolderType"/>
+      <xs:element name="CalendarFolder" type="t:CalendarFolderType"/>
+      <xs:element name="ContactsFolder" type="t:ContactsFolderType"/>
+      <xs:element name="SearchFolder" type="t:SearchFolderType"/>
+      <xs:element name="TasksFolder" type="t:TasksFolderType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="SyncFolderHierarchyDeleteType">
+    <xs:sequence>
+      <xs:element name="FolderId" type="t:FolderIdType"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="SyncFolderHierarchyChangesType">
+    <xs:sequence>
+      <xs:choice maxOccurs="unbounded" minOccurs="0">
+        <xs:element name="Create" type="t:SyncFolderHierarchyCreateOrUpdateType"/>
+        <xs:element name="Update" type="t:SyncFolderHierarchyCreateOrUpdateType"/>
+        <xs:element name="Delete" type="t:SyncFolderHierarchyDeleteType"/>
+      </xs:choice>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="MaxSyncChangesReturnedType">
+    <xs:restriction base="xs:int">
+      <xs:minInclusive value="1"/>
+      <xs:maxInclusive value="512"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="SyncFolderItemsScopeType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="NormalItems"/>
+      <xs:enumeration value="NormalAndAssociatedItems"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- Availability Service types -->
+
+  <xs:simpleType name="AvailabilityProxyRequestType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="CrossSite"/>
+      <xs:enumeration value="CrossForest"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="RequestTypeHeader">
+    <xs:sequence>
+      <xs:element name="RequestType" type="t:AvailabilityProxyRequestType" minOccurs="1" maxOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="MeetingAttendeeType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Organizer"/>
+      <xs:enumeration value="Required"/>
+      <xs:enumeration value="Optional"/>
+      <xs:enumeration value="Room"/>
+      <xs:enumeration value="Resource"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="CalendarEventDetails">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="1" name="ID" type="xs:string"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="Subject" type="xs:string"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="Location" type="xs:string"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="IsMeeting" type="xs:boolean"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="IsRecurring" type="xs:boolean"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="IsException" type="xs:boolean"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="IsReminderSet" type="xs:boolean"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="IsPrivate" type="xs:boolean"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="CalendarEvent">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="StartTime" type="xs:dateTime"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="EndTime" type="xs:dateTime"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="BusyType" type="t:LegacyFreeBusyType"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="CalendarEventDetails" type="t:CalendarEventDetails"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfCalendarEvent">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="CalendarEvent" type="t:CalendarEvent"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="Duration">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="StartTime" type="xs:dateTime"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="EndTime" type="xs:dateTime"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="EmailAddress">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="Address" type="xs:string"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="RoutingType" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:element name="Mailbox" type="t:EmailAddress"/>
+
+  <xs:simpleType name="FreeBusyViewType">
+    <xs:list>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="None"/>
+          <xs:enumeration value="MergedOnly"/>
+          <xs:enumeration value="FreeBusy"/>
+          <xs:enumeration value="FreeBusyMerged"/>
+          <xs:enumeration value="Detailed"/>
+          <xs:enumeration value="DetailedMerged"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:list>
+  </xs:simpleType>
+
+  <xs:complexType name="FreeBusyViewOptionsType">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="TimeWindow" type="t:Duration"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="MergedFreeBusyIntervalInMinutes" type="xs:int"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="RequestedView" type="t:FreeBusyViewType"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:element name="FreeBusyViewOptions" type="t:FreeBusyViewOptionsType"/>
+
+  <xs:complexType name="WorkingPeriod">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="DayOfWeek" type="t:DaysOfWeekType"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="StartTimeInMinutes" type="xs:int"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="EndTimeInMinutes" type="xs:int"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfWorkingPeriod">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="WorkingPeriod" type="t:WorkingPeriod"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="SerializableTimeZoneTime">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="Bias" type="xs:int"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="Time" type="xs:string"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="DayOrder" type="xs:short"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="Month" type="xs:short"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="DayOfWeek" type="t:DayOfWeekType"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="Year" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="SerializableTimeZone">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="Bias" type="xs:int"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="StandardTime" type="t:SerializableTimeZoneTime"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="DaylightTime" type="t:SerializableTimeZoneTime"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:element name="TimeZone" type="t:SerializableTimeZone"/>
+
+  <xs:complexType name="WorkingHours">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="TimeZone" type="t:SerializableTimeZone"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="WorkingPeriodArray" type="t:ArrayOfWorkingPeriod"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="FreeBusyView">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="FreeBusyViewType" type="t:FreeBusyViewType"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="MergedFreeBusy" type="xs:string"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="CalendarEventArray" type="t:ArrayOfCalendarEvent"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="WorkingHours" type="t:WorkingHours"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="MailboxData">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="Email" type="t:EmailAddress"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="AttendeeType" type="t:MeetingAttendeeType"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="ExcludeConflicts" type="xs:boolean"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfMailboxData">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="MailboxData" nillable="true" type="t:MailboxData"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="SuggestionQuality">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Excellent"/>
+      <xs:enumeration value="Good"/>
+      <xs:enumeration value="Fair"/>
+      <xs:enumeration value="Poor"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="SuggestionsViewOptionsType">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="1" name="GoodThreshold" type="xs:int"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="MaximumResultsByDay" type="xs:int"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="MaximumNonWorkHourResultsByDay" type="xs:int"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="MeetingDurationInMinutes" type="xs:int"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="MinimumSuggestionQuality" type="t:SuggestionQuality"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="DetailedSuggestionsWindow" type="t:Duration"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="CurrentMeetingTime" type="xs:dateTime"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="GlobalObjectId" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:element name="SuggestionsViewOptions" type="t:SuggestionsViewOptionsType"/>
+
+  <xs:complexType name="ArrayOfAttendeeConflictData">
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element minOccurs="1" maxOccurs="1" name="UnknownAttendeeConflictData" nillable="true" type="t:UnknownAttendeeConflictData"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="IndividualAttendeeConflictData" nillable="true" type="t:IndividualAttendeeConflictData"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="TooBigGroupAttendeeConflictData" nillable="true" type="t:TooBigGroupAttendeeConflictData"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="GroupAttendeeConflictData" nillable="true" type="t:GroupAttendeeConflictData"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="AttendeeConflictData" abstract="true"/>
+
+  <xs:complexType name="UnknownAttendeeConflictData">
+    <xs:complexContent mixed="false">
+      <xs:extension base="t:AttendeeConflictData"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="TooBigGroupAttendeeConflictData">
+    <xs:complexContent mixed="false">
+      <xs:extension base="t:AttendeeConflictData"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="IndividualAttendeeConflictData">
+    <xs:complexContent mixed="false">
+      <xs:extension base="t:AttendeeConflictData">
+        <xs:sequence>
+          <xs:element minOccurs="1" maxOccurs="1" name="BusyType" type="t:LegacyFreeBusyType"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="GroupAttendeeConflictData">
+    <xs:complexContent mixed="false">
+      <xs:extension base="t:AttendeeConflictData">
+        <xs:sequence>
+          <xs:element minOccurs="1" maxOccurs="1" name="NumberOfMembers" type="xs:int"/>
+          <xs:element minOccurs="1" maxOccurs="1" name="NumberOfMembersAvailable" type="xs:int"/>
+          <xs:element minOccurs="1" maxOccurs="1" name="NumberOfMembersWithConflict" type="xs:int"/>
+          <xs:element minOccurs="1" maxOccurs="1" name="NumberOfMembersWithNoData" type="xs:int"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="Suggestion">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="MeetingTime" type="xs:dateTime"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="IsWorkTime" type="xs:boolean"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="SuggestionQuality" type="t:SuggestionQuality"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="AttendeeConflictDataArray" type="t:ArrayOfAttendeeConflictData"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfSuggestion">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="Suggestion" type="t:Suggestion"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="SuggestionDayResult">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="DayQuality" type="t:SuggestionQuality"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="SuggestionArray" type="t:ArrayOfSuggestion"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfSuggestionDayResult">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="SuggestionDayResult" type="t:SuggestionDayResult"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="OofState">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Disabled"/>
+      <xs:enumeration value="Enabled"/>
+      <xs:enumeration value="Scheduled"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ExternalAudience">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None"/>
+      <xs:enumeration value="Known"/>
+      <xs:enumeration value="All"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ReplyBody">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="1" name="Message" type="xs:string"/>
+    </xs:sequence>
+    <xs:attribute ref="xml:lang" use="optional"/>
+  </xs:complexType>
+
+  <xs:complexType name="UserOofSettings">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="OofState" type="t:OofState"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="ExternalAudience" type="t:ExternalAudience"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="Duration" type="t:Duration"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="InternalReply" type="t:ReplyBody"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="ExternalReply" type="t:ReplyBody"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:element name="OofSettings" type="t:UserOofSettings"/>
+  <xs:element name="UserOofSettings" type="t:UserOofSettings"/>
+
+  <!-- Value used in Message Xml -->
+  <xs:complexType name="Value">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute name="Name" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:element name="Value" type="t:Value"/>
+
+  <!-- SP1 Id Conversion types -->
+  <xs:simpleType name="IdFormatType">
+    <xs:annotation>
+      <xs:documentation>Surfaces the various id types that are supported for conversion</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="EwsLegacyId"/>
+      <xs:enumeration value="EwsId"/>
+      <xs:enumeration value="EntryId"/>
+      <xs:enumeration value="HexEntryId"/>
+      <xs:enumeration value="StoreId"/>
+      <xs:enumeration value="OwaId"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="AlternateIdBaseType" abstract="true">
+    <xs:annotation>
+      <xs:documentation>
+        Surfaces alternate representations of an item or folder id. No change key is included.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="Format" type="t:IdFormatType" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="AlternateIdType">
+    <xs:annotation>
+      <xs:documentation>
+        Represents an alternate mailbox folder or item Id.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="t:AlternateIdBaseType">
+        <xs:attribute name="Id" type="xs:string" use="required"/>
+        <xs:attribute name="Mailbox" type="t:NonEmptyStringType" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="AlternatePublicFolderIdType">
+    <xs:annotation>
+      <xs:documentation>
+        Represents an alternate public folder Id.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="t:AlternateIdBaseType">
+        <xs:attribute name="FolderId" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="AlternatePublicFolderItemIdType">
+    <xs:annotation>
+      <xs:documentation>
+        Represents an alternate public folder item Id.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="t:AlternatePublicFolderIdType">
+        <xs:attribute name="ItemId" type="xs:string" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="NonEmptyArrayOfAlternateIdsType">
+    <xs:annotation>
+      <xs:documentation>
+        A non-empty array of alternate Ids.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:choice minOccurs="1" maxOccurs="unbounded">
+      <xs:element name="AlternateId" type="t:AlternateIdType"/>
+      <xs:element name="AlternatePublicFolderId" type="t:AlternatePublicFolderIdType"/>
+      <xs:element name="AlternatePublicFolderItemId" type="t:AlternatePublicFolderItemIdType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="UserIdType">
+    <xs:sequence>
+      <xs:element name="SID" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="PrimarySmtpAddress" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="DisplayName" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="DistinguishedUser" type="t:DistinguishedUserType" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="ExternalUserIdentity" type="xs:string" minOccurs="0" maxOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="DistinguishedUserType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Default"/>
+      <xs:enumeration value="Anonymous"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ArrayOfPermissionsType">
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="Permission" type="t:PermissionType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfCalendarPermissionsType">
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="CalendarPermission" type="t:CalendarPermissionType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfUnknownEntriesType">
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="UnknownEntry" type="xs:string"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:simpleType name="PermissionReadAccessType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None"/>
+      <xs:enumeration value="FullDetails"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="CalendarPermissionReadAccessType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None"/>
+      <xs:enumeration value="TimeOnly"/>
+      <xs:enumeration value="TimeAndSubjectAndLocation"/>
+      <xs:enumeration value="FullDetails"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="BasePermissionType" abstract="true">
+    <xs:annotation>
+      <xs:documentation>A permission on a folder</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="UserId" type="t:UserIdType" minOccurs="1" maxOccurs="1"/>
+      <xs:element name="CanCreateItems" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="CanCreateSubFolders" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="IsFolderOwner" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="IsFolderVisible" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="IsFolderContact" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="EditItems" type="t:PermissionActionType" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="DeleteItems" type="t:PermissionActionType" minOccurs="0" maxOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="PermissionType">
+    <xs:annotation>
+      <xs:documentation>A permission on a folder</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="t:BasePermissionType">
+        <xs:sequence>
+          <xs:element name="ReadItems" type="t:PermissionReadAccessType" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="PermissionLevel" type="t:PermissionLevelType" minOccurs="1" maxOccurs="1"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="CalendarPermissionType">
+    <xs:complexContent>
+      <xs:extension base="t:BasePermissionType">
+        <xs:sequence>
+          <xs:element name="ReadItems" type="t:CalendarPermissionReadAccessType" minOccurs="0" maxOccurs="1"/>
+          <xs:element name="CalendarPermissionLevel" type="t:CalendarPermissionLevelType" minOccurs="1" maxOccurs="1"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="PermissionActionType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None"/>
+      <xs:enumeration value="Owned"/>
+      <xs:enumeration value="All"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="PermissionLevelType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None"/>
+      <xs:enumeration value="Owner"/>
+      <xs:enumeration value="PublishingEditor"/>
+      <xs:enumeration value="Editor"/>
+      <xs:enumeration value="PublishingAuthor"/>
+      <xs:enumeration value="Author"/>
+      <xs:enumeration value="NoneditingAuthor"/>
+      <xs:enumeration value="Reviewer"/>
+      <xs:enumeration value="Contributor"/>
+      <xs:enumeration value="Custom"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="CalendarPermissionLevelType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None"/>
+      <xs:enumeration value="Owner"/>
+      <xs:enumeration value="PublishingEditor"/>
+      <xs:enumeration value="Editor"/>
+      <xs:enumeration value="PublishingAuthor"/>
+      <xs:enumeration value="Author"/>
+      <xs:enumeration value="NoneditingAuthor"/>
+      <xs:enumeration value="Reviewer"/>
+      <xs:enumeration value="Contributor"/>
+      <xs:enumeration value="FreeBusyTimeOnly"/>
+      <xs:enumeration value="FreeBusyTimeAndSubjectAndLocation"/>
+      <xs:enumeration value="Custom"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="PermissionSetType">
+    <xs:annotation>
+      <xs:documentation>The set of permissions on a folder</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="Permissions" type="t:ArrayOfPermissionsType"/>
+      <xs:element name="UnknownEntries" type="t:ArrayOfUnknownEntriesType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="CalendarPermissionSetType">
+    <xs:annotation>
+      <xs:documentation>The set of permissions on a folder</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="CalendarPermissions" type="t:ArrayOfCalendarPermissionsType"/>
+      <xs:element name="UnknownEntries" type="t:ArrayOfUnknownEntriesType" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="EffectiveRightsType">
+    <xs:sequence>
+      <xs:element name="CreateAssociated" type="xs:boolean"/>
+      <xs:element name="CreateContents" type="xs:boolean"/>
+      <xs:element name="CreateHierarchy" type="xs:boolean"/>
+      <xs:element name="Delete" type="xs:boolean"/>
+      <xs:element name="Modify" type="xs:boolean"/>
+      <xs:element name="Read" type="xs:boolean"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- Delegate Management types -->
+
+  <xs:complexType name="ArrayOfDelegateUserType">
+    <xs:sequence>
+      <xs:element name="DelegateUser" type="t:DelegateUserType" minOccurs="1" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfUserIdType">
+    <xs:sequence>
+      <xs:element name="UserId" type="t:UserIdType" minOccurs="1" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="DeliverMeetingRequestsType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="DelegatesOnly"/>
+      <xs:enumeration value="DelegatesAndMe"/>
+      <xs:enumeration value="DelegatesAndSendInformationToMe"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="DelegateUserType">
+    <xs:sequence>
+      <xs:element name="UserId" type="t:UserIdType" minOccurs="1" maxOccurs="1"/>
+      <xs:element name="DelegatePermissions" type="t:DelegatePermissionsType" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="ReceiveCopiesOfMeetingMessages" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="ViewPrivateItems" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="DelegatePermissionsType">
+    <xs:sequence>
+      <xs:element name="CalendarFolderPermissionLevel" type="t:DelegateFolderPermissionLevelType" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="TasksFolderPermissionLevel" type="t:DelegateFolderPermissionLevelType" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="InboxFolderPermissionLevel" type="t:DelegateFolderPermissionLevelType" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="ContactsFolderPermissionLevel" type="t:DelegateFolderPermissionLevelType" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="NotesFolderPermissionLevel" type="t:DelegateFolderPermissionLevelType" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="JournalFolderPermissionLevel" type="t:DelegateFolderPermissionLevelType" minOccurs="0" maxOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="DelegateFolderPermissionLevelType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None"/>
+      <xs:enumeration value="Editor"/>
+      <xs:enumeration value="Reviewer"/>
+      <xs:enumeration value="Author"/>
+      <xs:enumeration value="Custom"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ConflictResultsType">
+    <xs:sequence>
+      <xs:element name="Count" type="xs:int"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- MailTips Types -->
+
+  <xs:simpleType name="MailTipTypes">
+    <xs:list>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="All"/>
+          <xs:enumeration value="OutOfOfficeMessage"/>
+          <xs:enumeration value="MailboxFullStatus"/>
+          <xs:enumeration value="CustomMailTip"/>
+          <xs:enumeration value="ExternalMemberCount"/>
+          <xs:enumeration value="TotalMemberCount"/>
+          <xs:enumeration value="MaxMessageSize"/>
+          <xs:enumeration value="DeliveryRestriction"/>
+          <xs:enumeration value="ModerationStatus"/>
+          <xs:enumeration value="InvalidRecipient"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:list>
+  </xs:simpleType>
+
+  <xs:complexType name="OutOfOfficeMailTip">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="ReplyBody" type="t:ReplyBody"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="Duration" type="t:Duration"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="SmtpDomainList">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="Domain" type="t:SmtpDomain"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="SmtpDomain">
+    <xs:attribute name="Name" type="xs:string" use="required"/>
+    <xs:attribute name="IncludeSubdomains" type="xs:boolean" use="optional"/>
+  </xs:complexType>
+
+  <xs:complexType name="MailTips">
+    <xs:sequence>
+      <xs:element minOccurs="1" maxOccurs="1" name="RecipientAddress" type="t:EmailAddressType"/>
+      <xs:element minOccurs="1" maxOccurs="1" name="PendingMailTips" type="t:MailTipTypes"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="OutOfOffice" type="t:OutOfOfficeMailTip"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="MailboxFull" type="xs:boolean"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="CustomMailTip" type="xs:string"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="TotalMemberCount" type="xs:int"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="ExternalMemberCount" type="xs:int"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="MaxMessageSize" type="xs:int"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="DeliveryRestricted" type="xs:boolean"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="IsModerated" type="xs:boolean"/>
+      <xs:element minOccurs="0" maxOccurs="1" name="InvalidRecipient" type="xs:boolean"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- GetServiceConfiguration Types -->
+  <xs:simpleType name="ServiceConfigurationType">
+    <xs:list>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="MailTips"/>
+          <xs:enumeration value="UnifiedMessagingConfiguration"/>
+          <xs:enumeration value="ProtectionRules"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:list>
+  </xs:simpleType>
+
+  <xs:complexType name="ServiceConfiguration">
+    <!-- this 'base class' is available for ErrorCode / ErrorMessage
+        elements if those become necessary in the future. -->
+  </xs:complexType>
+
+  <xs:complexType name="MailTipsServiceConfiguration">
+    <xs:complexContent>
+      <xs:extension base="t:ServiceConfiguration">
+        <xs:sequence>
+          <xs:element minOccurs="1" maxOccurs="1" name="MailTipsEnabled" type="xs:boolean"/>
+          <xs:element minOccurs="1" maxOccurs="1" name="MaxRecipientsPerGetMailTipsRequest" type="xs:int"/>
+          <xs:element minOccurs="1" maxOccurs="1" name="MaxMessageSize" type="xs:int"/>
+          <xs:element minOccurs="1" maxOccurs="1" name="LargeAudienceThreshold" type="xs:int"/>
+          <xs:element minOccurs="1" maxOccurs="1" name="ShowExternalRecipientCount" type="xs:boolean"/>
+          <xs:element minOccurs="1" maxOccurs="1" name="InternalDomains" type="t:SmtpDomainList"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="UnifiedMessageServiceConfiguration">
+    <xs:complexContent>
+      <xs:extension base="t:ServiceConfiguration">
+        <xs:sequence>
+          <xs:element minOccurs="1" maxOccurs="1" name="UmEnabled" type="xs:boolean"/>
+          <xs:element minOccurs="1" maxOccurs="1" name="PlayOnPhoneDialString" type="xs:string"/>
+          <xs:element minOccurs="1" maxOccurs="1" name="PlayOnPhoneEnabled" type="xs:boolean"/>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+
+  <!-- Sharing Types -->
+  <xs:complexType name="ArrayOfSmtpAddressType">
+    <xs:choice minOccurs="1" maxOccurs="unbounded">
+      <xs:element name="SmtpAddress" type="t:NonEmptyStringType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfEncryptedSharedFolderDataType">
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="EncryptedSharedFolderData" type="t:EncryptedSharedFolderDataType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="EncryptedSharedFolderDataType">
+    <xs:sequence>
+      <xs:element name="Token" type="t:EncryptedDataContainerType"/>
+      <xs:element name="Data" type="t:EncryptedDataContainerType"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="EncryptedDataContainerType">
+    <xs:sequence>
+      <xs:any processContents="skip" namespace="##other"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfInvalidRecipientsType">
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="InvalidRecipient" type="t:InvalidRecipientType"/>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="InvalidRecipientType">
+    <xs:sequence>
+      <xs:element name="SmtpAddress" type="t:NonEmptyStringType"/>
+      <xs:element name="ResponseCode" type="t:InvalidRecipientResponseCodeType"/>
+      <xs:element name="MessageText" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="InvalidRecipientResponseCodeType">
+    <xs:annotation>
+      <xs:documentation>
+        Represents the message keys that can be returned for invalid recipients
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="RecipientOrganizationNotFederated"/>
+      <xs:enumeration value="CannotObtainTokenFromSTS"/>
+      <xs:enumeration value="SystemPolicyBlocksSharingWithThisRecipient"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="AcceptSharingInvitationType">
+    <xs:complexContent>
+      <xs:extension base="t:ReferenceItemResponseType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="SharingDataType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Calendar"/>
+      <xs:enumeration value="Contacts"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- UMTypes -->
+  <xs:complexType name="PhoneCallIdType">
+    <xs:attribute name="Id" type="xs:string" use="required"/>
+  </xs:complexType>
+
+  <xs:complexType name="PhoneCallInformationType">
+    <xs:sequence>
+      <xs:element name="PhoneCallState" type="t:PhoneCallStateType" minOccurs="1" maxOccurs="1"/>
+      <xs:element name="ConnectionFailureCause" type="t:ConnectionFailureCauseType" minOccurs="1" maxOccurs="1"/>
+      <xs:element name="SIPResponseText" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="SIPResponseCode" type="xs:int" minOccurs="0" maxOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="PhoneCallStateType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="Idle"/>
+      <xs:enumeration value="Connecting"/>
+      <xs:enumeration value="Alerted"/>
+      <xs:enumeration value="Connected"/>
+      <xs:enumeration value="Disconnected"/>
+      <xs:enumeration value="Incoming"/>
+      <xs:enumeration value="Transferring"/>
+      <xs:enumeration value="Forwarding"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ConnectionFailureCauseType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="None"/>
+      <xs:enumeration value="UserBusy"/>
+      <xs:enumeration value="NoAnswer"/>
+      <xs:enumeration value="Unavailable"/>
+      <xs:enumeration value="Other"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- UserConfiguration Types -->
+
+  <xs:complexType name="UserConfigurationNameType">
+    <xs:complexContent>
+      <xs:extension base="t:TargetFolderIdType">
+        <xs:attribute name="Name" type="t:NonEmptyStringType" use="required"/>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="UserConfigurationDictionaryObjectTypesType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="DateTime"/>
+      <xs:enumeration value="Boolean"/>
+      <xs:enumeration value="Byte"/>
+      <xs:enumeration value="String"/>
+      <xs:enumeration value="Integer32"/>
+      <xs:enumeration value="UnsignedInteger32"/>
+      <xs:enumeration value="Integer64"/>
+      <xs:enumeration value="UnsignedInteger64"/>
+      <xs:enumeration value="StringArray"/>
+      <xs:enumeration value="ByteArray"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="UserConfigurationDictionaryObjectType">
+    <xs:sequence>
+      <xs:element name="Type" type="t:UserConfigurationDictionaryObjectTypesType" minOccurs="1" maxOccurs="1"/>
+      <xs:element name="Value" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="UserConfigurationDictionaryEntryType">
+    <xs:sequence>
+      <xs:element name="DictionaryKey" type="t:UserConfigurationDictionaryObjectType" minOccurs="1" maxOccurs="1"/>
+      <xs:element name="DictionaryValue" type="t:UserConfigurationDictionaryObjectType" nillable="true" minOccurs="1" maxOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="UserConfigurationDictionaryType">
+    <xs:sequence>
+      <xs:element name="DictionaryEntry" type="t:UserConfigurationDictionaryEntryType" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="UserConfigurationType">
+    <xs:sequence>
+      <xs:element name="UserConfigurationName" type="t:UserConfigurationNameType" minOccurs="1" maxOccurs="1"/>
+      <xs:element name="ItemId" type="t:ItemIdType" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="Dictionary" type="t:UserConfigurationDictionaryType" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="XmlData" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="BinaryData" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="UserConfigurationPropertyType">
+    <xs:list>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="Id"/>
+          <xs:enumeration value="Dictionary"/>
+          <xs:enumeration value="XmlData"/>
+          <xs:enumeration value="BinaryData"/>
+          <xs:enumeration value="All"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:list>
+  </xs:simpleType>
+
+  <xs:complexType name="ProtectionRulesServiceConfiguration">
+    <xs:complexContent>
+      <xs:extension base="t:ServiceConfiguration">
+        <xs:sequence>
+          <xs:element name="Rules" type="t:ArrayOfProtectionRulesType" minOccurs="1" maxOccurs="1"/>
+          <xs:element name="InternalDomains" type="t:SmtpDomainList" minOccurs="1" maxOccurs="1"/>
+        </xs:sequence>
+        <xs:attribute name="RefreshInterval" use="required">
+          <xs:simpleType>
+            <xs:restriction base="xs:int">
+              <xs:minInclusive value="1"/>
+            </xs:restriction>
+          </xs:simpleType>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ArrayOfProtectionRulesType">
+    <xs:sequence>
+      <xs:element name="Rule" type="t:ProtectionRuleType" minOccurs="0" maxOccurs="unbounded">
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ProtectionRuleType">
+    <xs:sequence>
+      <xs:element name="Condition" type="t:ProtectionRuleConditionType" minOccurs="1" maxOccurs="1"/>
+      <xs:element name="Action" type="t:ProtectionRuleActionType" minOccurs="1" maxOccurs="1"/>
+    </xs:sequence>
+    <xs:attribute name="Name" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:minLength value="1"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="UserOverridable" type="xs:boolean" use="required"/>
+    <xs:attribute name="Priority" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:int">
+          <xs:minInclusive value="1"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="ProtectionRuleConditionType">
+    <xs:choice minOccurs="1" maxOccurs="1">
+      <xs:element name="AllInternal" type="t:ProtectionRuleAllInternalType"/>
+      <xs:element name="And" type="t:ProtectionRuleAndType"/>
+      <xs:element name="RecipientIs" type="t:ProtectionRuleRecipientIsType"/>
+      <xs:element name="SenderDepartments" type="t:ProtectionRuleSenderDepartmentsType"/>
+      <xs:element name="True" type="t:ProtectionRuleTrueType"/>
+    </xs:choice>
+  </xs:complexType>
+  
+  <xs:complexType name="ProtectionRuleAndType">
+    <xs:sequence>
+      <xs:choice minOccurs="1" maxOccurs="unbounded">
+        <xs:element name="AllInternal" type="t:ProtectionRuleAllInternalType"/>
+        <xs:element name="And" type="t:ProtectionRuleAndType"/>
+        <xs:element name="RecipientIs" type="t:ProtectionRuleRecipientIsType"/>
+        <xs:element name="SenderDepartments" type="t:ProtectionRuleSenderDepartmentsType"/>
+        <xs:element name="True" type="t:ProtectionRuleTrueType"/>
+      </xs:choice>
+    </xs:sequence>
+  </xs:complexType>
+  
+  <xs:complexType name="ProtectionRuleRecipientIsType">
+    <xs:sequence>
+      <xs:element name="Value" type="t:ProtectionRuleValueType" minOccurs="1" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ProtectionRuleSenderDepartmentsType">
+    <xs:sequence>
+      <xs:element name="Value" type="t:ProtectionRuleValueType" minOccurs="1" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:simpleType name="ProtectionRuleTrueType">
+    <xs:restriction base="xs:string">
+      <xs:length value="0"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ProtectionRuleAllInternalType">
+    <xs:restriction base="xs:string">
+      <xs:length value="0"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ProtectionRuleValueType">
+    <xs:restriction base="xs:string">
+      <xs:minLength value="1"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ProtectionRuleActionKindType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="RightsProtectMessage"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="ProtectionRuleActionType">
+    <xs:sequence>
+      <xs:element name="Argument" type="t:ProtectionRuleArgumentType" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="Name" use="required" type="t:ProtectionRuleActionKindType"/>
+  </xs:complexType>
+
+  <xs:complexType name="ProtectionRuleArgumentType">
+    <xs:attribute name="Value" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:minLength value="1"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+  </xs:complexType>
+
+    <!-- MessageTracking -->
+    <xs:complexType name="FindMessageTrackingSearchResultType">
+        <xs:all>
+            <xs:element name="Subject" type="xs:string"/>
+            <xs:element name="Sender" type="t:EmailAddressType"/>
+            <xs:element name="PurportedSender" type="t:EmailAddressType"/>
+            <xs:element name="Recipients" type="t:ArrayOfRecipientsType"/>
+            <xs:element name="SubmittedTime" type="xs:dateTime"/>
+            <xs:element name="MessageTrackingReportId" type="t:NonEmptyStringType"/>
+            <xs:element name="PreviousHopServer" type="t:NonEmptyStringType" minOccurs="0"/>
+        </xs:all>
+    </xs:complexType>
+
+    <xs:complexType name="ArrayOfFindMessageTrackingSearchResultType">
+        <xs:choice minOccurs="0" maxOccurs="unbounded">
+            <xs:element name="MessageTrackingSearchResult" type="t:FindMessageTrackingSearchResultType"/>
+        </xs:choice>
+    </xs:complexType>
+
+    <xs:simpleType name="MessageTrackingDeliveryStatusType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="Unsuccessful"/>
+            <xs:enumeration value="Pending"/>
+            <xs:enumeration value="Delivered"/>
+            <xs:enumeration value="Transferred"/>
+            <xs:enumeration value="Read"/>
+        </xs:restriction>
+    </xs:simpleType>
+    
+    <xs:simpleType name="MessageTrackingEventDescriptionType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="Submitted"/>
+            <xs:enumeration value="Resolved"/>
+            <xs:enumeration value="Expanded"/>
+            <xs:enumeration value="Delivered"/>
+            <xs:enumeration value="MovedToFolderByInboxRule"/>
+            <xs:enumeration value="RulesCc"/>
+            <xs:enumeration value="FailedGeneral"/>
+            <xs:enumeration value="FailedModeration"/>
+            <xs:enumeration value="FailedTransportRules"/>
+            <xs:enumeration value="SmtpSend"/>
+            <xs:enumeration value="SmtpSendCrossSite"/>
+            <xs:enumeration value="SmtpSendCrossForest"/>
+            <xs:enumeration value="SmtpReceive"/>
+            <xs:enumeration value="Forwarded"/>
+            <xs:enumeration value="Pending"/>
+            <xs:enumeration value="PendingModeration"/>
+            <xs:enumeration value="ApprovedModeration"/>
+            <xs:enumeration value="QueueRetry"/>
+            <xs:enumeration value="QueueRetryNoRetryTime"/>
+            <xs:enumeration value="MessageDefer"/>
+            <xs:enumeration value="TransferredToForeignOrg"/>
+            <xs:enumeration value="TransferredToPartnerOrg"/>
+            <xs:enumeration value="TransferredToLegacyExchangeServer"/>
+            <xs:enumeration value="DelayedAfterTransferToPartnerOrg"/>
+            <xs:enumeration value="Read"/>
+            <xs:enumeration value="NotRead"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="MessageTrackingScopeType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="Organization"/>
+            <xs:enumeration value="Forest"/>
+            <xs:enumeration value="Site"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="MessageTrackingReportTemplateType">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="Summary"/>
+            <xs:enumeration value="RecipientPath"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:complexType name="RecipientTrackingEventType">
+        <xs:all>
+            <xs:element name="Date" type="xs:dateTime"/>
+            <xs:element name="Recipient" type="t:EmailAddressType"/>
+            <xs:element name="DeliveryStatus" type="t:MessageTrackingDeliveryStatusType"/>
+            <xs:element name="EventDescription" type="t:MessageTrackingEventDescriptionType"/>
+            <xs:element name="EventData" type="t:ArrayOfStringsType" minOccurs="0"/>
+            <xs:element name="Server" type="t:NonEmptyStringType"/>
+            <xs:element name="InternalId" type="xs:nonNegativeInteger"/>
+            <xs:element name="BccRecipient" type="xs:boolean" minOccurs="0"/>
+            <xs:element name="HiddenRecipient" type="xs:boolean" minOccurs="0"/>
+            <xs:element name="UniquePathId" type="t:NonEmptyStringType" minOccurs="0"/>
+        </xs:all>
+    </xs:complexType>
+
+    <xs:complexType name="MessageTrackingReportType">
+        <xs:all>
+            <xs:element name="Sender" type="t:EmailAddressType" minOccurs="0"/>
+            <xs:element name="PurportedSender" type="t:EmailAddressType" minOccurs="0"/>
+            <xs:element name="Subject" type="xs:string" minOccurs="0"/>
+            <xs:element name="SubmitTime" type="xs:dateTime" minOccurs="0"/>
+            <xs:element name="OriginalRecipients" type="t:ArrayOfEmailAddressesType" minOccurs="0"/>
+            <xs:element name="RecipientTrackingEvents" type="t:ArrayOfRecipientTrackingEventType"/>
+        </xs:all>
+    </xs:complexType>
+
+    <xs:complexType name="ArrayOfRecipientTrackingEventType">
+        <xs:choice minOccurs="0" maxOccurs="unbounded">
+            <xs:element name="RecipientTrackingEvent" type="t:RecipientTrackingEventType"/>
+        </xs:choice>
+    </xs:complexType>
+    
+</xs:schema>

Modified: trunk/exchangews/wsdlbindings/custom-binding.xml
===================================================================
--- trunk/exchangews/wsdlbindings/custom-binding.xml	2011-02-22 17:03:44 UTC (rev 6)
+++ trunk/exchangews/wsdlbindings/custom-binding.xml	2011-02-22 18:27:42 UTC (rev 7)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <bindings xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
-          wsdlLocation="../wssvc.wsdl"
+          wsdlLocation="../Services.wsdl"
           xmlns="http://java.sun.com/xml/ns/jaxws">
   <!-- Disable default wrapper style -->
   <enableWrapperStyle>false</enableWrapperStyle>



More information about the Bedework-commit mailing list