<?xml version="1.0" encoding="utf-8"?>
<!--

    Copyright (c) 2002, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<wsdl:definitions 
		xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
		xmlns:xs="http://www.w3.org/2001/XMLSchema" 
		xmlns:log="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.xsd" 
		xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl" 
		targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl" 
		xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
	<wsdl:documentation>
      This WSDL document describes the LoggingFacility service for the WS-I Basic Sample Application. This
      service is part of a supply chain management system. It is used to demonstrate a web service that is
      conformant with the Basic Profile and to show how different web service platforms can interoperate.
		</wsdl:documentation>

	<wsdl:types>
	  <xs:schema>
  	    <xs:import namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.xsd" schemaLocation="LoggingFacility.xsd"/>
	  </xs:schema>
	</wsdl:types>

	<wsdl:message name="logEventRequest">
		<wsdl:part name="Document" element="log:logEventRequestElement"/>
	</wsdl:message>

	<wsdl:message name="getEventsRequest">
		<wsdl:part name="Document" element="log:getEventsRequestElement"/>
	</wsdl:message>

	<wsdl:message name="getEventsResponse">
		<wsdl:part name="Document" element="log:getEventsResponseElement"/>
	</wsdl:message>

	<wsdl:message name="getEventsRepositoryMissingFault">
		<wsdl:part name="Document" element="log:getEventsFaultElement"/>
	</wsdl:message>

	<wsdl:portType name="LoggingFacilityLogPortType">
		<wsdl:operation name="logEvent">
			<wsdl:documentation>Append an entry to the system log.</wsdl:documentation>
			<wsdl:input message="tns:logEventRequest"/>
		</wsdl:operation>
		<wsdl:operation name="getEvents">
			<wsdl:documentation>Retrieve entries from the system log with the specified userId.</wsdl:documentation>
			<wsdl:input message="tns:getEventsRequest"/>
			<wsdl:output message="tns:getEventsResponse"/>
			<wsdl:fault name="RepositoryMissingFault" message="tns:getEventsRepositoryMissingFault"/>
		</wsdl:operation>
	</wsdl:portType>

	<wsdl:binding name="LoggingFacilitySoapBinding" type="tns:LoggingFacilityLogPortType">
		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
		<wsdl:operation name="logEvent">
			<soap:operation soapAction=""/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
		</wsdl:operation>
		<wsdl:operation name="getEvents">
			<soap:operation soapAction=""/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
			<wsdl:fault name="RepositoryMissingFault">
				<soap:fault use="literal"/>
			</wsdl:fault>
		</wsdl:operation>
	</wsdl:binding>
</wsdl:definitions>

<!--
The following is an example of a SOAP message compliant with the above WSDL for the logEvent request:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <m:logEventRequestElement xmlns:m="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.xsd">
      <m:DemoUserID>My Id is 72+1111,AF37C.sdsdsd</m:DemoUserID>
      <m:ServiceID>WarehouseA:http://www.ws-i.org/SA/Warehouse.asmx</m:ServiceID>
      <m:EventID>3</m:EventID>
      <m:EventDescription>Initiating operation ShipGoods.</m:EventDescription>
      <d:Detail xmlns:d="http://my/namespace/">
        <d:Customer>D22845-W8N349Y-tky</d:Customer>
        <d:ProductId>123123123</d:ProductId>
        <d:Quantity>12</d:Quantity>
      </d:Detail>
    </m:logEventRequestElement>
  </s:Body>
</s:Envelope>


The following is an example of a SOAP message compliant with the above WSDL for the getEvents request:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/envelope/">
  <s:Body>
    <m:getEventsRequestElement xmlns:m="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.xsd">
      <m:DemoUserID>My Id is 72+1111,AF37C.sdsdsd</m:DemoUserID>
    </m:getEventsRequestElement>
  </s:Body>
</s:Envelope>


The following is an example of a SOAP message compliant with the above WSDL for the getEvents response:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <m:getEventsResponseElement xmlns:m="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.xsd">
      <m:LogEntry>
        <m:Timestamp>2002-08-09T13:45:51</m:Timestamp>
        <m:ServiceID>WarehouseA:http://www.ws-i.org/SA/Warehouse.asmx</m:ServiceID>
        <m:EventID>3</m:EventID>
        <m:EventDescription>Initiating operation ShipGoods.</m:EventDescription>
        <d:Detail xmlns:d="http://my/namespace/">
          <d:Customer>D22845-W8N349Y-tky</d:Customer>
          <d:ProductId>123123123</d:ProductId>
          <d:Quantity>12</d:Quantity>
        </d:Detail>
      </m:LogEntry>
      <m:LogEntry>
        <m:Timestamp>2002-08-09T13:47:04</m:Timestamp>
        <m:ServiceID>WarehouseA:http://www.ws-i.org/SA/Warehouse.asmx</m:ServiceID>
        <m:EventID>4</m:EventID>
        <m:EventDescription>Completing operation ShipGoods.</m:EventDescription>
      </m:LogEntry>
    </m:getEventsResponseElement>
  </s:Body>
</s:Envelope>

-->
