Bahasa Markup yang Diperluas (XML) adalah sebuah bahasa markup dan format file untuk menyimpan, mengirimkan, dan merekonstruksi data. Ia menentukan seperangkat aturan untuk mengkodekan dokumen dalam format yang dapat dibaca oleh manusia maupun oleh mesin. Spesifikasi XML 1.0 dari World Wide Web Consortium tahun 1998 dan beberapa spesifikasi terkait lainnya - semuanya adalah standar terbuka dan gratis - mendefinisikan XML.
Tujuan desain XML menekankan pada kesederhanaan, keumuman, dan kegunaan di seluruh Internet. Ini adalah format data teks dengan dukungan kuat melalui Unicode untuk berbagai bahasa manusia. Meskipun desain XML berfokus pada dokumen, bahasa ini banyak digunakan untuk representasi struktur data sembarang, seperti yang digunakan dalam layanan web.
Beberapa sistem skema ada untuk membantu dalam definisi bahasa berbasis XML, sementara para programmer telah mengembangkan banyak antarmuka pemrograman aplikasi (API) untuk membantu dalam pemrosesan data XML.
Gambaran
Tujuan utama XML adalah serialisasi, yaitu menyimpan, mentransmisikan, dan merekonstruksi data sembarang. Agar dua sistem yang berbeda dapat bertukar informasi, mereka perlu sepakat tentang format file. XML mengstandarisasi proses ini. Oleh karena itu, XML dapat diibaratkan sebagai bahasa universal untuk merepresentasikan informasi.
Sebagai bahasa markup, XML memberi label, mengategorikan, dan mengorganisir informasi secara struktural. Tag-tag XML merepresentasikan struktur data dan mengandung metadata. Yang berada di dalam tag adalah data, yang dienkripsi sesuai dengan spesifikasi standar XML. Skema XML tambahan (XSD) mendefinisikan metadata yang diperlukan untuk menafsirkan dan memvalidasi XML. Sebuah dokumen XML yang mengikuti aturan dasar XML disebut "well-formed"; yang mengikuti skemanya disebut "valid".
IETF RFC 7303 (yang menggantikan RFC 3023 yang lebih lama), memberikan aturan untuk konstruksi tipe media yang digunakan dalam pesan XML. Ini mendefinisikan tiga tipe media: application/xml (text/xml adalah alias), application/xml-external-parsed-entity (text/xml-external-parsed-entity adalah alias), dan application/xml-dtd. Mereka digunakan untuk mentransmisikan file XML mentah tanpa mengekspos semantik internalnya. RFC 7303 juga merekomendasikan bahwa bahasa berbasis XML diberikan tipe media yang diakhiri dengan +xml, misalnya, image/svg+xml untuk SVG.
Pedoman lebih lanjut untuk penggunaan XML dalam konteks jaringan tertera dalam RFC 3470, juga dikenal sebagai IETF BCP 70, dokumen yang mencakup banyak aspek perancangan dan implementasi bahasa berbasis XML.
XML telah menjadi umum digunakan untuk pertukaran data melalui Internet. Ratusan format dokumen yang menggunakan sintaks XML telah dikembangkan, termasuk RSS, Atom, Office Open XML, OpenDocument, SVG, COLLADA, dan XHTML. XML juga menyediakan bahasa dasar untuk protokol komunikasi seperti SOAP dan XMPP. Ini adalah salah satu format pertukaran pesan yang digunakan dalam teknik pemrograman Asynchronous JavaScript and XML (AJAX).
Banyak standar data industri, seperti Health Level 7, OpenTravel Alliance, FpML, MISMO, dan National Information Exchange Model didasarkan pada XML dan fitur kaya dari spesifikasi skema XML. Dalam penerbitan, Arsitektur Penyortiran Informasi Darwin adalah standar data industri XML. XML digunakan secara ekstensif untuk mendukung berbagai format penerbitan.
Salah satu aplikasi XML dalam ilmu pengetahuan adalah representasi informasi operasional meteorologi berdasarkan standar IWXXM.
Terminologi Kunci
Materi dalam bagian ini didasarkan pada Spesifikasi XML. Ini bukan daftar lengkap dari semua konstruksi yang muncul dalam XML; ini memberikan pengantar ke konstruksi kunci yang paling sering ditemui dalam penggunaan sehari-hari.
Karakter
Sebuah dokumen XML adalah serangkaian karakter. Setiap karakter Unicode legal (kecuali Null) dapat muncul dalam dokumen XML (meskipun beberapa tidak disarankan).
Processor dan aplikasi
Pemroses menganalisis markup dan meneruskan informasi terstruktur ke aplikasi. Spesifikasi menempatkan persyaratan pada apa yang harus dilakukan dan tidak dilakukan oleh pemroses XML, tetapi aplikasi berada di luar cakupannya. Pemroses (seperti yang disebut dalam spesifikasi) sering disebut secara kolokial sebagai parser XML.
Markup dan konten
Karakter yang membentuk dokumen XML dibagi menjadi markup dan konten, yang dapat dibedakan dengan penerapan aturan sintaksis sederhana. Umumnya, string yang merupakan markup entah dimulai dengan karakter < dan berakhir dengan >, atau mereka dimulai dengan karakter & dan berakhir dengan;. String karakter yang bukan markup adalah konten. Namun, dalam sebuah bagian CDATA, pembatas
diklasifikasikan sebagai markup, sementara teks di antara mereka diklasifikasikan sebagai konten. Selain itu, spasi sebelum dan setelah elemen terluar diklasifikasikan sebagai markup.
Tag
Tag adalah konstruksi markup yang dimulai dengan < dan berakhir dengan >. Ada tiga jenis tag:
- tag awal, seperti
<section>; tag akhir, seperti </section>;- tag elemen kosong, seperti
<line-break />.
Elemen
Sebuah elemen adalah komponen dokumen logis yang entah dimulai dengan tag awal dan berakhir dengan tag akhir yang cocok atau hanya terdiri dari tag elemen kosong. Karakter di antara tag awal dan tag akhir, jika ada, adalah konten elemen, dan mungkin berisi markup, termasuk elemen lain, yang disebut elemen anak. Contoh adalah Hello, dunia! <greeting>Hello, world!</greeting>. Contoh lain adalah <line-break />.
Atribut
Atribut adalah konstruksi markup yang terdiri dari pasangan nama-nilai yang ada dalam tag awal atau tag elemen kosong. Contoh adalah <img src="madonna.jpg" alt="Madonna" />, di mana nama atribut adalah "src" dan "alt," dan nilainya adalah <step number="3">Connect A to B.</step> masing-masing. Contoh lain adalah Hubungkan A ke B., di mana nama atribut adalah "number" dan nilainya adalah "3". Atribut XML hanya dapat memiliki satu nilai dan setiap atribut hanya dapat muncul sekali pada setiap elemen. Dalam situasi umum di mana daftar nilai ganda diinginkan, ini harus dilakukan dengan menyandikan daftar ke dalam atribut XML yang terbentuk dengan baik dengan beberapa format di luar yang XML tentukan sendiri. Biasanya ini adalah daftar yang dipisahkan koma atau titik koma atau, jika nilai individual diketahui tidak mengandung spasi, daftar yang dipisahkan spasi dapat digunakan. Contoh <div class="inner greeting-box">Welcome!</div> dengan spasi sebagai pemisahnya adalah
, di mana atribut "class" memiliki nilai "inner greeting-box" dan juga menunjukkan dua nama kelas CSS "inner" dan "greeting-box".
Pernyataan XML
Dokumen XML dapat dimulai dengan pernyataan XML yang menggambarkan beberapa informasi tentang diri mereka sendiri. Contoh adalah <?xml version="1.0" encoding="UTF-8"?>.
Dokumen XML terdiri sepenuhnya dari karakter-karakter dari repertoar Unicode. Kecuali untuk sejumlah kecil karakter kontrol yang secara khusus dikecualikan, setiap karakter yang didefinisikan oleh Unicode dapat muncul dalam konten dokumen XML.
XML menyertakan fasilitas untuk mengidentifikasi pengkodean karakter Unicode yang membentuk dokumen, dan untuk mengekspresikan karakter-karakter yang, karena satu atau lain alasan, tidak dapat digunakan secara langsung.
Karakter-karakter yang valid
- Titik kode Unicode dalam rentang berikut ini valid dalam dokumen XML 1.0:
- U+0009 (Tab Horizontal), U+000A (Line Feed), U+000D (Carriage Return): ini adalah satu-satunya kontrol C0 yang diterima dalam XML 1.0;
- U+0020 - U+D7FF, U+E000 - U+FFFD: ini mengesampingkan beberapa non karakter di BMP (semua surrogate, U+FFFE dan U+FFFF dilarang);
- U+10000 - U+10FFFF: ini mencakup semua titik kode di bidang tambahan, termasuk non karakter.
XML 1.1 memperluas kumpulan karakter yang diizinkan untuk mencakup semua yang disebutkan di atas, ditambah karakter-karakter yang tersisa dalam rentang U+0001 - U+001F. Pada saat yang sama, namun, itu membatasi penggunaan karakter kontrol C0 dan C1 selain dari U+0009 (Tab Horizontal), U+000A (Line Feed), U+000D (Carriage Return), dan U+0085 (Next Line) dengan mengharuskan mereka ditulis dalam bentuk yang terlepas (misalnya U+0001 harus ditulis sebagai atau setara). Dalam kasus karakter C1, pembatasan ini merupakan ketidakcocokan mundur; ini diperkenalkan untuk memungkinkan kesalahan enkoding umum dapat dideteksi.
Titik kode U+0000 (Nol) adalah satu-satunya karakter yang tidak diizinkan dalam dokumen XML 1.1 manapun.
Deteksi pengkodean
Set karakter Unicode dapat dienkoding menjadi byte untuk penyimpanan atau transmisi dalam berbagai cara yang berbeda, disebut "pengkodean". Unicode itu sendiri mendefinisikan pengkodean yang mencakup seluruh repertoar; yang terkenal termasuk UTF-8 (yang disarankan oleh standar XML untuk digunakan, tanpa BOM) dan UTF-16. Ada banyak pengkodean teks lain yang mendahului Unicode, seperti ASCII dan berbagai ISO/IEC 8859; repertoar karakter mereka dalam setiap kasus adalah subset dari set karakter Unicode.
XML memungkinkan penggunaan salah satu pengkodean yang ditentukan oleh Unicode dan pengkodean lainnya yang karakter-karakternya juga muncul dalam Unicode. XML juga menyediakan mekanisme di mana pemroses XML dapat dengan andal, tanpa pengetahuan sebelumnya, menentukan pengkodean yang sedang digunakan. Pengkodean selain UTF-8 dan UTF-16 tidak selalu dikenali oleh setiap parser XML (dan dalam beberapa kasus bahkan bukan UTF-16, meskipun standar mewajibkan itu juga dikenali).
XML menyediakan fasilitas pelarian untuk menyertakan karakter-karakter yang bermasalah untuk disertakan secara langsung. Misalnya:
Karakter "<" dan "&" adalah penanda sintaks kunci dan mungkin tidak pernah muncul dalam konten di luar bagian CDATA. Memang diperbolehkan, namun tidak disarankan, menggunakan "<" dalam nilai entitas XML.
Beberapa pengkodean karakter hanya mendukung subset Unicode. Misalnya, sah untuk mengkodekan dokumen XML dalam ASCII, tetapi ASCII tidak memiliki titik kode untuk karakter Unicode seperti "é".
Mungkin tidak mungkin untuk mengetik karakter tersebut di mesin penulis.
Beberapa karakter memiliki glif yang tidak dapat dibedakan secara visual dari karakter lain, seperti spasi non-breaking ( ) " " dan spasi ( ) " ", dan huruf besar Kiril (А) "А" dan huruf besar Latin (A) "A".
Ada lima entitas yang telah ditetapkan:
<represents "<";>represents ">";&represents "&";'represents "'";"represents '"'.
Semua karakter Unicode yang diizinkan dapat direpresentasikan dengan referensi karakter numerik. Pertimbangkan karakter Cina "中", yang kode numeriknya dalam Unicode adalah 4E2D heksadesimal, atau 20.013 desimal. Pengguna yang tidak memiliki metode untuk memasukkan karakter ini masih dapat menyisipkannya dalam dokumen XML yang dienkripsi baik sebagai 中 atau 中. Demikian pula, string "I <3 Jörg" dapat dienkripsi untuk disertakan dalam dokumen XML sebagai I <3 Jörg.
� tidak diizinkan karena karakter nol adalah salah satu karakter kontrol yang dikecualikan dari XML, bahkan saat menggunakan referensi karakter numerik. Mekanisme enkripsi alternatif seperti Base64 diperlukan untuk merepresentasikan karakter-karakter tersebut.
Komentar
Komentar dapat muncul di mana saja dalam sebuah dokumen di luar markup lain. Komentar tidak boleh muncul sebelum deklarasi XML. Komentar dimulai dengan <!-- dan diakhiri dengan -->. Untuk kompatibilitas dengan SGML, string "--" (double-hyphen) tidak diizinkan di dalam komentar; ini berarti komentar tidak dapat bersarang. Tanda & tidak memiliki arti khusus dalam komentar, sehingga referensi entitas dan karakter tidak dikenali sebagai entitas, dan tidak ada cara untuk merepresentasikan karakter di luar set karakter dari enkoding dokumen.
Contoh komentar yang valid:<!--no need to escape <code> & such in comments-->
Dukungan XML 1.0 (Edisi Kelima) dan XML 1.1 mendukung penggunaan langsung hampir semua karakter Unicode dalam nama elemen, atribut, komentar, data karakter, dan instruksi pemrosesan (kecuali yang memiliki makna simbolis khusus dalam XML itu sendiri, seperti tanda kurang dari, "<"). Berikut adalah dokumen XML yang baik berisi karakter Cina, Armenia, dan Cyrillic:
<?xml version="1.0" encoding="UTF-8"?> <俄语 լեզու="ռուսերեն">данные</俄语>
Artikel utama: Dokumen yang Terbentuk dengan Baik Spesifikasi XML mendefinisikan dokumen XML sebagai teks yang terbentuk dengan baik, yang berarti bahwa dokumen tersebut memenuhi daftar aturan sintaks yang disediakan dalam spesifikasi. Beberapa poin kunci meliputi:
- Dokumen hanya berisi karakter Unicode legal yang terkode dengan benar.
- Tidak ada karakter sintaks khusus seperti & lt; dan & amp; muncul kecuali saat melakukan peran pemisahan markup mereka.
- Tag awal, tag akhir, dan tag elemen kosong yang membatasi elemen tertata dengan benar, tanpa ada yang hilang dan tidak tumpang tindih.
- Nama tag bersifat case-sensitive; tag awal dan tag akhir harus sesuai secara tepat.
- Nama tag tidak boleh mengandung karakter !"#$%&'()*+, /; <=>? @ [\] ^ `{|} ~, atau karakter spasi, dan tidak boleh dimulai dengan "-", ".", atau digit numerik.
- Sebuah elemen akar tunggal berisi semua elemen lainnya.
Definisi dokumen XML mengecualikan teks yang mengandung pelanggaran aturan yang terbentuk dengan baik; mereka sederhana tidak XML. Sebuah prosesor XML yang menemui pelanggaran tersebut diharuskan untuk melaporkan kesalahan tersebut dan menghentikan pemrosesan normal. Kebijakan ini, kadang-kadang disebut sebagai "penanganan kesalahan draconian", berbeda secara nyata dengan perilaku program yang memproses HTML, yang dirancang untuk menghasilkan hasil yang masuk akal bahkan dalam kehadiran kesalahan markup yang parah. Kebijakan XML di area ini telah dikritik sebagai pelanggaran hukum Postel ("Berkonservasi dalam apa yang Anda kirim; bersikap liberal dalam apa yang Anda terima"). Spesifikasi XML mendefinisikan dokumen XML yang valid sebagai dokumen XML yang terbentuk dengan baik yang juga sesuai dengan aturan Tipe Dokumen (DTD).
Skema dan validasi
Selain harus terbentuk dengan baik, dokumen XML juga dapat dianggap valid. Ini berarti bahwa dokumen tersebut berisi referensi ke Definisi Jenis Dokumen (DTD), dan elemen dan atributnya dideklarasikan dalam DTD tersebut dan mengikuti aturan tata bahasa yang DTD tetapkan.
Pengolah XML diklasifikasikan sebagai pengolah yang validasi atau non-validasi tergantung pada apakah mereka memeriksa dokumen XML untuk validitas. Sebuah pengolah yang menemukan kesalahan validitas harus dapat melaporkannya, namun dapat melanjutkan pemrosesan normal.
Sebuah DTD adalah contoh dari sebuah skema atau tata bahasa. Sejak publikasi awal XML 1.0, telah dilakukan pekerjaan yang substansial di bidang bahasa skema untuk XML. Bahasa-bahasa skema tersebut biasanya membatasi himpunan elemen yang dapat digunakan dalam sebuah dokumen, atribut mana yang dapat diterapkan pada mereka, urutan di mana mereka dapat muncul, dan hubungan induk/anak yang diperbolehkan.
Definisi jenis dokumen
Bahasa skema tertua untuk XML adalah definisi jenis dokumen (DTD), yang diwarisi dari SGML.
DTD memiliki beberapa keuntungan berikut:
- Dukungan DTD sangat luas karena termasuk dalam standar XML 1.0.
- DTD ringkas dibandingkan dengan bahasa skema berbasis elemen dan karena itu menyajikan informasi lebih banyak dalam satu layar.DTD memungkinkan deklarasi set entitas publik standar untuk menerbitkan karakter.
- DTD mendefinisikan jenis dokumen bukan jenis yang digunakan oleh namespace, sehingga mengelompokkan semua batasan untuk dokumen dalam satu kumpulan.
DTD memiliki beberapa keterbatasan berikut:
Mereka tidak memiliki dukungan eksplisit untuk fitur-fitur baru XML, terutama namespace.
Mereka kurang ekspresif. DTD XML lebih sederhana daripada DTD SGML dan ada struktur tertentu yang tidak dapat diungkapkan dengan tata bahasa biasa. DTD hanya mendukung tipe data dasar.
Mereka kurang mudah dibaca. Para perancang DTD umumnya sering menggunakan entitas parameter (yang pada dasarnya berperilaku seperti makro teks), yang membuatnya lebih mudah untuk mendefinisikan tata bahasa yang kompleks, namun dengan biaya kejelasan.
Mereka menggunakan sintaks berdasarkan sintaks ekspresi reguler, diwarisi dari SGML, untuk menggambarkan skema. API XML tipikal seperti SAX tidak mencoba menawarkan representasi terstruktur dari sintaks kepada aplikasi, sehingga lebih sulit diakses oleh para programmer daripada sintaks berbasis elemen mungkin.
Dua fitur unik yang membedakan DTD dari jenis skema lain adalah dukungan sintaksis untuk menyisipkan DTD dalam dokumen XML dan untuk mendefinisikan entitas, yang merupakan fragmen teks atau markup sembarang yang dimasukkan oleh pemroses XML dalam DTD itu sendiri dan dalam dokumen XML di mana pun mereka dirujuk, seperti karakter lepas.
Teknologi DTD masih digunakan dalam banyak aplikasi karena ketersebarannya.
Schema XML yang lebih baru, yang dijelaskan oleh W3C sebagai penerus DTD, adalah XML Schema, sering disebut dengan akronim untuk instance XML Schema, XSD (XML Schema Definition). XSD jauh lebih kuat daripada DTD dalam menggambarkan bahasa XML. Mereka menggunakan sistem pengetikan data yang kaya dan memungkinkan untuk lebih banyak batasan terperinci pada struktur logis dokumen XML. XSD juga menggunakan format berbasis XML, yang membuatnya memungkinkan untuk menggunakan alat XML biasa untuk membantu memprosesnya. elemen xs:schema yang mendefinisikan skema:
<?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"></xs:schema>



Posting Komentar