0

WebサービスAPIを介してSharePointリストをクエリしています。APIを介してサービスを呼び出すにはXmlNode、CAMLクエリを表すオブジェクトを送信する必要があります。他のすべてがまったく同じであるため、これらは私が送信しようとしている2つの異なるクエリです(APIに送信される直前にXmlNode'sプロパティを介して取得されます)。InnerXml

<!-- This one works fine -->
<Query>
    <Where>
        <Eq>
            <FieldRef Name="ID" /> 
            <Value Type="Text">304</Value> 
        </Eq>
    </Where>
</Query>

<!-- This one fails with a Soap exception (which I've seen before when searching
     for an invalid field, but the first one calls the exact same field). -->
<Query>
    <Where>
        <In>
            <FieldRef Name="ID" /> 
            <Values>
                <Value Type="Text">304</Value> 
                <Value Type="Text">303</Value> 
                <Value Type="Text">302</Value> 
                <Value Type="Text">301</Value> 
            </Values>
        </In>
    </Where>
</Query>

私はCAMLクエリに慣れていないので、Inステートメントがどのように機能するかについて明らかな何かが欠けている可能性がありますが、私が見たすべての例はこの正確な形式を持っているようです。

4

1 に答える 1

3

どのバージョンの SharePoint を使用していますか? IN 要素は SharePoint 2010 でのみ有効なようです (この記事によると: http://www.lushpedia.com/post/Alternative-of-In-Clause-for-CAML-Query-for-SharePoint-2007. aspx )

于 2011-04-13T14:10:20.930 に答える