SearchControl は、検索条件を指定するために使用します。
SearchControl DataObject の構造は、以下のものから構成されます。
- countLimit
- 検索操作で戻される検索結果の最大数を指定します。
検索結果の実際の件数が指定した countLimit より多い場合は、SearchResponse コントロールの hasMoreResults プロパティーが true に設定されます。
注: PageControl も使用する場合は、SearchControl に countLimit プロパティーを指定することはできません。
これらは相互に排他的です。
- expression
- XPath 形式の検索式を指定します。
- properties
- 検索条件を満たすエンティティーから戻すプロパティーを指定します。例えば、マーケティング部門に所属する個人の sn および givenName 属性を取得できます。
- returnSubType
- 検索式で指定したエンティティーのサブタイプを戻すかどうかを指定します。
デフォルト設定は true です。
- searchBases
- 検索を制限するために使用される検索ベースを指定します。検索は、リストに指定されたベースに制限されます。
- searchLimit
- 検索操作で戻すことができる検索結果の最大数を指定します。
検索結果が SearchControl で指定した searchLimit または
wimconfig.xml ファイルに指定されている maxSearchResults のどちらか小さい方を超えた場合は、
MaxResultsExceededException がスローされます。
searchLimit が設定されていると、countLimit は無視されます。
countLimit を設定する場合、searchLimit は 0 に設定する必要があります。
- timeLimit
- 検索の最長継続時間をミリ秒で指定します (プロファイル・リポジトリーが timeLimit をサポートしている場合)。
XML スキーマ定義
次に、SearchControl DataObject の XML スキーマ定義を示します。
<xsd:complexType name="SearchControl">
<xsd:complexContent>
<xsd:extension base="PropertyControl">
<xsd:sequence>
<xsd:element name="searchBases" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="countLimit" type="xsd:int" />
<xsd:attribute name="searchLimit" type="xsd:int" />
<xsd:attribute name="timeLimit" type="xsd:int" default="0"/>
<xsd:attribute name="expression" type="xsd:string"/>
<xsd:attribute name="returnSubType" type="xsd:boolean" default="true"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
サンプル・データ・オブジェクト
次に、search API で使用される SearchControl DataObject のサンプルを示します。
これは、Doe というラストネーム (姓) を持つすべての個人を要求しています。
また、uid と sn プロパティー (存在する場合) を戻すように指示しています。
<wim:controls xsi:type="wim:SearchControl" countLimit="1"
expression="@xsi:type='PersonAccount' and sn='Doe'">
<wim:properties>uid</wim:properties>
<wim:properties>sn</wim:properties>
<wim:searchBases>o=Sales,cn=users,dc=yourco,dc=com</wim:searchBases>
</wim:controls>