DocBook adalah bahasa markup semantik untuk dokumentasi teknis. DocBook awalnya ditujukan untuk penulisan teknis yang berkaitan dengan perangkat keras dan perangkat lunak komputer tetapi dapat digunakan untuk dokumentasi lain.
Sebagai bahasa semantik, DocBook memungkinkan penggunanya membuat dokumen dalam bentuk presentasi netral, yang menangkap struktur logis dari konten; konten tersebut kemudian dapat dipublikasikan dalam berbagai format, termasuk HTML, XHTML, EPUB, PDF, halaman manual, Bantuan web dan Bantuan HTML, tanpa mengharuskan pengguna melakukan perubahan apa pun pada dokumen sumber.
Ringkasan
DocBook adalah bahasa XML. Dalam bentuknya saat ini (versi 5.x), bahasa DocBook secara formal ditentukan oleh skema RELAX NG yang mengintegrasikan aturan Achematron. (Ada juga versi skema W3C XML Schema+Schematron dan Document Type Definition (DTD), tetapi versi ini dianggap tidak standar).
Sebagai bahasa semantik, dokumen DocBook tidak menjelaskan bagaimana konten “akan terlihat”, tetapi menunjukkan arti dari konten tersebut. Misalnya, alih-alih menjelaskan bagaimana abstrak artikel dapat ditata secara visual, DocBook hanya menyatakan bahwa suatu bagian adalah abstrak dan terserah alat pengolah atau aplikasi untuk menentukan apakah bagian itu akan disertakan atau tidak, dan di mana itu akan ditempatkan dalam dokumen jika disertakan.
DocBook menyediakan sejumlah besar tag elemen semantik. Tag ini dibagi menjadi tiga kategori: struktural, tingkat blok, dan sebaris.
Tag struktur menentukan karakteristik umum konten. Elemen buku, misalnya, mendefinisikan bahasa elemen anaknya yang mewakili bagian dari buku. Ini termasuk judul, bab, glosarium, sisipan, dan sebagainya. Tag struktur DocBook meliputi:
- set: koleksi satu atau lebih buku. Set dapat bersarang di dalam set lainnya.
- buku: koleksi berjudul bab, artikel, dan/atau bagian, dengan opsi glosarium, sisipan, dan sebagainya.
- bagian: koleksi berjudul satu atau lebih bab (bab). Bagian dapat bersarang dengan bagian lain. Dapat memiliki teks pengantar khusus.
- artikel: kumpulan elemen tingkat blok berjudul dan tidak bernomor.
- bab: kumpulan elemen tingkat blok berjudul dan bernomor. DocBook sebenarnya tidak mengharuskan bab diberi nomor secara tertulis; semantik menentukan bahwa nomor bab adalah nomor elemen bab dalam dokumen XML ditambah 1.
- apendiks: teks yang terkandung mewakili Addendum atau sisipan..
- dedikasi: teks mewakili rasa hormat dari elemen struktural yang terkandung.
Elemen struktural dapat berisi elemen struktural lainnya. Dalam dokumen DocBook, hanya elemen struktural yang diperbolehkan sebagai elemen tingkat atas.
Tag tingkat blok adalah elemen seperti paragraf, daftar, dll. Tidak semua elemen ini dapat berisi teks sebenarnya secara langsung. Elemen level blok berurutan perlu ditampilkan satu “setelah” yang lain. Arti kata “setelah” dalam hal ini bisa berbeda-beda tergantung bahasa yang digunakan. Dalam kebanyakan bahasa Eropa (serta bahasa Melayu) “selepas” berarti “di bawah” atau “mengikuti”. Sistem penulisan bahasa lain, misalnya bahasa Jepang, biasanya ditulis dalam kolom, dengan paragraf dari kanan ke kiri, jadi “setelah” dalam hal ini berarti ke kiri. Semantics DocBook bertindak netral terhadap konsep berbasis bahasa dan dapat digunakan dalam semua kasus.
Tag level baris adalah elemen seperti penekanan (emphasis), hyperlink, dll. Tag ini membungkus teks yang terkandung dalam elemen tingkat blok. Elemen-elemen ini tidak menyebabkan teks pecah saat ditampilkan dalam bentuk paragraf, tetapi, biasanya elemen tersebut menyebabkan tindakan tipografi pada teks terkait oleh pemroses dokumen. Tindakan tipografi ini dapat mencakup perubahan pada font, ukuran, atau atribut serupa. Spesifikasi DocBook menyatakan bahwa tindakan tipografi harus dilakukan pada teks, tetapi tidak memberikan persyaratan tipografi khusus. Ini berarti prosesor DocBook tidak perlu mengubah tag penekanan menjadi “miring”. Prosesor DocBook di perangkat pembaca DocBook dapat memperbesar ukuran teks terkait; pengolah teks dapat menggunakan huruf tebal dan bukan miring.
Dokumen contoh
<?xml version="1.0" encoding="UTF-8"?>
<book xml:id="simple_book" xmlns="http://docbook.org/ns/docbook" version="5.0">
<title>Buku yang amat mudah</title>
<chapter xml:id="chapter_1">
<title>Bab 1</title>
<para>Helo dunia!</para>
<para>Saya berharap rencana <emphasis>berguna</emphasis> dan memberi manfaat!</para>
</chapter>
<chapter xml:id="chapter_2">
<title>Bab 2</title>
<para>Ketemu kembali!</para>
</chapter>
</book>
Dari segi semantik, dokumen ini adalah “buku” (book,) dengan “judul” (title), yang berisi dua “bab” (bab) masing-masing dengan “judul” (judul) sendiri. “Bab” berisi “paragraf” yang berisi “paragraf” yang berisi teks. Penanda mudah dibaca dalam bahasa Inggris.
Secara rinci, elemen root dari dokumen di atas adalah buku. Semua elemen DocBook ada di XML Namespace, jadi elemen root harus memiliki atribut xmlns untuk menyetel namespace. Selain itu, elemen akar dokumen DocBook harus memiliki versi yang menentukan versi tata letak yang digunakan untuk menulis dokumen.