Already a subscriber? ![](/assets/images/login.png)
![](/assets/images/x.png)
MADCAD.com Free Trial
Sign up for a 3 day free trial to explore the MADCAD.com interface, PLUS access the
2009 International Building Code to see how it all works.
If you like to setup a quick demo, let us know at support@madcad.com
or +1 800.798.9296 and we will be happy to schedule a webinar for you.
Security check![](/assets/images/x.png)
Please login to your personal account to use this feature.
Please login to your authorized staff account to use this feature.
Are you sure you want to empty the cart?
![](/assets/images/159.gif)
BS ISO/IEC 8825-3:2021 Information technology. ASN.1 encoding rules - Specification of Encoding Control Notation (ECN), 2021
- undefined
- Blank Page
- CONTENTS
- Introduction
- 1 Scope
- 2 Normative references [Go to Page]
- 2.1 Identical Recommendations | International Standards
- 2.2 Additional references
- 3 Definitions [Go to Page]
- 3.1 ASN.1 definitions
- 3.2 ECN-specific definitions
- 4 Abbreviations
- 5 Definition of ECN syntax
- 6 Encoding conventions and notation
- 7 The ECN character set
- 8 ECN lexical items [Go to Page]
- 8.1 Encoding object references
- 8.2 Encoding object set references
- 8.3 Encoding class references
- 8.4 Reserved word items
- 8.5 Reserved encoding class name items
- 8.6 Non-ECN item
- 9 ECN Concepts [Go to Page]
- 9.1 Encoding Control Notation (ECN) specifications
- 9.2 Encoding classes
- 9.3 Encoding structures
- 9.4 Encoding objects
- 9.5 Encoding object sets
- 9.6 Defining new encoding classes
- 9.7 Defining encoding objects
- 9.8 Differential encoding-decoding
- 9.9 Encoders options in encodings
- 9.10 Properties of encoding objects
- 9.11 Parameterization
- 9.12 Governors
- 9.13 General aspects of encodings
- 9.14 Identification of information elements
- 9.15 Reference fields and determinants
- 9.16 Replacement classes and structures
- 9.17 Mapping abstract values onto fields of encoding structures
- 9.18 Transforms and transform composites
- 9.19 Contents of Encoding Definition Modules
- 9.20 Contents of the Encoding Link Module
- 9.21 Defining encodings for primitive encoding classes
- 9.22 Application of encodings
- 9.23 Combined encoding object set
- 9.24 Application point
- 9.25 Conditional encodings
- 9.26 Other conditions for applying encodings
- 9.27 Encoding control for the open type
- 9.28 Changes to ASN.1 Recommendations | International Standards
- 10 Identifying encoding classes, encoding objects, and encoding object sets
- 11 Encoding ASN.1 types [Go to Page]
- 11.1 General
- 11.2 Built-in encoding classes used for implicitly generated encoding structures
- 11.3 Simplification and expansion of ASN.1 notation for encoding purposes
- 11.4 The implicitly generated encoding structure
- 12 The Encoding Link Module (ELM) [Go to Page]
- 12.1 Structure of the ELM
- 12.2 Encoding types
- 13 Application of encodings [Go to Page]
- 13.1 General
- 13.2 The combined encoding object set and its application
- 14 The Encoding Definition Module (EDM)
- 15 The renames clause [Go to Page]
- 15.1 Explicitly generated and exported structures
- 15.2 Name changes
- 15.3 Specifying the region for name changes
- 16 Encoding class assignments [Go to Page]
- 16.1 General
- 16.2 Encoding structure definition
- 16.3 Alternative encoding structure
- 16.4 Repetition encoding structure
- 16.5 Concatenation encoding structure
- 17 Encoding object assignments [Go to Page]
- 17.1 General
- 17.2 Encoding with a defined syntax
- 17.3 Encoding with encoding object sets
- 17.4 Encoding using value mappings
- 17.5 Encoding an encoding structure
- 17.6 Differential encoding-decoding
- 17.7 Encoding options
- 17.8 Non-ECN definition of encoding objects
- 18 Encoding object set assignments [Go to Page]
- 18.1 General
- 18.2 Built-in encoding object sets
- 19 Mapping values [Go to Page]
- 19.1 General
- 19.2 Mapping by explicit values
- 19.3 Mapping by matching fields
- 19.4 Mapping by #TRANSFORM encoding objects
- 19.5 Mapping by abstract value ordering
- 19.6 Mapping by value distribution
- 19.7 Mapping integer values to bits
- 20 Defining encoding objects using defined syntax
- 21 Types used in defined syntax specification [Go to Page]
- 21.1 The Unit type
- 21.2 The EncodingSpaceSize type
- 21.3 The EncodingSpaceDetermination type
- 21.4 The UnusedBitsDetermination type
- 21.5 The OptionalityDetermination type
- 21.6 The AlternativeDetermination type
- 21.7 The RepetitionSpaceDetermination type
- 21.8 The Justification type
- 21.9 The Padding type
- 21.10 The Pattern and Non-Null-Pattern types
- 21.11 The RangeCondition type
- 21.12 The Comparison type
- 21.13 The SizeRangeCondition type
- 21.14 The ReversalSpecification type
- 21.15 The ResultSize type
- 21.16 The HandleValueSet type
- 21.17 The IntegerMapping type
- 22 Commonly used encoding property groups [Go to Page]
- 22.1 Replacement specification [Go to Page]
- 22.1.1 Encoding properties, syntax and purpose
- 22.1.2 Specification restrictions
- 22.1.3 Encoder actions
- 22.1.4 Decoder actions
- 22.2 Pre-alignment and padding specification [Go to Page]
- 22.2.1 Encoding properties, syntax and purpose
- 22.2.2 Specification constraints
- 22.2.3 Encoder actions
- 22.2.4 Decoder actions
- 22.3 Start pointer specification [Go to Page]
- 22.3.1 Encoding properties, syntax and purpose
- 22.3.2 Specification constraints
- 22.3.3 Encoder actions
- 22.3.4 Decoder actions
- 22.4 Encoding space specification [Go to Page]
- 22.4.1 Encoding properties, syntax and purpose
- 22.4.2 Specification restrictions
- 22.4.3 Encoder actions
- 22.4.4 Decoder actions
- 22.5 Optionality determination [Go to Page]
- 22.5.1 Encoding properties, syntax and purpose
- 22.5.2 Specification restrictions
- 22.5.3 Encoder actions
- 22.5.4 Decoder actions
- 22.6 Alternative determination [Go to Page]
- 22.6.1 Encoding properties, syntax and purpose
- 22.6.2 Specification restrictions
- 22.6.3 Encoder actions
- 22.6.4 Decoder actions
- 22.7 Repetition space specification [Go to Page]
- 22.7.1 Encoding properties, syntax and purpose
- 22.7.2 Specification constraints
- 22.7.3 Encoder actions
- 22.7.4 Decoder actions
- 22.8 Value padding and justification [Go to Page]
- 22.8.1 Encoding properties, syntax, and purpose
- 22.8.2 Specification restrictions
- 22.8.3 Encoder actions
- 22.8.4 Decoder actions
- 22.9 Identification handle specification [Go to Page]
- 22.9.1 Encoding properties, syntax and purpose
- 22.9.2 Specification constraints
- 22.9.3 Encoders actions
- 22.9.4 Decoders actions
- 22.10 Concatenation specification [Go to Page]
- 22.10.1 Encoding properties, syntax and purpose
- 22.10.2 Specification constraints
- 22.10.3 Encoder actions
- 22.10.4 Decoder actions
- 22.11 Contained type encoding specification [Go to Page]
- 22.11.1 Encoding properties, syntax and purpose
- 22.11.2 Encoder actions
- 22.11.3 Decoder actions
- 22.12 Bit reversal specification [Go to Page]
- 22.12.1 Encoding properties, syntax, and purpose
- 22.12.2 Specification constraints
- 22.12.3 Encoder actions
- 22.12.4 Decoder actions
- 23 Defined syntax specification for bit-field and constructor classes [Go to Page]
- 23.1 Defining encoding objects for classes in the alternatives category [Go to Page]
- 23.1.1 The defined syntax
- 23.1.2 Purpose and restrictions
- 23.1.3 Encoder actions
- 23.1.4 Decoder actions
- 23.2 Defining encoding objects for classes in the bitstring category [Go to Page]
- 23.2.1 The defined syntax
- 23.2.2 Model for the encoding of classes in the bitstring category
- 23.2.3 Purpose and restrictions
- 23.2.4 Encoder actions
- 23.2.5 Decoder actions
- 23.3 Defining encoding objects for classes in the boolean category [Go to Page]
- 23.3.1 The defined syntax
- 23.3.2 Purpose and restrictions
- 23.3.3 Encoder actions
- 23.3.4 Decoder actions
- 23.4 Defining encoding objects for classes in the characterstring category [Go to Page]
- 23.4.1 The defined syntax
- 23.4.2 Model for the encoding of classes in the characterstring category
- 23.4.3 Purpose and restrictions
- 23.4.4 Encoder actions
- 23.4.5 Decoder actions
- 23.5 Defining encoding objects for classes in the concatenation category [Go to Page]
- 23.5.1 The defined syntax
- 23.5.2 Purpose and restrictions
- 23.5.3 Encoder actions
- 23.5.4 Decoder actions
- 23.6 Defining encoding objects for classes in the integer category [Go to Page]
- 23.6.1 The defined syntax
- 23.6.2 Purpose and restrictions
- 23.6.3 Encoder actions
- 23.6.4 Decoder actions
- 23.7 Defining encoding objects for the #CONDITIONAL-INT class [Go to Page]
- 23.7.1 The defined syntax
- 23.7.2 Purpose and restrictions
- 23.7.3 Encoder actions
- 23.7.4 Decoder actions
- 23.8 Defining encoding objects for classes in the null category [Go to Page]
- 23.8.1 The defined syntax
- 23.8.2 Purpose and restrictions
- 23.8.3 Encoder actions
- 23.8.4 Decoder actions
- 23.9 Defining encoding objects for classes in the octetstring category [Go to Page]
- 23.9.1 The defined syntax
- 23.9.2 Model for the encoding of classes in the octetstring category
- 23.9.3 Purpose and restrictions
- 23.9.4 Encoder actions
- 23.9.5 Decoder actions
- 23.10 Defining encoding objects for classes in the open type category [Go to Page]
- 23.10.1 The defined syntax
- 23.10.2 Model for the encoding of classes in the open type category
- 23.10.3 Purpose and restrictions
- 23.10.4 Encoder actions
- 23.10.5 Decoder actions
- 23.11 Defining encoding objects for classes in the optionality category [Go to Page]
- 23.11.1 The defined syntax
- 23.11.2 Purpose and restrictions
- 23.11.3 Encoder actions
- 23.11.4 Decoder actions
- 23.12 Defining encoding objects for classes in the pad category [Go to Page]
- 23.12.1 The defined syntax
- 23.12.2 Purpose and restrictions
- 23.12.3 Encoder actions
- 23.12.4 Decoder actions
- 23.13 Defining encoding objects for classes in the repetition category [Go to Page]
- 23.13.1 The defined syntax
- 23.13.2 Purpose and restrictions
- 23.13.3 Encoder actions
- 23.13.4 Decoder actions
- 23.14 Defining encoding objects for the #CONDITIONAL-REPETITION class [Go to Page]
- 23.14.1 The defined syntax
- 23.14.2 Purpose and restrictions
- 23.14.3 Encoder actions
- 23.14.4 Decoder actions
- 23.15 Defining encoding objects for classes in the tag category [Go to Page]
- 23.15.1 The defined syntax
- 23.15.2 Purpose and restrictions
- 23.15.3 Encoder actions
- 23.15.4 Decoder actions
- 23.16 Defining encoding objects for classes in the other categories
- 24 Defined syntax specification for the #TRANSFORM encoding class [Go to Page]
- 24.1 Summary of encoding properties and defined syntax
- 24.2 Source and target of transforms
- 24.3 The int-to-int transform
- 24.4 The bool-to-bool transform
- 24.5 The bool-to-int transform
- 24.6 The int-to-bool transform
- 24.7 The int-to-chars transform
- 24.8 The int-to-bits transform
- 24.9 The bits-to-int transform
- 24.10 The char-to-bits transform
- 24.11 The bits-to-char transform
- 24.12 The bit-to-bits transform
- 24.13 The bits-to-bits transform
- 24.14 The chars-to-composite-char transform
- 24.15 The bits-to-composite-bits transform
- 24.16 The octets-to-composite-bits transform
- 24.17 The composite-char-to-chars transform
- 24.18 The composite-bits-to-bits transform
- 24.19 The composite-bits-to-octets transform
- 25 Complete encodings and the #OUTER class [Go to Page]
- 25.1 Encoding properties, syntax and purpose for the #OUTER class
- 25.2 Encoder actions for #OUTER
- 25.3 Decoder actions for #OUTER
- Annex A Addendum to Rec. ITU-T X.680 | ISO/IEC 8824-1 [Go to Page]
- A.1 Exports and imports clauses
- A.2 Addition of REFERENCE
- A.3 Notation for character string values
- Annex B Addendum to Rec. ITU-T X.681 | ISO/IEC 8824-2 [Go to Page]
- B.1 Definitions
- B.2 Additional lexical items [Go to Page]
- B.2.1 Ordered value list field references
- B.2.2 Ordered encoding object list field references
- B.2.3 Encoding class field references
- B.3 Addition of "ENCODING-CLASS"
- B.4 FieldSpec additions
- B.5 Fixed-type ordered value list field spec
- B.6 Fixed-class encoding object field spec
- B.7 Variable-class encoding object field spec
- B.8 Fixed-class encoding object set field spec
- B.9 Fixed-class ordered encoding object list field spec
- B.10 Encoding class field spec
- B.11 Ordered value list notation
- B.12 Ordered encoding object list notation
- B.13 Primitive field names
- B.14 Additional reserved words
- B.15 Definition of encoding objects
- B.16 Additions to "Setting"
- Annex C Addendum to Rec. ITU-T X.683 | ISO/IEC 8824-4
- Annex C Addendum to Rec. ITU-T X.683 | ISO/IEC 8824-4
- Annex D Examples [Go to Page]
- D.1 General examples [Go to Page]
- D.1.1 An encoding object for a boolean type
- D.1.2 An encoding object for an integer type
- D.1.3 Another encoding object for an integer type
- D.1.4 An encoding object for an integer type with holes
- D.1.5 A more complex encoding object for an integer type
- D.1.6 Positive integers encoded in BCD
- D.1.7 An encoding object of class #BITS
- D.1.8 An encoding object for an octetstring type
- D.1.9 An encoding object for a character string type
- D.1.10 Mapping character values to bit values
- D.1.11 An encoding object for a sequence type
- D.1.12 An encoding object for a choice type
- D.1.13 Encoding a bitstring containing another encoding
- D.1.14 An encoding object set
- D.1.15 ASN.1 definitions
- D.1.16 EDM definitions
- D.1.17 ELM definitions
- D.2 Specialization examples [Go to Page]
- D.2.1 Encoding by distributing values to an alternative encoding structure
- D.2.2 Encoding by mapping ordered abstract values to an alternative encoding structure
- D.2.3 Compression of non-continuous value ranges
- D.2.4 Compression of non-continuous value ranges using a transform
- D.2.5 Compression of an unevenly distributed value set by mapping ordered abstract values
- D.2.6 Presence of an optional component depending on the value of another component
- D.2.7 The presence of an optional component depends on some external condition
- D.2.8 A variable length list
- D.2.9 Equal length lists
- D.2.10 Uneven choice alternative probabilities
- D.2.11 A version 1 message
- D.2.12 The encoding object set
- D.2.13 ASN.1 definitions
- D.2.14 EDM definitions
- D.2.15 ELM definitions
- D.3 Explicitly generated structure examples [Go to Page]
- D.3.1 Sequence with optional components defined by a pointer
- D.3.2 Addition of a boolean type as a presence determinant
- D.3.3 Sequence with optional components identified by a unique tag and delimited by a length field
- D.3.4 Sequence-of type with a count
- D.3.5 Encoding object sets
- D.3.6 ASN.1 definitions
- D.3.7 EDM definitions
- D.3.8 ELM definitions
- D.4 A more-bit encoding example [Go to Page]
- D.4.1 Description of the problem
- D.4.2 Use of ASN.1 to provide the more-bit determinant
- D.4.3 Use of value mappings to provide the more-bit determinant
- D.4.4 Use of the replacement mechanism to provide the more-bit determinant
- D.5 Legacy protocol specified with tabular notation [Go to Page]
- D.5.1 Introduction
- D.5.2 Encoding definition for the top-level message structure
- D.5.3 Encoding definition for a message structure
- D.5.4 Encoding for the sequence type "B"
- D.5.5 Encoding for an octet-aligned sequence-of type with a length determinant
- D.5.6 Encoding for an octet-aligned sequence-of type which continues to the end of the PDU
- D.5.7 EDM definitions
- D.5.8 ELM definitions
- Annex E Support for Huffman encodings
- Annex F Additional information on the Encoding Control Notation (ECN)
- Annex G Summary of the ECN notation [Go to Page]