ScanAvailableEvent 要素
必要な ScanAvailableEvent 要素は、クライアントがサブスクライブされているスキャン デバイスがジョブをスキャンする準備ができていることをクライアントに通知します。
使用方法
<wscn:ScanAvailableEvent>
child elements
</wscn:ScanAvailableEvent>
属性
属性はありません。
子要素
要素 |
---|
ClientContext |
ScanIdentifier |
親要素
親要素は存在しません。
解説
WSD スキャン サービスは、ユーザーがスキャン先を選択し、スキャン デバイスでスキャンを開始したときに、登録されたクライアントに ScanAvailableEvent 要素を送信します。
クライアントは、ScanAvailableEvent イベントを受信するために WSD スキャン サービスを使用してサブスクリプションを作成する必要があります。 クライアントは、<wse:Subscribe> 要求操作要素を介してスキャン サービスに要求メッセージを送信することで、サブスクリプションを作成します。
サブスクライブ要求には、ScanDestinations 拡張要素に 1 つ以上の宛先が 含まれています。 スキャン サービスは、ScanAvailableEvent 通知を送信するたびに、これらの宛先を使用して 1 つのクライアントにフィルターを適用します。 このフィルターを使用すると、ユーザーがスキャン ボタンを押したときに、スキャン サービスからすべてのクライアントに通知されなくなります。 拡張要素は WSD スキャン サービス 名前空間で定義され、<wse:Subscribe> 要求本文に追加されます。
WSD スキャン サービスがサブスクリプションを作成するクライアントの要求を受け入れる場合、サービスは <wse:SubscribeResponse> 応答操作要素で応答する必要があります。 サブスクライブ応答には、DestinationResponses 拡張機能要素に1 つ以上の宛先応答が含まれています。これは、サブスクリプションを受け入れたスキャン デバイスに接続するのに役立ちます。
<wse:Subscribe> 要素と <wse:SubscribeResponse> 要素については、この仕様書で説明します。
例
次のコード例は、クライアントが 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>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>