I am working with Spring 3.2 and xstream to marshall/unmarshall XML and
have been running in circles trying to unmarshall annotated classes with
the same name/alias. The gist of it is that I want two separate packages to
contain similar models, with a spring configuration like this:
<bean id="xstreamMarshaller"
class="org.springframework.oxm.xstream.XStreamMarshaller">
<property name="annotatedClasses">
<list>
<value>com.watchwith.Show</value>
<value>com.watchwith.Content</value>
<value>com.watchwith.alternate.Show</value>
<value>com.watchwith.alternate.Content</value>
</list>
</property>
</bean>
In either "Show" and "Content" class I have the same aliases annotated:
@XStreamAlias("show")
public class Show {
@XStreamAlias("content")
private Content content;
...
}
@XStreamAlias("content")
public class Content {...}
And in my @Controllers I am importing the correct object, however, it seems
that xstream chooses one of the packages/aliases (possibly alphabetically?)
and always tries to unmarshall to that model. Is there a way (short of
distinct aliases) to advise xstream to which class the incoming XML should
be unmarshalled, since it does not appear to honor the value of the
@RequestBody annotation?
Thank you!
Ken Goudey
[email protected]