<?xml version="1.0" encoding="UTF-8"?>
<!--
	Reverse engineered MSN AddressBook webservice XML Schema
	Part: Data types (Pure data types)

	by Michaël Larouche <michael.larouche@kdemail.net>
	and Javier Kohen <javier.kohen@buddystream.com>
	Latest update: 27 July 2006
-->
<xsd:schema
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns="http://www.msn.com/webservices/AddressBook"
 xmlns:msnab="http://www.msn.com/webservices/AddressBook"
 targetNamespace="http://www.msn.com/webservices/AddressBook"
 version="1.0"
 elementFormDefault="qualified" >
	<xsd:annotation>
		<xsd:documentation>
			Copyright (c) 2006 Michaël Larouche &lt;michael.larouche@kdemail.net&gt;

			Permission to use, copy, modify and distribute this XML Schema
			and its accompanying documentation for any purpose and without fee
			is hereby granted in perpetuity, provided that the above copyright
			notice and this paragraph appear in all copies.  The copyright
			holders make no representation about the suitability of the XML Schema for
			any purpose. It is provided "as is" without expressed or implied
			warranty.

			This a reverse engineered XML Schema done for interopability purpose.
		</xsd:documentation>
	</xsd:annotation>
	<xsd:annotation>
		<xsd:documentation>
			This XML Schema expose the data types of the MSN AddressBook Web service
			used by Windows Live Messenger. Microsoft did not disclose the description of
			the web service so we are stuck reverse engineering it. This XML Schema along with the WSDL
			description will automate the generation of a WDSL binding to MSN AddressBook Web service.
		</xsd:documentation>
    </xsd:annotation>

	<xsd:complexType name="HandleType">
		<xsd:sequence>
			<xsd:element name="Id" type="xsd:integer" />
			<xsd:element name="Type" type="xsd:string" />
			<xsd:element name="ForeignId" type="xsd:string" /> <!-- Temp, find out the real type -->
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="ServiceType">
		<xsd:annotation>
			<xsd:documentation>
				Service list differents services which contain one or more Membership.
			</xsd:documentation>
		</xsd:annotation>

		<xsd:sequence>
			<xsd:element name="Memberships" minOccurs="0" maxOccurs="1">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Membership" type="msnab:Membership" minOccurs="0" maxOccurs="unbounded" />
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="Info">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Handle" type="HandleType" />
						<xsd:element name="DisplayName" minOccurs="0" type="xsd:string" />
						<xsd:element name="InverseRequired" type="xsd:boolean" />
						<xsd:element name="AuthorizationCriteria" type="xsd:string" />
						<xsd:element name="IsBot" type="xsd:boolean" />
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="Changes" type="xsd:string" /> <!-- Temp -->
			<xsd:element name="LastChange" type="xsd:dateTime" />
			<xsd:element name="Deleted" type="xsd:boolean" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="Membership">
		<xsd:annotation>
			<xsd:documentation>
				Membership is a list of members with a given role.
			</xsd:documentation>
		</xsd:annotation>

		<xsd:sequence>
			<xsd:element name="MemberRole" type="msnab:MemberRole" />
			<xsd:element name="Members">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Member" type="msnab:BaseMember" minOccurs="0" maxOccurs="unbounded" />
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>

	<!-- BaseMember(<Member>) Related to FindMembership SOAP method -->
	<xsd:complexType name="BaseMember">
		<xsd:annotation>
			<xsd:documentation>
				BaseMember is all the common fields between all types of Member.

				MembershipId: Unique Identifier for the member
				Type: Member type, see MemberType
				DisplayName: A friendly display name of the current member
				State: Current state of the member, see MemberState
				Deleted: If the member is deleted or not
				LastChanged: DateTime timestamp of the last change.
				Changes: unknown
			</xsd:documentation>
		</xsd:annotation>

		<xsd:sequence>
			<xsd:element name="MembershipId" type="xsd:positiveInteger" maxOccurs="1" minOccurs="0" />
			<xsd:element name="Type" type="msnab:MemberType" />
			<xsd:element name="DisplayName" type="xsd:string" maxOccurs="1" minOccurs="0" />
			<xsd:element name="State" type="msnab:MemberState" />
    		<xsd:element name="Annotations" maxOccurs="1" minOccurs="0">
    			<xsd:complexType>
    				<xsd:sequence>
    					<xsd:element name="Annotation" type="Annotation"
    						maxOccurs="unbounded" minOccurs="0">
    					</xsd:element>
    				</xsd:sequence>
    			</xsd:complexType>
    		</xsd:element>
			<xsd:element name="Deleted" type="xsd:boolean" maxOccurs="1" minOccurs="0" />
			<xsd:element name="LastChanged" type="xsd:dateTime" maxOccurs="1" minOccurs="0" />
			<xsd:element name="Changes" minOccurs="0" type="xsd:string" /> <!-- Temp -->
		</xsd:sequence>
	</xsd:complexType>

	<!-- PassportMember : BaseMember, Related to FindMembemship SOAP method -->
	<xsd:complexType name="PassportMember">
		<xsd:annotation>
			<xsd:documentation>
				PassportMember is the main Member type you encounter in FindMembershipResult message.
				It contain details for a passport member, which correspond to the old details in
				MSN's Allow, Block, Reverse and Pending list.

				PassportName: Passport username (example@passport.com)
				IsPassportNameHidden: Tell if PassportName should be hidden
				PassportId: Integer Passport identifier (need more info)
				CID: unknown
				PassportChanges: unknown
			</xsd:documentation>
		</xsd:annotation>

		<xsd:complexContent>
			<xsd:extension base="msnab:BaseMember">
				<xsd:sequence>
					<xsd:element name="PassportName" type="xsd:string" />
					<xsd:element name="IsPassportNameHidden" type="xsd:boolean" maxOccurs="1" minOccurs="0" />
					<xsd:element name="PassportId" type="xsd:integer" maxOccurs="1" minOccurs="0" />
					<xsd:element name="CID" type="xsd:integer" maxOccurs="1" minOccurs="0" />
					<xsd:element name="PassportChanges" type="xsd:string" maxOccurs="1" minOccurs="0" /> <!--  Temp -->
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<!-- RoleMember : BaseMember, Related to FindMembership SOAP method -->
	<xsd:complexType name="RoleMember">
		<xsd:annotation>
			<xsd:documentation>
				RoleMember's role is unknown for the moment.
			</xsd:documentation>
		</xsd:annotation>

		<xsd:complexContent>
			<xsd:extension base="msnab:BaseMember">
				<xsd:sequence>
					<xsd:element name="Id" type="xsd:string" />
					<xsd:element name="DefiningService">
						<xsd:complexType>
							<xsd:sequence>
								<xsd:element name="Id" type="xsd:integer" />
								<xsd:element name="Type" type="xsd:string" />
								<xsd:element name="ForeignId" type="xsd:string" />
							</xsd:sequence>
						</xsd:complexType>
					</xsd:element>
					<xsd:element name="MaxRoleRecursionDepth" type="xsd:integer" />
					<xsd:element name="MaxDegreesSeparation" type="xsd:integer" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<!-- EveryoneMember : BaseMember, Related to FindMembership SOAP method -->
	<xsd:complexType name="EveryoneMember">
		<xsd:annotation>
			<xsd:documentation>
				EveryoneMember's role is unknown for the moment
			</xsd:documentation>
		</xsd:annotation>

		<xsd:complexContent>
			<xsd:extension base="msnab:BaseMember">
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<!-- EmailMember : BaseMember, Related to FindMembemship SOAP method -->
	<xsd:complexType name="EmailMember">
		<xsd:annotation>
			<xsd:documentation>
				EmailMember is the main Member type you encounter in FindMembershipResult message.
			</xsd:documentation>
		</xsd:annotation>

		<xsd:complexContent>
			<xsd:extension base="msnab:BaseMember">
				<xsd:sequence>
					<xsd:element name="Email" type="xsd:string" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:simpleType name="Guid">
		<xsd:annotation>
			<xsd:documentation>
				Guid is a string that reprensent a global unique identifier. Used by Microsoft to identify unique items.
			</xsd:documentation>
		</xsd:annotation>

			<xsd:restriction base="xsd:string">
				<xsd: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}" />
			</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="MemberRole">
		<xsd:annotation>
			<xsd:documentation>
				MemberRole determine the type(or the nature) of a membership.

				Allow: Equivalent to the old MSN Allow list
				Block: Equivalent to the old MSN Block list
				Reverse: Equivalent to the old MSN Reverse list
				Pending: Equivalent to the old MSN Pending list
				Contributor: Unknown
				ProfileGeneral: Unknown
				ProfilePersonalContact: Unknown
				ProfileProfessionalContact: Unknown
				ProfileSocial: Unknown
			</xsd:documentation>
		</xsd:annotation>

		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="Allow" />
			<xsd:enumeration value="Block" />
			<xsd:enumeration value="Reverse" />
			<xsd:enumeration value="Pending" />
			<xsd:enumeration value="Contributor" />
			<xsd:enumeration value="ProfileGeneral" />
			<xsd:enumeration value="ProfilePersonalContact" />
			<xsd:enumeration value="ProfileProfessionalContact" />
			<xsd:enumeration value="ProfileSocial" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="MemberType">
		<xsd:annotation>
			<xsd:documentation>
				MemberType is a sibling of Member to determine the member type, even if xsi:type is used.
				It put a restriction of the value you put into it.
			</xsd:documentation>
		</xsd:annotation>

		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="Passport" />
			<xsd:enumeration value="Role" />
			<xsd:enumeration value="Everyone" />
			<xsd:enumeration value="Email" />
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="MemberState">
		<xsd:annotation>
			<xsd:documentation>
				MemberState is the current state of a Member.

				Accepted: member is accepted, obviously.
			</xsd:documentation>
		</xsd:annotation>

		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="Accepted" />
		</xsd:restriction>
	</xsd:simpleType>


    <xsd:complexType name="Annotation">
    	<xsd:sequence>
    		<xsd:element name="Name" type="xsd:string" maxOccurs="1" minOccurs="1"/>
    		<xsd:element name="Value" type="xsd:string" maxOccurs="1" minOccurs="0"/>
    	</xsd:sequence></xsd:complexType>

    <xsd:complexType name="ContactType">
    	<xsd:sequence>
    		<xsd:element name="contactId" type="Guid" maxOccurs="1" minOccurs="0" />
    		<xsd:element name="contactInfo" type="contactInfoType" maxOccurs="1" minOccurs="0" />
    		<xsd:element name="propertiesChanged" type="xsd:string" maxOccurs="1" minOccurs="0">
    			<xsd:annotation>
    				<xsd:documentation>
    					A space (ASCII #32) separated list of properties that
    					have changed as part of an update request. The property
    					names don't always match the name of the associated
    					element.
    				</xsd:documentation>
    			</xsd:annotation>
    		</xsd:element>
    		<xsd:element name="fDeleted" type="xsd:boolean" maxOccurs="1" minOccurs="0"></xsd:element>
    		<xsd:element name="lastChange" type="xsd:dateTime" maxOccurs="1" minOccurs="0"></xsd:element>
    	</xsd:sequence></xsd:complexType>

    <xsd:complexType name="contactInfoType">
    	<xsd:sequence>
    		<xsd:element name="emails" maxOccurs="1" minOccurs="0">
    			<xsd:complexType>
    				<xsd:sequence>
    					<xsd:element name="ContactEmail" type="contactEmailType"
    						maxOccurs="unbounded" minOccurs="1"/>
    				</xsd:sequence>
    			</xsd:complexType>
    		</xsd:element>
    		<xsd:element name="phones" maxOccurs="1" minOccurs="0">
    			<xsd:complexType>
    				<xsd:sequence>
    					<xsd:element name="ContactPhone" type="contactPhoneType"
    						maxOccurs="unbounded" minOccurs="1"/>
    				</xsd:sequence>
    			</xsd:complexType>
    		</xsd:element>
    		<xsd:element name="locations" maxOccurs="1" minOccurs="0">
    			<xsd:complexType>
    				<xsd:sequence>
    					<xsd:element name="ContactLocation" type="contactLocationType"
    						maxOccurs="unbounded" minOccurs="1"/>
    				</xsd:sequence>
    			</xsd:complexType>
    		</xsd:element>
    		<xsd:element name="webSites" maxOccurs="1" minOccurs="0">
    			<xsd:complexType>
    				<xsd:sequence>
    					<xsd:element name="ContactWebSite" type="contactWebSiteType"
    						maxOccurs="unbounded" minOccurs="1"/>
    				</xsd:sequence>
    			</xsd:complexType>
    		</xsd:element>
    		<xsd:element name="annotations" maxOccurs="1" minOccurs="0">
    			<xsd:complexType>
    				<xsd:sequence>
    					<xsd:element name="Annotation" type="Annotation"
    						maxOccurs="unbounded" minOccurs="1"/>
    				</xsd:sequence>
    			</xsd:complexType>
    		</xsd:element>
    		<xsd:element name="groupIds" maxOccurs="1" minOccurs="0">
    			<xsd:complexType>
    				<xsd:sequence>
    					<xsd:element name="guid" type="Guid"
    						maxOccurs="unbounded" minOccurs="1"/>
    				</xsd:sequence>
    			</xsd:complexType>
    		</xsd:element>
    		<xsd:element name="groupIdsDeleted" maxOccurs="1" minOccurs="0">
    			<xsd:complexType>
    				<xsd:sequence>
    					<xsd:element name="guid" type="Guid"
    						maxOccurs="unbounded" minOccurs="1"/>
    				</xsd:sequence>
    			</xsd:complexType>
    		</xsd:element>
    		<xsd:element name="contactType" maxOccurs="1" minOccurs="0">
    			<xsd:simpleType>
    				<xsd:restriction base="xsd:string">
    					<xsd:enumeration value="Me"></xsd:enumeration>
    					<xsd:enumeration value="Regular"></xsd:enumeration>
    					<xsd:enumeration value="Messenger"></xsd:enumeration>
    				</xsd:restriction>
    			</xsd:simpleType>
    		</xsd:element>
    		<xsd:element name="quickName" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
    		<xsd:element name="firstName" type="xsd:string" maxOccurs="1" minOccurs="0"/>
    		<xsd:element name="MiddleName" type="xsd:string" maxOccurs="1" minOccurs="0"/>
    		<xsd:element name="lastName" type="xsd:string" maxOccurs="1" minOccurs="0"/>
    		<xsd:element name="passportName" type="xsd:string" maxOccurs="1" minOccurs="0" />
    		<xsd:element name="IsPassportNameHidden"
    			type="xsd:boolean" maxOccurs="1" minOccurs="0">
    		</xsd:element>
    		<xsd:element name="displayName" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
    		<xsd:element name="puid" type="xsd:integer" maxOccurs="1" minOccurs="0"></xsd:element>
    		<xsd:element name="CID" type="xsd:integer" maxOccurs="1" minOccurs="0"></xsd:element>
    		<xsd:element name="comment" type="xsd:string" maxOccurs="1" minOccurs="0"/>
    		<xsd:element name="IsNotMobileVisible" type="xsd:boolean" maxOccurs="1" minOccurs="0"></xsd:element>
    		<xsd:element name="isMobileIMEnabled" type="xsd:boolean" maxOccurs="1" minOccurs="0"/>
    		<xsd:element name="isMessengerUser" type="xsd:boolean" maxOccurs="1" minOccurs="0"/>
    		<xsd:element name="isFavorite" type="xsd:boolean" maxOccurs="1" minOccurs="0"/>
    		<xsd:element name="isSmtp" type="xsd:boolean" maxOccurs="1" minOccurs="0"/>
    		<xsd:element name="hasSpace" type="xsd:boolean" maxOccurs="1" minOccurs="0">
    			<xsd:annotation>
    				<xsd:documentation>
    					Indicates whether the contact has a Windows Live
    					Space or not.
    				</xsd:documentation>
    			</xsd:annotation>
    		</xsd:element>
    		<xsd:element name="spotWatchState" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
    		<xsd:element name="birthdate" type="xsd:dateTime" maxOccurs="1" minOccurs="0"></xsd:element>
    		<xsd:element name="primaryEmailType" type="ContactEmailTypeType" maxOccurs="1" minOccurs="0"/>
    		<xsd:element name="PrimaryLocation" type="ContactLocationTypeType" maxOccurs="1" minOccurs="0"/>
    		<xsd:element name="PrimaryPhone" type="ContactPhoneTypeType" maxOccurs="1" minOccurs="0"/>
    		<xsd:element name="IsPrivate" type="xsd:boolean" maxOccurs="1" minOccurs="0"></xsd:element>
    		<xsd:element name="Anniversary" type="xsd:string" maxOccurs="1" minOccurs="0">
    			<xsd:annotation>
    				<xsd:documentation>
    					Seen is YYYY/MM/DD format.
    				</xsd:documentation>
    			</xsd:annotation>
    		</xsd:element>
    		<xsd:element name="Gender" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
    		<xsd:element name="TimeZone" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
    	</xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="contactEmailType">
    	<xsd:sequence>
    		<xsd:element name="contactEmailType" type="ContactEmailTypeType"/>
    		<xsd:element name="email" type="xsd:string"/>
    		<xsd:element name="IsMessengerEnabled" type="xsd:boolean"/>
    		<xsd:element name="Capability" type="xsd:integer"/>
    		<xsd:element name="MessengerEnabledExternally" type="xsd:boolean"/>
    		<xsd:element name="propertiesChanged" type="xsd:string"/>
   		</xsd:sequence>
    </xsd:complexType>

	<xsd:simpleType name="ContactEmailTypeType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="ContactEmailPersonal" />
			<xsd:enumeration value="ContactEmailBusiness" />
			<xsd:enumeration value="ContactEmailOther" />
			<xsd:enumeration value="ContactEmailMessenger" />
			<xsd:enumeration value="Messenger2" />
		</xsd:restriction>
	</xsd:simpleType>

    <xsd:complexType name="contactPhoneType">
    	<xsd:sequence>
    		<xsd:element name="contactPhoneType" type="ContactPhoneTypeType"/>
    		<xsd:element name="number" type="xsd:string"/>
    		<xsd:element name="IsMessengerEnabled" type="xsd:boolean"/>
    		<xsd:element name="propertiesChanged" type="xsd:string"/>
   		</xsd:sequence>
    </xsd:complexType>

	<xsd:simpleType name="ContactPhoneTypeType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="ContactPhonePersonal" />
			<xsd:enumeration value="ContactPhoneBusiness" />
			<xsd:enumeration value="ContactPhonePager" />
			<xsd:enumeration value="ContactPhoneOther" />
			<xsd:enumeration value="BusinessFax" />
		</xsd:restriction>
	</xsd:simpleType>

    <xsd:complexType name="contactLocationType">
    	<xsd:sequence>
    		<xsd:element name="contactLocationType" type="ContactLocationTypeType"/>
    		<xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="0"/>
    		<xsd:element name="street" type="xsd:string"/>
    		<xsd:element name="city" type="xsd:string"/>
    		<xsd:element name="state" type="xsd:string"/>
    		<xsd:element name="country" type="xsd:string"/>
    		<xsd:element name="postalCode" type="xsd:string"/>
    		<xsd:element name="Changes" type="xsd:string"/>
   		</xsd:sequence>
    </xsd:complexType>

	<xsd:simpleType name="ContactLocationTypeType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="ContactLocationPersonal" />
			<xsd:enumeration value="ContactLocationBusiness" />
		</xsd:restriction>
	</xsd:simpleType>

    <xsd:complexType name="contactWebSiteType">
    	<xsd:sequence>
    		<xsd:element name="contactWebSiteType" type="ContactWebSiteTypeType"/>
    		<xsd:element name="webURL" type="xsd:string"/>
   		</xsd:sequence>
    </xsd:complexType>

	<xsd:simpleType name="ContactWebSiteTypeType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="ContactWebSitePersonal" />
			<xsd:enumeration value="ContactWebSiteBusiness" />
		</xsd:restriction>
	</xsd:simpleType>

    <xsd:complexType name="GroupType">
       	<xsd:sequence>
    		<xsd:element name="groupId" type="Guid"></xsd:element>
    		<xsd:element name="groupInfo" type="groupInfoType"></xsd:element>
    		<xsd:element name="propertiesChanged" type="xsd:string">
    			<xsd:annotation>
    				<xsd:documentation>
    					A space (ASCII #32) separated list of properties that
    					have changed as part of an update request. The property
    					names don't always match the name of the associated
    					element.
    				</xsd:documentation>
    			</xsd:annotation>
    		</xsd:element>
    		<xsd:element name="fDeleted" type="xsd:boolean" maxOccurs="1" minOccurs="0" />
    		<xsd:element name="lastChange" type="xsd:dateTime" maxOccurs="1" minOccurs="0" />
    	</xsd:sequence></xsd:complexType>

    <xsd:complexType name="groupInfoType">
    	<xsd:sequence>
    		<xsd:element name="annotations" maxOccurs="1" minOccurs="0">
    			<xsd:complexType>
    				<xsd:sequence>
    					<xsd:element name="Annotation" type="Annotation"
    						maxOccurs="unbounded" minOccurs="0">
    					</xsd:element>
    				</xsd:sequence>
    			</xsd:complexType>
    		</xsd:element>
    		<xsd:element name="groupType" type="Guid" maxOccurs="1" minOccurs="0" />
    		<xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="0" />
    		<xsd:element name="IsNotMobileVisible" type="xsd:boolean" maxOccurs="1" minOccurs="0" />
    		<xsd:element name="IsPrivate" type="xsd:boolean" maxOccurs="1" minOccurs="0" />
    		<xsd:element name="fMessenger" type="xsd:boolean" maxOccurs="1" minOccurs="0" />
    	</xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="groupFilterType">
    	<xsd:sequence>
    		<xsd:element name="groupIds">
    			<xsd:complexType>
    				<xsd:sequence>
    					<xsd:element name="guid" type="Guid" maxOccurs="unbounded" minOccurs="0" />
    				</xsd:sequence>
    			</xsd:complexType>
    		</xsd:element>
    	</xsd:sequence>
    </xsd:complexType>

	<xsd:element name="InvalidPassportUser">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="errorcode" type="xsd:string"/>
				<xsd:element name="errorstring" type="xsd:string"/>
				<xsd:element name="additionalDetails">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="originalExceptionErrorMessage" type="xsd:string"/>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>
