XSL-FO Doküman

XSL-FO belgeleri, çıktı bilgisi içeren XML dosyalarıdır.

XSL-FO Doküman

XSL-FO belgeleri, çıktı bilgisi içeren XML dosyalarıdır. Bu dosyalar, çıktı düzeni ve içerik bilgilerini içerir.

XSL-FO belgeleri .fo veya .fob sonluğu ile saklanır. .xml sonluğu ile saklanan XSL-FO belgeleri de yaygındır, bu şekilde XSL-FO belgeleri XML düzenleyiciler tarafından daha kolay erişilebilir hale gelir.

XSL-FO belge yapısı

XSL-FO belge yapısı şu şekilde benzerlik gösterir:

<?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">
    <!-- Sayfa şablonu buraya yer alır -->
  </fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
  <!-- Sayfa içeriği buraya yer alır -->
</fo:page-sequence>
</fo:root>

Yapısal açıklama

XSL-FO belgeleri XML belgelerine aittir, çünkü XML beyanı ile başlamaları gerekmektedir:

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

<fo:root> elementi XSL-FO belgesinin kök elementidir. Bu kök elementin de XSL-FO isim alanı beyan edilmesi gerekmektedir:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  XSL-FO belge içeriği burada yer alır
</fo:root>

<fo:layout-master-set> elementi bir veya daha fazla sayfa şablonu içerir:

<fo:layout-master-set>
  <!-- Burada tüm sayfa şablonları -->
</fo:layout-master-set>

<fo:simple-page-master> elementi tek bir sayfa şablonu içerir. Her şablonun benzersiz bir adı (master-name) olmalıdır:

<fo:simple-page-master master-name="A4">
  <!-- Burada belirli bir sayfa şablonu -->
</fo:simple-page-master>

Bir veya daha fazla <fo:page-sequence> elementi sayfanın içeriğini tanımlayabilir. master-reference özelliği aynı isimle simple-page-master şablonuna atıfta bulunur:

<fo:page-sequence master-reference="A4">
  <!-- Burada sayfa içeriği -->
</fo:page-sequence>

Açıklama:master-reference değerinin "A4" gerçekten bir önceden tanımlanmış sayfa formatını tanımlamıyor. Sadece bir isimdir. "MyPage", "MyTemplate" gibi herhangi bir isim kullanabilirsiniz.