Рекомендации по работе с Office 2010 Mobile Service (часть 3 из 3)

Сводка.  В данной статье рассказывается о схеме XML для данных, передаваемых между поставщиками Microsoft Office 2010 Mobile Service (OMS) и клиентами OMS в Office 2010, и приводится определение веб-службы OMS на языке WSDL. Данная статья представляет собой справочник для поставщиков веб-службы OMS. Обратите внимание, что в Office 2010 используется обновленная версия службы Outlook Mobile по сравнению с выпуском 2007 системы Microsoft Office. (30 печатных страниц)

Дата последнего изменения: 9 марта 2015 г.

Применимо к: Excel 2010 | Office 2007 | Office 2010 | Office Mobile | Open XML | Outlook 2010 | Outlook Mobile | PowerPoint 2010 | SharePoint Foundation 2010 | SharePoint Server 2010 | VBA | Word 2010

В этой статье
Введение в схемы OMS
Справочник по сведениям о службе
Справочник по данным проверки подлинности
Справочник по сведениям о пользователе
Справочник по сообщениям
Справочник по ответам о доставке
Справочник по пакетам сообщений
Справочник по пакетам ответов о доставке
Методы веб-службы OMS
Заключение
Дополнительные материалы

Содержание

  • Введение в схемы OMS

  • Справочник по сведениям о службе

  • Справочник по данным проверки подлинности

  • Справочник по сведениям о пользователе

  • Справочник по сообщениям

  • Справочник по ответам о доставке

  • Справочник по пакетам сообщений

  • Справочник по пакетам ответов о доставке

  • Методы веб-службы OMS

  • Заключение

  • Дополнительные материалы

Введение в схемы OMS

Данная статья является последней в серии из трех статей, которая представляет собой введение в Microsoft Office 2010 Mobile Service (OMS) и содержит рекомендации по работе со службой. Примеры кода и сведения о потоке сообщений между поставщиками и клиентами веб-службы OMS см. в статье Рекомендации по работе с Office 2010 Mobile Service (часть 1 из 3). Рекомендации по реализации веб-службы OMS см. в статье Рекомендации для службы Office 2010 Mobile (часть 2 из 3).

Справочник по сведениям о службе

Сведения о службе представляют собой строку serviceInfo в формате XML, содержащую такие данные о веб-службе OMS, как поддерживаемые типы служб, параметры поддерживаемых служб и типы проверки подлинности. Для возврата строки serviceInfo используется метод GetServiceInfo() .

Элементы строки serviceInfo описаны в разделе, который идет после описания схемы сведений о службе.

Описания элементов

В таблице 1 подробно описаны элементы строки serviceInfo. Все элементы являются обязательными, если явным образом не указано обратное.

Таблица 1. Элементы строки serviceInfo

Элемент

Атрибуты

Описание

<serviceInfo>

Корневой элемент.

<serviceProvider>

Название организации поставщика услуг, которое отображается в Outlook 2010 в окне параметров учетной записи OMS.

<serviceUri>

Универсальный код ресурса (URI) веб-службы, играющий роль уникального идентификатора веб-службы. Если строка serviceUri для веб-службы OMS изменяется, клиент OMS рассматривает такую службу как новую.

<signUpPage>

Универсальный код ресурса (URI) страницы регистрации или входа в систему для веб-службы OMS.

<targetLocale>

Код языка (LCID), используемый для обозначения страны или региона, для которых предназначена веб-служба (например 2052 для китайского языка (Китай) и 1042 для корейского языка).

По умолчанию используется значение 0 (служба является глобальной).

Подробную схему кодов LCID см. в разделе Locale ID (LCID) Chart.

Согласно таблице 9.1-1 спецификации 3GPP2 C.R1001-C, на различных рынках могут использоваться различные схемы кодирования SMS-сообщений. Обычно используются два указанных ниже типа кодирования.

  • 7- или 8-битовое кодирование для текстовых сообщений, содержащих только знаки ASCII, и кодировка Юникод для текстовых сообщений, состоящих из знаков ASCII и других знаков, например знаков в двухбайтовой кодировке (DBCS).

  • 8- и 16-битовое кодирование для знаков ASCII и не-ASCII. Используется в основном в Корее и Японии.

При кодировании первого типа знак ASCII считается за один знак Юникод в текстовом сообщением, состоящем как из знаков ASCII, так и из знаков не-ASCII.

При кодировании второго типа знак ASCII считается за один байт в текстовом сообщении, состоящем как из знаков ASCII, так и из знаков не-ASCII.

Если в качестве языка <targetLocale> установлен корейский или японский, длина сообщения вычисляется на основе кодировки второго типа, а для других языков — на основе кодировки первого типа.

Параметр <targetLocale> также учитывается клиентом при отображении имени веб-службы в пользовательском интерфейсе OMS. Дополнительные сведения см. в описании <localName>.

<localName>

Имя службы на локальном языке, которое отображается в окне параметров учетной записи OMS, если язык, указанный в параметре <targetLocale>, совпадает с языком пользовательского интерфейса Microsoft Office. В противном случае используется язык <englishName>. Имя учетной записи по умолчанию состоит из <localName> или <englishName>, за которым идет элемент <replyPhone> строки userInfo (см. раздел Справочник по сведениям о пользователе данной статьи), в виде <replyPhone> (<localName>).

<englishName>

Имя службы на английском языке, которое отображается в окне параметров учетной записи OMS, если язык, указанный в параметре <targetLocale>, не совпадает с языком пользовательского интерфейса Office.

<authenticationType>

Используется для указания метода проверки подлинности, поддерживаемого веб-службой. Допустимые значения: passport и other. Если значение passport не поддерживается, используйте значение other, которое указывает, что проверка подлинности пользователей выполняется по имени пользователя и паролю.

<batchSize>

Если этот элемент задан, это указывает на то, что веб-служба OMS поддерживает передачу данных в пакетном режиме (например в режиме, используемом в SharePoint 2010). Если этот режим включен, клиент OMS будет доставлять веб-службе OMS несколько элементов xmsData в рамках одной транзакции путем вызова метода DeliverXmsBatch().

В значении batchSize указывается максимальное количество элементов xmsData в отдельном элементе XML.

<supportedService>

Родительский тег для поддерживаемых элементов службы

<SMS_SENDER>

maxRecipientsPerMessage

maxMessagesPerSend

maxSbcsPerMessage

maxDbcsPerMessage

Поддерживаемый тип службы. <SMS_SENDER> обрабатывает исходящие текстовые сообщения. Ограничения и свойства указываются в виде атрибутов. При отправке клиентом сообщения веб-службе требуемый тип службы указывается в строке xmsData, которая передается методу DeliverXms() в виде параметра.

Необязательно, однако должен поддерживаться по крайней мере параметр <SMS_SENDER> или <MMS_SENDER>.

Атрибуты включают указанные ниже элементы.

  • В параметре maxRecipientsPerMessage указывается максимально допустимое количество получателей SMS-сообщения. На стороне службы выполняется проверка того, превышает ли число получателей заданное предельное значение. Если на стороне клиента это значение превышено, веб-служба должна вернуть ошибку с кодом ошибки other (определения кодов ошибок см. в подразделе "Коды ошибок OMS" раздела Справочник по ответам о доставке данной статьи). Клиент OMS позволяет пользователям отправлять SMS-сообщения любому количеству получателей одновременно.

  • В параметре maxMessagesPerSend указывается максимально допустимое количество отдельных SMS-сообщений в одной строке xmsData. Помните, что максимальное значение, поддерживаемое клиентом OMS, равно 20, однако максимальное количество сообщений в одной строке xmsData может достигать 50, если элементу sourceType строки xmsData присвоено значение calSummary. Рекомендуемое значение параметра maxMessagesPerSend — 20. Веб-служба отвечает за проверку сообщений, полученных в одной строке xmsData на соответствие ограничениям, наложенным службой. Если на стороне клиента OMS это значение превышено, веб-служба должна вернуть ошибку с кодом ошибки other.

  • В параметре maxSbcsPerMessage указывается максимально допустимое количество знаков в SMS-сообщении, состоящем только из знаков US ASCII.

  • В параметре maxDbcsPerMessage указывается максимально допустимое количество знаков в SMS-сообщении, состоящем из двухбайтовых знаков.

<LONG_SMS_SENDER>

maxRecipientsPerMessage

maxMessagesPerSend

maxSbcsPerMessage

maxDbcsPerMessage

Поддерживаемый тип службы <LONG_SMS_SENDER> является дочерним элементом элемента <SMS_SENDER>. Если этот элемент указан в строке serviceInfo, Outlook 2010 будет доставлять текст SMS-сообщения в одном элементе контента в xmsData. Если этот элемент не указан, Outlook 2010 будет работать аналогично приложению Outlook 2007, которое все SMS-сообщения, длина которых превышает значение, указанное в параметре maxSbcsPerMessage или maxDbvsPerMessage в <SMS_SENDER>. Ограничения и свойства указываются в виде атрибутов. При отправке клиентом сообщения веб-службе требуемый тип службы указывается в строке xmsData, которая передается методу DeliverXms() в виде параметра.

Чтобы поставщики веб-службы OMS могли правильно обрабатывать длинные (составные) SMS-сообщения, для Outlook 2010 должен поддерживаться параметр <LONG_SMS_SENDER>.

Атрибуты включают указанные ниже элементы.

  • В параметре maxRecipientsPerMessage указывается максимально допустимое количество получателей SMS-сообщения. На стороне службы выполняется проверка того, превышает ли число получателей заданное предельное значение. Если на стороне клиента это значение превышено, веб-служба должна вернуть ошибку с кодом ошибки other (определения кодов ошибок см. в подразделе "Коды ошибок OMS" раздела Справочник по ответам о доставке данной статьи). Клиент OMS позволяет пользователям отправлять SMS-сообщения любому количеству получателей одновременно.

  • В параметре maxMessagesPerSend указывается максимально допустимое количество отдельных SMS-сообщений в одном составном SMS-сообщении в строке xmsData.

  • В параметре maxSbcsPerMessage указывается максимально допустимое количество знаков в SMS-сообщении, которое входит в составное SMS-сообщение, состоящее только из знаков US ASCII.

  • В параметре maxDbcsPerMessage указывается максимально допустимое количество знаков в SMS-сообщении, которое входит в составное SMS-сообщение, состоящее только из двухбайтовых знаков.

<MMS_SENDER>

supportSlide

maxRecipientsPerMessage

maxSizePerMessage

maxSlidesPerMessage

Поддерживаемый тип службы. <MMS_SENDER> обрабатывает исходящие MMS-сообщения. Ограничения и свойства указываются в виде атрибутов.

Необязательно, однако должен поддерживаться по крайней мере параметр <SMS_SENDER> или <MMS_SENDER>.

Атрибуты включают указанные ниже элементы.

  • Параметр supportSlide указывает, поддерживается ли формат SMIL при описании представления MMS-сообщения. Клиент не запрещает пользователям отправлять веб-службе слайдовые MMS-сообщения (сообщения в формате SMIL). Если веб-служба OMS, не поддерживающая формат SMIL, получает сообщение в слайдовом режиме, она должна либо вернуть сообщение об ошибке типа other, либо преобразовать сообщение в неслайдовый режим.

  • Значение maxRecipientsPerMessage совпадает со значением <SMS_SENDER>.

  • В параметре maxSizePerMessage указывается максимальный размер MMS-сообщения в байтах.

  • В параметре maxSlidesPerMessage указывается максимально допустимое количество слайдов в MMS-сообщении.

Схема сведений о службе

В приведенном ниже примере показана схема строки serviceInfo.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" 
    targetNamespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
    xmlns:tns="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="tSMS_SENDER">
        <xs:annotation>
            <xs:documentation>
                Specify a type for outgoing text message service.
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="maxRecipientsPerMessage" type="xs:unsignedInt" use="required">
            <xs:annotation>
                <xs:documentation>
                    Maximum number of recipients allowed for a text message.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxMessagesPerSend" type="xs:unsignedInt" use="required">
            <xs:annotation>
                <xs:documentation>
                    Maximum number of split text messages allowed in one DeliverXms transaction.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxSbcsPerMessage" type="xs:unsignedInt" use="required">
            <xs:annotation>
                <xs:documentation>
                    Maximum number of single-byte chars a text message can have.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxDbcsPerMessage" type="xs:unsignedInt" use="required" >
            <xs:annotation>
                <xs:documentation>
                    Maximum number of double-byte chars a text message can have.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="tMMS_SENDER">
        <xs:annotation>
            <xs:documentation>
                Specify a type for outgoing multimedia message service.
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="supportSlide" type="xs:boolean" use="required">
            <xs:annotation>
                <xs:documentation>
                    Indicate if the Web service supports multimedia messages that are described as a series of slides using SMIL. 
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxRecipientsPerMessage" type="xs:unsignedInt" use="required">
            <xs:annotation>
                <xs:documentation>
                    Maximum number of recipients allowed for a multimedia message.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxSizePerMessage" type="xs:unsignedInt" use="required">
            <xs:annotation>
                <xs:documentation>
                    Maximum size in bytes that a multimedia message can have.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxSlidesPerMessage" type="xs:unsignedInt" use="required">
            <xs:annotation>
                <xs:documentation>
                    Maximum number of slides a multimedia message can have.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="tSupportedService">
        <xs:annotation>
            <xs:documentation>
                Specify a type for services supported by a Web service.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="SMS_SENDER" type="tns:tSMS_SENDER" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Outgoing text message service (SMS).
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="MMS_SENDER" type="tns:tMMS_SENDER" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Outgoing multimedia message service (MMS).
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="tServiceInfo">
        <xs:annotation>
            <xs:documentation>
                Specify a type for Web service properties.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="serviceProvider" type="xs:string">
                <xs:annotation>
                    <xs:documentation>
                        Name of the OMS Web service provider.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="serviceUri" type="xs:string" >
                <xs:annotation>
                    <xs:documentation>
                        Uniform Resource Identifier (URI) of the Web service.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="signUpPage" type="xs:string">
                <xs:annotation>
                    <xs:documentation>
                        Hyperlink to the sign-up page of the Web service.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="targetLocale" type="xs:unsignedShort" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        The Locale ID that represents the market the Web service is for. Use zero for global service. 
                        Default value is zero. 
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="localName" type="xs:string">
                <xs:annotation>
                    <xs:documentation>
                        Official name of the Web service in local language. If the 'targetLocale' is same 
                        as the UI language of Microsoft Office Outlook 2007, 'localName' 
                        is displayed on the account setting user interface of Outlook 2007.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="englishName" type="xs:string">
                <xs:annotation>
                    <xs:documentation>
                        Official name of the Web service in English. If the 'targetLocale' is different 
                        from the UI language of Microsoft Office Outlook 2007, 'englishName' is displayed 
                        on the account setting user interface of Outlook 2007.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="authenticationType" type="xs:string">
                <xs:annotation>
                    <xs:documentation>
                        Type of authentication supported by the Web service. Currently supported values are 'passport' or 'other'.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="supportedService" type="tns:tSupportedService">
                <xs:annotation>
                    <xs:documentation>
                        Supported services by the Web service.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="serviceInfo" type="tns:tServiceInfo">
        <xs:annotation>
            <xs:documentation>
                Information about the Web service with its properties defined in type tServiceInfo.
            </xs:documentation>
        </xs:annotation>
    </xs:element>
</xs:schema>

Справочник по данным проверки подлинности

Данные проверки подлинности представляют собой строку xmsUser в формате XML, которая содержит сведения о проверке подлинности для пользователя. Эта строка передается в качестве параметра методу GetUserInfo(). Дополнительные сведения см. в разделе "Метод веб-службы string GetUserInfo(string xmsUser)" статьи Рекомендации по работе с Office 2010 Mobile Service (часть 1 из 3).

Схема данных проверки подлинности

В приведенном ниже примере показана схема строки xmsUser.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
xmlns:tns="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="tXmsUser">
        <xs:annotation>
            <xs:documentation>
                Specify a type for user's authentication information.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="userId" type="xs:string" minOccurs="0" >
                <xs:annotation>
                    <xs:documentation>
                        User's identification provided by their service provider.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="password" type="xs:string" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        User's password provided by their service provider.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="customData" type="xs:string" minOccurs="0" >
                <xs:annotation>
                    <xs:documentation>
                        Reserved for future extension.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="client" type="xs:string" >
            <xs:annotation>
                <xs:documentation>
                    Client information, such as "Microsoft Office Outlook 12.0".
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:element name="xmsUser" type="tns:tXmsUser" >
        <xs:annotation>
            <xs:documentation>
                User's authentication information.
            </xs:documentation>
        </xs:annotation>
    </xs:element>
</xs:schema>

Справочник по сведениям о пользователе

Строка userInfo — это строка в формате XML, возвращаемая веб-методом GetUserInfo(), который реализован в веб-службах OMS. После успешного вызова метода GetUserInfo() строка userInfo будет содержать сведения о пользователе, а атрибуту code элемента error будет присвоено значение OK. При сбое вызова строка userInfo будет содержать по крайней мере один элемент error, атрибуту severity которого будет присвоено значение failure.

Схема сведений о пользователе

В приведенном ниже примере показана схема строки userInfo.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
xmlns:tns="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="tError">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the error data returned by the Web service.
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="code" type="xs:string" use="required" >
                    <xs:annotation>
                        <xs:documentation>
                            Predefined error code.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="severity" type="xs:string" use="optional" >
                    <xs:annotation>
                        <xs:documentation>
                            Severity of an error.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="tUserInfo">
        <xs:annotation>
            <xs:documentation>
                Specify a type for user information.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="replyPhone" type="xs:string" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Users' mobile phone number.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="smtpAddress" type="xs:string" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        SMTP address for receiving replies from mobile phone.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="error" type="tns:tError">
                <xs:annotation>
                    <xs:documentation>
                        Error data returned by the Web service.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="customData" type="xs:string" minOccurs="0" >
                <xs:annotation>
                    <xs:documentation>
                        Reserved for future extension.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="userInfo" type="tns:tUserInfo">
        <xs:annotation>
            <xs:documentation>
                User information returned by the Web service.
            </xs:documentation>
        </xs:annotation>
    </xs:element>
</xs:schema>

Справочник по сообщениям

Сообщение представляет собой строку xmsData в формате XML, которая используется для хранения данных сообщения, включая содержимое сообщения и сведения о получателях. Эта строка передается в качестве параметра методу веб-службы DeliverXms() . Элементы строки xmsData описаны в таблице 2, после которой идет схема сообщения.

Описания элементов

В таблице 2 описаны некоторые элементы строки xmsData. Все элементы являются обязательными, если явным образом не указано обратное.

Таблица 2. Элементы строки xmsData

Элемент

Атрибут

Описание

<xmsData>

Корневой элемент.

<user>

Родительский тег для элементов сведений о пользователе.

<userId>

Идентификатор пользователя, который представляет собой либо паспорт, либо любую строку из букв и цифр. В качестве идентификатора userId, не являющегося паспортом, можно использовать номер мобильного телефона.

<password>

Пароль, создаваемый при подписке пользователя на услугу у поставщика услуг.

<replyPhone>

Номер ответного звонка (ответный номер), используемый в основном в Корее. Поставщики услуг, не поддерживающие номера ответного звонка, могут проигнорировать этот элемент. Необязательный атрибут.

<customData>

Для расширения функциональности в будущем.

<xmsHead>

Родительский тег для элементов заголовка XMS-сообщения.

<scheduled>

Указывает, что сообщение должно быть отправлено в указанное время (время UTC в формате ГГГГ-ММ-ДДTчч:мм:ссZ). Время задается с точностью до минуты, поэтому элемент секунд ("сс") всегда равен "00". На стороне службы необходимо преобразовать запланированное время в местное время. Если указанное время является прошедшим, сообщение отправляется немедленно. Необязательный атрибут.

<requiredService>

Служба, необходимая клиенту. Одна из поддерживаемых служб задается в строке serviceInfo. Допустимые значения: SMS_SENDER или MMS_SENDER.

<sourceType>

Указывает службе, что сообщение автоматически создано на основе напоминания Outlook, сводки календаря, правил или отправлено вручную с помощью инспектора XMS или инспектора Outlook (значение other).

Допустимые значения: reminder, calSummary, ruleBased, xmsInspector, spAlert и other. В будущем могут быть добавлены дополнительные значения sourceType для клиентов OMS с целью поддержки новых возможностей SMS.

Веб-служба может предоставлять пользователям веб-интерфейс для блокировки некоторых из этих сообщений в определенное время или при определенных условиях. Веб-служба может проигнорировать этот элемент, если она не поддерживает конкретное действие sourceType.

Необязательный атрибут.

<to>

Родительский элемент списка получателей.

<recipient>

Относится к номеру мобильного телефона (адресу) получателя. Несколько вхождений. Необходимо указать по крайней мере одного получателя. Максимально допустимое количество получателей указывается веб-службой в атрибуте maxRecipientsPerMessage поддерживаемого типа службы (<MMS_SENDER> или <SMS_SENDER>).

<xmsBody…>

format

Родительский элемент элементов текста XMS-сообщения. В атрибуте format указывается формат или тип xmsBody. OMS поддерживает SMS и MMS. В будущем может быть обеспечена поддержка других форматов сообщений.

<subject>

Тема сообщения. Применимо только к MMS-сообщениям.

<mmsSlides>

Корневой элемент для компонента описания представления. Применимо только к MMS-сообщениям.

Обязательный атрибут для слайдовых MMS-сообщений. Если параметр mmsSlides для MMS-сообщения недоступен, MMS-сообщение находится в неслайдовом режиме (в режиме multipart.mixed в терминах MMS), а мультимедийные данные представляются в последовательности кодирования. Дочерние элементы mmsSlides являются подмножеством формата 3GPP SMIL.

<head>

Корневой элемент для заголовка SMIL.

<meta name="author" …>

name

content

Метаданные, в которых указывается автор части SMIL с помощью параметров name="author" и content="msOfficeOutlookOms". На стороне службы никаких действий выполнять не требуется.

Необязательный атрибут.

<layout>

Корневой тег для разметки SMIL.

<root-layout …>

width

height

background-color

Разрешение экрана телефона в пикселях и цвет фона.

<region id="image" …>

id

left

top

width

height

Атрибут id может принимать значения image или text, указывающие тип определяемой области. Остальные четыре атрибута задают положение и размер области в процентах от длины и ширины слайда.

<body>

Корневой тег основного текста SMIL.

<par dur="3s" …>

dur

Корневой тег слайда MMS. В атрибуте dur указывается продолжительность воспроизведения слайда в секундах.

Несколько вхождений.

<img …>

src

region

Объект изображения в кодировке Base64. Атрибут src ссылается на атрибут contentId элемента <content>.

Необязательный атрибут.

<text …>

src

region

Объект в формате обычного текста. Атрибут src ссылается на атрибут contentID элемента <content>.

Необязательный атрибут.

<audio …>

src

region

Звуковой объект в кодировке Base64. Атрибут src ссылается на атрибут contentId элемента <content>.

Необязательный атрибут.

<content>

contentType

contentId

contentLocation

Несколько вхождений и последовательное перечисление.

Представляет один из указанных ниже объектов.

  • Разделенные SMS-сообщения, если атрибуту format элемента <xmsBody> присвоено значение SMS. Для SMS-сообщения можно указать несколько элементов содержимого, каждый из которых будет представлять часть более длинного сообщения. Веб-служба должна отправить каждый элемент в виде отдельного текстового сообщения в указанной последовательности.

  • Текст, изображение или звуковой объект для слайда, если атрибуту format элемента <xmsBody> присвоено значение "MMS" и доступна часть SMIL (слайдовый режим).

  • Страница текста, изображение или звуковой объект MMS-сообщения, если атрибуту format элемента <xmsBody> присвоено значение MMS и часть SMIL недоступна (неслайдовый режим).

Атрибуты включают указанные ниже элементы.

  • contentType — тип контента MIME. Поддерживаемые типы контента приведены в таблице "Поддерживаемые типы контента" в статье Рекомендации по работе с Office 2010 Mobile Service (часть 1 из 3).

  • contentId — идентификатор контента, используемый в основном тексте SMIL. Игнорируйте этот параметр для SMS-сообщений и MMS-сообщений в неслайдовом режиме.

  • contentLocation — указывает имя файла мультимедийного объекта, которое можно использовать в качестве файла имени по умолчанию при сохранении объекта.

Схема сообщения

В приведенном ниже примере показана схема строки xmsData.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
xmlns:tns="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="tTo">
        <xs:annotation>
            <xs:documentation>
                Specify a type for recipients of the message.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element maxOccurs="unbounded" name="recipient" type="xs:string">
                <xs:annotation>
                    <xs:documentation>
                        Cell phone number as the recipient of the message.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="tXmsHeader">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the header part of the message data.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="scheduled" type="xs:dateTime" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Indicate that the message is to be sent at the specified time.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="requiredService" type="xs:string" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Required service by the message.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="sourceType" type="xs:string" minOccurs="0" >
                <xs:annotation>
                    <xs:documentation>
                        Source of the message, indicating how the message was created by the client. 
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="to" type="tns:tTo">
                <xs:annotation>
                    <xs:documentation>
                        Recipients of the message.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="subject" type="xs:string" minOccurs="0" >
                <xs:annotation>
                    <xs:documentation>
                        Subject of the message. Apply only to a multimedia message.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="tUser">
        <xs:annotation>
            <xs:documentation>
                Specify a type for user information.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="userId" type="xs:string" minOccurs="0" >
                <xs:annotation>
                    <xs:documentation>
                        User's identification provided by their service provider.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="password" type="xs:string" minOccurs="0" >
                <xs:annotation>
                    <xs:documentation>
                        User's password provided by their service provider.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="replyPhone" type="xs:string" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        User's cell phone number.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="customData" type="xs:string" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Reserved for future extension.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="tMeta">
        <xs:annotation>
            <xs:documentation>
                Specify a type for metadata.
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="name" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Name of the metadata.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="content" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Content of the metadata.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="tRoot-layout">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the description of the display of a cell phone.
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="width" type="xs:unsignedInt" use="required" >
            <xs:annotation>
                <xs:documentation>
                    Width of the message view.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="height" type="xs:unsignedByte" use="required" >
            <xs:annotation>
                <xs:documentation>
                    Height of the message view.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="background-color" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Background color of the message view.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="tRegion">
        <xs:annotation>
            <xs:documentation>
                Specify a type for describing regions of the display of a cell phone.
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="id" type="xs:string" use="required" >
            <xs:annotation>
                <xs:documentation>
                    ID of the region.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="left" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Left position of the region.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="top" type="xs:string" use="required" >
            <xs:annotation>
                <xs:documentation>
                    Top position of the region.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="width" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Width of the region.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="height" type="xs:string" use="required" >
            <xs:annotation>
                <xs:documentation>
                    Height of the region.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="tLayout">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the layout definition of a multimedia message.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="root-layout" type="tns:tRoot-layout">
                <xs:annotation>
                    <xs:documentation>
                        Display definition of a cell phone in terms of screen resolution.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="region" type="tns:tRegion" maxOccurs="2">
                <xs:annotation>
                    <xs:documentation>
                        Regions definition of the display of a cell phone.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="tHeader">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the header part of the message data.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="meta" type="tns:tMeta" minOccurs="0" >
                <xs:annotation>
                    <xs:documentation>
                        Metadata to indicate the author of the SMIL.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="layout" type="tns:tLayout">
                <xs:annotation>
                    <xs:documentation>
                        Layout definition of a multimedia message.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="tImg">
        <xs:annotation>
            <xs:documentation>
                Specify a type for image.
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="src" type="xs:string" use="required" >
            <xs:annotation>
                <xs:documentation>
                    Path to the image - contentId attribute of 'content' element is used here.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="region" type="xs:string" use="required" >
            <xs:annotation>
                <xs:documentation>
                    Region for displaying the image.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="tText">
        <xs:annotation>
            <xs:documentation>
                Specify a type for plain text.
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="src" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Path to the text - contentId attribute of 'content' element is used here.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="region" type="xs:string" use="required" >
            <xs:annotation>
                <xs:documentation>
                    Region for displaying the text.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="tAudio">
        <xs:annotation>
            <xs:documentation>
                Specify a type for audio.
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="src" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Path to the audio - contentId attribute of 'content' element is used here.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="tPar">
        <xs:annotation>
            <xs:documentation>
                Specify a type for elements of a slide.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="img" type="tns:tImg" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Image part of a slide.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="text" type="tns:tText" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Text part of a slide.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="audio" type="tns:tAudio" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Audio part of a slide.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="dur" type="xs:unsignedInt" use="required">
            <xs:annotation>
                <xs:documentation>
                    Duration in seconds for the slide to be played.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="tBody">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the body part of slide definition.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="par" type="tns:tPar" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Parts of the body part of the slide definition.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="tMmsSlides">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the slide definition.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="head" type="tns:tHeader" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Header part of the slide definition.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="body" type="tns:tBody">
                <xs:annotation>
                    <xs:documentation>
                        Body part of the slide definition.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="tContent">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the contents of the body part of the message data.
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="contentType" type="xs:string" use="required">
                    <xs:annotation>
                        <xs:documentation>
                            MIME content type of message content.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="contentId" type="xs:string" use="required">
                    <xs:annotation>
                        <xs:documentation>
                            ID of message content.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="contentLocation" type="xs:string" use="required">
                    <xs:annotation>
                        <xs:documentation>
                            Location of message content - path to the media file.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="tXmsBody">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the body part of the message data.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="mmsSlides" type="tns:tMmsSlides" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Slide definition of the body part of the message data.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="content" type="tns:tContent" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Contents of the body part of the message data.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="format" type="xs:string" use="required" />
    </xs:complexType>
    <xs:complexType name="tXmsData">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the message data being transferred to the Web service.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="user" type="tns:tUser" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        User information.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="xmsHead" type="tns:tXmsHeader" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>
                        Header part of the message data.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="xmsBody" type="tns:tXmsBody">
                <xs:annotation>
                    <xs:documentation>
                        Body part of the message data.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="client" type="xs:string" >
            <xs:annotation>
                <xs:documentation>
                    Client information, such as "Microsoft Office Outlook 12.0".
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:element name="xmsData" type="tns:tXmsData">
        <xs:annotation>
            <xs:documentation>
                Message data being transferred to the Web service.
            </xs:documentation>
        </xs:annotation>
    </xs:element>
</xs:schema>

Справочник по ответам о доставке

Ответ о доставке представляет собой строку xmsResponse в формате XML, возвращаемую методом DeliverXms(), чтобы сообщить об успехе или сбое. Строка xmsResponse содержит один или несколько элементов error, с которыми могут быть связаны дочерние элементы content или recipientList, в зависимости от типа ошибки.

Коды ошибок OMS

Веб-служба OMS может возвращать клиенту OMS множество различных ошибок. При вызове методов GetUserInfo() и DeliverXms() возвращаются строки в формате XML, включающие один или несколько элементов error, указывающих на успех или сбой при вызове.

Атрибут code каждого элемента error, входящего в строку userInfo или xmsResponse, должен принимать одно из значений, указанных в таблице 3. В этих значений регистр знаков не учитывается.

Атрибут severity может принимать значение neutral или failure. Этот атрибут является обязательным для ошибок, входящих в строки xmsResponse, и необязательным для ошибок, входящих в строки userInfo.

Код ошибки ok обозначает успешный вызов. Код ошибки other используется для обозначения ошибок, не соответствующих ни одному из ожидаемых типов ошибок, и должен сопровождаться дочерним атрибутом content с подробными сведениями об ошибке.

Каждый элемент error, возвращаемый в строке xmsResponse, может иметь не более одного дочернего элемента content и не более одного дочернего элемента recipientList, в зависимости от типа ошибки. Элемент content содержит описание параметров ошибки. Элемент recipientList содержит строку со списком получателей, на которых повлияла ошибка. В таблице 3 приведено ожидаемое содержимое этих дочерних элементов для каждого типа ошибки, а также предопределенные коды ошибок, используемые в веб-службах OMS.

Таблица 3. Коды ошибок OMS

Значение атрибута code

Объяснение

Значение атрибута severity

Дочерний элемент <content>

Дочерний элемент <recipientList>

ok

Полный успех.

neutral

Не применимо

Не применимо

invalidUser

Недопустимый или нераспознанный идентификатор пользователя или пароль.

failure

Не применимо

Не применимо

unregisteredUser

Пользователь не зарегистрирован для получения этой услуги. Поставщик услуг возвращает invalidUser, если не может принять решение на основе идентификатора пользователя.

failure

Не применимо

Не применимо

unregisteredService

Пользователь не подписан на услугу, указанную в списке <content> .

failure

SMS или MMS

Не применимо

expiredUser

Внесенная пользователем предоплата исчерпана или срок регистрации истек. Этот код ошибки предназначен для поставщиков, предоставляющих услуги по предоплате.

failure

Не применимо

Не применимо

invalidRecipient

Один или несколько получателей недопустимы или нераспознаны. Возвращает в элементе <recipientList> список разделенных точкой с запятой получателей.

failure

Не применимо

Получатель1; Получатель2; …

crossCarrier

Один или несколько получателей относятся к оператору, который не поддерживается оператором отправителя. Возвращает в элементе <recipientList> список разделенных точкой с запятой получателей.

failure

Не применимо

Получатель1; Получатель2;…

invalidChar

Тема или текст сообщения содержит знаки или слова, запрещенные локальной политикой или не поддерживаемые поставщиком услуг.

failure

Не применимо

Не применимо

invalidMedia

Недопустимый или неподдерживаемый мультимедийный объект. Возвращает в элементе <content> идентификаторы контента недопустимых мультимедийных объектов. (Атрибут применяется только к MMS-сообщениям.)

failure

расположение1; расположение2…

Не применимо

perDayMsgLimit

Превышено предельное количество сообщений, которое пользователь может отправить за день. Возвращает в элементе <content> предельное значение.

failure

Ограничение на количество сообщений в день в следующем виде:

"Количество SMS" или "Количество MMS"

Получатель1; Получатель2;…

perMonthMsgLimit

Превышено предельное количество сообщений, которое пользователь может отправить за месяц. Возвращает в элементе <content> предельное значение.

failure

Ограничение на количество сообщений в месяц в следующем виде:

"Количество SMS" или "Количество MMS"

Получатель1; Получатель2;…

lengthLimit

Превышена максимально допустимая длина SMS-сообщения. Возвращает в элементе <content> ограничения на длину сообщений, состоящих из однобайтовых и двухбайтовых знаков.

failure

Ограничение на длину сообщений, состоящих из двухбайтовых или смешанных знаков; ограничение на длину сообщений, состоящих из однобайтовых знаков

Не применимо

sizeLimit

Превышено ограничение на размер MMS-сообщения.

failure

Максимально допустимый размер MMS-сообщений (в байтах).

Не применимо

slidesLimit

Превышено ограничение на количество слайдов в MMS-сообщении.

failure

Максимально допустимое количество слайдов в MMS-сообщении.

Не применимо

invalidFormat

Недопустимый или нераспознанный формат данных XMS.

failure

Не применимо

Не применимо

serviceNetwork

Проблема с сетью на стороне службы (например невозможность подключения к SMSC или MMSC).

failure

Не применимо

Получатель1; Получатель2;…

noScheduled

Отправка по расписанию не поддерживается. Сообщение было отправлено немедленно.

failure

Не применимо

Не применимо

lowBalance

Мало денег на балансе учетной записи пользователя. Возвращает в элементе <content> текущий баланс и стоимость сообщения.

failure

Возвращает текущий баланс и стоимость сообщения через точку с запятой. Перед каждым числом указывается символ валюты (например "$5.00;$0.10").

Получатель1; Получатель2;…

serviceUpdate

Служба должна возвращать это сообщение при каждом изменении свойств службы. Для обновления свойств службы при получении этого сообщения клиент должен вызвать метод GetServiceInfo().

neutral

Время UTC в формате ГГГГ-ММ-ДДTчч:мм:ссZ. Время задается с точностью до минуты, поэтому элемент секунд ("сс") всегда равен "00".

Не применимо

ceasedService

Уведомляет клиента о прекращении услуги.

failure

Не применимо

Не применимо

other

Этот код ошибки используется для всех остальных ошибок.

Уровень серьезности ошибки определяет поставщик услуг.

Сообщение об ошибке

Получатель1; Получатель2;…

Примечание

Эти коды ошибок могут входить в строку userInfo, однако элементы error строки userInfo не могут иметь дочерних элементов.

Схема ответа о доставке

В приведенном ниже примере показана схема строки xmsResponse.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
xmlns:tns="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="tError">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the error reported by the Web service.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="content" type="xs:string" minOccurs="0" >
                <xs:annotation>
                    <xs:documentation>
                        Descriptions of the error.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="recipientList" type="xs:string" minOccurs="0" >
                <xs:annotation>
                    <xs:documentation>
                        Recipients that are impacted by the error.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="code" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Code that represents a predefined error.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="severity" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Severity of the error. Supported values are "failure" and "neutral".
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType> 
    <xs:complexType name="tXmsResponse">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the response from the Web service.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="error" type="tns:tError" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Error reported by the Web service.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="xmsResponse" type="tns:tXmsResponse">
        <xs:annotation>
            <xs:documentation>
                Response from the Web service.
            </xs:documentation>
        </xs:annotation>
    </xs:element>
</xs:schema>

Справочник по пакетам сообщений

В схеме пакета сообщений указываются данные пакета сообщений, передаваемые веб-службе. Эти данные представляют собой строку packageXml в формате XML, в которой хранятся данные нескольких мобильных сообщений, включая содержимое сообщений и сведения о получателях. Эта строка передается в качестве параметра методу веб-службы DeliverXmsBatch(). Строка packageXml содержит несколько дочерних элементов xmsData. Элементы строки xmsData описаны выше в таблице 2.

Схема пакета сообщений

В приведенном ниже примере показана схема строки packageXml.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema 
    targetNamespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
    xmlns:mstns="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
    xmlns="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" 
    attributeFormDefault="qualified" elementFormDefault="qualified">
    <xs:element name="xmsBatch" type="tXmsBatch" >
        <xs:annotation>
            <xs:documentation>
                Specify a batch of message data being transferred to the Web service.
            </xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:complexType name="tXmsBatch">
        <xs:annotation>
            <xs:documentation>
                A batch of message data being transferred to the Web service.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="xmsData" type="tXmsData" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Message data being transferred to the Web service.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="client" form="unqualified" type="xs:string">
            <xs:annotation>
                <xs:documentation>
                    Client information, such as "Microsoft Office Outlook 12.0".
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="tXmsData">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the message data being transferred to the Web service.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="user" type="tUser" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        User information.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="xmsHead" type="tXmsHeader" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Header part of the message data.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="xmsBody" type="tXmsBody" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>
                        Body part of the message data.
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="Id" form="unqualified" type="xs:nonNegativeInteger">
            <xs:annotation>
                <xs:documentation>
                    Identification number of message data in a batch.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
</xs:schema>

Подробные определения элементов tUser, tXmsHeader и tXmsBody приведены выше в разделе "Схема сообщения".

Справочник по пакетам ответов о доставке

Ответы о доставки представляют собой пакет ответов от веб-службы. Пакет представляет собой строку xmsResponses в формате XML, возвращаемую методом DeliverXmsBatch(), чтобы сообщить об успехе или сбое. Строка xmsResponses содержит несколько дочерних элементов xmsResponse.

Схема пакета ответов о доставке

В приведенном ниже примере показана схема строки xmsResponses.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema
    targetNamespace="https://schemas.microsoft.com/office/Outlook/2006/OMS"
    xmlns:mstns="https://schemas.microsoft.com/office/Outlook/2006/OMS"
    xmlns="https://schemas.microsoft.com/office/Outlook/2006/OMS"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
    attributeFormDefault="qualified" elementFormDefault="qualified">
    <xs:element name="xmsResponses" type="tXmsResponses" >
        <xs:annotation>
            <xs:documentation>
                Specify a batch of responses from the Web service.
            </xs:documentation>
        </xs:annotation>
    </xs:element >
    <xs:complexType name="tXmsResponses">
        <xs:annotation>
            <xs:documentation>
                A batch of responses from the Web service.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="xmsResponse" type="tXmsResponse" maxOccurs="unbounded" >
                <xs:annotation>
                    <xs:documentation>
                        Specify a response message from the Web service.
                    </xs:documentation>
                </xs:annotation>
            </xs:element >
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="tXmsResponse">
        <xs:annotation>
            <xs:documentation>
                Specify a type for the response from the Web service.
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="error" type="tError" maxOccurs="unbounded" >
                <xs:annotation>
                    <xs:documentation>
                        Error reported by the Web service.
                    </xs:documentation>
                </xs:annotation>
            </xs:element >
        </xs:sequence>
        <xs:attribute name="Id" form="unqualified" type="xs:string" >
            <xs:annotation>
                <xs:documentation>
                    Identification number of an error in a batch of responses.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute >
    </xs:complexType>
</xs:schema>

Подробное определение элемента tError приведено выше в разделе "Ответ о доставке".

Методы веб-службы OMS

В веб-службе OMS должны быть реализованы четыре открытых метода: GetServiceInfo(), GetUserInfo(), DeliverXms() и DeliverXmsBatch(). Метод GetServiceInfo() позволяет клиенту OMS получить сведения о веб-службе. Метод GetUserInfo() возвращает сведения о конкретной учетной записи пользователя. Метод DeliverXms() вызывается для отправки сообщения одному или нескольким получателям. Метод DeliverXmsBatch() вызывается для отправки нескольких сообщений одному или нескольким получателям в рамках одной пакетной транзакции XML. Подробное описание этих веб-методов с примерами кода приведено в первой статье серии, Рекомендации по работе с Office 2010 Mobile Service (часть 1 из 3).

WSDL-код веб-службы OMS

В приведенном ниже примере показано определение веб-службы OMS на языке WSDL.

<?xml version="1.0" encoding="utf-8"?>
<definitions 
    xmlns:soap="https://schemas.xmlsoap.org/wsdl/soap/" 
    xmlns:tm="https://microsoft.com/wsdl/mime/textMatching/" 
    xmlns:soapenc="https://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:mime="https://schemas.xmlsoap.org/wsdl/mime/" 
    xmlns:tns="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
    xmlns:s="http://www.w3.org/2001/XMLSchema" 
    xmlns:http="https://schemas.xmlsoap.org/wsdl/http/" 
    targetNamespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" 
    xmlns="https://schemas.xmlsoap.org/wsdl/">
    <types />
    <message name="GetUserInfoSoapIn">
        <part name="xmsUser" type="s:string" />
    </message>
    <message name="GetUserInfoSoapOut">
        <part name="GetUserInfoResult" type="s:string" />
    </message>
    <message name="GetServiceInfoSoapIn" />
    <message name="GetServiceInfoSoapOut">
        <part name="GetServiceInfoResult" type="s:string" />
    </message>
    <message name="DeliverXmsSoapIn">
        <part name="xmsData" type="s:string" />
    </message>
    <message name="DeliverXmsSoapOut">
        <part name="DeliverXmsResult" type="s:string" />
    </message>
    <message name="DeliverXmsBatchSoapIn">
        <part name="packageXml" type="s:string" />
    </message>
    <message name="DeliverXmsBatchSoapOut">
        <part name="DeliverXmsBatchResult" type="s:string" />
    </message>
    <portType name="OMSServiceSoap">
        <operation name="GetUserInfo">
            <documentation xmlns:wsdl="https://schemas.xmlsoap.org/wsdl/">
                Read user infomation such as mobile number.
            </documentation>
            <input message="tns:GetUserInfoSoapIn" />
            <output message="tns:GetUserInfoSoapOut" />
        </operation>
        <operation name="GetServiceInfo">
            <documentation xmlns:wsdl="https://schemas.xmlsoap.org/wsdl/">
                Read service properties.
            </documentation>
            <input message="tns:GetServiceInfoSoapIn" />
            <output message="tns:GetServiceInfoSoapOut" />
        </operation>
        <operation name="DeliverXms">
            <documentation xmlns:wsdl="https://schemas.xmlsoap.org/wsdl/">
                Send a text message or multimedia message.
            </documentation>
            <input message="tns:DeliverXmsSoapIn" />
            <output message="tns:DeliverXmsSoapOut" />
        </operation>
        <operation name="DeliverXmsBatch">
            <documentation xmlns:wsdl="https://schemas.xmlsoap.org/wsdl/">
                Send a batch of text messages and multimedia messages.
            </documentation>
            <input message="tns:DeliverXmsBatchSoapIn" />
            <output message="tns:DeliverXmsBatchSoapOut" />
        </operation>
    </portType>
    <binding name="OMSServiceSoap" type="tns:OMSServiceSoap">
        <soap:binding transport="https://schemas.xmlsoap.org/soap/http/" />
        <operation name="GetUserInfo">
            <soap:operation soapAction="https://schemas.microsoft.com/office/Outlook/2006/OMS/GetUserInfo" 
            style="rpc" />
            <input>
                <soap:body use="encoded" encodingStyle="https://schemas.xmlsoap.org/soap/encoding/" 
                    namespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" />
            </input>
            <output>
                <soap:body use="encoded" encodingStyle="https://schemas.xmlsoap.org/soap/encoding/" 
                    namespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" />
            </output>
        </operation>
        <operation name="GetServiceInfo">
            <soap:operation soapAction="https://schemas.microsoft.com/office/Outlook/2006/OMS/GetServiceInfo"
                style="rpc" />
            <input>
                <soap:body use="encoded" encodingStyle="https://schemas.xmlsoap.org/soap/encoding/" 
                    namespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" />
            </input>
            <output>
                <soap:body use="encoded" encodingStyle="https://schemas.xmlsoap.org/soap/encoding/" 
                    namespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" />
            </output>
        </operation>
        <operation name="DeliverXms">
            <soap:operation soapAction="https://schemas.microsoft.com/office/Outlook/2006/OMS/DeliverXms" 
                style="rpc" />
            <input>
                <soap:body use="encoded" encodingStyle="https://schemas.xmlsoap.org/soap/encoding/" 
                    namespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" />
            </input>
            <output>
                <soap:body use="encoded" encodingStyle="https://schemas.xmlsoap.org/soap/encoding/" 
                    namespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" />
            </output>
        </operation>
        <operation name="DeliverXmsBatch">
            <soap:operation soapAction="https://schemas.microsoft.com/office/Outlook/2006/OMS/DeliverXmsBatch"                       style="rpc" />
            <input>
                <soap:body use="encoded" encodingStyle="https://schemas.xmlsoap.org/soap/encoding/" 
                    namespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" />
            </input>
            <output>
                <soap:body use="encoded" encodingStyle="https://schemas.xmlsoap.org/soap/encoding/" 
                    namespace="https://schemas.microsoft.com/office/Outlook/2006/OMS" />
            </output>
        </operation>
    </binding>
    <service name="OMSService">
        <port name="OMSServiceSoap" binding="tns:OMSServiceSoap">
            <soap:address location="https://localhost/OMSWS30/Service.asmx" />
        </port>
    </service>
</definitions>

Заключение

В данной статье приведены определения и пояснения схем XML, используемых веб-службами и клиентами OMS, а также приведено определение веб-службы OMS на языке WSDL. Примеры кода и сведения о потоке сообщений между поставщиками и клиентами веб-службы OMS см. в статье Рекомендации по работе с Office 2010 Mobile Service (часть 1 из 3). Рекомендации по реализации веб-службы OMS см. в статье Рекомендации для службы Office 2010 Mobile (часть 2 из 3). Сведения о протоколе OMS см. в статье Office Mobile Service Protocol Specification.

Дополнительные материалы

Дополнительные сведения см. в следующих документах: