Версия сервера Exchange «V2_22» возвращена для шаблона перерывов Office 365 - последствия?

Я просто заметил, что общение с Office365 Exchange Web Services наhttps://outlook.office365.com/ews/exchange.asmx Я получаю это в моем заголовке ответа SOAP:

<Envelope>
  <Header>
    <ServerVersionInfo MajorVersion="15" MinorVersion="0" MajorBuildNumber="1049" MinorBuildNumber="23" Version="V2_22"/>
  </Header>

Это означает, чтоСвойство version 'version of schema' Теперь нарушает шаблон версий, которые у нас были ранее:
Exchange2007, Exchange2007_SP1, Exchange2010, Exchange2010_SP1, Exchange2010_SP2, Exchange2013

В файлах схемы, которые я нашел через Google (поиск<xs:simpleType name="ExchangeVersionType">) Я не смог найти ничего позже, чем<xs:enumeration value="Exchange2013"/> (например, вhttp://msdn.microsoft.com/en-us/library/ee237685%28v=exchg.80%29.aspx)

Если я сделаю запрос SOAP с этой строкой "V2_22", я все равно получу правильные ответы.

<soapenv:Envelope 
  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types" 
  xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages">
   <soapenv:Header>
      <typ:RequestServerVersion Version="V2_22"/>
   </soapenv:Header>

Но теперь это выглядит так, как будто возвращенная версия больше не является надежным способом определения версии сервера Exchange. Если V2_22 нигде не задокументирован, кто сказал, что завтра он внезапно не изменится на V2_23?

Вопрос: Означает ли это, что теперь мне придется изменить код определения версии, чтобы посмотреть на MajorVersion, а затем сохранить перекрестную ссылку между MajorVersion и ExchangeVersionTypeсебя? Это ужасно: еще одна зависимость, которую нужно поддерживать, - это еще один потенциальный разрыв кода.

[Отредактировано, чтобы добавить]
Это фактический вызов, который дает результат, упомянутый в первом абзаце, включая обмен HTTP:

>> "POST /ews/exchange.asmx HTTP/1.1[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "SOAPAction: "http://schemas.microsoft.com/exchange/services/2006/messages/ResolveNames"[\r][\n]"
>> "Content-Type: text/xml; charset=utf-8[\r][\n]"
>> "Content-Length: 610[\r][\n]"
>> "Host: outlook.office365.com[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.1.1 (java 1.5)[\r][\n]"
>> "[\r][\n]"
>> "<soapenv:Envelope [\n]"
>> "  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" [\n]"
>> "  xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types" [\n]"
>> "  xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages">[\n]"
>> "   <soapenv:Header>[\n]"
>> "      <typ:RequestServerVersion Version="Exchange2007_SP1"/>[\n]"       OR: Exchange2013_SP1
>> "   </soapenv:Header>[\n]"
>> "   <soapenv:Body>[\n]"
>> "    <!-- mes:ResolveNames ReturnFullContactData="1" SearchScope="ActiveDirectoryContacts"-->[\n]"
>> "    <mes:ResolveNames ReturnFullContactData="1">[\n]"
>> "         <mes:UnresolvedEntry>be</mes:UnresolvedEntry>[\n]"
>> "      </mes:ResolveNames>[\n]"
>> "   </soapenv:Body>[\n]"
>> "</soapenv:Envelope>"

<< "HTTP/1.1 401 Anonymous Request Disallowed[\r][\n]"
<< "Server: Microsoft-IIS/8.0[\r][\n]"
<< "request-id: 535f1eb3-294b-4036-a61a-6176ae87a60e[\r][\n]"
<< "Set-Cookie: ClientId=LZLKG0VGKSZMUMEBPSDQ; expires=Fri, 16-Oct-2015 14:42:02 GMT; path=/; HttpOnly[\r][\n]"
<< "X-Powered-By: ASP.NET[\r][\n]"
<< "X-FEServer: DB3PR01CA0057[\r][\n]"
<< "WWW-Authenticate: Basic Realm=""[\r][\n]"
<< "Date: Thu, 16 Oct 2014 14:42:02 GMT[\r][\n]"
<< "Content-Length: 0[\r][\n]"
<< "[\r][\n]"

>> "POST /ews/exchange.asmx HTTP/1.1[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "SOAPAction: "http://schemas.microsoft.com/exchange/services/2006/messages/ResolveNames"[\r][\n]"
>> "Content-Type: text/xml; charset=utf-8[\r][\n]"
>> "Content-Length: 610[\r][\n]"
>> "Host: outlook.office365.com[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.1.1 (java 1.5)[\r][\n]"
>> "Cookie: ClientId=LZLKG0VGKSZMUMEBPSDQ[\r][\n]"
>> "Cookie2: $Version=1[\r][\n]"
>> "Authorization: Basic am[snip]Q==[\r][\n]"
>> "[\r][\n]"
>> "<soapenv:Envelope [\n]"
>> "  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" [\n]"
>> "  xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types" [\n]"
>> "  xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages">[\n]"
>> "   <soapenv:Header>[\n]"
>> "      <typ:RequestServerVersion Version="Exchange2013_SP1"/>[\n]"
>> "   </soapenv:Header>[\n]"
>> "   <soapenv:Body>[\n]"
>> "    <!-- mes:ResolveNames ReturnFullContactData="1" SearchScope="ActiveDirectoryContacts"-->[\n]"
>> "    <mes:ResolveNames ReturnFullContactData="1">[\n]"
>> "         <mes:UnresolvedEntry>be</mes:UnresolvedEntry>[\n]"
>> "      </mes:ResolveNames>[\n]"
>> "   </soapenv:Body>[\n]"
>> "</soapenv:Envelope>"

<< "HTTP/1.1 200 OK[\r][\n]"
<< "Cache-Control: private[\r][\n]"
<< "Transfer-Encoding: chunked[\r][\n]"
<< "Content-Type: text/xml; charset=utf-8[\r][\n]"
<< "Content-Encoding: gzip[\r][\n]"
<< "Vary: Accept-Encoding[\r][\n]"
<< "Server: Microsoft-IIS/8.0[\r][\n]"
<< "request-id: b1ce960a-e0d1-4545-9fe7-6711fc34f7ad[\r][\n]"
<< "X-CalculatedBETarget: db3pr02mb203.eurprd02.prod.outlook.com[\r][\n]"
<< "X-DiagInfo: DB3PR02MB203[\r][\n]"
<< "X-BEServer: DB3PR02MB203[\r][\n]"
<< "X-AspNet-Version: 4.0.30319[\r][\n]"
<< "Set-Cookie: exchangecookie=e1[snip]d01; expires=Fri, 16-Oct-2015 14:42:02 GMT; path=/; HttpOnly[\r][\n]"
<< "Set-Cookie: X-BackEndCookie2=jan@[snip].onmicrosoft.com=u56[snip]g==; expires=Sat, 15-Nov-2014 14:42:02 GMT; path=/ews; secure; HttpOnly[\r][\n]"
<< "Set-Cookie: X-BackEndCookie=jan@[snip].onmicrosoft.com=u56[snip]0=; expires=Sat, 15-Nov-2014 14:42:02 GMT; path=/ews; secure; HttpOnly[\r][\n]"
<< "X-Powered-By: ASP.NET[\r][\n]"
<< "X-FEServer: DB3PR01CA0057[\r][\n]"
<< "Date: Thu, 16 Oct 2014 14:42:02 GMT[\r][\n]"
<< "[\r][\n]"
<< "38c[\r][\n]"
<< "[0x1f][0x8b][snip][0xfc][\n]"
<< "[0xac][0x8f][snip][0x85][\n]"
<< "E{}W>[0xcb][0xda][snip][0xbc]"
<< "[\r][\n]"
<< "a[\r][\n]"
<< "t[0x4][0x13][0x3][0xc3][0xc2][0xb6][0xc6][0xb8][0x5]"
<< "[\r][\n]"
<< "b[\r][\n]"
<< "G[0xff][0xf]6'>[0x1c]I[0x8][0x0][0x0]"
<< "[\r][\n]"
<< "0[\r][\n]"
<< "[\r][\n]"

Ответы на вопрос(3)

Ваш ответ на вопрос