<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="http://schemas.microsoft.com/net/2006/05/peer" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/net/2006/05/peer" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
<xs:import namespace="http://www.w3.org/2005/08/addressing" />
<xs:import namespace="http://schemas.datacontract.org/2004/07/System.Net" />
<xs:import namespace="http://schemas.datacontract.org/2004/07/System.ServiceModel.PeerResolvers" />
<xs:complexType name="Register">
<xs:sequence>
<xs:element minOccurs="0" name="ClientId" type="ser:guid" />
<xs:element minOccurs="0" name="MeshId" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="NodeAddress" nillable="true" type="tns:PeerNodeAddress" />
</xs:sequence>
</xs:complexType>
<xs:element name="Register" nillable="true" type="tns:Register" />
<xs:complexType name="PeerNodeAddress">
<xs:sequence>
<xs:element minOccurs="0" name="EndpointAddress" nillable="true" xmlns:q1="http://www.w3.org/2005/08/addressing" type="q1:EndpointReferenceType" />
<xs:element minOccurs="0" name="IPAddresses" nillable="true" xmlns:q2="http://schemas.datacontract.org/2004/07/System.Net" type="q2:ArrayOfIPAddress" />
</xs:sequence>
</xs:complexType>
<xs:element name="PeerNodeAddress" nillable="true" type="tns:PeerNodeAddress" />
<xs:complexType name="RegisterResponse">
<xs:sequence>
<xs:element minOccurs="0" name="RegistrationId" type="ser:guid" />
<xs:element minOccurs="0" name="RegistrationLifetime" type="ser:duration" />
</xs:sequence>
</xs:complexType>
<xs:element name="RegisterResponse" nillable="true" type="tns:RegisterResponse" />
<xs:complexType name="UpdateInfo">
<xs:sequence>
<xs:element minOccurs="0" name="ClientId" type="ser:guid" />
<xs:element minOccurs="0" name="MeshId" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="NodeAddress" nillable="true" type="tns:PeerNodeAddress" />
<xs:element minOccurs="0" name="RegistrationId" type="ser:guid" />
</xs:sequence>
</xs:complexType>
<xs:element name="UpdateInfo" nillable="true" type="tns:UpdateInfo" />
<xs:complexType name="ResolveInfo">
<xs:sequence>
<xs:element minOccurs="0" name="ClientId" type="ser:guid" />
<xs:element minOccurs="0" name="MaxAddresses" type="xs:int" />
<xs:element minOccurs="0" name="MeshId" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="ResolveInfo" nillable="true" type="tns:ResolveInfo" />
<xs:element name="Resolve" nillable="true" type="tns:ResolveInfo" />
<xs:complexType name="ResolveResponseInfo">
<xs:sequence>
<xs:element minOccurs="0" name="Addresses" nillable="true" type="tns:ArrayOfPeerNodeAddress" />
</xs:sequence>
</xs:complexType>
<xs:element name="ResolveResponseInfo" nillable="true" type="tns:ResolveResponseInfo" />
<xs:complexType name="ArrayOfPeerNodeAddress">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="PeerNodeAddress" nillable="true" type="tns:PeerNodeAddress" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfPeerNodeAddress" nillable="true" type="tns:ArrayOfPeerNodeAddress" />
<xs:element name="ResolveResponse" nillable="true" type="tns:ResolveResponseInfo" />
<xs:complexType name="UnregisterInfo">
<xs:sequence>
<xs:element minOccurs="0" name="MeshId" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="RegistrationId" type="ser:guid" />
</xs:sequence>
</xs:complexType>
<xs:element name="UnregisterInfo" nillable="true" type="tns:UnregisterInfo" />
<xs:element name="Unregister" nillable="true" type="tns:UnregisterInfo" />
<xs:complexType name="RefreshInfo">
<xs:sequence>
<xs:element minOccurs="0" name="MeshId" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="RegistrationId" type="ser:guid" />
</xs:sequence>
</xs:complexType>
<xs:element name="RefreshInfo" nillable="true" type="tns:RefreshInfo" />
<xs:element name="Refresh" nillable="true" type="tns:RefreshInfo" />
<xs:complexType name="RefreshResponseInfo">
<xs:sequence>
<xs:element minOccurs="0" name="RegistrationLifetime" type="ser:duration" />
<xs:element minOccurs="0" name="Result" xmlns:q3="http://schemas.datacontract.org/2004/07/System.ServiceModel.PeerResolvers" type="q3:RefreshResult" />
</xs:sequence>
</xs:complexType>
<xs:element name="RefreshResponseInfo" nillable="true" type="tns:RefreshResponseInfo" />
<xs:element name="RefreshResponse" nillable="true" type="tns:RefreshResponseInfo" />
<xs:complexType name="ServiceSettingsResponseInfo">
<xs:sequence>
<xs:element minOccurs="0" name="ControlMeshShape" type="xs:boolean" />
</xs:sequence>
</xs:complexType>
<xs:element name="ServiceSettingsResponseInfo" nillable="true" type="tns:ServiceSettingsResponseInfo" />
<xs:element name="ServiceSettings" nillable="true" type="tns:ServiceSettingsResponseInfo" />
</xs:schema>