Элемент заголовка sqloptions:notificationRequest
В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется.
Параметр sqloptions:notificationRequest позволяет клиенту задавать уведомление, появляющееся при получении запроса, например:
<SOAP-ENV:Header xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/" xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options"> <sqloptions:notificationRequest SOAP-ENV:mustUnderstand="1" timeout="timeout value in seconds" deliveryService="name of delivery service" /></SOAP-ENV:Header>
Параметр sqloptions:notificationRequest является заголовком SOAP. Заголовок состоит из единственного элемента с именем sqloptions:notificationRequest. Указанный элемент имеет два обязательных атрибута — notificationId и deliveryService,, а также необязательный атрибут — timeout. Атрибуты notificationId и deliveryService являются текстовыми значениями, а атрибут timeout имеет тип xsd:integer. Дополнительные сведения об использовании параметра sqloptions:notificationRequest в уведомлениях о запросах см. в разделе Использование заголовка SOAP для подписки на уведомления запросов.
В запросе может упоминаться только один экземпляр параметра sqloptions:notificationRequest. Параметр не может появляться в ответе. При наличии нескольких вхождений параметра будет выдано сообщение об ошибке.
Ниже представлен фрагмент схемы для параметра sqloptions:notificationRequest:
<xs:element name="notificationRequest" form="qualified"> <xs:annotation> <xs:documentation> Requests query notifications for the request. </xs:documentation> </xs:annotation> <xs:complexType> <xs:attribute use="required" name="notificationId" type="xs:string" form="unqualified"> <xs:annotation> <xs:documentation> The notification identifier. </xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute use="required" name="deliveryService" type="xs:string" form="unqualified"> <xs:annotation> <xs:documentation> The deliveryService. </xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="timeout" type="xs:integer" form="unqualified"> <xs:annotation> <xs:documentation> The timeout value. </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType></xs:element>
Если указан данный заголовок, будет запрошена подписка на уведомления запроса. Дополнительные сведения см. в разделе Использование уведомлений запросов.
Примеры
Ниже представлены примеры использования заголовка sqloptions:notificationRequest внутри запроса SOAP и ответных сообщений.
Запрос
<SOAP-ENV:Envelope xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/" xmlns:sql="https://schemas.microsoft.com/sqlserver/2004/SOAP" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sqlparam="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlParameter" xmlns:sqlsoaptypes="https://schemas.microsoft.com/sqlserver/2004/SOAP/types" xmlns:sqloptions="https://schemas.microsoft.com/sqlserver/2004/SOAP/Options"> <SOAP-ENV:Header> <sqloptions:notificationRequest notificationId="notification" timeout="1" deliveryService="deliveryService" > </sqloptions:notificationRequest> </SOAP-ENV:Header> <SOAP-ENV:Body> <sql:sqlbatch> <sql:BatchCommands></sql:BatchCommands> </sql:sqlbatch> </SOAP-ENV:Body></SOAP-ENV:Envelope>
Ответ
<SOAP-ENV:Envelope xml:space="preserve" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/" xmlns:sql="https://schemas.microsoft.com/sqlserver/2004/SOAP" xmlns:sqlsoaptypes="https://schemas.microsoft.com/sqlserver/2004/SOAP/types" xmlns:sqlrowcount="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlRowCount" xmlns:sqlmessage="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlMessage" xmlns:sqlresultstream="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlResultStream" xmlns:sqltransaction="https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlTransaction" xmlns:sqltypes="https://schemas.microsoft.com/sqlserver/2004/sqltypes"> <SOAP-ENV:Body> <sql:sqlbatchResponse> <sql:sqlbatchResult> </sql:sqlbatchResult> </sql:sqlbatchResponse> </SOAP-ENV:Body></SOAP-ENV:Envelope>