Существуют две операции типа "поиск": list(список) и search(поиск), определенные в 10.1 и 10.2 соответственно.
10.1 Список
10.1.1 Синтаксис операции "список"
Операция list используется для получения списка непосредственных подчиненных явно идентифицированной записи. В некоторых ситуациях выдаваемый список может оказаться неполным. Аргументы операции могут быть факультативно подписаны запросчиком (см. 7.10). При необходимости справочник может обеспечить подпись результата.
list OPERATION : : = | { | ||||||||||||
ARGUMENT | ListArgument | ||||||||||||
RESULT | ListResult | ||||||||||||
ERRORS | { nameError | serviceError | referral | ||||||||||||
CODE | id-opcode-list } | ||||||||||||
ListArgument : : = | OPTIONALLY-SIGNED { SET { | ||||||||||||
object | [0] | Name, | |||||||||||
pagedResults | [1] | PagedResultsRequest OPTIONAL, | |||||||||||
COMPONENTS OF | CommonArguments }} | ||||||||||||
ListResult | : : = | OPTIONALLY-SIGNED { CHOICE { | |||||||||||
listlnfo | SET { | ||||||||||||
name | Name OPTIONAL, | ||||||||||||
subordinates | [1] SET OF SEQUENCE { | ||||||||||||
rdn | RelativeDistinguishedName, | ||||||||||||
alias Entry | [0] | BOOLEAN DEFAULT FALCE, | |||||||||||
fromEntry | [1] | BOOLEAN DEFAULT TRUE }, | |||||||||||
partialOutcomeQualifier | [2] PartialOutcomeQualifier OPTIONAL, | ||||||||||||
COMPONENTS OF | CommonResults }, | ||||||||||||
uncorrelatedListInfo | |||||||||||||
[0] SET OF ListResult }} | |||||||||||||
PartialOutcomeQualifier | : : = SET { | ||||||||||||
limitProblem | [0] LimitProblem OPTIONAL, | ||||||||||||
unexplored | [1] SET OF ContinuationReference OPTIONAL, | ||||||||||||
unavailableCriticalExtensions | |||||||||||||
[2] BOOLEAN DEFAULT FALCE, | |||||||||||||
unknownErrors | [3] SET OF ANY OPTIONAL, | ||||||||||||
queryReference | [4] OCTET STRING OPTIONAL } | ||||||||||||
LimitProblem : : = INTEGER { | |||||||||||||
timeLimitExceeded (0), sizeLimitExceeded (1), administrativeLimitExceeded (2) } |
10.1.2 Apгументы операции "список"
Аргумент object идентифицирует ту запись объекта (или, возможно, корень), чьи непосредственно подчиненные записи должны быть внесены в список. Если Name привлекает несколько псевдонимов, они разыменовываются (если это не запрещено соответствующими служебными ограничениями).
Аргумент PagedResults используется при запросе постраничной выдачи результатов операции, как описано в 7.9.
10.1.3 Результаты операции "список"
Запрос будет успешным, если object найден, независимо от наличия какой-либо подчиненной информации для выдачи.
Параметр name - это различительное имя записи или имя псевдонима записи, как описано в 7.7. Он имеет место только в том случае, если псевдоним был разыменован, а подлежащее выдаче имя отличается от имени baseObject, обеспечиваемого в аргументе операции.
Параметр subordinates содержит информацию относительно непосредственно подчиненных (при их наличии) поименованной записи. Если любая подчиненная запись является псевдонимом, она не должна разыменовываться.
Параметр rdn - это относительное различительное имя подчиненной записи.
Параметр fromEntry указывает, откуда была получена информация: при значении "истинно" - из записи, а при значении "ложно" - из ее копии.
Параметр aliasEntry в значении "истинно" указывает, что подчиненная запись является записью псевдонима, а в значении "ложно" - что она не является таковой.
Параметр partialOutcomeQualifier состоит из пяти описываемых ниже подкомпонентов. Этот параметр должен иметь место всякий раз, когда результат неполный либо из-за того, что вследствие ограничений времени, размера или проблем административного управления регионы ДИС не исследованы, либо из-за недоступности некоторых критических расширений, либо из-за получения неизвестной ошибки, либо из-за того, что выданы постраничные результаты.
a) Параметр LimitProblem указывает, какое из ограничений превышено: временное, размеров, или административного управления. Выдаются те результаты, которые были получены при достижении пределов.
b) Параметр unexplored должен иметь место, если регионы ДИС не исследовались. Его информация позволяет АПС продолжать обработку операции "список", взаимодействуя при необходимости с другими пунктами доступа. Этот параметр состоит из набора (возможно пустого) указателей ContinuationReferences, содержащих имя базового объекта, из которого может быть развита далее операция, соответствующее значение OperationProgress и набор пунктов доступа, из которых можно далее распространить запрос. Выдаваемые указатели ContinuationReferences должны находиться в области распространения обращения, запрошенного в служебном ограничении операции.
c) Параметр UnavailableCriticalExtensions, при его наличии, указывает, что одно или несколько критических расширений оказались недоступны в некоторой части справочника.
d) Параметр UnknownErrors используется для выдачи неизвестных типов ошибок или параметров, полученных от других АСС при выполнении операции. Каждый член набора SET содержит одну такую неизвестную ошибку (см. 7.5.2.4 в ГОСТ Р ИСО/МЭК 9594-5).
е) Параметр QueryReference должен иметь место, если АПС запросил постраничные результаты, а АСС не выдал всех доступных результатов (см. 7.9).
Если АПС запросил защищенный запрос подписанного, то параметр uncorrelatedListInfo может включить в себя многие наборы параметров результата, полученных из различных компонентов справочника и подписанных ими. Если ни один из АСС в цепочке не может установить соотношение между всеми результатами, то АПС должен скомпоновать фактический результат из различных частей.
10.1.4 Ошибки операции "список"
Если запрос на выполнение операции "список" оказался безуспешным, должна быть выдана хотя бы одна из перечисленных ошибок. Ситуации, в которых должны выдаваться конкретные ошибки, описаны в разделе 12.
10.1.5 Принятие решений при выполнении операции "список" и использовании базового управления доступом
Если базовое управление доступом действует относительно части операции "список", то применяется следующая последовательность управлений доступом.
1) Для записи, идентифицированной аргументом object, не требуется никакого конкретного разрешения.