Laajennettava merkintäkieli (XML) prolog on jokaisen XML -järjestelmän osa, joka on läsnä ennen järjestelmän juurielementtiä. Tämä on osa XML -järjestelmää, jossa XML -ohjelmointia koskevat tiedot on määritelty. XML -prologille ei ole standardia, mutta siinä on yleensä joitain samoja piirteitä järjestelmästä toiseen. Joissakin tapauksissa se voi olla jopa tyhjä, koska käyttäjä ei halua ilmoittaa mitään prolog -tietoja. Vaikka se olisi tyhjä, se on edelleen olemassa jokaisessa XML -järjestelmässä.
XML -prologia kutsutaan joskus XML -ilmoitukseksi. Se on läsnä kaikissa järjestelmissä, mutta sen käyttö on valinnaista. Kun sitä käytetään, se sisältää tyypillisesti versiotiedot, käsittelyohjeet, mahdolliset tekijän kommentit ja kentän asiakirjatyyppimäärityksille, joita yleisesti kutsutaan doctypeksi. Joskus se sisältää myös edelleenlähetystietoja HyperText Markup Language (HTML) -kielelle, jos käyttäjä haluaa yhdistää XML: n ja HTML: n.
XML -prologi esiintyy aina tiedoston ensimmäisessä osassa. Se ei koskaan seuraa toisen osan taakse. Ainoa poikkeus on, että tavutilausmerkki voi edeltää XML -prologia, kun käytetään tietyntyyppisiä merkkikoodauksia. Jos näin on, tavutilausmerkki ilmoittaa XML -järjestelmässä käytetyn merkkikoodauksen tyypin, yleensä Unicode -muunnosmuodossa (UTF). Käytettävissä on erilaisia merkkikoodauksia, mutta UTF-8 ja UTF-16 ovat yleisimpiä ja suositeltuja koodauksia. jos tavutilausmerkkiä ei ole määritetty, tietokoneet lukevat järjestelmän joko UTF-8- tai UTF-16-oletuskoodauksena.
Käsittelyohjeet määrittelevät, miten sovellus käsittelee XML -prologin ja -järjestelmän tietoja. Käsittelyohjeet voivat näkyä missä tahansa XML -järjestelmässä. Vain XML -prologin käsittelyohjeet katsotaan osaksi XML -ilmoitusta.
Kommentit, kuten käsittelytiedot, löytyvät mistä tahansa XML -järjestelmästä, ja vain prologin kommentit katsotaan osaksi XML -prologia. Kommentit ovat vapaamuotoisia tietojoukkoja, joilla ei ole vaikutusta järjestelmän komentosarjoihin ja jotka yleensä auttavat ohjelmoijaa muistamaan jotain tai kertomaan muille ohjelmoijille jotain. Ne sisältävät usein tietoja tekijästä, versionumeron tai muita tietoja, jotka tekijä haluaa välittää muille komentosarjojen muokkauksille. Lopuksi jotkut kirjoittajat sisältävät doctype. Tämä on suositeltavaa, mutta ei silti yleistä käytäntöä kirjoittajien keskuudessa.