As mentioned previously, the Expat XML Parser library is the default XML parser library implementation used for decoding XER messages. It is also possible to use the C++ SAX handlers generated by ASN1C with other XML parser library implementations. The XER Run-Time Library (ASN1XER) provides a common interface to other parsers via a common adapter interface layer. There is a special XML interface object file for each of the following supported XML parsers:
rtXmlLibxml2IF - interface to LIBXML2;
rtXmlXercesIF - interface to XERCES;
rtXmlExpatIF - interface to EXPAT.
rtXmlMicroIF - interface to custom, small footprint, microparser
The XER Run-Time Library is completely independent from the XML readers because the adapter layer within these libraries defines a common SAX API.
If an application is linked statically then the static variant of one of these interface objects (their names have suffix “_a”) should be linked cooperatively with the XML parser, ASN1XER and ASN1RT libraries.
If the application is linked dynamically (using dynamically-linked libraries (DLL) in Windows or shared objects (SO or SL in UNIX/Linux) then it is necessary to link the application with the dynamic variant of the interfaces (without suffix “_a”), dynamic version of the XML parser, ASN1XER and ASN1RT dynamic libraries.