The MARBEN XSD Tools for C encompass an XML Schema (XSD) Compiler, and pure C ASN.1 BER, DER, PER (both aligned and unaligned variants), XER (XML Encoding Rules - both basic and canonical variants) and E-XER (Extended XER) encoding/decoding engines providing a C API. The C API is a set of C structures generated by the XSD Compiler and depending on the input XML Schema (a C structure is generated for each XML Schema element or type).
The XSD Compiler takes in input an XML Schema definition, performs syntax and semantic checks. It generates C structures associated with the XML schema elements and types and an information table that the runtime will use to encode/decode data. The XSD compiler supports all XML Schemas that conform to [W3C-XSD].
The XSD Runtime provides encoding/decoding services as well as constraints check and traces services. The user application has access to the C BER, DER, PER, XER and E-XER encoding/decoding services through the C API generated by the XSD Compiler. The XSD Runtime also offers customization mechanism for the adaptation and the porting of the application in various environments.
The C API is user-friendly. To each type and element of the input XML schema definition corresponds a C structure. To encode or decode a value, the PER, BER, DER, XER or E-XER encoding or decoding function has simply to be called.