SearchControl é utilizado para especificar os critérios de procura.
A estrutura de um objeto de dados SearchControl consiste em:
- countLimit
- especifica o número
máximo de resultados da procura retornados pela operação de procura. Se o
número atual dos resultados da procura for maior do que o countLimit
especificado, a propriedade hasMoreResults no controle SearchResponse é
configurada como true.
Nota: A propriedade
countLimit não pode ser especificada para SearchControl, se PageControl também
é utilizado. Eles são mutuamente exclusivos.
- expressão
- especifica a expressão de procura no formato XPath.
- propriedades
- especifica as propriedades que você deseja retornar das entidades que correspondem
aos critérios de procura. Por exemplo, você deseja obter os atributos sn e givenName
das pessoas que estão no departamento de marketing.
- returnSubType
- especifica se devem ser retornados os suptipos das entidades especificadas na
expressão. A configuração padrão é true.
- searchBases
- especifica as bases da procura utilizadas para limitar a procura àquelas
bases especificadas na lista.
- searchLimit
- especifica o número
máximo de resultados da procura que podem ser retornados pela operação de
procura. Se os resultados da pesquisa extrapolarem o menor número de
searchLimit, especificado em SearchControl, ou de maxSearchResults, especificado
no arquivo wimconfig.xml, será lançada uma MaxResultsExceededException. Se o searchLimit
estiver configurado, o countLimit será ignorado. Se o countLimit estiver configurado, o searchLimit terá
de ser 0.
- timeLimit
- Se o repositório de perfil suporta timeLimit, ele especifica, em milissegundos, a duração máxima da procura.
Definição de Esquema XML
A seguir, está a definição de esquema XML para o objeto de dados SearchControl:
<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>
Objeto de Dados de Amostra
A seguir, um SearchControl DataObject de amostra utilizado na API de procura. Ele solicita todas as pessoas que tenham o nome de família (sobrenome), Doe. Ele também indica para retornar as propriedades uid e sn, se elas existirem.
<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>