6.9. Turning XML Documents into Beans
Problem
You need to convert an XML document into a Bean.
Solution
Use Betwixt’s BeanReader
to parse
an XML document and create an instance of the appropriate bean.
Register bean classes with the BeanReader
, and
parse an XML document loaded from an InputStream
,
InputSource
, or Reader
. The
following XML document will be parsed into the
Play
and Character
beans
introduced in Recipe 6.2:
<play genre="tragedy" year="1603" language="english"> <author>William Shakespeare</author> <character protagonist="false"> <description>King of Denmark</description> <name>Claudius</name> </character> <character protagonist="true"> <description>Son to the late, and nephew of the present king</description> <name>Hamlet</name> </character> <character protagonist="false"> <description>friend to Hamlet</description> <name>Horatio</name> </character> <name>Hamlet</name> <summary>Prince of Denmark (Hamlet) freaks out, talks to father's ghost, and finally dies in a duel.</summary> </play>
This XML document was created with BeanWriter
,
using the customized format from Recipe 6.8.
To read this XML document with BeanReader
, the
Play
class will need to be registered with
BeanReader
and the
XMLIntrospector
must have the same settings as the
XMLIntrospector
used when writing the document
with BeanWriter
. The following code instantiates
and configures a BeanReader
to read this
customized XML for the Play
object:
import org.apache.commons.betwixt.io.BeanReader; InputStream customPlay ...
Get Jakarta Commons Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.