<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://sayings.jacomac.de" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://sayings.jacomac.de" xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://sayings.jacomac.de">
      <s:element name="getSayingDetailsById">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="id" type="s:int" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="getSayingDetailsByIdResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="getSayingDetailsByIdResult" type="s0:Saying" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="Saying">
        <s:complexContent mixed="false">
          <s:extension base="s0:SayingCore">
            <s:sequence>
              <s:element minOccurs="1" maxOccurs="1" name="id" type="s:int" />
              <s:element minOccurs="0" maxOccurs="1" name="relatedSayings" type="s0:ArrayOfInt" />
            </s:sequence>
          </s:extension>
        </s:complexContent>
      </s:complexType>
      <s:complexType name="SayingCore">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="sayingText" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="literalTranslation" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="languageOfSaying" type="s:string" />
          <s:element minOccurs="0" maxOccurs="1" name="meaningInEnglish" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfInt">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="int" type="s:int" />
        </s:sequence>
      </s:complexType>
      <s:element name="getMetaData">
        <s:complexType />
      </s:element>
      <s:element name="getMetaDataResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="getMetaDataResult" type="s0:MetaData" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="MetaData">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="version" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="numberOfEntries" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="dateOfLatestEntry" type="s:dateTime" />
        </s:sequence>
      </s:complexType>
      <s:element name="searchForSayingsUsingLanguageId">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="searchString" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="languageType" type="s:int" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="searchForSayingsUsingLanguageIdResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="searchForSayingsUsingLanguageIdResult" type="s0:ArrayOfSaying" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ArrayOfSaying">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="Saying" nillable="true" type="s0:Saying" />
        </s:sequence>
      </s:complexType>
      <s:element name="searchForSayingsUsingLanguageName">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="searchString" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="languageType" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="searchForSayingsUsingLanguageNameResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="searchForSayingsUsingLanguageNameResult" type="s0:ArrayOfSaying" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="getAvailableLanguages">
        <s:complexType />
      </s:element>
      <s:element name="getAvailableLanguagesResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="getAvailableLanguagesResult" type="s0:ArrayOfLanguageType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ArrayOfLanguageType">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="LanguageType" nillable="true" type="s0:LanguageType" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="LanguageType">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="id" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="languageName" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:element name="contributeNewSaying">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="propSaying" type="s0:ProposedNewSaying" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ProposedNewSaying">
        <s:complexContent mixed="false">
          <s:extension base="s0:SayingCore">
            <s:sequence>
              <s:element minOccurs="1" maxOccurs="1" name="proposedRelatedSaying" type="s:int" />
              <s:element minOccurs="0" maxOccurs="1" name="emailOfEditor" type="s:string" />
            </s:sequence>
          </s:extension>
        </s:complexContent>
      </s:complexType>
      <s:element name="contributeNewSayingResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="contributeNewSayingResult" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
    </s:schema>
  </types>
  <message name="getSayingDetailsByIdSoapIn">
    <part name="parameters" element="s0:getSayingDetailsById" />
  </message>
  <message name="getSayingDetailsByIdSoapOut">
    <part name="parameters" element="s0:getSayingDetailsByIdResponse" />
  </message>
  <message name="getMetaDataSoapIn">
    <part name="parameters" element="s0:getMetaData" />
  </message>
  <message name="getMetaDataSoapOut">
    <part name="parameters" element="s0:getMetaDataResponse" />
  </message>
  <message name="searchForSayingsUsingLanguageIdSoapIn">
    <part name="parameters" element="s0:searchForSayingsUsingLanguageId" />
  </message>
  <message name="searchForSayingsUsingLanguageIdSoapOut">
    <part name="parameters" element="s0:searchForSayingsUsingLanguageIdResponse" />
  </message>
  <message name="searchForSayingsUsingLanguageNameSoapIn">
    <part name="parameters" element="s0:searchForSayingsUsingLanguageName" />
  </message>
  <message name="searchForSayingsUsingLanguageNameSoapOut">
    <part name="parameters" element="s0:searchForSayingsUsingLanguageNameResponse" />
  </message>
  <message name="getAvailableLanguagesSoapIn">
    <part name="parameters" element="s0:getAvailableLanguages" />
  </message>
  <message name="getAvailableLanguagesSoapOut">
    <part name="parameters" element="s0:getAvailableLanguagesResponse" />
  </message>
  <message name="contributeNewSayingSoapIn">
    <part name="parameters" element="s0:contributeNewSaying" />
  </message>
  <message name="contributeNewSayingSoapOut">
    <part name="parameters" element="s0:contributeNewSayingResponse" />
  </message>
  <portType name="serviceSoap">
    <operation name="getSayingDetailsById">
      <documentation>getSayingDetailsById returns a saying / proverb for a given id.</documentation>
      <input message="s0:getSayingDetailsByIdSoapIn" />
      <output message="s0:getSayingDetailsByIdSoapOut" />
    </operation>
    <operation name="getMetaData">
      <documentation>getMetaData() gives you info about the version, latest entry date, number of entries etc.</documentation>
      <input message="s0:getMetaDataSoapIn" />
      <output message="s0:getMetaDataSoapOut" />
    </operation>
    <operation name="searchForSayingsUsingLanguageId">
      <documentation>This let's you look for sayings in the DB. Use the ID of the language with this method (can be retrieved from getAvailableLanguages()). Use -1 for 'any' language.</documentation>
      <input message="s0:searchForSayingsUsingLanguageIdSoapIn" />
      <output message="s0:searchForSayingsUsingLanguageIdSoapOut" />
    </operation>
    <operation name="searchForSayingsUsingLanguageName">
      <documentation>This let's you look for sayings in the DB. Use the name of a European language with this method. Use 'any' if you don't want to limit your search to just one language.</documentation>
      <input message="s0:searchForSayingsUsingLanguageNameSoapIn" />
      <output message="s0:searchForSayingsUsingLanguageNameSoapOut" />
    </operation>
    <operation name="getAvailableLanguages">
      <documentation>Here you can retrieve all the possible languages and their corresponding identifiers.</documentation>
      <input message="s0:getAvailableLanguagesSoapIn" />
      <output message="s0:getAvailableLanguagesSoapOut" />
    </operation>
    <operation name="contributeNewSaying">
      <documentation>Here you can contribute a new Saying to the Database, if you like. When your proposal could be stored, you will recieve a confirmation message, otherwise an exception / soapFault will be thrown.</documentation>
      <input message="s0:contributeNewSayingSoapIn" />
      <output message="s0:contributeNewSayingSoapOut" />
    </operation>
  </portType>
  <binding name="serviceSoap" type="s0:serviceSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    <operation name="getSayingDetailsById">
      <soap:operation soapAction="http://sayings.jacomac.de/getSayingDetailsById" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="getMetaData">
      <soap:operation soapAction="http://sayings.jacomac.de/getMetaData" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="searchForSayingsUsingLanguageId">
      <soap:operation soapAction="http://sayings.jacomac.de/searchForSayingsUsingLanguageId" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="searchForSayingsUsingLanguageName">
      <soap:operation soapAction="http://sayings.jacomac.de/searchForSayingsUsingLanguageName" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="getAvailableLanguages">
      <soap:operation soapAction="http://sayings.jacomac.de/getAvailableLanguages" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="contributeNewSaying">
      <soap:operation soapAction="http://sayings.jacomac.de/contributeNewSaying" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
  </binding>
  <service name="service">
    <documentation>A collection of European proverbs, sayings and idiomatic expressions, reference langauge is English. Special European characters are and have been converted into html entities using the a unicode charmap.</documentation>
    <port name="serviceSoap" binding="s0:serviceSoap">
      <soap:address location="http://dotnet.rus.uni-stuttgart.de/ws_konrad/sayings/service.asmx" />
    </port>
  </service>
</definitions>