Update Extended Service ASN.1 Definition -- Revision 1
December 21, 1998
ESFormat-Update
{Z39-50-extendedService Update (5) revisions (1) revision-1 (1)} DEFINITIONS ::=
-- oid is 1.2.840.10003.9.5.1.1
BEGIN
IMPORTS DiagRec, InternationalString
FROM Z39-50-APDU-1995;
Update ::= CHOICE{
esRequest [1] IMPLICIT SEQUENCE{
toKeep [1] OriginPartToKeep,
notToKeep [2] OriginPartNotToKeep},
taskPackage [2] IMPLICIT SEQUENCE{
originPart [1]
OriginPartToKeep,
targetPart [2] TargetPart}}
OriginPartToKeep ::= SEQUENCE{
action [1] IMPLICIT INTEGER{
recordInsert (1),
recordReplace (2),
recordDelete (3),
elementUpdate (4),
specialUpdate (5)},
databaseName [2] IMPLICIT InternationalString,
schema [3] IMPLICIT OBJECT IDENTIFIER OPTIONAL,
elementSetName [4] IMPLICIT InternationalString OPTIONAL,
actionQualifier [5] IMPLICIT EXTERNAL OPTIONAL}
OriginPartNotToKeep ::= SuppliedRecords
TargetPart ::= SEQUENCE{
updateStatus [1] IMPLICIT INTEGER{
success (1),
partial (2),
failure (3)},
globalDiagnostics [2] IMPLICIT SEQUENCE OF
DiagRec OPTIONAL,
-- These are non-surrogate
-- diagnosticsrelating to the task,
-- not to individual records.
taskPackageRecords [3] IMPLICIT SEQUENCE OF
TaskPackageRecordStructure
-- There should be a
-- TaskPackageRecordStructure
-- for every record supplied.
-- The target should create
-- such a structure for every
-- record immediately upon
-- creating the task package
-- to include correlation
-- information and status.
-- The record itself would not
-- be included until processing
-- for that record is complete.
}
-- Auxiliary definitions for Update
SuppliedRecords ::= SEQUENCE OF SEQUENCE{
recordId [1] CHOICE
number [1] IMPLICIT INTEGER,
string [2] IMPLICIT InternationalString,
opaque [3] IMPLICIT OCTET STRING} OPTIONAL,
supplementalId [2] CHOICE{
timeStamp [1] IMPLICIT GeneralizedTime,
versionNumber [2] IMPLICIT InternationalString,
previousVersion [3] IMPLICIT EXTERNAL} OPTIONAL,
correlationInfo [3] IMPLICIT CorrelationInfo OPTIONAL,
record [4] IMPLICIT EXTERNAL}
CorrelationInfo ::= SEQUENCE{
-- origin may supply one or both for any record:
note [1] IMPLICIT InternationalString OPTIONAL,
id [2] IMPLICIT INTEGER OPTIONAL}
TaskPackageRecordStructure ::= SEQUENCE{
recordOrSurDiag [1] CHOICE {
record [1] IMPLICIT EXTERNAL,
-- Choose 'record' if
-- recordStatus is 'success', and
-- elementSetName was supplied.
surrogateDiagnostics [2] IMPLICIT
SEQUENCE OF DiagRec
-- Choose 'SurrogateDiagnostics', if
-- RecordStatus is failure.
} OPTIONAL,
-- The parameter recordOrSurDiag
-- will thus be omitted only if
-- 'elementSetName' was omitted and
-- recordStatus is 'success'; or
--if record status is 'queued'
-- or in 'process'.
correlationInfo [2] IMPLICIT
CorrelationInfo OPTIONAL,
-- This should be included
-- if it was supplied by the origin.
recordStatus [3] IMPLICIT INTEGER{
success (1),
queued (2),
inProcess (3),
failure (4)},
supplementalDiagnostics [4] IMPLICIT
SEQUENCE OF DiagRec OPTIONAL}
END