Initial commit of msn-plugin work

This commit is contained in:
Luke Fitzgerald 2010-06-12 17:28:43 +01:00
parent 004200f958
commit 0264f66d76
14 changed files with 8271 additions and 0 deletions

173
plugins/Msn/MsnPlugin.php Normal file
View File

@ -0,0 +1,173 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2009, StatusNet, Inc.
*
* Send and receive notices using the AIM network
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category IM
* @package StatusNet
* @author Craig Andrews <candrews@integralblue.com>
* @copyright 2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
// This check helps protect against security problems;
// your code file can't be executed directly from the web.
exit(1);
}
// We bundle the phptoclib library...
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib/phptoclib');
/**
* Plugin for AIM
*
* @category Plugin
* @package StatusNet
* @author Craig Andrews <candrews@integralblue.com>
* @copyright 2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class MsnPlugin extends ImPlugin
{
public $user = null;
public $password = null;
public $publicFeed = array();
public $transport = 'msnim';
function getDisplayName()
{
return _m('MSN');
}
function normalize($screenname)
{
$screenname = str_replace(" ","", $screenname);
return strtolower($screenname);
}
function daemon_screenname()
{
return $this->user;
}
function validate($screenname)
{
if(preg_match('/^[a-z]\w{2,15}$/i', $screenname)) {
return true;
}else{
return false;
}
}
/**
* Load related modules when needed
*
* @param string $cls Name of the class to be loaded
*
* @return boolean hook value; true means continue processing, false means stop.
*/
function onAutoload($cls)
{
$dir = dirname(__FILE__);
switch ($cls)
{
case 'Msn':
require_once(INSTALLDIR.'/plugins/Msn/extlib/phpmsnclass/msn.class.php');
return false;
case 'MsnManager':
include_once $dir . '/'.strtolower($cls).'.php';
return false;
case 'Fake_Msn':
include_once $dir . '/'. $cls .'.php';
return false;
default:
return true;
}
}
function onStartImDaemonIoManagers(&$classes)
{
parent::onStartImDaemonIoManagers(&$classes);
$classes[] = new MsnManager($this); // handles sending/receiving
return true;
}
function microiduri($screenname)
{
return 'msnim:' . $screenname;
}
function send_message($screenname, $body)
{
//$this->fake_aim->sendIm($screenname, $body);
//$this->enqueue_outgoing_raw($this->fake_aim->would_be_sent);
$this->enqueue_outgoing_raw(array($screenname, $body));
return true;
}
/**
* Accept a queued input message.
*
* @return true if processing completed, false if message should be reprocessed
*/
function receive_raw_message($message)
{
$info=Aim::getMessageInfo($message);
$from = $info['from'];
$user = $this->get_user($from);
$notice_text = $info['message'];
$this->handle_incoming($from, $notice_text);
return true;
}
function initialize(){
if(!isset($this->user)){
throw new Exception("must specify a user");
}
if(!isset($this->password)){
throw new Exception("must specify a password");
}
if(!isset($this->nickname)) {
throw new Exception("must specify a nickname");
}
$this->fake_msn = new Fake_Msn($this->user,$this->password,4);
return true;
}
function onPluginVersion(&$versions)
{
$versions[] = array('name' => 'MSN',
'version' => STATUSNET_VERSION,
'author' => 'Luke Fitzgerald',
'homepage' => 'http://status.net/wiki/Plugin:MSN',
'rawdescription' =>
_m('The MSN plugin allows users to send and receive notices over the MSN network.'));
return true;
}
}

120
plugins/Msn/Queued_Msn.php Normal file
View File

@ -0,0 +1,120 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Queue-mediated proxy class for outgoing MSN messages.
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Network
* @package StatusNet
* @author Luke Fitzgerald <lw.fitzgerald@googlemail.com>
* @copyright 2010 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
class Queued_XMPP extends MSN {
/**
* Reference to the MsnPlugin object we're hooked up to.
*/
public $plugin;
/**
* Constructor
*
* @param MsnPlugin $plugin
* @param string $host
* @param integer $port
* @param string $user
* @param string $password
* @param string $resource
* @param string $server
* @param boolean $printlog
* @param string $loglevel
*/
public function __construct($plugin, $host, $port, $user, $password, $resource, $server = null, $printlog = false, $loglevel = null)
{
$this->plugin = $plugin;
parent::__construct($host, $port, $user, $password, $resource, $server, $printlog, $loglevel);
// We use $host to connect, but $server to build JIDs if specified.
// This seems to fix an upstream bug where $host was used to build
// $this->basejid, never seen since it isn't actually used in the base
// classes.
if (!$server) {
$server = $this->host;
}
$this->basejid = $this->user . '@' . $server;
// Normally the fulljid is filled out by the server at resource binding
// time, but we need to do it since we're not talking to a real server.
$this->fulljid = "{$this->basejid}/{$this->resource}";
}
/**
* Send a formatted message to the outgoing queue for later forwarding
* to a real XMPP connection.
*
* @param string $msg
*/
public function send($msg, $timeout=NULL)
{
$this->plugin->enqueue_outgoing_raw($msg);
}
//@{
/**
* Stream i/o functions disabled; only do output
*/
public function connect($timeout = 30, $persistent = false, $sendinit = true)
{
throw new Exception("Can't connect to server from fake XMPP.");
}
public function disconnect()
{
throw new Exception("Can't connect to server from fake XMPP.");
}
public function process()
{
throw new Exception("Can't read stream from fake XMPP.");
}
public function processUntil($event, $timeout=-1)
{
throw new Exception("Can't read stream from fake XMPP.");
}
public function read()
{
throw new Exception("Can't read stream from fake XMPP.");
}
public function readyToProcess()
{
throw new Exception("Can't read stream from fake XMPP.");
}
//@}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,63 @@
#!/usr/bin/php
<?php
global $msn;
function ChildSignalFunction($signal)
{
global $msn;
switch($signal)
{
case SIGTRAP:
case SIGTERM:
case SIGHUP:
if(is_object($msn)) $msn->End();
return;
}
}
// network:
// 1: WLM/MSN
// 2: LCS
// 4: Mobile Phones
// 32: Yahoo!
function getNetworkName($network)
{
switch ($network)
{
case 1:
return 'WLM/MSN';
case 2:
return 'LCS';
case 4:
return 'Mobile Phones';
case 32:
return 'Yahoo!';
}
return "Unknown ($network)";
}
require_once('config.php');
include_once('msn.class.php');
$msn = new MSN(array(
'user' => 'xxx@hotmail.com',
'password' => 'mypassword',
'alias' => 'myalias',
'psm' => 'psm',
// 'PhotoSticker' => 'msntitle.jpg',
'debug'=> true,
/* 'Emotions' => array(
'aaa' => 'emotion.gif'
),*/
));
$fp=fopen(MSN_CLASS_LOG_DIR.DIRECTORY_SEPARATOR.'msnbot.pid', 'wt');
if($fp)
{
fputs($fp,posix_getpid());
fclose($fp);
}
declare(ticks = 1);
$msn->Run();
$msn->log_message("done!");
@unlink(dirname($_SERVER['argv'][0]).DIRECTORY_SEPARATOR.'log'.DIRECTORY_SEPARATOR.'msnbot.pid');

View File

@ -0,0 +1,40 @@
#!/usr/bin/php -Cq
<?php
error_reporting(E_ALL);
include_once('msn.class.php');
// force to use MSNP9, without debug information
// $msn = new MSN('MSNP9');
// force to use MSNP9, with debug information
// $msn = new MSN('MSNP9', true);
// force to use MSNP15, without debug information
// $msn = new MSN('MSNP15');
// force to use MSNP15, with debug information
// $msn = new MSN('MSNP15', true);
// auto detect MSN protocol, without debug information
// $msn = new MSN;
// auto detect MSN protocol, with debug information
$msn = new MSN(array('user' => 'statusnetbot@inflatablegoldfish.com', 'password' => 'statusnetplugin', 'alias' => 'statusnetbot', 'psm' => '', 'debug' => true));
if ($msn->Run()) {
echo "Error for connect to MSN network\n";
echo "$msn->error\n";
exit;
}
//$msn->sendMessage('Now: '.strftime('%D %T')."\nTesting\nSecond Line\n\n\n\nand Empty Line",
// array(
// 'darkip@inflatablegoldfish.com'
// )
// );
echo "Done!\n";
exit;
?>

View File

@ -0,0 +1,23 @@
K 25
svn:wc:ra_dav:version-url
V 41
/svn/!svn/ver/39/trunk/phpmsnclassv2/soap
END
msnab_servicetypes.xsd
K 25
svn:wc:ra_dav:version-url
V 64
/svn/!svn/ver/39/trunk/phpmsnclassv2/soap/msnab_servicetypes.xsd
END
msnab_sharingservice.wsdl
K 25
svn:wc:ra_dav:version-url
V 67
/svn/!svn/ver/39/trunk/phpmsnclassv2/soap/msnab_sharingservice.wsdl
END
msnab_datatypes.xsd
K 25
svn:wc:ra_dav:version-url
V 61
/svn/!svn/ver/39/trunk/phpmsnclassv2/soap/msnab_datatypes.xsd
END

View File

@ -0,0 +1,130 @@
10
dir
46
http://phpmsnclass.googlecode.com/svn/trunk/phpmsnclassv2/soap
http://phpmsnclass.googlecode.com/svn
2009-07-27T06:16:08.380493Z
39
ricky@ez2.us
d71849f3-712d-0410-a681-1795f7bea18a
msnab_servicetypes.xsd
file
2010-06-08T18:29:30.506015Z
096c0222d82879fa2b4bd47fa45f4aaf
2009-07-27T06:16:08.380493Z
39
ricky@ez2.us
27903
msnab_sharingservice.wsdl
file
2010-06-08T18:29:30.506015Z
40f2d65d6cf6245c064defb02bd62705
2009-07-27T06:16:08.380493Z
39
ricky@ez2.us
27625
msnab_datatypes.xsd
file
2010-06-08T18:29:30.506015Z
6a376c90de444594c1c75970586f99f8
2009-07-27T06:16:08.380493Z
39
ricky@ez2.us
42170

View File

@ -0,0 +1,832 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by wp (freezingsoft) -->
<xsd:schema xmlns:msnab="http://www.msn.com/webservices/AddressBook" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.msn.com/webservices/AddressBook" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<xsd:complexType name="abInfoType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" minOccurs="0"/>
<xsd:element name="ownerPuid" type="xsd:string"/>
<xsd:element name="OwnerCID" type="xsd:integer" minOccurs="0"/>
<xsd:element name="ownerEmail" type="xsd:string"/>
<xsd:element name="fDefault" type="xsd:boolean"/>
<xsd:element name="joinedNamespace" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsBot" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsParentManaged" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="SubscribeExternalPartner" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="NotifyExternalPartner" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="AddressBookType" type="xsd:string" minOccurs="0"/>
<xsd:element name="MessengerApplicationServiceCreated" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsBetaMigrated" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="HandleType">
<xsd:sequence>
<xsd:element name="Id" type="xsd:integer"/>
<xsd:element name="Type" type="xsd:string" default="Messenger"/>
<xsd:element name="ForeignId" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ServiceType">
<xsd:sequence>
<xsd:element name="Memberships" minOccurs="0">
<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" type="msnab:InfoType"/>
<xsd:element name="Changes" type="xsd:string"/>
<xsd:element name="LastChange" type="xsd:dateTime" default="0001-01-01T00:00:00"/>
<xsd:element name="Deleted" type="xsd:boolean" default="false"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Membership">
<xsd:sequence>
<xsd:element name="MemberRole" type="xsd:string"/>
<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:element name="MembershipIsComplete" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BaseMember">
<xsd:sequence>
<xsd:element name="MembershipId" type="xsd:positiveInteger" minOccurs="0"/>
<xsd:element name="Type" type="xsd:string"/>
<xsd:element name="Location" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Id" type="msnab:Guid"/>
<xsd:element name="IsPassportNameHidden" type="xsd:boolean"/>
<xsd:element name="CID" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DisplayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="State" type="msnab:MemberState"/>
<xsd:element name="Annotations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Annotation" type="msnab:Annotation" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Deleted" type="xsd:boolean" default="false" minOccurs="0"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="JoinedDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ExpirationDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="Changes" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CircleMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="CircleId" type="msnab:Guid"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PassportMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="PassportName" type="xsd:string"/>
<xsd:element name="IsPassportNameHidden" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="PassportId" type="xsd:int" minOccurs="0"/>
<xsd:element name="CID" type="xsd:long" minOccurs="0"/>
<xsd:element name="PassportChanges" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="EmailMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="Email" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PhoneMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="PhoneNumber" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="RoleMember" mixed="false">
<xsd:complexContent mixed="false">
<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>
<xsd:complexType name="ServiceMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="Service" type="msnab:HandleType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DomainMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="DomainName" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="EveryoneMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="GroupMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="Id" type="msnab:Guid"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="Guid">
<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:element name="MemberType">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Allow"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:simpleType name="MemberState">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Accepted"/>
<xsd:enumeration value="Pending"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Annotation">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Value" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContactType">
<xsd:sequence>
<xsd:element name="contactId" type="msnab:Guid" minOccurs="0"/>
<xsd:element name="contactInfo" type="msnab:contactInfoType" minOccurs="0"/>
<xsd:element name="propertiesChanged" type="xsd:string" 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" minOccurs="0"/>
<xsd:element name="lastChange" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="CreateDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="LastModifiedBy" type="xsd:integer" minOccurs="0"/>
<xsd:element name="CreatedBy" type="xsd:integer" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContactIdType">
<xsd:sequence>
<xsd:element name="contactId" type="msnab:Guid" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="contactInfoType">
<xsd:sequence>
<xsd:element name="emails" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactEmail" type="msnab:contactEmailType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="phones" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactPhone" type="msnab:contactPhoneType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="locations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactLocation" type="msnab:contactLocationType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="webSites" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactWebSite" type="msnab:contactWebSiteType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="annotations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Annotation" type="msnab:Annotation" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupIds" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupIdsDeleted" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="contactType" type="xsd:string" minOccurs="0"/>
<xsd:element name="quickName" type="xsd:string" minOccurs="0"/>
<xsd:element name="firstName" type="xsd:string" minOccurs="0"/>
<xsd:element name="MiddleName" type="xsd:string" minOccurs="0"/>
<xsd:element name="lastName" type="xsd:string" minOccurs="0"/>
<xsd:element name="Suffix" type="xsd:string" minOccurs="0"/>
<xsd:element name="NameTitle" type="xsd:string" minOccurs="0"/>
<xsd:element name="passportName" type="xsd:string" minOccurs="0"/>
<xsd:element name="IsPassportNameHidden" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="displayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="puid" type="xsd:long" minOccurs="0"/>
<xsd:element name="CID" type="xsd:long" minOccurs="0"/>
<xsd:element name="BrandIdList" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
<xsd:element name="IsNotMobileVisible" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="isMobileIMEnabled" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="isMessengerUser" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="isFavorite" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="isSmtp" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="hasSpace" type="xsd:boolean" 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" minOccurs="0"/>
<xsd:element name="birthdate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="primaryEmailType" type="msnab:ContactEmailTypeType" minOccurs="0"/>
<xsd:element name="PrimaryLocation" type="msnab:ContactLocationTypeType" minOccurs="0"/>
<xsd:element name="PrimaryPhone" type="msnab:ContactPhoneTypeType" minOccurs="0"/>
<xsd:element name="IsPrivate" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="Anniversary" type="xsd:string" 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" minOccurs="0"/>
<xsd:element name="TimeZone" type="xsd:string" minOccurs="0"/>
<xsd:element name="NetworkInfoList" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NetworkInfo" type="msnab:NetworkInfoType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="PublicDisplayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="IsAutoUpdateDisabled" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="MessengerMemberInfo" type="msnab:MessengerMemberInfo" minOccurs="0"/>
<xsd:element name="PropertiesChanged" type="xsd:anyType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="contactEmailType">
<xsd:sequence>
<xsd:element name="contactEmailType" type="msnab: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:enumeration value="Messenger3"/>
<xsd:enumeration value="Messenger4"/>
<xsd:enumeration value="Passport"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="contactPhoneType">
<xsd:sequence>
<xsd:element name="contactPhoneType" type="msnab: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="ContactPhoneMobile"/>
<xsd:enumeration value="ContactPhonePager"/>
<xsd:enumeration value="ContactPhoneOther"/>
<xsd:enumeration value="ContactPhoneFax"/>
<xsd:enumeration value="Personal2"/>
<xsd:enumeration value="Business2"/>
<xsd:enumeration value="BusinessFax"/>
<xsd:enumeration value="BusinessMobile"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="contactLocationType">
<xsd:sequence>
<xsd:element name="contactLocationType" type="msnab:ContactLocationTypeType"/>
<xsd:element name="name" type="xsd:string" 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="Department" type="xsd:string" minOccurs="0"/>
<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="msnab: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="msnab:Guid"/>
<xsd:element name="groupInfo" type="msnab:groupInfoType"/>
<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" minOccurs="0"/>
<xsd:element name="lastChange" type="xsd:dateTime" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="groupInfoType">
<xsd:sequence>
<xsd:element name="annotations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Annotation" type="msnab:Annotation" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupType" type="msnab:Guid" default="C8529CE2-6EAD-434d-881F-341E17DB3FF8" minOccurs="0"/>
<xsd:element name="name" type="xsd:string" minOccurs="0"/>
<xsd:element name="IsNotMobileVisible" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsPrivate" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsFavorite" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="fMessenger" type="xsd:boolean" 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="msnab:Guid" minOccurs="0" maxOccurs="unbounded"/>
</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:complexType name="MessengerMemberInfo">
<xsd:sequence>
<xsd:element name="PendingAnnotations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Annotation" type="msnab:Annotation" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DisplayName" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="InfoType">
<xsd:sequence>
<xsd:element name="Handle" type="msnab:HandleType"/>
<xsd:element name="DisplayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="InverseRequired" type="xsd:boolean" default="false"/>
<xsd:element name="AuthorizationCriteria" type="xsd:string" minOccurs="0"/>
<xsd:element name="RSSUrl" type="xsd:anyURI" minOccurs="0"/>
<xsd:element name="IsBot" type="xsd:boolean" default="false"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NotificationDataType">
<xsd:sequence>
<xsd:element name="StoreService" type="msnab:ServiceType"/>
<xsd:element name="Status" type="xsd:string"/>
<xsd:element name="LastChanged" type="xsd:dateTime"/>
<xsd:element name="Gleam" type="xsd:boolean" default="false"/>
<xsd:element name="InstanceId" type="xsd:string" default="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BaseDynamicItemType">
<xsd:sequence>
<xsd:element name="Type" type="xsd:string"/>
<xsd:element name="Deleted" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="Notifications" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NotificationData" type="msnab:NotificationDataType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Changes" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CircleDynamicItem" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseDynamicItemType">
<xsd:sequence>
<xsd:element name="Id" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PassportDynamicItem" block="" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseDynamicItemType">
<xsd:sequence>
<xsd:element name="CID" type="xsd:string" minOccurs="0"/>
<xsd:element name="PassportName" type="xsd:string"/>
<xsd:element name="PassportId" type="xsd:string" minOccurs="0"/>
<xsd:element name="SpaceStatus" type="xsd:string"/>
<xsd:element name="SpaceLastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="SpaceLastViewed" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="SpaceGleam" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="ProfileLastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ProfileLastView" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ProfileStatus" type="xsd:string"/>
<xsd:element name="ProfileGleam" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="ContactProfileStatus" type="xsd:string"/>
<xsd:element name="ContactProfileLastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ContactProfileLastViewed" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="LiveContactLastChanged" type="xsd:dateTime" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="abType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid"/>
<xsd:element name="abInfo" type="msnab:abInfoType"/>
<xsd:element name="lastChange" type="xsd:dateTime"/>
<xsd:element name="DynamicItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="RecentActivityItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="createDate" type="xsd:dateTime"/>
<xsd:element name="propertiesChanged" type="xsd:anyType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CircleResultType">
<xsd:sequence>
<xsd:element name="Circles" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CircleInverseInfo" type="msnab:CircleInverseInfoType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CircleTicket" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NetworkInfoType">
<xsd:sequence>
<xsd:element name="DomainId" type="xsd:int" minOccurs="0"/>
<xsd:element name="DomainTag" type="xsd:string" minOccurs="0"/>
<xsd:element name="UserTileURL" type="xsd:string" minOccurs="0"/>
<xsd:element name="ProfileURL" type="xsd:string" minOccurs="0"/>
<xsd:element name="DisplayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="RelationshipType" type="xsd:int" minOccurs="0"/>
<xsd:element name="RelationshipState" type="xsd:int" minOccurs="0"/>
<xsd:element name="RelationshipStateDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="RelationshipRole" type="xsd:int" minOccurs="0"/>
<xsd:element name="NDRCount" type="xsd:int" minOccurs="0"/>
<xsd:element name="InviterCID" type="xsd:long" minOccurs="0"/>
<xsd:element name="CreateDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="PropertiesChanged" type="xsd:anyType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContactFilterType">
<xsd:sequence>
<xsd:element name="IncludeHiddenContacts" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="filterOptionsType">
<xsd:sequence>
<xsd:element name="DeltasOnly" type="xsd:boolean"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ContactFilter" type="msnab:ContactFilterType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="entityHandle">
<xsd:sequence>
<xsd:element name="Cid" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NotationType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Value" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ListTemplateVariableItemType">
<xsd:sequence>
<xsd:element name="Values">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Value" type="msnab:SimpleTemplateVariableBaseType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SimpleTemplateVariableBaseType">
<xsd:complexContent>
<xsd:extension base="msnab:TemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Value" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PublisherIdTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:TemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Id" type="xsd:string"/>
<xsd:element name="NameHint" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TargetIdTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:PublisherIdTemplateVariable">
<xsd:sequence>
<xsd:element name="IdOwner" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TextTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:SimpleTemplateVariableBaseType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="HlinkTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:SimpleTemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Text" type="xsd:string"/>
<xsd:element name="Notations">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Notation" type="msnab:NotationType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ListTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:TemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Items">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ListTemplateVariableItem" type="msnab:ListTemplateVariableItemType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ImageTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:SimpleTemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Href" type="xsd:anyURI"/>
<xsd:element name="Notations">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Notation" type="msnab:NotationType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ActivityDetailsType">
<xsd:sequence>
<xsd:element name="OwnerCID" type="xsd:string"/>
<xsd:element name="ObjectId" type="xsd:string"/>
<xsd:element name="ApplicationId" type="xsd:string"/>
<xsd:element name="ChangeType" type="xsd:string"/>
<xsd:element name="PublishDate" type="xsd:dateTime"/>
<xsd:element name="TemplateVariables">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TemplateVariable" type="msnab:TemplateVariableBaseType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RecentActivityTemplateType">
<xsd:sequence>
<xsd:element name="Cardinality" type="xsd:string"/>
<xsd:element name="Data" type="xsd:string"/>
<xsd:element name="Title" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RequestedLocalesType">
<xsd:sequence>
<xsd:element name="string" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RecentActivityTemplateContainerType">
<xsd:sequence>
<xsd:element name="ApplicationId" type="xsd:string"/>
<xsd:element name="ApplicationName" type="xsd:string"/>
<xsd:element name="ChangeType" type="xsd:integer"/>
<xsd:element name="Locale" type="xsd:string"/>
<xsd:element name="RequestedLocales" type="msnab:RequestedLocalesType"/>
<xsd:element name="TemplateRevision" type="xsd:integer"/>
<xsd:element name="Templates">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RecentActivityTemplate" type="msnab:RecentActivityTemplateType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CollapseCondition" type="msnab:CollapseConditionType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CollapseConditionType">
<xsd:sequence>
<xsd:element name="string" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CirclePersonalMembershipType">
<xsd:sequence>
<xsd:element name="Role" type="xsd:string"/>
<xsd:element name="State" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="abHandleType">
<xsd:sequence>
<xsd:element name="ABId" type="xsd:string"/>
<xsd:element name="Puid" type="xsd:long"/>
<xsd:element name="Cid" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="contactHandleType">
<xsd:sequence>
<xsd:element name="Email" type="xsd:string"/>
<xsd:element name="Puid" type="xsd:long"/>
<xsd:element name="Cid" type="xsd:long"/>
<xsd:element name="CircleId" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MembershipInfoType">
<xsd:sequence>
<xsd:element name="CirclePersonalMembership" type="msnab:CirclePersonalMembershipType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PersonalInfoType">
<xsd:sequence>
<xsd:element name="MembershipInfo" type="msnab:MembershipInfoType"/>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="IsNotMobileVisible" type="xsd:boolean"/>
<xsd:element name="IsFavorite" type="xsd:boolean"/>
<xsd:element name="IsFamily" type="xsd:boolean"/>
<xsd:element name="Changes" type="xsd:anyType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContentInfoType">
<xsd:sequence>
<xsd:element name="Domain" type="xsd:int"/>
<xsd:element name="HostedDomain" type="xsd:string"/>
<xsd:element name="Type" type="xsd:int"/>
<xsd:element name="MembershipAccess" type="xsd:int"/>
<xsd:element name="IsPresenceEnabled" type="xsd:boolean"/>
<xsd:element name="RequestMembershipOption" type="xsd:int"/>
<xsd:element name="DisplayName" type="xsd:string"/>
<xsd:element name="ProfileLastUpdated" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="Changes" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="CreateDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContentHandleType">
<xsd:sequence>
<xsd:element name="Id" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContentType">
<xsd:sequence>
<xsd:element name="Handle" type="msnab:ContentHandleType"/>
<xsd:element name="Info" type="msnab:ContentInfoType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CircleInverseInfoType">
<xsd:sequence>
<xsd:element name="Content" type="msnab:ContentType"/>
<xsd:element name="PersonalInfo" type="msnab:PersonalInfoType"/>
<xsd:element name="Deleted" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="callerInfoType">
<xsd:sequence>
<xsd:element name="PublicDisplayName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

View File

@ -0,0 +1,567 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by wp (freezingsoft) -->
<xsd:schema xmlns:msnab="http://www.msn.com/webservices/AddressBook" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.msn.com/webservices/AddressBook" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<xsd:include schemaLocation="msnab_datatypes.xsd"/>
<xsd:element name="ABApplicationHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ApplicationId" type="msnab:Guid" fixed="09607671-1C32-421F-A6A6-CBFAA51AB5F4"/>
<xsd:element name="IsMigration" type="xsd:boolean" default="false"/>
<xsd:element name="PartnerScenario" type="xsd:string" default="Initial"/>
<xsd:element name="CacheKey" type="xsd:token" minOccurs="0"/>
<xsd:element name="BrandId" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABAuthHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ManagedGroupRequest" type="xsd:boolean" default="false"/>
<xsd:element name="TicketToken" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ServiceHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Version" type="xsd:token"/>
<xsd:element name="CacheKey" type="xsd:token" minOccurs="0"/>
<xsd:element name="CacheKeyChanged" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="PreferredHostName" type="xsd:string" minOccurs="0"/>
<xsd:element name="SessionId" type="msnab:Guid" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="FindMembership" type="msnab:FindMembershipRequestType"/>
<xsd:complexType name="FindMembershipRequestType">
<xsd:sequence>
<xsd:element name="serviceFilter">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Types">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ServiceType" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="View" type="xsd:string" minOccurs="0"/>
<xsd:element name="deltasOnly" type="xsd:boolean" default="false" minOccurs="0"/>
<xsd:element name="lastChange" type="xsd:dateTime" default="0001-01-01T00:00:00.0000000-08:00" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FindMembershipResultType">
<xsd:sequence>
<xsd:element name="Services">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Service" type="msnab:ServiceType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="OwnerNamespace">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Info">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Handle">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Id" type="xsd:string"/>
<xsd:element name="IsPassportNameHidden" type="xsd:boolean"/>
<xsd:element name="CID" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CreatorPuid" type="xsd:integer"/>
<xsd:element name="CreatorCID" type="xsd:integer"/>
<xsd:element name="CreatorPassportName" type="xsd:string"/>
<xsd:element name="CircleAttributes">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="IsPresenceEnabled" type="xsd:boolean"/>
<xsd:element name="IsEvent" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="Domain" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="MessengerApplicationServiceCreated" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Changes" type="xsd:string"/>
<xsd:element name="CreateDate" type="xsd:dateTime"/>
<xsd:element name="LastChange" type="xsd:dateTime"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="FindMembershipResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FindMembershipResult" type="msnab:FindMembershipResultType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABFindAll" type="msnab:ABFindAllRequestType"/>
<xsd:complexType name="ABFindAllRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="abView" type="xsd:string" minOccurs="0"/>
<xsd:element name="deltasOnly" type="xsd:boolean" default="false" minOccurs="0"/>
<xsd:element name="lastChange" type="xsd:dateTime" default="0001-01-01T00:00:00.0000000-08:00" minOccurs="0"/>
<xsd:element name="dynamicItemView" type="xsd:string" fixed="Gleam" minOccurs="0"/>
<xsd:element name="dynamicItemLastChange" type="xsd:dateTime" default="0001-01-01T00:00:00.0000000-08:00" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABFindAllResultType">
<xsd:sequence>
<xsd:element name="groups" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Group" type="msnab:GroupType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DynamicItems" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DynamicItem" type="msnab:BaseDynamicItemType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CircleResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CircleTicket" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ab">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid"/>
<xsd:element name="abInfo" type="msnab:abInfoType"/>
<xsd:element name="lastChange" type="xsd:dateTime"/>
<xsd:element name="DynamicItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="RecentActivityItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="createDate" type="xsd:dateTime"/>
<xsd:element name="propertiesChanged" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABFindAllResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABFindAllResult" type="msnab:ABFindAllResultType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABContactAdd" type="msnab:ABContactAddRequestType"/>
<xsd:complexType name="ABContactAddRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="options" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="EnableAllowListManagement" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABContactAddResultType">
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABContactAddResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABContactAddResult" type="msnab:ABContactAddResultType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABContactDelete" type="msnab:ABContactDeleteRequestType"/>
<xsd:complexType name="ABContactDeleteRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactIdType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABContactDeleteResponse"/>
<xsd:element name="ABGroupContactAdd" type="msnab:ABGroupContactAddRequestType"/>
<xsd:complexType name="ABGroupContactAddRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="groupFilter" type="msnab:groupFilterType"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupContactAddOptions" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="fGenerateMissingQuickName" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="EnableAllowListManagement" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABGroupContactAddResultType">
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupContactAddResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABGroupContactAddResult" type="msnab:ABGroupContactAddResultType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABGroupAdd" type="msnab:ABGroupAddRequestType"/>
<xsd:complexType name="ABGroupAddRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="groupAddOptions">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="fRenameOnMsgrConflict" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="GroupInfo" type="msnab:groupInfoType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABGroupAddResultType">
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupAddResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABGroupAddResult" type="msnab:ABGroupAddResultType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABGroupUpdate" type="msnab:ABGroupUpdateRequestType"/>
<xsd:complexType name="ABGroupUpdateRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="groups">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Group" type="msnab:GroupType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupUpdateResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="ABGroupDelete" type="msnab:ABGroupDeleteRequestType"/>
<xsd:complexType name="ABGroupDeleteRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="groupFilter" type="msnab:groupFilterType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupDeleteResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="ABContactUpdate" type="msnab:ABContactUpdateRequestType"/>
<xsd:complexType name="ABContactUpdateRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABContactUpdateResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="ABGroupContactDelete" type="msnab:ABGroupContactDeleteRequestType"/>
<xsd:complexType name="ABGroupContactDeleteRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupFilter" type="msnab:groupFilterType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupContactDeleteResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="AddMember" type="msnab:AddMemberRequestType"/>
<xsd:complexType name="AddMemberRequestType">
<xsd:sequence>
<xsd:element name="serviceHandle" type="msnab:HandleType"/>
<xsd:element name="memberships">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Membership" type="msnab:Membership" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="AddMemberResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="DeleteMember" type="msnab:DeleteMemberRequestType"/>
<xsd:complexType name="DeleteMemberRequestType">
<xsd:sequence>
<xsd:element name="serviceHandle" type="msnab:HandleType"/>
<xsd:element name="memberships">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Membership" type="msnab:Membership" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="nsHandle" type="msnab:ContentHandleType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="DeleteMemberResponse">
<xsd:complexType/>
</xsd:element>
<xsd:complexType name="ABAddResponseType">
<xsd:sequence>
<xsd:element name="ABAddResult" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABAddResponse" type="msnab:ABAddResponseType"/>
<xsd:element name="ABAdd" type="msnab:ABAddRequestType"/>
<xsd:complexType name="ABAddRequestType">
<xsd:sequence>
<xsd:element name="abInfo" type="msnab:abInfoType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="UpdateDynamicItemRequestType">
<xsd:sequence>
<xsd:element name="abId" type="xsd:string"/>
<xsd:element name="dynamicItems">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DynamicItem" type="msnab:BaseDynamicItemType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="UpdateDynamicItem" type="msnab:UpdateDynamicItemRequestType"/>
<xsd:element name="UpdateDynamicItemResponse"/>
<xsd:element name="ABFindContactsPaged" type="msnab:ABFindContactsPagedRequestType"/>
<xsd:complexType name="ABFindContactsPagedRequestType">
<xsd:sequence>
<xsd:element name="filterOptions" type="msnab:filterOptionsType"/>
<xsd:element name="abView" type="xsd:string"/>
<xsd:element name="extendedContent" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABFindContactsPagedResultType">
<xsd:sequence>
<xsd:element name="Groups" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Group" type="msnab:GroupType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CircleResult" type="msnab:CircleResultType"/>
<xsd:element name="Ab">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid"/>
<xsd:element name="abInfo" type="msnab:abInfoType"/>
<xsd:element name="lastChange" type="xsd:dateTime"/>
<xsd:element name="DynamicItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="RecentActivityItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="createDate" type="xsd:dateTime"/>
<xsd:element name="propertiesChanged" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABFindContactsPagedResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABFindContactsPagedResult" type="msnab:ABFindContactsPagedResultType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="WNApplicationHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ApplicationId" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="WNAuthHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TicketToken" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="WNServiceHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Version" type="xsd:token"/>
<xsd:element name="CacheKey" type="xsd:token" minOccurs="0"/>
<xsd:element name="CacheKeyChanged" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="PreferredHostName" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetContactsRecentActivity" type="msnab:GetContactsRecentActivityRequestType"/>
<xsd:complexType name="GetContactsRecentActivityRequestType">
<xsd:sequence>
<xsd:element name="entityHandle" type="msnab:entityHandle"/>
<xsd:element name="locales">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="string" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="count" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="GetContactsRecentActivityResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="GetContactsRecentActivityResult" type="msnab:GetContactsRecentActivityResultType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="GetContactsRecentActivityResultType">
<xsd:sequence>
<xsd:element name="Activities">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ActivityDetails" type="msnab:ActivityDetailsType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Templates">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RecentActivityTemplateContainer" type="msnab:RecentActivityTemplateContainerType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="FeedUrl" type="xsd:anyURI"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ManageWLConnection" type="msnab:ManageWLConnectionRequestType"/>
<xsd:complexType name="ManageWLConnectionRequestType">
<xsd:sequence>
<xsd:element name="abHandle" type="msnab:abHandleType"/>
<xsd:element name="contactId" type="xsd:string"/>
<xsd:element name="connection" type="xsd:boolean"/>
<xsd:element name="presence" type="xsd:boolean"/>
<xsd:element name="action" type="xsd:integer"/>
<xsd:element name="relationshipType" type="xsd:int"/>
<xsd:element name="relationshipRole" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ManageWLConnectionResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ManageWLConnectionResult" type="msnab:ContactType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CreateContact" type="msnab:CreateContactType"/>
<xsd:complexType name="CreateContactType">
<xsd:sequence>
<xsd:element name="abHandle" type="msnab:abHandleType"/>
<xsd:element name="contactHandle" type="msnab:contactHandleType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="CreateContactResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CreateContactResult" type="msnab:ContactType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CreateCircle" type="msnab:CreateCircleRequestType"/>
<xsd:complexType name="CreateCircleRequestType">
<xsd:sequence>
<xsd:element name="properties" type="msnab:ContentInfoType"/>
<xsd:element name="callerInfo" type="msnab:callerInfoType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CreateCircleResponseType">
<xsd:sequence>
<xsd:element name="Id" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="CreateCircleResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CreateCircleResult" type="msnab:CreateCircleResponseType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

View File

@ -0,0 +1,532 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by wp (freezingsoft) -->
<definitions xmlns:msnab="http://www.msn.com/webservices/AddressBook" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.msn.com/webservices/AddressBook">
<types>
<ns:schema xmlns="http://www.w3.org/2001/XMLSchema">
<ns:import schemaLocation="msnab_servicetypes.xsd" namespace="http://www.msn.com/webservices/AddressBook"/>
</ns:schema>
</types>
<message name="ABHeader">
<part name="ApplicationHeader" element="msnab:ABApplicationHeader"/>
<part name="AuthHeader" element="msnab:ABAuthHeader"/>
</message>
<message name="FindMembershipMessage">
<part name="FindMembershipRequest" element="msnab:FindMembership"/>
</message>
<message name="ABFindAllMessage">
<part name="ABFindAllRequest" element="msnab:ABFindAll"/>
</message>
<message name="ABContactAddMessage">
<part name="ABContactAddRequest" element="msnab:ABContactAdd"/>
</message>
<message name="ABContactDeleteMessage">
<part name="ABContactDeleteRequest" element="msnab:ABContactDelete"/>
</message>
<message name="ABGroupContactAddMessage">
<part name="ABGroupContactAddRequest" element="msnab:ABGroupContactAdd"/>
</message>
<message name="ABGroupAddMessage">
<part name="ABGroupAddRequest" element="msnab:ABGroupAdd"/>
</message>
<message name="ABGroupUpdateMessage">
<part name="ABGroupUpdateRequest" element="msnab:ABGroupUpdate"/>
</message>
<message name="ABGroupDeleteMessage">
<part name="ABGroupDeleteRequest" element="msnab:ABGroupDelete"/>
</message>
<message name="ABGroupContactDeleteMessage">
<part name="ABGroupContactDeleteRequest" element="msnab:ABGroupContactDelete"/>
</message>
<message name="ABContactUpdateMessage">
<part name="ABContactUpdateRequest" element="msnab:ABContactUpdate"/>
</message>
<message name="AddMemberMessage">
<part name="AddMemberRequest" element="msnab:AddMember"/>
</message>
<message name="DeleteMemberMessage">
<part name="DeleteMemberRequest" element="msnab:DeleteMember"/>
</message>
<message name="ServiceHeader">
<part name="ServiceHeader" element="msnab:ServiceHeader"/>
</message>
<message name="FindMembershipResponseMessage">
<part name="FindMembershipResponse" element="msnab:FindMembershipResponse"/>
</message>
<message name="ABFindAllResponseMessage">
<part name="ABFindAllResponse" element="msnab:ABFindAllResponse"/>
</message>
<message name="ABContactAddResponseMessage">
<part name="ABContactAddResponse" element="msnab:ABContactAddResponse"/>
</message>
<message name="ABContactDeleteResponseMessage">
<part name="ABContactDeleteResponse" element="msnab:ABContactDeleteResponse"/>
</message>
<message name="ABGroupContactAddResponseMessage">
<part name="ABGroupContactAddResponse" element="msnab:ABGroupContactAddResponse"/>
</message>
<message name="ABGroupAddResponseMessage">
<part name="ABGroupAddResponse" element="msnab:ABGroupAddResponse"/>
</message>
<message name="ABGroupUpdateResponseMessage">
<part name="ABGroupUpdateResponse" element="msnab:ABGroupUpdateResponse"/>
</message>
<message name="ABGroupDeleteResponseMessage">
<part name="ABGroupDeleteResponse" element="msnab:ABGroupDeleteResponse"/>
</message>
<message name="ABGroupContactDeleteResponseMessage">
<part name="ABGroupContactDeleteResponse" element="msnab:ABGroupContactDeleteResponse"/>
</message>
<message name="ABContactUpdateResponseMessage">
<part name="ABContactUpdateResponse" element="msnab:ABContactUpdateResponse"/>
</message>
<message name="AddMemberResponseMessage">
<part name="AddMemberResponse" element="msnab:AddMemberResponse"/>
</message>
<message name="DeleteMemberResponseMessage">
<part name="DeleteMemberResponse" element="msnab:DeleteMemberResponse"/>
</message>
<message name="InvalidPassportUserMessage">
<part name="fault" element="msnab:InvalidPassportUser"/>
</message>
<message name="ABAddMessage">
<part name="ABAddRequest" element="msnab:ABAdd"/>
</message>
<message name="ABAddResponseMessage">
<part name="ABAddResponse" element="msnab:ABAddResponse"/>
</message>
<message name="UpdateDynamicItemMessage">
<part name="UpdateDynamicItem" element="msnab:UpdateDynamicItem"/>
</message>
<message name="UpdateDynamicItemResponseMessage">
<part name="UpdateDynamicItemResponse" element="msnab:UpdateDynamicItemResponse"/>
</message>
<message name="ABFindContactsPagedMessage">
<part name="ABFindContactsPagedRequest" element="msnab:ABFindContactsPaged"/>
</message>
<message name="ABFindContactsPagedResponseMessage">
<part name="ABFindContactsPagedResponse" element="msnab:ABFindContactsPagedResponse"/>
</message>
<message name="GetContactsRecentActivityMessage">
<part name="GetContactsRecentActivityRequest" element="msnab:GetContactsRecentActivity"/>
</message>
<message name="GetContactsRecentActivityResponseMessage">
<part name="GetContactsRecentActivityResponse" element="msnab:GetContactsRecentActivityResponse"/>
</message>
<message name="WNHeader">
<part name="WNApplicationHeader" element="msnab:WNApplicationHeader"/>
<part name="WNAuthHeader" element="msnab:WNAuthHeader"/>
<part name="WNServiceHeader" element="msnab:WNServiceHeader"/>
</message>
<message name="CreateCircleMessage">
<part name="CreateCircleRequest" element="msnab:CreateCircle"/>
</message>
<message name="CreateCircleResponseMessage">
<part name="CreateCircleResponse" element="msnab:CreateCircleResponse"/>
</message>
<message name="CreateContactMessage">
<part name="CreateContactRequest" element="msnab:CreateContact"/>
</message>
<message name="CreateContactResponseMessage">
<part name="CreateContactResponse" element="msnab:CreateContactResponse"/>
</message>
<message name="ManageWLConnectionMessage">
<part name="ManageWLConnection" element="msnab:ManageWLConnection"/>
</message>
<message name="ManageWLConnectionResponseMessage">
<part name="ManageWLConnectionResponse" element="msnab:ManageWLConnectionResponse"/>
</message>
<portType name="SharingServicePortType">
<operation name="FindMembership">
<input message="msnab:FindMembershipMessage"/>
<output message="msnab:FindMembershipResponseMessage"/>
</operation>
<operation name="AddMember">
<input message="msnab:AddMemberMessage"/>
<output message="msnab:AddMemberResponseMessage"/>
</operation>
<operation name="DeleteMember">
<input message="msnab:DeleteMemberMessage"/>
<output message="msnab:DeleteMemberResponseMessage"/>
</operation>
<operation name="CreateCircle">
<input message="msnab:CreateCircleMessage"/>
<output message="msnab:CreateCircleResponseMessage"/>
</operation>
</portType>
<portType name="ABServicePortType">
<operation name="ABFindAll">
<input message="msnab:ABFindAllMessage"/>
<output message="msnab:ABFindAllResponseMessage"/>
</operation>
<operation name="ABContactAdd">
<input message="msnab:ABContactAddMessage"/>
<output message="msnab:ABContactAddResponseMessage"/>
<fault name="InvalidPassportUserException" message="msnab:InvalidPassportUserMessage"/>
</operation>
<operation name="ABContactDelete">
<input message="msnab:ABContactDeleteMessage"/>
<output message="msnab:ABContactDeleteResponseMessage"/>
<fault name="InvalidPassportUserException" message="msnab:InvalidPassportUserMessage"/>
</operation>
<operation name="ABGroupContactAdd">
<input message="msnab:ABGroupContactAddMessage"/>
<output message="msnab:ABGroupContactAddResponseMessage"/>
<fault name="InvalidPassportUserException" message="msnab:InvalidPassportUserMessage"/>
</operation>
<operation name="ABGroupAdd">
<input message="msnab:ABGroupAddMessage"/>
<output message="msnab:ABGroupAddResponseMessage"/>
</operation>
<operation name="ABGroupUpdate">
<input message="msnab:ABGroupUpdateMessage"/>
<output message="msnab:ABGroupUpdateResponseMessage"/>
</operation>
<operation name="ABGroupDelete">
<input message="msnab:ABGroupDeleteMessage"/>
<output message="msnab:ABGroupDeleteResponseMessage"/>
</operation>
<operation name="ABGroupContactDelete">
<input message="msnab:ABGroupContactDeleteMessage"/>
<output message="msnab:ABGroupContactDeleteResponseMessage"/>
</operation>
<operation name="ABContactUpdate">
<input message="msnab:ABContactUpdateMessage"/>
<output message="msnab:ABContactUpdateResponseMessage"/>
</operation>
<operation name="ABAdd">
<input message="msnab:ABAddMessage"/>
<output message="msnab:ABAddResponseMessage"/>
</operation>
<operation name="UpdateDynamicItem">
<input message="msnab:UpdateDynamicItemMessage"/>
<output message="msnab:UpdateDynamicItemResponseMessage"/>
</operation>
<operation name="ABFindContactsPaged">
<input message="msnab:ABFindContactsPagedMessage"/>
<output message="msnab:ABFindContactsPagedResponseMessage"/>
</operation>
<operation name="CreateContact">
<input message="msnab:CreateContactMessage"/>
<output message="msnab:CreateContactResponseMessage"/>
</operation>
<operation name="ManageWLConnection">
<input message="msnab:ManageWLConnectionMessage"/>
<output message="msnab:ManageWLConnectionResponseMessage"/>
</operation>
</portType>
<portType name="WhatsUpServicePortType">
<operation name="GetContactsRecentActivity">
<input message="msnab:GetContactsRecentActivityMessage"/>
<output message="msnab:GetContactsRecentActivityResponseMessage"/>
</operation>
</portType>
<binding name="SharingServiceBinding" type="msnab:SharingServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="FindMembership">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/FindMembership"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="AddMember">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/AddMember"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="DeleteMember">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/DeleteMember"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="CreateCircle">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/CreateCircle"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
</binding>
<binding name="ABServiceBinding" type="msnab:ABServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="ABFindAll">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABFindAll"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABContactAdd">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABContactAdd"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
<fault name="InvalidPassportUserException">
<soap:fault name="InvalidPassportUserException" use="literal"/>
</fault>
</operation>
<operation name="ABContactDelete">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABContactDelete"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
<fault name="InvalidPassportUserException">
<soap:fault name="InvalidPassportUserException" use="literal"/>
</fault>
</operation>
<operation name="ABGroupContactAdd">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupContactAdd"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
<fault name="InvalidPassportUserException">
<soap:fault name="InvalidPassportUserException" use="literal"/>
</fault>
</operation>
<operation name="ABGroupAdd">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupAdd"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABGroupUpdate">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupUpdate"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABGroupDelete">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupDelete"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABGroupContactDelete">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupContactDelete"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABContactUpdate">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABContactUpdate"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABAdd">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABAdd"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
<operation name="UpdateDynamicItem">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/UpdateDynamicItem"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
<operation name="ABFindContactsPaged">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABFindContactsPaged"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
<operation name="CreateContact">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/CreateContact"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
<operation name="ManageWLConnection">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ManageWLConnection"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
</binding>
<binding name="WhatsUpServiceBinding" type="msnab:WhatsUpServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetContactsRecentActivity">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/GetContactsRecentActivity"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:WNHeader" part="WNApplicationHeader" use="literal"/>
<soap:header message="msnab:WNHeader" part="WNAuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:WNHeader" part="WNServiceHeader" use="literal"/>
</output>
</operation>
</binding>
<service name="SharingService">
<port name="FindMembershipPort" binding="msnab:SharingServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/SharingService.asmx"/>
</port>
<port name="AddMemberPort" binding="msnab:SharingServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/SharingService.asmx"/>
</port>
<port name="DeleteMemberPort" binding="msnab:SharingServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/SharingService.asmx"/>
</port>
<port name="CreateCirclePort" binding="msnab:SharingServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/SharingService.asmx"/>
</port>
</service>
<service name="ABService">
<port name="ABFindAllPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABContactAddPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABContactDeletePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupContactAddPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupAddPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupUpdatePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupDeletePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupContactDeletePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABContactUpdatePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABAddPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="UpdateDynamicItemPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABFindContactsPagedPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="CreateContactPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ManageWLConnectionPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
</service>
<service name="WhatsUpService">
<port name="GetContactsRecentActivityPort" binding="msnab:WhatsUpServiceBinding">
<soap:address location="http://sup.live.com/whatsnew/whatsnewservice.asmx"/>
</port>
</service>
</definitions>

View File

@ -0,0 +1,832 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by wp (freezingsoft) -->
<xsd:schema xmlns:msnab="http://www.msn.com/webservices/AddressBook" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.msn.com/webservices/AddressBook" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<xsd:complexType name="abInfoType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" minOccurs="0"/>
<xsd:element name="ownerPuid" type="xsd:string"/>
<xsd:element name="OwnerCID" type="xsd:integer" minOccurs="0"/>
<xsd:element name="ownerEmail" type="xsd:string"/>
<xsd:element name="fDefault" type="xsd:boolean"/>
<xsd:element name="joinedNamespace" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsBot" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsParentManaged" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="SubscribeExternalPartner" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="NotifyExternalPartner" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="AddressBookType" type="xsd:string" minOccurs="0"/>
<xsd:element name="MessengerApplicationServiceCreated" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsBetaMigrated" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="HandleType">
<xsd:sequence>
<xsd:element name="Id" type="xsd:integer"/>
<xsd:element name="Type" type="xsd:string" default="Messenger"/>
<xsd:element name="ForeignId" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ServiceType">
<xsd:sequence>
<xsd:element name="Memberships" minOccurs="0">
<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" type="msnab:InfoType"/>
<xsd:element name="Changes" type="xsd:string"/>
<xsd:element name="LastChange" type="xsd:dateTime" default="0001-01-01T00:00:00"/>
<xsd:element name="Deleted" type="xsd:boolean" default="false"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Membership">
<xsd:sequence>
<xsd:element name="MemberRole" type="xsd:string"/>
<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:element name="MembershipIsComplete" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BaseMember">
<xsd:sequence>
<xsd:element name="MembershipId" type="xsd:positiveInteger" minOccurs="0"/>
<xsd:element name="Type" type="xsd:string"/>
<xsd:element name="Location" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Id" type="msnab:Guid"/>
<xsd:element name="IsPassportNameHidden" type="xsd:boolean"/>
<xsd:element name="CID" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DisplayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="State" type="msnab:MemberState"/>
<xsd:element name="Annotations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Annotation" type="msnab:Annotation" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Deleted" type="xsd:boolean" default="false" minOccurs="0"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="JoinedDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ExpirationDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="Changes" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CircleMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="CircleId" type="msnab:Guid"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PassportMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="PassportName" type="xsd:string"/>
<xsd:element name="IsPassportNameHidden" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="PassportId" type="xsd:int" minOccurs="0"/>
<xsd:element name="CID" type="xsd:long" minOccurs="0"/>
<xsd:element name="PassportChanges" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="EmailMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="Email" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PhoneMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="PhoneNumber" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="RoleMember" mixed="false">
<xsd:complexContent mixed="false">
<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>
<xsd:complexType name="ServiceMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="Service" type="msnab:HandleType"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DomainMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="DomainName" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="EveryoneMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="GroupMember" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseMember">
<xsd:sequence>
<xsd:element name="Id" type="msnab:Guid"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="Guid">
<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:element name="MemberType">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Allow"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:simpleType name="MemberState">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Accepted"/>
<xsd:enumeration value="Pending"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Annotation">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Value" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContactType">
<xsd:sequence>
<xsd:element name="contactId" type="msnab:Guid" minOccurs="0"/>
<xsd:element name="contactInfo" type="msnab:contactInfoType" minOccurs="0"/>
<xsd:element name="propertiesChanged" type="xsd:string" 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" minOccurs="0"/>
<xsd:element name="lastChange" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="CreateDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="LastModifiedBy" type="xsd:integer" minOccurs="0"/>
<xsd:element name="CreatedBy" type="xsd:integer" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContactIdType">
<xsd:sequence>
<xsd:element name="contactId" type="msnab:Guid" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="contactInfoType">
<xsd:sequence>
<xsd:element name="emails" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactEmail" type="msnab:contactEmailType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="phones" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactPhone" type="msnab:contactPhoneType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="locations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactLocation" type="msnab:contactLocationType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="webSites" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactWebSite" type="msnab:contactWebSiteType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="annotations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Annotation" type="msnab:Annotation" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupIds" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupIdsDeleted" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="contactType" type="xsd:string" minOccurs="0"/>
<xsd:element name="quickName" type="xsd:string" minOccurs="0"/>
<xsd:element name="firstName" type="xsd:string" minOccurs="0"/>
<xsd:element name="MiddleName" type="xsd:string" minOccurs="0"/>
<xsd:element name="lastName" type="xsd:string" minOccurs="0"/>
<xsd:element name="Suffix" type="xsd:string" minOccurs="0"/>
<xsd:element name="NameTitle" type="xsd:string" minOccurs="0"/>
<xsd:element name="passportName" type="xsd:string" minOccurs="0"/>
<xsd:element name="IsPassportNameHidden" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="displayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="puid" type="xsd:long" minOccurs="0"/>
<xsd:element name="CID" type="xsd:long" minOccurs="0"/>
<xsd:element name="BrandIdList" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="comment" type="xsd:string" minOccurs="0"/>
<xsd:element name="IsNotMobileVisible" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="isMobileIMEnabled" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="isMessengerUser" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="isFavorite" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="isSmtp" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="hasSpace" type="xsd:boolean" 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" minOccurs="0"/>
<xsd:element name="birthdate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="primaryEmailType" type="msnab:ContactEmailTypeType" minOccurs="0"/>
<xsd:element name="PrimaryLocation" type="msnab:ContactLocationTypeType" minOccurs="0"/>
<xsd:element name="PrimaryPhone" type="msnab:ContactPhoneTypeType" minOccurs="0"/>
<xsd:element name="IsPrivate" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="Anniversary" type="xsd:string" 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" minOccurs="0"/>
<xsd:element name="TimeZone" type="xsd:string" minOccurs="0"/>
<xsd:element name="NetworkInfoList" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NetworkInfo" type="msnab:NetworkInfoType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="PublicDisplayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="IsAutoUpdateDisabled" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="MessengerMemberInfo" type="msnab:MessengerMemberInfo" minOccurs="0"/>
<xsd:element name="PropertiesChanged" type="xsd:anyType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="contactEmailType">
<xsd:sequence>
<xsd:element name="contactEmailType" type="msnab: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:enumeration value="Messenger3"/>
<xsd:enumeration value="Messenger4"/>
<xsd:enumeration value="Passport"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="contactPhoneType">
<xsd:sequence>
<xsd:element name="contactPhoneType" type="msnab: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="ContactPhoneMobile"/>
<xsd:enumeration value="ContactPhonePager"/>
<xsd:enumeration value="ContactPhoneOther"/>
<xsd:enumeration value="ContactPhoneFax"/>
<xsd:enumeration value="Personal2"/>
<xsd:enumeration value="Business2"/>
<xsd:enumeration value="BusinessFax"/>
<xsd:enumeration value="BusinessMobile"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="contactLocationType">
<xsd:sequence>
<xsd:element name="contactLocationType" type="msnab:ContactLocationTypeType"/>
<xsd:element name="name" type="xsd:string" 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="Department" type="xsd:string" minOccurs="0"/>
<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="msnab: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="msnab:Guid"/>
<xsd:element name="groupInfo" type="msnab:groupInfoType"/>
<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" minOccurs="0"/>
<xsd:element name="lastChange" type="xsd:dateTime" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="groupInfoType">
<xsd:sequence>
<xsd:element name="annotations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Annotation" type="msnab:Annotation" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupType" type="msnab:Guid" default="C8529CE2-6EAD-434d-881F-341E17DB3FF8" minOccurs="0"/>
<xsd:element name="name" type="xsd:string" minOccurs="0"/>
<xsd:element name="IsNotMobileVisible" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsPrivate" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="IsFavorite" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="fMessenger" type="xsd:boolean" 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="msnab:Guid" minOccurs="0" maxOccurs="unbounded"/>
</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:complexType name="MessengerMemberInfo">
<xsd:sequence>
<xsd:element name="PendingAnnotations" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Annotation" type="msnab:Annotation" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DisplayName" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="InfoType">
<xsd:sequence>
<xsd:element name="Handle" type="msnab:HandleType"/>
<xsd:element name="DisplayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="InverseRequired" type="xsd:boolean" default="false"/>
<xsd:element name="AuthorizationCriteria" type="xsd:string" minOccurs="0"/>
<xsd:element name="RSSUrl" type="xsd:anyURI" minOccurs="0"/>
<xsd:element name="IsBot" type="xsd:boolean" default="false"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NotificationDataType">
<xsd:sequence>
<xsd:element name="StoreService" type="msnab:ServiceType"/>
<xsd:element name="Status" type="xsd:string"/>
<xsd:element name="LastChanged" type="xsd:dateTime"/>
<xsd:element name="Gleam" type="xsd:boolean" default="false"/>
<xsd:element name="InstanceId" type="xsd:string" default="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="BaseDynamicItemType">
<xsd:sequence>
<xsd:element name="Type" type="xsd:string"/>
<xsd:element name="Deleted" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="Notifications" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NotificationData" type="msnab:NotificationDataType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Changes" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CircleDynamicItem" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseDynamicItemType">
<xsd:sequence>
<xsd:element name="Id" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PassportDynamicItem" block="" mixed="false">
<xsd:complexContent mixed="false">
<xsd:extension base="msnab:BaseDynamicItemType">
<xsd:sequence>
<xsd:element name="CID" type="xsd:string" minOccurs="0"/>
<xsd:element name="PassportName" type="xsd:string"/>
<xsd:element name="PassportId" type="xsd:string" minOccurs="0"/>
<xsd:element name="SpaceStatus" type="xsd:string"/>
<xsd:element name="SpaceLastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="SpaceLastViewed" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="SpaceGleam" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="ProfileLastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ProfileLastView" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ProfileStatus" type="xsd:string"/>
<xsd:element name="ProfileGleam" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="ContactProfileStatus" type="xsd:string"/>
<xsd:element name="ContactProfileLastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ContactProfileLastViewed" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="LiveContactLastChanged" type="xsd:dateTime" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="abType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid"/>
<xsd:element name="abInfo" type="msnab:abInfoType"/>
<xsd:element name="lastChange" type="xsd:dateTime"/>
<xsd:element name="DynamicItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="RecentActivityItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="createDate" type="xsd:dateTime"/>
<xsd:element name="propertiesChanged" type="xsd:anyType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CircleResultType">
<xsd:sequence>
<xsd:element name="Circles" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CircleInverseInfo" type="msnab:CircleInverseInfoType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CircleTicket" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NetworkInfoType">
<xsd:sequence>
<xsd:element name="DomainId" type="xsd:int" minOccurs="0"/>
<xsd:element name="DomainTag" type="xsd:string" minOccurs="0"/>
<xsd:element name="UserTileURL" type="xsd:string" minOccurs="0"/>
<xsd:element name="ProfileURL" type="xsd:string" minOccurs="0"/>
<xsd:element name="DisplayName" type="xsd:string" minOccurs="0"/>
<xsd:element name="RelationshipType" type="xsd:int" minOccurs="0"/>
<xsd:element name="RelationshipState" type="xsd:int" minOccurs="0"/>
<xsd:element name="RelationshipStateDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="RelationshipRole" type="xsd:int" minOccurs="0"/>
<xsd:element name="NDRCount" type="xsd:int" minOccurs="0"/>
<xsd:element name="InviterCID" type="xsd:long" minOccurs="0"/>
<xsd:element name="CreateDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="PropertiesChanged" type="xsd:anyType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContactFilterType">
<xsd:sequence>
<xsd:element name="IncludeHiddenContacts" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="filterOptionsType">
<xsd:sequence>
<xsd:element name="DeltasOnly" type="xsd:boolean"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="ContactFilter" type="msnab:ContactFilterType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="entityHandle">
<xsd:sequence>
<xsd:element name="Cid" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NotationType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Value" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ListTemplateVariableItemType">
<xsd:sequence>
<xsd:element name="Values">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Value" type="msnab:SimpleTemplateVariableBaseType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SimpleTemplateVariableBaseType">
<xsd:complexContent>
<xsd:extension base="msnab:TemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Value" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PublisherIdTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:TemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Id" type="xsd:string"/>
<xsd:element name="NameHint" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TargetIdTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:PublisherIdTemplateVariable">
<xsd:sequence>
<xsd:element name="IdOwner" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TextTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:SimpleTemplateVariableBaseType"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="HlinkTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:SimpleTemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Text" type="xsd:string"/>
<xsd:element name="Notations">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Notation" type="msnab:NotationType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ListTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:TemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Items">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ListTemplateVariableItem" type="msnab:ListTemplateVariableItemType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ImageTemplateVariable">
<xsd:complexContent>
<xsd:extension base="msnab:SimpleTemplateVariableBaseType">
<xsd:sequence>
<xsd:element name="Href" type="xsd:anyURI"/>
<xsd:element name="Notations">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Notation" type="msnab:NotationType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ActivityDetailsType">
<xsd:sequence>
<xsd:element name="OwnerCID" type="xsd:string"/>
<xsd:element name="ObjectId" type="xsd:string"/>
<xsd:element name="ApplicationId" type="xsd:string"/>
<xsd:element name="ChangeType" type="xsd:string"/>
<xsd:element name="PublishDate" type="xsd:dateTime"/>
<xsd:element name="TemplateVariables">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TemplateVariable" type="msnab:TemplateVariableBaseType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RecentActivityTemplateType">
<xsd:sequence>
<xsd:element name="Cardinality" type="xsd:string"/>
<xsd:element name="Data" type="xsd:string"/>
<xsd:element name="Title" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RequestedLocalesType">
<xsd:sequence>
<xsd:element name="string" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RecentActivityTemplateContainerType">
<xsd:sequence>
<xsd:element name="ApplicationId" type="xsd:string"/>
<xsd:element name="ApplicationName" type="xsd:string"/>
<xsd:element name="ChangeType" type="xsd:integer"/>
<xsd:element name="Locale" type="xsd:string"/>
<xsd:element name="RequestedLocales" type="msnab:RequestedLocalesType"/>
<xsd:element name="TemplateRevision" type="xsd:integer"/>
<xsd:element name="Templates">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RecentActivityTemplate" type="msnab:RecentActivityTemplateType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CollapseCondition" type="msnab:CollapseConditionType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CollapseConditionType">
<xsd:sequence>
<xsd:element name="string" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CirclePersonalMembershipType">
<xsd:sequence>
<xsd:element name="Role" type="xsd:string"/>
<xsd:element name="State" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="abHandleType">
<xsd:sequence>
<xsd:element name="ABId" type="xsd:string"/>
<xsd:element name="Puid" type="xsd:long"/>
<xsd:element name="Cid" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="contactHandleType">
<xsd:sequence>
<xsd:element name="Email" type="xsd:string"/>
<xsd:element name="Puid" type="xsd:long"/>
<xsd:element name="Cid" type="xsd:long"/>
<xsd:element name="CircleId" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MembershipInfoType">
<xsd:sequence>
<xsd:element name="CirclePersonalMembership" type="msnab:CirclePersonalMembershipType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PersonalInfoType">
<xsd:sequence>
<xsd:element name="MembershipInfo" type="msnab:MembershipInfoType"/>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="IsNotMobileVisible" type="xsd:boolean"/>
<xsd:element name="IsFavorite" type="xsd:boolean"/>
<xsd:element name="IsFamily" type="xsd:boolean"/>
<xsd:element name="Changes" type="xsd:anyType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContentInfoType">
<xsd:sequence>
<xsd:element name="Domain" type="xsd:int"/>
<xsd:element name="HostedDomain" type="xsd:string"/>
<xsd:element name="Type" type="xsd:int"/>
<xsd:element name="MembershipAccess" type="xsd:int"/>
<xsd:element name="IsPresenceEnabled" type="xsd:boolean"/>
<xsd:element name="RequestMembershipOption" type="xsd:int"/>
<xsd:element name="DisplayName" type="xsd:string"/>
<xsd:element name="ProfileLastUpdated" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="Changes" type="xsd:anyType" minOccurs="0"/>
<xsd:element name="CreateDate" type="xsd:dateTime" minOccurs="0"/>
<xsd:element name="LastChanged" type="xsd:dateTime" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContentHandleType">
<xsd:sequence>
<xsd:element name="Id" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ContentType">
<xsd:sequence>
<xsd:element name="Handle" type="msnab:ContentHandleType"/>
<xsd:element name="Info" type="msnab:ContentInfoType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CircleInverseInfoType">
<xsd:sequence>
<xsd:element name="Content" type="msnab:ContentType"/>
<xsd:element name="PersonalInfo" type="msnab:PersonalInfoType"/>
<xsd:element name="Deleted" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="callerInfoType">
<xsd:sequence>
<xsd:element name="PublicDisplayName" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

View File

@ -0,0 +1,567 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by wp (freezingsoft) -->
<xsd:schema xmlns:msnab="http://www.msn.com/webservices/AddressBook" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.msn.com/webservices/AddressBook" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<xsd:include schemaLocation="msnab_datatypes.xsd"/>
<xsd:element name="ABApplicationHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ApplicationId" type="msnab:Guid" fixed="09607671-1C32-421F-A6A6-CBFAA51AB5F4"/>
<xsd:element name="IsMigration" type="xsd:boolean" default="false"/>
<xsd:element name="PartnerScenario" type="xsd:string" default="Initial"/>
<xsd:element name="CacheKey" type="xsd:token" minOccurs="0"/>
<xsd:element name="BrandId" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABAuthHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ManagedGroupRequest" type="xsd:boolean" default="false"/>
<xsd:element name="TicketToken" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ServiceHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Version" type="xsd:token"/>
<xsd:element name="CacheKey" type="xsd:token" minOccurs="0"/>
<xsd:element name="CacheKeyChanged" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="PreferredHostName" type="xsd:string" minOccurs="0"/>
<xsd:element name="SessionId" type="msnab:Guid" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="FindMembership" type="msnab:FindMembershipRequestType"/>
<xsd:complexType name="FindMembershipRequestType">
<xsd:sequence>
<xsd:element name="serviceFilter">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Types">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ServiceType" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="View" type="xsd:string" minOccurs="0"/>
<xsd:element name="deltasOnly" type="xsd:boolean" default="false" minOccurs="0"/>
<xsd:element name="lastChange" type="xsd:dateTime" default="0001-01-01T00:00:00.0000000-08:00" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FindMembershipResultType">
<xsd:sequence>
<xsd:element name="Services">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Service" type="msnab:ServiceType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="OwnerNamespace">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Info">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Handle">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Id" type="xsd:string"/>
<xsd:element name="IsPassportNameHidden" type="xsd:boolean"/>
<xsd:element name="CID" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CreatorPuid" type="xsd:integer"/>
<xsd:element name="CreatorCID" type="xsd:integer"/>
<xsd:element name="CreatorPassportName" type="xsd:string"/>
<xsd:element name="CircleAttributes">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="IsPresenceEnabled" type="xsd:boolean"/>
<xsd:element name="IsEvent" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="Domain" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="MessengerApplicationServiceCreated" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Changes" type="xsd:string"/>
<xsd:element name="CreateDate" type="xsd:dateTime"/>
<xsd:element name="LastChange" type="xsd:dateTime"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="FindMembershipResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FindMembershipResult" type="msnab:FindMembershipResultType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABFindAll" type="msnab:ABFindAllRequestType"/>
<xsd:complexType name="ABFindAllRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="abView" type="xsd:string" minOccurs="0"/>
<xsd:element name="deltasOnly" type="xsd:boolean" default="false" minOccurs="0"/>
<xsd:element name="lastChange" type="xsd:dateTime" default="0001-01-01T00:00:00.0000000-08:00" minOccurs="0"/>
<xsd:element name="dynamicItemView" type="xsd:string" fixed="Gleam" minOccurs="0"/>
<xsd:element name="dynamicItemLastChange" type="xsd:dateTime" default="0001-01-01T00:00:00.0000000-08:00" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABFindAllResultType">
<xsd:sequence>
<xsd:element name="groups" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Group" type="msnab:GroupType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DynamicItems" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DynamicItem" type="msnab:BaseDynamicItemType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CircleResult">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CircleTicket" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ab">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid"/>
<xsd:element name="abInfo" type="msnab:abInfoType"/>
<xsd:element name="lastChange" type="xsd:dateTime"/>
<xsd:element name="DynamicItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="RecentActivityItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="createDate" type="xsd:dateTime"/>
<xsd:element name="propertiesChanged" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABFindAllResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABFindAllResult" type="msnab:ABFindAllResultType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABContactAdd" type="msnab:ABContactAddRequestType"/>
<xsd:complexType name="ABContactAddRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="options" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="EnableAllowListManagement" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABContactAddResultType">
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABContactAddResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABContactAddResult" type="msnab:ABContactAddResultType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABContactDelete" type="msnab:ABContactDeleteRequestType"/>
<xsd:complexType name="ABContactDeleteRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactIdType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABContactDeleteResponse"/>
<xsd:element name="ABGroupContactAdd" type="msnab:ABGroupContactAddRequestType"/>
<xsd:complexType name="ABGroupContactAddRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="groupFilter" type="msnab:groupFilterType"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupContactAddOptions" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="fGenerateMissingQuickName" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="EnableAllowListManagement" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABGroupContactAddResultType">
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupContactAddResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABGroupContactAddResult" type="msnab:ABGroupContactAddResultType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABGroupAdd" type="msnab:ABGroupAddRequestType"/>
<xsd:complexType name="ABGroupAddRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="groupAddOptions">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="fRenameOnMsgrConflict" type="xsd:boolean" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupInfo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="GroupInfo" type="msnab:groupInfoType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABGroupAddResultType">
<xsd:sequence>
<xsd:element name="guid" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupAddResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABGroupAddResult" type="msnab:ABGroupAddResultType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ABGroupUpdate" type="msnab:ABGroupUpdateRequestType"/>
<xsd:complexType name="ABGroupUpdateRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="groups">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Group" type="msnab:GroupType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupUpdateResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="ABGroupDelete" type="msnab:ABGroupDeleteRequestType"/>
<xsd:complexType name="ABGroupDeleteRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="groupFilter" type="msnab:groupFilterType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupDeleteResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="ABContactUpdate" type="msnab:ABContactUpdateRequestType"/>
<xsd:complexType name="ABContactUpdateRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABContactUpdateResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="ABGroupContactDelete" type="msnab:ABGroupContactDeleteRequestType"/>
<xsd:complexType name="ABGroupContactDeleteRequestType">
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid" fixed="00000000-0000-0000-0000-000000000000"/>
<xsd:element name="contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="groupFilter" type="msnab:groupFilterType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABGroupContactDeleteResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="AddMember" type="msnab:AddMemberRequestType"/>
<xsd:complexType name="AddMemberRequestType">
<xsd:sequence>
<xsd:element name="serviceHandle" type="msnab:HandleType"/>
<xsd:element name="memberships">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Membership" type="msnab:Membership" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="AddMemberResponse">
<xsd:complexType/>
</xsd:element>
<xsd:element name="DeleteMember" type="msnab:DeleteMemberRequestType"/>
<xsd:complexType name="DeleteMemberRequestType">
<xsd:sequence>
<xsd:element name="serviceHandle" type="msnab:HandleType"/>
<xsd:element name="memberships">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Membership" type="msnab:Membership" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="nsHandle" type="msnab:ContentHandleType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="DeleteMemberResponse">
<xsd:complexType/>
</xsd:element>
<xsd:complexType name="ABAddResponseType">
<xsd:sequence>
<xsd:element name="ABAddResult" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABAddResponse" type="msnab:ABAddResponseType"/>
<xsd:element name="ABAdd" type="msnab:ABAddRequestType"/>
<xsd:complexType name="ABAddRequestType">
<xsd:sequence>
<xsd:element name="abInfo" type="msnab:abInfoType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="UpdateDynamicItemRequestType">
<xsd:sequence>
<xsd:element name="abId" type="xsd:string"/>
<xsd:element name="dynamicItems">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DynamicItem" type="msnab:BaseDynamicItemType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="UpdateDynamicItem" type="msnab:UpdateDynamicItemRequestType"/>
<xsd:element name="UpdateDynamicItemResponse"/>
<xsd:element name="ABFindContactsPaged" type="msnab:ABFindContactsPagedRequestType"/>
<xsd:complexType name="ABFindContactsPagedRequestType">
<xsd:sequence>
<xsd:element name="filterOptions" type="msnab:filterOptionsType"/>
<xsd:element name="abView" type="xsd:string"/>
<xsd:element name="extendedContent" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ABFindContactsPagedResultType">
<xsd:sequence>
<xsd:element name="Groups" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Group" type="msnab:GroupType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Contacts">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Contact" type="msnab:ContactType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CircleResult" type="msnab:CircleResultType"/>
<xsd:element name="Ab">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="abId" type="msnab:Guid"/>
<xsd:element name="abInfo" type="msnab:abInfoType"/>
<xsd:element name="lastChange" type="xsd:dateTime"/>
<xsd:element name="DynamicItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="RecentActivityItemLastChanged" type="xsd:dateTime"/>
<xsd:element name="createDate" type="xsd:dateTime"/>
<xsd:element name="propertiesChanged" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ABFindContactsPagedResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ABFindContactsPagedResult" type="msnab:ABFindContactsPagedResultType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="WNApplicationHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ApplicationId" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="WNAuthHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TicketToken" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="WNServiceHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Version" type="xsd:token"/>
<xsd:element name="CacheKey" type="xsd:token" minOccurs="0"/>
<xsd:element name="CacheKeyChanged" type="xsd:boolean" minOccurs="0"/>
<xsd:element name="PreferredHostName" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GetContactsRecentActivity" type="msnab:GetContactsRecentActivityRequestType"/>
<xsd:complexType name="GetContactsRecentActivityRequestType">
<xsd:sequence>
<xsd:element name="entityHandle" type="msnab:entityHandle"/>
<xsd:element name="locales">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="string" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="count" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="GetContactsRecentActivityResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="GetContactsRecentActivityResult" type="msnab:GetContactsRecentActivityResultType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="GetContactsRecentActivityResultType">
<xsd:sequence>
<xsd:element name="Activities">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ActivityDetails" type="msnab:ActivityDetailsType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Templates">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RecentActivityTemplateContainer" type="msnab:RecentActivityTemplateContainerType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="FeedUrl" type="xsd:anyURI"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ManageWLConnection" type="msnab:ManageWLConnectionRequestType"/>
<xsd:complexType name="ManageWLConnectionRequestType">
<xsd:sequence>
<xsd:element name="abHandle" type="msnab:abHandleType"/>
<xsd:element name="contactId" type="xsd:string"/>
<xsd:element name="connection" type="xsd:boolean"/>
<xsd:element name="presence" type="xsd:boolean"/>
<xsd:element name="action" type="xsd:integer"/>
<xsd:element name="relationshipType" type="xsd:int"/>
<xsd:element name="relationshipRole" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="ManageWLConnectionResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ManageWLConnectionResult" type="msnab:ContactType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CreateContact" type="msnab:CreateContactType"/>
<xsd:complexType name="CreateContactType">
<xsd:sequence>
<xsd:element name="abHandle" type="msnab:abHandleType"/>
<xsd:element name="contactHandle" type="msnab:contactHandleType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="CreateContactResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CreateContactResult" type="msnab:ContactType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CreateCircle" type="msnab:CreateCircleRequestType"/>
<xsd:complexType name="CreateCircleRequestType">
<xsd:sequence>
<xsd:element name="properties" type="msnab:ContentInfoType"/>
<xsd:element name="callerInfo" type="msnab:callerInfoType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CreateCircleResponseType">
<xsd:sequence>
<xsd:element name="Id" type="msnab:Guid"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="CreateCircleResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CreateCircleResult" type="msnab:CreateCircleResponseType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

View File

@ -0,0 +1,532 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by wp (freezingsoft) -->
<definitions xmlns:msnab="http://www.msn.com/webservices/AddressBook" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.msn.com/webservices/AddressBook">
<types>
<ns:schema xmlns="http://www.w3.org/2001/XMLSchema">
<ns:import schemaLocation="msnab_servicetypes.xsd" namespace="http://www.msn.com/webservices/AddressBook"/>
</ns:schema>
</types>
<message name="ABHeader">
<part name="ApplicationHeader" element="msnab:ABApplicationHeader"/>
<part name="AuthHeader" element="msnab:ABAuthHeader"/>
</message>
<message name="FindMembershipMessage">
<part name="FindMembershipRequest" element="msnab:FindMembership"/>
</message>
<message name="ABFindAllMessage">
<part name="ABFindAllRequest" element="msnab:ABFindAll"/>
</message>
<message name="ABContactAddMessage">
<part name="ABContactAddRequest" element="msnab:ABContactAdd"/>
</message>
<message name="ABContactDeleteMessage">
<part name="ABContactDeleteRequest" element="msnab:ABContactDelete"/>
</message>
<message name="ABGroupContactAddMessage">
<part name="ABGroupContactAddRequest" element="msnab:ABGroupContactAdd"/>
</message>
<message name="ABGroupAddMessage">
<part name="ABGroupAddRequest" element="msnab:ABGroupAdd"/>
</message>
<message name="ABGroupUpdateMessage">
<part name="ABGroupUpdateRequest" element="msnab:ABGroupUpdate"/>
</message>
<message name="ABGroupDeleteMessage">
<part name="ABGroupDeleteRequest" element="msnab:ABGroupDelete"/>
</message>
<message name="ABGroupContactDeleteMessage">
<part name="ABGroupContactDeleteRequest" element="msnab:ABGroupContactDelete"/>
</message>
<message name="ABContactUpdateMessage">
<part name="ABContactUpdateRequest" element="msnab:ABContactUpdate"/>
</message>
<message name="AddMemberMessage">
<part name="AddMemberRequest" element="msnab:AddMember"/>
</message>
<message name="DeleteMemberMessage">
<part name="DeleteMemberRequest" element="msnab:DeleteMember"/>
</message>
<message name="ServiceHeader">
<part name="ServiceHeader" element="msnab:ServiceHeader"/>
</message>
<message name="FindMembershipResponseMessage">
<part name="FindMembershipResponse" element="msnab:FindMembershipResponse"/>
</message>
<message name="ABFindAllResponseMessage">
<part name="ABFindAllResponse" element="msnab:ABFindAllResponse"/>
</message>
<message name="ABContactAddResponseMessage">
<part name="ABContactAddResponse" element="msnab:ABContactAddResponse"/>
</message>
<message name="ABContactDeleteResponseMessage">
<part name="ABContactDeleteResponse" element="msnab:ABContactDeleteResponse"/>
</message>
<message name="ABGroupContactAddResponseMessage">
<part name="ABGroupContactAddResponse" element="msnab:ABGroupContactAddResponse"/>
</message>
<message name="ABGroupAddResponseMessage">
<part name="ABGroupAddResponse" element="msnab:ABGroupAddResponse"/>
</message>
<message name="ABGroupUpdateResponseMessage">
<part name="ABGroupUpdateResponse" element="msnab:ABGroupUpdateResponse"/>
</message>
<message name="ABGroupDeleteResponseMessage">
<part name="ABGroupDeleteResponse" element="msnab:ABGroupDeleteResponse"/>
</message>
<message name="ABGroupContactDeleteResponseMessage">
<part name="ABGroupContactDeleteResponse" element="msnab:ABGroupContactDeleteResponse"/>
</message>
<message name="ABContactUpdateResponseMessage">
<part name="ABContactUpdateResponse" element="msnab:ABContactUpdateResponse"/>
</message>
<message name="AddMemberResponseMessage">
<part name="AddMemberResponse" element="msnab:AddMemberResponse"/>
</message>
<message name="DeleteMemberResponseMessage">
<part name="DeleteMemberResponse" element="msnab:DeleteMemberResponse"/>
</message>
<message name="InvalidPassportUserMessage">
<part name="fault" element="msnab:InvalidPassportUser"/>
</message>
<message name="ABAddMessage">
<part name="ABAddRequest" element="msnab:ABAdd"/>
</message>
<message name="ABAddResponseMessage">
<part name="ABAddResponse" element="msnab:ABAddResponse"/>
</message>
<message name="UpdateDynamicItemMessage">
<part name="UpdateDynamicItem" element="msnab:UpdateDynamicItem"/>
</message>
<message name="UpdateDynamicItemResponseMessage">
<part name="UpdateDynamicItemResponse" element="msnab:UpdateDynamicItemResponse"/>
</message>
<message name="ABFindContactsPagedMessage">
<part name="ABFindContactsPagedRequest" element="msnab:ABFindContactsPaged"/>
</message>
<message name="ABFindContactsPagedResponseMessage">
<part name="ABFindContactsPagedResponse" element="msnab:ABFindContactsPagedResponse"/>
</message>
<message name="GetContactsRecentActivityMessage">
<part name="GetContactsRecentActivityRequest" element="msnab:GetContactsRecentActivity"/>
</message>
<message name="GetContactsRecentActivityResponseMessage">
<part name="GetContactsRecentActivityResponse" element="msnab:GetContactsRecentActivityResponse"/>
</message>
<message name="WNHeader">
<part name="WNApplicationHeader" element="msnab:WNApplicationHeader"/>
<part name="WNAuthHeader" element="msnab:WNAuthHeader"/>
<part name="WNServiceHeader" element="msnab:WNServiceHeader"/>
</message>
<message name="CreateCircleMessage">
<part name="CreateCircleRequest" element="msnab:CreateCircle"/>
</message>
<message name="CreateCircleResponseMessage">
<part name="CreateCircleResponse" element="msnab:CreateCircleResponse"/>
</message>
<message name="CreateContactMessage">
<part name="CreateContactRequest" element="msnab:CreateContact"/>
</message>
<message name="CreateContactResponseMessage">
<part name="CreateContactResponse" element="msnab:CreateContactResponse"/>
</message>
<message name="ManageWLConnectionMessage">
<part name="ManageWLConnection" element="msnab:ManageWLConnection"/>
</message>
<message name="ManageWLConnectionResponseMessage">
<part name="ManageWLConnectionResponse" element="msnab:ManageWLConnectionResponse"/>
</message>
<portType name="SharingServicePortType">
<operation name="FindMembership">
<input message="msnab:FindMembershipMessage"/>
<output message="msnab:FindMembershipResponseMessage"/>
</operation>
<operation name="AddMember">
<input message="msnab:AddMemberMessage"/>
<output message="msnab:AddMemberResponseMessage"/>
</operation>
<operation name="DeleteMember">
<input message="msnab:DeleteMemberMessage"/>
<output message="msnab:DeleteMemberResponseMessage"/>
</operation>
<operation name="CreateCircle">
<input message="msnab:CreateCircleMessage"/>
<output message="msnab:CreateCircleResponseMessage"/>
</operation>
</portType>
<portType name="ABServicePortType">
<operation name="ABFindAll">
<input message="msnab:ABFindAllMessage"/>
<output message="msnab:ABFindAllResponseMessage"/>
</operation>
<operation name="ABContactAdd">
<input message="msnab:ABContactAddMessage"/>
<output message="msnab:ABContactAddResponseMessage"/>
<fault name="InvalidPassportUserException" message="msnab:InvalidPassportUserMessage"/>
</operation>
<operation name="ABContactDelete">
<input message="msnab:ABContactDeleteMessage"/>
<output message="msnab:ABContactDeleteResponseMessage"/>
<fault name="InvalidPassportUserException" message="msnab:InvalidPassportUserMessage"/>
</operation>
<operation name="ABGroupContactAdd">
<input message="msnab:ABGroupContactAddMessage"/>
<output message="msnab:ABGroupContactAddResponseMessage"/>
<fault name="InvalidPassportUserException" message="msnab:InvalidPassportUserMessage"/>
</operation>
<operation name="ABGroupAdd">
<input message="msnab:ABGroupAddMessage"/>
<output message="msnab:ABGroupAddResponseMessage"/>
</operation>
<operation name="ABGroupUpdate">
<input message="msnab:ABGroupUpdateMessage"/>
<output message="msnab:ABGroupUpdateResponseMessage"/>
</operation>
<operation name="ABGroupDelete">
<input message="msnab:ABGroupDeleteMessage"/>
<output message="msnab:ABGroupDeleteResponseMessage"/>
</operation>
<operation name="ABGroupContactDelete">
<input message="msnab:ABGroupContactDeleteMessage"/>
<output message="msnab:ABGroupContactDeleteResponseMessage"/>
</operation>
<operation name="ABContactUpdate">
<input message="msnab:ABContactUpdateMessage"/>
<output message="msnab:ABContactUpdateResponseMessage"/>
</operation>
<operation name="ABAdd">
<input message="msnab:ABAddMessage"/>
<output message="msnab:ABAddResponseMessage"/>
</operation>
<operation name="UpdateDynamicItem">
<input message="msnab:UpdateDynamicItemMessage"/>
<output message="msnab:UpdateDynamicItemResponseMessage"/>
</operation>
<operation name="ABFindContactsPaged">
<input message="msnab:ABFindContactsPagedMessage"/>
<output message="msnab:ABFindContactsPagedResponseMessage"/>
</operation>
<operation name="CreateContact">
<input message="msnab:CreateContactMessage"/>
<output message="msnab:CreateContactResponseMessage"/>
</operation>
<operation name="ManageWLConnection">
<input message="msnab:ManageWLConnectionMessage"/>
<output message="msnab:ManageWLConnectionResponseMessage"/>
</operation>
</portType>
<portType name="WhatsUpServicePortType">
<operation name="GetContactsRecentActivity">
<input message="msnab:GetContactsRecentActivityMessage"/>
<output message="msnab:GetContactsRecentActivityResponseMessage"/>
</operation>
</portType>
<binding name="SharingServiceBinding" type="msnab:SharingServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="FindMembership">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/FindMembership"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="AddMember">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/AddMember"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="DeleteMember">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/DeleteMember"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="CreateCircle">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/CreateCircle"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
</binding>
<binding name="ABServiceBinding" type="msnab:ABServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="ABFindAll">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABFindAll"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABContactAdd">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABContactAdd"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
<fault name="InvalidPassportUserException">
<soap:fault name="InvalidPassportUserException" use="literal"/>
</fault>
</operation>
<operation name="ABContactDelete">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABContactDelete"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
<fault name="InvalidPassportUserException">
<soap:fault name="InvalidPassportUserException" use="literal"/>
</fault>
</operation>
<operation name="ABGroupContactAdd">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupContactAdd"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
<fault name="InvalidPassportUserException">
<soap:fault name="InvalidPassportUserException" use="literal"/>
</fault>
</operation>
<operation name="ABGroupAdd">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupAdd"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABGroupUpdate">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupUpdate"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABGroupDelete">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupDelete"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABGroupContactDelete">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABGroupContactDelete"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABContactUpdate">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABContactUpdate"/>
<input>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
<soap:body use="literal"/>
</input>
<output>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
<soap:body use="literal"/>
</output>
</operation>
<operation name="ABAdd">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABAdd"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
<operation name="UpdateDynamicItem">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/UpdateDynamicItem"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
<operation name="ABFindContactsPaged">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ABFindContactsPaged"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
<operation name="CreateContact">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/CreateContact"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
<operation name="ManageWLConnection">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/ManageWLConnection"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:ABHeader" part="ApplicationHeader" use="literal"/>
<soap:header message="msnab:ABHeader" part="AuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:ServiceHeader" part="ServiceHeader" use="literal"/>
</output>
</operation>
</binding>
<binding name="WhatsUpServiceBinding" type="msnab:WhatsUpServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetContactsRecentActivity">
<soap:operation soapAction="http://www.msn.com/webservices/AddressBook/GetContactsRecentActivity"/>
<input>
<soap:body use="literal"/>
<soap:header message="msnab:WNHeader" part="WNApplicationHeader" use="literal"/>
<soap:header message="msnab:WNHeader" part="WNAuthHeader" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
<soap:header message="msnab:WNHeader" part="WNServiceHeader" use="literal"/>
</output>
</operation>
</binding>
<service name="SharingService">
<port name="FindMembershipPort" binding="msnab:SharingServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/SharingService.asmx"/>
</port>
<port name="AddMemberPort" binding="msnab:SharingServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/SharingService.asmx"/>
</port>
<port name="DeleteMemberPort" binding="msnab:SharingServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/SharingService.asmx"/>
</port>
<port name="CreateCirclePort" binding="msnab:SharingServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/SharingService.asmx"/>
</port>
</service>
<service name="ABService">
<port name="ABFindAllPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABContactAddPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABContactDeletePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupContactAddPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupAddPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupUpdatePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupDeletePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABGroupContactDeletePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABContactUpdatePort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABAddPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="UpdateDynamicItemPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ABFindContactsPagedPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="CreateContactPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
<port name="ManageWLConnectionPort" binding="msnab:ABServiceBinding">
<soap:address location="https://contacts.msn.com/abservice/abservice.asmx"/>
</port>
</service>
<service name="WhatsUpService">
<port name="GetContactsRecentActivityPort" binding="msnab:WhatsUpServiceBinding">
<soap:address location="http://sup.live.com/whatsnew/whatsnewservice.asmx"/>
</port>
</service>
</definitions>

105
plugins/Msn/msnmanager.php Normal file
View File

@ -0,0 +1,105 @@
<?php
/*
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2008, 2009, StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
/**
* AIM background connection manager for AIM-using queue handlers,
* allowing them to send outgoing messages on the right connection.
*
* Input is handled during socket select loop, keepalive pings during idle.
* Any incoming messages will be handled.
*
* In a multi-site queuedaemon.php run, one connection will be instantiated
* for each site being handled by the current process that has XMPP enabled.
*/
class MsnManager extends ImManager
{
public $conn = null;
/**
* Initialize connection to server.
* @return boolean true on success
*/
public function start($master)
{
if(parent::start($master))
{
$this->connect();
return true;
}else{
return false;
}
}
public function getSockets()
{
$this->connect();
if($this->conn){
return $this->conn->getSockets();
}else{
return array();
}
}
/**
* Process AIM events that have come in over the wire.
* @param resource $socket
*/
public function handleInput($socket)
{
common_log(LOG_DEBUG, "Servicing the MSN queue.");
$this->stats('msn_process');
$this->conn->receive();
}
function connect()
{
if (!$this->conn) {
$this->conn=new MSN(array(
'user' => $this->plugin->user,
'password' => $this->plugin->password,
'alias' => $this->plugin->nickname,
'psm' => 'Send me a message to post a notice',
'debug' => true
)
);
$this->conn->registerHandler("IMIn", array($this, 'handle_msn_message'));
$this->conn->signon();
}
return $this->conn;
}
function handle_msn_message($data)
{
$this->plugin->enqueue_incoming_raw($data);
return true;
}
function send_raw_message($data)
{
$this->connect();
if (!$this->conn) {
return false;
}
$this->conn->sflapSend($data[0],$data[1],$data[2],$data[3]);
return true;
}
}