Updating xml using c

In-place parsing is usually faster compared to parsing with copying strings to the heap, but it can consume more memory.

Even a non-validating parser has to do some relatively resource-intensive validation work.

When performance is the primary goal, a compromise must be reached between performance and conformance.

A non in-place parser can store relevant parts of the original stream instead. A conforming parser is expected to perform decoding of the representation.

Since doing this during node object access would make object access performance unpredictable, we prefer to do this at parsing time.

Upon encountering a string that is part of the data model, such as a tag name, the parser saves a pointer to the string and its length (/instead of saving the whole string).