<?xml version=“1.0” encoding=“UTF-8”?> <!– edited with XMLSpy v2010 rel. 2 (www.altova.com) by Roy (VeriSign Inc.) –> <xs:schema xmlns=“schemas.symantec.com/vip/2011/04/vipuserservices” xmlns:xs=“www.w3.org/2001/XMLSchema” targetNamespace=“schemas.symantec.com/vip/2011/04/vipuserservices” elementFormDefault=“qualified” attributeFormDefault=“unqualified”>

     <xs:complexType name="BaseRequestType" abstract="true">
             <xs:annotation>
                     <xs:documentation>Acts as the base type for all the requests.</xs:documentation>
             </xs:annotation>
             <xs:sequence>
                     <xs:element name="requestId" type="RequestIdType"/>
             </xs:sequence>
     </xs:complexType>
     <xs:complexType name="BaseRequestWithAccountIdType" abstract="true">
             <xs:annotation>
                     <xs:documentation>Acts as the base type for all the requests that are sent on behalf of another account ID. In such cases,
                     the sender will either be a super admin or a parent of the onBehalfOfAccountId.</xs:documentation>
             </xs:annotation>
             <xs:complexContent>
                     <xs:extension base="BaseRequestType">
                             <xs:sequence>
                                     <xs:element name="onBehalfOfAccountId" type="AccountIdType" minOccurs="0"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:complexType name="BaseResponseType" abstract="true">
             <xs:annotation>
                     <xs:documentation>Acts as the base type for all the responses.</xs:documentation>
             </xs:annotation>
             <xs:sequence>
                     <xs:element name="requestId" type="RequestIdType"/>
                     <xs:element name="status" type="xs:hexBinary"/>
                     <xs:element name="statusMessage" type="xs:string"/>
                     <xs:element name="detail" type="xs:hexBinary" minOccurs="0"/>
                     <xs:element name="detailMessage" type="xs:string" minOccurs="0"/>
             </xs:sequence>
     </xs:complexType>
     <xs:element name="GetServerTimeRequest" type="GetServerTimeRequestType"/>
     <xs:complexType name="GetServerTimeRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType"/>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="GetServerTimeResponse" type="GetServerTimeResponseType"/>
     <xs:complexType name="GetServerTimeResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">
                             <xs:sequence minOccurs="0">
                                     <xs:element name="timestamp" type="xs:dateTime" minOccurs="0"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="CreateUserRequest" type="CreateUserRequestType"/>
     <xs:complexType name="CreateUserRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                                     <xs:element name="pin" type="PinType" minOccurs="0"/>                                           
                                     <xs:element name="forcePinChange" type="xs:boolean" minOccurs="0"/>                             
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="CreateUserResponse" type="CreateUserResponseType"/>
     <xs:complexType name="CreateUserResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType"/>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="UpdateUserRequest" type="UpdateUserRequestType"/>
     <xs:complexType name="UpdateUserRequestType" abstract="false">
             <xs:annotation>
                     <xs:documentation>
                             This request object can be used to rename the user.
                     </xs:documentation>
             </xs:annotation>
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                                     <xs:element name="newUserId" type="UserIdType" minOccurs="0"/>
                                     <xs:element name="newUserStatus" type="UserStatusEnum" minOccurs="0"/>
                                     <xs:element name="oldPin" type="PinType" minOccurs="0"/>                                
                                     <xs:element name="newPin" type="PinType" minOccurs="0"/>
                                     <xs:element name="forcePinChange" type="xs:boolean" minOccurs="0"/>                                                                             
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="UpdateUserResponse" type="UpdateUserResponseType"/>
     <xs:complexType name="UpdateUserResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType"/>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="DeleteUserRequest" type="DeleteUserRequestType"/>
     <xs:complexType name="DeleteUserRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="DeleteUserResponse" type="DeleteUserResponseType"/>
     <xs:complexType name="DeleteUserResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType"/>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="ClearUserPinRequest" type="ClearUserPinRequestType"/>
     <xs:complexType name="ClearUserPinRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="ClearUserPinResponse" type="ClearUserPinResponseType"/>
     <xs:complexType name="ClearUserPinResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType"/>
             </xs:complexContent>
     </xs:complexType>       
     <xs:element name="AddCredentialRequest" type="AddCredentialRequestType"/>
     <xs:complexType name="AddCredentialRequestType" abstract="false">
             <xs:annotation>
                     <xs:documentation> 
                             Request for adding a credential under a user. 
                     </xs:documentation>
             </xs:annotation>
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                                     <xs:element name="credentialDetail" type="CredentialDetailType"/>
                                     <xs:choice id="addCredAuthDataTypeChoice" minOccurs="0">
                                             <xs:element name="otpAuthData" type="OtpAuthDataType"/>
                                     </xs:choice>
                                     <xs:element name="trustedDevice" type="xs:boolean" minOccurs="0"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="AddCredentialResponse" type="AddCredentialResponseType"/>
     <xs:complexType name="AddCredentialResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType"/>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="UpdateCredentialRequest" type="UpdateCredentialRequestType"/>
     <xs:complexType name="UpdateCredentialRequestType" abstract="false">
             <xs:annotation>
                     <xs:documentation> To update credential's friendly name.
                     </xs:documentation>
             </xs:annotation>
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                                     <xs:element name="credentialId" type="CredentialIdType"/>
                                     <xs:element name="credentialType" type="CredentialTypeEnum"/>
                                     <xs:element name="friendlyName" type="FriendlyNameType" />
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="UpdateCredentialResponse" type="UpdateCredentialResponseType"/>
     <xs:complexType name="UpdateCredentialResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType"/>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="RemoveCredentialRequest" type="RemoveCredentialRequestType"/>
     <xs:complexType name="RemoveCredentialRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                                     <xs:element name="credentialId" type="CredentialIdType"/>
                                     <xs:element name="credentialType" type="CredentialTypeEnum"/>
                                     <xs:element name="trustedDevice" type="xs:boolean" minOccurs="0"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="RemoveCredentialResponse" type="RemoveCredentialResponseType"/>
     <xs:complexType name="RemoveCredentialResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType"/>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="GetUserInfoRequest" type="GetUserInfoRequestType"/>
     <xs:complexType name="GetUserInfoRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType" />
                                     <xs:element name="iaInfo" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true"></xs:element>
                                     <xs:element name="includePushAttributes" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true"></xs:element>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="GetUserInfoResponse" type="GetUserInfoResponseType"/>
     <xs:complexType name="GetUserInfoResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">
                             <xs:sequence minOccurs="0">
                                     <xs:element name="userId" type="UserIdType" minOccurs="0"/>
                                     <xs:element name="userCreationTime" type="xs:dateTime" minOccurs="0"/>
                                     <xs:element name="userStatus" type="UserStatusEnum" minOccurs="0"/>
                                     <xs:element name="numBindings" type="xs:integer" minOccurs="0"/>
                                     <xs:element name="credentialBindingDetail" type="CredentialBindingDetailType" minOccurs="0" maxOccurs="unbounded"/>
                                     <xs:element name="isPinSet" type="xs:boolean" minOccurs="0"/>           
                                     <xs:element name="isTempPasswordSet" type="xs:boolean" minOccurs="0"/>          
                                     <xs:element name="pinExpirationTime" type="xs:dateTime" minOccurs="0"/>                                 
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="GetCredentialInfoRequest" type="GetCredentialInfoRequestType"/>
     <xs:complexType name="GetCredentialInfoRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="credentialId" type="CredentialIdType"/>
                                     <xs:element name="credentialType" type="CredentialTypeEnum"/>
                                     <xs:element name="includePushAttributes" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true"></xs:element>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="GetCredentialInfoResponse" type="GetCredentialInfoResponseType"/>
     <xs:complexType name="GetCredentialInfoResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">
                             <xs:sequence minOccurs="0">
                                     <xs:element name="credentialId" type="CredentialIdType" minOccurs="0"/>
                                     <xs:element name="credentialType" type="CredentialTypeEnum" minOccurs="0"/>
                                     <xs:element name="credentialStatus" type="CredentialStatusType" minOccurs="0"/>
                                     <xs:element name="numBindings" type="xs:integer" minOccurs="0"/>
                                     <xs:element name="pushAttributes" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
                                     <xs:element name="userBindingDetail" type="UserBindingDetailType" minOccurs="0" maxOccurs="unbounded"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="AuthenticateUserRequest" type="AuthenticateUserRequestType"/>
     <xs:complexType name="AuthenticateUserRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                                     <xs:element name="pin" type="PinType" minOccurs="0"/>                                           
                                     <xs:choice id="authUserAuthDataTypeChoice" minOccurs="0">
                                             <xs:element name="otpAuthData" type="OtpAuthDataType" minOccurs="0"/>
                                     </xs:choice>
                                     <xs:element name="authContext" type="AuthContext" minOccurs="0" />
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="AuthenticateUserResponse" type="AuthenticateUserResponseType"/>
     <xs:complexType name="AuthenticateUserResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">
                             <xs:sequence minOccurs="0">
                                     <xs:element name="credentialId" type="CredentialIdType" minOccurs="0"/>
                                     <xs:element name="credentialType" type="CredentialTypeEnum" minOccurs="0"/>
                                     <xs:element name="authnId" type="AuthnIdType" minOccurs="0"/>
                                     <xs:element name="isPinExpired" type="xs:boolean" minOccurs="0"/>
                                     <xs:element name="pinExpirationTime" type="xs:dateTime" minOccurs="0"/>
                                     <xs:element name="authContext" type="AuthContext" minOccurs="0" />
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="SetTemporaryPasswordRequest" type="SetTemporaryPasswordRequestType"/>
     <xs:complexType name="SetTemporaryPasswordRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                                     <xs:element name="temporaryPassword" type="TemporaryPasswordType" minOccurs="0"/>
                                     <xs:element name="temporaryPasswordAttributes" type="TemporaryPasswordAttributesType" minOccurs="0"/>
                                     <xs:choice id="deliveryInfoChoice" minOccurs="0">
                                             <xs:element name="smsDeliveryInfo" type="SmsDeliveryInfoType" minOccurs="0"/>
                                             <xs:element name="voiceDeliveryInfo" type="VoiceDeliveryInfoType" minOccurs="0"/>
                                     </xs:choice>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="SetTemporaryPasswordResponse" type="SetTemporaryPasswordResponseType"/>
     <xs:complexType name="SetTemporaryPasswordResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">
                             <xs:sequence>
                                     <xs:element name="temporaryPassword" type="TemporaryPasswordType" minOccurs="0"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="ClearTemporaryPasswordRequest" type="ClearTemporaryPasswordRequestType"/>
     <xs:complexType name="ClearTemporaryPasswordRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="ClearTemporaryPasswordResponse" type="ClearTemporaryPasswordResponseType"/>
     <xs:complexType name="ClearTemporaryPasswordResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType"/>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="SetTemporaryPasswordAttributesRequest" type="SetTemporaryPasswordAttributesRequestType"/>
     <xs:complexType name="SetTemporaryPasswordAttributesRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                                     <xs:element name="temporaryPasswordAttributes" type="TemporaryPasswordAttributesType"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="SetTemporaryPasswordAttributesResponse" type="SetTemporaryPasswordAttributesResponseType"/>
     <xs:complexType name="SetTemporaryPasswordAttributesResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType"/>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="GetTemporaryPasswordAttributesRequest" type="GetTemporaryPasswordAttributesRequestType"/>
     <xs:complexType name="GetTemporaryPasswordAttributesRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="GetTemporaryPasswordAttributesResponse" type="GetTemporaryPasswordAttributesResponseType"/>
     <xs:complexType name="GetTemporaryPasswordAttributesResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">
                             <xs:sequence>
                                     <xs:element name="tempPwdAttributes" type="TemporaryPasswordAttributesType" minOccurs="0"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="SendOtpRequest" type="SendOtpRequestType"/>
     <xs:complexType name="SendOtpRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                                     <xs:choice minOccurs="0">
                                             <xs:element name="smsDeliveryInfo" type="SmsDeliveryInfoType" minOccurs="0"/>
                                             <xs:element name="voiceDeliveryInfo" type="VoiceDeliveryInfoType" minOccurs="0"/>
                                     </xs:choice>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="SendOtpResponse" type="SendOtpResponseType"/>
     <xs:complexType name="SendOtpResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType"/>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="RegisterRequest" type="RegisterRequestType"/>
     <xs:complexType name="RegisterRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:choice>                     
                                             <xs:element name="smsDeliveryInfo" type="SmsDeliveryInfoType"/>
                                             <xs:element name="voiceDeliveryInfo" type="VoiceDeliveryInfoType"/>
                                             <xs:element name="serviceOtpDeliveryInfo" type="ServiceOtpDeliveryInfoType"/>                                           
                                     </xs:choice>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="RegisterResponse" type="RegisterResponseType"/>
     <xs:complexType name="RegisterResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">
                             <xs:sequence>
                                     <xs:element name="otp" type="OtpType" minOccurs="0"/>
                             </xs:sequence>  
                     </xs:extension>         
             </xs:complexContent>
     </xs:complexType>       

     <!-- ============================= -->
     <!-- IntAuth related types         -->
     <!-- ============================= -->

     <xs:element name="EvaluateRiskRequest" type="EvaluateRiskRequestType"/> 
 <xs:complexType name="EvaluateRiskRequestType" abstract="false">  
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">                
                     <xs:sequence>        
                         <xs:element name="UserId" type="UserIdType" />
                         <xs:element name="Ip" type="IpAddressType" />
                         <xs:element name="UserAgent" type="UserAgentType" />
                         <xs:element name="IAAuthData" type="IAAuthDataType" minOccurs="0" />
                         <xs:element name="KeyValuePairs" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
                     </xs:sequence>
                     </xs:extension>
             </xs:complexContent>                    
 </xs:complexType>  
     <xs:element name="EvaluateRiskResponse" type="EvaluateRiskResponseType"/>    
 <xs:complexType name="EvaluateRiskResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">                    
                     <xs:sequence>
                         <xs:element name="Risky" type="xs:boolean" minOccurs="0" />
                         <xs:element name="RiskScore" type="RiskScoreType" minOccurs="0" />
                         <xs:element name="RiskThreshold" type="RiskScoreType" minOccurs="0" />
                         <xs:element name="RiskReason" type="xs:string" minOccurs="0" />
                         <xs:element name="PolicyVersion" type="xs:string" minOccurs="0" />
                         <xs:element name="EventId" type="EventIdType" minOccurs="0" />
                         <xs:element name="KeyValuePairs" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
                     </xs:sequence>
                     </xs:extension>
             </xs:complexContent>                                    
 </xs:complexType>

     <xs:element name="ConfirmRiskRequest" type="ConfirmRiskRequestType"/>       
 <xs:complexType name="ConfirmRiskRequestType" abstract="false">  
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">                                   
                     <xs:sequence>  
                         <xs:element name="UserId" type="UserIdType" />
                         <xs:element name="EventId" type="EventIdType" /> 
                         <xs:element name="VerifyMethod" type="VerifyMethodType" minOccurs="0" />
                         <xs:element name="KeyValuePairs" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
                     </xs:sequence>
                     </xs:extension>
             </xs:complexContent>                            
 </xs:complexType> 
     <xs:element name="ConfirmRiskResponse" type="ConfirmRiskResponseType"/>    
 <xs:complexType name="ConfirmRiskResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">     
                     <xs:sequence>                  
                         <xs:element name="KeyValuePairs" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
                     </xs:sequence>
                     </xs:extension>
             </xs:complexContent>            
 </xs:complexType> 
     <xs:element name="DenyRiskRequest" type="DenyRiskRequestType"/>     
 <xs:complexType name="DenyRiskRequestType" abstract="false">   
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">                    
             <xs:sequence>       
                 <xs:element name="UserId" type="UserIdType" />
                 <xs:element name="EventId" type="EventIdType" />
                 <xs:element name="VerifyMethod" type="VerifyMethodType"  minOccurs="0" />
                 <xs:element name="IAAuthData" type="IAAuthDataType"  minOccurs="0" />
                 <xs:element name="RememberDevice" type="xs:boolean"  minOccurs="0" />
                             <xs:element name="FriendlyName" type="FriendlyNameType" minOccurs="0" />
                 <xs:element name="KeyValuePairs" type="KeyValuePairType"  minOccurs="0" maxOccurs="20" />
             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>                    
 </xs:complexType>  
     <xs:element name="DenyRiskResponse" type="DenyRiskResponseType"/>    
 <xs:complexType name="DenyRiskResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">         
                     <xs:sequence>                  
                         <xs:element name="KeyValuePairs" type="KeyValuePairType"  minOccurs="0" maxOccurs="20" />
                     </xs:sequence>
                     </xs:extension>
             </xs:complexContent>                            
 </xs:complexType>       
     <xs:complexType name="KeyValuePairType">
     <xs:sequence>
         <xs:element name="Key" type="KeyType"> </xs:element>
         <xs:element name="Value" type="ValueType"></xs:element>
     </xs:sequence>
 </xs:complexType>    

 <xs:simpleType name="KeyType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="1"/>
                     <xs:maxLength value="125"/>
             </xs:restriction>
     </xs:simpleType>                
     <xs:simpleType name="ValueType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="0"/>
                     <xs:maxLength value="250"/>
             </xs:restriction>
     </xs:simpleType>        

     <!-- ============================= -->
     <!-- COMMON TYPES                  -->
     <!-- ============================= -->
     <xs:simpleType name="RequestIdType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="4"/>
                     <xs:maxLength value="40"/>
                     <xs:pattern value="[0-9A-Za-z_]+"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:simpleType name="AccountIdType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="3"/>
                     <xs:maxLength value="50"/>
                     <xs:pattern value="[0-9A-Za-z]+"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:simpleType name="UserIdType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="1"/>
                     <xs:maxLength value="128"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:simpleType name="CredentialIdType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="4"/>
                     <xs:maxLength value="100"/>
                     <xs:pattern value="[0-9A-Za-z,#.*]+"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:simpleType name="CredentialTypeEnum">
             <xs:restriction base="xs:string">
                     <xs:enumeration value="STANDARD_OTP"/>
                     <xs:enumeration value="SMS_OTP"/>
                     <xs:enumeration value="VOICE_OTP"/>
                     <xs:enumeration value="SERVICE_OTP"/>
                     <xs:enumeration value="CERTIFICATE"/>
                     <xs:enumeration value="IA"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:simpleType name="UserStatusEnum">
             <xs:restriction base="xs:string">
                     <xs:enumeration value="ACTIVE"/>
                     <xs:enumeration value="DISABLED"/>
                     <xs:enumeration value="LOCKED"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:simpleType name="BindStatusEnum">
             <xs:restriction base="xs:string">
                     <xs:enumeration value="ENABLED"/>
                     <xs:enumeration value="DISABLED"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:simpleType name="CredentialStatusType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="1"/>
                     <xs:maxLength value="50"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:simpleType name="FriendlyNameType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="1"/>
                     <xs:maxLength value="125"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:simpleType name="ClientVersionType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="1"/>
                     <xs:maxLength value="10"/>
                     <xs:pattern value="[0-9.]+"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:simpleType name="ClientTypeType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="1"/>
                     <xs:maxLength value="20"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:complexType name="CredentialDetailType">
             <xs:sequence>
                     <xs:element name="credentialId" type="CredentialIdType"/>
                     <xs:element name="credentialType" type="CredentialTypeEnum"/>
                     <xs:element name="friendlyName" type="FriendlyNameType" minOccurs="0"/>
                     <xs:element name="trustedDevice" type="xs:boolean" minOccurs="0"/>
             </xs:sequence>
     </xs:complexType>
     <xs:complexType name="BindingDetailType">
             <xs:sequence>
                     <xs:element name="bindStatus" type="BindStatusEnum"/>
                     <xs:element name="friendlyName" type="FriendlyNameType" minOccurs="0"/>
                     <xs:element name="trustedDevice" type="xs:boolean" minOccurs="0"/>
                     <xs:element name="clientVersion" type="ClientVersionType" minOccurs="0"/>
                     <xs:element name="clientType" type="ClientTypeType" minOccurs="0"/>
                     <xs:element name="lastBindTime" type="xs:dateTime"/>
                     <xs:element name="lastAuthnTime" type="xs:dateTime" minOccurs="0"/>
                     <xs:element name="lastAuthnId" type="AuthnIdType" minOccurs="0"/>
             </xs:sequence>
     </xs:complexType>
     <xs:complexType name="CredentialBindingDetailType">
             <xs:sequence>
                     <xs:element name="credentialId" type="CredentialIdType"/>
                     <xs:element name="credentialType" type="CredentialTypeEnum"/>
                     <xs:element name="credentialStatus" type="CredentialStatusType" minOccurs="0"/>
                     <xs:element name="bindingDetail" type="BindingDetailType"/>
                     <xs:element name="pushAttributes" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
             </xs:sequence>
     </xs:complexType>
     <xs:complexType name="UserBindingDetailType">
             <xs:sequence>
                     <xs:element name="userId" type="UserIdType"/>
                     <xs:element name="userStatus" type="UserStatusEnum"/>
                     <xs:element name="bindingDetail" type="BindingDetailType"/>
             </xs:sequence>
     </xs:complexType>
     <xs:simpleType name="OtpType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="6"/>
                     <xs:maxLength value="10"/>
                     <xs:pattern value="[0-9A-Za-z]+"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:simpleType name="DeviceFingerPrintType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="1"/>
                     <xs:maxLength value="2048"/>
             </xs:restriction>
     </xs:simpleType>

     <xs:simpleType name="IpAddressType">
             <xs:restriction base="xs:string">
                     <xs:pattern value="(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])" />                  
         </xs:restriction>
     </xs:simpleType>

     <xs:complexType name="AbstractAuthDataType" abstract="true"/>
     <xs:complexType name="OtpAuthDataType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="AbstractAuthDataType">
                             <xs:sequence>
                                     <xs:element name="otp" type="OtpType"/>
                                     <xs:element name="otp2" type="OtpType" minOccurs="0"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>

     <xs:complexType name="CredentialDefinitionType" abstract="false">
     <xs:complexContent>
                     <xs:extension base="AbstractAuthDataType">
                             <xs:sequence>
                                     <xs:element name="credentialId" type="CredentialIdType"/>
                                     <xs:element name="credentialType" type="CredentialTypeEnum"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>       

     <xs:simpleType name="AuthnIdType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="4"/>
                     <xs:maxLength value="30"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:simpleType name="TemporaryPasswordType">
             <xs:annotation>
                     <xs:documentation xml:lang="en">
                     One Time Password. Limited to 6 bytes.
             </xs:documentation>
             </xs:annotation>
             <xs:restriction base="xs:string">
                     <xs:pattern value="[0-9]{6,6}"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:complexType name="TemporaryPasswordAttributesType">
             <xs:annotation>
                     <xs:documentation xml:lang="en">

                     </xs:documentation>
             </xs:annotation>
             <xs:sequence>
                     <xs:element name="expirationTime" type="xs:dateTime" minOccurs="0"/>
                     <xs:element name="oneTimeUseOnly" type="xs:boolean" minOccurs="0"/>
             </xs:sequence>
     </xs:complexType>
     <!-- DestinationType -->
     <xs:complexType name="DestinationType">
             <xs:annotation>
                     <xs:documentation xml:lang="en">
                     Destination type.
                     </xs:documentation>
             </xs:annotation>
             <xs:simpleContent>
                     <xs:extension base="xs:string">
                             <xs:attribute name="type" type="PhoneNumberType" use="required"/>
                     </xs:extension>
             </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="PhoneNumberType">
     <xs:restriction base="xs:string">
         <xs:pattern value="[0-9]{5,20}(x[0-9,#.*]{1,20})?"/>
     </xs:restriction>
     </xs:simpleType>
     <!--SmsDeliveryInfoType-->
     <xs:complexType name="SmsDeliveryInfoType">
             <xs:annotation>
                     <xs:documentation xml:lang="en">
                     Contains the branding information.
                     </xs:documentation>
             </xs:annotation>
             <xs:sequence>
                     <xs:element name="phoneNumber" type="PhoneNumberType"/>
                     <xs:element name="smsFrom" type="SmsFromType" minOccurs="0"/>
                     <xs:element name="messageTemplate" type="SmsMessageTemplateType" minOccurs="0"/>
                     <xs:element name="gatewayAcctInfo" type="GatewayAcctInfoType" minOccurs="0"/>
             </xs:sequence>
     </xs:complexType>
     <!--GatewayAcctInfo-->
     <xs:complexType name="GatewayAcctInfoType">
             <xs:annotation>
                     <xs:documentation xml:lang="en">
                     Contains the IMN gateway account information.
                     </xs:documentation>
             </xs:annotation>
             <xs:sequence>
                     <xs:element name="Id">
                             <xs:simpleType>
                                     <xs:restriction base="xs:string">
                                             <xs:minLength value="1"/>
                                             <xs:maxLength value="15"/>
                                     </xs:restriction>
                             </xs:simpleType>
                     </xs:element>
                     <xs:element name="Password">
                             <xs:simpleType>
                                     <xs:restriction base="xs:string">
                                             <xs:minLength value="1"/>
                                             <xs:maxLength value="64"/>
                                     </xs:restriction>
                             </xs:simpleType>
                     </xs:element>
             </xs:sequence>
     </xs:complexType>
     <xs:simpleType name="SmsFromType">
             <xs:restriction base="xs:string">
                     <xs:pattern value="[0-9]{3,20}"/>
             </xs:restriction>
     </xs:simpleType>
     <xs:simpleType name="SmsMessageTemplateType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="5"/>
                     <xs:maxLength value="140"/>
             </xs:restriction>
     </xs:simpleType>
     <!--VoiceDeliveryInfoType-->
     <xs:complexType name="VoiceDeliveryInfoType">
             <xs:annotation>
                     <xs:documentation xml:lang="en">Contains the elements for voice type</xs:documentation>
             </xs:annotation>
             <xs:sequence>
                     <xs:element name="phoneNumber" type="PhoneNumberType"/>
                     <xs:element name="Language" type="xs:language" minOccurs="0"/>
             </xs:sequence>
     </xs:complexType>
     <xs:complexType name="ServiceOtpDeliveryInfoType">
             <xs:annotation>
                     <xs:documentation xml:lang="en">Contains the elements for voice type</xs:documentation>
             </xs:annotation>
             <xs:sequence>
                     <xs:element name="id" type="CredentialIdType"/>
             </xs:sequence>
     </xs:complexType>       
     <xs:simpleType name="PinType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="4"/>
                     <xs:maxLength value="128"/>                                     
             </xs:restriction>
     </xs:simpleType>        
     <xs:simpleType name="UserAgentType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="1"/>
                     <xs:maxLength value="250"/>
             </xs:restriction>
     </xs:simpleType>        
     <xs:simpleType name="IAAuthDataType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="1"/>
                     <xs:maxLength value="2000"/>
             </xs:restriction>
     </xs:simpleType>        

     <xs:simpleType name="EventIdType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="1"/>
                     <xs:maxLength value="18"/>
         <xs:pattern value="[0-9]+"/>                        
             </xs:restriction>
     </xs:simpleType>        
     <xs:simpleType name="VerifyMethodType">
             <xs:restriction base="xs:string">
                     <xs:minLength value="1"/>
                     <xs:maxLength value="64"/>
             </xs:restriction>
     </xs:simpleType>        
 <xs:simpleType name="RiskScoreType">
     <xs:restriction base="xs:integer">
         <xs:minInclusive value="0"/>
         <xs:maxInclusive value="100"/>
     </xs:restriction>
 </xs:simpleType>            

     <xs:simpleType name="NormalizedRiskScoreType">
             <xs:restriction base="xs:double">
                     <xs:minInclusive value="0"/>
                     <xs:maxInclusive value="1"/>
             </xs:restriction>
     </xs:simpleType>

<xs:simpleType name="IDType">
     <xs:restriction base="xs:string">
             <xs:minLength value="3"></xs:minLength>
             <xs:maxLength value="64"></xs:maxLength>
             <xs:pattern value="[0-9A-Za-z]+"></xs:pattern>
     </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="StringDescType">
     <xs:restriction base="xs:string">
             <xs:minLength value="0"></xs:minLength>
             <xs:maxLength value="256"></xs:maxLength>
     </xs:restriction>
 </xs:simpleType>                    

     <!-- ============================= -->
     <!-- Push Auth related Types       -->
     <!-- ============================= -->

 <xs:simpleType name="PushTransactionIdType">
     <xs:restriction base="xs:string">
                     <xs:minLength value="4"/>
                     <xs:maxLength value="16"/>
                     <xs:pattern value="[0-9A-Za-z_]+"/>
             </xs:restriction>
     </xs:simpleType>

     <xs:complexType name="PushAuthDataType" abstract="false">
     <xs:complexContent>
                     <xs:extension base="AbstractAuthDataType">
                             <xs:sequence>
                                     <xs:element name="displayParameters" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
                                     <xs:element name="requestParameters" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>

     <xs:complexType name="PushDetailType" abstract="false">
             <xs:sequence>
                     <xs:element name="pushCredentialId" type="xs:string" minOccurs="1"/>
                     <xs:element name="pushSent" type="xs:boolean" minOccurs="1"/>
             </xs:sequence>
     </xs:complexType>

     <xs:complexType name="PushTransactionStatusType" abstract="false">
             <xs:sequence>
                     <xs:element name="transactionId" type="PushTransactionIdType"/>
                     <xs:element name="status" type="xs:hexBinary"/>
                     <xs:element name="statusMessage" type="xs:string"/>
                     <xs:element name="detail" type="xs:hexBinary" minOccurs="0"/>
                     <xs:element name="detailMessage" type="xs:string" minOccurs="0"/>
                     <xs:element name="authnTime" type="xs:dateTime" minOccurs="0"/>
                     <xs:element name="credentialId" type="CredentialIdType" minOccurs="0"/>
                     <xs:element name="credentialType" type="CredentialTypeEnum" minOccurs="0"/>             
                     <xs:element name="isPinExpired" type="xs:boolean" minOccurs="0"/>
                     <xs:element name="pinExpirationTime" type="xs:dateTime" minOccurs="0"/>

             </xs:sequence>
     </xs:complexType>

     <xs:element name="CheckOtpRequest" type="CheckOtpRequestType"/>
     <xs:complexType name="CheckOtpRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                                     <xs:element name="otpAuthData" type="OtpAuthDataType" />
                                     <xs:element name="authContext" type="AuthContext" minOccurs="0" />
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>
     <xs:element name="CheckOtpResponse" type="CheckOtpResponseType"/>
     <xs:complexType name="CheckOtpResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">
                             <xs:sequence minOccurs="0">
                                     <xs:element name="credentialId" type="CredentialIdType" minOccurs="0"/>
                                     <xs:element name="credentialType" type="CredentialTypeEnum" minOccurs="0"/>
                                     <xs:element name="authnId" type="AuthnIdType" minOccurs="0"/>
                                     <xs:element name="authContext" type="AuthContext" minOccurs="0" />
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>

     <xs:element name="AuthenticateUserWithPushRequest" type="AuthenticateUserWithPushRequestType"/>
     <xs:complexType name="AuthenticateUserWithPushRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="userId" type="UserIdType"/>
                                     <xs:element name="pin" type="PinType" minOccurs="0" maxOccurs="1"/>
                                     <xs:element name="pushAuthData" type="PushAuthDataType" />
                                     <xs:element name="authContext" type="AuthContext" minOccurs="0" />
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>

     <xs:element name="AuthenticateUserWithPushResponse" type="AuthenticateUserWithPushResponseType"/>
     <xs:complexType name="AuthenticateUserWithPushResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">
                             <xs:sequence minOccurs="0">
                                     <xs:element name="transactionId" type="PushTransactionIdType" minOccurs="0"/>
                                     <xs:element name="isPinExpired" type="xs:boolean" minOccurs="0"/>
                                     <xs:element name="pinExpirationTime" type="xs:dateTime" minOccurs="0"/>
                                     <xs:sequence minOccurs="0" maxOccurs="20">
                                             <xs:element name="pushDetail"  type="PushDetailType" />
                                     </xs:sequence>
                                     <xs:element name="authContext" type="AuthContext" minOccurs="0" />
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>

     <xs:element name="AuthenticateCredentialsRequest" type="AuthenticateCredentialsRequestType"/>
     <xs:complexType name="AuthenticateCredentialsRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="credentials" type="CredentialDefinitionType" minOccurs="1" maxOccurs="5"/>
                                     <xs:element name="activate" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false"></xs:element>
                                     <xs:choice>
                                             <xs:element name="otpAuthData" type="OtpAuthDataType"/>
                                             <xs:element name="pushAuthData" type="PushAuthDataType"/>
                                     </xs:choice>
                                     <xs:element name="authContext" type="AuthContext" minOccurs="0" />
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>

     <xs:element name="AuthenticateCredentialsResponse" type="AuthenticateCredentialsResponseType"/>
     <xs:complexType name="AuthenticateCredentialsResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">
                             <xs:sequence minOccurs="0">
                                     <xs:element name="credentialId" type="CredentialIdType" minOccurs="0"/>
                                     <xs:element name="credentialType" type="CredentialTypeEnum" minOccurs="0"/>                                     
                                     <xs:element name="transactionId" type="PushTransactionIdType" minOccurs="0"/>
                                     <xs:sequence minOccurs="0" maxOccurs="20">
                                             <xs:element name="pushDetail"  type="PushDetailType" />
                                     </xs:sequence>
                                     <xs:element name="authContext" type="AuthContext" minOccurs="0" />
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>       

     <xs:element name="PollPushStatusRequest" type="PollPushStatusRequestType"/>
     <xs:complexType name="PollPushStatusRequestType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseRequestWithAccountIdType">
                             <xs:sequence>
                                     <xs:element name="transactionId" type="PushTransactionIdType" minOccurs="1" maxOccurs="20"/>
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>

     <xs:element name="PollPushStatusResponse" type="PollPushStatusResponseType"/>
     <xs:complexType name="PollPushStatusResponseType" abstract="false">
             <xs:complexContent>
                     <xs:extension base="BaseResponseType">
                             <xs:sequence minOccurs="0">
                                     <xs:element name="transactionStatus" type="PushTransactionStatusType" minOccurs="0" maxOccurs="20" />
                             </xs:sequence>
                     </xs:extension>
             </xs:complexContent>
     </xs:complexType>

     <xs:complexType name="AuthContext">
             <xs:annotation>
                     <xs:documentation>
                     This field contains key-value pairs of parameters required to perform authentication. For instance,
                             authentication level.
                     </xs:documentation>
             </xs:annotation>
             <xs:sequence>
                     <xs:element name="params" type="KeyValuePairType" minOccurs="0" maxOccurs="20" />
             </xs:sequence>
     </xs:complexType>

</xs:schema>