I been using XStream with great results for a number of tasks, but now I run into a problem that seems to boil down to the order in which the XStream object is configured.
I've made a simplified example: <doc> <intro> <link> <url>/foo/bar</url> </link> </intro> <link> <url>/up/down</url> <image>cat.jpg</image> </link> </doc> The setup is like: XStream xstream = new XStream(); xstream.alias("doc", DocText.class); xstream.addImplicitCollection(DocText.class, "links"); xstream.alias("intro", Paragraph.class); xstream.alias("link", UrlLink.class); // 1 xstream.alias("link", ImageLink.class); // 2 The gist of the classes: public class DocText { private Paragraph intro; private List<ImageLink> links; } public class Paragraph { UrlLink link; } public class UrlLink { String url; } public class ImageLink { private String url; private String image; } When the sequence of the lines marked 1 & 2 is as shown it works. When they change place it throws the following exception: No such field com.codedroids.oc.schema.dao.UrlLink.image ---- Debugging information ---- field : image class : com.codedroids.oc.schema.dao.UrlLink required-type : com.codedroids.oc.schema.dao.UrlLink converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter path : /doc/link/image line number : 9 class[1] : com.codedroids.oc.schema.dao.DocText version : null ------------------------------- If DocText has a simple field called link rather than a list of them, then it works either way (after removing the xstream.addImplicitCollection() of course). The problem is that I am trying to get the xstream configuration generated automatically from the related schema definition and thus cannot be sure in which order the various alias'es gets invoked. I haven't tried using annotations since there places where the same class is mapped by more than one tag name - this works fine with alias'es but with annotation I can only map it to one tag name (or perhaps I'm mistaken) Thanks Claus --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email