<?xml version="1.0"?>

<!-- 
  WSDL description of the Sumibi Web APIs.
  The Sumibi Web APIs are in beta release. All interfaces are subject to
  change as we refine and extend our APIs.
  
     Copyright (C) 2005 Kiyoka Nishyama
       $Date: 2006/12/10 12:06:33 $
  
   This file is part of Sumibi
  
   Sumibi is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.
   
   Sumibi is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   
   You should have received a copy of the GNU General Public License
   along with Sumibi; see the file COPYING.
  
-->

<!-- Revision $Date: 2006/12/10 12:06:33 $ -->

<definitions name="SumibiConvert"
             targetNamespace="urn:SumibiConvert"
             xmlns:typens="urn:SumibiConvert"
             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 Convert - result elements -->

  <types>
    <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" 
                targetNamespace="urn:SumibiConvert">
            
      <xsd:complexType name="SumibiStatus">
        <xsd:all>
          <xsd:element name="version"           type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>

      <xsd:complexType name="SumibiResult">
        <xsd:all>
          <xsd:element name="convertTime"       type="xsd:double"/>
          <xsd:element name="resultElements"    type="typens:ResultElementArray"/>
        </xsd:all>
      </xsd:complexType>

      <xsd:complexType name="ResultElement">
        <xsd:all>
          <xsd:element name="id"                type="xsd:int"/>
          <xsd:element name="no"                type="xsd:int"/>
          <xsd:element name="candidate"         type="xsd:int"/>
          <xsd:element name="spaces"            type="xsd:int"/>
          <xsd:element name="type"              type="xsd:string"/>
          <xsd:element name="word"              type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
  
      <xsd:complexType name="ResultElementArray">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
             <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ResultElement[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>

    </xsd:schema>
  </types> 

  <!-- note, ie and oe are ignored by server; all traffic is UTF-8. -->

  <message name="getStatus">
  </message>

  <message name="getStatusResponse">
    <part name="return"         type="typens:SumibiStatus"/>
  </message>

  <message name="doSumibiConvert">
    <part name="query"          type="xsd:string"/>
    <part name="sumi"           type="xsd:string"/>
    <part name="history"        type="xsd:string"/>
    <part name="dummy"          type="xsd:string"/>
  </message>

  <message name="doSumibiConvertResponse">
    <part name="return"         type="typens:SumibiResult"/>
  </message>

  <message name="doSumibiConvertSexpResponse">
    <part name="return"         type="xsd:string"/>
  </message>

  <message name="doSumibiConvertHiraResponse">
    <part name="return"         type="xsd:string"/>
  </message>

  <!-- Port for Sumibi Web APIs, "SumibiConvert" -->

  <portType name="SumibiConvertPort">

    <operation name="getStatus">
      <input message="typens:getStatus"/>
      <output message="typens:getStatusResponse"/>
    </operation>

    <operation name="doSumibiConvertSexp">
      <input message="typens:doSumibiConvert"/>
      <output message="typens:doSumibiConvertSexpResponse"/>
    </operation>

    <operation name="doSumibiConvert">
      <input message="typens:doSumibiConvert"/>
      <output message="typens:doSumibiConvertResponse"/>
    </operation>

    <operation name="doSumibiConvertHira">
      <input message="typens:doSumibiConvert"/>
      <output message="typens:doSumibiConvertHiraResponse"/>
    </operation>

  </portType>


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

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

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

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

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

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

  </binding>

  <!-- Endpoint for Sumibi Web APIs -->
  <service name="SumibiConvertService">
    <port name="SumibiConvertPort" binding="typens:SumibiConvertBinding">
      <soap:address location="https://sumibi.org/cgi-bin/sumibi/testing/sumibi.cgi/"/>
    </port>
  </service>

</definitions>
