Mikä on OBML-tiedosto?
OBML (Opera Binary Markup Language) -tiedosto on Opera Mini -mobiiliselaimen tallentama verkkosivun offline-versio. Se on itsenäinen, kompakti versio HTML-tiedostoista, joka sisältää kaikki sivun elementit, jotka voidaan näyttää tietyillä laitteilla offline-tilassa. OBML-tiedostomuoto on päivitetty useisiin versioihin, joissa OBML15 ja OBML16 ovat käytössä yleisesti. Tärkeä huomioitava seikka on, että jokainen Opera Mini -versio on yhteensopiva vain yhden OBML-muodon kanssa. Siten Opera Minin päivitys jättää aiemmin tallennetut sivut luettavaksi. OBML-tiedostot voidaan muuntaa HTML- ja PDF-muotoon.
OBML-tiedostomuoto
OBML-tiedostomuoto on tallennettu Operan omaan tiedostomuotoon ja sen tiedostomuotomääritykset eivät ole saatavilla julkisesti. {{HYPERLINKKI}} kuitenkin käännettiin purkamaan sen rakenne seuraavasti.
OBML-tietotyypit
Palautettujen tulosten mukaan OBML käyttää seuraavia primitiivityyppejä:
- tavu – etumerkitön kokonaisluku (1 tavu)
- short – etumerkillä varustettu kokonaisluku (2 tavua, big-endian)
- medium – etumerkillä varustettu kokonaisluku (3 tavua, big-endian)
- blob– { pituus: lyhyt, data: tavu[pituus] }
- char – tavu, joka sisältää ASCII-merkin
- merkkijono – blob, joka sisältää UTF-8-koodattua tekstiä
OBML-otsikko
header := {
	(if version >= 15) {
		fake_file_size: medium = 0x02d355
		fake_version: byte     = 16
	}
	file_size: medium
	version: byte
	page_size: coords
	(if version == 16) {
		unknown: byte[3]      // always S\x00\x00
	}
	unknown: short                // always -1
	page_title: string
	unknown: blob
	page_url_base: string
	page_url: url
	(if version >= 15) {
		unknown: byte[6]
	}
	(if 6 < version <= 13) {
		unknown: byte[5]
	}
	(if version == 6) {
		unknown: byte[1]
	}
	metadata: chunk[]
	content: chunk[]
}