Hi, I created web service using a following wdsl :
https://msdn.microsoft.com/en-us/library/windows/hardware/dn641604(v=vs.85).aspx
see the download of the "Print Device Definition V1.0 for Web Services on
Devices".
Unfortunately my service is not recognized by Add Printer functionality of
the Windows.
I can see that the Probe message is received by my Service and ProbeMatches
is send back.
The ProbeMatches from my Service has the following form:
==========
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope 
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"; 
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"; 
xmlns:wsd="http://schemas.xmlsoap.org/ws/2005/04/discovery"; 
xmlns:wsdp="http://schemas.xmlsoap.org/ws/2006/02/devprof"; 
xmlns:pub="http://schemas.microsoft.com/windows/pub/2005/07";>
<soap:Header><wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
<wsa:Action>http://schemas.xmlsoap.org/ws/2005/04/discovery/ProbeMatches</wsa:Action>
<wsa:MessageID>urn:uuid:7cf94c9c-94da-42ab-bd35-715dda4d0ef5</wsa:MessageID>
<wsa:RelatesTo>urn:uuid:aa477c64-0970-4998-907d-1e31ffa38c9f</wsa:RelatesTo>
<wsd:AppSequence InstanceId="525"
SequenceId="urn:uuid:778cd1fd-e831-4022-b7bd-e832b4131a17"
MessageNumber="182">
</wsd:AppSequence></soap:Header>
<soap:Body><wsd:ProbeMatches>
<wsd:ProbeMatch>
<wsa:EndpointReference>
<wsa:Address>urn:uuid:e4a36761-9476-431a-8d22-7b637e008118</wsa:Address>
</wsa:EndpointReference><wsd:Types>wsdp:Device pub:Computer</wsd:Types>
<wsd:XAddrs>http://[fe80::f144:e5c7:6b9d:4e6d]:5357/e4a36761-9476-431a-8d22-7b637e008118/</wsd:XAddrs>
<wsd:MetadataVersion>3</wsd:MetadataVersion></wsd:ProbeMatch></wsd:ProbeMatches>
</soap:Body></soap:Envelope>
===========

The ProbeMatches expected by Add Printer has the form:
==========
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope";
        xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing";
        xmlns:wsdisco="http://schemas.xmlsoap.org/ws/2005/04/discovery";
        xmlns:wsdp=”http://schemas.xmlsoap.org/ws/2006/02/devprof”
        xmlns:wprt="http://schemas.microsoft.com/windows/2006/08/wdp/print";>
        <soap:Header>
        
<wsa:MessageID>urn:uuid:147823ee-83f7-498c-8c1b-6272a22353f7</wsa:MessageID>
        
<wsa:RelatesTo>urn:uuid:0a6dc791-2be6-4991-9af1-454778a1917a</wsa:RelatesTo>
                <wsa:Action>
                        
http://schemas.xmlsoap.org/ws/2005/04/discovery/ProbeMatches
                </wsa:Action>
        
<wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
                <wsdisco:AppSequence InstanceId="3094203799" MessageNumber="2" 
/>
        </soap:Header>
        <soap:Body>
                <wsdisco:ProbeMatches>
                        <wsdisco:ProbeMatch>
                                <wsa:EndpointReference>
                                        
<wsa:Address>uuid:D10000D1-ca45-5fee-a376-112233445555</wsa:Address>
                                </wsa:EndpointReference>
                                <wsdisco:Types>wsdp:Device 
wprt:PrintDeviceType</wsdisco:Types>
                                
<wsdisco:XAddrs>http://IPAddress:80/TestDevice</wsdisco:XAddrs>
                                
<wsdisco:MetadataVersion>1</wsdisco:MetadataVersion>
                        </wsdisco:ProbeMatch>
                </wsdisco:ProbeMatches>
        </soap:Body>
</soap:Envelope>
============

As you can see the expected Types is:
<wsdisco:Types>wsdp:Device wprt:PrintDeviceType</wsdisco:Types>
the one my service provides is:
<wsd:Types>wsdp:Device pub:Computer</wsd:Types>
as well the address is expected in the form:
<wsdisco:XAddrs>http://IPAddress:80/TestDevice</wsdisco:XAddrs>
and the one provided by my service is:
<wsd:XAddrs>http://[fe80::f144:e5c7:6b9d:4e6d]:5357/e4a36761-9476-431a-8d22-7b637e008118/</wsd:XAddrs>
the part [fe80::f144:e5c7:6b9d:4e6d]:5357 is IPv6 address of my computer (do
not have any idea why the ipv6 form is used instead of ipv4 . Why the real
url was changed to /e4a36761-9476-431a-8d22-7b637e008118/.
My question is how can I change the <wsdisco:Types> with pub:Computer into
wprt:PrintDeviceType ?
Do I have any way to change it ? Where the
xmlns:pub="http://schemas.microsoft.com/windows/pub/2005/07"; attribute comes
from , I do not have it in my wsdl.
Here's the wsdl used:
===============
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/";
             xmlns:wsoap12="http://schemas.xmlsoap.org/wsdl/soap12/";
             xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";
             xmlns:xs="http://www.w3.org/2001/XMLSchema";
             xmlns:wsdp="http://schemas.xmlsoap.org/ws/2006/02/devprof";
             xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy";
             xmlns:wsd="http://schemas.xmlsoap.org/ws/2005/04/discovery";
             xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing";
             xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing";
            
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
            
xmlns:wprt="http://schemas.microsoft.com/windows/2006/08/wdp/print";
            
targetNamespace="http://schemas.microsoft.com/windows/2006/08/wdp/print";
             name="WSDPrinterService">

    <xs:annotation>
        <xs:documentation>
            WSD Printer Service Web Service Description (WSDL) file
            Copyright 2005-2006 Microsoft Corporation. All rights reserved
        </xs:documentation>
    </xs:annotation>

    <wsp:Policy wsu:Id="ServicePolicy">
        <wsdp:Profile />
    </wsp:Policy>

    <types>
        <xs:schema
targetNamespace="http://schemas.microsoft.com/windows/2006/08/wdp/print";>
            <xs:include schemaLocation="WDPPrint.xsd"/>
        </xs:schema>
    </types>
    <message name="CreatePrintJobRequestMsg">
        <part name="body" element="wprt:CreatePrintJobRequest"/>
    </message>
    <message name="CreatePrintJobResponseMsg">
        <part name="body" element="wprt:CreatePrintJobResponse"/>
    </message>
    <message name="SendDocumentRequestMsg">
        <part name="body" element="wprt:SendDocumentRequest"/>
    </message>
    <message name="SendDocumentResponseMsg">
        <part name="body" element="wprt:SendDocumentResponse"/>
    </message>
    <message name="AddDocumentRequestMsg">
        <part name="body" element="wprt:AddDocumentRequest"/>
    </message>
    <message name="AddDocumentResponseMsg">
        <part name="body" element="wprt:AddDocumentResponse"/>
    </message>
    <message name="CancelJobRequestMsg">
        <part name="body" element="wprt:CancelJobRequest"/>
    </message>
    <message name="CancelJobResponseMsg">
        <part name="body" element="wprt:CancelJobResponse"/>
    </message>
    <message name="GetPrinterElementsRequestMsg">
        <part name="body" element="wprt:GetPrinterElementsRequest"/>
    </message>
    <message name="GetPrinterElementsResponseMsg">
        <part name="body" element="wprt:GetPrinterElementsResponse"/>
    </message>
    <message name="GetJobElementsRequestMsg">
        <part name="body" element="wprt:GetJobElementsRequest"/>
    </message>
    <message name="GetJobElementsResponseMsg">
        <part name="body" element="wprt:GetJobElementsResponse"/>
    </message>
    <message name="GetActiveJobsRequestMsg">
        <part name="body" element="wprt:GetActiveJobsRequest"/>
    </message>
    <message name="GetActiveJobsResponseMsg">
        <part name="body" element="wprt:GetActiveJobsResponse"/>
    </message>
    <message name="GetJobHistoryRequestMsg">
        <part name="body" element="wprt:GetJobHistoryRequest"/>
    </message>
    <message name="GetJobHistoryResponseMsg">
        <part name="body" element="wprt:GetJobHistoryResponse"/>
    </message>
    <message name="SetEventRateRequestMsg">
        <part name="body" element="wprt:SetEventRateRequest"/>
    </message>
    <message name="SetEventRateResponseMsg">
        <part name="body" element="wprt:SetEventRateResponse"/>
    </message>
    <message name="PrinterElementsChangeEventMsg">
        <part name="body" element="wprt:PrinterElementsChangeEvent"/>
    </message>
    <message name="PrinterStatusSummaryEventMsg">
        <part name="body" element="wprt:PrinterStatusSummaryEvent"/>
    </message>
    <message name="PrinterStatusConditionEventMsg">
        <part name="body" element="wprt:PrinterStatusConditionEvent"/>
    </message>
    <message name="PrinterStatusConditionClearedEventMsg">
        <part name="body"
element="wprt:PrinterStatusConditionClearedEvent"/>
    </message>
    <message name="JobStatusEventMsg">
        <part name="body" element="wprt:JobStatusEvent"/>
    </message>
    <message name="JobEndStateEventMsg">
        <part name="body" element="wprt:JobEndStateEvent"/>
    </message>

    <portType name="PrinterServiceType" wse:EventSource="true" >
        <operation name="CreatePrintJob">
            <input message="wprt:CreatePrintJobRequestMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/CreatePrintJob";
/>
            <output message="wprt:CreatePrintJobResponseMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/CreatePrintJobResponse";
/>
        </operation>
        <operation name="SendDocument">
            <input message="wprt:SendDocumentRequestMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/SendDocument";
/>
            <output message="wprt:SendDocumentResponseMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/SendDocumentResponse";
/>
        </operation>
        <operation name="AddDocument">
            <input message="wprt:AddDocumentRequestMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/AddDocument";
/>
            <output message="wprt:AddDocumentResponseMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/AddDocumentResponse";
/>
        </operation>
        <operation name="CancelJob">
            <input message="wprt:CancelJobRequestMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/CancelJob";
/>
            <output message="wprt:CancelJobResponseMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/CancelJobResponse";
/>
        </operation>
        <operation name="GetPrinterElements">
            <input message="wprt:GetPrinterElementsRequestMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/GetPrinterElements";
/>
            <output message="wprt:GetPrinterElementsResponseMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/GetPrinterElementsResponse";
/>
        </operation>
        <operation name="GetJobElements">
            <input message="wprt:GetJobElementsRequestMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/GetJobElements";
/>
            <output message="wprt:GetJobElementsResponseMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/GetJobElementsResponse";
/>
        </operation>
        <operation name="GetActiveJobs">
            <input message="wprt:GetActiveJobsRequestMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/GetActiveJobs";
/>
            <output message="wprt:GetActiveJobsResponseMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/GetActiveJobsResponse";
/>
        </operation>
        <operation name="GetJobHistory">
            <input message="wprt:GetJobHistoryRequestMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/GetJobHistory";
/>
            <output message="wprt:GetJobHistoryResponseMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/GetJobHistoryResponse";
/>
        </operation>
        <operation name="SetEventRate">
            <input message="wprt:SetEventRateRequestMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/SetEventRate";
/>
            <output message="wprt:SetEventRateResponseMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/SetEventRateResponse";
/>
        </operation>
        <operation name="PrinterElementsChangeEvent">
            <output message="wprt:PrinterElementsChangeEventMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/PrinterElementsChangeEvent";
/>
        </operation>
        <operation name="PrinterStatusSummaryEvent">
            <output message="wprt:PrinterStatusSummaryEventMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/PrinterStatusSummaryEvent";
/>
        </operation>
        <operation name="PrinterStatusConditionEvent">
            <output message="wprt:PrinterStatusConditionEventMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/PrinterStatusConditionEvent";
/>
        </operation>
        <operation name="PrinterStatusConditionClearedEvent">
            <output message="wprt:PrinterStatusConditionClearedEventMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/PrinterStatusConditionClearedEvent";
/>
        </operation>
        <operation name="JobStatusEvent">
            <output message="wprt:JobStatusEventMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/JobStatusEvent";
/>
        </operation>
        <operation name="JobEndStateEvent">
            <output message="wprt:JobEndStateEventMsg"
                  
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/print/JobEndStateEvent";
/>
        </operation>

    </portType>
    <binding name="PrinterServiceBinding" type="wprt:PrinterServiceType">
        <wsoap12:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsp:PolicyReference URI="#ServicePolicy" />
        <operation name="CreatePrintJob">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/CreatePrintJob";
                soapActionRequired="true" />
            <input>
                <wsoap12:body use="literal" />
            </input>
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="SendDocument">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/SendDocument";
                soapActionRequired="true" />
            <input>
                <wsoap12:body use="literal" />
            </input>
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="AddDocument">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/AddDocument";
                soapActionRequired="true" />
            <input>
                <wsoap12:body use="literal" />
            </input>
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="CancelJob">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/CancelJob";
                soapActionRequired="true" />
            <input>
                <wsoap12:body use="literal" />
            </input>
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="GetPrinterElements">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/GetPrinterElements";
                soapActionRequired="true" />
            <input>
                <wsoap12:body use="literal" />
            </input>
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="GetJobElements">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/GetJobElements";
                soapActionRequired="true" />
            <input>
                <wsoap12:body use="literal" />
            </input>
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="GetActiveJobs">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/GetActiveJobs";
                soapActionRequired="true" />
            <input>
                <wsoap12:body use="literal" />
            </input>
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="GetJobHistory">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/GetJobHistory";
                soapActionRequired="true" />
            <input>
                <wsoap12:body use="literal" />
            </input>
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="SetEventRate">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/SetEventRate";
                soapActionRequired="true" />
            <input>
                <wsoap12:body use="literal" />
            </input>
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="PrinterElementsChangeEvent">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/PrinterElementsChangeEvent";
                soapActionRequired="true" />
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="PrinterStatusSummaryEvent">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/PrinterStatusSummaryEvent";
                soapActionRequired="true" />
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="PrinterStatusConditionEvent">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/PrinterStatusConditionEvent";
                soapActionRequired="true" />
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="PrinterStatusConditionClearedEvent">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/PrinterStatusConditionClearedEvent";
                soapActionRequired="true" />
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="JobStatusEvent">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/JobStatusEvent";
                soapActionRequired="true" />
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>
        <operation name="JobEndStateEvent">
            <wsoap12:operation
               
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/print/JobEndStateEvent";
                soapActionRequired="true" />
            <output>
                <wsoap12:body use="literal" />
            </output>
        </operation>

    </binding>
    <service name="PrinterService">
        <port name="PrinterPort" binding="wprt:PrinterServiceBinding">
            <wsoap12:address location="http://localhost/PrinterService/"/>
        </port>
    </service>
</definitions>





--
View this message in context: 
http://cxf.547215.n5.nabble.com/WS-Discovery-ProbeMatch-how-can-I-change-Types-tp5753457.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to