]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
1. Implemented validateChildNode() for fo:simple-page-master. This may cause some...
authorGlen Mazza <gmazza@apache.org>
Wed, 25 Aug 2004 05:03:08 +0000 (05:03 +0000)
committerGlen Mazza <gmazza@apache.org>
Wed, 25 Aug 2004 05:03:08 +0000 (05:03 +0000)
2. Modified several of our sample and test FO files to be compliant with the XSL spec with respect to the change above.

3. @todo's added to FO's still missing validateChildNode()

4. New FONode missingPropertyError() method created, for the major cases where missing properties should halt processing.

5. Various cleanup in our layout-master-set and region classes, including the removal of error checks that are no longer needed due to validateChildNode() being implemented.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197889 13f79535-47bb-0310-9956-ffa450edef68

66 files changed:
examples/fo/svg/embedding.fo
examples/fo/svg/external.fo
src/java/org/apache/fop/fo/FONode.java
src/java/org/apache/fop/fo/flow/Block.java
src/java/org/apache/fop/fo/flow/BlockContainer.java
src/java/org/apache/fop/fo/flow/Footnote.java
src/java/org/apache/fop/fo/flow/InlineContainer.java
src/java/org/apache/fop/fo/flow/Leader.java
src/java/org/apache/fop/fo/flow/ListBlock.java
src/java/org/apache/fop/fo/flow/ListItemBody.java
src/java/org/apache/fop/fo/flow/ListItemLabel.java
src/java/org/apache/fop/fo/flow/MultiCase.java
src/java/org/apache/fop/fo/flow/MultiSwitch.java
src/java/org/apache/fop/fo/flow/MultiToggle.java
src/java/org/apache/fop/fo/flow/PageNumber.java
src/java/org/apache/fop/fo/flow/PageNumberCitation.java
src/java/org/apache/fop/fo/flow/Table.java
src/java/org/apache/fop/fo/flow/TableAndCaption.java
src/java/org/apache/fop/fo/flow/TableBody.java
src/java/org/apache/fop/fo/flow/TableCaption.java
src/java/org/apache/fop/fo/flow/TableCell.java
src/java/org/apache/fop/fo/flow/TableColumn.java
src/java/org/apache/fop/fo/flow/TableFooter.java
src/java/org/apache/fop/fo/flow/TableHeader.java
src/java/org/apache/fop/fo/flow/TableRow.java
src/java/org/apache/fop/fo/flow/Wrapper.java
src/java/org/apache/fop/fo/pagination/Flow.java
src/java/org/apache/fop/fo/pagination/LayoutMasterSet.java
src/java/org/apache/fop/fo/pagination/PageMasterReference.java
src/java/org/apache/fop/fo/pagination/PageSequenceMaster.java
src/java/org/apache/fop/fo/pagination/Region.java
src/java/org/apache/fop/fo/pagination/RepeatablePageMasterReference.java
src/java/org/apache/fop/fo/pagination/SimplePageMaster.java
src/java/org/apache/fop/fo/pagination/SinglePageMasterReference.java
src/java/org/apache/fop/fo/pagination/StaticContent.java
src/java/org/apache/fop/fo/pagination/Title.java
test/xml/bugtests/background_color.fo
test/xml/bugtests/background_transparent.fo
test/xml/bugtests/block-container.fo
test/xml/bugtests/block.fo
test/xml/bugtests/border.fo
test/xml/bugtests/break-before.fo
test/xml/bugtests/color.fo
test/xml/bugtests/font-family.fo
test/xml/bugtests/font-size.fo
test/xml/bugtests/font.fo
test/xml/bugtests/header_footer.fo
test/xml/bugtests/indent.fo
test/xml/bugtests/inline.fo
test/xml/bugtests/keep-with-next.fo
test/xml/bugtests/leader.fo
test/xml/bugtests/letter-spacing.fo
test/xml/bugtests/line-height.fo
test/xml/bugtests/list-mountjoy.fo
test/xml/bugtests/padding.fo
test/xml/bugtests/page-number.fo
test/xml/bugtests/rule.fo
test/xml/bugtests/simple-link.fo
test/xml/bugtests/space-treatment.fo
test/xml/bugtests/space.fo
test/xml/bugtests/text-align.fo
test/xml/bugtests/text-decoration.fo
test/xml/bugtests/text-indent.fo
test/xml/bugtests/word-spacing.fo
test/xml/bugtests/wrap.fo
test/xsl/doc.xsl

index 4cd7b2bf7a6de86975b567cd06b5739b50c12813..4ecae2ae9a791df8980a5df258f0c7e5a9d24cb1 100644 (file)
@@ -9,8 +9,8 @@
   page-width="21cm"
   page-height="29.7cm"
   master-name="first">
-      <fo:region-before extent="1cm"/>
       <fo:region-body margin-top="1cm"/>
+      <fo:region-before extent="1cm"/>
       <fo:region-after extent="1.5cm"/>
     </fo:simple-page-master>
   </fo:layout-master-set>
index bd21cdddb4767a6ea2023465adbcc4a8ff9bc59e..eaa76788cc87a35332a51b22355c671b019b27e5 100644 (file)
@@ -8,8 +8,8 @@
           margin-top="1cm"
           page-width="21cm"
           page-height="29.7cm">
-      <fo:region-before extent="1cm"/>
       <fo:region-body margin-top="1cm"/>
+      <fo:region-before extent="1cm"/>
       <fo:region-after extent="1.5cm"/>
     </fo:simple-page-master>
   </fo:layout-master-set>
index 0005397002764ad9e47709f747a238ad81eaba3b..64c1f199d2f9b0f2a60a90139465e62bcb5c206c 100644 (file)
@@ -36,7 +36,6 @@ import org.apache.fop.fo.extensions.svg.SVGElementMapping;
 
 /**
  * base class for nodes in the XML tree
- *
  */
 public abstract class FONode {
 
@@ -320,6 +319,18 @@ public abstract class FONode {
             + contentModel, locator);
     }
 
+    /**
+     * Helper function to return missing child element errors
+     * (e.g., fo:layout-master-set not having any page-master child element)
+     * @param contentModel The XSL Content Model for the fo: object.
+     * or a similar description indicating child elements needed.
+     */
+    protected void missingPropertyError(String propertyName)
+        throws SAXParseException {
+        throw new SAXParseException(errorText(locator) + getName() +
+            " is missing required \"" + propertyName + "\" property.", locator);
+    }
+
     /**
      * Helper function to return "Error (line#/column#)" string for
      * above exception messages
index 254864f6fc9c658e20d05efed0e03dfff36bb705..d46651e8bacfa8fbee9f2b95129afd1d9764c9f1 100644 (file)
@@ -53,7 +53,7 @@ import org.apache.fop.util.CharUtilities;
   "this." from blockArea since BlockArea is now local.
  */
  /**
-  * Class modelling the fo:block object. See Sec. 6.5.2 of the XSL-FO Standard.
+  * Class modelling the fo:block object.
   */
 public class Block extends FObjMixed {
 
index 91214ad1bbd60e49c8578022f0be739fd9354228..a27a0f24f10bfd7f9be65cc5f833c00783db1bce 100644 (file)
@@ -31,8 +31,8 @@ import org.xml.sax.Attributes;
 import org.xml.sax.SAXParseException;
 
 /**
- * Class modelling the fo:block-container object. See Sec. 6.5.3 of the XSL-FO
- * Standard.
+ * Class modelling the fo:block-container object.
+ * @todo implement validateChildNode()
  */
 public class BlockContainer extends FObj {
 
index 252f31d9308332e32e255973b4a1f749c8133537..8dc4077089f2499b6f54541569c163dddf230571 100644 (file)
@@ -31,8 +31,7 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
 
 /**
- * Class modelling the fo:footnote object. See Sec. 6.10.3 of the XSL-FO
- * Standard.
+ * Class modelling the fo:footnote object.
  */
 public class Footnote extends FObj {
 
index c5251f63b45eb58e81500048c77b6cf684f4ef23..4e50556cd7ebf0c8bcf7a63c630afeab83008922 100644 (file)
@@ -33,8 +33,8 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
 
 /**
- * Class modelling the fo:inline-container object. See Sec. 6.6.8 of the XSL-FO
- * Standard.
+ * Class modelling the fo:inline-container object.
+ * @todo implement validateChildNode()
  */
 public class InlineContainer extends FObj {
 
index 1aa240c6bccf0dc02c0fd418c8e4aeeebc5231e2..a417777b43b6efc7aa0911574589e949124714cc 100644 (file)
@@ -34,6 +34,7 @@ import org.apache.fop.layoutmgr.LeaderLayoutManager;
  * Class modelling fo:leader object.
  * The main property of fo:leader is leader-pattern.
  * The following patterns are treated: rule, space, dots and use-content.
+ * @todo implement validateChildNode()
  */
 public class Leader extends FObjMixed {
 
index 244095c25695ef2721747b8feb9a3c4706898dbd..58e0a024b74b8d3acd6a936090371a9d5f99d1c4 100644 (file)
@@ -33,8 +33,7 @@ import org.apache.fop.fo.FObj;
 import org.apache.fop.layoutmgr.list.ListBlockLayoutManager;
 
 /**
- * Class modelling the fo:list-block object. See Sec. 6.8.2 of the XSL-FO
- * Standard.
+ * Class modelling the fo:list-block object.
  */
 public class ListBlock extends FObj {
 
index 0c68947cbb6fa22f97cc81422d6345d35c28a754..73a7f47a3a16f69d4c827a3ef72669d0b8d639cb 100644 (file)
@@ -23,8 +23,8 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
 
 /**
- * Class modelling the fo:list-item-body object. See Sec. 6.8.4 of the XSL-FO
- * Standard.
+ * Class modelling the fo:list-item-body object.
+ * @todo implement validateChildNode()
  */
 public class ListItemBody extends FObj {
 
index 5b313f305e8f9bb69efffd3c12876caa6bfaf6bc..b117bcb8784e9a564d3892ffcaa50c90b4d00201 100644 (file)
@@ -27,8 +27,8 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
 
 /**
- * Class modelling the fo:list-item-label object. See Sec. 6.8.5 of the XSL-FO
- * Standard.
+ * Class modelling the fo:list-item-label object.
+ * @todo implement validateChildNode()
  */
 public class ListItemLabel extends FObj {
 
index 32b6803df914787a30bdb8e1fb0d263fe12416ec..4ec5ea6c171366169d03fff3cf0222f9b60a41bb 100644 (file)
@@ -24,6 +24,7 @@ import org.apache.fop.fo.FObj;
 
 /**
  * Class modelling the fo:multi-case object.
+ * @todo implement validateChildNode()
  */
 public class MultiCase extends FObj {
 
index 99c392f27d5be7b355a06234b9070cfd06d023ef..9c653172cdb9a69fbf4c85682876f8a16ac21d22 100644 (file)
@@ -24,6 +24,7 @@ import org.apache.fop.fo.FObj;
 
 /**
  * Class modelling the fo:multi-switch object.
+ * @todo implement validateChildNode()
  */
 public class MultiSwitch extends FObj {
 
index a4a58e018c93ca225c732aeecedb804e2fa47685..3d78a7476634d85dc1e3306d84baec9f85cd9206 100644 (file)
@@ -24,6 +24,7 @@ import org.apache.fop.fo.FObj;
 
 /**
  * Class modelling the fo:multi-toggle property.
+ * @todo implement validateChildNode()
  */
 public class MultiToggle extends FObj {
 
index dd69e26d7e69c128871c67bedbbc11e7897e12fa..d4585cdb2f1b867dcfebdd50ce6d1cf53bd691d8 100644 (file)
@@ -34,8 +34,7 @@ import org.apache.fop.fonts.Font;
 import org.apache.fop.layoutmgr.PageNumberLayoutManager;
 
 /**
- * Class modelling the fo:page-number object. See Sec. 6.6.10 of the XSL-FO
- * Standard.
+ * Class modelling the fo:page-number object.
  */
 public class PageNumber extends FObj {
     /** FontState for this object */
index ff06b1b02cf5fd853ff286efeab3965e280d0c2b..73257626d13cea045ee22b56477566b555261f3c 100644 (file)
@@ -34,8 +34,7 @@ import org.apache.fop.fonts.Font;
 import org.apache.fop.layoutmgr.PageNumberCitationLayoutManager;
 
 /**
- * Class modelling the fo:page-number-citation object. See Sec. 6.6.11 of the
- * XSL-FO Standard.
+ * Class modelling the fo:page-number-citation object.
  * This inline fo is replaced with the text for a page number.
  * The page number used is the page that contains the start of the
  * block referenced with the ref-id attribute.
index 8146045a1539d57c02bb9551e9d75abfebb75348..570372944a9ea8fc735a1114c85a6ee4d35ab54b 100644 (file)
@@ -43,7 +43,7 @@ import org.apache.fop.fo.properties.CommonRelativePosition;
 import org.apache.fop.fo.properties.LengthRangeProperty;
 
 /**
- * Class modelling the fo:table object. See Sec. 6.7.3 of the XSL-FO Standard.
+ * Class modelling the fo:table object.
  */
 public class Table extends FObj {
     private static final int MINCOLWIDTH = 10000; // 10pt
index df01c19c03686569455a3d1d30b8e761165be1ab..8538cc4f1670e3b7be6cacd21f415e41e44bc001 100644 (file)
@@ -24,6 +24,7 @@ import org.apache.fop.fo.FObj;
 
 /**
  * Class modelling the fo:table-and-caption property.
+ * @todo implement validateChildNode()
  */
 public class TableAndCaption extends FObj {
 
index 3929618265d73e6c90a9d65e451db8fe3e23452a..2b0ad8dfc58f70e6ca3f9a2f1e5ba4497896bb29 100644 (file)
@@ -33,8 +33,8 @@ import org.apache.fop.fo.FObj;
 import org.apache.fop.layoutmgr.table.Body;
 
 /**
- * Class modelling the fo:table-body object. See Sec. 6.7.8 of the XSL-FO
- * Standard.
+ * Class modelling the fo:table-body object.
+ * @todo implement validateChildNode()
  */
 public class TableBody extends FObj {
 
index 8fcbb776df6acb7bfd3859d16cea234abe7fd524..cbe53a4d0ae260478bf2c8599dfadc57a64c85d8 100644 (file)
@@ -24,6 +24,7 @@ import org.apache.fop.fo.FObj;
 
 /**
  * Class modelling the fo:table-caption object.
+ * @todo implement validateChildNode()
  */
 public class TableCaption extends FObj {
 
index 8907f59578ca2ccab0e655bda0d94e563a17efbd..cb6928d87bf4d6406c6d189c2546b5e6f1fc93ba 100644 (file)
@@ -34,8 +34,8 @@ import org.apache.fop.layoutmgr.table.Cell;
 import org.apache.fop.fo.properties.CommonBorderAndPadding;
 
 /**
- * Class modelling the fo:table-cell object. See Sec. 6.7.10 of the XSL-FO
- * Standard.
+ * Class modelling the fo:table-cell object.
+ * @todo implement validateChildNode()
  */
 public class TableCell extends FObj {
 
index 7cf6e813cec4fc2f7e8d51f88795e91e68ffddb1..0ab7a42158770fe5b4e4e611319e737fd57a467b 100644 (file)
@@ -30,8 +30,7 @@ import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
 
 /**
- * Class modelling the fo:table-column object. See Sec. 6.7.4 of the XSL-FO
- * Standard.
+ * Class modelling the fo:table-column object.
  */
 public class TableColumn extends FObj {
 
index 61c1d239c599738a29fa939146c3058a12098915..c64f0590aa7140d32550ab998f98bf3a152cd900 100644 (file)
@@ -22,8 +22,8 @@ package org.apache.fop.fo.flow;
 import org.apache.fop.fo.FONode;
 
 /**
- * Class modelling the fo:table-footer object. See Sec. 6.7.7 of the XSL-FO
- * Standard.
+ * Class modelling the fo:table-footer object.
+ * @todo implement validateChildNode()
  */
 public class TableFooter extends TableBody {
 
index 102b84d45a84f3cdbc99ab73d7ce8649d48ef2b1..0b61b524d4c5b81e5b94cb1a30e666b118efdbc9 100644 (file)
@@ -22,8 +22,8 @@ package org.apache.fop.fo.flow;
 import org.apache.fop.fo.FONode;
 
 /**
- * Class modelling the fo:table-header object. See Sec. 6.7.6 of the XSL-FO
- * Standard.
+ * Class modelling the fo:table-header object.
+ * @todo implement validateChildNode()
  */
 public class TableHeader extends TableBody {
 
index 31d262651e1e301d9d7ceab03af452c429ac3451..21d5057d7dde29c97f506afe4d060ba6d77e4fd4 100644 (file)
@@ -36,8 +36,8 @@ import org.apache.fop.fo.properties.Property;
 
 
 /**
- * Class modelling the fo:table-row object. See Sec. 6.7.9 of the XSL-FO
- * Standard.
+ * Class modelling the fo:table-row object.
+ * @todo implement validateChildNode()
  */
 public class TableRow extends FObj {
 
index fe294f9e9f02170fd7bdc3840f4614829ec32a21..5f01c7fa9ca24f84f8f3c9b5fe49dd7a886957d1 100644 (file)
@@ -34,6 +34,7 @@ import org.apache.fop.fo.FObjMixed;
  *
  * Content: (#PCDATA|%inline;|%block;)*
  * Properties: id
+ * @todo implement validateChildNode()
  */
 public class Wrapper extends FObjMixed {
 
index 37233ca14fc691d84ccbd80be0b6cb0ceb1ed58f..c756749ca8b14722eb5c51a2978a52d4a4756c1c 100644 (file)
@@ -33,7 +33,7 @@ import org.apache.fop.fo.FObj;
 import org.apache.fop.layoutmgr.FlowLayoutManager;
 
 /**
- * Class modelling the fo:flow object. See Sec. 6.4.18 in the XSL-FO Standard.
+ * Class modelling the fo:flow object.
  */
 public class Flow extends FObj {
 
index 2d143e4212e9a331702ed3aa7d4883164865029d..a0ad061c34fd8c551724f2e73b21e6bff4c3372e 100644 (file)
@@ -30,7 +30,6 @@ import org.xml.sax.SAXParseException;
 // FOP
 import org.apache.fop.fo.FONode;
 import org.apache.fop.fo.FObj;
-import org.apache.fop.apps.FOPException;
 
 /**
  * The layout-master-set formatting object.
@@ -53,6 +52,24 @@ public class LayoutMasterSet extends FObj {
         super(parent);
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#addProperties
+     */
+    protected void addProperties(Attributes attlist) throws SAXParseException {
+        super.addProperties(attlist);
+
+        if (parent.getName().equals("fo:root")) {
+            Root root = (Root)parent;
+            root.setLayoutMasterSet(this);
+        } else {
+            throw new SAXParseException("fo:layout-master-set must be child of fo:root, not "
+                                   + parent.getName(), locator);
+        }
+
+        this.simplePageMasters = new java.util.HashMap();
+        this.pageSequenceMasters = new java.util.HashMap();
+    }
+
     /**
      * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String)
         XSL/FOP: (simple-page-master|page-sequence-master)+
@@ -79,40 +96,32 @@ public class LayoutMasterSet extends FObj {
     }
 
     /**
-     * @see org.apache.fop.fo.FObj#addProperties
+     * Add a simple page master.
+     * The name is checked to throw an error if already added.
+     * @param sPM simple-page-master to add
+     * @throws SAXParseException if there's a problem with name uniqueness
      */
-    protected void addProperties(Attributes attlist) throws SAXParseException {
-        super.addProperties(attlist);
+    protected void addSimplePageMaster(SimplePageMaster sPM)
+                throws SAXParseException {
 
-        if (parent.getName().equals("fo:root")) {
-            Root root = (Root)parent;
-            root.setLayoutMasterSet(this);
-        } else {
-            throw new SAXParseException("fo:layout-master-set must be child of fo:root, not "
-                                   + parent.getName(), locator);
+        // check for duplication of master-name
+        String masterName = sPM.getPropString(PR_MASTER_NAME);
+        if (existsName(masterName)) {
+            throw new SAXParseException("'master-name' ("
+               + masterName
+               + ") must be unique "
+               + "across page-masters and page-sequence-masters", sPM.locator);
         }
-
-        this.simplePageMasters = new java.util.HashMap();
-        this.pageSequenceMasters = new java.util.HashMap();
+        this.simplePageMasters.put(masterName, sPM);
     }
 
-    /**
-     * Add a simple page master.
-     * The name is checked to throw an error if already added.
-     * @param simplePageMaster simple-page-master to add
-     * @throws FOPException if there's a problem with name uniqueness
-     */
-    protected void addSimplePageMaster(SimplePageMaster simplePageMaster)
-                throws FOPException {
-        // check against duplication of master-name
-        if (existsName(simplePageMaster.getMasterName())) {
-            throw new FOPException("'master-name' ("
-                                   + simplePageMaster.getMasterName()
-                                   + ") must be unique "
-                                   + "across page-masters and page-sequence-masters");
+    private boolean existsName(String masterName) {
+        if (simplePageMasters.containsKey(masterName)
+                || pageSequenceMasters.containsKey(masterName)) {
+            return true;
+        } else {
+            return false;
         }
-        this.simplePageMasters.put(simplePageMaster.getMasterName(),
-                                   simplePageMaster);
     }
 
     /**
@@ -130,19 +139,20 @@ public class LayoutMasterSet extends FObj {
      * Add a page sequence master.
      * The name is checked to throw an error if already added.
      * @param masterName name for the master
-     * @param pageSequenceMaster PageSequenceMaster instance
-     * @throws FOPException if there's a problem with name uniqueness
+     * @param pSM PageSequenceMaster instance
+     * @throws SAXParseException if there's a problem with name uniqueness
      */
     protected void addPageSequenceMaster(String masterName,
-                                        PageSequenceMaster pageSequenceMaster)
-                throws FOPException {
+                                        PageSequenceMaster pSM)
+                throws SAXParseException {
         // check against duplication of master-name
         if (existsName(masterName)) {
-            throw new FOPException("'master-name' (" + masterName
-                                   + ") must be unique "
-                                   + "across page-masters and page-sequence-masters");
+            throw new SAXParseException("'master-name' ("
+               + masterName
+               + ") must be unique "
+               + "across page-masters and page-sequence-masters", pSM.locator);
         }
-        this.pageSequenceMasters.put(masterName, pageSequenceMaster);
+        this.pageSequenceMasters.put(masterName, pSM);
     }
 
     /**
@@ -156,15 +166,6 @@ public class LayoutMasterSet extends FObj {
         return (PageSequenceMaster)this.pageSequenceMasters.get(masterName);
     }
 
-    private boolean existsName(String masterName) {
-        if (simplePageMasters.containsKey(masterName)
-                || pageSequenceMasters.containsKey(masterName)) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
     /**
      * Section 7.25.7: check to see that if a region-name is a
      * duplicate, that it maps to the same fo region-class.
@@ -215,6 +216,9 @@ public class LayoutMasterSet extends FObj {
         return false;
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#getName()
+     */
     public String getName() {
         return "fo:layout-master-set";
     }
index 390477043fec668102ea6cbc9c915ccaa4588d34..7a586cd6009c8f832bfbd0edd65f40c93e2e5a68 100644 (file)
@@ -66,11 +66,11 @@ public abstract class PageMasterReference extends FObj
      * Checks that the parent is the right element. The default implementation
      * checks for fo:page-sequence-master.
      * @param parent parent node
-     * @throws FOPException If the parent is invalid.
+     * @throws SAXParseException If the parent is invalid.
      */
     protected void validateParent(FONode parent) throws SAXParseException {
         if (parent.getName().equals("fo:page-sequence-master")) {
-            PageSequenceMaster pageSequenceMaster = (PageSequenceMaster)parent;
+            PageSequenceMaster pageSequenceMaster = (PageSequenceMaster) parent;
 
             if (getMasterName() == null) {
                 getLogger().warn(getName()
index 31629edf8a1e5d631a8f2f968245248d2504a0d4..173e0be8463ec9bc6493dbbf915c9a396dd3062c 100644 (file)
@@ -100,12 +100,7 @@ public class PageSequenceMaster extends FObj {
                 getLogger().warn("page-sequence-master does not have "
                                        + "a master-name and so is being ignored");
             } else {
-                try {
-                    this.layoutMasterSet.addPageSequenceMaster(masterName, this);
-                } catch (Exception e) {
-                    throw new SAXParseException("Error with adding Page Sequence Master: " 
-                        + e.getMessage(), locator);
-                }
+                this.layoutMasterSet.addPageSequenceMaster(masterName, this);
             }
         } else {
             throw new SAXParseException("fo:page-sequence-master must be child "
index ffc16940fe292f2b4d6cab32f50d2107c4bda303..20837c65d98b6594369a3e0d2c063eae2e4325d5 100644 (file)
@@ -66,15 +66,6 @@ public abstract class Region extends FObj {
         regionId = id;
     }
 
-    /**
-     * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String)
-     * XSL Content Model: empty
-     */
-    protected void validateChildNode(Locator loc, String nsURI, String localName) 
-        throws SAXParseException {
-            invalidChildError(loc, nsURI, localName);
-    }
-
     /**
      * @see org.apache.fop.fo.FObj#addProperties
      */
@@ -111,6 +102,15 @@ public abstract class Region extends FObj {
         this.overflow = this.propertyList.get(PR_OVERFLOW).getEnum();
     }
 
+    /**
+     * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String)
+     * XSL Content Model: empty
+     */
+    protected void validateChildNode(Locator loc, String nsURI, String localName) 
+        throws SAXParseException {
+            invalidChildError(loc, nsURI, localName);
+    }
+
     public abstract Rectangle getViewportRectangle(FODimension pageRefRect);
 
     /**
index 0e6223e549dde265a1cb344babc703b5c314107d..99d9f71e62fe1c0469c3de2461fc152ade13ad3d 100644 (file)
@@ -31,8 +31,7 @@ import org.apache.fop.fo.FONode;
  * This handles a reference with a specified number of repeating
  * instances of the referenced page master (may have no limit).
  */
-public class RepeatablePageMasterReference extends PageMasterReference
-            implements SubSequenceSpecifier {
+public class RepeatablePageMasterReference extends PageMasterReference {
 
     private static final int INFINITE = -1;
 
index e334988b2816f9acb6e8852f49de4fec2e0a63af..7a4debebfb6db30642f24017a79e375bd3fcb8bd 100644 (file)
@@ -25,6 +25,7 @@ import java.util.Map;
 
 // XML
 import org.xml.sax.Attributes;
+import org.xml.sax.Locator;
 import org.xml.sax.SAXParseException;
 
 // FOP
@@ -44,6 +45,13 @@ public class SimplePageMaster extends FObj {
 
     private String masterName;
 
+    // used for node validation
+    private boolean hasRegionBody = false;
+    private boolean hasRegionBefore = false;
+    private boolean hasRegionAfter = false;
+    private boolean hasRegionStart = false;
+    private boolean hasRegionEnd = false;
+
     /**
      * @see org.apache.fop.fo.FONode#FONode(FONode)
      */
@@ -57,29 +65,90 @@ public class SimplePageMaster extends FObj {
     protected void addProperties(Attributes attlist) throws SAXParseException {
         super.addProperties(attlist);
 
-        if (parent.getName().equals("fo:layout-master-set")) {
-            LayoutMasterSet layoutMasterSet = (LayoutMasterSet)parent;
-            masterName = this.propertyList.get(PR_MASTER_NAME).getString();
-            if (masterName == null) {
-                getLogger().warn("simple-page-master does not have "
-                        + "a master-name and so is being ignored");
-            } else {
-                try {
-                    layoutMasterSet.addSimplePageMaster(this);
-                } catch (Exception e) {
-                    throw new SAXParseException("Error with adding Page Sequence Master: " 
-                        + e.getMessage(), locator);
-                }
-            }
+        LayoutMasterSet layoutMasterSet = (LayoutMasterSet) parent;
+
+        if (getPropString(PR_MASTER_NAME) == null) {
+            missingPropertyError("master-name");
         } else {
-            throw new SAXParseException("fo:simple-page-master must be child "
-                    + "of fo:layout-master-set, not "
-                    + parent.getName(), locator);
+            layoutMasterSet.addSimplePageMaster(this);
         }
+
         //Well, there are only 5 regions so we can save a bit of memory here
         regions = new HashMap(5);
     }
 
+    /**
+     * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String)
+     * XSL Content Model: (region-body,region-before?,region-after?,region-start?,region-end?)
+     */
+    protected void validateChildNode(Locator loc, String nsURI, String localName) 
+        throws SAXParseException {
+            if (nsURI == FO_URI && localName.equals("region-body")) {
+                if (hasRegionBody) {
+                    tooManyNodesError(loc, "fo:region-body");
+                } else {
+                    hasRegionBody = true;
+                }
+            } else if (nsURI == FO_URI && localName.equals("region-before")) {
+                if (!hasRegionBody) {
+                    nodesOutOfOrderError(loc, "fo:region-body", "fo:region-before");
+                } else if (hasRegionBefore) {
+                    tooManyNodesError(loc, "fo:region-before");
+                } else if (hasRegionAfter) {
+                    nodesOutOfOrderError(loc, "fo:region-before", "fo:region-after");
+                } else if (hasRegionStart) {
+                    nodesOutOfOrderError(loc, "fo:region-before", "fo:region-start");
+                } else if (hasRegionEnd) {
+                    nodesOutOfOrderError(loc, "fo:region-before", "fo:region-end");
+                } else {
+                    hasRegionBody = true;
+                }
+            } else if (nsURI == FO_URI && localName.equals("region-after")) {
+                if (!hasRegionBody) {
+                    nodesOutOfOrderError(loc, "fo:region-body", "fo:region-after");
+                } else if (hasRegionAfter) {
+                    tooManyNodesError(loc, "fo:region-after");
+                } else if (hasRegionStart) {
+                    nodesOutOfOrderError(loc, "fo:region-after", "fo:region-start");
+                } else if (hasRegionEnd) {
+                    nodesOutOfOrderError(loc, "fo:region-after", "fo:region-end");
+                } else {
+                    hasRegionAfter = true;
+                }
+            } else if (nsURI == FO_URI && localName.equals("region-start")) {
+                if (!hasRegionBody) {
+                    nodesOutOfOrderError(loc, "fo:region-body", "fo:region-start");
+                } else if (hasRegionStart) {
+                    tooManyNodesError(loc, "fo:region-start");
+                } else if (hasRegionEnd) {
+                    nodesOutOfOrderError(loc, "fo:region-start", "fo:region-end");
+                } else {
+                    hasRegionStart = true;
+                }
+            } else if (nsURI == FO_URI && localName.equals("region-end")) {
+                if (!hasRegionBody) {
+                    nodesOutOfOrderError(loc, "fo:region-body", "fo:region-end");
+                } else if (hasRegionEnd) {
+                    tooManyNodesError(loc, "fo:region-end");
+                } else {
+                    hasRegionEnd = true;
+                }
+            } else {
+                invalidChildError(loc, nsURI, localName);
+            }
+    }
+
+    /**
+     * Make sure content model satisfied.
+     * @see org.apache.fop.fo.FONode#end
+     */
+    protected void endOfNode() throws SAXParseException {
+        if (!hasRegionBody) {
+            missingChildElementError("(region-body, region-before?," +
+                " region-after?, region-start?, region-end?)");
+        }
+    }
+
     /**
      * @see org.apache.fop.fo.FObj#generatesReferenceAreas()
      */
@@ -92,19 +161,14 @@ public class SimplePageMaster extends FObj {
      * @return the page master name
      */
     public String getMasterName() {
-        return masterName;
+        return getPropString(PR_MASTER_NAME);
     }
 
     /**
      * @see org.apache.fop.fo.FONode#addChildNode(FONode)
      */
     protected void addChildNode(FONode child) {
-        if (child instanceof Region) {
-            addRegion((Region)child);
-        } else {
-            getLogger().error("SimplePageMaster cannot have child of type "
-                    + child.getName());
-        }
+        addRegion((Region)child);
     }
 
     /**
@@ -113,13 +177,7 @@ public class SimplePageMaster extends FObj {
      */
     protected void addRegion(Region region) {
         String key = String.valueOf(region.getRegionClassCode());
-        if (regions.containsKey(key)) {
-            getLogger().error("Only one region of class " + region.getRegionName()
-                    + " allowed within a simple-page-master. The duplicate"
-                    + " region (" + region.getName() + ") is ignored.");
-        } else {
-            regions.put(key, region);
-        }
+        regions.put(key, region);
     }
 
     /**
@@ -148,7 +206,7 @@ public class SimplePageMaster extends FObj {
     protected boolean regionNameExists(String regionName) {
         for (Iterator regenum = regions.values().iterator();
                 regenum.hasNext();) {
-            Region r = (Region)regenum.next();
+            Region r = (Region) regenum.next();
             if (r.getRegionName().equals(regionName)) {
                 return true;
             }
@@ -156,6 +214,9 @@ public class SimplePageMaster extends FObj {
         return false;
     }
 
+    /**
+     * @see org.apache.fop.fo.FObj#getName()
+     */
     public String getName() {
         return "fo:simple-page-master";
     }
index f90e5c584c77138b0aa1ba493e60b25e833e0286..94642714f157a9e3d0499b6c8bd64f00eef21866 100644 (file)
@@ -31,8 +31,7 @@ import org.apache.fop.fo.FONode;
  * This is a reference for a single page. It returns the
  * master name only once until reset.
  */
-public class SinglePageMasterReference extends PageMasterReference
-            implements SubSequenceSpecifier {
+public class SinglePageMasterReference extends PageMasterReference {
 
     private static final int FIRST = 0;
     private static final int DONE = 1;
index 02f725676eca0ca4b140f67bc04764aa721e4744..81b8e67af8c93de40f708f8bc30239f80d9bb2d1 100644 (file)
@@ -27,8 +27,7 @@ import org.xml.sax.SAXParseException;
 import org.apache.fop.fo.FONode;
 
 /**
- * Class modelling the fo:static-content object. See Sec. 6.4.19 of the XSL-FO
- * Standard.
+ * Class modelling the fo:static-content object.
  */
 public class StaticContent extends Flow {
 
index f887db91b91653cfe3edfc8b3f8e4cd0926eb9f0..8f1d1158adcd79c7ab320a5ff227aa6dae61b890 100644 (file)
@@ -39,7 +39,7 @@ import org.apache.fop.fonts.Font;
 import org.apache.fop.fo.properties.CommonMarginInline;
 
 /**
- * Class modelling the fo:title object. See Sec. 6.4.20 in the XSL-FO Standard.
+ * Class modelling the fo:title object.
  */
 public class Title extends FObjMixed {
 
index c181097946d4505bc9210f9dbd0ef90eff26611d..6f393b05445bed650f3057b4bfa83085dfb86ef6 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index e8aca5b022bd719c03a3b1695836ddb1903c6c2d..013a8db8abad8b54f950ed7d1965f20f36f80e2e 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 8ed2485eac36812e2fac2d699a3d2c728786dc08..8757f763b614885a459af68d6aee5604232884c7 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index a3443bf8a8e3b51e598010f609de111986f1c736..b729e9ab6fbe8599c3453bdbaf1265078051e15d 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index b4a800577f3b1a049f7d3dbbf964bf696e41d1db..01ea34c245650ff1ba2c060229a6735ccc43781c 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 901468f403cfb4a0eec50d38dd33b84e2b645504..37701285b14c3657f3767d1cf8f48c6dd2c07adf 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 2e3eb611280906fff4765ade0dfd5fb6099d7173..a4b252ac44c2355f4a022fb1b2a293f2ab2431b6 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 5269c7a29bb944baa09d652e928dbd6182964ab9..998458d38550cfb56d769ce7dd0bf02ed700f7d3 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index b0516a4bc4f54c47dfa20e398183b68c46fe1ba2..a9c920b7b96f2b5dc85a13f1702cadaf584e18da 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 5a29b22d3e8fa0edcda7dc0a647307f1ebe7507f..8740f4429667e6f0248740828fda14a6b5c0b05c 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index df3d030b3739e27045a6a8964aeb18459423069d..d278e818a90dead629ef8afeaaa6ee43ad214ea6 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="3cm"/>
         <fo:region-body margin-top="4cm" margin-bottom="3cm"/>
+        <fo:region-before extent="3cm"/>
         <fo:region-after extent="3cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 31f6eb251bc5bb59c6863458424cc024f45721fd..ab3d91be03b1005387b8f07524c445763af1f000 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 6e2f48e5e76bb1170b4292cc48b441ea083c9805..8ae7aeee8fe453b744f2c5cd26943cd8ef75325b 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index d6f43d43291917c84c50eec2ab9f74c30bd8b3a0..ba808219b36233bf10a0bfdf1f41dcf0c45ef4ec 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1in"
                     margin-right="0.75in">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index b7cce9e2bbc31e960e0f092aa3124cef544ba741..384ecf21ff672c485f612002cc35b9ec84fbac7d 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 31ddf5bc93ced251c3f867cf5453cf184d0055af..abd022c93bd4b679b8add02778c2e1114c59b004 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 267bec7c15ba35248b1eb321fe527a3035a1c627..640fe462c787bb8cb1e91cdd433dfca0e23c69ba 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index c2b8a6eb9422526025b72cd02f31a10f89866557..9c47fd93c2701570d15045a1a1806af4b83459f4 100644 (file)
@@ -9,7 +9,7 @@
                            margin-bottom="2cm"
                            margin-left="2.5cm"
                            margin-right="2.5cm">
-    <fo:region-body margin-top="3cm"/>
+     <fo:region-body margin-top="3cm"/>
      <fo:region-before extent="3cm"/>
      <fo:region-after extent="1.5cm"/>
     </fo:simple-page-master>
index 2052f4579e98110fc7aaf30bf246a37a6de65013..74028f13f37b8c0faef95c75915cd55ed9246077 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index b352970be837744df386763b15100ad84544612c..cd3b37bb1b35e1598a0a3dac917e84c300083b9b 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 4e4dcf7ed43f6db075680d989d2cf942ec9ac69b..f3b23fdb8c862130ff575dc0d9a2d5c181834ba8 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 2e3d7ce5b6ca979b412de2266c60a2af5a950032..f18adaba892b355970330ce5bb10c1b0105b2578 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index c29e18734a4a44484b008878f65e9b9322f72124..0df02dd347a20ce0709bbd384c0a938364d35fcb 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1in"
                     margin-right="0.75in">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 12ac01113d49e04fc42d80d1ed2c98aaf64e5f6f..ad572503a61598d3b6e7ddb76dc5cc6e38b595c4 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index d5505ca0f32cd92ae9d449fe22588e0cb05c58db..a0a001880f9e427022d9d522a35ffa08f62f5e03 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 4f4b57d606491d3042c6fab6fdf98be3ef5be849..cefb2f56c67fa3e1bff14aebb13454b76b2064ae 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 98889e4447d6c3194e831fea3fe8d2c68c0b7626..745eec8e95f8406c3fb4a3426004b8737026c1d0 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index d02bceeeae062c651a1d75db1ca63459b03e27a2..b318775bbe0a1eaf271aa701ee7911a1ece5aae4 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
   </fo:layout-master-set>
index 79a42192587a29fa80660c7475598f4a43b43737..8f89fd06d2f46ef07b2a2ef99794655ada4e66cc 100644 (file)
@@ -8,8 +8,8 @@
                     margin-bottom="1cm"
                     margin-left="1.5cm"
                     margin-right="1.5cm">
-        <fo:region-before extent="2.5cm"/>
         <fo:region-body margin-top="3cm" margin-bottom="3cm"/>
+        <fo:region-before extent="2.5cm"/>
         <fo:region-after extent="2.5cm"/>
       </fo:simple-page-master>
       <fo:simple-page-master master-name="no-overflow"
index 606c652eaa31a684eb49eb2036da98ad94ae64b7..edc8f72af801cac3a3dbfdd022cc5605bc9c87d8 100644 (file)
@@ -21,8 +21,8 @@
     <fo:root>
       <fo:layout-master-set>
         <fo:simple-page-master master-name="one" page-height="29.7cm" page-width="21cm" margin-top="0.5cm" margin-bottom="0.5cm" margin-left="1.5cm" margin-right="1.5cm">
-          <fo:region-before extent="1.5cm"/>
           <fo:region-body margin-top="1.5cm" margin-bottom="2cm"/>
+          <fo:region-before extent="1.5cm"/>
           <fo:region-after extent="1.5cm"/>
         </fo:simple-page-master>
       </fo:layout-master-set>