<?xml version="1.0" encoding="UTF-8"?>
<definitions
  name="Search"
  targetNamespace="http://verity.com/service/2003/search"
  xmlns="http://schemas.xmlsoap.org/wsdl/"
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:search="http://verity.com/service/2003/search">
  <documentation>Ultraseek web service</documentation>
  <types>
    <xsd:schema
      targetNamespace="http://verity.com/service/2003/search"
      xmlns="http://schemas.xmlsoap.org/wsdl/"
      xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:tns="http://www.verity.com/webservices/search.wsdl"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:search="http://verity.com/service/2003/search">
      <!-- declarations are in alphabetical order by type name -->
      <xsd:complexType name="AuthenticateRequestMessage">
        <xsd:all>
          <xsd:element name="target" type="xsd:string"/>
          <xsd:element name="username" type="xsd:string"/>
          <xsd:element name="password" type="xsd:string"/>
          <xsd:element name="domain" type="xsd:string"/>
          <xsd:element name="customCredentials" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="BooleanParameter">
        <xsd:annotation>
          <xsd:documentation>Name, value pair with boolean value</xsd:documentation>
        </xsd:annotation>
        <xsd:all>
          <xsd:element name="name" type="xsd:string"/>
          <xsd:element name="value" type="xsd:boolean"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="BooleanParameterArray">
        <xsd:complexContent>
          <xsd:restriction base="SOAP-ENC:Array">
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" minOccurs="0"
                           name="item" type="search:BooleanParameter"/>
            </xsd:sequence>
            <xsd:attribute ref="SOAP-ENC:arrayType"
                           wsdl:arrayType="search:BooleanParameter[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="DateParameter">
        <xsd:annotation>
          <xsd:documentation>Name, value pair with string value</xsd:documentation>
        </xsd:annotation>
        <xsd:all>
          <xsd:element name="name" type="xsd:string"/>
          <xsd:element name="value" type="xsd:dateTime"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="DateParameterArray">
        <xsd:complexContent>
          <xsd:restriction base="SOAP-ENC:Array">
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" minOccurs="0"
                           name="item" type="search:DateParameter"/>
            </xsd:sequence>
            <xsd:attribute ref="SOAP-ENC:arrayType"
                           wsdl:arrayType="search:DateParameter[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="DescribeRequestMessage">
        <xsd:all>
          <xsd:element name="sources" type="search:StringArray">
            <xsd:annotation>
              <xsd:documentation>IDs for sources, empty array means describe all</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="tickets" type="search:StringArray">
            <xsd:annotation>
              <xsd:documentation>Authentication tickets for sources</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="DescribeResponseMessage">
        <xsd:all>
          <xsd:element name="implementationInfo" type="xsd:string"/>
          <xsd:element name="parameterDefinitions"
                       type="search:ParameterDefinitionArray"/>
          <xsd:element name="sourceDefinitions"
                       type="search:SourceDefinitionArray"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="DoubleParameter">
        <xsd:annotation>
          <xsd:documentation>Name, value attribute with double value</xsd:documentation>
        </xsd:annotation>
        <xsd:all>
          <xsd:element name="name" type="xsd:string"/>
          <xsd:element name="value" type="xsd:double"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="DoubleParameterArray">
      <xsd:complexContent>
          <xsd:restriction base="SOAP-ENC:Array">
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" minOccurs="0"
                           name="item" type="search:DoubleParameter"/>
            </xsd:sequence>
            <xsd:attribute ref="SOAP-ENC:arrayType"
                           wsdl:arrayType="search:DoubleParameter[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="LongParameter">
        <xsd:annotation>
          <xsd:documentation>Name, value pair with long integer value</xsd:documentation>
        </xsd:annotation>
        <xsd:all>
          <xsd:element name="name" type="xsd:string"/>
          <xsd:element name="value" type="xsd:long"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="LongParameterArray">
        <xsd:complexContent>
          <xsd:restriction base="SOAP-ENC:Array">
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" minOccurs="0"
                           name="item" type="search:LongParameter"/>
            </xsd:sequence>
            <xsd:attribute ref="SOAP-ENC:arrayType"
                           wsdl:arrayType="search:LongParameter[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="ParameterDefinition">
        <xsd:all>
          <xsd:element name="name" type="xsd:string"/>
          <xsd:element name="minOccurs" type="xsd:long"/>
          <xsd:element name="maxOccurs" type="xsd:long"/>
          <xsd:element name="type" type="xsd:string"/>
          <xsd:element name="possibleValues" type="search:StringArray"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="ParameterDefinitionArray">
        <xsd:complexContent>
          <xsd:restriction base="SOAP-ENC:Array">
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" minOccurs="0"
                           name="item" type="search:ParameterDefinition"/>
            </xsd:sequence>
            <xsd:attribute ref="SOAP-ENC:arrayType"
                           wsdl:arrayType="search:ParameterDefinition[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="Result">
        <xsd:all>
          <xsd:element name="source" type="xsd:string"/>
          <xsd:element name="url" type="xsd:string"/>
          <xsd:element name="title" type="xsd:string"/>
          <xsd:element name="date" type="xsd:dateTime"/>
          <xsd:element name="summary" type="xsd:string"/>
          <xsd:element name="features" type="xsd:string"/>
          <xsd:element name="score" type="xsd:double"/>
          <xsd:element name="booleanAttributes"
                       type="search:BooleanParameterArray"/>
          <xsd:element name="dateAttributes"
                       type="search:DateParameterArray"/>
          <xsd:element name="doubleAttributes"
                       type="search:DoubleParameterArray"/>
          <xsd:element name="longAttributes"
                       type="search:LongParameterArray"/>
          <xsd:element name="stringAttributes"
                       type="search:StringParameterArray"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="ResultArray">
        <xsd:complexContent>
          <xsd:restriction base="SOAP-ENC:Array">
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" minOccurs="0"
                           name="item" type="search:Result"/>
            </xsd:sequence>
            <xsd:attribute ref="SOAP-ENC:arrayType"
                           wsdl:arrayType="search:Result[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="SourceInfo">
        <xsd:all>
          <xsd:element name="source" type="xsd:string"/>
          <xsd:element name="statusCode" type="xsd:string"/>
          <xsd:element name="statusMessage" type="xsd:string"/>
          <xsd:element name="booleanAttributes"
                       type="search:BooleanParameterArray"/>
          <xsd:element name="dateAttributes"
                       type="search:DateParameterArray"/>
          <xsd:element name="doubleAttributes"
                       type="search:DoubleParameterArray"/>
          <xsd:element name="longAttributes"
                       type="search:LongParameterArray"/>
          <xsd:element name="stringAttributes"
                       type="search:StringParameterArray"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="SourceInfoArray">
        <xsd:complexContent>
          <xsd:restriction base="SOAP-ENC:Array">
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" minOccurs="0"
                           name="item" type="search:SourceInfo"/>
            </xsd:sequence>
            <xsd:attribute ref="SOAP-ENC:arrayType"
                           wsdl:arrayType="search:SourceInfo[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="SearchRequestMessage">
        <xsd:all>
          <xsd:element name="sources" type="search:StringArray">
            <xsd:annotation>
            <xsd:documentation>IDs for sources, empty array means use all</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="query" type="xsd:string">
            <xsd:annotation>
            <xsd:documentation>Query expression</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="querySyntax" type="xsd:string">
            <xsd:annotation>
            <xsd:documentation>Name of query syntax: internet, XQuery, etc.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="locale" type="xsd:string">
            <xsd:annotation>
            <xsd:documentation>Locale for evaluating query, stemming, stop word set, etc. Does not limit results to this language.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="startResult" type="xsd:long">
            <xsd:annotation>
            <xsd:documentation>Index of first result to return, 0-based</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="numberOfResults" type="xsd:long">
            <xsd:annotation>
            <xsd:documentation>Count of results to return</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="booleanParameters"
                       type="search:BooleanParameterArray">
            <xsd:annotation>
            <xsd:documentation>Parameters with boolean values</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="dateParameters" type="search:DateParameterArray">
            <xsd:annotation>
            <xsd:documentation>Parameters with date values</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="doubleParameters" type="search:DoubleParameterArray">
            <xsd:annotation>
            <xsd:documentation>Parameters with floating point values</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="longParameters" type="search:LongParameterArray">
            <xsd:annotation>
            <xsd:documentation>Parameters with long integer values</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="stringParameters" type="search:StringParameterArray">
            <xsd:annotation>
            <xsd:documentation>Parameters with string values</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="SearchResponseMessage">
        <xsd:all>
          <xsd:element name="totalHits" type="xsd:long">
            <xsd:annotation>
             <xsd:documentation>Count of matching results, may be an estimate</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="totalHitsIsExact" type="xsd:boolean">
            <xsd:annotation>
            <xsd:documentation>True if totalHits is exact</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="sourceInfo" type="search:SourceInfoArray">
            <xsd:annotation>
            <xsd:documentation>Per-source information about results</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="results" type="search:ResultArray">
            <xsd:annotation>
            <xsd:documentation>List of results</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="booleanAttributes"
                       type="search:BooleanParameterArray"/>
          <xsd:element name="dateAttributes"
                       type="search:DateParameterArray"/>
          <xsd:element name="doubleAttributes"
                       type="search:DoubleParameterArray"/>
          <xsd:element name="longAttributes"
                       type="search:LongParameterArray"/>
          <xsd:element name="stringAttributes"
                       type="search:StringParameterArray"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="SourceDefinition">
        <xsd:all>
          <xsd:element name="name" type="xsd:string"/>
          <xsd:element name="description" type="xsd:string"/>
          <xsd:element name="fieldnames" type="search:StringArray"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="SourceDefinitionArray">
        <xsd:complexContent>
          <xsd:restriction base="SOAP-ENC:Array">
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" minOccurs="0"
                           name="item" type="search:SourceDefinition"/>
            </xsd:sequence>
            <xsd:attribute
              ref="SOAP-ENC:arrayType"
              wsdl:arrayType="search:SourceDefinition[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="StringArray">
        <xsd:complexContent>
          <xsd:restriction base="SOAP-ENC:Array">
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" minOccurs="0"
                           name="item" type="xsd:string"/>
            </xsd:sequence>
            <xsd:attribute ref="SOAP-ENC:arrayType"
                           wsdl:arrayType="xsd:string[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="StringParameter">
        <xsd:annotation>
          <xsd:documentation>Name, value pair with string value</xsd:documentation>
        </xsd:annotation>
        <xsd:all>
          <xsd:element name="name" type="xsd:string"/>
          <xsd:element name="value" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="StringParameterArray">
        <xsd:complexContent>
          <xsd:restriction base="SOAP-ENC:Array">
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" minOccurs="0"
                           name="item" type="search:StringParameter"/>
            </xsd:sequence>
            <xsd:attribute ref="SOAP-ENC:arrayType"
                           wsdl:arrayType="search:StringParameter[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="SuggestRequestMessage">
        <xsd:all>
          <xsd:element name="sources" type="search:StringArray">
            <xsd:annotation>
            <xsd:documentation>IDs for sources, empty array means use all</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="query" type="xsd:string">
            <xsd:annotation>
            <xsd:documentation>Query expression</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="querySyntax" type="xsd:string">
            <xsd:annotation>
            <xsd:documentation>Name of query syntax: internet, XQuery, etc.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="locale" type="xsd:string">
            <xsd:annotation>
            <xsd:documentation>Locale for evaluating query, stemming, stop word set, etc. Does not limit results to this language.</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="VisitURLRequestMessage">
        <xsd:all>
          <xsd:element name="sources" type="search:StringArray">
            <xsd:annotation>
            <xsd:documentation>IDs for sources, empty array means use all</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
          <xsd:element name="urls" type="search:StringArray">
            <xsd:annotation>
            <xsd:documentation>URLs to visit</xsd:documentation>
            </xsd:annotation>
          </xsd:element>
        </xsd:all>
      </xsd:complexType>
    </xsd:schema>
  </types>
  <message name="authenticateRequest">
    <part name="authenticateRequestPart" type="search:AuthenticateRequestMessage"/>
  </message>
  <message name="authenticateResponse">
    <part name="authenticateResponsePart" type="xsd:string"/>
  </message>
  <message name="describeRequest">
    <part name="describeRequestPart" type="search:DescribeRequestMessage"/>
  </message>
  <message name="describeResponse">
    <part name="describeResponsePart" type="search:DescribeResponseMessage"/>
  </message>
  <message name="searchRequest">
    <part name="searchRequestPart" type="search:SearchRequestMessage"/>
  </message>
  <message name="searchResponse">
    <part name="searchResponsePart" type="search:SearchResponseMessage"/>
  </message>
  <message name="suggestRequest">
    <part name="suggestRequestPart" type="search:SuggestRequestMessage"/>
  </message>
  <message name="suggestResponse">
    <part name="suggestResponsePart" type="search:StringParameterArray"/>
  </message>
  <message name="visitURLRequest">
    <part name="visitURLRequestPart" type="search:VisitURLRequestMessage"/>
  </message>
  <message name="visitURLResponse">
    <part name="visitURLResponsePart" type="search:StringArray"/>
  </message>
  <portType name="Ultraseek">
    <operation name="authenticate">
      <documentation>Request an authentication ticket</documentation>
      <input message="search:authenticateRequest"/>
      <output message="search:authenticateResponse"/>
    </operation>
    <operation name="describe">
      <documentation>Request information about search providers</documentation>
      <input message="search:describeRequest"/>
      <output message="search:describeResponse"/>
    </operation>
    <operation name="search">
      <documentation>Send a query to a search service and receive results</documentation>
      <input message="search:searchRequest"/>
      <output message="search:searchResponse"/>
    </operation>
    <operation name="suggest">
      <documentation>Request information about search providers</documentation>
      <input message="search:suggestRequest"/>
      <output message="search:suggestResponse"/>
    </operation>
    <operation name="visitURL">
      <documentation>Request information about search providers</documentation>
      <input message="search:visitURLRequest"/>
      <output message="search:visitURLResponse"/>
    </operation>
  </portType>
  <binding name="UltraseekBinding" type="search:Ultraseek">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
                  style="rpc"/>
    <operation name="authenticate">
      <soap:operation soapAction="http://verity.com/service/2003/search/authenticate"/>
      <input>
        <soap:body use="encoded"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                   namespace="http://verity.com/service/2003/search"/>
      </input>
      <output>
        <soap:body use="encoded"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                   namespace="http://verity.com/service/2003/search"/>
      </output>
    </operation>
    <operation name="describe">
      <soap:operation soapAction="http://verity.com/service/2003/search/describe"/>
      <input>
        <soap:body use="encoded"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                   namespace="http://verity.com/service/2003/search"/>
      </input>
      <output>
        <soap:body use="encoded"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                   namespace="http://verity.com/service/2003/search"/>
      </output>
    </operation>
    <operation name="search">
      <soap:operation soapAction="http://verity.com/service/2003/search/search"/>
      <input>
        <soap:body use="encoded"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                   namespace="http://verity.com/service/2003/search"/>
      </input>
      <output>
        <soap:body use="encoded"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                   namespace="http://verity.com/service/2003/search"/>
      </output>
    </operation>
    <operation name="suggest">
      <soap:operation soapAction="http://verity.com/service/2003/search/suggest"/>
      <input>
        <soap:body use="encoded"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                   namespace="http://verity.com/service/2003/search"/>
      </input>
      <output>
        <soap:body use="encoded"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                   namespace="http://verity.com/service/2003/search"/>
      </output>
    </operation>
    <operation name="visitURL">
      <soap:operation soapAction="http://verity.com/service/2003/search/visitURL"/>
      <input>
        <soap:body use="encoded"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                   namespace="http://verity.com/service/2003/search"/>
      </input>
      <output>
        <soap:body use="encoded"
                   encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                   namespace="http://verity.com/service/2003/search"/>
      </output>
    </operation>
  </binding>
  <service name="search1.ns.state.mn.us:8765">
    <port name="Ultraseek" binding="search:UltraseekBinding">
      <soap:address location="http://search1.ns.state.mn.us:8765/webservices/"/>
    </port>
  </service>
</definitions>
