forked from asl2/PyZ3950
-
Notifications
You must be signed in to change notification settings - Fork 1
/
update_es_rev1.asn
107 lines (96 loc) · 4.2 KB
/
update_es_rev1.asn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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-updrev1 ::= CHOICE{
esRequest [1] IMPLICIT SEQUENCE{
toKeep [1] OriginPartToKeep-updrev1,
notToKeep [2] OriginPartNotToKeep-updrev1},
taskPackage [2] IMPLICIT SEQUENCE{
originPart [1]
OriginPartToKeep-updrev1,
targetPart [2] TargetPart-updrev1}}
OriginPartToKeep-updrev1 ::= 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-updrev1 ::= SuppliedRecords-updrev1
TargetPart-updrev1 ::= 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-updrev1 ::= SEQUENCE OF SEQUENCE{
recordId [1] CHOICE { -- XXX added '{'
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-updrev1 OPTIONAL,
record [4] IMPLICIT EXTERNAL}
CorrelationInfo-updrev1 ::= SEQUENCE{
-- origin may supply one or both for any record:
note [1] IMPLICIT InternationalString OPTIONAL,
id [2] IMPLICIT INTEGER OPTIONAL}
TaskPackageRecordStructure-updrev1 ::= 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-updrev1 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