In-maps
The in_map
construct is used to map external formats to internal formats during decoding. The general syntax for an in-map declaration is as follows:
in_map <map_name> : <in_map options> { <explicit map specifications> <automatic> : <automatic options> { <automatic mapping specifications> }; <sub-external specifications> };
The general in-map options are:
Option | Description |
---|---|
| Specifies the external format to map from. This is a mandatory parameter. |
| The internal format name to map to. This is a mandatory parameter, unless |
| The target internal format name created when automatically generating a map. This parameter is only valid for |
| Specifies that the |
| Specifies that a decoder using this |
Specially named options can also be supplied in the in_map
depending on the type of the external format. The type specific options are:
Option | Description |
---|---|
| Only applicable for XML based formats (IPDR formats). Specifies that the IPDR "compact" encoding is to be used. |
| Only applicable for ASN.1 based formats. Specifies that PER encoding (ALIGNED version) is to be used. |
| Only applicable for ASN.1 based formats. Specifies that PER encoding (UNALIGNED version) is to be used. |
Option | Description |
---|---|
| Describes how the external fields are mapped to the internal fields. These specifications are optional. i:<internal field> and e:<external field> [ using in_map <sub_map> ] ; |
| Specifies that all external fields not explicitly mapped in |
| This is used to handle the special case where the mapped external is the parent of other externals that must be considered for decoding. This is currently only supported for XML schema based externals where it is used to support, for instance, IPDR decoding. |
| This option can be used to ignore unknown tags when the external format is ASN.1 BER. Example - ignore_unknown_tags Adding the following for an in_map creates an in_map called inMapIgnoringUnknownTags that simply ignores any unknown tags in the BER encoding: in_map inMapIgnoringUnknownTags: external(Udr), target_internal(Udr), ignore_unknown_tags { automatic; }; Note! This functionality can also be achieved by using the ASN.1 extensibility syntax. For example, entering the following code results in tags of the type TheType ::= SEQUENCE { boolField (1) BOOLEAN OPTIONAL, } |
This chapter includes the following sections: