Vorrei cercare di arrivare a farti capire che cosa puoi solo ottenere e alla fin fine quindi quale è il senso di tutto questo.
Supponiamo che riesci a scrivere del codice che:
- genera "programmaticamente" tramite XJC dei sorgenti Java a partire da un xsd.
- compila "programmaticamente" quei sorgenti (qui o si lancia javac o si usa la Java Compiler API che se non sbaglio esiste da Java 6).
- permette il caricamento dei .class generati (questo si fa con un apposito class loader, dovrebbe bastare il "solito" java.net.URLClassLoader che è quello che si usa in questi casi).
- usa JAXB per effettuare l'unmarshal di un XML (sulla base ovviamente dei class generati). Anche questo mi pare fattibile perché JAXBContext ha dei newInstance che ricevono un ClassLoader (ma non ho mai provato così!).
Tu dall'unmarshal cosa ottieni? Pensa. Ottieni un java.lang.Object. E su questo Object non ci puoi fare nulla di particolare (a parte invocare i metodi noti di Object).
Non puoi fare cast es. (TipoGenerato) perché il tuo programma principale è stato compilato prima di generare quelle classi. E pertanto su questi oggetti non puoi invocare metodi specifici.
Quindi a cosa ti serve?


Rispondi quotando
