java - How to improve Jaxb unmarshaller performance -
java - How to improve Jaxb unmarshaller performance -
i want marshal , unmarshal below: want unmarshal xml <keyname>value</keyname>
hashmap
class a{ private string name; private list<b> list; } class b{ private map <string, string> map; }
xml:
<a> <name>name</name> <blist> <b> <key>value</key> <key>value</key> </b> </blist> </a>
i want unmarshal xml class a. using @xmlanyelement
. when unmarshal @ big size xml blist.size=100000
, performance not ideal. should improve performance?
this xml snippet according description:
<doc> <data> <somekey>somevalue</somekey> <otherkey>othervalue</otherkey> </data> </doc>
this class data's type:
import java.util.arraylist; import java.util.list; import javax.xml.bind.annotation.xmlaccesstype; import javax.xml.bind.annotation.xmlaccessortype; import javax.xml.bind.annotation.xmlanyelement; import javax.xml.bind.annotation.xmltype; @xmlaccessortype(xmlaccesstype.field) @xmltype(name = "mappingtype", proporder = { "any" }) public class mappingtype { @xmlanyelement(lax = true) protected list<object> any; public list<object> getany() { if (any == null) { = new arraylist<object>(); } homecoming this.any; } }
to unmarshal:
void unmarshal() throws exception { jaxbcontext jc = jaxbcontext.newinstance( bundle ); unmarshaller m = jc.createunmarshaller(); jaxbelement<?> obj = (jaxbelement<?>)m.unmarshal( new file( xmlin ) ); doctype dt = (doctype)obj.getvalue(); mappingtype mt = dt.getdata(); for( object elobj: mt.getany() ){ system.out.println( "object: " + elobj.getclass() ); } system.out.println( "done" ); }
output
object: class com.sun.org.apache.xerces.internal.dom.elementnsimpl object: class com.sun.org.apache.xerces.internal.dom.elementnsimpl done
processing dom elements you, else can expect?
java xml jaxb
Comments
Post a Comment