commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lena...@email.arizona.edu
Subject Re: Betwixt: BeanReader setup question
Date Tue, 08 Apr 2008 17:04:13 GMT
Nathalie,

Okay - so you have some input XML like:

<root>
   <element a="A" b="B" c="C" />
</root>

or

<root>
   <A/>
   <B/>
   <C/>
</root>

You're reading in this input xml file and you're getting an error because your
class has no property mapping for the attribute 'b' or element 'B'.

Is that correct?

One sort of mindless approach (a hack, kludge, etc) would be to subclass you
mapping class and the property for B - just to get this to read in.  
This class
serves the role of the superclass - and that'll filtering out B while getting
your the information you need.  That's a quick fix - which I'd likely be
attacked for suggesting if more people read the Betwixt questions (not 
say they
don't - just not too many seem to answer them if they are reading).

Question: will you have to output your mapped beans in this XML format?

If there answer is 'No', then you would likely want to look at what Betwixt is
built on: Digester.  If that's a 'Yes' - then you'd like to take in this
information to output later.  I'm assuming since you're looking to filter out
the input XML - the answer is 'No.'

So - Betwixt is built on Digester.  Digester uses a set of rules to 
specify the
mapping from xml elements and attributes into beans.  Betwixt is generating
these rules for you in a custom ruleset (BeanRuleSet).  I believe that 
what you
want to do would be look at how you define Rules in Digester to ignore this.

And that makes sense because you originally asked the question about both
Digester and Betwixt.

I'd take a stab at what you need to do in Digester but their Wiki is 
down right
now =( The Advanced "Reading Beans" section for Betwixt mentions 
"Adding Custom
Digestion Rules" : http://commons.apache.org/betwixt/guide/reading.html 
(but the
section just sort of points you to the Digester page, which is rather 
thin - it
looks like the meatier content is on the wiki, again, which is down).  
I'd look
at that.  I haven't delved into Digester so I can't offer much help

Eventually - the wiki should be back up at some point:

http://wiki.apache.org/commons/Digester

Sorry I can't offer a full solution.

Andy

Quoting Nathalie Doremieux <nathalie@newsoftwaremarketing.com>:

> Andy,
>
> thanks for your answer but I  need to be able to ignore fields on the
> XML side, not on the bean side.
> I think I can better explain with an example
>
> My bean has 2 elements
> A
> C
>
> my XML has 3 elements
> A
> B
> C
>
> with that configuration I would like to be able to read A and C into my
> bean, but right now I only get A. I basically would like to be able to
> tell betwixt to ignore B in the XML as it does not map to anything in
> the bean. Is that possible? I know I can also write an XML validator and
> make sure my XML is the right format, but if there is a solution within
> betwixt it would be nice to know!
>
> thanks for you help!
>
> Nathalie


/****************************************
  * @author:  Andrew Lenards
  * @email:   lenards@email.arizona.edu
  * @title:   Systems Programmer, Principal
  * @project: Tree of Life Web Project
  * @website: http://tolweb.org/
  * @dept:    Dept. of Entomology
  * @school:  University of Arizona
  * @geo-loc: Tucson, AZ 85721
  ***************************************/


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message