<?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:c="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Configuration.wsdl" 
	xmlns:ct="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Configuration.xsd" 
	xmlns:wh="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.xsd" 
	xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl" 
	targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl" 
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

	<wsdl:import namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Configuration.wsdl" location="Configuration.wsdl"/>

	<wsdl:documentation>
      This WSDL document describes the Warehouse 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/Configuration.xsd" schemaLocation="Configuration.xsd"/>
	    <xs:import namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.xsd" schemaLocation="Warehouse.xsd"/>
	  </xs:schema>
	</wsdl:types>

	<wsdl:message name="ShipGoodsRequest">
		<wsdl:part name="ItemList" type="wh:ItemList"/>
		<wsdl:part name="Customer" type="wh:CustomerReferenceType"/>
		<wsdl:part name="ConfigurationHeader" element="ct:Configuration"/>
	</wsdl:message>

	<wsdl:message name="ShipGoodsResponse">
		<wsdl:documentation>
        A response of true indicates the goods have been shipped. A response of false
        indicates the warehouse either does not carry that part or does not have enough stock to
        fill the requested quantity.
 		</wsdl:documentation>
		<wsdl:part name="Response" type="wh:ItemShippingStatusList"/>
	</wsdl:message>

	<wsdl:portType name="WarehouseShipmentsPortType">
		<wsdl:operation name="ShipGoods">
			<wsdl:documentation>Ship the specified number of the specified part to the specified customer.</wsdl:documentation>
			<wsdl:input message="tns:ShipGoodsRequest"/>
			<wsdl:output message="tns:ShipGoodsResponse"/>
			<wsdl:fault name="ConfigurationFault" message="c:ConfigurationFaultMessage"/>
		</wsdl:operation>
	</wsdl:portType>

	<wsdl:binding name="WarehouseSoapBinding" type="tns:WarehouseShipmentsPortType">
		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
		<wsdl:operation name="ShipGoods">
			<soap:operation 
				soapAction="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl"/>
			<wsdl:input>
				<soap:body use="literal" 
					namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl"
					parts="ItemList Customer" />
				<soap:header message="tns:ShipGoodsRequest" part="ConfigurationHeader" use="literal">
					<soap:headerfault message="c:ConfigurationFaultMessage" part="ConfigurationFault" use="literal" />
				</soap:header>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal" 
					namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
</wsdl:definitions>
<!-- The following is an example of a SOAP request message compliant with the above WSDL:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/envelope/">
  <s:Header>
    <h:Configuration 
		xmlns:h="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Configuration.xsd">
      <h:UserId>8bf7ec9a-f3b2-4f39-9807-c55c860a5983</h:UserId>
      <h:ServiceUrl Role="WarehouseA">http://www.ws-i.org/BasicSampleApp/WarehouseA</h:ServiceUrl>
      <h:ServiceUrl Role="LoggingFacility">http://www.ws-i.org/BasicSampleApp/LoggingFacility</h:ServiceUrl>
      <h:ServiceUrl Role="WarehouseC">http://www.ws-i.org/BasicSampleApp/WarehouseC</h:ServiceUrl>
      <h:ServiceUrl Role="Retailer">http://www.ws-i.org/BasicSampleApp/Retailer</h:ServiceUrl>
      <h:ServiceUrl Role="WarehouseB">http://www.ws-i.org/BasicSampleApp/WarehouseB</h:ServiceUrl>
      <h:ServiceUrl Role="ManufacturerA">http://www.ws-i.org/BasicSampleApp/ManufacturerA</h:ServiceUrl>
      <h:ServiceUrl Role="ManufacturerB">http://www.ws-i.org/BasicSampleApp/ManufacturerB</h:ServiceUrl>
      <h:ServiceUrl Role="ManufacturerC">http://www.ws-i.org/BasicSampleApp/ManufacturerC</h:ServiceUrl>
    </h:Configuration>
  </s:Header>
  <s:Body>
    <ns1:ShipGoods xmlns:ns1="http://www,ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl"
		xmlns:ns2="http://www,ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.xsd">
	<ItemList>
	   <ns2:Item>
	      <ns2:ProductNumber>605006</ns2:ProductNumber>
      	<ns2:Quantity>23</ns2:Quantity>
	   </ns2:Item>
	   <ns2:Item>
	      <ns2:ProductNumber>605007</ns2:ProductNumber>
      	<ns2:Quantity>22</ns2:Quantity>
	   </ns2:Item>
	</ItemList>
      <Customer>D22845-W8N349Y-tky</Customer>
    </ns1:ShipGoods>
  </s:Body>
</s:Envelope>

The following is an example of a SOAP response message that is compliant with the WSDL:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/envelope/">
  <s:Body>
    <ns1:ShipGoodsResponse xmlns:ns1="http://www,ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl"
		xmlns:ns2="http://www,ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.xsd">
	<Response>
	   <ns2:ItemStatus>
	      <ns2:ProductNumber>605006</ns2:ProductNumber>
	      <ns2:Status>false</ns2:Status>
	   </ns2:ItemStatus>
	   <ns2:ItemStatus>
	      <ns2:ProductNumber>605007</ns2:ProductNumber>
	      <ns2:Status>true</ns2:Status>
	   </ns2:ItemStatus>
	</Response>
    </ns1:ShipGoodsResponse>
  </s:Body>
</s:Envelope>

-->
