BEA AquaLogic Service Registry's range queries functionality allows you to search UDDI entities with the ability to use comparative operators (>, <) for matching keyValues in keyedReferences. There must be a defined type of keyValues in the taxonomy which defines the ordering. The following ordering types are supported: string, numeric, and custom. KeyedReferences in find_XXX queries are extended by a list of find qualifiers. Do not mix with find qualifiers of the whole query. Find Qualifiers are used for specifying comparison operators.
See Find Business by Categories how to search UDDI data structures using range queries with Registry Console.
Note | |
---|---|
The BEA AquaLogic Service Registry implementation of range queries goes beyond the current UDDI v3 specification since the specification does not define this functionality. |
The following findQualifiers are supported:
equal - the default find qualifier. If no one from the group of ( equal, greaterThan, lesserThan qualifiers) is specified. This is done due to the backward compatibility with a standard UDDI. When used, the keyedReference from the request matches to the all keyedReferences from the database with the same tModelKey and the same keyValue.
greaterThan - When used, the keyedReference from the request match to the all keyedReferences from the database with the same tModelKey and a greater keyValue.
lesserThan - When used, the keyedReference from the request match to the all keyedReferences from the database with the same tModelKey and a lesser keyValue.
notExists - This findQualifier has validity for the whole keyedReference (not just for keyValues). An entity matches the find request with notExists findQualifier if and only if the specific keyedReference does not exist in its categoryBag. This findQualifier can be arbitrarily combined with greaterThan, lesserThan and equal findQualifiers. If the notExists findQualifier is used alone, then the equal findQualifier is considered automatically.
Comparators can be combined:
greaterThan and equal find qualifiers can be used together with the keyedReference match to the all keyedReferences with the same tModelKey and a greater or equal keyValue (>=).
lesserThan and equal find qualifiers can be used together with the keyedReference match to the all keyedReferences with the same tModelKey and a lesser or equal keyValue (<=).
lesserThan and greaterThan find qualifiers can be used together with the keyedReference match to the all keyedReferences with the same tModelKey and a not equals keyValue (<>).
Combination of lesserThan, greaterThan and equal is not allowed.
The following examples demonstrate the usage of range queries. Suppose that the keyedReferences are placed in the category bag of the find_business request.
greaterThan Only business entities that have a keyedReference with tModelKey equal to tmKey, and a keyValue that is greater than kv, in their categoryBags are returned.
<keyedReference tModelKey="tmKey" keyValue="kv" keyName="kn"> <findQualifiers> <findQualifier>greaterThan</findQualifier> </findQualifiers> </keyedReference>
greaterThan and lesserThan Only business entities that have keyedReference with tModelKey that is equal to tmKey, and a keyValue not equal to kv, in their categoryBags are returned.
<keyedReference tModelKey="tmKey" keyValue="kv" keyName="kn"> <findQualifiers> <findQualifier>greaterThan</findQualifier> <findQualifier>lesserThan</findQualifier> </findQualifiers> </keyedReference>
notExists Only business entities that do not have a keyedReference with a tModelKey equal to tmKey, and a keyValue equal to kv, in their categoryBags are returned.
<keyedReference tModelKey="tmKey" keyValue="kv" keyName="kn"> <findQualifiers> <findQualifier>notExists</findQualifier> </findQualifiers> </keyedReference>
notExists and greaterThan Only business entities that do not have a keyedReference with a tModelKey equal to tmKey, and a keyValue greater than kv, in their categoryBags are returned.
<keyedReference tModelKey="tmKey" keyValue="kv" keyName="kn"> <findQualifiers> <findQualifier>notExists</findQualifier> <findQualifier>greaterThan</findQualifier> </findQualifiers> </keyedReference>
notExists, greaterThan, equal Only business entities that do not have a keyedReference with a tModelKey equal to tmKey, and a keyValue greater than or equal to kv, in their categoryBags are returned.
<keyedReference tModelKey="tmKey" keyValue="kv" keyName="kn"> <findQualifiers> <findQualifier>notExists</findQualifier> <findQualifier>greaterThan</findQualifier> <findQualifier>equal</findQualifier> </findQualifiers> </keyedReference>
See also Demos, Advanced Inquiry - Range Queries.