La documentazione JAXB è come un libro di testo, e semplicemente non ho tempo per imparare tutto JAXB prima che sia necessario usarlo.JAXB Work-Flow - Come si entra in JAXB
Ho un XSD, se voglio usare JAXB per effettuare il marshall e un-marshal qual è il flusso di lavoro?
Non ho bisogno di alcuna specifica solo una vista di alto livello.
quello che so già: 1. JAXB può essere usato per prendere gli oggetti e creare documenti XML da loro e viceversa 2. Esso utilizza qualche strumento misterioso di nome "XJC", che non sono stato in grado di trovare un download di ANYWHERE sul loro sito web 3. XJC crea le classi per te in base a XSD
Per prima cosa, come trovo XJC? In realtà so che è installato sul mio sistema, non so da dove l'ho preso.
In secondo luogo, qualunque sia questo strumento e come è arrivato alla mia macchina, come posso farlo funzionare con la versione più aggiornata di JAXB? In terzo luogo, quindi se le mie modifiche XSD devo davvero ricreare l'intero oggetto Java, quindi invalidando tutti i miei test? O posso definire un oggetto per i mapping XSD in modo che io possa controllare la mappatura, non una generazione di codice predefinita?
Sono principalmente abituato a prendere XML e usare qualcosa di simile a xStream per farlo manualmente, ma questa non è più un'opzione per i miei scopi.
In primo luogo, grande risposta, apprezzato. Domanda: Quindi normalmente creeresti gli oggetti java e poi li copi incollandoli nel tuo progetto? Dici che spesso fa parte dello script di build, ma a me sembra tutto indietro, perché allora come saprai che il codice che stai scrivendo che usa quegli oggetti verrà compilato, tanto meno eseguito come previsto? Inoltre, cose come il completamento automatico non potrebbero funzionare perché gli oggetti non esistono finché non si crea il progetto. – walnutmon
Certo, "copia/incolla" il codice generato è ok - l'inconveniente è che devi ricordarti di farlo quando lo schema cambia. Se lo fai come parte della tua build, il completamento automatico funzionerà correttamente, devi solo eseguire la build una volta prima. Indipendentemente dal fatto che il tuo progetto compili o funzioni come previsto non è diverso dall'esecuzione di xjc "a mano", e potresti avere un test unitario che cattura la maggior parte di tali errori. – nos