Kas ir OBML fails?
OBML (Opera Binary Markup Language) fails ir tīmekļa lapas bezsaistes versija, kas saglabāta, izmantojot Opera Mini mobilo tīmekļa pārlūkprogrammu. Tā ir autonoma, kompakta HTML failu versija, kurā ir visi lapas elementi, kas paredzēti attēlošanai noteiktās ierīcēs bezsaistē. OBML faila formāts ir jaunināts uz vairākām versijām, plaši izmantojot OBML15 un OBML16. Svarīgs punkts, kas jāņem vērā, ir tas, ka katra Opera Mini versija ir saderīga tikai ar vienu OBML formātu. Tādējādi, jauninot Opera Mini, iepriekš saglabātās lapas būs lasāmas. OBML failus var konvertēt uz HTML un PDF.
OBML faila formāts
OBML faila formāts tiek saglabāts Opera patentētajā faila formātā, un tā faila formāta specifikācijas nav pieejamas publiski. Tomēr OMBL format tika izstrādāta apgrieztā veidā, lai atšifrētu tās struktūru, kā norādīts tālāk.
OBML datu tipi
Saskaņā ar apgrieztās inženierijas rezultātiem OBML izmanto šādus primitīvos veidus:
- baits — neparakstīts vesels skaitlis (1 baits)
- īss — vesels skaitlis ar zīmi (2 baiti, lielais endians)
- vidējs — vesels skaitlis ar zīmi (3 baiti, lielais endians)
- blob — {garums: īss, dati: baits[garums]}
- char — baits, kas satur ASCII rakstzīmi
- virkne — lāse, kas satur UTF-8 kodētu tekstu
OBML galvene
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[]
}