<?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 name="SampleConfigurator" 
	targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Configurator.wsdl" 
	xmlns="http://schemas.xmlsoap.org/wsdl/" 
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
	xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Configurator.wsdl" 
	xmlns:cfg="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Configurator.xsd" 
	xmlns:cfgn="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Configuration.xsd" 
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
	xmlns:xs="http://www.w3.org/2001/XMLSchema">

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

	<wsdl:message name="getConfigurationOptionsRequest">
		<wsdl:documentation>
		This message is used to obtain all of the discovered showcase implementations of 
		the WS-I services.  It contains useful information on which selections can be made, 
		such as platform, in addition to vital information about the choices, such as the
		endpoints.  The service may perform discovery in response to this message or may
		return cached information.  When the refresh bit is on, the implementation must
		perform (re)discovery.
  		</wsdl:documentation>
		<wsdl:part name="refresh" element="cfg:refresh"/>
	</wsdl:message>

	<wsdl:message name="getConfigurationOptionsResponse">
		<wsdl:documentation>
		This message is returned in response to getConfigurationOptions and contains 
		a list of alternative showcase implementations of the WS-I Basic Sample Application
		Web services.  The endpoints for the services and information about the service is
		provided to aid in selection.
		</wsdl:documentation>
		<wsdl:part name="configOptions" element="cfg:configOptions"/>
	</wsdl:message>

	<wsdl:message name="configuratorFailedFault">
		<wsdl:documentation>
		This message is used to indicate the configurator was unable to obtain configuration options.
		</wsdl:documentation>
		<wsdl:part name="configError" element="cfg:configError"/>
	</wsdl:message>

	<wsdl:portType name="ConfiguratorPortType">
		<wsdl:operation name="getConfigurationOptions">
			<wsdl:input message="tns:getConfigurationOptionsRequest"/>
			<wsdl:output message="tns:getConfigurationOptionsResponse"/>
			<wsdl:fault message="tns:configuratorFailedFault" name="configuratorFailedFault"/>
		</wsdl:operation>
	</wsdl:portType>

	<wsdl:binding name="ConfiguratorBinding" type="tns:ConfiguratorPortType">
		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
		<wsdl:operation name="getConfigurationOptions">
			<soap:operation soapAction="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Configurator.wsdl/getConfigurationOptions"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
			<wsdl:fault name="configuratorFailedFault">
				<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 getConfigurationOptions request:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/envelope/">
  <s:Body>
    <m:refresh xmlns:m="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Configurator.xsd">false</m:refresh>
  </s:Body>
</s:Envelope>


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

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/envelope/">
  <s:Body>
    <Q1:configOptions 
	xmlns:Q1="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Configurator.xsd">
      <Q1:configOption>
        <Q1:name>MyCo Retailer</Q1:name>
        <Q1:selectionParms>platform=WebSphere;OS=Linux</Q1:selectionParms>
        <Q1:configurationEndpoint Role="Retailer">http://www.myco.com/services/WS-I/Retailer<Q1:configurationEndpoint>
      </Q1:configOption>
      <Q1:configOption>
        <Q1:name>OtherCo Retailer</Q1:name>
        <Q1:selectionParms>platform=WebSphere;OS=Windows</Q1:selectionParms>
        <Q1:configurationEndpoint Role="Retailer">http://www.otherco.com/services/WS-I/Retailer<Q1:configurationEndpoint>
      </Q1:configOption>
    </Q1:configOptions>
  </s:Body>
</s:Envelope>

-->
