External Type

The ASN.1 EXTERNAL type is a useful type used to include non-ASN.1 or other data within an ASN.1 encoded message. The type is described using the following ASN.1 SEQUENCE:

   EXTERNAL ::= [UNIVERSAL 8] IMPLICIT SEQUENCE {
      direct-reference OBJECT IDENTIFIER OPTIONAL,
      indirect-reference INTEGER OPTIONAL,
      data-value-descriptor ObjectDescriptor OPTIONAL,
      encoding CHOICE {
         single-ASN1-type   [0] ANY,
         octet-aligned      [1] IMPLICIT OCTET STRING,
         arbitrary          [2] IMPLICIT BIT STRING
      }
   }

The ASN.1 compiler is used to create a meta-definition for this structure. The definition is stored in the file Asn1External.java (or Asn1XerExternal.java for XER). An object created from the resulting Java class is populated just like any other compiler-generated structure for working with ASN.1 data.