6 Appendix A: Full WSDL

For ease of implementation, the full WSDL and schema are provided in this appendix.

 <?xml version="1.0" encoding="utf-8"?>
 <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://schemas.microsoft.com/sharepoint/dsp" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://schemas.microsoft.com/sharepoint/dsp">
    <wsdl:types>
       <s:schema elementFormDefault="qualified" 
          targetNamespace="http://schemas.microsoft.com/sharepoint/dsp">
          <s:import namespace="http://www.w3.org/2001/XMLSchema" />
          <s:element name="queryRequest" nillable="true">
             <s:complexType>
                <s:sequence>
                   <s:element minOccurs="0" name="dsQuery" type="tns:DSQuery" />
                </s:sequence>
             </s:complexType>
          </s:element>
          <s:complexType name="DSQuery">
             <s:sequence>
                <s:element minOccurs="0" name="Query" type="tns:DspQuery" />
             </s:sequence>
             <s:attribute name="select" type="s:string" />
             <s:attribute default="both" name="resultContent" 
               type="tns:ResultContentType" />
             <s:attribute default="element" name="columnMapping" 
               type="tns:ColumnMappingType" />
             <s:attribute name="resultNamespace" type="s:string" />
             <s:attribute name="resultPrefix" type="s:string" />
             <s:attribute name="resultRoot" type="s:string" />
             <s:attribute name="resultRow" type="s:string" />
             <s:attribute name="startPosition" type="s:string" />
             <s:attribute name="comparisonLocale" type="s:string" />
          </s:complexType>
          <s:complexType name="DspQuery">
             <s:sequence>
                <s:element minOccurs="0" name="Fields" type="tns:Fields" />
                <s:element minOccurs="0" name="Where">
                   <s:complexType mixed="true">
                      <s:sequence>
                         <s:any />
                      </s:sequence>
                   </s:complexType>
                </s:element>
                <s:element minOccurs="0" name="OrderBy" 
                  type="tns:ArrayOfOrderField" />
             </s:sequence>
             <s:attribute default="-1" name="RowLimit" type="s:long" />
          </s:complexType>
          <s:complexType name="Fields">
             <s:choice>
                <s:element name="AllFields" type="tns:AllFields" />
                <s:sequence>
                   <s:element name="Field" type="tns:Field" maxOccurs="unbounded" />
                </s:sequence>
             </s:choice>
          </s:complexType>
          <s:complexType name="Field">
             <s:attribute name="Name" type="s:string" />
             <s:attribute name="Alias" type="s:string" />
          </s:complexType>
          <s:complexType name="AllFields">
             <s:attribute default="false" name="IncludeHiddenFields" 
              type="s:boolean" />
          </s:complexType>
          <s:complexType name="ArrayOfOrderField">
             <s:sequence>
                <s:element minOccurs="0" maxOccurs="unbounded" name="OrderField" 
                 type="tns:OrderField" />
             </s:sequence>
          </s:complexType>
          <s:complexType name="OrderField">
             <s:attribute name="Name" type="s:string" />
             <s:attribute default="ASC" name="Direction" 
              type="tns:OrderDirection" />
          </s:complexType>
          <s:simpleType name="OrderDirection">
             <s:restriction base="s:string">
                <s:enumeration value="ASC" />
                <s:enumeration value="DESC" />
             </s:restriction>
          </s:simpleType>
          <s:simpleType name="ResultContentType">
             <s:restriction base="s:string">
                <s:enumeration value="both" />
                <s:enumeration value="schemaOnly" />
                <s:enumeration value="dataOnly" />
             </s:restriction>
          </s:simpleType>
          <s:simpleType name="ColumnMappingType">
             <s:restriction base="s:string">
                <s:enumeration value="element" />
                <s:enumeration value="attribute" />
             </s:restriction>
          </s:simpleType>
          <s:element name="queryResponse">
             <s:complexType mixed="true">
                <s:sequence>
                   <s:any/>
                </s:sequence>
             </s:complexType>
          </s:element>
          <s:element name="authentication">
             <s:complexType>
                <s:sequence>
                   <s:any minOccurs="0" maxOccurs="unbounded" />
                </s:sequence>
                <s:anyAttribute />
             </s:complexType>
          </s:element>
          <s:element name="dataRoot">
             <s:complexType>
                <s:sequence>
                   <s:element minOccurs="0" name="root" type="s:string" />
                </s:sequence>
                <s:attribute default="true" name="allowRemoteDataAccess" type="s:boolean" />
                <s:anyAttribute />
             </s:complexType>
          </s:element>
          <s:element name="request">
             <s:complexType>
                <s:attribute name="document" type="tns:DocumentType" 
                 use="required" />
                <s:attribute name="method" type="tns:MethodType" use="required" />
                <s:anyAttribute />
             </s:complexType>
          </s:element>
          <s:simpleType name="DocumentType">
             <s:restriction base="s:string">
                <s:enumeration value="content" />
                <s:enumeration value="system" />
             </s:restriction>
          </s:simpleType>
          <s:simpleType name="MethodType">
             <s:restriction base="s:string">
                <s:enumeration value="query" />
             </s:restriction>
          </s:simpleType>
          <s:element name="versions">
             <s:complexType>
                <s:sequence>
                   <s:element minOccurs="0" maxOccurs="unbounded" name="version" 
                    type="s:string" />
                </s:sequence>
                <s:anyAttribute />
             </s:complexType>
          </s:element>
       </s:schema>
    </wsdl:types>
    <wsdl:message name="queryRequestSoapIn">
       <wsdl:part name="Request" element="tns:queryRequest" />
    </wsdl:message>
    <wsdl:message name="queryRequestSoapOut">
       <wsdl:part name="queryRequestResult" element="tns:queryResponse" />
    </wsdl:message>
    <wsdl:message name="queryRequestauthentication">
       <wsdl:part name="authentication" element="tns:authentication" />
    </wsdl:message>
    <wsdl:message name="queryRequestdataRoot">
       <wsdl:part name="dataRoot" element="tns:dataRoot" />
    </wsdl:message>
    <wsdl:message name="queryRequestrequest">
       <wsdl:part name="request" element="tns:request" />
    </wsdl:message>
    <wsdl:message name="queryRequestversions">
       <wsdl:part name="versions" element="tns:versions" />
    </wsdl:message>
    <wsdl:portType name="StsAdapterSoap">
       <wsdl:operation name="Query">
          <wsdl:input name="queryRequest" message="tns:queryRequestSoapIn" />
          <wsdl:output name="queryRequest" message="tns:queryRequestSoapOut" />
       </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="StsAdapterSoap" type="tns:StsAdapterSoap">
       <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
       <wsdl:operation name="Query">
          <soap:operation 
           soapAction="http://schemas.microsoft.com/sharepoint/dsp/queryRequest" 
           style="document" />
          <wsdl:input name="queryRequest">
             <soap:body use="literal" />
             <soap:header message="tns:queryRequestauthentication" 
              part="authentication" use="literal" />
             <soap:header message="tns:queryRequestdataRoot" part="dataRoot" 
              use="literal" />
             <soap:header message="tns:queryRequestrequest" part="request" 
              use="literal" />
             <soap:header message="tns:queryRequestversions" part="versions" 
              use="literal" />
          </wsdl:input>
          <wsdl:output name="queryRequest">
             <soap:body use="literal" />
             <soap:header message="tns:queryRequestversions" part="versions" 
              use="literal" />
          </wsdl:output>
       </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="StsAdapterSoap12" type="tns:StsAdapterSoap">
       <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
       <wsdl:operation name="Query">
          <soap12:operation 
           soapAction="http://schemas.microsoft.com/sharepoint/dsp/queryRequest" 
            style="document" />
          <wsdl:input name="queryRequest">
             <soap12:body use="literal" />
             <soap12:header message="tns:queryRequestauthentication" 
              part="authentication" use="literal" />
             <soap12:header message="tns:queryRequestdataRoot" part="dataRoot" 
              use="literal" />
             <soap12:header message="tns:queryRequestrequest" part="request" 
              use="literal" />
             <soap12:header message="tns:queryRequestversions" part="versions" 
              use="literal" />
          </wsdl:input>
          <wsdl:output name="queryRequest">
             <soap12:body use="literal" />
             <soap12:header message="tns:queryRequestversions" part="versions" 
              use="literal" />
          </wsdl:output>
       </wsdl:operation>
    </wsdl:binding>
 </wsdl:definitions>