Rajshree Rai
Rajshree Rai

Reputation: 642

How can i dynamically unmarshal xml in java?

I have a very large xml to unmarshal. I don't want to create POJO classes for this because that would mean creating around 20 classes. Is there a way I can unmarshal this dynamically i.e. without creating POJO classes?

Edit: Here is the link to the article to unmarshal (https://www.ncbi.nlm.nih.gov/pubmed/31297574/?report=xml&format=text)

I want to read this data and store it somewhere in my database.

I am trying to do this with jaxb.

Upvotes: 2

Views: 295

Answers (2)

mfe
mfe

Reputation: 1208

You can check DSM library. It's designed to process complex XML and JSON documents while reading the document. You define mapping definition in yaml format so you don't need to create classes to unmarshal. DOM API load all XML to memory so that you can't use DOM with large XML. But DSM uses stream parsing so you won't face with memory problems. Using DSM is easier then DOM

Upvotes: 0

Michael Kay
Michael Kay

Reputation: 163322

The term "unmarshal" is usually used to mean a process of parsing XML and generating custom POJO objects. If you want to use generic Java objects instead, then you want one of the XML generic tree models. Most people use DOM, which is the oldest and worst of the models but is the default because it comes bundled with the Java platform; my own recommendation would be either JDOM2 or XOM.

If you don't want to create custom classes then you don't want to be using JAXB.

You haven't said in detail what you want to achieve, but for many XML operations, using XSLT or XQuery is going to be much easier than using Java (because processing XML is what they were designed for).

Upvotes: 2

Related Questions