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.
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.