I am trying to serialize some xml data from a public web service into java objects with Simple XML Framework. The problem is that different methods from the service return the same concept with different element names. For example, method A returns element foo like this
<data><Foo>foo value</Foo></data>
whereas method B returns
<data><foo>foo value</foo></data>
and method C returns
<data><FOO>foo value</FOO></data>
Is there any way (a multiple name annotation or so) of getting this xml deserialized into the same class and same element? For example, deserializing the three method's results into the same "foo" element in three different "Foo" objects (one per method):
@Root(name="data")
public class Foo{
@Element
public String foo;
(...)
}
Unfortunately you can't set more than one annotation per field and
@Element
only supports one name (case sensitive). As an alternative you can deserialize those fields by your own - here's an example how to do this:Example usage:
Now it doesn't matter if
foo
is written asfoo
orFoO
- as long it's a foo.