Documentos de XSL-FO

Los documentos XSL-FO son archivos XML con información de salida.

Documentos de XSL-FO

Los documentos XSL-FO son archivos XML con información de salida. Contienen información sobre el diseño de salida y el contenido de salida.

Los documentos XSL-FO se almacenan en archivos con la extensión .fo o .fob. También es común encontrar documentos XSL-FO con la extensión .xml, lo que permite que los documentos XSL-FO sean más fácilmente accesibles por los editores XML.

Estructura del documento XSL-FO

La estructura del documento XSL-FO es similar a esto:

<?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">
    <!-- La plantilla de página se coloca aquí -->
  </fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
  <!-- El contenido de la página se coloca aquí -->
</fo:page-sequence>
</fo:root>

Explicación estructural

El documento XSL-FO pertenece a los documentos XML, ya que también debe comenzar con una declaración XML:

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

El elemento <fo:root> es el elemento raíz del documento XSL-FO. Este elemento raíz también debe declarar el espacio de nombres de XSL-FO:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  Este es el contenido del documento XSL-FO
</fo:root>

El elemento <fo:layout-master-set> contiene uno o más patrones de página:

<fo:layout-master-set>
  <!-- Aquí están todos los patrones de página -->
</fo:layout-master-set>

El elemento <fo:simple-page-master> contiene un solo patrón de página. Cada plantilla debe tener un nombre único (master-name):

<fo:simple-page-master master-name="A4">
  <!-- Aquí está algún patrón de página específico -->
</fo:simple-page-master>

Un o más elementos <fo:page-sequence> pueden describir el contenido de la página. El atributo master-reference utiliza el mismo nombre para referirse al patrón simple-page-master:

<fo:page-sequence master-reference="A4">
  <!-- Aquí está el contenido de la página -->
</fo:page-sequence>

Notas:El valor de master-reference "A4" no describe realmente algún formato de página predefinido. Es simplemente un nombre. Puede usar cualquier nombre, como "MyPage", "MyTemplate" y otros.