Saya baru mengenal XML dan saya mencoba memahami dasar-dasarnya. Saya membaca baris di bawah ini dalam "Belajar XML", tetapi bagi saya masih belum jelas. Dapatkah seseorang mengarahkan saya ke buku atau situs web yang menjelaskan dasar-dasar ini dengan jelas?
Dari Belajar XML :
Deklarasi XML menjelaskan beberapa properti paling umum dari dokumen, memberi tahu pemroses XML bahwa ia memerlukan pengurai XML untuk menafsirkan dokumen ini.
Apa artinya ini?
Saya memahami xml version
bagian - baik doc dan pengguna doc harus "berbicara" dalam versi XML yang sama. Tapi bagaimana dengan encoding
bagiannya? Mengapa itu perlu?
Jawaban:
Untuk memahami atribut "encoding", Anda harus memahami perbedaan antara byte dan karakter .
Pikirkan byte sebagai angka antara 0 dan 255, sedangkan karakter adalah hal-hal seperti "a", "1" dan "Ä". Himpunan semua karakter yang tersedia disebut himpunan karakter .
Setiap karakter memiliki urutan satu atau lebih byte yang digunakan untuk mewakilinya; Namun, jumlah dan nilai byte yang tepat tergantung pada pengkodean yang digunakan dan ada banyak pengkodean yang berbeda.
Kebanyakan pengkodean didasarkan pada kumpulan karakter lama dan pengkodean yang disebut ASCII yang merupakan satu byte per karakter (sebenarnya, hanya 7 bit) dan berisi 128 karakter termasuk banyak karakter umum yang digunakan dalam bahasa Inggris AS.
Misalnya, berikut adalah 6 karakter dalam kumpulan karakter ASCII yang diwakili oleh nilai 60 hingga 65.
Dalam kumpulan ASCII lengkap, nilai terendah yang digunakan adalah nol dan tertinggi adalah 127 (keduanya adalah karakter kontrol tersembunyi).
Namun, begitu Anda mulai membutuhkan lebih banyak karakter daripada yang disediakan ASCII dasar (misalnya, huruf dengan aksen, simbol mata uang, simbol grafik, dll.), ASCII tidak sesuai dan Anda memerlukan sesuatu yang lebih ekstensif. Anda memerlukan lebih banyak karakter (kumpulan karakter yang berbeda) dan Anda memerlukan pengkodean yang berbeda karena 128 karakter tidak cukup untuk memuat semua karakter. Beberapa pengkodean menawarkan satu byte (256 karakter) atau hingga enam byte.
Seiring waktu, banyak penyandiaksaraan telah dibuat. Di dunia Windows, ada CP1252, atau ISO-8859-1, sedangkan pengguna Linux cenderung menyukai UTF-8. Java menggunakan UTF-16 secara native.
Satu urutan nilai byte untuk karakter dalam satu pengkodean mungkin mewakili karakter yang sama sekali berbeda dalam pengkodean lain, atau bahkan mungkin tidak valid.
Misalnya, dalam ISO 8859-1 , â diwakili oleh satu byte dari nilai
226
, sedangkan di UTF-8 itu adalah dua byte:195, 162
. Namun, dalam ISO 8859-1 ,195, 162
akan menjadi dua karakter, Ã, ¢ .Pikirkan XML bukan sebagai urutan karakter tetapi urutan byte.
Bayangkan sistem yang menerima XML melihat byte
195, 162
. Bagaimana cara mengetahui karakter apa ini?Agar sistem dapat menafsirkan byte tersebut sebagai karakter sebenarnya (sehingga menampilkan atau mengonversinya ke pengkodean lain), sistem perlu mengetahui pengkodean yang digunakan dalam XML.
Karena sebagian besar pengkodean umum kompatibel dengan ASCII, sejauh karakter alfabet dan simbol dasar digunakan, dalam kasus ini, deklarasi itu sendiri dapat lolos dengan hanya menggunakan karakter ASCII untuk mengatakan apa pengkodeannya. Dalam kasus lain, parser harus mencoba dan mencari tahu pengkodean deklarasi tersebut. Karena mengetahui deklarasi dimulai dengan
<?xml
itu, jauh lebih mudah untuk melakukan ini.Terakhir,
version
atribut menentukan versi XML, yang saat ini ada dua (lihat versi XML Wikipedia . Ada sedikit perbedaan di antara versinya, jadi pengurai XML perlu tahu apa yang ditangani. Dalam kebanyakan kasus (untuk bahasa Inggris) speaker), versi 1.0 sudah cukup.sumber
Deklarasi XML tidak diperlukan dalam semua dokumen XML; namun penulis dokumen XHTML sangat dianjurkan untuk menggunakan deklarasi XML di semua dokumen mereka. Deklarasi seperti itu diperlukan jika pengkodean karakter dokumen selain UTF-8 default atau UTF-16 dan tidak ada pengkodean yang ditentukan oleh protokol tingkat yang lebih tinggi. Berikut adalah contoh dokumen XHTML. Dalam contoh ini, deklarasi XML disertakan.
Silakan merujuk ke standar W3 untuk XML .
sumber
Ini adalah pembukaan opsional XML .
version="1.0"
berarti ini adalah standar XML yang sesuai dengan file iniencoding="utf-8"
berarti file tersebut dikodekan menggunakan encoding UTF-8 Unicodesumber
Lebih lanjut tentang Deklarasi XML di sini: http://msdn.microsoft.com/en-us/library/ms256048.aspx
sumber
Anda dapat memeriksa Tutorial XML ini dengan contoh.
W3C memberikan penjelasan tentang encoding:
sumber
Deklarasi XML di peta dokumen terdiri dari berikut ini:
Ini wajib. Meskipun jumlahnya mungkin berubah untuk versi XML mendatang, 1.0 adalah versi saat ini.
Deklarasi encoding,
Ini opsional. Jika digunakan, deklarasi encoding harus muncul segera setelah informasi versi dalam deklarasi XML, dan harus berisi nilai yang mewakili encoding karakter yang ada.
sumber