Configuration files are XML files that can be used to apply specific options to specific items within a schema. These options can be applied to specific modules, productions, and elements as well as globally.
A configuration file would target an item to which a directive is to be applied by specifying module, production, and element in an XML hierarchy. An example that targets an element to be displayed in an alternate format is as follows:
<asn1config> <module name=”MEDIA-GATEWAY-CONTROL”> <production name=”IP4Address”> <element name=”address”> <displayFormat>ipv4</displayFormat> </element> </production> </module> </asn1config>
This indicates the element 'address' in the production 'IP4Address' in the module 'MEDIA-GATEWAY-CONTROL' should be displayed in the form of an IP version 4 address rather than in the default format for the type (which for OCTET STRING is hex bytes).
At the outer level of the markup is the
<asn1config> </asn1config>
tag pair. Within this tag pair, the specification of global items
and modules can be made. Global items are applied to all items in
all modules. An example would be the
<includedir>
qualifier. This specifies an include directory
to search for modules specified in import statements. It is not
something that is associated with an individual module or production.
The specification of a module is done using the
<module></module>
tag pair.
This tag pair can only be nested within the top-level
<asn1config>
section. The module
is identified by using the required
<name></name>
tag pair or by specifying the
name as an attribute (for example, <module
name="MyModule">
). Other attributes specified within the
<module>
section apply only to
that module and not to other modules specified within the
specification. A complete list of all module attributes is provided in
the table at the end of this section.
The specification of an individual production is done using the
<production></production>
tag pair. This tag pair can only be nested within a
<module>
section. The production is identified
by using the required <name></name> tag pair or by
specifying the name as an attribute (for example,
<production name="MyProd">
). Other attributes within
the production section apply only to the referenced production and
nothing else. A complete list of attributes that can be applied to
individual productions is provided in the table at the end of this
section.
The following tables specify the list of attributes that can be applied at all of the different levels: global, module, and individual production. Only the attributes applicable to ASN1VE are shown.
Global Level
These attributes can be applied at the global level by including
them within the <asn1config>
section:
Name | Values | Description |
---|---|---|
<includedir></includedir> | <Include directory> | This configuration item is used to specify a directory that will be searched for IMPORT files. |
Module Level
These attributes can be applied at the module level by including
them within a <module>
section:
Name | Values | Description |
---|---|---|
<name> </name> |
module name | This attribute identifies the module to which this section applies. Either this or the <oid> element/attribute is required. |
<oid> | module OID (object identifier) | This attribute provides for an alternate form of module identification for the case when module name is not unique. For example, a given ASN.1 module may have multiple versions. A unique version of the module can be identified using the OID value. |
<include types="names" values="names"/> | ASN.1 type or value names are specified as an attribute list | By default, all types and values within a specification are included for display within ASN1VE. This item allows ASN.1 types and/or values to be explicitly specified for inclusion in the set of items to be displayed. This allows the size of what is loaded to be reduced. This can be useful in the case of large schemas which import items from many different schemas to reduce the number of schema files that need to be imported. |
<exclude types="names" values="names"/> | ASN.1 type or values names are specified as an attribute list | This item allows a list of ASN.1 types and/or values to be excluded from the set of schema items to be displayed. By default, all types and values from within a specification are included. If an attempt is made to exclude a type or value referenced by another item, the directive will be ignored. |
<noPDU/> | n/a | Indicates that this module contains no PDU definitions. This is normally true in modules that are imported to get common type definitions. This will prevent any types from being displayed from this module as possible PDU types. |
Production Level
These attributes can be applied at the production level by
including them within a <production>
section:
Name | Values | Description |
---|---|---|
<name> |
production name | This attribute identifies the production (type) to which this section applies. It is required. |
<displayFormat> | lower, upper, ipv4, ipv6, imei, imsi, tbcd | This is used to specify an alternate stringified representation for binary data. It is only applicable to OCTET STRING types. By default, OCTET STRING data is displayed in hexadecimal text format. The lower and upper qualifiers also result in hexadecimal text format, but force lower or upper case characters to be used. The ipv4 and ipv6 qualifiers cause the date to be formatted as an IP address. The imei, imsi, and tbcd qualifiers treat the data as being encoded in TBCD format with slight differences in each format type. |
<isPDU/> | n/a | This item is used to indicate that this production represents a Protocol Data Unit (PDU). This indicates that this production should be included in the list of possible PDU types when the schema is assigned. |
<isTBCDString/> | n/a | This item is used to indicate that this production is to be encoded and decoded as a telephony binary coded string (TBCD). This is type is not part of the ASN.1 standards but is a widely used encoding format in telephony applications. |
Element Level
These attributes can be applied at the element level by including
them within an <element>
section:
Name | Values | Description |
---|---|---|
<name> |
element name | This attribute identifies the element within a SEQUENCE, SET, or CHOICE construct to which this section applies. It is required. |
<displayFormat> | lower, upper, ipv4, ipv6, imei, imsi, tbcd | This is used to specify an alternate stringified representation for binary data. It is only applicable to OCTET STRING types. By default, OCTET STRING data is displayed in hexadecimal text format. The lower and upper qualifiers also result in hexadecimal text format, but force lower or upper case characters to be used. The ipv4 and ipv6 qualifiers cause the date to be formatted as an IP address. The imei, imsi, and tbcd qualifiers treat the data as being encoded in TBCD format with slight differences in each format type. |