Example of valueRestrictorThe optional elementSelector in the ASN.1 definition below takes the form of an element specification, for example, eSpec-1 (which may degenerate to an element set name). It may be used in the normal manner, to select the actual desired elements to be retrieved (subject to restriction by valueRestrictor).
Suppose eSpec-q is to be applied to holdings records (based on the holding schema, 1.2.840.10003.13.7). The valueRestrictor may be used to restrict the retrieved information to holdings for a specific institution: In this case the valueRestrictor would take the form of a type-1 query where:
- the Access Point is institutionOrSiteId
(Note: this is intended to correspond to institutionOrSiteId Within SiteLocation within HoldingsStatement in the Holdings schema. At the time that this specification is finalized, the Holdings attribute set is still in development, but the intention is that this access point will be defined.)- the term is a specific institution code, for example 'MdMC-T'.
Example of elementSelectorIn the two examples above, the combined use of the valueRestrictor and elementSelector would result in the retrieval of siteLocation, dateOfReport, numberOfCopies, and UnionCatLendingInfo, for all holdings for which the institution code is 'MdMC-T', for all result set records indicated in the Present request.
Again suppose eSpec-q is to be applied to holdings. elementSelector may take the form of eSpec-1 to request that retrieved record be composed of siteLocation, dateOfReport, numberOfCopies, and UnionCatLendingInfo.
If the elementSelector is omitted, the target chooses the element set.
{Z39-50-elementSpec eSpec-q (3)} DEFINITIONS ::= BEGIN IMPORTS Term, AttributeList, AttributeElement FROM Z39-50-APDU-1995 -- Espec-q ::= SEQUENCE{ valueRestrictor [1] IMPLICIT ValueRestrictor, elementSelector [2] IMPLICIT EXTERNAL OPTIONAL} ValueRestrictor ::= SEQUENCE{ attributeSetId OBJECT IDENTIFIER, nodeSelectionCriteria RPNStructure} -- RPNStructure ::= CHOICE{ op [0] AttributesPlusTerm, rpnRpnOp [1] IMPLICIT SEQUENCE{ rpn1 RPNStructure, rpn2 RPNStructure, op [46] CHOICE{ and [0] IMPLICIT NULL, or [1] IMPLICIT NULL, and-not [2] IMPLICIT NULL} }} AttributesPlusTerm ::= [102] IMPLICIT SEQUENCE{ attributes AttributeList, term Term} END