Embodiments of the present disclosure are directed to an improved approach for creating a compact tree node representation of an XML document.
In various use cases, legacy representation of data structures within enterprise data processing applications is inconvenient, and in some cases unwieldy. For example, in storing and accessing an XML document, it is known that when using (legacy) DOM processing implementations to access an XML document, the entire DOM data structure must be stored in memory. For some data processing applications, especially those involving kernel processing, the DOM processing runs out of memory and crashes when generating a large volume of data (e.g., a large number of invoices). One legacy approach has been to split the processing into several jobs, each with a smaller amount of data (e.g., a smaller number of invoices). However, this technique is often inconvenient to employ, and moreover this technique does not work well in situations where it is a priori unknown how to split the processing into smaller amounts of data.
The aforementioned legacy technologies do not have the capabilities to create a compact tree node representation of an XML document that can be accessed portion by portion without requiring that the entire XML document to reside in memory. And, further, what is needed is a new method that uses significantly less memory compared to DOM—even when loading a complete XML document into memory. Therefore, there is a need for an improved approach for creating and using compact tree node representations of an XML document.