Please advise which is better to use
xml handler in
Java (preferably with reference to the source).
What source can we talk about? Java has two ways to handle XML on board: SAX and DOM.
SAX is an XML parser streaming by looking at the visitor pattern: you give it the source stream and your handler implementation, which it will call as it finds tags, content parts, etc.
DOM - in this case, you can use the DOM builder to build a DOM tree from your XML document, and then use the DOM API to work with this tree.
The difference between them is clear: working with DOM in some cases is much easier than with SAX, but the DOM tree of the entire document can take a lot of memory .. it may turn out that it simply does not fit in memory. While SAX allows you to process a document not all at once, so you can process a document of any size. On the other hand, at times SAX document processing can also be very convenient, so you should not think that you should always choose DOM if the document is small.
In addition to DOM and SAX, I recommend to consider the possibility of using StAX. It is also a streaming event API, but it works somewhat differently (for example, you can request the next element yourself, or you can write to another XML document at the same time).
In some cases, StAX runs faster than DOM and SAX implementations and requires less memory.
StAX provides two APIs from which to choose according to the task.
Introduction to StAX in Russian - Using StAX for XML Processing: Introduction to Streaming API for XML (StAX)
Comparison of different approaches for parsing XML in English - Why StAX?