gmazza 2005/03/04 20:10:36 Modified: src/java/org/apache/fop/fo/flow ListItemBody.java TableHeader.java src/java/org/apache/fop/fo/pagination Flow.java Log: validateChildNode() for fo:list-item-body implemented; redundant check in flow removed. Revision Changes Path 1.22 +28 -0 xml-fop/src/java/org/apache/fop/fo/flow/ListItemBody.java Index: ListItemBody.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/ListItemBody.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- ListItemBody.java 28 Oct 2004 10:00:21 -0000 1.21 +++ ListItemBody.java 5 Mar 2005 04:10:36 -0000 1.22 @@ -18,9 +18,12 @@ package org.apache.fop.fo.flow; +import org.xml.sax.Locator; + import org.apache.fop.apps.FOPException; import org.apache.fop.fo.FONode; import org.apache.fop.fo.FObj; +import org.apache.fop.fo.ValidationException; import org.apache.fop.fo.PropertyList; import org.apache.fop.fo.properties.CommonAccessibility; import org.apache.fop.fo.properties.KeepProperty; @@ -36,6 +39,9 @@ private KeepProperty keepTogether; // End of property values + /** used for FO validation */ + private boolean blockItemFound = false; + /** * @param parent FONode that is the parent of this object */ @@ -61,9 +67,31 @@ } /** + * @see org.apache.fop.fo.FONode#validateChildNode(Locator, String, String) + * XSL Content Model: marker* (%block;)+ + */ + protected void validateChildNode(Locator loc, String nsURI, String localName) + throws ValidationException { + if (nsURI == FO_URI && localName.equals("marker")) { + if (blockItemFound) { + nodesOutOfOrderError(loc, "fo:marker", "(%block;)"); + } + } else if (!isBlockItem(nsURI, localName)) { + invalidChildError(loc, nsURI, localName); + } else { + blockItemFound = true; + } + } + + /** + * Make sure content model satisfied, if so then tell the + * FOEventHandler that we are at the end of the flow. * @see org.apache.fop.fo.FONode#endOfNode */ protected void endOfNode() throws FOPException { + if (!blockItemFound) { + missingChildElementError("marker* (%block;)+"); + } getFOEventHandler().endListBody(); } 1.13 +0 -1 xml-fop/src/java/org/apache/fop/fo/flow/TableHeader.java Index: TableHeader.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/flow/TableHeader.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- TableHeader.java 5 Mar 2005 00:32:25 -0000 1.12 +++ TableHeader.java 5 Mar 2005 04:10:36 -0000 1.13 @@ -25,7 +25,6 @@ /** * Class modelling the fo:table-header object. - * @todo implement validateChildNode() */ public class TableHeader extends TableBody { 1.39 +1 -6 xml-fop/src/java/org/apache/fop/fo/pagination/Flow.java Index: Flow.java =================================================================== RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/Flow.java,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- Flow.java 24 Dec 2004 12:06:26 -0000 1.38 +++ Flow.java 5 Mar 2005 04:10:36 -0000 1.39 @@ -66,11 +66,6 @@ * @see org.apache.fop.fo.FONode#startOfNode */ protected void startOfNode() throws FOPException { - if (!parent.getName().equals("fo:page-sequence")) { - throw new ValidationException("flow must be child of " - + "page-sequence, not " + parent.getName(), locator); - } - if (flowName == null || flowName.equals("")) { missingPropertyError("flow-name"); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]