Lightweight XML Parser (LwXMLP)

LwXMLP Library

The LwXMLP library is a lightweight XML Parser library written in ANSI C and targeted for embedded, RTOS, and resource-constrained environments – primarily because of its small size, speed, and feature set.

Features:

  • The LwXMLP is a non-validating XML processor.
  • Implemented  using C language.
  • Complies with the requirements provided by the W3C (check the LwXMLP test tool and W3C compliance matrix).
  • Suitable for the embedded system applications, so it takes into consideration the limitations of the code, data and processing speed.
  • It is online streaming processor (incremental processor) such that it can generate correct partial output from partial input and this gives a degree of freedom on the XML document size, i.e. there is no restriction on the XML document size.
  • It is SAX or event-based processor, Such that it reads an XML document from beginning to end, and each time it encounters a syntax construction, it notifies the application that is running it, and the application must implement the appropriate methods to handle the callbacks and get the functionality needed.
  • The parser can be integrated in the application, so it can receive the XML document from different stream type like file stream and IP stream (TCP/UDP), serial communication, so on.
  • The code/data size can be customize to enable/disable some of the feature on the expense of the code/data size using some macro definitions, so the size can vary from 33k for full feature support to 7K for minimum feature support (the size is calculated on ARM Cortex-M4F without any optimization).
  • Thread-safe, so all its API are re-entrant.
  • Support two models of memory allocation, static memory allocation and dynamic memory allocation.
  • The LWXML processor shall be able to detect the XML fetal errors so it will report the error type and the XML line where the error is occurred then it will cause the termination for reading process.
  • Supports only for encoding types UTF-8, UTF-16BE, UTF-16LE. and ISO-8859-1.
  • It complies with MISRA-2012.

Download:

The LwXMLP GitHub repository can be cloned from here: https://github.com/firmwaremine/LwXMLP, and the most recent stable open source GPLv3 release can be downloaded from the LwXMLP download page here: Download.

Documentation:

The LwXMLP library API documentation is available here

W3C Recommendation Compliance:

The LwXMLP library is tested to measure the conformance against the XML syntax defined by W3C Recommendation by applying the test suite provided by W3C.

Please see the Compliance Matrix

Commercial Support:

Support packages for FirmwareMine are available on an annual basis directly from FirmwareMine.  With three different package options, you can compare them side-by-side and choose the package that best fits your specific needs.  Please see our Support Packages page for more details or contact us with any questions.

License:

For license details, Please see