<?xml version="1.0" standalone="no"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- $Id$ -->
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  <fo:layout-master-set>
    <fo:simple-page-master master-name="page" page-height="29.7cm" page-width="21cm" margin="10pt">
      <fo:region-body/>
    </fo:simple-page-master>
  </fo:layout-master-set>
  <fo:page-sequence master-reference="page">
    <fo:flow flow-name="xsl-region-body">
      <fo:block space-after="10pt">Several configurations of tables for testing the setup of
        columns.</fo:block>
      <fo:block space-after="10pt">A simple table to begin.</fo:block>
      <fo:table table-layout="fixed" border-collapse="separate" width="200pt">
        <fo:table-column number-columns-repeated="2" column-width="100pt"/>
        <fo:table-header>
          <fo:table-cell border="1pt solid black"><fo:block>Header 1.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Header 1.2</fo:block></fo:table-cell>
        </fo:table-header>
        <fo:table-footer>
          <fo:table-cell border="1pt solid black"><fo:block>Footer 1.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Footer 1.2</fo:block></fo:table-cell>
        </fo:table-footer>
        <fo:table-body>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 1.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 1.2</fo:block></fo:table-cell>
          <fo:table-cell starts-row="true"
                         border="1pt solid black"><fo:block>Cell 2.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 2.2</fo:block></fo:table-cell>
        </fo:table-body>
      </fo:table>

      <fo:block space-before="20pt" space-after="10pt">2 columns, resp. 200pt and 100pt
        wide.</fo:block>
      <fo:table table-layout="fixed" border-collapse="separate" width="300pt">
        <fo:table-column column-width="200pt"/>
        <fo:table-column column-width="100pt"/>
        <fo:table-header>
          <fo:table-cell border="1pt solid black"><fo:block>Header 1.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Header 1.2</fo:block></fo:table-cell>
        </fo:table-header>
        <fo:table-footer>
          <fo:table-cell border="1pt solid black"><fo:block>Footer 1.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Footer 1.2</fo:block></fo:table-cell>
        </fo:table-footer>
        <fo:table-body>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 1.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 1.2</fo:block></fo:table-cell>
          <fo:table-cell starts-row="true"
                         border="1pt solid black"><fo:block>Cell 2.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 2.2</fo:block></fo:table-cell>
        </fo:table-body>
      </fo:table>

      <fo:block space-before="20pt" space-after="10pt">3 unordered columns, resp. 100, 150 and
        200pt wide.</fo:block>
      <fo:table table-layout="fixed" border-collapse="separate" width="450">
        <fo:table-column column-number="2" column-width="150pt"/>
        <fo:table-column column-width="200pt"/>
        <fo:table-column column-number="1" column-width="100pt"/>
        <fo:table-header>
          <fo:table-cell border="1pt solid black"><fo:block>Header 1.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Header 1.2</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Header 1.3</fo:block></fo:table-cell>
        </fo:table-header>
        <fo:table-footer>
          <fo:table-cell border="1pt solid black"><fo:block>Footer 1.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Footer 1.2</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Footer 1.3</fo:block></fo:table-cell>
        </fo:table-footer>
        <fo:table-body>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 1.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 1.2</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 1.3</fo:block></fo:table-cell>
          <fo:table-cell starts-row="true"
                         border="1pt solid black"><fo:block>Cell 2.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 2.2</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 2.3</fo:block></fo:table-cell>
        </fo:table-body>
      </fo:table>

      <fo:block space-before="20pt" space-after="10pt">4 unordered columns, 2nd column implicit,
        resp. 100, 125, 150 and 175 pt wide.</fo:block>
      <fo:table table-layout="fixed" border-collapse="separate" width="550">
        <fo:table-column column-number="3" column-width="150pt"/>
        <fo:table-column column-width="175pt"/>
        <fo:table-column column-number="1" column-width="100pt"/>
        <fo:table-header>
          <fo:table-cell border="1pt solid black"><fo:block>Header 1.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Header 1.2</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Header 1.3</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Header 1.4</fo:block></fo:table-cell>
        </fo:table-header>
        <fo:table-footer>
          <fo:table-cell border="1pt solid black"><fo:block>Footer 1.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Footer 1.2</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Footer 1.3</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Footer 1.4</fo:block></fo:table-cell>
        </fo:table-footer>
        <fo:table-body>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 1.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 1.2</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 1.3</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 1.4</fo:block></fo:table-cell>
          <fo:table-cell starts-row="true"
                         border="1pt solid black"><fo:block>Cell 2.1</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 2.2</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 2.3</fo:block></fo:table-cell>
          <fo:table-cell border="1pt solid black"><fo:block>Cell 2.4</fo:block></fo:table-cell>
        </fo:table-body>
      </fo:table>

    </fo:flow>
  </fo:page-sequence>
</fo:root>
