<?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="10cm" page-width="15cm" 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">The following table has a cell which spans further than its
        containing table-footer.</fo:block>
      <fo:table table-layout="fixed" border-collapse="separate" width="100%">
        <fo:table-column number-columns-repeated="2" column-width="proportional-column-width(1)"/>
        <fo:table-header>
          <fo:table-row>
            <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-row>
        </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" ends-row="true">
            <fo:block>Footer 1.2</fo:block>
          </fo:table-cell>
          <fo:table-cell border="1pt solid black">
            <fo:block>Footer 2.1</fo:block>
          </fo:table-cell>
          <fo:table-cell border="1pt solid black" number-rows-spanned="3">
            <fo:block>Footer 2.2</fo:block>
          </fo:table-cell>
          <fo:table-cell border="1pt solid black" starts-row="true">
            <fo:block>Footer 3.1</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" ends-row="true">
            <fo:block>Cell 1.2</fo:block>
          </fo:table-cell>
          <fo:table-cell 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:flow>
  </fo:page-sequence>
</fo:root>
