"Bagaimana kabarmu?"

"Hebat. Tidak bisa mengeluh. Hari ini Bilaabo memberi tahu saya tentang JavaScript. Tidak semuanya, tentu saja, tetapi lebih dari sekadar sedikit. Tentu saja, saya masih belum menulis apa pun di JS, tetapi menurut saya itu tidak akan terjadi sulit."

"Dan Ellie memberi tahu saya tentang serialisasi JSON. Dan Anda menjelaskan kerangka kerja Jackson dan cara menyiapkan 'deserialisasi polimorfik' menggunakan anotasi."

"Tidak mungkin! Kamu pintar sekarang, Amigo! Pejantan sungguhan!"

"Dan kemudian beberapa!"

"Oke. Ayo mulai bekerja. Hari ini kita punya topik baru yang menarik: XML. "

XML, serialisasi ke XML - 1

"XML adalah standar untuk merepresentasikan data yang dapat dibaca dengan mudah oleh manusia—dan bahkan lebih mudah oleh program. Berikut ini contoh file XML:"

XML
<data>
<owner first="Adam" last="Shelton">
<address>London</address>
</owner>
<cat name="Missy" age="15"/>
</data>

"Fondasi XML adalah tag. Tag adalah kata dalam kurung sudut (tanda lebih besar dari dan kurang dari). Ada tag pembuka dan penutup. Setiap tag pembuka memiliki tepat satu tag penutup yang sesuai. Tag pembuka dapat memiliki atribut. "

"Tag dapat disarangkan di dalam tag, sehingga membuat pohon elemen. Tag tingkat atas disebut root: ia memiliki tag anak, yang pada gilirannya memiliki tag anak sendiri."

"Ini beberapa contohnya:"

Menandai Keterangan
<data> _ _ Tag data pembuka
</data> _ _ Tag data penutup
nama kucing = " Missy " umur = " 15 "> Tag dengan atribut. Nilai atribut dibungkus dengan tanda kutip
<data>
<pemilik>
<nama kucing = "Nona"/>
</pemilik>
</data>
Tag bersarang.
< nama kucing = "Nona" umur = "15"  /> Tag penutup sendiri.
Tag semacam itu tidak memerlukan tag penutup.
Dan mereka tidak dapat memiliki tag anak.
<info>
Semua jenis informasi dapat masuk ke sini
</info>
Tag dapat berisi data teks
<info>
Segala jenis informasi
<data xxx = "yyy">
</data> <data 2xxx = "yyy"/> bisa ke sini </info>



Tag mungkin berisi data teks yang diselingi dengan tag lain.

"Kelihatannya mudah. ​​Tag macam apa yang ada?"

"Jenis apa pun. Tidak ada tag khusus. XML adalah bahasa untuk mendeskripsikan data apa pun. Orang-orang datang dengan tag yang memenuhi kebutuhan mereka dan menyetujui cara menggunakannya."

"Pada dasarnya, XML adalah cara untuk menulis data sebagai pohon elemen yang dapat dipahami oleh komputer."

"Kurasa aku mengerti sekarang. Omong-omong, aku punya pertanyaan."

"JSON digunakan untuk mengirim data dari browser ke server, tetapi di mana XML digunakan?"

"Di tempat yang sama di mana JSON digunakan: untuk menyimpan dan mengirim data."

"Oke, mari kita lanjutkan."

"Bayangkan Anda memiliki satu file XML bersama yang menyimpan data untuk program yang sedang ditulis oleh dua puluh orang. Masing-masing memiliki tag mereka sendiri, dan mereka dengan cepat mulai mengganggu satu sama lain."

"Untuk memastikan bahwa tag itu unik, prefiks diciptakan. Begini tampilannya:"

Tag Keterangan
< binatang :kucing> Tag kucing dengan awalan hewan
< hewan :kucing>
</ hewan: kucing>
< kebun binatang :kucing>
</ kebun binatang :kucing>
Dua tag kucing dengan awalan berbeda.
< hewan : kebun binatang kucing  : nama = "MX"> Tag kucing dengan awalan hewan . Atribut nama dengan awalan kebun binatang .

"Awalan juga disebut ruang nama. Jika kita menyebutnya ruang nama, maka deskripsi terakhir dalam tabel menjadi 'Tag kucing dengan ruang nama hewan. Atribut nama dengan ruang nama kebun binatang.'"

"Ngomong-ngomong, apakah Anda ingat bahwa di Java setiap kelas memiliki nama pendek dan nama unik panjang yang menyertakan nama paket, yang juga ditentukan saat mengimpor paket?"

"Ya."

"Nah, awalan juga memiliki nama panjang yang unik, dan juga ditentukan saat diimpor: "

Contoh
< data  xmlns:soap="http://cxf.apache.org/bindings/soap" >
 < sabun :item> 
< sabun :info/> 
</ sabun :item> 
</ data >

"' xml ns :soap' berarti ' XMLn ame s pace SOAP'"

"Anda juga dapat menyetel nama unik tag yang tidak memiliki awalan: "

Contoh
<data xmlns = "http://www.springframework.org/schema/beans" 
xmlns: soap = "http://cxf.apache.org/bindings/soap" 
xmlns:task = "http://www.springframework .org/schema/task" > 
< sabun :item> 
< sabun :info/> 
< tugas :info/> 
</ sabun :item> 
</data>

"'xmlns=…' menyetel namespace untuk awalan kosong. Dengan kata lain, menyetel namespace untuk tag tanpa awalan, seperti data pada contoh di atas."

"Anda dapat memiliki ruang nama dalam dokumen sebanyak yang Anda inginkan, tetapi masing-masing harus memiliki nama yang unik."

"Begitu. Mengapa ruang nama ini memiliki nama unik yang aneh?"

"Mereka biasanya menunjukkan URL yang mengarah ke dokumen yang menjelaskan namespace dan/atau tag XML-nya."

"Kamu membuang banyak informasi tentangku hari ini. Apa lagi yang ada?"

"Masih ada sedikit lagi."

"Pertama, XML memiliki header. Ini adalah baris khusus yang menjelaskan versi XML dan penyandian file. "Biasanya terlihat seperti ini:"

"Biasanya terlihat seperti ini:"

Contoh
<?xml  versi = "1.0"  penyandian = "UTF-8"?>
<data xmlns: sabun = "http://cxf.apache.org/bindings/soap">
<sabun:barang>
<sabun: info/>
</ sabun: item>
</data>

"Anda juga dapat menambahkan komentar ke XML. Untuk memulai komentar, gunakan '<!--'. Untuk mengakhirinya, gunakan '-->'."

Contoh
<?xml version = "1.0" encoding = "UTF-8"?>
<data xmlns:soap = "http://cxf.apache.org/bindings/soap">
<soap:item>
<!-- <soap:info/> -->
</soap:item>
<!-- This is also a comment  -->
</data>

"Aku mengerti sejauh ini."

"Simbol tertentu (< > " &) memiliki arti khusus dalam XML, sehingga tidak dapat digunakan di tempat lain. Kita bisa mengatasi batasan ini dengan escape sequence—kumpulan karakter yang digunakan untuk mewakili karakter/simbol lain. Ini beberapa di antaranya:"

Urutan pelarian Simbol yang digantikannya
& &
" «
< <
> >
' '

"Dan ini adalah contoh kode yang disematkan dalam XML:"

kode jawa kode Java dalam XML
if (a < b)
System.out.println("a is minimum");
<kode>
jika (a  <  b)
 System.out.println( " a minimal " );
</kode>

"Uh... Itu tidak terlihat bagus."

"Anda ingat bahwa di Java beberapa karakter juga diloloskan? Misalnya, "\". Dan urutan ini juga harus ditulis dua kali saat menulis ke sebuah String? Jadi ini adalah kejadian umum."

"OKE."

"Hanya itu yang saya miliki untuk hari ini."

"Hore. Akhirnya aku bisa istirahat."