<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 -->
<!--
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 -->

<!-- WSDL description of the MAST ADEC TWIG api. -->

<definitions name="urn:ADEC_MAST"
             targetNamespace="urn:ADEC_MAST"
             xmlns:typens="urn:ADEC_MAST"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
             xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
             xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
             xmlns="http://schemas.xmlsoap.org/wsdl/">

  <!-- Types for search - result elements, directory categories -->

  <types>
    <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ADEC_MAST">
            
      <xsd:complexType name="SummaryResult">
		<xsd:sequence>
			<xsd:element minOccurs="1" maxOccurs="1" name="NonAllIntValue" type="xsd:int" />
			<xsd:element minOccurs="1" maxOccurs="1" name="NonAllDoubleValue" type="xsd:double" />
		</xsd:sequence>
        <xsd:all>
		  <xsd:element name="length"			type="xsd:int"/>
          <xsd:element minOccurs="0" name="width"			  type="xsd:int"/>
          <xsd:element minOccurs="0" name="depth"			  type="xsd:double"/>
		  <xsd:element minOccurs="0" name="color"			  type="xsd:string"/>
        </xsd:all>
		<xsd:sequence>
			<xsd:element minOccurs="1" maxOccurs="1" name="NonAllStringValue" type="xsd:string" />
		</xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="SummaryResultArray">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
             <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:SummaryResult[]"/>
          </xsd:restriction>
        </xsd:complexContent>

      </xsd:complexType>

    </xsd:schema>
  </types> 

  <!-- Messages for ADEC MAST Web APIs - get summary by position. -->
             
  <message name="doGetSummary">
    <part name="length"        type="xsd:int"/>
    <part name="width"        type="xsd:int"/>
    <part name="depth"        type="xsd:double"/>
	<part name="color"        type="xsd:string"/>
  </message>

  <message name="doGetSummaryResponse">
    <part name="return"  type="typens:SummaryResult"/>
  </message>

  <!-- Port for ADEC MAST Web APIs, "ADEC_MAST" -->

  <portType name="ADEC_MAST_Port">

    <operation name="doGetSummary">
      <input message="typens:doGetSummary"/>
      <output message="typens:doGetSummaryResponse"/>
    </operation>

  </portType>


  <!-- Binding for ADEC MAST Web APIs - RPC, SOAP over HTTP -->

  <binding name="ADEC_MAST_Binding" type="typens:ADEC_MAST_Port">
    <soap:binding style="rpc"
                  transport="http://schemas.xmlsoap.org/soap/http"/>

    <operation name="doGetSummary">
      <soap:operation soapAction="urn:ADEC_MAST#doGetSummary"/>
      <input>
        <soap:body use="encoded"
                   namespace="urn:ADEC_MAST"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body use="encoded"
                   namespace="urn:ADEC_MAST"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>

  </binding>

  <!-- Endpoint for ADEC MAST Web APIs -->
  <service name="ADEC_MAST_Service">
    <port name="ADEC_MAST_Port" binding="typens:ADEC_MAST_Binding">
      <soap:address location="http://faxafloi.stsci.edu:4547/soap/"/>
    </port>
  </service>

</definitions>
