JAXB untuk pemula: Tutorial untuk pemproses XML dengan Java
Agar aplikasi berkomunikasi antara satu sama lain, ia sering diperlukan untuk menukar data ke dalam format yang sangat serasi. Untuk tujuan ini, perpustakaan JAXB wujud di bawah Java, yang memproses objek ke dalam fail XML.
Menjana fail XML dengan JAXB - Amalan Terbaik
JAXB bermaksud Java Architecture untuk XML Binding . Ia membolehkan objek Java ditukar kepada fail XML dan sebaliknya. Sebelum anda memulakan, terdapat beberapa perkara yang harus diingat:
- JAXB telah menjadi sebahagian daripada suite JRE sejak versi 1.6 . Di samping itu, persekitaran pembangunan Jawa perlu dikemas kini kerana ia membetulkan pepijat.
- Elakkan jenis data primitif seperti float, perpuluhan atau integer negatif serta jenis data tanpa nama . Tidak ada kesamaan dalam JAXB untuk ini. Jika tidak, objek, jenis data angka, senarai dan set boleh ditukarkan. JAXB juga tidak dapat mengendalikan jenis data kompleks seperti java.time.LocalDate . Ini memerlukan adaptor yang dicipta khas.
- Dalam jargon teknikal, arah dari Java ke XML disebut marshaling, sementara unmarshaling bermaksud arah yang bertentangan.
anotasi XML
Video terkini
JAXB untuk pemula: tutorial menggunakan contoh koleksi CD
AudioCD.java: Atribut-atur CD audio ditakrifkan di sini
MusicDB.java: Koleksi muzik terdiri daripada senarai CD audio
Tutorial kami adalah mengenai koleksi CD yang dihasilkan dalam XML. Ia terdiri daripada beberapa CD audio. Artis, tahun pembebasan, nama album dan lagu-lagu dicatatkan untuk setiap CD audio.
- Pertama kelas harus dibuat, yang mengandungi data CD audio. Ini termasuk artis, tahun pembebasan, album dan lagu-lagu yang ada di CD.
- Untuk mengawal output yang lebih baik dalam format XML, anotasi XML diperlukan yang bermula dengan @ di bawah Java.
- Unsur akar dalam fail XML boleh ditentukan menggunakan penjelasan berikut: @ XmlRootElement (name = "Audiocd")
- Anda boleh memasukkan anotasi di atas kaedah getter atau setter yang menentukan nama alternatif untuk atribut Java. Sebagai contoh, bukannya tahun atribut, tahun penerbitan harus dihasilkan: @XmlElement (name = "year of publication")
- Perintah atribut ditentukan oleh annotation @ XmlType (propOrder = {"artist", "title", "year", "songlist"}) . Ini bermakna nama artis muncul pertama dalam fail XML, diikuti dengan nama album, tahun pembebasan dan senarai dengan lagu-lagu. Jika tidak, perintah itu bergantung kepada fail Java.
- Seterusnya, buat kelas Java baru bernama MusicDB, yang mengandungi senarai CD audio. Nama koleksi muzik dan lokasi koleksi muzik juga direkodkan di sini. Pada prinsipnya, prosedur ini sama dengan yang terdapat dalam fail Java yang disebutkan di atas.
Daripada objek Java ke fail XML
Video terkini
AudioCDMain.java: Beberapa CD audio dicipta di sini
AudioCDMain.java: Buat koleksi muzik
AudioCDMain.java: Menukar kod ke XML
Penukaran itu sendiri berlaku dalam program ujian, lebih tepatnya dalam kaedah utama.
- Pertama, buat banyak contoh Audio CD supaya banyak CD Audio dibuat.
- Contoh pengumpulan muzik jenis MusicDB juga diperlukan.
- Di samping itu, JAXB perlu tahu kelas Java mana yang mengandungi elemen akar. Dalam kes kami ini adalah kelas MusicDB : konteks JAXBContext = JAXBContext.newInstance (MusicDB.class);
- Penukaran berlaku menggunakan contoh Marshaller, yang dikaitkan dengan kaedah JAXB yang disebutkan di atas: Marshaller m = context.createMarshaller ();
- Kaedah Marshaller menyediakan pilihan lanjut, seperti dokumen XML adalah output diformat: .setProperty (Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
Seluruhnya dalam arah yang bertentangan
Video terkini
AudioCDMain.java: JAXB menjana objek Java dari fail XML
Fail XML telah diformat oleh JAXB
Pada asasnya, penukaran di arah yang lain meneruskan dengan cara yang sama:
- Pertama, contoh kaedah unmarshaller dibuat: unmarshaller at = context.createUnmarshaller ();
- Kemudian contoh peremail memerlukan nama fail XML yang sebelumnya dibuat: MusicDB mdb2 = (MusicDB) um.unmarshal (baru FileReader (MUSICDB_XML));