Поделиться через


Элемент ScanAvailableEvent

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

Использование

<wscn:ScanAvailableEvent>
  child elements
</wscn:ScanAvailableEvent>

Атрибуты

Атрибуты отсутствуют.

Дочерние элементы

Элемент
ClientContext
ScanIdentifier

Родительские элементы

Родительские элементы отсутствуют.

Комментарии

Служба сканирования WSD отправляет элемент ScanAvailableEvent зарегистрированным клиенту, когда пользователь выбрал назначение сканирования и инициировал проверку на устройстве сканирования.

Клиент должен создать подписку со службой проверки WSD для получения событий ScanAvailableEvent . Клиент создает подписку, отправляя сообщение запроса в службу сканирования с помощью <элемента операции запроса wse:Subscribe> .

Запрос на подписку содержит одно или несколько назначений в элементе расширения ScanDestinations . Служба сканирования будет использовать эти назначения для фильтрации по одному клиенту каждый раз при отправке уведомления ScanAvailableEvent . Этот фильтр не позволяет службе сканирования уведомлять каждого клиента, когда пользователь нажимает кнопку сканирования. Элементы расширения определяются в пространстве имен службы проверки WSD, а затем добавляются в <текст запроса wse:Subscribe> .

Если служба проверки WSD принимает запрос клиента на создание подписки, служба должна ответить с <помощью элемента операции ответа wse:SubscribeResponse> . Ответ подписки содержит один или несколько ответов назначения в элементе расширения DestinationResponses , который помогает подключить подписку к устройству сканирования, которое ее приняло.

Элементы <wse:Subscribe> и <wse:SubscribeResponse> описаны в спецификации.

Примеры

В следующем примере кода показано, как клиент подписывается на получение событий ScanAvailableEvent из службы проверки WSD.

<soap:Envelope
    xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
    xmlns:wsa="https://schemas.xmlsoap.org/ws/2004/08/addressing"
    xmlns:wse="https://schemas.xmlsoap.org/ws/2004/08/eventing"
    xmlns:wscn="https://schemas.microsoft.com/windows/2006/01/wdp/scan>
    soap:encodingStyle='https://www.w3.org/2002/12/soap-encoding' >
  <soap:Header>
    <wsa:To>AddressofScannerService</wsa:To>
      <wsa:Action>
         https://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe
      </wsa:Action>
      <wsa:MessageID>uuid:UniqueMsgId</wsa:MessageID>
      <wsa:ReplyTo>
        <wsa:Address>https://www.example.com/MyEventSink</wsa:Address>
      </wsa:ReplyTo>
  </soap:Header>
  <soap:Body>
    <wse:Subscribe>
      <wse:Delivery>
        <wse:NotifyTo>
          <wsa:Address>
            https://www.example.com/MyEventSink/OnScanAvailableForMe
          </wsa:Address>
        </wse:NotifyTo>
      </wse:Delivery>
      <wse:Expires>P0Y0M0DT30H0M0S</wse:Expires>
      <wse:Filter xmlns:wscn="https://schemas.microsoft.com/windows/2006/01/wdp/scan">
        ScanAvailableEvent
      </wse:Filter>
      <wscn:ScanDestinations>
        <wscn:ScanDestination>
          <wscn:ClientDisplayString>Den Computer</wscn:ClientDisplayString>
          <wscn:ClientContext>App1ScanID2345</wscn:ClientContext>
        </wscn:ScanDestination>
      </wscn:ScanDestinations>
    </wse:Subscribe>
    </soap:Body
</soap:Envelope>

В следующем примере кода показан ответ службы проверки WSD на запрос подписки клиента.

<soap:Envelope
    xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
    xmlns:wsa="https://schemas.xmlsoap.org/ws/2004/08/addressing"
    xmlns:wse="https://schemas.xmlsoap.org/ws/2004/08/eventing"
    xmlns:wscn="https://schemas.microsoft.com/windows/2006/01/wdp/scan">
    soap:encodingStyle='https://www.w3.org/2002/12/soap-encoding' >
  <soap:Header>
    <wsa:To>https://schemas.xmlsoap.org/ws/2003/03/addressing/role/anonymous</wsa:To>
    <wsa:Action>
      https://schemas.xmlsoap.org/ws/2004/08/eventing/SubscribeResponse
    </wsa:Action>
    <wsa:MessageID>uuid:UniqueMsgId</wsa:MessageID>
    <wsa:RelatesTo>uuid:MsgIdOfTheSubscribe</wsa:RelatesTo>
  </soap:Header>
  <soap:Body>
    <wse:SubscribeResponse>
        <wse:SubscriptionManager>
             <!-- Elements removed for clarity  -->
        </wse:SubscriptionManager>
        <wse:Expires>P0Y0M0DT30H0M0S</wse:Expires>
        <wscn:DestinationResponses>
          <wscn:DestinationResponse>
            <wscn:ClientContext>App1ScanID2345</wscn:ClientContext>
            <wscn:DestinationToken>Client3478</wscn:DestinationToken>
          </wscn:DestinationResponse>
        </wscn:DestinationResponses>
      </wse:SubscribeResponse>
    </soap:Body
</soap:Envelope>

В следующем примере кода показано, как служба сканирования WSD отправляет scanAvailableEvent клиенту.

<soap:Envelope
  xmlns:soap="https://www.w3.org/2003/05/soap-envelope"
  xmlns:wsa="https://schemas.xmlsoap.org/ws/2004/08/addressing"
  xmlns:wse="https://schemas.xmlsoap.org/ws/2004/08/eventing"
  xmlns:wscn="https://schemas.microsoft.com/windows/2006/01/wdp/scan"
  soap:encodingStyle='https://www.w3.org/2002/12/soap-encoding'>

  <soap:Header>
    <wsa:To>AddressofEventSink</wsa:To>
    <wsa:Action>
      https://schemas.microsoft.com/windows/2006/01/wdp/scan/ScanAvailableEvent
    </wsa:Action>
    <wsa:MessageID>uuid:UniqueMsgId</wsa:MessageID>
  </soap:Header>

  <soap:Body>
    <wscn:ScanAvailableEvent>
      <wscn:ClientContext>App1ScanID2345</wscn:ClientContext>
      <wscn:ScanIdentifier>AnyUniqueIdentifierSuchAsAGUID</wscn:ScanIdentifier>
    </wscn:ScanAvailableEvent>
  </soap:Body
</soap:Envelope>

См. также раздел

ClientContext

DestinationResponses

ScanDestinations

ScanIdentifier