Saya penggemar berat JAXB karena memanipulasi XML. Pada dasarnya, ini memberikan solusi untuk masalah ini (saya berasumsi sudah terbiasa dengan XML, struktur data Java, dan Skema XML):
Bekerja dengan XML itu sulit. Seseorang membutuhkan cara untuk mengambil file XML - yang pada dasarnya adalah file teks - dan mengubahnya menjadi semacam struktur data, yang kemudian dapat dimanipulasi oleh program Anda.
JAXB akan mengambil Skema XML yang Anda tulis dan membuat sekumpulan kelas yang sesuai dengan skema itu. Utilitas JAXB akan membuat hierarki struktur data untuk memanipulasi XML itu.
JAXB kemudian dapat digunakan untuk membaca file XML, dan kemudian membuat instance kelas yang dihasilkan - sarat dengan data dari XML Anda. JAXB juga melakukan kebalikannya: mengambil kelas java, dan menghasilkan XML yang sesuai.
Saya suka JAXB karena mudah digunakan, dan dilengkapi dengan Java 1.6 (jika Anda menggunakan 1.5, Anda dapat mengunduh JAXB .jars.) Cara membuat hierarki kelas sangat intuitif, dan menurut pengalaman saya, berfungsi dengan baik mengabstraksi "XML" sehingga saya bisa fokus pada "data".
Jadi untuk menjawab pertanyaan Anda: Saya berharap, untuk file XML kecil, JAXB mungkin berlebihan. Ini mengharuskan Anda untuk membuat dan memelihara skema XML, dan menggunakan "metode buku teks standar" untuk memanfaatkan kelas Java untuk struktur data. (Kelas utama, kelas dalam kecil untuk mewakili "node", dan hierarki yang sangat besar dari mereka.) Jadi, JAXB mungkin tidak terlalu bagus untuk daftar linier sederhana "preferensi" untuk suatu aplikasi.
Tetapi jika Anda memiliki skema XML yang agak rumit, dan banyak data yang terkandung di dalamnya, maka JAXB sangat bagus. Dalam proyek saya, saya mengonversi sejumlah besar data antara biner (yang dikonsumsi oleh program C) dan XML (sehingga manusia dapat mengonsumsi dan memodifikasi data itu). Skema XML yang dihasilkan tidak sepele (banyak tingkat hierarki, beberapa bidang dapat diulang, yang lain tidak dapat) sehingga JAXB sangat membantu untuk dapat memanipulasinya.