Prolog bahasa markup yang dapat diperluas (XML) adalah bagian dari setiap sistem XML yang ada sebelum elemen root sistem. Ini adalah bagian dari sistem XML di mana informasi tentang pemrograman XML didefinisikan. Tidak ada standar untuk prolog XML, tetapi biasanya akan menampilkan beberapa ciri yang sama dari satu sistem ke sistem berikutnya. Dalam beberapa kasus, bahkan mungkin kosong karena pengguna tidak ingin mendeklarasikan informasi prolog apa pun. Bahkan jika kosong, itu masih ada di setiap sistem XML.
Prolog XML kadang-kadang disebut sebagai deklarasi XML. Itu ada di setiap sistem, tetapi penggunaannya opsional. Ketika digunakan, biasanya berisi informasi versi, instruksi pemrosesan, komentar apa pun oleh penulis, dan bidang untuk definisi tipe dokumen, yang biasa disebut sebagai doctype. Terkadang juga akan berisi informasi penerusan ke HyperText Markup Language (HTML) jika pengguna ingin menggabungkan XML dan HTML.
Prolog XML akan selalu muncul di bagian pertama file. Itu tidak akan pernah mengikuti di belakang bagian lain. Satu-satunya pengecualian adalah bahwa tanda urutan byte dapat mendahului prolog XML ketika jenis pengkodean karakter tertentu digunakan. Jika demikian, tanda urutan byte menyatakan jenis pengkodean karakter yang digunakan dalam sistem XML, biasanya dengan format transformasi Unicode (UTF). Ada berbagai pengkodean karakter yang tersedia, tetapi UTF-8 dan UTF-16 adalah pengkodean yang paling umum dan direkomendasikan; jika tidak ada tanda urutan byte yang ditentukan, komputer akan membaca sistem sebagai UTF-8 atau UTF-16, pengkodean default.
Instruksi pemrosesan menentukan bagaimana aplikasi akan memproses informasi dalam prolog dan sistem XML. Instruksi pemrosesan dapat muncul di mana saja dalam sistem XML. Hanya instruksi pemrosesan dalam prolog XML yang akan dianggap sebagai bagian dari deklarasi XML.
Komentar, seperti informasi pemrosesan, dapat ditemukan di mana saja dalam sistem XML, dan hanya komentar di prolog yang dianggap sebagai bagian dari prolog XML. Komentar adalah kumpulan data teks bebas yang tidak memiliki pengaruh pada skrip di dalam sistem dan biasanya ada untuk membantu pemrogram mengingat sesuatu atau untuk memberi tahu pemrogram lain sesuatu. Mereka sering kali menyertakan informasi tentang penulis, nomor versi, atau informasi lain yang ingin disampaikan penulis kepada editor skrip lainnya. Terakhir, beberapa penulis akan menyertakan doctype. Ini direkomendasikan tetapi masih bukan praktik umum di antara penulis.