Rumah Keuangan Pribadi Membuat Custom Code dengan Java API untuk XML Binding (JAXB) - dummies

Membuat Custom Code dengan Java API untuk XML Binding (JAXB) - dummies

Daftar Isi:

Video: JSP Tutorial #14 - Call Java class from JSP 2024

Video: JSP Tutorial #14 - Call Java class from JSP 2024
Anonim

Anda dapat membuat kode yang disesuaikan dengan JAXB - the Java API untuk XML Binding . Dengan JAXB, Anda mengambil dokumen XML dan Anda membuat file kelas Java yang sempurna untuk memproses dokumen. Bila kebutuhan Anda berubah dan kelas tidak lagi melakukan apa yang Anda inginkan, Anda hanya menelurkan subkelas baru.

Saat menulis kode SAX atau DOM, Anda membuat program pemrosesan XML. Program Anda membaca sebuah dokumen, dan menggunakan dokumen tersebut untuk melakukan pekerjaan yang bermanfaat - dimulai dengan sesuatu yang tidak berbahaya seperti public void startElement or node. getNodeName (). Either way, program Anda tidak membuat asumsi tentang apa yang ada di dalam dokumen. Dokumen ini memiliki elemen akar, beberapa elemen anak, dan itu saja. Asumsi khusus yang Anda buat tentang dokumen ini benar-benar mempersempit kegunaan kode.

Kode serbaguna versus kode yang disesuaikan

Pertimbangkan kode pada Listing 1 dan 2. Listing 1, pindai lima simpul di pohon dokumen. Kelima node tersebut harus diatur dengan cara tertentu, atau program crash. (Daftar tersebut menginginkan komentar dan simpul akar, dengan setidaknya dua anak langsung berada di bawah simpul akar.)

Listing 1: Menampilkan beberapa node

import org. w3c. dom. Node;

import org. w3c. dom. NamedNodeMap;

kelas MyTreeTraverser

{

MyTreeTraverser (Node node)

{

Sistem. di luar. println (node. getNodeName ());

simpul = simpul. getFirstChild ();

Sistem di luar. println (node. getNodeName ());

simpul = simpul. getNextSibling ();

Sistem di luar. println (node. getNodeName ());

simpul = simpul. getFirstChild ();

Sistem di luar. println (node. getNodeName ());

simpul = simpul. getNextSibling ();

Sistem di luar. println (node. getNodeName ());

}

}

Listing 2: Melintasi pohon DOM

organisasi impor. w3c. dom. Node;

import org. w3c. dom. NamedNodeMap;

kelas MyTreeTraverser

{

Simpul Node;

MyTreeTraverser (Node node)

{

ini. node = node;

displayName ();

displayValue ();

if (node. GetNodeType () == Node. ELEMENT_NODE) ​​

displayAttributes ();

Sistem di luar. println ();

displayChildren ();

}

void displayName ()

{

Sistem. di luar. cetak ("Nama:");

Sistem di luar. println (node. getNodeName ());

}

void displayValue ()

{

String nodeValue = simpul. getNodeValue ();

jika (nodeValue! = Null)

nodeValue = nodeValue. memangkas();

Sistem di luar. cetak ("Nilai:");

Sistem di luar. println (nodeValue);

}

void displayAttributes ()

{

NamedNodeMap attribs = node. getAttributes ();

untuk (int i = 0; i

{

Sistem. di luar. println ();

Sistem di luar. cetak ("Atribut:");

Sistem di luar. cetak (attribs item (i) getNodeName ());

Sistem di luar. cetak ("=");

Sistem di luar. println (attribs item (i) getNodeValue ());

}

}

void displayChildren ()

{

Node child = node. getFirstChild ();

sementara (anak! = Null)

{

new MyTreeTraverser (anak);

anak = anak. getNextSibling ();

}

}

}

Kode pada Listing 2 jauh lebih umum. Kode ini memeriksa struktur dokumen saat berjalan. Ketika kode menemukan node anak, itu scan anak dan mencari cucu. Jika tidak ada cucu, kodenya mencari saudara dan saudari. Kode dapat menangani pohon dokumen - apakah itu memiliki satu node atau seribu node.

Jadi, Listing 2 lebih fleksibel daripada Listing 1. Namun, fleksibilitas ini hadir dengan kekurangan - termasuk kemungkinan overhead yang sangat tinggi. Kode pada Listing 2 harus mengurai seluruh dokumen XML - dan kemudian meletakkan representasi pohon dokumen ke dalam memori komputer. Jika dokumennya sangat besar, maka representasinya berukuran besar: Memori menjadi membengkak dengan semua data sementara itu, dan kode pada Listing 2 melambat menjadi merangkak.

Manfaat dari kustomisasi

Bayangkan Anda mencoba pergi ke Faneuil Hall di Boston, Massachusetts. Tidak masalah dari mana Anda memulai; Perjalanan akan selalu membingungkan dan sulit. Bagaimanapun, Anda harus merencanakan rute Anda. Anda bisa tersesat di dekat Revere atau Cambridge atau di pusat kota Boston. Bergantung pada sumber daya Anda, Anda memiliki dua pilihan:

  • Anda dapat berhenti di sebuah pompa bensin dan membeli peta. Jika Anda melakukannya, maka Anda mungkin tidak akan pernah sampai ke Faneuil Hall. Setelah semua, Anda harus menemukan di mana Anda berada di peta, mencari rute alternatif, memilih rute, dan kemudian (surga membantu Anda) mencoba mengikuti rute tanpa tersesat lagi.
  • Anda bisa memberi tahu sistem GPS yang mahal dan berbicara yang ingin Anda dapatkan di Faneuil Hall. Sistem akan merencanakan rute yang disesuaikan dan membimbing Anda, berbelok demi belokan, dari tempat menyedihkan manapun yang Anda jalani ke rute optimal yang mengarah dari sana ke Faneuil Hall. Rute sangat disesuaikan sehingga suara GPS mengatakan (misalnya), "Tidak ada tanda di persimpangan ini, tapi tetap belok kiri. "Kemudian, suaranya mengatakan" Ada dua tanda di persimpangan ini, dan tanda-tandanya saling bertentangan. Tapi belok kanan juga. "

Menggunakan peta kertas membutuhkan lebih banyak pekerjaan (lebih banyak waktu, usaha, ketangkasan, dan kesabaran) daripada menggunakan GPS yang berbicara. Mengapa? Karena peta kertas tidak disesuaikan dengan kebutuhan spesifik Anda; Akibatnya, tertulis, "Inilah keseluruhan wilayah metropolitan Boston. Faneuil Hall ada di sana. Anda mencari tahu apa yang harus dilakukan selanjutnya. "Sistem kustom adalah (seperti yang Anda duga) lebih mudah digunakan daripada yang tidak disesuaikan dengan situasi langsung Anda. Dengan demikian, kode pemrosesan XML Listing 2 membuat pohon DOM yang besar dan hemat sumber daya di ruang memori komputer Anda ("Inilah pohonnya -

Anda cari tahu apa yang harus dilakukan selanjutnya …") karena kode isn ' t disesuaikanKode ini bekerja untuk dokumen lama - tidak hanya yang Anda miliki - dan selalu melahap sumber daya untuk melakukannya. Inti dari JAXB

Gagasan di balik JAXB adalah menciptakan kelas yang disesuaikan dengan kebutuhan Anda. Anda mengambil deskripsi dokumen XML, jalankan melalui program khusus yang disebut compiler

schema , dan dapatkan kelas baru yang disebut kelas yang dihasilkan . Kelas yang dihasilkan ini disederhanakan untuk bekerja dengan dokumen XML tertentu.

Misalnya, jika dokumen XML Anda memiliki elemen bernama Total, maka kelas yang dihasilkan dapat memiliki metode setTotal dan getTotal. Jika elemen dokumen memiliki atribut fullName, maka kelas yang dihasilkan dapat menyetel methodFullName dan getFullName. (Lihat Gambar 1.)

Hubungan antara bagian dokumen XML dan bagian dari kelas Java disebut

binding . Dengan semua binding ini, sebuah instance dari kelas mewakili satu dokumen XML.

Gambar 1:

Objek mewakili sebuah dokumen. Jadi bagaimana Anda menghubungkan objek dengan dokumen XML? Nah, kelas yang dihasilkan memiliki metode bernama unmarshal dan marshal. (Lihat Gambar 2.)

Metode unmarshal membaca sebuah file XML. Metode ini mendapatkan nilai dari dokumen XML, dan memberikan nilai ini pada variabel pada objek Java.

Metode marshal menulis sebuah file XML. Metode ini mendapatkan nilai dari objek Java, dan menggunakan nilai-nilai ini untuk membuat dokumen XML.
  • Dengan metode seperti ini, Anda dapat mengambil dan memodifikasi data dalam dokumen XML.

Gambar 2:

Membaca dan menulis nilai.

Membuat Custom Code dengan Java API untuk XML Binding (JAXB) - dummies

Pilihan Editor

Bagaimana Menutup presentasi PowerPoint 2007 Presentation - dummies

Bagaimana Menutup presentasi PowerPoint 2007 Presentation - dummies

Menutup presentasi PowerPoint seperti memasukkannya ke dalam folder, dan menyimpan folder di laci yang tepat. Ada tiga cara yang berbeda untuk menutup presentasi PowerPoint:

Bagaimana Bandingkan Fitur PowerPoint 2013 Presentation - dummies

Bagaimana Bandingkan Fitur PowerPoint 2013 Presentation - dummies

Bandingkan fitur di PowerPoint 2013 memungkinkan Anda membandingkan perbedaan antara dua versi dari sebuah presentasi dan menerima atau menolak perbedaan. Fitur ini berguna jika Anda telah mengirimkan salinan presentasi ke reviewer dan Anda ingin secara selektif menggabungkan perubahan resensi. Menggunakan fitur Compare sangatlah mudah. Berikut adalah ...

Bagaimana Mengompres Gambar Anda di PowerPoint 2013 - dummies

Bagaimana Mengompres Gambar Anda di PowerPoint 2013 - dummies

PowerPoint 2013 mencakup perintah Compress Pictures yang dapat menghilangkan detail asing di gambar Anda dan dengan demikian mengurangi ukuran file presentasi Anda. Untuk menghemat lebih banyak ruang, perintah Compress Pictures juga akan menghapus bagian gambar Anda yang telah dipotong. Anda bisa menggunakan perintah ini untuk memampatkan hanya satu ...

Pilihan Editor

Cara Menggunakan NaturallySpeaking dengan Kotak Dialog Umum - dummies

Cara Menggunakan NaturallySpeaking dengan Kotak Dialog Umum - dummies

Secara alamiSpeaking dapat membantu Anda mengendalikan kotak dialog. Ini adalah & ldquo; Lihat Ma, tidak ada tangan & rdquo; contoh. Semuanya dilakukan dengan perintah suara. Tentu, terkadang Anda bisa menyelesaikan tugas lebih cepat dengan mematuk kunci atau menggerakkan mouse Anda. Seiring waktu, Anda akan menyelesaikan kompromi Anda sendiri antara perintah suara dan perintah mouse dan keyboard. Untuk pencarian berikut, NaturallySpeaking ...

Bagaimana Menggunakan "Klik" Command di NaturallySpeaking - dummies

Bagaimana Menggunakan "Klik" Command di NaturallySpeaking - dummies

Para insinyur di Nuance dapat ' t mengantisipasi setiap perintah yang mungkin digunakan oleh aplikasi nyasar, jadi mereka telah melakukan hal terbaik berikutnya: Mereka membuat perintah "Klik" untuk mengubah menu aplikasi menjadi perintah suara. Begini cara menggunakannya: Katakan, "Klik " untuk memperluas menu. Setiap judul yang muncul pada aplikasi ...

Bagaimana Menggunakan Mikrofon Profesional Naga Secara Pribadi:" Apakah Hal Ini Aktif? " - dummies

Bagaimana Menggunakan Mikrofon Profesional Naga Secara Pribadi:" Apakah Hal Ini Aktif? " - dummies

Dapat menjadi lucu saat Anda menyadari bahwa mikrofon Profesional Dragon Professional Anda telah berada di sepanjang waktu Anda menerima telepon terakhir Anda. Kata-kata yang Anda didiktekan tidak akan terlihat seperti apa yang Anda katakan. Ada jeda; Anda membuang muka dan mungkin mikrofon ditekan di bawah dagu Anda. Segera hapus ...

Pilihan Editor

10 Hal yang sering terjadi pada PowerPoint 2016 - dummies

10 Hal yang sering terjadi pada PowerPoint 2016 - dummies

Jumlah sebenarnya dari hal-hal yang dapat terjadi Salah saat bekerja dengan PowerPoint 2016 mungkin mendekati 10.000, tapi sepuluh di antaranya adalah yang paling sering salah. Anda tidak dapat menemukan file Anda Entah Anda menyimpan file dalam folder yang berbeda, atau Anda menggunakan nama file yang berbeda untuk menyimpannya ...

Menerapkan Style to a Table pada PowerPoint 2007 - dummies

Menerapkan Style to a Table pada PowerPoint 2007 - dummies

Setelah Anda membuat sebuah tabel di slide PowerPoint, gunakan kontrol di bawah Table Tools pada PowerPoint Ribbon untuk memformatnya. PowerPoint menawarkan beberapa gaya tabel yang telah ditentukan. Sebelum Anda menerapkan sebuah gaya, gunakan kotak centang yang muncul di sisi kiri tab Desain di bawah Table Tools on the Ribbon. Header ...

5 Trik bagus untuk PowerPoint 2016 - dummies

5 Trik bagus untuk PowerPoint 2016 - dummies

Ada banyak hal yang menyukai PowerPoint 2016, terutama jika Anda tahu caranya untuk menggunakan semua lonceng dan peluit. Berikut adalah beberapa tip dan trik yang perlu diingat: Skala ukuran slide ke dimensi monitor Ada dua rasio aspek dasar untuk layar komputer: standar (4: 3) dan lebar (16: 9). Angka-angka ini ...