ASN.1
XML
TELEPHONY
FREE WEB TOOLS
SERVICES
ASN1C ASN.1 Compiler News
The current major version of ASN1C is 6.3. The following features
have been added recently:
General
- XML Schema (XSD) Compilation
- The capability to generate code for XSD files has been added in
addition to ASN.1 files. This is accomplished by doing an internal
transformation of XSD-to-ASN.1 as specified in the X.694 standard.
The resulting types and encoders/decoders make it possible to
encode data in W3C-compliant XML form as well as the fast,
efficient binary forms as specified in ASN.1 encoding rules
standards (BER, DER, CER, or PER).
- XSD-to-ASN.1 Translation
- The -asn1 switch was added to provide generation of ASN.1 source
code from the ASN.1 input based on what the compiler sees and supports.
Besides the obvious use of providing neatly formatted ASN.1 source code,
the tool is also useful for producing ASN.1 source code from XML schema
document (XSD) files as well as producing trimmed specifications when
<include> or <exclude> configuration directives are used.
- Improved Cross-Platform GUI Wizard
- The GUI wizard program used to select options and invoke the compiler
was upgraded to be more intuitive by using a tabbed interface.
- Eclipse Editor Plug-in
- An ASN.1 editor plug-in is now available for use with ASN1C. This
plug-in allows ASN.1 source files to be created and edited. ASN1C projects
can be created to select compilation options and to invoke the compiler to
compile the source files. Any errors that occur during compilation are
shown in an error syntax window.
C/C++
- Improved Table Constraint Handling
- The -table-unions compile option was added to
create unions-based table constraint code for ASN.1 specifications
that make use of table constraints. These include 3GPP specifications
such as RANAP, NBAP, and RNSAP as well as security specifications
(CMS, PKIX) and legacy telecom applications (MAP).
- Support for stream-based PER encode/decode
- Support has been added for stream-based encoding/decoding of PER
messages in C/C++. In previous releases, only encoding and decoding from
memory buffers was supported. The EmployeeSocketStream sample program
demonstrates encoding and decoding PER messages to and from a
socket-based stream.
- Support for the ASN.1 CONTAINING keyword
- Support has been added for adding the type definition contained within a
contents constraint specified using the CONTAINING keyword directly into the
container type. The generated code will then automatically deal with converting
the content to and from the BIT or OCTET STRING type that uses this constraint.
- Configuration variables for reducing code size
- Several configuration variables have been added for reducing the size
of generated code. <notUsed/> and <perEncoding/ were added to allow
a user to reduce the code footprint size by removing unused or
boilerplate parts of encoded PER messages from generated encoders and
decoders. The <encoders>, <decoders>, and <memfree> module
directives were added to select individual encode, decode, and
memory free functions for generation in a given compilation
run.
- Support for newer Visual Studio versions
- Runtime libraries for Visual Studio 2005 and 2008 (C, C++) are now
included by default in Windows packages. In addition, the directory structure
has changed to more explicitly indicate which version of Visual Studio is
supported: c and cpp remain compatible with version 6.0; *_vs2003 replace
the *_mscv71 directories; *_vs2005 replace the *_mscv8 directories.
- Generation of Visual Studio Project Files
- The generate VC project option (-vcproj) has been added to
allow generation of Visual Studio project files. These allow a user
who is familair with Visual Studio to get up and running quickly by
generating both the code and project files necessary to build the
project from a given set of XSD or ASN.1 schemas.
- Support for Symbian OS
- A special compiler switch (-symbian) and run-time compilation options
have been added that allows ASN1C generated code to work with the Symbian OS.
This capability is present in the embedded developers package.
Java
- Constraint checking added to Java/C# setters
- Generated Java and C# set methods will now do constraint checks as
defined in the ASN.1 source code when setting a variable. This is done
in addition to checks done by the encode methods.
- J2ME CLDC Support Upgraded
- ASN1C can now generate code with Java J2ME CLDC support by using
the -cldc command-line option in conjunction with the optimized .jar files
with this support.
- Generation of Ant build.xml files for Java
- The capability has been added to generate Ant build.xml files for
building generated Java projects including a reader and a writer. This
makes it possible to easily import the project into popular Java IDE's
such as Eclipse or Netbeans.
- XML Schema (XSD) Compilation
- It is now possible to directly generate Java or C# classes
directly from an XML Schema (XSD) file. These classes allow
encoding /decoding of XML instances as well as binary messages
(BER, DER, CER, or PER)
