StsAdapter.Query-Methode
Veraltet. Verwenden Sie stattdessen das verwaltete Clientobjektmodell zum Ausführen von Abfragen für Website- und Listendaten von SharePoint Foundation. Bei diesem Webdienst handelt es sich um einen Adapterdienst, der eine Methode zum Ausführen von Abfragen bereitstellt und aus Gründen der Abwärtskompatibilität beibehalten wird.
Namespace: WebSvcDspSts
Assembly: STSSOAP (in STSSOAP.dll)
Syntax
'Declaration
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/sharepoint/dsp/queryRequest", Use := SoapBindingUse.Literal, _
ParameterStyle := SoapParameterStyle.Bare)> _
<SoapHeaderAttribute("dataRoot")> _
<SoapHeaderAttribute("request")> _
<SoapHeaderAttribute("versions", Direction := SoapHeaderDirection.InOut)> _
<SoapHeaderAttribute("authentication")> _
Public Function Query ( _
queryRequest As QueryRequest _
) As XmlNode
'Usage
Dim instance As StsAdapter
Dim queryRequest As QueryRequest
Dim returnValue As XmlNode
returnValue = instance.Query(queryRequest)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/sharepoint/dsp/queryRequest", Use = SoapBindingUse.Literal,
ParameterStyle = SoapParameterStyle.Bare)]
[SoapHeaderAttribute("dataRoot")]
[SoapHeaderAttribute("request")]
[SoapHeaderAttribute("versions", Direction = SoapHeaderDirection.InOut)]
[SoapHeaderAttribute("authentication")]
public XmlNode Query(
QueryRequest queryRequest
)
Parameter
queryRequest
Typ: WebSvcDspSts.QueryRequestEin QueryRequest -Objekt, das eine Abfrage in DSPQ (Datenempfangsdienst-Abfrage) oder Pass-Through-Format ausdrückt.
Rückgabewert
Typ: System.Xml.XmlNode
Ein System.Xml.XmlNode Objekt, das Abfrageergebnis wie folgt die Schema-Abschnitt und einen Data-Abschnitt enthält enthält:
<dsQueryResponse status="success" xmlns="https://schemas.microsoft.com/sharepoint/dsp">
<x:schema xmlns:d="https://schemas.microsoft.com/sharepoint/dsp" xmlns:x="http://www.w3.org/2001/XMLSchema">
<x:element name="List_Name">
<x:complexType>
<x:sequence maxOccurs="unbounded">
<x:element name="List_Name_Row" minOccurs="0">
<x:complexType>
<x:sequence>
<x:element name="ID" minOccurs="0"
d:filterSupport="IsNull;IsNotNull;Eq;Neq;Lt;Gt;Leq;Geq;"
d:displayName="ID" type="x:int" />
<x:element name="Title"
d:filterSupport="IsNull;IsNotNull;Eq;Neq;Lt;Gt;Leq;Geq;Contains;BeginsWith;"
d:displayName="Title" type="x:string" />
<x:element name="Modified" minOccurs="0"
d:filterSupport="IsNull;IsNotNull;Eq;Neq;Lt;Gt;Leq;Geq;"
d:displayName="Modified" type="x:dateTime" />
<x:element name="Created" minOccurs="0"
d:filterSupport="IsNull;IsNotNull;Eq;Neq;Lt;Gt;Leq;Geq;"
d:displayName="Created" type="x:dateTime" />
<x:element name="Author" minOccurs="0"
d:filterSupport="IsNull;IsNotNull;Eq;Neq;Lt;Gt;Leq;Geq;"
d:displayName="Created By">
<x:simpleType>
<x:restriction base="x:string">
<x:enumeration value="User_Name" />
</x:restriction>
</x:simpleType>
</x:element>
<x:element name="Editor" minOccurs="0"
d:filterSupport="IsNull;IsNotNull;Eq;Neq;Lt;Gt;Leq;Geq;"
d:displayName="Modified By">
<x:simpleType>
<x:restriction base="x:string">
<x:enumeration value="User_Name" />
</x:restriction>
</x:simpleType>
</x:element>
<x:element name="Attachments" minOccurs="0"
d:filterSupport="IsNull;IsNotNull;Eq;Neq;"
d:displayName="Attachments" type="x:boolean" />
<x:element name="Number_Column" minOccurs="0"
d:filterSupport="IsNull;IsNotNull;Eq;Neq;Lt;Gt;Leq;Geq;"
d:displayName="Number_Column" type="x:float" />
</x:sequence>
</x:complexType>
</x:element>
</x:sequence>
</x:complexType>
</x:element>
</x:schema>
<List_Name >
<List_Name_Row>
<ID>1</ID>
<Title>Value</Title>
<Modified>2003-10-01T22:13:57</Modified>
<Created>2003-10-01T22:13:57</Created>
<Author>User_Name</Author>
<Editor>User_Name</Editor>
<Attachments>0</Attachments>
<Number>100</Number>
</List_Name_Row>
<List_Name_Row>
<ID>3</ID>
<Title>Value</Title>
<Modified>2003-10-01T22:14:23</Modified>
<Created>2003-10-01T22:14:23</Created>
<Author>User_Name</Author>
<Editor>User_Name</Editor>
<Attachments>0</Attachments>
<Number>300</Number>
</List_Name_Row>
</List_Name>
</dsQueryResponse>
Hinweise
SharePoint Foundation unterstützt nicht Datum-Uhrzeit-Werte im XSD-Format, sodass Zeit ignoriert wird, wenn die Query -Methode verwendet wird.
In der folgenden Tabelle beschreibt die Eigenschaften für die Liste oder Website-Objekt, das zurückgegeben wird.
Name |
Description |
---|---|
comparisonLocale |
Optional. Gibt den standardmäßigen Windows-Gebietsschemabezeichner für ein RowReturning -Objekt an. Dieses Attribut wird nicht für nicht -RowReturning Objekte definiert. |
contentType |
Erforderlich. Gibt der Inhaltstyp des Objekts zurückgegeben, die immer RowReturning für Objekte in der Liste und TableReturning für Websiteobjekte festgelegt ist, an. |
displayName |
Optional. Gibt eine Zeichenfolge, die den Anzeigenamen für die Liste oder Website-Objekt enthält. Diese Eigenschaft wird immer zurückgegeben. |
id |
Erforderlich. Eine Zeichenfolge, die das Liste oder Website-Objekt identifiziert wird. |
querySupport |
Optional. Nur die Datenempfangsdienst-Abfrage (DSPQ) wird unterstützt. |
serverParameters |
Erforderlich. Immer none für Listen- und Websiteinhaltstypen-Objekte. |
SupportFiltering |
Optional. Gibt an, ob Filtern unterstützt wird. Immer true für RowReturning -Objekte. Obwohl false für nicht -RowReturning -Objekten, die Felder unsafe und serverParameters können weiterhin gefiltert werden. |
SupportOrdering |
Optional. Gibt an, ob die Sortierung unterstützt wird. Immer true. |
supportPaging |
Optional. Der Adapter unterstützt Vorwärtscursor Paging gemäß Definition im Dienstprotokoll zum Abrufen von Daten. Wenn Paging durch Angeben von startPosition="" innerhalb des <dsQuery> -Elements in der Abfrage angefordert wird, generiert der Adapter ein XML-BLOB, die zum Abrufen der nächsten Gruppe von Zeilen verwendet werden kann. Dieses XML-BLOB wird über das nächste Attribut in das zurückgegebene <dsQueryResponse> Element zurückgegeben. Der Client kann dann legen Sie das Attribut startPosition dieses BLOB und wiederholen Sie die ursprüngliche Abfrage zum Abrufen der nächsten Gruppe von Zeilen. |
unsafe |
Optional. Da alle Objekte von Website- und sicher sind, wird dieses Attribut immer auf falsefestgelegt. |
Beispiele
Im folgenden Codebeispiel wird mithilfe der Query -Methode zum Zurückgeben von Elementen aus einer SharePoint-Liste in der Spalte Autor einen angegebenen Namen enthält, und die Spalte Zahl enthält Werte, die größer als ein angegebener Wert.
Dim myStsAd As New Web_Reference_Name.StsAdapter()
myStsAd.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim vArray(0) As String
vArray(0) = "1.0"
Dim myVersion As New Web_Reference_Name.Versions()
myVersion.version = vArray
myStsAd.versions = myVersion
Dim reqHeader As New Web_Reference_Name.RequestHeader()
reqHeader.document = Web_Reference_Name.DocumentType.content
reqHeader.method = Web_Reference_Name.MethodType.query
myStsAd.request = reqHeader
Dim myRequest As New Web_Reference_Name.QueryRequest()
Dim sQuery As New Web_Reference_Name.DSQuery()
sQuery.select = "/list[@id='{e5c6603b-0f6c-4bd9-8bb1-57c83854308b}']"
myRequest.dsQuery = sQuery
Dim spQuery As New Web_Reference_Name.DspQuery()
Dim xmlDoc = New System.Xml.XmlDocument()
Dim ndQuery As XmlElement = xmlDoc.CreateElement("And")
ndQuery.InnerXml = "<Eq><FieldRef Name='Author'/>" & _
"<Value>Name</Value></Eq>" & _
"<Gt><FieldRef Name='Number'/><Value>Number</Value></Gt>"
spQuery.Where = ndQuery
myRequest.dsQuery.Query = spQuery
Try
Dim myNode As XmlNode = myStsAd.Query(myRequest)
MessageBox.Show(myNode.OuterXml)
Catch ex As System.Web.Services.Protocols.SoapException
MessageBox.Show(ex.Message & ex.StackTrace)
End Try
Web_Reference_Folder.StsAdapter myStsAd = new Web_Reference_Folder.StsAdapter();
myStsAd.Credentials= System.Net.CredentialCache.DefaultCredentials;
string[] vArray = new string[1];
vArray[0] = "1.0";
Web_Reference_Name.Versions myVersion = new Web_Reference_Name.Versions();
myVersion.version = vArray;
myStsAd.versions = myVersion;
Web_Reference_Name.RequestHeader reqHeader = new Web_Reference_Name.RequestHeader();
reqHeader.document = Web_Reference_Name.DocumentType.content;
reqHeader.method = Web_Reference_Name.MethodType.query;
myStsAd.request = reqHeader;
Web_Reference_Name.QueryRequest myRequest = new Web_Reference_Name.QueryRequest();
Web_Reference_Name.DSQuery sQuery = new Web_Reference_Name.DSQuery();
sQuery.select = "/list[@id='{e5c6603b-0f6c-4bd9-8bb1-57c83854308b}']";
myRequest.dsQuery = sQuery;
Web_Reference_Name.DspQuery spQuery = new Web_Reference_Name.DspQuery();
XmlDocument xmlDoc = new System.Xml.XmlDocument();
XmlElement ndQuery = xmlDoc.CreateElement("And");
ndQuery.InnerXml = "<Eq><FieldRef Name=\"Author\"/>" +
"<Value>Name</Value></Eq>" +
"<Gt><FieldRef Name=\"Number\"/>" +
"<Value>Number</Value></Gt>";
spQuery.Where = ndQuery;
myRequest.dsQuery.Query = spQuery;
try
{
XmlNode myNode = myStsAd.Query(myRequest);
MessageBox.Show(myNode.OuterXml);
}
catch (System.Web.Services.Protocols.SoapException ex)
{
MessageBox.Show(ex.Message + ex.StackTrace);
}
SOAP Request Format
Das folgende Beispiel zeigt die Syntax einer SOAP-Anforderung über den Datenempfangsdienst. Die angezeigten Platzhalter müssen durch tatsächliche Werte ersetzt werden.
POST /_vti_bin/DspSts.asmx HTTP/1.1
Host: Server_Name
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "https://schemas.microsoft.com/sharepoint/dsp/queryRequest"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<authentication
xmlns="https://schemas.microsoft.com/sharepoint/dsp">xml</authentication>
<dataRoot allowRemoteDataAccess="boolean"
xmlns="https://schemas.microsoft.com/sharepoint/dsp">
<root>string</root>
</dataRoot>
<request document="content or system"
method="query"
xmlns="https://schemas.microsoft.com/sharepoint/dsp" />
<versions xmlns="https://schemas.microsoft.com/sharepoint/dsp">
<version>string</version>
<version>string</version>
</versions>
</soap:Header>
<soap:Body>
<queryRequest
xmlns="https://schemas.microsoft.com/sharepoint/dsp">
<dsQuery select="string"
resultContent="both or schemaOnly or dataOnly"
columnMapping="element or attribute"
resultNamespace="string"
resultPrefix="string"
resultRoot="string"
resultRow="string"
startPosition="string"
comparisonLocale="string">
<Query RowLimit="long">
<ServerParameterInfo />
<Fields>
<Field
xsi:nil="true" />
<Field xsi:nil="true" />
<AllFields xsi:nil="true" />
</Fields>
<ServerParameters>
<ServerParameter
xsi:nil="true" />
<ServerParameter xsi:nil="true" />
</ServerParameters>
<Where>xml</Where>
<OrderBy>
<OrderField
xsi:nil="true" />
<OrderField
xsi:nil="true" />
</OrderBy>
</Query>
</dsQuery>
<ptQuery>xml</ptQuery>
</queryRequest>
</soap:Body>
</soap:Envelope>
SOAP Response Format
Das folgende Beispiel zeigt die Syntax der SOAP-Antwort über den Datenempfangsdienst zurückgegeben. Die angezeigten Platzhalter müssen durch tatsächliche Werte ersetzt werden.
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<versions
xmlns="https://schemas.microsoft.com/sharepoint/dsp">
<version>string</version>
<version>string</version>
</versions>
</soap:Header>
<soap:Body>
<queryResponse
xmlns="https://schemas.microsoft.com/sharepoint/dsp">
<xsd:schema>schema</xsd:schema>xml</queryResponse>
</soap:Body>
</soap:Envelope>