<?xml version="1.0" encoding="UTF-8"?>

<definitions 
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" 
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:tns="stubs.api.opendover.byelex.nl" 
    targetNamespace="stubs.api.opendover.byelex.nl"
    name="OpenDoverService"
>
    <types>
        <xs:schema 
            xmlns:xs="http://www.w3.org/2001/XMLSchema" 
            xmlns="http://schemas.xmlsoap.org/wsdl/" 
            xmlns:tns="stubs.api.opendover.byelex.nl" targetNamespace="stubs.api.opendover.byelex.nl">
            <xs:element name="OpenDoverFault" type="tns:OpenDoverFault"></xs:element>

            <xs:element name="detectSubjectDomain" type="tns:detectSubjectDomain"></xs:element>

            <xs:element name="detectSubjectDomainResponse" type="tns:detectSubjectDomainResponse"></xs:element>

            <xs:element name="getAvailableSubjectDomains" type="tns:getAvailableSubjectDomains"></xs:element>

            <xs:element name="getAvailableSubjectDomainsResponse" type="tns:getAvailableSubjectDomainsResponse"></xs:element>

            <xs:element name="getSubjectDomainByCode" type="tns:getSubjectDomainByCode"></xs:element>

            <xs:element name="getSubjectDomainByCodeResponse" type="tns:getSubjectDomainByCodeResponse"></xs:element>

            <xs:element name="ping" type="tns:ping"></xs:element>

            <xs:element name="pingResponse" type="tns:pingResponse"></xs:element>

            <xs:element name="searchBareObjectSentiments" type="tns:searchBareObjectSentiments"></xs:element>

            <xs:element name="searchBareObjectSentimentsResponse" type="tns:searchBareObjectSentimentsResponse"></xs:element>

            <xs:element name="searchBareSentiments" type="tns:searchBareSentiments"></xs:element>

            <xs:element name="searchBareSentimentsResponse" type="tns:searchBareSentimentsResponse"></xs:element>

            <xs:element name="searchObjectSentiments" type="tns:searchObjectSentiments"></xs:element>

            <xs:element name="searchObjectSentimentsResponse" type="tns:searchObjectSentimentsResponse"></xs:element>

            <xs:element name="searchSentiments" type="tns:searchSentiments"></xs:element>

            <xs:element name="searchSentimentsResponse" type="tns:searchSentimentsResponse"></xs:element>

            <xs:complexType name="searchBareSentiments">
                <xs:sequence>
                    <xs:element name="apiKey" type="xs:string" minOccurs="0"></xs:element>
                    <xs:element name="text" type="xs:string" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="searchBareSentimentsResponse">
                <xs:sequence>
                    <xs:element name="return" type="tns:srchBareSentimentsResponse" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="srchBareSentimentsResponse">
                <xs:sequence>
                    <xs:element name="bareSentiments" type="tns:odBareSentiment" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="odBareSentiment">
                <xs:sequence>
                    <xs:element name="sentimentForce" type="xs:int"></xs:element>
                    <xs:element name="sentimentType" type="tns:odSentimentType" minOccurs="0"></xs:element>
                    <xs:element name="sentimentWord" type="tns:odFrame" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="odFrame">
                <xs:sequence>
                    <xs:element name="cleanText" type="xs:string" minOccurs="0"></xs:element>
                    <xs:element name="length" type="xs:int"></xs:element>
                    <xs:element name="offset" type="xs:int"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="OpenDoverFault">
                <xs:sequence>
                    <xs:element name="code" type="xs:int"></xs:element>
                    <xs:element name="message" type="xs:string" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="getAvailableSubjectDomains">
                <xs:sequence>
                    <xs:element name="apiKey" type="xs:string" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="getAvailableSubjectDomainsResponse">
                <xs:sequence>
                    <xs:element name="return" type="tns:odSubjectDomain" minOccurs="0" maxOccurs="unbounded"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="odSubjectDomain">
                <xs:sequence>
                    <xs:element name="code" type="xs:string" minOccurs="0"></xs:element>
                    <xs:element name="name" type="xs:string" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="searchObjectSentiments">
                <xs:sequence>
                    <xs:element name="apiKey" type="xs:string" minOccurs="0"></xs:element>
                    <xs:element name="text" type="xs:string" minOccurs="0"></xs:element>
                    <xs:element name="sentimentObjects" type="xs:string" minOccurs="0" maxOccurs="unbounded"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="searchObjectSentimentsResponse">
                <xs:sequence>
                    <xs:element name="return" type="tns:srchObjectSentimentsResponse" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="srchObjectSentimentsResponse">
                <xs:sequence>
                    <xs:element name="domainRanks" type="tns:odDomainRank" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                    <xs:element name="domainWords" type="tns:odDomainWord" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                    <xs:element name="objectSentiments" type="tns:odObjectSentiment" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="odDomainRank">
                <xs:sequence>
                    <xs:element name="domainCode" type="xs:string" minOccurs="0"></xs:element>
                    <xs:element name="rank" type="xs:int"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="odDomainWord">
                <xs:sequence>
                    <xs:element name="domainCodes" type="xs:string" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                    <xs:element name="domainWord" type="tns:odFrame" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="odObjectSentiment">
                <xs:sequence>
                    <xs:element name="domainCodes" type="xs:string" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                    <xs:element name="domainWords" type="tns:odFrame" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                    <xs:element name="sentimentForce" type="xs:int"></xs:element>
                    <xs:element name="sentimentObject" type="tns:odFrame" minOccurs="0"></xs:element>
                    <xs:element name="sentimentObjectIndex" type="xs:int"></xs:element>
                    <xs:element name="sentimentType" type="tns:odSentimentType" minOccurs="0"></xs:element>
                    <xs:element name="sentimentWord" type="tns:odFrame" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="getSubjectDomainByCode">
                <xs:sequence>
                    <xs:element name="apiKey" type="xs:string" minOccurs="0"></xs:element>
                    <xs:element name="code" type="xs:string" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="getSubjectDomainByCodeResponse">
                <xs:sequence>
                    <xs:element name="return" type="tns:odSubjectDomain" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="searchBareObjectSentiments">
                <xs:sequence>
                    <xs:element name="apiKey" type="xs:string" minOccurs="0"></xs:element>
                    <xs:element name="text" type="xs:string" minOccurs="0"></xs:element>
                    <xs:element name="sentimentObjects" type="xs:string" minOccurs="0" maxOccurs="unbounded"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="searchBareObjectSentimentsResponse">
                <xs:sequence>
                    <xs:element name="return" type="tns:srchBareObjectSentimentsResponse" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="srchBareObjectSentimentsResponse">
                <xs:sequence>
                    <xs:element name="bareObjectSentiments" type="tns:odBareObjectSentiment" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="odBareObjectSentiment">
                <xs:sequence>
                    <xs:element name="sentimentForce" type="xs:int"></xs:element>
                    <xs:element name="sentimentObject" type="tns:odFrame" minOccurs="0"></xs:element>
                    <xs:element name="sentimentObjectIndex" type="xs:int"></xs:element>
                    <xs:element name="sentimentType" type="tns:odSentimentType" minOccurs="0"></xs:element>
                    <xs:element name="sentimentWord" type="tns:odFrame" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="detectSubjectDomain">
                <xs:sequence>
                    <xs:element name="apiKey" type="xs:string" minOccurs="0"></xs:element>
                    <xs:element name="text" type="xs:string" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="detectSubjectDomainResponse">
                <xs:sequence>
                    <xs:element name="return" type="tns:odDetectSubjectDomainResponse" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="odDetectSubjectDomainResponse">
                <xs:sequence>
                    <xs:element name="domainRanks" type="tns:odDomainRank" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                    <xs:element name="domainWords" type="tns:odDomainWord" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="searchSentiments">
                <xs:sequence>
                    <xs:element name="apiKey" type="xs:string" minOccurs="0"></xs:element>
                    <xs:element name="text" type="xs:string" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="searchSentimentsResponse">
                <xs:sequence>
                    <xs:element name="return" type="tns:srchSentimentsResponse" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="srchSentimentsResponse">
                <xs:sequence>
                    <xs:element name="domainRanks" type="tns:odDomainRank" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                    <xs:element name="domainWords" type="tns:odDomainWord" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                    <xs:element name="sentiments" type="tns:odSentiment" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="odSentiment">
                <xs:sequence>
                    <xs:element name="domainCodes" type="xs:string" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                    <xs:element name="domainWords" type="tns:odFrame" nillable="true" minOccurs="0" maxOccurs="unbounded"></xs:element>
                    <xs:element name="sentimentForce" type="xs:int"></xs:element>
                    <xs:element name="sentimentType" type="tns:odSentimentType" minOccurs="0"></xs:element>
                    <xs:element name="sentimentWord" type="tns:odFrame" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="ping">
                <xs:sequence>
                    <xs:element name="apiKey" type="xs:string" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:complexType name="pingResponse">
                <xs:sequence>
                    <xs:element name="return" type="xs:string" minOccurs="0"></xs:element>
                </xs:sequence>
            </xs:complexType>

            <xs:simpleType name="odSentimentType">
                <xs:restriction base="xs:string">
                    <xs:enumeration value="JUDGEMENT"></xs:enumeration>
                    <xs:enumeration value="APPRECIATION"></xs:enumeration>
                    <xs:enumeration value="EMOTIONAL_STATE"></xs:enumeration>
                </xs:restriction>
            </xs:simpleType>
        </xs:schema>
    </types>

    <message name="ping">
        <part name="parameters" element="tns:ping"></part>
    </message>
    <message name="pingResponse">
        <part name="parameters" element="tns:pingResponse"></part>
    </message>
    <message name="getSubjectDomainByCode">
        <part name="parameters" element="tns:getSubjectDomainByCode"></part>
    </message>
    <message name="getSubjectDomainByCodeResponse">
        <part name="parameters" element="tns:getSubjectDomainByCodeResponse"></part>
    </message>
    <message name="OpenDoverFault">
        <part name="fault" element="tns:OpenDoverFault"></part>
    </message>
    <message name="searchSentiments">
        <part name="parameters" element="tns:searchSentiments"></part>
    </message>
    <message name="searchSentimentsResponse">
        <part name="parameters" element="tns:searchSentimentsResponse"></part>
    </message>
    <message name="detectSubjectDomain">
        <part name="parameters" element="tns:detectSubjectDomain"></part>
    </message>
    <message name="detectSubjectDomainResponse">
        <part name="parameters" element="tns:detectSubjectDomainResponse"></part>
    </message>
    <message name="searchObjectSentiments">
        <part name="parameters" element="tns:searchObjectSentiments"></part>
    </message>
    <message name="searchObjectSentimentsResponse">
        <part name="parameters" element="tns:searchObjectSentimentsResponse"></part>
    </message>
    <message name="searchBareSentiments">
        <part name="parameters" element="tns:searchBareSentiments"></part>
    </message>
    <message name="searchBareSentimentsResponse">
        <part name="parameters" element="tns:searchBareSentimentsResponse"></part>
    </message>
    <message name="searchBareObjectSentiments">
        <part name="parameters" element="tns:searchBareObjectSentiments"></part>
    </message>
    <message name="searchBareObjectSentimentsResponse">
        <part name="parameters" element="tns:searchBareObjectSentimentsResponse"></part>
    </message>
    <message name="getAvailableSubjectDomains">
        <part name="parameters" element="tns:getAvailableSubjectDomains"></part>
    </message>
    <message name="getAvailableSubjectDomainsResponse">
        <part name="parameters" element="tns:getAvailableSubjectDomainsResponse"></part>
    </message>
    <portType name="OpenDover">
        <operation name="ping">
            <input message="tns:ping"></input>
            <output message="tns:pingResponse"></output>
        </operation>
        <operation name="getSubjectDomainByCode">
            <input message="tns:getSubjectDomainByCode"></input>
            <output message="tns:getSubjectDomainByCodeResponse"></output>
            <fault message="tns:OpenDoverFault" name="OpenDoverFault"></fault>
        </operation>
        <operation name="searchSentiments">
            <input message="tns:searchSentiments"></input>
            <output message="tns:searchSentimentsResponse"></output>
            <fault message="tns:OpenDoverFault" name="OpenDoverFault"></fault>
        </operation>
        <operation name="detectSubjectDomain">
            <input message="tns:detectSubjectDomain"></input>
            <output message="tns:detectSubjectDomainResponse"></output>
            <fault message="tns:OpenDoverFault" name="OpenDoverFault"></fault>
        </operation>
        <operation name="searchObjectSentiments">
            <input message="tns:searchObjectSentiments"></input>
            <output message="tns:searchObjectSentimentsResponse"></output>
            <fault message="tns:OpenDoverFault" name="OpenDoverFault"></fault>
        </operation>
        <operation name="searchBareSentiments">
            <input message="tns:searchBareSentiments"></input>
            <output message="tns:searchBareSentimentsResponse"></output>
            <fault message="tns:OpenDoverFault" name="OpenDoverFault"></fault>
        </operation>
        <operation name="searchBareObjectSentiments">
            <input message="tns:searchBareObjectSentiments"></input>
            <output message="tns:searchBareObjectSentimentsResponse"></output>
            <fault message="tns:OpenDoverFault" name="OpenDoverFault"></fault>
        </operation>
        <operation name="getAvailableSubjectDomains">
            <input message="tns:getAvailableSubjectDomains"></input>
            <output message="tns:getAvailableSubjectDomainsResponse"></output>
            <fault message="tns:OpenDoverFault" name="OpenDoverFault"></fault>
        </operation>
    </portType>
    <binding name="OpenDoverPortBinding" type="tns:OpenDover">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></soap:binding>
        <operation name="ping">
            <soap:operation soapAction=""></soap:operation>
            <input>
                <soap:body use="literal"></soap:body>
            </input>
            <output>
                <soap:body use="literal"></soap:body>
            </output>
        </operation>
        <operation name="getSubjectDomainByCode">
            <soap:operation soapAction=""></soap:operation>
            <input>
                <soap:body use="literal"></soap:body>
            </input>
            <output>
                <soap:body use="literal"></soap:body>
            </output>
            <fault name="OpenDoverFault">
                <soap:fault name="OpenDoverFault" use="literal"></soap:fault>
            </fault>
        </operation>
        <operation name="searchSentiments">
            <soap:operation soapAction=""></soap:operation>
            <input>
                <soap:body use="literal"></soap:body>
            </input>
            <output>
                <soap:body use="literal"></soap:body>
            </output>
            <fault name="OpenDoverFault">
                <soap:fault name="OpenDoverFault" use="literal"></soap:fault>
            </fault>
        </operation>
        <operation name="detectSubjectDomain">
            <soap:operation soapAction=""></soap:operation>
            <input>
                <soap:body use="literal"></soap:body>
            </input>
            <output>
                <soap:body use="literal"></soap:body>
            </output>
            <fault name="OpenDoverFault">
                <soap:fault name="OpenDoverFault" use="literal"></soap:fault>
            </fault>
        </operation>
        <operation name="searchObjectSentiments">
            <soap:operation soapAction=""></soap:operation>
            <input>
                <soap:body use="literal"></soap:body>
            </input>
            <output>
                <soap:body use="literal"></soap:body>
            </output>
            <fault name="OpenDoverFault">
                <soap:fault name="OpenDoverFault" use="literal"></soap:fault>
            </fault>
        </operation>
        <operation name="searchBareSentiments">
            <soap:operation soapAction=""></soap:operation>
            <input>
                <soap:body use="literal"></soap:body>
            </input>
            <output>
                <soap:body use="literal"></soap:body>
            </output>
            <fault name="OpenDoverFault">
                <soap:fault name="OpenDoverFault" use="literal"></soap:fault>
            </fault>
        </operation>
        <operation name="searchBareObjectSentiments">
            <soap:operation soapAction=""></soap:operation>
            <input>
                <soap:body use="literal"></soap:body>
            </input>
            <output>
                <soap:body use="literal"></soap:body>
            </output>
            <fault name="OpenDoverFault">
                <soap:fault name="OpenDoverFault" use="literal"></soap:fault>
            </fault>
        </operation>
        <operation name="getAvailableSubjectDomains">
            <soap:operation soapAction=""></soap:operation>
            <input>
                <soap:body use="literal"></soap:body>
            </input>
            <output>
                <soap:body use="literal"></soap:body>
            </output>
            <fault name="OpenDoverFault">
                <soap:fault name="OpenDoverFault" use="literal"></soap:fault>
            </fault>
        </operation>
    </binding>
    <service name="OpenDoverService">
        <port name="OpenDoverPort" binding="tns:OpenDoverPortBinding">
            <soap:address location="http://api.opendover.nl/api_v1/soap"></soap:address>
        </port>
    </service>
</definitions>