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).
Fig.1: Overview of the XSD Tools for C architecture
XSD Compiler
The
XSD Compiler takes in input an
XML Schema definition, performs syntax and semantic checks and produces, if needed, the corresponding
error messages. 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].
XSD Runtime
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.