Dokumen XSL-FO

Dokumen XSL-FO adalah berkas XML dengan informasi output.

Dokumen XSL-FO

Dokumen XSL-FO adalah berkas XML dengan informasi output. Mereka mengandung informasi tentang tata letak output serta konten output.

Dokumen XSL-FO disimpan dalam berkas dengan ekstensi .fo atau .fob. Dokumen XSL-FO dengan ekstensi .xml juga umum ditemukan, hal ini membuat dokumen XSL-FO lebih mudah diakses dengan editor XML.

Struktur dokumen XSL-FO

Struktur dokumen XSL-FO seperti ini:

<?xml version="1.0" encoding="ISO-8859-1"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set
  <fo:simple-page-master master-name="A4">
    <!-- Template halaman disini -->
  </fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
  <!-- Konten halaman disini -->
</fo:page-sequence>
</fo:root>

Pengertian struktur

Dokumen XSL-FO termasuk dalam dokumen XML, karena juga memerlukan deklarasi XML untuk memulai:

<?xml version="1.0" encoding="ISO-8859-1"?>

Elemen <fo:root> adalah elemen utama dokumen XSL-FO. Elemen ini juga harus menyatakan ruang nama XSL-FO:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  <!-- Ini adalah konten dokumen XSL-FO -->
</fo:root>

Elemen <fo:layout-master-set> mengandung satu atau beberapa template halaman:

<fo:layout-master-set
  <!-- Ini adalah semua template halaman -->
</fo:layout-master-set>

Elemen <fo:simple-page-master> mengandung satu template halaman yang tunggal. Setiap template harus memiliki nama unik (master-name):

<fo:simple-page-master master-name="A4">
  <!-- Ini adalah template halaman yang satu ini -->
</fo:simple-page-master>

Satu atau beberapa elemen <fo:page-sequence> dapat mendeskripsikan konten halaman. Properti master-reference menggunakan nama yang sama untuk merujuk pada template simple-page-master:

<fo:page-sequence master-reference="A4">
  <!-- Ini adalah konten halaman ini -->
</fo:page-sequence>

Keterangan:Keterangan: Nilai 'master-reference' 'A4' sebenarnya tidak mendeskripsikan format halaman yang ditetapkan. Ini hanya seorang nama. Anda dapat menggunakan nama apapun, seperti 'MyPage', 'MyTemplate' dll.