X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=z39.50%2Fcharneg-3.asn;fp=z39.50%2Fcharneg-3.asn;h=d178e3a622b2ab52dad10c7cae5aac8f27a26e18;hp=cd353fb0e82cc809896474856465586112b4c04c;hb=ae9c5cbeb43ef0dc02d1c54d4a3b6291263a1641;hpb=f2b835100d3af6249f8659de9ecd15b5ce7446a9 diff --git a/z39.50/charneg-3.asn b/z39.50/charneg-3.asn index cd353fb..d178e3a 100644 --- a/z39.50/charneg-3.asn +++ b/z39.50/charneg-3.asn @@ -1,211 +1,212 @@ -NegotiationRecordDefinition-charSetandLanguageNegotiation-3 -{Z39-50-negotiationRecordDefinition CharSetandLanguageNegotiation-3 (3)} -DEFINITIONS ::= BEGIN -IMPORTS LanguageCode FROM RecordSyntax-explain; - -CharSetandLanguageNegotiation ::= CHOICE{ - proposal [1] IMPLICIT OriginProposal, - response [2] IMPLICIT TargetResponse} --- --- For character sets: --- Origin proposes one, two, or all three of the following, in order of --- preference: --- (a) 2022 character sets. --- (b) 10646 character set. --- (c) Private character set. --- --- The target responds with one of (a), (b), or (c), indicating the --- character set(s) to be supported for all name and message strings. --- --- If the origin includes (a), --- the origin proposes: --- (1) A proposed environment: 7-bit, 8-bit, or no-preference. --- (2) A set of iso 2022 registration numbers. --- (3) One or more proposed initial sets of registration numbers, --- for c0, c1, g0, g1, g2 and g3. These must come from (2). --- (4) The proposed encoding level. --- And if the target selects (a), it responds with: --- (1) A selected environment: 7-bit or 8-bit. --- (2) A subset of the set of iso 2022 registration numbers proposed --- by the origin. --- (3) The initial set of registrations, which must come from (2) --- but need not be from the set of initial registrations proposed --- by the origin. --- (4) The encoding level; less than or equal to that proposed. --- --- If the origin includes (b), --- The origin proposes: --- (1) (optionally) A list of collections (i.e. subsets of characters from the --- complete 10646 definition). --- (2) An implementation level. --- (3) Syntax/form: e.g. ucs-2, ucs-4, utf-8, utf-16. --- And if the target selects (b), it responds by choosing a subset of the --- collections proposed by the origin in (1) and an implementation level less --- than or equal to that proposed by the origin in (2). --- --- If the origin includes (c), the origin proposes one of the following: --- (1) A list of private character sets, by one or more object --- identifiers. --- (2) A list of private character sets, by an EXTERNAL. --- (3) An indication to use a private, previously agreed upon --- character set. --- And if the target selects (c): --- - If the origin proposed (1), the target should respond with (1), and --- the list of object identifiers should be a subset of the list that --- the origin included. --- - If the origin proposed (2), the target should respond with (2), using --- the same EXTERNAL definition (but not necessarily the same content) --- used by the origin. --- - If the origin proposed (3), the target should respond with (3). --- --- For Languages: --- The origin optionally proposes one or more language codes. The target --- response may include a single language code, which indicates the --- language to be used for all message strings. The target may include or --- omit this, whether or not the origin included a proposed set, and the --- language code indicated need not be from among those proposed. --- --- - -OriginProposal ::= SEQUENCE { - proposedCharSets [1] IMPLICIT SEQUENCE OF CHOICE{ - -- Each should occur at most once, and in order of preference - -- (the "order of preference" is the reason why this is - -- "SEQUENCE OF CHOICE" rather than just "SEQUENCE") - iso2022 [1] Iso2022, - iso10646 [2] IMPLICIT Iso10646, - private [3] PrivateCharacterSet} OPTIONAL, - -- proposedCharSets must be omitted - -- if origin proposes version 2 - proposedlanguages [2] IMPLICIT SEQUENCE OF LanguageCode OPTIONAL, - recordsInSelectedCharSets [3] IMPLICIT BOOLEAN OPTIONAL - -- default 'false'. See rule 6 above. - } - -TargetResponse ::= SEQUENCE{ - selectedCharSets [1] CHOICE{ - iso2022 [1] Iso2022, - iso10646 [2] IMPLICIT Iso10646, - private [3] PrivateCharacterSet, - none [4] IMPLICIT NULL - -- If selected, no negotiation - -- is assumed to be in force - -- for character sets. - } OPTIONAL, - -- Omitted if and only if proposedCharSets - -- was Omitted in the request. - selectedLanguage [2] IMPLICIT LanguageCode OPTIONAL, - recordsInSelectedCharSets [3] IMPLICIT BOOLEAN OPTIONAL - -- Omitted if and only if 'recordsInSelectedCharSets' was omitted - -- in the request. See rule 6 above. - } - - -PrivateCharacterSet ::= CHOICE{ - viaOid [1] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER, - externallySpecified [2] IMPLICIT EXTERNAL, - previouslyAgreedUpon [3] IMPLICIT NULL} - --- IMPORTED --- LanguageCode ::= GeneralString -- from ANSI Z39.53-1994 - --- Definition of ISO2022 --- For ISO 2022, the following is negotiated: --- 1) The environment: 7-bit or 8-bit; --- 2) a set of registration numbers (from the ISO Register of coded --- character sets) for graphical and control character sets; --- 3) g0, g1, g2, g3, c0, c1, the registration numbers of the graphical and --- control character sets that are initially designated to g0, g1, etc. --- The origin submits one or more sequences of values for --- g0, g1, g2, g3, c0, c1 (for each sequence: at least one of --- g0 and g1 must be included; g2 and g3 are optional and --- may be included only if g1 is included; --- c0 should be included; and c1 is optional); the target --- selects one of the proposed sequences. --- 4) gleft: which of g0, g1, g2 or g3, initially has GL shift status in --- an 8-bit environment or has shift status in a 7-bit environment; and --- 5) gright: which of g1, g2 or g3 initially has GR shift status in an --- 8-bit environment. - -Iso2022 ::= CHOICE{ - originProposal [1] IMPLICIT SEQUENCE{ - proposedEnvironment [0] Environment OPTIONAL, - -- omitted means no preference - proposedSets [1] IMPLICIT SEQUENCE OF INTEGER, - proposedInitialSets [2] IMPLICIT SEQUENCE OF - InitialSet, - proposedLeftAndRight [3] IMPLICIT LeftAndRight}, - targetResponse [2] IMPLICIT SEQUENCE{ - selectedEnvironment [0] Environment, - selectedSets [1] IMPLICIT SEQUENCE OF INTEGER, - selectedinitialSet [2] IMPLICIT InitialSet, - selectedLeftAndRight [3] IMPLICIT LeftAndRight}} - -Environment ::= CHOICE{ - sevenBit [1] IMPLICIT NULL, - eightBit [2] IMPLICIT NULL} - -InitialSet::= SEQUENCE{ - g0 [0] IMPLICIT INTEGER OPTIONAL, - g1 [1] IMPLICIT INTEGER OPTIONAL, - -- one of g0 and g1 must be included - g2 [2] IMPLICIT INTEGER OPTIONAL, - g3 [3] IMPLICIT INTEGER OPTIONAL, - --g2 and/or g3 may be included - -- only if g1 was included - c0 [4] IMPLICIT INTEGER, - c1 [5] IMPLICIT INTEGER OPTIONAL} - -LeftAndRight ::= SEQUENCE{ - gLeft [3] IMPLICIT INTEGER{ - g0 (0), - g1 (1), - g2 (2), - g3 (3)}, - gRight [4] IMPLICIT INTEGER{ - g1 (1), - g2 (2), - g3 (3)} OPTIONAL} - --- Definition of Iso10646 --- --- The 10646 object identifier looks like: --- 1.0.10646.1.implementationLevel.repertoireSubset.arc1.arc2. .... --- --- (The second '1' is for "part 1" of 10646.) --- --- ImplementationLevel is 1-3 --- --- repertoireSubset is 0 or 1, for 'all' or 'collections'. --- The arcs are present only if repertoireSubset is 'collections', --- in which case arc1, arc2, etc., are the --- identifiers of collections of character repertoires. --- --- There is a second 10646 oid, for specifying syntax/form: --- 1.0.10646.1.0.form --- --- (The second '0' represents "transfer syntax".) --- --- where values of form include: --- 2: ucs-2 --- 4: ucs-4 --- 5: utf-16 --- 8: utf-8 - -Iso10646 ::= SEQUENCE{ - collections [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - --oid of form 1.0.10646.1.implementationLevel - -- .repertoireSubset.arc1.arc2. .... - -- Target to choose a subset of the collections - -- proposed by the origin, and an implementation level - -- less than or equal to that proposed. - -- - -- when 'collections' is omitted, - -- 'implementationLevel' defaults to 3. - -- - encodingLevel [2] IMPLICIT OBJECT IDENTIFIER - -- oid of form 1.0.10646.1.0.form - -- where value of 'form' is 2, 4, 5, or 8 - -- for ucs-2, ucs-4, utf-16, utf-8 - } -END \ No newline at end of file +NegotiationRecordDefinition-charSetandLanguageNegotiation-3 +{Z39-50-negotiationRecordDefinition CharSetandLanguageNegotiation-3 (3)} +DEFINITIONS ::= BEGIN +IMPORTS LanguageCode FROM RecordSyntax-explain; + +CharSetandLanguageNegotiation ::= CHOICE{ + proposal [1] IMPLICIT OriginProposal, + response [2] IMPLICIT TargetResponse} +-- +-- For character sets: +-- Origin proposes one, two, or all three of the following, in order of +-- preference: +-- (a) 2022 character sets. +-- (b) 10646 character set. +-- (c) Private character set. +-- +-- The target responds with one of (a), (b), or (c), indicating the +-- character set(s) to be supported for all name and message strings. +-- +-- If the origin includes (a), +-- the origin proposes: +-- (1) A proposed environment: 7-bit, 8-bit, or no-preference. +-- (2) A set of iso 2022 registration numbers. +-- (3) One or more proposed initial sets of registration numbers, +-- for c0, c1, g0, g1, g2 and g3. These must come from (2). +-- (4) The proposed encoding level. +-- And if the target selects (a), it responds with: +-- (1) A selected environment: 7-bit or 8-bit. +-- (2) A subset of the set of iso 2022 registration numbers proposed +-- by the origin. +-- (3) The initial set of registrations, which must come from (2) +-- but need not be from the set of initial registrations proposed +-- by the origin. +-- (4) The encoding level; less than or equal to that proposed. +-- +-- If the origin includes (b), +-- The origin proposes: +-- (1) (optionally) A list of collections (i.e. subsets of characters from the +-- complete 10646 definition). +-- (2) An implementation level. +-- (3) Syntax/form: e.g. ucs-2, ucs-4, utf-8, utf-16. +-- And if the target selects (b), it responds by choosing a subset of the +-- collections proposed by the origin in (1) and an implementation level less +-- than or equal to that proposed by the origin in (2). +-- +-- If the origin includes (c), the origin proposes one of the following: +-- (1) A list of private character sets, by one or more object +-- identifiers. +-- (2) A list of private character sets, by an EXTERNAL. +-- (3) An indication to use a private, previously agreed upon +-- character set. +-- And if the target selects (c): +-- - If the origin proposed (1), the target should respond with (1), and +-- the list of object identifiers should be a subset of the list that +-- the origin included. +-- - If the origin proposed (2), the target should respond with (2), using +-- the same EXTERNAL definition (but not necessarily the same content) +-- used by the origin. +-- - If the origin proposed (3), the target should respond with (3). +-- +-- For Languages: +-- The origin optionally proposes one or more language codes. The target +-- response may include a single language code, which indicates the +-- language to be used for all message strings. The target may include or +-- omit this, whether or not the origin included a proposed set, and the +-- language code indicated need not be from among those proposed. +-- +-- + +OriginProposal ::= SEQUENCE { + proposedCharSets [1] IMPLICIT SEQUENCE OF CHOICE{ + -- Each should occur at most once, and in order of preference + -- (the "order of preference" is the reason why this is + -- "SEQUENCE OF CHOICE" rather than just "SEQUENCE") + iso2022 [1] Iso2022, + iso10646 [2] IMPLICIT Iso10646, + private [3] PrivateCharacterSet} OPTIONAL, + -- proposedCharSets must be omitted + -- if origin proposes version 2 + proposedlanguages [2] IMPLICIT SEQUENCE OF LanguageCode OPTIONAL, + recordsInSelectedCharSets [3] IMPLICIT BOOLEAN OPTIONAL + -- default 'false'. See rule 6 above. + } + +TargetResponse ::= SEQUENCE{ + selectedCharSets [1] CHOICE{ + iso2022 [1] Iso2022, + iso10646 [2] IMPLICIT Iso10646, + private [3] PrivateCharacterSet, + none [4] IMPLICIT NULL + -- If selected, no negotiation + -- is assumed to be in force + -- for character sets. + } OPTIONAL, + -- Omitted if and only if proposedCharSets + -- was Omitted in the request. + selectedLanguage [2] IMPLICIT LanguageCode OPTIONAL, + recordsInSelectedCharSets [3] IMPLICIT BOOLEAN OPTIONAL + -- Omitted if and only if 'recordsInSelectedCharSets' was omitted + -- in the request. See rule 6 above. + } + + +PrivateCharacterSet ::= CHOICE{ + viaOid [1] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER, + externallySpecified [2] IMPLICIT EXTERNAL, + previouslyAgreedUpon [3] IMPLICIT NULL} + +-- IMPORTED +-- LanguageCode ::= GeneralString -- from ANSI Z39.53-1994 + +-- Definition of ISO2022 +-- For ISO 2022, the following is negotiated: +-- 1) The environment: 7-bit or 8-bit; +-- 2) a set of registration numbers (from the ISO Register of coded +-- character sets) for graphical and control character sets; +-- 3) g0, g1, g2, g3, c0, c1, the registration numbers of the graphical and +-- control character sets that are initially designated to g0, g1, etc. +-- The origin submits one or more sequences of values for +-- g0, g1, g2, g3, c0, c1 (for each sequence: at least one of +-- g0 and g1 must be included; g2 and g3 are optional and +-- may be included only if g1 is included; +-- c0 should be included; and c1 is optional); the target +-- selects one of the proposed sequences. +-- 4) gleft: which of g0, g1, g2 or g3, initially has GL shift status in +-- an 8-bit environment or has shift status in a 7-bit environment; and +-- 5) gright: which of g1, g2 or g3 initially has GR shift status in an +-- 8-bit environment. + +Iso2022 ::= CHOICE{ + originProposal [1] IMPLICIT SEQUENCE{ + proposedEnvironment [0] Environment OPTIONAL, + -- omitted means no preference + proposedSets [1] IMPLICIT SEQUENCE OF INTEGER, + proposedInitialSets [2] IMPLICIT SEQUENCE OF + InitialSet, + proposedLeftAndRight [3] IMPLICIT LeftAndRight}, + targetResponse [2] IMPLICIT SEQUENCE{ + selectedEnvironment [0] Environment, + selectedSets [1] IMPLICIT SEQUENCE OF INTEGER, + selectedinitialSet [2] IMPLICIT InitialSet, + selectedLeftAndRight [3] IMPLICIT LeftAndRight}} + +Environment ::= CHOICE{ + sevenBit [1] IMPLICIT NULL, + eightBit [2] IMPLICIT NULL} + +InitialSet::= SEQUENCE{ + g0 [0] IMPLICIT INTEGER OPTIONAL, + g1 [1] IMPLICIT INTEGER OPTIONAL, + -- one of g0 and g1 must be included + g2 [2] IMPLICIT INTEGER OPTIONAL, + g3 [3] IMPLICIT INTEGER OPTIONAL, + --g2 and/or g3 may be included + -- only if g1 was included + c0 [4] IMPLICIT INTEGER, + c1 [5] IMPLICIT INTEGER OPTIONAL} + +LeftAndRight ::= SEQUENCE{ + gLeft [3] IMPLICIT INTEGER{ + g0 (0), + g1 (1), + g2 (2), + g3 (3)}, + gRight [4] IMPLICIT INTEGER{ + g1 (1), + g2 (2), + g3 (3)} OPTIONAL} + +-- Definition of Iso10646 +-- +-- The 10646 object identifier looks like: +-- 1.0.10646.1.implementationLevel.repertoireSubset.arc1.arc2. .... +-- +-- (The second '1' is for "part 1" of 10646.) +-- +-- ImplementationLevel is 1-3 +-- +-- repertoireSubset is 0 or 1, for 'all' or 'collections'. +-- The arcs are present only if repertoireSubset is 'collections', +-- in which case arc1, arc2, etc., are the +-- identifiers of collections of character repertoires. +-- +-- There is a second 10646 oid, for specifying syntax/form: +-- 1.0.10646.1.0.form +-- +-- (The second '0' represents "transfer syntax".) +-- +-- where values of form include: +-- 2: ucs-2 +-- 4: ucs-4 +-- 5: utf-16 +-- 8: utf-8 + +Iso10646 ::= SEQUENCE{ + collections [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, + --oid of form 1.0.10646.1.implementationLevel + -- .repertoireSubset.arc1.arc2. .... + -- Target to choose a subset of the collections + -- proposed by the origin, and an implementation level + -- less than or equal to that proposed. + -- + -- when 'collections' is omitted, + -- 'implementationLevel' defaults to 3. + -- + encodingLevel [2] IMPLICIT OBJECT IDENTIFIER + -- oid of form 1.0.10646.1.0.form + -- where value of 'form' is 2, 4, 5, or 8 + -- for ucs-2, ucs-4, utf-16, utf-8 + } +END +