Documentação do XSL-FO

Os documentos XSL-FO são arquivos XML com informações de saída.

Documentação do XSL-FO

Os documentos XSL-FO são arquivos XML com informações de saída. Eles contêm informações sobre o layout e o conteúdo de saída.

Os documentos XSL-FO são armazenados em arquivos com sufixo .fo ou .fob. Também é comum armazenar documentos XSL-FO com sufixo .xml, o que facilita o acesso dos documentos XSL-FO pelos editores XML.

Estrutura do documento XSL-FO

A estrutura do documento XSL-FO é semelhante a esta:

<?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">
    <!-- O modelo da página vai aqui -->
  </fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
  <!-- O conteúdo da página vai aqui -->
</fo:page-sequence>
</fo:root>

Explicação estrutural

O documento XSL-FO pertence aos documentos XML, pois também precisa começar com uma declaração XML:

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

O elemento <fo:root> é o elemento raiz do documento XSL-FO. Este elemento raiz também deve declarar o espaço de nomes do XSL-FO:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  Este é o conteúdo do documento XSL-FO
</fo:root>

O elemento <fo:layout-master-set> contém um ou mais modelos de página:

<fo:layout-master-set
  <!-- Aqui estão todos os modelos de página -->
</fo:layout-master-set>

O elemento <fo:simple-page-master> contém um único modelo de página. Cada modelo deve ter um nome único (master-name):

<fo:simple-page-master master-name="A4">
  <!-- Aqui está um modelo de página específico -->
</fo:simple-page-master>

Um ou mais elementos <fo:page-sequence> podem descrever o conteúdo da página. O atributo master-reference usa o mesmo nome para referenciar o modelo simple-page-master:

<fo:page-sequence master-reference="A4">
  <!-- Aqui está o conteúdo da página -->
</fo:page-sequence>

Notas:O valor "A4" do master-reference não descreve um formato de página pré-definido. É apenas um nome. Você pode usar qualquer nome, como "MyPage", "MyTemplate" etc.