Untuk saat ini, mari gunakan "Notepad" untuk membuat file XML. Mari kita lihat file XML terlebih dahulu:
Contoh 1
〈?xml version="1.0" coding="gb2312" ?〉
〈Referensi〉
<buku>
〈Nama〉Pengantar XML 〈/Nama〉
〈Penulis〉Zhang San〈/Penulis〉
〈Satuan mata uang harga = "RMB"〉20,00〈/harga〉
</buku>
<buku>
<nama>Sintaks XML </nama>
〈!--Buku ini akan segera diterbitkan--〉
〈Penulis〉Li Si〈/Penulis〉
〈Satuan mata uang harga = "RMB"〉18.00〈/harga〉
</buku>
〈/Bahan Referensi〉
Ini adalah file XML biasa. Setelah diedit, file tersebut disimpan sebagai file dengan akhiran .xml. Kita dapat membagi file ini menjadi dua bagian besar: file pembukaan (Prolog) dan badan file. Baris pertama dalam file ini adalah file pembukaan. Baris ini adalah sesuatu yang harus dideklarasikan oleh file XML, dan juga harus ditempatkan di baris pertama file XML. Baris ini terutama memberi tahu parser XML cara kerjanya. Diantaranya, versi adalah nomor versi standar yang digunakan oleh file XML ini, yang diperlukan; pengkodean menentukan jenis karakter yang digunakan dalam file XML ini, yang dapat dihilangkan. Jika Anda menghilangkan pernyataan ini, kode karakter berikut harus berupa kode Karakter Unicode (disarankan untuk tidak menghilangkannya). Karena kita menggunakan kode karakter GB2312 dalam contoh ini, pernyataan pengkodean tidak dapat dihilangkan. Ada juga beberapa pernyataan deklarasi di pembukaan file, yang akan kami perkenalkan nanti.
Sisa file milik badan file, tempat informasi konten file XML disimpan. Kita dapat melihat bahwa bagian utama file terdiri dari tag kontrol awal <reference> dan akhir </reference>. Ini disebut "elemen root" dari file XML; tepat di bawah elemen root. "Sub-elemen"; di bawah "Buku" ada sub-elemen seperti "Nama", "Penulis" dan "Harga". Unit mata uang adalah "atribut" dalam elemen <harga>, dan "RMB" adalah "nilai atribut".
〈!--Buku ini akan segera diterbitkan--〉 adalah komentar seperti HTML. Dalam file XML, bagian komentar ditempatkan di antara tag "〈!--" dan "--〉".
Seperti yang Anda lihat, file XML cukup sederhana. Seperti HTML, file XML juga terdiri dari serangkaian tag. Namun, tag dalam file XML adalah tag khusus kami sendiri dan memiliki arti yang jelas.
Setelah mendapatkan gambaran awal tentang file XML, mari kita bahas tentang sintaks file XML secara detail. Sebelum berbicara tentang grammar, kita harus memahami sebuah konsep penting yaitu XML Parse.
1. Parser XML
Fungsi utama parser adalah memeriksa apakah terdapat kesalahan struktural pada file XML, menghapus tag pada file XML, dan membacakan konten yang benar untuk diproses oleh program aplikasi berikutnya. XML adalah bahasa markup yang digunakan untuk menyusun informasi file. Spesifikasi XML memiliki aturan rinci tentang cara menandai struktur file. Parser adalah perangkat lunak yang ditulis berdasarkan aturan ini (kebanyakan ditulis dalam Java). Sama seperti HTML, di dalam browser juga harus terdapat parser HTML agar browser dapat “membaca” berbagai halaman web yang tersusun dari tag-tag HTML dan menampilkannya di hadapan kita. Jika ada tag yang tidak dapat dibaca oleh parser HTML browser, pesan kesalahan akan dikembalikan kepada kami.
Karena tag HTML saat ini sebenarnya cukup membingungkan dan terdapat banyak tag non-standar (beberapa halaman web dapat ditampilkan secara normal dengan IE, tetapi tidak dengan Netscape Navigator), perancang XML telah secara ketat menetapkan sintaks XML dari sejak awal dan strukturnya, file XML yang kami tulis harus mematuhi peraturan ini, jika tidak, parser XML akan menampilkan pesan kesalahan tanpa ampun.
Ada dua jenis file XML, satu adalah file XML Berbentuk Baik dan yang lainnya adalah file XML Validasi.
Jika file XML memenuhi aturan tertentu yang relevan dalam spesifikasi XML dan tidak menggunakan DTD (definisi format dokumen - detailnya nanti), dokumen tersebut dapat disebut Berbentuk Baik. Dan jika file XML Berbentuk Baik, DTD digunakan dengan benar, dan sintaksis di DTD benar, maka file tersebut divalidasi. Sesuai dengan dua file XML, ada dua parser XML, satu adalah parser Berbentuk Baik dan yang lainnya adalah parser Validasi. IE 5 menyertakan parser Validasi, yang juga dapat digunakan untuk mengurai file XML yang Dibentuk dengan Baik.
Periksa apakah memenuhi ketentuan Well-Formed. Kita bisa membuka file XML pertama yang baru saja kita edit dengan browser IE 5 atau lebih tinggi.
Anda mungkin bertanya mengapa tampilan di browser sama dengan file sumber saya? Benar sekali, karena untuk file XML kita hanya mengetahui isinya saja, dan bentuk tampilannya dilengkapi dengan CSS atau XSL. Di sini, kami belum mendefinisikan file CSS atau XSL-nya untuk file XML ini, sehingga ditampilkan dalam bentuk aslinya. Padahal untuk pertukaran data elektronik hanya diperlukan file XML. Jika kita ingin menampilkannya dalam bentuk tertentu, kita harus mengedit file CSS atau XSL (masalah ini akan dibahas nanti).
2. File XML yang Dibentuk dengan Baik
Kita tahu bahwa XML harus dalam Bentuk yang Baik agar dapat diurai dengan benar oleh parser dan ditampilkan di browser. Jadi apa itu file XML yang Dibentuk dengan Baik? Ada pedoman utama berikut, yang harus dipenuhi ketika kita membuat file XML.
Pertama, baris pertama file XML harus menyatakan bahwa file tersebut adalah file XML dan versi spesifikasi XML yang digunakannya. Tidak boleh ada elemen atau komentar lain di depan file.
Kedua, hanya ada satu elemen root dalam file XML. Dalam contoh pertama kita, 〈Referensi〉... 〈/Referensi〉 adalah elemen akar dari file XML ini.
Ketiga, tag dalam file XML harus ditutup dengan benar, yaitu tag kontrol dalam file XML harus memiliki tag penutup yang sesuai. Misalnya: tag <name> harus memiliki tag penutup </name> yang sesuai. Berbeda dengan HTML, tag penutup pada beberapa tag bersifat opsional. Jika Anda menemukan tag unit mandiri dalam file XML, yang mirip dengan <img src=.....> dalam HTML tanpa tag akhir, XML menyebutnya sebagai "elemen kosong" dan Anda harus menggunakan metode penulisan adalah: 〈nama elemen kosong/〉. Jika elemen berisi atribut, cara penulisannya adalah: 〈nama elemen kosong nama atribut = "nilai atribut"/〉.
Keempat, tanda tidak boleh saling bersilangan. Pada file HTML sebelumnya, Anda dapat menulis seperti ini:
〈B〉〈H〉XXXXXXX〈/B〉〈/H〉,
ada area yang tumpang tindih antara tag 〈B〉 dan 〈H〉, namun dalam XML, tag tersebut sangat Staggered penulisan merek tersebut dilarang.
Kelima, nilai atribut harus diapit tanda " ". Seperti "1.0", "gb2312", "RMB" pada contoh pertama. Semuanya diapit oleh " " dan tidak boleh dilewatkan.
Keenam, tag kontrol bahasa Inggris, instruksi, dan nama atribut harus peka huruf besar-kecil. Berbeda dengan HTML, dalam HTML, tag seperti <B> dan <b> memiliki arti yang sama, sedangkan dalam XML, tag seperti <name>, <NAME> atau <Name> berbeda.
Ketujuh, kita tahu bahwa dalam file HTML, jika kita ingin browser menampilkan apa yang kita masukan secara utuh, kita bisa meletakkannya di 〈pre〉〈/pre〉 atau 〈xmp〉〈/xmp〉 Tandai di tengah. Hal ini penting bagi kita untuk membuat halaman web pengajaran HTML, karena kode sumber HTML harus ditampilkan di halaman web. Dalam XML, untuk mencapai fungsi seperti itu, tag CDATA harus digunakan. Informasi dalam tag CDATA diteruskan secara utuh ke aplikasi oleh parser, dan tag kontrol apa pun di segmen informasi tidak diurai. Area CDATA ditandai dengan: "<![CDATA[" sebagai tanda awal dan ">>" sebagai tanda akhir. Misalnya: Dalam kode sumber di Contoh 2, kecuali simbol "<![CDATA[" dan ">>", sisa pengurai konten akan diserahkan ke aplikasi hilir secara utuh, meskipun ada yang kosong di awal dan akhir area CDATA dan karakter baris baru, dll., juga akan ditransfer (perhatikan bahwa CDATA adalah karakter huruf besar).
Contoh 2
〈![CDATA[terbang xml〉〉〉〉〉,:-)
ooo〈〈〈〈〈〈
>〉
Kedelapan, XML menangani karakter spasi secara berbeda dari HTML. Standar HTML menetapkan bahwa tidak peduli berapa banyak blanko yang ada, blanko tersebut akan diperlakukan sebagai satu blank; sedangkan dalam XML, ditetapkan bahwa parser harus dengan setia menyerahkan semua blanko selain tag ke aplikasi hilir untuk diproses. Dengan cara ini, terkadang kita harus meninggalkan kebiasaan indentasi saat menulis file HTML, karena parser juga harus memproses spasi yang diindentasi. Seperti:
〈Penulis〉Zhang San〈/Penulis〉
dan 〈penulis〉
Zhang San 〈/Penulis〉
di atasberbeda untuk parser (yang terakhir mencakup selain karakter Zhang San dalam tag 〈Penulis〉〈/Penulis〉, juga mencakup dua tanda baris baru dan karakter sebelum "Zhang San " simbol lekukan teks). Oleh karena itu, parser akan mendapatkan hasil pemrosesan yang berbeda setelah menghilangkan tanda dan meneruskan informasi ke aplikasi.
Jika kita ingin memberi tahu program XML dengan jelas bahwa spasi dalam tag memiliki arti yang jelas dan tidak boleh dihilangkan begitu saja (misalnya, dalam beberapa puisi, spasi memiliki arti tertentu), kita dapat menambahkan atribut bawaan XML - xml - ke tag. :space . Misalnya (perhatikan kasus nama dan nilai atribut):
〈puisi xml:space="preserver"〉
Tanah air! tanah air!
Tanah airku!
〈/Puisi〉
Selain itu, dalam file XML, jika karakter khusus pada Tabel 1 ingin digunakan, karakter tersebut harus diganti dengan simbol yang sesuai.
Tabel 1
Simbol pengganti karakter khusus && &
<&itu;
>>
" "
' '
Untuk membuat ringkasan di sini: file XML yang memenuhi persyaratan di atas adalah file XML Berbentuk Baik. Ini adalah persyaratan paling dasar untuk menulis file XML. Anda dapat melihat bahwa sintaks file XML jauh lebih ketat dibandingkan HTML. Karena peraturan yang ketat seperti itu, jauh lebih mudah bagi insinyur perangkat lunak untuk menulis parser XML. Berbeda dengan menulis parser untuk bahasa HTML, mereka harus bekerja keras untuk beradaptasi dengan metode penulisan halaman web yang berbeda dan meningkatkan kemampuan adaptasi browser mereka sendiri. Sebenarnya ini juga merupakan hal yang baik bagi kita para pemula. Lakukan saja sesuka Anda, dan tidak perlu khawatir tentang cara menulis berbagai HTML seperti sebelumnya.
Kami melihat bahwa dalam file XML, sebagian besar tag khusus digunakan. Namun coba pikirkan, jika dua perusahaan A dan B dalam industri yang sama ingin bertukar data satu sama lain menggunakan file XML, perusahaan A menggunakan tag <price> untuk mewakili informasi harga produknya, sedangkan perusahaan B dapat menggunakan <selling price> untuk mewakili informasi. Jika aplikasi XML membaca informasi dalam file XML masing-masing, jika hanya mengetahui bahwa tag <price> mewakili informasi harga, maka informasi harga perusahaan B tidak dapat dibaca, dan akan terjadi kesalahan. Tentunya bagi entitas yang ingin menggunakan file XML untuk bertukar informasi, harus ada kesepakatan di antara mereka - yaitu tag mana yang dapat digunakan untuk menulis file XML, sub-elemen mana yang dapat dimasukkan ke dalam elemen induk, urutan dalam di mana setiap elemen muncul, dan Cara mendefinisikan properti, dll. Dengan cara ini mereka dapat berkomunikasi dengan lancar saat bertukar data dengan XML. Konvensi ini disebut DTD (Document Type Definition, definisi format dokumen). Anda dapat menganggap DTD sebagai templat untuk menulis file XML. Untuk pertukaran data XML antara industri yang sama, akan lebih mudah jika memiliki DTD tetap. Misalnya, jika halaman web XML pusat perbelanjaan elektronik besar di Internet semuanya mengikuti DTD yang sama, maka kita dapat dengan mudah menulis aplikasi berdasarkan DTD ini untuk secara otomatis menangkap hal-hal yang kita minati secara online. Faktanya, sudah ada beberapa DTD yang terdefinisi dengan baik, seperti MathML, SMIL, dll yang disebutkan sebelumnya.
Jika file XML Berbentuk Baik dan dibuat dengan benar berdasarkan DTD, maka file XML tersebut disebut: Memvalidasi file XML. Parser yang sesuai disebut: Validating Parser.