Webservice response namespace does not match WSDL definition

22,212

Thanks to the hint about SoapHandlers provided by Osw, I was able to solve the issue. Here was my fix in case anyone runs into anything similar:

1) Add a handler chain annotation to your main JAX-WS service class: @HandlerChain(file = "handlers.xml")

2) Add a handlers.xml file to your resources folder:

<?xml version="1.0" encoding="UTF-8"?>
<handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
    <handler-chain>
        <handler>
            <handler-class>com.sample.handlers.FixNamespaceHandler
            </handler-class>
        </handler>
    </handler-chain>
</handler-chains>

3) Add FixNamespaceHandler which replaces the incorrect namespace declarations with the correct ones:

public class FixNamespaceHandler implements SOAPHandler<SOAPMessageContext> {

    @Override
    public void close(MessageContext arg0) {
        // Do nothing
    }

    @Override
    public boolean handleFault(SOAPMessageContext arg0) {
        // Do nothing
        return true;
    }

    @Override
    public boolean handleMessage(SOAPMessageContext smc) {
        Boolean outboundProperty = (Boolean) smc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);

        if (!outboundProperty.booleanValue()) {
            try {
                SOAPBody soapBody = smc.getMessage().getSOAPBody();
                soapBody.removeNamespaceDeclaration("ns0");
                soapBody.addNamespaceDeclaration("s0", "urn:HPD_IncidentInterface_WS");
                SOAPElement oldElement = (SOAPElement) soapBody.getFirstChild();
                cloneToNewNamespace(oldElement, soapBody, "s0");
                soapBody.removeChild(oldElement);
            } catch (SOAPException e) {
                e.printStackTrace();
            }
        }
        return true;
    }

    private void cloneToNewNamespace(Node nodeToRename, SOAPElement parentElement, String prefix) throws SOAPException {
        if (nodeToRename instanceof SOAPElement) {
            SOAPElement elementToRename = (SOAPElement) nodeToRename;
            SOAPElement newElement = parentElement.addChildElement(elementToRename.getElementName().getLocalName(), prefix);
            for (int index = 0; index < elementToRename.getChildNodes().getLength(); index++) {
                Node childNode = elementToRename.getChildNodes().item(index);
                cloneToNewNamespace(childNode, newElement, prefix);
            }
        } else {
            parentElement.addTextNode(nodeToRename.getNodeValue());
        }
    }

    @Override
    public Set<QName> getHeaders() {
        // Do nothing
        return null;
    }
}
Share:
22,212
Templar
Author by

Templar

Developer for a leading eCommerce platform software company. Tools/frameworks of interest include Adobe AEM, Spring Framework, JPA, REST, JMS, Lucene/SOLR, Maven, and Git.

Updated on July 09, 2022

Comments

  • Templar
    Templar almost 2 years

    I'm attempting to connect to a webservice using JAX-WS which has a WSDL definition that does not quite match the actual response received from the webservice. Basically, the WSDL indicates that all elements are part of the "urn:HPD_IncidentInterface_WS" namespace, but the actual response elements are in the "urn:Port" namespace. This causes JAX-WS to throw the following exception:

    com.sun.xml.internal.ws.streaming.XMLStreamReaderException: unexpected XML tag. expected: {urn:HPD_IncidentInterface_WS}HelpDesk_QueryList_ServiceResponse but found: {urn:Port}HelpDesk_QueryList_ServiceResponse

    My plan to workaround this issue is to download the WSDL, modify it to match the namespace in the actual response, and then re-generate the JAX-WS code using wsimport. However, I'm having difficulty figuring out how to modify the WSDL so that the response namespace is correct. Based on what I've researched so far, it looks like I need to create a new WSDL file with a wsdl:definition that contains the urn:Port targetNamespace and then import it into the original WSDL file, but I'm can't seem to get the syntax right. Can anyone help me to correct the WSDL to match the actual webservice response?

    Here is a sample of the response which references the urn:Port namespace:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <soapenv:Body>
          <ns0:HelpDesk_QueryList_ServiceResponse xmlns:ns0="urn:Port">
             <ns0:getListValues>
                <ns0:Assigned_Group>APP-eBiz-EP-L2</ns0:Assigned_Group>
                <ns0:Assigned_Group_Shift_Name/>
                <ns0:Assigned_Support_Company>Acme</ns0:Assigned_Support_Company>
                <ns0:Assigned_Support_Organization>Applications - eBusinessServices</ns0:Assigned_Support_Organization>
                <ns0:Assignee>Geoff Denning</ns0:Assignee>
                <ns0:Categorization_Tier_1>Issue</ns0:Categorization_Tier_1>
                <ns0:Categorization_Tier_2>Failure</ns0:Categorization_Tier_2>
                <ns0:Categorization_Tier_3/>
                <ns0:City>Mountain View</ns0:City>
                <ns0:Closure_Manufacturer/>
                <ns0:Closure_Product_Category_Tier1/>
                <ns0:Closure_Product_Category_Tier2/>
                <ns0:Closure_Product_Category_Tier3/>
                <ns0:Closure_Product_Model_Version/>
                <ns0:Closure_Product_Name/>
                <ns0:Company>Acme</ns0:Company>
                <ns0:Contact_Company>Acme</ns0:Contact_Company>
                <ns0:Contact_Sensitivity>Standard</ns0:Contact_Sensitivity>
                <ns0:Country>United States</ns0:Country>
                <ns0:Department>Mgmt Information Systems</ns0:Department>
                <ns0:Summary>Test summary</ns0:Summary>
                <ns0:Notes>Refer to the attached error screenshot.</ns0:Notes>
                <ns0:First_Name>Geoff</ns0:First_Name>
                <ns0:Impact>4-Minor/Localized</ns0:Impact>
                <ns0:Incident_Number>INC000000773346</ns0:Incident_Number>
                <ns0:Internet_E-mail>[email protected]</ns0:Internet_E-mail>
                <ns0:Last_Name>Denning</ns0:Last_Name>
                <ns0:Manufacturer/>
                <ns0:Middle_Initial/>
                <ns0:Organization>IT-eBusiness</ns0:Organization>
                <ns0:Phone_Number>000-0000</ns0:Phone_Number>
                <ns0:Priority>Low</ns0:Priority>
                <ns0:Priority_Weight>2</ns0:Priority_Weight>
                <ns0:Product_Categorization_Tier_1>Software-Application</ns0:Product_Categorization_Tier_1>
                <ns0:Product_Categorization_Tier_2>eBusiness Services</ns0:Product_Categorization_Tier_2>
                <ns0:Product_Categorization_Tier_3>Test</ns0:Product_Categorization_Tier_3>
                <ns0:Product_Model_Version/>
                <ns0:Product_Name/>
                <ns0:Region>Americas</ns0:Region>
                <ns0:Reported_Source>Email</ns0:Reported_Source>
                <ns0:Resolution/>
                <ns0:Resolution_Category/>
                <ns0:Resolution_Category_Tier_2/>
                <ns0:Resolution_Category_Tier_3/>
                <ns0:Service_Type>User Service Restoration</ns0:Service_Type>
                <ns0:Site>Mountain View, CA</ns0:Site>
                <ns0:Site_Group>NA West</ns0:Site_Group>
                <ns0:Status>Assigned</ns0:Status>
                <ns0:Status_Reason/>
                <ns0:Urgency>4-Low</ns0:Urgency>
                <ns0:VIP>No</ns0:VIP>
             </ns0:getListValues>
          </ns0:HelpDesk_QueryList_ServiceResponse>
       </soapenv:Body>
    </soapenv:Envelope>
    

    Existing WSDL with only urn:HPD_IncidentInterface_WS namespace:

    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions targetNamespace="urn:HPD_IncidentInterface_WS" xmlns:s0="urn:HPD_IncidentInterface_WS" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     <wsdl:types>
      <xsd:schema elementFormDefault="qualified" targetNamespace="urn:HPD_IncidentInterface_WS">
       <xsd:element name="HelpDesk_Query_Service" type="s0:GetInputMap"/>
       <xsd:complexType name="GetInputMap">
        <xsd:sequence>
         <xsd:element name="Incident_Number" type="xsd:string"/>
        </xsd:sequence>
       </xsd:complexType>
       <xsd:element name="HelpDesk_Query_ServiceResponse" type="s0:GetOutputMap"/>
       <xsd:complexType name="GetOutputMap">
        <xsd:sequence>
         <xsd:element name="Assigned_Group" type="xsd:string"/>
         <xsd:element name="Assigned_Group_Shift_Name" type="xsd:string"/>
         <xsd:element name="Assigned_Support_Company" type="xsd:string"/>
         <xsd:element name="Assigned_Support_Organization" type="xsd:string"/>
         <xsd:element name="Assignee" type="xsd:string"/>
         <xsd:element name="Categorization_Tier_1" type="xsd:string"/>
         <xsd:element name="Categorization_Tier_2" type="xsd:string"/>
         <xsd:element name="Categorization_Tier_3" type="xsd:string"/>
         <xsd:element name="City" type="xsd:string"/>
         <xsd:element name="Closure_Manufacturer" type="xsd:string"/>
         <xsd:element name="Closure_Product_Category_Tier1" type="xsd:string"/>
         <xsd:element name="Closure_Product_Category_Tier2" type="xsd:string"/>
         <xsd:element name="Closure_Product_Category_Tier3" type="xsd:string"/>
         <xsd:element name="Closure_Product_Model_Version" type="xsd:string"/>
         <xsd:element name="Closure_Product_Name" type="xsd:string"/>
         <xsd:element name="Company" type="xsd:string"/>
         <xsd:element name="Contact_Company" type="xsd:string"/>
         <xsd:element name="Contact_Sensitivity" type="s0:Contact_SensitivityType"/>
         <xsd:element name="Country" type="xsd:string"/>
         <xsd:element name="Department" type="xsd:string"/>
         <xsd:element name="Summary" type="xsd:string"/>
         <xsd:element name="Notes" type="xsd:string"/>
         <xsd:element name="First_Name" type="xsd:string"/>
         <xsd:element name="Impact" type="s0:ImpactType"/>
         <xsd:element name="Last_Name" type="xsd:string"/>
         <xsd:element name="Manufacturer" type="xsd:string"/>
         <xsd:element name="Middle_Initial" type="xsd:string"/>
         <xsd:element name="Organization" type="xsd:string"/>
         <xsd:element name="Phone_Number" type="xsd:string"/>
         <xsd:element name="Priority" type="s0:PriorityType"/>
         <xsd:element name="Priority_Weight" type="xsd:int"/>
         <xsd:element name="Product_Categorization_Tier_1" type="xsd:string"/>
         <xsd:element name="Product_Categorization_Tier_2" type="xsd:string"/>
         <xsd:element name="Product_Categorization_Tier_3" type="xsd:string"/>
         <xsd:element name="Product_Model_Version" type="xsd:string"/>
         <xsd:element name="Product_Name" type="xsd:string"/>
         <xsd:element name="Region" type="xsd:string"/>
         <xsd:element name="Reported_Source" type="s0:Reported_SourceType"/>
         <xsd:element name="Resolution" type="xsd:string"/>
         <xsd:element name="Resolution_Category" type="xsd:string"/>
         <xsd:element name="Resolution_Category_Tier_2" type="xsd:string"/>
         <xsd:element name="Resolution_Category_Tier_3" type="xsd:string"/>
         <xsd:element name="Service_Type" type="s0:Service_TypeType"/>
         <xsd:element name="Site" type="xsd:string"/>
         <xsd:element name="Site_Group" type="xsd:string"/>
         <xsd:element name="Status" type="s0:StatusType"/>
         <xsd:element name="Status_Reason" type="s0:Status_ReasonType"/>
         <xsd:element name="Urgency" type="s0:UrgencyType"/>
         <xsd:element name="VIP" type="s0:VIPType"/>
        </xsd:sequence>
       </xsd:complexType>
       <xsd:simpleType name="Contact_SensitivityType">
        <xsd:restriction base="xsd:string">
         <xsd:enumeration value="Sensitive"/>
         <xsd:enumeration value="Standard"/>
        </xsd:restriction>
       </xsd:simpleType>
       <xsd:simpleType name="ImpactType">
        <xsd:restriction base="xsd:string">
         <xsd:enumeration value="1-Extensive/Widespread"/>
         <xsd:enumeration value="2-Significant/Large"/>
         <xsd:enumeration value="3-Moderate/Limited"/>
         <xsd:enumeration value="4-Minor/Localized"/>
        </xsd:restriction>
       </xsd:simpleType>
       <xsd:simpleType name="PriorityType">
        <xsd:restriction base="xsd:string">
         <xsd:enumeration value="Critical"/>
         <xsd:enumeration value="High"/>
         <xsd:enumeration value="Medium"/>
         <xsd:enumeration value="Low"/>
        </xsd:restriction>
       </xsd:simpleType>
       <xsd:simpleType name="Reported_SourceType">
        <xsd:restriction base="xsd:string">
         <xsd:enumeration value="Direct Input"/>
         <xsd:enumeration value="Email"/>
         <xsd:enumeration value="External Escalation"/>
         <xsd:enumeration value="Fax"/>
         <xsd:enumeration value="Systems Management"/>
         <xsd:enumeration value="Phone"/>
         <xsd:enumeration value="Voice Mail"/>
         <xsd:enumeration value="Walk In"/>
         <xsd:enumeration value="Web"/>
         <xsd:enumeration value="Other"/>
        </xsd:restriction>
       </xsd:simpleType>
       <xsd:simpleType name="Service_TypeType">
        <xsd:restriction base="xsd:string">
         <xsd:enumeration value="User Service Restoration"/>
         <xsd:enumeration value="User Service Request"/>
         <xsd:enumeration value="Infrastructure Restoration"/>
         <xsd:enumeration value="Infrastructure Event"/>
        </xsd:restriction>
       </xsd:simpleType>
       <xsd:simpleType name="StatusType">
        <xsd:restriction base="xsd:string">
         <xsd:enumeration value="New"/>
         <xsd:enumeration value="Assigned"/>
         <xsd:enumeration value="In Progress"/>
         <xsd:enumeration value="Pending"/>
         <xsd:enumeration value="Resolved"/>
         <xsd:enumeration value="Closed"/>
         <xsd:enumeration value="Cancelled"/>
        </xsd:restriction>
       </xsd:simpleType>
       <xsd:simpleType name="Status_ReasonType">
        <xsd:restriction base="xsd:string">
         <xsd:enumeration value="Infrastructure Change Created"/>
         <xsd:enumeration value="Local Site Action Required"/>
         <xsd:enumeration value="Purchase Order Approval"/>
         <xsd:enumeration value="Registration Approval"/>
         <xsd:enumeration value="Supplier Delivery"/>
         <xsd:enumeration value="Support Contact Hold"/>
         <xsd:enumeration value="Third Party Vendor Action Reqd"/>
         <xsd:enumeration value="Client Action Required"/>
         <xsd:enumeration value="Infrastructure Change"/>
         <xsd:enumeration value="Request"/>
         <xsd:enumeration value="Future Enhancement"/>
         <xsd:enumeration value="Pending Original Incident"/>
         <xsd:enumeration value="Client Hold"/>
         <xsd:enumeration value="Monitoring Incident"/>
         <xsd:enumeration value="Customer Follow-Up Required"/>
         <xsd:enumeration value="Temporary Corrective Action"/>
         <xsd:enumeration value="No Further Action Required"/>
         <xsd:enumeration value="Resolved by Original Incident"/>
        </xsd:restriction>
       </xsd:simpleType>
       <xsd:simpleType name="UrgencyType">
        <xsd:restriction base="xsd:string">
         <xsd:enumeration value="1-Critical"/>
         <xsd:enumeration value="2-High"/>
         <xsd:enumeration value="3-Medium"/>
         <xsd:enumeration value="4-Low"/>
        </xsd:restriction>
       </xsd:simpleType>
       <xsd:simpleType name="VIPType">
        <xsd:restriction base="xsd:string">
         <xsd:enumeration value="Yes"/>
         <xsd:enumeration value="No"/>
        </xsd:restriction>
       </xsd:simpleType>
       <xsd:element name="HelpDesk_QueryList_Service" type="s0:GetListInputMap"/>
       <xsd:complexType name="GetListInputMap">
        <xsd:sequence>
         <xsd:element name="Qualification" type="xsd:string"/>
         <xsd:element name="startRecord" type="xsd:string"/>
         <xsd:element name="maxLimit" type="xsd:string"/>
        </xsd:sequence>
       </xsd:complexType>
       <xsd:element name="HelpDesk_QueryList_ServiceResponse" type="s0:GetListOutputMap"/>
       <xsd:complexType name="GetListOutputMap">
        <xsd:sequence>
         <xsd:element maxOccurs="unbounded" name="getListValues">
          <xsd:complexType>
           <xsd:sequence>
            <xsd:element name="Assigned_Group" type="xsd:string"/>
            <xsd:element name="Assigned_Group_Shift_Name" type="xsd:string"/>
            <xsd:element name="Assigned_Support_Company" type="xsd:string"/>
            <xsd:element name="Assigned_Support_Organization" type="xsd:string"/>
            <xsd:element name="Assignee" type="xsd:string"/>
            <xsd:element name="Categorization_Tier_1" type="xsd:string"/>
            <xsd:element name="Categorization_Tier_2" type="xsd:string"/>
            <xsd:element name="Categorization_Tier_3" type="xsd:string"/>
            <xsd:element name="City" type="xsd:string"/>
            <xsd:element name="Closure_Manufacturer" type="xsd:string"/>
            <xsd:element name="Closure_Product_Category_Tier1" type="xsd:string"/>
            <xsd:element name="Closure_Product_Category_Tier2" type="xsd:string"/>
            <xsd:element name="Closure_Product_Category_Tier3" type="xsd:string"/>
            <xsd:element name="Closure_Product_Model_Version" type="xsd:string"/>
            <xsd:element name="Closure_Product_Name" type="xsd:string"/>
            <xsd:element name="Company" type="xsd:string"/>
            <xsd:element name="Contact_Company" type="xsd:string"/>
            <xsd:element name="Contact_Sensitivity" type="s0:Contact_SensitivityType"/>
            <xsd:element name="Country" type="xsd:string"/>
            <xsd:element name="Department" type="xsd:string"/>
            <xsd:element name="Summary" type="xsd:string"/>
            <xsd:element name="Notes" type="xsd:string"/>
            <xsd:element name="First_Name" type="xsd:string"/>
            <xsd:element name="Impact" type="s0:ImpactType"/>
            <xsd:element name="Incident_Number" type="xsd:string"/>
            <xsd:element name="Internet_E-mail" type="xsd:string"/>
            <xsd:element name="Last_Name" type="xsd:string"/>
            <xsd:element name="Manufacturer" type="xsd:string"/>
            <xsd:element name="Middle_Initial" type="xsd:string"/>
            <xsd:element name="Organization" type="xsd:string"/>
            <xsd:element name="Phone_Number" type="xsd:string"/>
            <xsd:element name="Priority" type="s0:PriorityType"/>
            <xsd:element name="Priority_Weight" type="xsd:int"/>
            <xsd:element name="Product_Categorization_Tier_1" type="xsd:string"/>
            <xsd:element name="Product_Categorization_Tier_2" type="xsd:string"/>
            <xsd:element name="Product_Categorization_Tier_3" type="xsd:string"/>
            <xsd:element name="Product_Model_Version" type="xsd:string"/>
            <xsd:element name="Product_Name" type="xsd:string"/>
            <xsd:element name="Region" type="xsd:string"/>
            <xsd:element name="Reported_Source" type="s0:Reported_SourceType"/>
            <xsd:element name="Resolution" type="xsd:string"/>
            <xsd:element name="Resolution_Category" type="xsd:string"/>
            <xsd:element name="Resolution_Category_Tier_2" type="xsd:string"/>
            <xsd:element name="Resolution_Category_Tier_3" type="xsd:string"/>
            <xsd:element name="Service_Type" type="s0:Service_TypeType"/>
            <xsd:element name="Site" type="xsd:string"/>
            <xsd:element name="Site_Group" type="xsd:string"/>
            <xsd:element name="Status" type="s0:StatusType"/>
            <xsd:element name="Status_Reason" type="s0:Status_ReasonType"/>
            <xsd:element name="Urgency" type="s0:UrgencyType"/>
            <xsd:element name="VIP" type="s0:VIPType"/>
           </xsd:sequence>
          </xsd:complexType>
         </xsd:element>
        </xsd:sequence>
       </xsd:complexType>
       <xsd:element name="HelpDesk_Modify_Service" type="s0:SetInputMap"/>
       <xsd:complexType name="SetInputMap">
        <xsd:sequence>
         <xsd:element name="Categorization_Tier_1" type="xsd:string"/>
         <xsd:element name="Categorization_Tier_2" type="xsd:string"/>
         <xsd:element name="Categorization_Tier_3" type="xsd:string"/>
         <xsd:element name="Closure_Manufacturer" type="xsd:string"/>
         <xsd:element name="Closure_Product_Category_Tier1" type="xsd:string"/>
         <xsd:element name="Closure_Product_Category_Tier2" type="xsd:string"/>
         <xsd:element name="Closure_Product_Category_Tier3" type="xsd:string"/>
         <xsd:element name="Closure_Product_Model_Version" type="xsd:string"/>
         <xsd:element name="Closure_Product_Name" type="xsd:string"/>
         <xsd:element name="Company" type="xsd:string"/>
         <xsd:element name="Summary" type="xsd:string"/>
         <xsd:element name="Notes" type="xsd:string"/>
         <xsd:element name="Impact" type="s0:ImpactType"/>
         <xsd:element name="Manufacturer" type="xsd:string"/>
         <xsd:element name="Product_Categorization_Tier_1" type="xsd:string"/>
         <xsd:element name="Product_Categorization_Tier_2" type="xsd:string"/>
         <xsd:element name="Product_Categorization_Tier_3" type="xsd:string"/>
         <xsd:element name="Product_Model_Version" type="xsd:string"/>
         <xsd:element name="Product_Name" type="xsd:string"/>
         <xsd:element name="Reported_Source" type="s0:Reported_SourceType"/>
         <xsd:element name="Resolution" type="xsd:string"/>
         <xsd:element name="Resolution_Category" type="xsd:string"/>
         <xsd:element name="Resolution_Category_Tier_2" type="xsd:string"/>
         <xsd:element name="Resolution_Category_Tier_3" type="xsd:string"/>
         <xsd:element name="Resolution_Method" type="xsd:string"/>
         <xsd:element name="Service_Type" type="s0:Service_TypeType"/>
         <xsd:element name="Status" type="s0:StatusType"/>
         <xsd:element name="Urgency" type="s0:UrgencyType"/>
         <xsd:element name="Action" type="xsd:string"/>
         <xsd:element name="Work_Info_Summary" type="xsd:string"/>
         <xsd:element name="Work_Info_Notes" type="xsd:string"/>
         <xsd:element name="Work_Info_Type" type="s0:Work_Info_TypeType"/>
         <xsd:element name="Work_Info_Date" type="xsd:dateTime"/>
         <xsd:element name="Work_Info_Source" type="s0:Work_Info_SourceType"/>
         <xsd:element name="Work_Info_Locked" type="s0:VIPType"/>
         <xsd:element name="Work_Info_View_Access" type="s0:Work_Info_View_AccessType"/>
         <xsd:element name="Incident_Number" type="xsd:string"/>
        </xsd:sequence>
       </xsd:complexType>
       <xsd:simpleType name="Work_Info_TypeType">
        <xsd:restriction base="xsd:string">
         <xsd:enumeration value="----- Customer Inbound -----"/>
         <xsd:enumeration value="Customer Communication"/>
         <xsd:enumeration value="Customer Follow-up"/>
         <xsd:enumeration value="Customer Status Update"/>
         <xsd:enumeration value="----- Customer Outbound -----"/>
         <xsd:enumeration value="Closure Follow Up"/>
         <xsd:enumeration value="Detail Clarification"/>
         <xsd:enumeration value="General Information"/>
         <xsd:enumeration value="Resolution Communications"/>
         <xsd:enumeration value="Satisfaction Survey"/>
         <xsd:enumeration value="Status Update"/>
         <xsd:enumeration value="----- General -----"/>
         <xsd:enumeration value="Incident Task / Action"/>
         <xsd:enumeration value="Problem Script"/>
         <xsd:enumeration value="Working Log"/>
         <xsd:enumeration value="Email System"/>
         <xsd:enumeration value="Paging System"/>
        </xsd:restriction>
       </xsd:simpleType>
       <xsd:simpleType name="Work_Info_SourceType">
        <xsd:restriction base="xsd:string">
         <xsd:enumeration value="Email"/>
         <xsd:enumeration value="Fax"/>
         <xsd:enumeration value="Phone"/>
         <xsd:enumeration value="Voice Mail"/>
         <xsd:enumeration value="Walk In"/>
         <xsd:enumeration value="Pager"/>
         <xsd:enumeration value="System Assignment"/>
         <xsd:enumeration value="Web"/>
         <xsd:enumeration value="Other"/>
        </xsd:restriction>
       </xsd:simpleType>
       <xsd:simpleType name="Work_Info_View_AccessType">
        <xsd:restriction base="xsd:string">
         <xsd:enumeration value="Internal"/>
         <xsd:enumeration value="Public"/>
        </xsd:restriction>
       </xsd:simpleType>
       <xsd:element name="HelpDesk_Modify_ServiceResponse" type="s0:SetOutputMap"/>
       <xsd:complexType name="SetOutputMap">
        <xsd:sequence/>
       </xsd:complexType>
       <xsd:element name="AuthenticationInfo" type="s0:AuthenticationInfo"/>
       <xsd:complexType name="AuthenticationInfo">
        <xsd:sequence>
         <xsd:element name="userName" type="xsd:string"/>
         <xsd:element name="password" type="xsd:string"/>
         <xsd:element minOccurs="0" name="authentication" type="xsd:string"/>
         <xsd:element minOccurs="0" name="locale" type="xsd:string"/>
         <xsd:element minOccurs="0" name="timeZone" type="xsd:string"/>
        </xsd:sequence>
       </xsd:complexType>
      </xsd:schema>
     </wsdl:types>
    
       <wsdl:message name="HelpDesk_Query_ServiceSoapIn">
    
          <wsdl:part element="s0:HelpDesk_Query_Service" name="parameters"/>
    
       </wsdl:message>
    
       <wsdl:message name="HelpDesk_Query_ServiceSoapOut">
    
          <wsdl:part element="s0:HelpDesk_Query_ServiceResponse" name="parameters"/>
    
       </wsdl:message>
    
       <wsdl:message name="HelpDesk_Modify_ServiceSoapIn">
    
          <wsdl:part element="s0:HelpDesk_Modify_Service" name="parameters"/>
    
       </wsdl:message>
    
       <wsdl:message name="HelpDesk_Modify_ServiceSoapOut">
    
          <wsdl:part element="s0:HelpDesk_Modify_ServiceResponse" name="parameters"/>
    
       </wsdl:message>
    
       <wsdl:message name="HelpDesk_QueryList_ServiceSoapOut">
    
          <wsdl:part element="s0:HelpDesk_QueryList_ServiceResponse" name="parameters"/>
    
       </wsdl:message>
    
       <wsdl:message name="HelpDesk_QueryList_ServiceSoapIn">
    
          <wsdl:part element="s0:HelpDesk_QueryList_Service" name="parameters"/>
    
       </wsdl:message>
    
       <wsdl:message name="ARAuthenticate">
    
          <wsdl:part element="s0:AuthenticationInfo" name="parameters"/>
    
       </wsdl:message>
    
       <wsdl:portType name="HPD_IncidentInterface_WSPortType">
    
          <wsdl:operation name="HelpDesk_Query_Service">
    
             <wsdl:input message="s0:HelpDesk_Query_ServiceSoapIn"/>
    
             <wsdl:output message="s0:HelpDesk_Query_ServiceSoapOut"/>
    
          </wsdl:operation>
    
          <wsdl:operation name="HelpDesk_QueryList_Service">
    
             <wsdl:input message="s0:HelpDesk_QueryList_ServiceSoapIn"/>
    
             <wsdl:output message="s0:HelpDesk_QueryList_ServiceSoapOut"/>
    
          </wsdl:operation>
    
          <wsdl:operation name="HelpDesk_Modify_Service">
    
             <wsdl:input message="s0:HelpDesk_Modify_ServiceSoapIn"/>
    
             <wsdl:output message="s0:HelpDesk_Modify_ServiceSoapOut"/>
    
          </wsdl:operation>
    
       </wsdl:portType>
    
       <wsdl:binding name="HPD_IncidentInterface_WSSoapBinding" type="s0:HPD_IncidentInterface_WSPortType">
    
          <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    
          <wsdl:operation name="HelpDesk_Query_Service">
    
             <soap:operation soapAction="urn:HPD_IncidentInterface_WS/HelpDesk_Query_Service" style="document"/>
    
             <wsdl:input>
    
                <soap:header message="s0:ARAuthenticate" part="parameters" use="literal">
    
                </soap:header>
    
                <soap:body use="literal"/>
    
             </wsdl:input>
    
             <wsdl:output>
    
                <soap:body use="literal"/>
    
             </wsdl:output>
    
          </wsdl:operation>
    
          <wsdl:operation name="HelpDesk_QueryList_Service">
    
             <soap:operation soapAction="urn:HPD_IncidentInterface_WS/HelpDesk_QueryList_Service" style="document"/>
    
             <wsdl:input>
    
                <soap:header message="s0:ARAuthenticate" part="parameters" use="literal">
    
                </soap:header>
    
                <soap:body use="literal"/>
    
             </wsdl:input>
    
             <wsdl:output>
    
                <soap:body use="literal"/>
    
             </wsdl:output>
    
          </wsdl:operation>
    
          <wsdl:operation name="HelpDesk_Modify_Service">
    
             <soap:operation soapAction="urn:HPD_IncidentInterface_WS/HelpDesk_Modify_Service" style="document"/>
    
             <wsdl:input>
    
                <soap:header message="s0:ARAuthenticate" part="parameters" use="literal">
    
                </soap:header>
    
                <soap:body use="literal"/>
    
             </wsdl:input>
    
             <wsdl:output>
    
                <soap:body use="literal"/>
    
             </wsdl:output>
    
          </wsdl:operation>
    
       </wsdl:binding>
    
       <wsdl:service name="HPD_IncidentInterface_WSService">
    
      <wsdl:documentation>
    Query and Modify Operations  </wsdl:documentation>
    
          <wsdl:port binding="s0:HPD_IncidentInterface_WSSoapBinding" name="HPD_IncidentInterface_WSSoap">
    
             <soap:address location="http://internal.acme.com:8080/arsys/services/ARService?server=rsm7&amp;webService=HPD_IncidentInterface_WS"/>
    
          </wsdl:port>
    
       </wsdl:service>
    
    </wsdl:definitions>