<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://marketing.ews.yahooapis.com/V4" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="http://marketing.ews.yahooapis.com/V4" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
        <xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://marketing.ews.yahooapis.com/V4" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xsd:annotation>
                <xsd:appinfo>
                    <tns:version>4.2.0</tns:version>
                </xsd:appinfo>
            </xsd:annotation>
            <xsd:element name="accountID">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="commandGroup">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="license">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="masterAccountID">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="quotaUsedForThisRequest">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="remainingQuota">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="timeTakenMillis">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="ApiFault" type="tns:ApiFault"/>
            <xsd:element name="getCanonicalKeywords">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="getCanonicalKeywordsRequest" nillable="true" type="tns:KeywordInfoRequestType"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getCanonicalKeywordsResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="tns:KeywordInfoResponseType"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getCommonKeywords">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="commonKeywordsRequest" nillable="true" type="tns:KeywordInfoRequestType"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getCommonKeywordsResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="tns:KeywordInfoResponseType"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getPageRelatedKeywords">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="pageRelatedKeywordRequest" nillable="true" type="tns:PageRelatedKeywordRequestType"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getPageRelatedKeywordsResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="tns:RelatedKeywordResponseType"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getRangeDefinitions">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="rangeDefinitionRequest" nillable="true" type="tns:RangeDefinitionRequestType"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getRangeDefinitionsResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="tns:RangeDefinitionResponseType"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getRelatedKeywords">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="relatedKeywordRequest" nillable="true" type="tns:RelatedKeywordRequestType"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getRelatedKeywordsResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="tns:RelatedKeywordResponseType"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getSubphraseKeywords">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="subphraseKeywordRequest" nillable="true" type="tns:SubphraseKeywordRequestType"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="getSubphraseKeywordsResponse">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="tns:RelatedKeywordResponseType"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="onBehalfOfPassword">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:element name="onBehalfOfUsername">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string"/>
                </xsd:simpleType>
            </xsd:element>
            <xsd:simpleType name="ErrorKeyType">
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="NoRangeName"/>
                    <xsd:enumeration value="NoURLString"/>
                    <xsd:enumeration value="NoSeedKeywords"/>
                    <xsd:enumeration value="UnknownMarketCode"/>
                    <xsd:enumeration value="NoMarketCode"/>
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:simpleType name="RangeNameType">
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="Searches"/>
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:simpleType name="ResponseStatusCodeType">
                <xsd:restriction base="xsd:string">
                    <xsd:enumeration value="InputError"/>
                    <xsd:enumeration value="Success"/>
                    <xsd:enumeration value="InternalError"/>
                </xsd:restriction>
            </xsd:simpleType>
            <xsd:complexType name="ApiFault">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="code" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="message" nillable="true" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfBucketType">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="BucketType" nillable="true" type="tns:BucketType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfErrorType">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="ErrorType" nillable="true" type="tns:ErrorType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfKeywordInfoType">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="KeywordInfoType" nillable="true" type="tns:KeywordInfoType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfRangeDefinitionType">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="RangeDefinitionType" nillable="true" type="tns:RangeDefinitionType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfRangeNameType">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="RangeNameType" nillable="true" type="tns:RangeNameType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfRelatedKeywordType">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="RelatedKeywordType" nillable="true" type="tns:RelatedKeywordType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ArrayOfString">
                <xsd:sequence>
                    <xsd:element maxOccurs="unbounded" minOccurs="0" name="string" nillable="true" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="BucketType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="bucketID" nillable="true" type="xsd:int"/>
                    <xsd:element minOccurs="0" name="max" nillable="true" type="xsd:int"/>
                    <xsd:element minOccurs="0" name="min" nillable="true" type="xsd:int"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ErrorType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="key" type="tns:ErrorKeyType"/>
                    <xsd:element minOccurs="0" name="param" nillable="true" type="tns:ArrayOfString"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="KeywordInfoRequestType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="keywords" nillable="true" type="tns:ArrayOfString"/>
                    <xsd:element minOccurs="0" name="market" nillable="true" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="KeywordInfoResponseType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="keywords" nillable="true" type="tns:ArrayOfKeywordInfoType"/>
                    <xsd:element minOccurs="0" name="notes" nillable="true" type="tns:ArrayOfString"/>
                    <xsd:element minOccurs="0" name="responseStatus" nillable="true" type="tns:ResponseStatusType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="KeywordInfoType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="canonical" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="common" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="raw" nillable="true" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="PageRelatedKeywordRequestType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="URL" type="xsd:anyURI"/>
                    <xsd:element minOccurs="0" name="excludedKeywords" nillable="true" type="tns:ArrayOfString"/>
                    <xsd:element minOccurs="0" name="excludedPhraseFilters" nillable="true" type="tns:ArrayOfString"/>
                    <xsd:element minOccurs="0" name="market" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="maxKeywords" type="xsd:int"/>
                    <xsd:element minOccurs="0" name="negativeKeywords" nillable="true" type="tns:ArrayOfString"/>
                    <xsd:element minOccurs="0" name="positiveKeywords" nillable="true" type="tns:ArrayOfString"/>
                    <xsd:element minOccurs="0" name="requiredPhraseFilters" nillable="true" type="tns:ArrayOfString"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="RangeDefinitionRequestType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="market" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="rangeName" nillable="true" type="tns:ArrayOfRangeNameType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="RangeDefinitionResponseType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="rangeDefinition" nillable="true" type="tns:ArrayOfRangeDefinitionType"/>
                    <xsd:element minOccurs="0" name="responseStatus" nillable="true" type="tns:ResponseStatusType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="RangeDefinitionType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="bucket" nillable="true" type="tns:ArrayOfBucketType"/>
                    <xsd:element minOccurs="0" name="market" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="rangeName" type="tns:RangeNameType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="RangeValueType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="bucketID" nillable="true" type="xsd:integer"/>
                    <xsd:element minOccurs="0" name="rangeName" nillable="true" type="tns:RangeNameType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="RelatedKeywordRequestType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="excludedKeywords" nillable="true" type="tns:ArrayOfString"/>
                    <xsd:element minOccurs="0" name="excludedPhraseFilters" nillable="true" type="tns:ArrayOfString"/>
                    <xsd:element minOccurs="0" name="market" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="maxKeywords" type="xsd:int"/>
                    <xsd:element minOccurs="0" name="negativeKeywords" nillable="true" type="tns:ArrayOfString"/>
                    <xsd:element minOccurs="0" name="offset" type="xsd:int"/>
                    <xsd:element minOccurs="0" name="positiveKeywords" nillable="true" type="tns:ArrayOfString"/>
                    <xsd:element minOccurs="0" name="requiredPhraseFilters" nillable="true" type="tns:ArrayOfString"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="RelatedKeywordResponseType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="notes" nillable="true" type="tns:ArrayOfString"/>
                    <xsd:element minOccurs="0" name="relatedKeywords" nillable="true" type="tns:ArrayOfRelatedKeywordType"/>
                    <xsd:element minOccurs="0" name="responseStatus" nillable="true" type="tns:ResponseStatusType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="RelatedKeywordType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="canonical" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="common" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="rangeValue" nillable="true" type="tns:RangeValueType"/>
                    <xsd:element minOccurs="0" name="score" nillable="true" type="xsd:double"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ResponseStatusType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="error" nillable="true" type="tns:ArrayOfErrorType"/>
                    <xsd:element minOccurs="0" name="status" type="tns:ResponseStatusCodeType"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="SubphraseKeywordRequestType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="excludedKeywords" nillable="true" type="tns:ArrayOfString"/>
                    <xsd:element minOccurs="0" name="excludedPhraseFilters" nillable="true" type="tns:ArrayOfString"/>
                    <xsd:element minOccurs="0" name="market" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="maxKeywords" type="xsd:int"/>
                    <xsd:element minOccurs="0" name="offset" type="xsd:int"/>
		    <xsd:element minOccurs="0" name="requiredPhraseFilters" type="tns:ArrayOfString"/>
                </xsd:sequence>
            </xsd:complexType>
        </xsd:schema>
        <schema targetNamespace="http://schemas.xmlsoap.org/ws/2002/07/secext" xmlns="http://www.w3.org/2001/XMLSchema">
            <element name="Security" type="wsse:Security"/>
            <complexType name="Security">
                <sequence>
                    <element name="UsernameToken" type="wsse:UsernameToken"/>
                </sequence>
            </complexType>
            <complexType name="UsernameToken">
                <sequence>
                    <element name="Username" type="string"/>
                    <element name="Password" type="string"/>
                </sequence>
            </complexType>
        </schema>
    </wsdl:types>
    <wsdl:message name="ApiFault">
        <wsdl:part element="tns:ApiFault" name="ApiFault"/>
    </wsdl:message>
    <wsdl:message name="Security">
        <wsdl:part element="wsse:Security" name="Security"/>
    </wsdl:message>
    <wsdl:message name="accountID">
        <wsdl:part element="tns:accountID" name="accountID"/>
    </wsdl:message>
    <wsdl:message name="commandGroup">
        <wsdl:part element="tns:commandGroup" name="commandGroup"/>
    </wsdl:message>
    <wsdl:message name="getCanonicalKeywordsRequest">
        <wsdl:part element="tns:getCanonicalKeywords" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getCanonicalKeywordsResponse">
        <wsdl:part element="tns:getCanonicalKeywordsResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getCommonKeywordsRequest">
        <wsdl:part element="tns:getCommonKeywords" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getCommonKeywordsResponse">
        <wsdl:part element="tns:getCommonKeywordsResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getPageRelatedKeywordsRequest">
        <wsdl:part element="tns:getPageRelatedKeywords" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getPageRelatedKeywordsResponse">
        <wsdl:part element="tns:getPageRelatedKeywordsResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getRangeDefinitionsRequest">
        <wsdl:part element="tns:getRangeDefinitions" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getRangeDefinitionsResponse">
        <wsdl:part element="tns:getRangeDefinitionsResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getRelatedKeywordsRequest">
        <wsdl:part element="tns:getRelatedKeywords" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getRelatedKeywordsResponse">
        <wsdl:part element="tns:getRelatedKeywordsResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getSubphraseKeywordsRequest">
        <wsdl:part element="tns:getSubphraseKeywords" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="getSubphraseKeywordsResponse">
        <wsdl:part element="tns:getSubphraseKeywordsResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="license">
        <wsdl:part element="tns:license" name="license"/>
    </wsdl:message>
    <wsdl:message name="masterAccountID">
        <wsdl:part element="tns:masterAccountID" name="masterAccountID"/>
    </wsdl:message>
    <wsdl:message name="onBehalfOfPassword">
        <wsdl:part element="tns:onBehalfOfPassword" name="onBehalfOfPassword"/>
    </wsdl:message>
    <wsdl:message name="onBehalfOfUsername">
        <wsdl:part element="tns:onBehalfOfUsername" name="onBehalfOfUsername"/>
    </wsdl:message>
    <wsdl:message name="quotaUsedForThisRequest">
        <wsdl:part element="tns:quotaUsedForThisRequest" name="quotaUsedForThisRequest"/>
    </wsdl:message>
    <wsdl:message name="remainingQuota">
        <wsdl:part element="tns:remainingQuota" name="remainingQuota"/>
    </wsdl:message>
    <wsdl:message name="timeTakenMillis">
        <wsdl:part element="tns:timeTakenMillis" name="timeTakenMillis"/>
    </wsdl:message>
    <wsdl:portType name="KeywordResearchService">
        <wsdl:operation name="getCanonicalKeywords">
            <wsdl:input message="tns:getCanonicalKeywordsRequest" name="getCanonicalKeywordsRequest"/>
            <wsdl:output message="tns:getCanonicalKeywordsResponse" name="getCanonicalKeywordsResponse"/>
            <wsdl:fault message="tns:ApiFault" name="ApiFault"/>
        </wsdl:operation>
        <wsdl:operation name="getCommonKeywords">
            <wsdl:input message="tns:getCommonKeywordsRequest" name="getCommonKeywordsRequest"/>
            <wsdl:output message="tns:getCommonKeywordsResponse" name="getCommonKeywordsResponse"/>
            <wsdl:fault message="tns:ApiFault" name="ApiFault"/>
        </wsdl:operation>
        <wsdl:operation name="getPageRelatedKeywords">
            <wsdl:input message="tns:getPageRelatedKeywordsRequest" name="getPageRelatedKeywordsRequest"/>
            <wsdl:output message="tns:getPageRelatedKeywordsResponse" name="getPageRelatedKeywordsResponse"/>
            <wsdl:fault message="tns:ApiFault" name="ApiFault"/>
        </wsdl:operation>
        <wsdl:operation name="getRangeDefinitions">
            <wsdl:input message="tns:getRangeDefinitionsRequest" name="getRangeDefinitionsRequest"/>
            <wsdl:output message="tns:getRangeDefinitionsResponse" name="getRangeDefinitionsResponse"/>
            <wsdl:fault message="tns:ApiFault" name="ApiFault"/>
        </wsdl:operation>
        <wsdl:operation name="getRelatedKeywords">
            <wsdl:input message="tns:getRelatedKeywordsRequest" name="getRelatedKeywordsRequest"/>
            <wsdl:output message="tns:getRelatedKeywordsResponse" name="getRelatedKeywordsResponse"/>
            <wsdl:fault message="tns:ApiFault" name="ApiFault"/>
        </wsdl:operation>
        <wsdl:operation name="getSubphraseKeywords">
            <wsdl:input message="tns:getSubphraseKeywordsRequest" name="getSubphraseKeywordsRequest"/>
            <wsdl:output message="tns:getSubphraseKeywordsResponse" name="getSubphraseKeywordsResponse"/>
            <wsdl:fault message="tns:ApiFault" name="ApiFault"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="KeywordResearchServiceHttpBinding" type="tns:KeywordResearchService">
        <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="getCanonicalKeywords">
            <wsdlsoap:operation soapAction=""/>
            <wsdl:input name="getCanonicalKeywordsRequest">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfUsername" part="onBehalfOfUsername" use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfPassword" part="onBehalfOfPassword" use="literal"/>
                <wsdlsoap:header message="tns:masterAccountID" part="masterAccountID" use="literal"/>
                <wsdlsoap:header message="tns:license" part="license" use="literal"/>
                <wsdlsoap:header message="tns:accountID" part="accountID" use="literal"/>
                <wsdlsoap:header message="tns:Security" part="Security" use="literal"/>
            </wsdl:input>
            <wsdl:output name="getCanonicalKeywordsResponse">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:commandGroup" part="commandGroup" use="literal"/>
                <wsdlsoap:header message="tns:remainingQuota" part="remainingQuota" use="literal"/>
                <wsdlsoap:header message="tns:quotaUsedForThisRequest" part="quotaUsedForThisRequest" use="literal"/>
                <wsdlsoap:header message="tns:timeTakenMillis" part="timeTakenMillis" use="literal"/>
            </wsdl:output>
            <wsdl:fault name="ApiFault">
                <wsdlsoap:fault name="ApiFault" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="getCommonKeywords">
            <wsdlsoap:operation soapAction=""/>
            <wsdl:input name="getCommonKeywordsRequest">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfUsername" part="onBehalfOfUsername" use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfPassword" part="onBehalfOfPassword" use="literal"/>
                <wsdlsoap:header message="tns:masterAccountID" part="masterAccountID" use="literal"/>
                <wsdlsoap:header message="tns:license" part="license" use="literal"/>
                <wsdlsoap:header message="tns:accountID" part="accountID" use="literal"/>
                <wsdlsoap:header message="tns:Security" part="Security" use="literal"/>
            </wsdl:input>
            <wsdl:output name="getCommonKeywordsResponse">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:commandGroup" part="commandGroup" use="literal"/>
                <wsdlsoap:header message="tns:remainingQuota" part="remainingQuota" use="literal"/>
                <wsdlsoap:header message="tns:quotaUsedForThisRequest" part="quotaUsedForThisRequest" use="literal"/>
                <wsdlsoap:header message="tns:timeTakenMillis" part="timeTakenMillis" use="literal"/>
            </wsdl:output>
            <wsdl:fault name="ApiFault">
                <wsdlsoap:fault name="ApiFault" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="getPageRelatedKeywords">
            <wsdlsoap:operation soapAction=""/>
            <wsdl:input name="getPageRelatedKeywordsRequest">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfUsername" part="onBehalfOfUsername" use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfPassword" part="onBehalfOfPassword" use="literal"/>
                <wsdlsoap:header message="tns:masterAccountID" part="masterAccountID" use="literal"/>
                <wsdlsoap:header message="tns:license" part="license" use="literal"/>
                <wsdlsoap:header message="tns:accountID" part="accountID" use="literal"/>
                <wsdlsoap:header message="tns:Security" part="Security" use="literal"/>
            </wsdl:input>
            <wsdl:output name="getPageRelatedKeywordsResponse">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:commandGroup" part="commandGroup" use="literal"/>
                <wsdlsoap:header message="tns:remainingQuota" part="remainingQuota" use="literal"/>
                <wsdlsoap:header message="tns:quotaUsedForThisRequest" part="quotaUsedForThisRequest" use="literal"/>
                <wsdlsoap:header message="tns:timeTakenMillis" part="timeTakenMillis" use="literal"/>
            </wsdl:output>
            <wsdl:fault name="ApiFault">
                <wsdlsoap:fault name="ApiFault" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="getRangeDefinitions">
            <wsdlsoap:operation soapAction=""/>
            <wsdl:input name="getRangeDefinitionsRequest">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfUsername" part="onBehalfOfUsername" use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfPassword" part="onBehalfOfPassword" use="literal"/>
                <wsdlsoap:header message="tns:masterAccountID" part="masterAccountID" use="literal"/>
                <wsdlsoap:header message="tns:license" part="license" use="literal"/>
                <wsdlsoap:header message="tns:accountID" part="accountID" use="literal"/>
                <wsdlsoap:header message="tns:Security" part="Security" use="literal"/>
            </wsdl:input>
            <wsdl:output name="getRangeDefinitionsResponse">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:commandGroup" part="commandGroup" use="literal"/>
                <wsdlsoap:header message="tns:remainingQuota" part="remainingQuota" use="literal"/>
                <wsdlsoap:header message="tns:quotaUsedForThisRequest" part="quotaUsedForThisRequest" use="literal"/>
                <wsdlsoap:header message="tns:timeTakenMillis" part="timeTakenMillis" use="literal"/>
            </wsdl:output>
            <wsdl:fault name="ApiFault">
                <wsdlsoap:fault name="ApiFault" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="getRelatedKeywords">
            <wsdlsoap:operation soapAction=""/>
            <wsdl:input name="getRelatedKeywordsRequest">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfUsername" part="onBehalfOfUsername" use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfPassword" part="onBehalfOfPassword" use="literal"/>
                <wsdlsoap:header message="tns:masterAccountID" part="masterAccountID" use="literal"/>
                <wsdlsoap:header message="tns:license" part="license" use="literal"/>
                <wsdlsoap:header message="tns:accountID" part="accountID" use="literal"/>
                <wsdlsoap:header message="tns:Security" part="Security" use="literal"/>
            </wsdl:input>
            <wsdl:output name="getRelatedKeywordsResponse">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:commandGroup" part="commandGroup" use="literal"/>
                <wsdlsoap:header message="tns:remainingQuota" part="remainingQuota" use="literal"/>
                <wsdlsoap:header message="tns:quotaUsedForThisRequest" part="quotaUsedForThisRequest" use="literal"/>
                <wsdlsoap:header message="tns:timeTakenMillis" part="timeTakenMillis" use="literal"/>
            </wsdl:output>
            <wsdl:fault name="ApiFault">
                <wsdlsoap:fault name="ApiFault" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="getSubphraseKeywords">
            <wsdlsoap:operation soapAction=""/>
            <wsdl:input name="getSubphraseKeywordsRequest">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfUsername" part="onBehalfOfUsername" use="literal"/>
                <wsdlsoap:header message="tns:onBehalfOfPassword" part="onBehalfOfPassword" use="literal"/>
                <wsdlsoap:header message="tns:masterAccountID" part="masterAccountID" use="literal"/>
                <wsdlsoap:header message="tns:license" part="license" use="literal"/>
                <wsdlsoap:header message="tns:accountID" part="accountID" use="literal"/>
                <wsdlsoap:header message="tns:Security" part="Security" use="literal"/>
            </wsdl:input>
            <wsdl:output name="getSubphraseKeywordsResponse">
                <wsdlsoap:body use="literal"/>
                <wsdlsoap:header message="tns:commandGroup" part="commandGroup" use="literal"/>
                <wsdlsoap:header message="tns:remainingQuota" part="remainingQuota" use="literal"/>
                <wsdlsoap:header message="tns:quotaUsedForThisRequest" part="quotaUsedForThisRequest" use="literal"/>
                <wsdlsoap:header message="tns:timeTakenMillis" part="timeTakenMillis" use="literal"/>
            </wsdl:output>
            <wsdl:fault name="ApiFault">
                <wsdlsoap:fault name="ApiFault" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="KeywordResearchServiceService">
        <wsdl:port binding="tns:KeywordResearchServiceHttpBinding" name="KeywordResearchService">
            <wsdlsoap:address location="https://USE_ADDRESS_RETURNED_BY_LOCATION_SERVICE/services/V4/KeywordResearchService"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
