Potrzebuję wygenerować wiele dokumentów XML z obiektów Java. Obiekty są głęboko odwzorowanymi obiektami ORM, a dokumenty XML są dla indeksu wyszukiwania (a la Lucene). Chcę móc utworzyć plik konfiguracyjny i przekazać go obiekt Java, który wypluje XML określony w konfiguracji. Najlepiej byłoby, gdyby konfiguracja składała się z odwzorowania (prawdopodobnie głębokich) właściwości po stronie Java do XPath lub czegoś podobnego po stronie XML.Co to jest dobra biblioteka do generowania dowolnego XML z Java?
JAXB jest nieodpowiedni, ponieważ chce utworzyć odwzorowanie jeden do jednego z danych obiektu na węzły XML. Spojrzałem na JIBX i XStream, ale żaden z nich nie był zaprojektowany, aby robić to, o czym mówię.
Zasadniczo chcę, aby Dozer, ale zaprojektowany, aby utworzyć dokument XML jako cel, a nie inny komponent Java. Z moich dotychczasowych badań wynika, że sam będę musiał to napisać. Czy ktoś może zaoferować lepszą alternatywę?
EDYTOWANIE: Rozwiązanie nie może opierać się na możliwości modyfikowania źródłowych plików Java. Systemy oparte na adnotacjach są w tym przypadku bezużyteczne do moich celów. Powinno być możliwe zdefiniowanie "tłumaczy" dla poszczególnych odwzorowań, tak jak to jest w Dozer.
Należy zauważyć, że muszę być w stanie określić, że dane pole wejściowe w języku Java może być wyprowadzane w kilku różnych miejscach w wyjściu XML, w niektórych przypadkach może być transformowane, a nie w innych.
Rozważałem już wykonanie prostej translacji języka Java na format XML obiektów, a następnie wykonanie zadania przy użyciu XSLT, ale problem polega na tym, że są to obiekty głębokie z dwukierunkowymi połączeniami. Każde odwzorowanie obiektów na XML miałoby trudności z ustaleniem, jak głęboko w hierarchii obiektów ma się udać, nawet gdyby mogło śledzić, które obiekty powinny zostać zdyskredytowane, ponieważ już były widziane.
JiBX powinien być dobry do tego, dlaczego nie podoba ci się? – skaffman