aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build.xml18
-rw-r--r--src/codegen/allprops.xml3
-rw-r--r--src/codegen/constants.xml55
-rw-r--r--src/codegen/constants.xsl (renamed from src/codegen/genconst.xsl)88
-rw-r--r--src/codegen/foelements.xml1085
-rw-r--r--src/codegen/propinc.xsl8
-rw-r--r--src/java/org/apache/fop/fo/Constants.java489
7 files changed, 1733 insertions, 13 deletions
diff --git a/build.xml b/build.xml
index e0cfd92c0..dfd5c4242 100644
--- a/build.xml
+++ b/build.xml
@@ -207,13 +207,11 @@ list of possible build targets.
<property name="src.propmaker.xsl" value="${src.codegen}/propmaker.xsl"/>
<property name="foproperties.xml" value="${build.codegen}/foproperties.xml"/>
<property name="colorkw.xml" value="${build.codegen}/colorkw.xml"/>
- <property name="allprops.xml" value="${build.codegen}/allprops.xml"/>
<property name="properties.xsl" value="${build.codegen}/properties.xsl"/>
<property name="propmap.xsl" value="${build.codegen}/propmap.xsl"/>
<property name="enumgen.xsl" value="${build.codegen}/enumgen.xsl"/>
<property name="propinc.xsl" value="${build.codegen}/propinc.xsl"/>
- <property name="genconst.xsl" value="${build.codegen}/genconst.xsl"/>
<property name="src.charlist.xsl" value="${src.codegen}/code-point-mapping.xsl"/>
<property name="encodings.xml" value="${build.codegen}/encodings.xml"/>
<property name="charlist.xsl" value="${build.codegen}/code-point-mapping.xsl"/>
@@ -330,6 +328,7 @@ list of possible build targets.
<mkdir dir="${build.dest}/hyph"/>
</target>
+
<!-- =================================================================== -->
<!-- Generate the source code -->
<!-- =================================================================== -->
@@ -353,9 +352,6 @@ list of possible build targets.
<targetfilelist dir="${basedir}" files="${build.gensrc}/${replacestring}/fo/properties/fo_${ignore_this},${build.gensrc}/${replacestring}/fo/properties/FOPropertyMapping.java,${build.gensrc}/${replacestring}/fo/properties/foenums_${ignore_this}"/>
</dependset>
- <style in="${allprops.xml}" style="${genconst.xsl}"
- out="${build.gensrc}/${replacestring}/fo/properties/Constants.java"/>
-
<style in="${foproperties.xml}" style="${properties.xsl}"
out="${build.gensrc}/${replacestring}/fo/properties/fo_${ignore_this}"/>
<style in="${foproperties.xml}" style="${propmap.xsl}"
@@ -918,6 +914,17 @@ list of possible build targets.
</target>
<!-- =================================================================== -->
+ <!-- Helper task to generate source files that have already been -->
+ <!-- checked into CVS. For these files, CVS version is the official one -->
+ <!-- and may have updates that will *not* be generated by below. This -->
+ <!-- target should never be part of the normal build process. -->
+ <!-- =================================================================== -->
+ <target name="xsltToJava" >
+ <style in="src\codegen\constants.xml" style="src\codegen\constants.xsl"
+ out="Constants.java"/>
+ </target>
+
+ <!-- =================================================================== -->
<!-- Special target for Gump -->
<!-- =================================================================== -->
<target name="gump" depends="all, javadocs"/>
@@ -997,4 +1004,5 @@ xdocs. Point schemas.dir to Forrest's 'schemas' directory.">
</xmlcatalog>
</xmlvalidate>
</target>
+
</project>
diff --git a/src/codegen/allprops.xml b/src/codegen/allprops.xml
deleted file mode 100644
index 480a7f3c9..000000000
--- a/src/codegen/allprops.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<allprops>
-<propfile>foproperties.xml</propfile>
-</allprops>
diff --git a/src/codegen/constants.xml b/src/codegen/constants.xml
new file mode 100644
index 000000000..83fb9df22
--- /dev/null
+++ b/src/codegen/constants.xml
@@ -0,0 +1,55 @@
+<!--
+ * $Id$
+ * ============================================================================
+ * The Apache Software License, Version 1.1
+ * ============================================================================
+ *
+ * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if any, must
+ * include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if
+ * and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "FOP" and "Apache Software Foundation" must not be used to
+ * endorse or promote products derived from this software without prior
+ * written permission. For written permission, please contact
+ * apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache", nor may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ============================================================================
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation and was originally created by
+ * James Tauber <jtauber@jtauber.com>. For more information on the Apache
+ * Software Foundation, please see <http://www.apache.org/>.
+ */
+-->
+<allprops>
+<propfile>foproperties.xml</propfile>
+<elementfile>foelements.xml</elementfile>
+</allprops>
diff --git a/src/codegen/genconst.xsl b/src/codegen/constants.xsl
index 518b3a418..1a2097d10 100644
--- a/src/codegen/genconst.xsl
+++ b/src/codegen/constants.xsl
@@ -1,5 +1,4 @@
-<!--
-$Id$
+<!-- $Id$
============================================================================
The Apache Software License, Version 1.1
============================================================================
@@ -51,22 +50,88 @@ Software Foundation, please see <http://www.apache.org/>.
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:include href="./propinc.xsl"/>
<xsl:output method="text" />
<xsl:template match="allprops">
<xsl:variable name="constlist">
- <xsl:for-each select="document(propfile)//enumeration/value">
+ <xsl:for-each select="document(propfile)//generic-property-list
+ //enumeration/value">
<xsl:sort select="@const"/>
<xsl:value-of select="@const"/>:</xsl:for-each>
</xsl:variable>
+
+<xsl:variable name="propertylist">
+ <xsl:for-each select="document(propfile)//generic-property-list//
+ property[not(@type = 'generic')]">
+ <xsl:sort select="name"/>
+ <xsl:text>PR_</xsl:text>
+ <xsl:call-template name="makeEnumConstant">
+ <xsl:with-param name="propstr" select="name" />
+ </xsl:call-template>
+ <xsl:text>:</xsl:text>
+ </xsl:for-each>
+</xsl:variable>
+
+<xsl:variable name="compoundpropertylist">
+ <xsl:for-each select="document(propfile)//generic-property-list//
+ property/compound/subproperty">
+ <xsl:sort select="name"/>
+ <xsl:text>CP_</xsl:text>
+ <xsl:call-template name="makeEnumConstant">
+ <xsl:with-param name="propstr" select="name" />
+ </xsl:call-template>
+ <xsl:text>:</xsl:text>
+ </xsl:for-each>
+</xsl:variable>
+
+
+<xsl:variable name="elementlist">
+ <xsl:for-each select="document(elementfile)//element">
+ <xsl:sort select="name"/>
+ <xsl:text>FO_</xsl:text>
+ <xsl:call-template name="makeEnumConstant">
+ <xsl:with-param name="propstr" select="name" />
+ </xsl:call-template>
+ <xsl:text>:</xsl:text>
+ </xsl:for-each>
+</xsl:variable>
+
<xsl:text>
+
package org.apache.fop.fo.properties;
public interface Constants {</xsl:text>
+
+ // element constants
+<xsl:call-template name="sortconsts">
+ <xsl:with-param name="consts" select="$elementlist"/>
+ <xsl:with-param name="counter" select="'ELEMENT'"/>
+</xsl:call-template>
+
+ // Masks
+ int COMPOUND_SHIFT = 9;
+ int PROPERTY_MASK = (1 &lt;&lt; COMPOUND_SHIFT)-1;
+ int COMPOUND_MASK = ~PROPERTY_MASK;
+
+ // property constants
+<xsl:call-template name="sortconsts">
+ <xsl:with-param name="consts" select="$propertylist"/>
+ <xsl:with-param name="counter" select="'PROPERTY'"/>
+</xsl:call-template>
+
+ // compound property constants
+<xsl:call-template name="sortconsts">
+ <xsl:with-param name="consts" select="$compoundpropertylist"/>
+ <xsl:with-param name="suffix" select="' &lt;&lt; COMPOUND_SHIFT'"/>
+</xsl:call-template>
+
+ // Enumeration constants
<xsl:call-template name="sortconsts">
<xsl:with-param name="consts" select="$constlist"/>
</xsl:call-template>
+
<xsl:text>
}
</xsl:text>
@@ -76,27 +141,40 @@ public interface Constants {</xsl:text>
<xsl:param name="consts"/>
<xsl:param name="prevconst"/>
<xsl:param name="num" select="1"/>
+<xsl:param name="suffix" select="''"/>
+<xsl:param name="counter" select="''"/>
<xsl:variable name="cval" select="substring-before($consts,':')"/>
<xsl:choose>
- <xsl:when test="$consts = ''"/>
+ <xsl:when test="$consts = ''">
+ <xsl:if test="$counter != ''">
+ <xsl:text>
+ int </xsl:text>
+ <xsl:value-of select="$counter"/>_COUNT = <xsl:value-of select="$num - 1"/>;
+ </xsl:if>
+ </xsl:when>
<xsl:when test="$cval = $prevconst">
<xsl:call-template name="sortconsts">
<xsl:with-param name="consts" select="substring-after($consts,concat($cval, ':'))"/>
<xsl:with-param name="num" select="$num"/>
<xsl:with-param name="prevconst" select="$cval"/>
+ <xsl:with-param name="counter" select="$counter"/>
+ <xsl:with-param name="suffix" select="$suffix"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:text>
- int </xsl:text>
+ int </xsl:text>
<xsl:value-of select="$cval"/>
<xsl:text> = </xsl:text>
<xsl:value-of select="$num"/>
+ <xsl:value-of select="$suffix"/>
<xsl:text>;</xsl:text>
<xsl:call-template name="sortconsts">
<xsl:with-param name="consts" select="substring-after($consts,concat($cval, ':'))"/>
<xsl:with-param name="num" select="$num + 1"/>
<xsl:with-param name="prevconst" select="$cval"/>
+ <xsl:with-param name="counter" select="$counter"/>
+ <xsl:with-param name="suffix" select="$suffix"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
diff --git a/src/codegen/foelements.xml b/src/codegen/foelements.xml
new file mode 100644
index 000000000..35c7ed97f
--- /dev/null
+++ b/src/codegen/foelements.xml
@@ -0,0 +1,1085 @@
+<root>
+<common>
+ <name>CommonAccessibilityProperties</name>
+ <property>source-document</property>
+ <property>role</property>
+</common>
+
+
+<common>
+ <name>CommonAbsolutePositionProperties</name>
+ <property>absolute-position</property>
+ <property>position</property>
+ <property>top</property>
+ <property>right</property>
+ <property>bottom</property>
+ <property>left</property>
+</common>
+
+<common>
+ <name>CommonAuralProperties</name>
+ <property>azimuth</property>
+ <property>cue-after</property>
+ <property>cue-before</property>
+ <property>cue</property>
+ <property>elevation</property>
+ <property>pause-after</property>
+ <property>pause-before</property>
+ <property>pause</property>
+ <property>pitch</property>
+ <property>pitch-range</property>
+ <property>play-during</property>
+ <property>richness</property>
+ <property>speak</property>
+ <property>speak-header</property>
+ <property>speak-numeral</property>
+ <property>speak-punctuation</property>
+ <property>speech-rate</property>
+ <property>stress</property>
+ <property>voice-family</property>
+ <property>volume</property>
+</common>
+
+<common>
+ <name>CommonBorderPaddingBackgroundProperties</name>
+ <property>background-attachment</property>
+ <property>background-color</property>
+ <property>background-image</property>
+ <property>background-repeat</property>
+ <property>background-position-horizontal</property>
+ <property>background-position-vertical</property>
+ <property>border-before-color</property>
+ <property>border-before-style</property>
+ <property>border-before-width</property>
+ <property>border-after-color</property>
+ <property>border-after-style</property>
+ <property>border-after-width</property>
+ <property>border-start-color</property>
+ <property>border-start-style</property>
+ <property>border-start-width</property>
+ <property>border-end-color</property>
+ <property>border-end-style</property>
+ <property>border-end-width</property>
+ <property>border-top-color</property>
+ <property>border-top-style</property>
+ <property>border-top-width</property>
+ <property>border-bottom-color</property>
+ <property>border-bottom-style</property>
+ <property>border-bottom-width</property>
+ <property>border-left-color</property>
+ <property>border-left-style</property>
+ <property>border-left-width</property>
+ <property>border-right-color</property>
+ <property>border-right-style</property>
+ <property>border-right-width</property>
+ <property>padding-before</property>
+ <property>padding-after</property>
+ <property>padding-start</property>
+ <property>padding-end</property>
+ <property>padding-top</property>
+ <property>padding-bottom</property>
+ <property>padding-left</property>
+ <property>padding-right</property>
+
+ <!-- shorthands -->
+ <property>border</property>
+ <property>border-style</property>
+ <property>border-width</property>
+ <property>border-color</property>
+ <property>border-top</property>
+ <property>border-bottom</property>
+ <property>border-left</property>
+ <property>border-right</property>
+ <property>padding</property>
+
+</common>
+
+<common>
+ <name>CommonFontProperties</name>
+ <property>font</property>
+ <property>font-family</property>
+ <property>font-selection-strategy</property>
+ <property>font-size</property>
+ <property>font-stretch</property>
+ <property>font-size-adjust</property>
+ <property>font-style</property>
+ <property>font-variant</property>
+ <property>font-weight</property>
+</common>
+
+<common>
+ <name>CommonHyphenationProperties</name>
+ <property>country</property>
+ <property>language</property>
+ <property>script</property>
+ <property>hyphenate</property>
+ <property>hyphenation-character</property>
+ <property>hyphenation-push-character-count</property>
+ <property>hyphenation-remain-character-count</property>
+</common>
+
+<common>
+ <name>CommonMarginPropertiesBlock</name>
+ <property>margin</property>
+ <property>margin-top</property>
+ <property>margin-bottom</property>
+ <property>margin-left</property>
+ <property>margin-right</property>
+ <property>space-before</property>
+ <property>space-after</property>
+ <property>start-indent</property>
+ <property>end-indent</property>
+</common>
+
+
+<common>
+ <name>CommonMarginPropertiesInline</name>
+ <property>space-end</property>
+ <property>space-start</property>
+</common>
+
+<common>
+ <name>CommonRelativePositionProperties</name>
+ <property>relative-position</property>
+</common>
+
+
+
+
+<element>
+ <name>root</name>
+ <property>media-usage</property>
+ <content>layout-master-set</content>
+ <content>declaration</content>
+ <content>page-sequence</content>
+</element>
+
+<element>
+ <name>declaration</name>
+ <content>color-profile</content>
+</element>
+
+<element>
+ <name>color-profile</name>
+ <property>src</property>
+ <property>color-profile-name</property>
+ <property>rendering-intent</property>
+</element>
+
+<element>
+ <name>page-sequence</name>
+ <property>country</property>
+ <property>format</property>
+ <property>language</property>
+ <property>letter-value</property>
+ <property>grouping-separator</property>
+ <property>grouping-size</property>
+ <property>id</property>
+ <property>initial-page-number</property>
+ <property>force-page-count</property>
+ <property>master-reference</property>
+ <content>title</content>
+ <content>static-content</content>
+ <content>flow</content>
+</element>
+
+<element>
+ <name>layout-master-set</name>
+ <property>master-name</property>
+ <content>simple-page-master</content>
+ <content>page-sequence-master</content>
+</element>
+
+<element>
+ <name>page-sequence-master</name>
+ <property>master-name</property>
+ <content>single-page-master-reference</content>
+ <content>repeatable-page-master-reference</content>
+ <content>repeatable-page-master-alternatives</content>
+</element>
+
+<element>
+ <name>single-page-master-reference</name>
+ <property>master-reference</property>
+</element>
+
+<element>
+ <name>repeatable-page-master-reference</name>
+ <property>master-reference</property>
+ <property>maximum-repeats</property>
+</element>
+
+<element>
+ <name>repeatable-page-master-alternatives</name>
+ <property>maximum-repeats</property>
+ <content>conditional-page-master-reference</content>
+</element>
+
+<element>
+ <name>conditional-page-master-reference</name>
+ <property>master-reference</property>
+ <property>page-position</property>
+ <property>odd-or-even</property>
+ <property>blank-or-not-blank</property>
+</element>
+
+<element>
+ <name>simple-page-master</name>
+ <common-ref>CommonMarginPropertiesBlock</common-ref>
+ <property>master-name</property>
+ <property>page-height</property>
+ <property>page-width</property>
+ <property>reference-orientation</property>
+ <property>writing-mode</property>
+ <content>region-body</content>
+ <content>region-before</content>
+ <content>region-after</content>
+ <content>region-start</content>
+ <content>region-end</content>
+</element>
+
+<element>
+ <name>region-body</name>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonMarginPropertiesBlock</common-ref>
+ <property>clip</property>
+ <property>column-count</property>
+ <property>column-gap</property>
+ <property>display-align</property>
+ <property>overflow</property>
+ <property>region-name</property>
+ <property>reference-orientation</property>
+ <property>writing-mode</property>
+
+</element>
+
+<element>
+ <name>region-before</name>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <property>clip</property>
+ <property>display-align</property>
+ <property>extent</property>
+ <property>overflow</property>
+ <property>precedence</property>
+ <property>region-name</property>
+ <property>reference-orientation</property>
+ <property>writing-mode</property>
+
+</element>
+
+<element>
+ <name>region-after</name>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <property>clip</property>
+ <property>display-align</property>
+ <property>extent</property>
+ <property>overflow</property>
+ <property>precedence</property>
+ <property>region-name</property>
+ <property>reference-orientation</property>
+ <property>writing-mode</property>
+
+</element>
+
+<element>
+ <name>region-start</name>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <property>clip</property>
+ <property>display-align</property>
+ <property>extent</property>
+ <property>overflow</property>
+ <property>region-name</property>
+ <property>reference-orientation</property>
+ <property>writing-mode</property>
+
+</element>
+
+<element>
+ <name>region-end</name>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <property>clip</property>
+ <property>display-align</property>
+ <property>extent</property>
+ <property>overflow</property>
+ <property>region-name</property>
+ <property>reference-orientation</property>
+ <property>writing-mode</property>
+
+</element>
+
+<element>
+ <name>flow</name>
+ <property>flow-name</property>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>static-content</name>
+ <property>flow-name</property>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>title</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonFontProperties</common-ref>
+ <common-ref>CommonMarginPropertiesInline</common-ref>
+ <property>color</property>
+ <property>line-height</property>
+ <property>visibility</property>
+ <content>%inline;</content>
+</element>
+
+<element>
+ <name>block</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonFontProperties</common-ref>
+ <common-ref>CommonHyphenationProperties</common-ref>
+ <common-ref>CommonMarginPropertiesBlock</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>page-break-after</property>
+ <property>page-break-before</property>
+ <property>break-after</property>
+ <property>break-before</property>
+ <property>color</property>
+ <property>text-depth</property>
+ <property>text-altitude</property>
+ <property>hyphenation-keep</property>
+ <property>hyphenation-ladder-count</property>
+ <property>id</property>
+ <!-- property>intrusion-displace</property -->
+ <property>page-break-inside</property>
+ <property>keep-together</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>last-line-end-indent</property>
+ <property>linefeed-treatment</property>
+ <property>line-height</property>
+ <property>line-height-shift-adjustment</property>
+ <property>line-stacking-strategy</property>
+ <property>orphans</property>
+ <property>white-space-treatment</property>
+ <property>span</property>
+ <property>text-align</property>
+ <property>text-align-last</property>
+ <property>text-indent</property>
+ <property>visibility</property>
+ <property>white-space-collapse</property>
+ <property>widows</property>
+ <property>wrap-option</property>
+ <content>%inline;</content>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>block-container</name>
+ <common-ref>CommonAbsolutePositionProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonMarginPropertiesBlock</common-ref>
+ <property>block-progression-dimension</property>
+ <property>page-break-after</property>
+ <property>page-break-before</property>
+ <property>break-after</property>
+ <property>break-before</property>
+ <property>clip</property>
+ <property>display-align</property>
+ <property>height</property>
+ <property>id</property>
+ <property>inline-progression-dimension</property>
+ <!--property>intrusion-displace</property -->
+ <property>page-break-inside</property>
+ <property>keep-together</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>overflow</property>
+ <property>reference-orientation</property>
+ <property>span</property>
+ <property>width</property>
+ <property>writing-mode</property>
+ <property>z-index</property>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>bidi-override</name>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonFontProperties</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>color</property>
+ <property>direction</property>
+ <property>id</property>
+ <property>letter-spacing</property>
+ <property>line-height</property>
+ <property>score-spaces</property>
+ <property>unicode-bidi</property>
+ <property>word-spacing</property>
+ <content>%inline;</content>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>character</name>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonFontProperties</common-ref>
+ <common-ref>CommonHyphenationProperties</common-ref>
+ <common-ref>CommonMarginPropertiesInline</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>vertical-align</property>
+ <property>alignment-adjust</property>
+ <property>treat-as-word-space</property>
+ <property>alignment-baseline</property>
+ <property>baseline-shift</property>
+ <property>character</property>
+ <property>color</property>
+ <property>dominant-baseline</property>
+ <property>text-depth</property>
+ <property>text-altitude</property>
+ <property>glyph-orientation-horizontal</property>
+ <property>glyph-orientation-vertical</property>
+ <property>id</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>letter-spacing</property>
+ <property>line-height</property>
+ <property>score-spaces</property>
+ <property>suppress-at-line-break</property>
+ <property>text-decoration</property>
+ <property>text-shadow</property>
+ <property>text-transform</property>
+ <property>visibility</property>
+ <property>word-spacing</property>
+
+</element>
+
+<element>
+ <name>initial-property-set</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonFontProperties</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>color</property>
+ <property>id</property>
+ <property>letter-spacing</property>
+ <property>line-height</property>
+ <property>score-spaces</property>
+ <property>text-decoration</property>
+ <property>text-shadow</property>
+ <property>text-transform</property>
+ <property>word-spacing</property>
+
+</element>
+
+<element>
+ <name>external-graphic</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonMarginPropertiesInline</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>vertical-align</property>
+ <property>alignment-adjust</property>
+ <property>alignment-baseline</property>
+ <property>baseline-shift</property>
+ <property>block-progression-dimension</property>
+ <property>clip</property>
+ <property>content-height</property>
+ <property>content-type</property>
+ <property>content-width</property>
+ <property>display-align</property>
+ <property>dominant-baseline</property>
+ <property>height</property>
+ <property>id</property>
+ <property>inline-progression-dimension</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>line-height</property>
+ <property>overflow</property>
+ <property>scaling</property>
+ <property>scaling-method</property>
+ <property>src</property>
+ <property>text-align</property>
+ <property>width</property>
+
+</element>
+
+<element>
+ <name>instream-foreign-object</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonMarginPropertiesInline</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>vertical-align</property>
+ <property>alignment-adjust</property>
+ <property>alignment-baseline</property>
+ <property>baseline-shift</property>
+ <property>block-progression-dimension</property>
+ <property>clip</property>
+ <property>content-height</property>
+ <property>content-type</property>
+ <property>content-width</property>
+ <property>display-align</property>
+ <property>dominant-baseline</property>
+ <property>height</property>
+ <property>id</property>
+ <property>inline-progression-dimension</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>line-height</property>
+ <property>overflow</property>
+ <property>scaling</property>
+ <property>scaling-method</property>
+ <property>text-align</property>
+ <property>width</property>
+
+</element>
+
+<element>
+ <name>inline</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonFontProperties</common-ref>
+ <common-ref>CommonMarginPropertiesInline</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>vertical-align</property>
+ <property>alignment-adjust</property>
+ <property>alignment-baseline</property>
+ <property>baseline-shift</property>
+ <property>block-progression-dimension</property>
+ <property>color</property>
+ <property>dominant-baseline</property>
+ <property>height</property>
+ <property>id</property>
+ <property>inline-progression-dimension</property>
+ <property>page-break-inside</property>
+ <property>keep-together</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>line-height</property>
+ <property>text-decoration</property>
+ <property>visibility</property>
+ <property>width</property>
+ <property>wrap-option</property>
+ <content>%inline;</content>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>inline-container</name>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonMarginPropertiesInline</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>vertical-align</property>
+ <property>alignment-adjust</property>
+ <property>alignment-baseline</property>
+ <property>baseline-shift</property>
+ <property>block-progression-dimension</property>
+ <property>clip</property>
+ <property>display-align</property>
+ <property>dominant-baseline</property>
+ <property>height</property>
+ <property>id</property>
+ <property>inline-progression-dimension</property>
+ <property>page-break-inside</property>
+ <property>keep-together</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>line-height</property>
+ <property>overflow</property>
+ <property>reference-orientation</property>
+ <property>width</property>
+ <property>writing-mode</property>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>leader</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonFontProperties</common-ref>
+ <common-ref>CommonMarginPropertiesInline</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>vertical-align</property>
+ <property>alignment-adjust</property>
+ <property>alignment-baseline</property>
+ <property>baseline-shift</property>
+ <property>color</property>
+ <property>dominant-baseline</property>
+ <property>text-depth</property>
+ <property>text-altitude</property>
+ <property>id</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>leader-alignment</property>
+ <property>leader-length</property>
+ <property>leader-pattern</property>
+ <property>leader-pattern-width</property>
+ <property>rule-style</property>
+ <property>rule-thickness</property>
+ <property>letter-spacing</property>
+ <property>line-height</property>
+ <property>text-shadow</property>
+ <property>visibility</property>
+ <property>word-spacing</property>
+ <content>%inline;</content>
+</element>
+
+<element>
+ <name>page-number</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonFontProperties</common-ref>
+ <common-ref>CommonMarginPropertiesInline</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>vertical-align</property>
+ <property>alignment-adjust</property>
+ <property>alignment-baseline</property>
+ <property>baseline-shift</property>
+ <property>dominant-baseline</property>
+ <property>id</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>letter-spacing</property>
+ <property>line-height</property>
+ <property>score-spaces</property>
+ <property>text-altitude</property>
+ <property>text-decoration</property>
+ <property>text-depth</property>
+ <property>text-shadow</property>
+ <property>text-transform</property>
+ <property>visibility</property>
+ <property>word-spacing</property>
+ <property>wrap-option</property>
+
+</element>
+
+<element>
+ <name>page-number-citation</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonFontProperties</common-ref>
+ <common-ref>CommonMarginPropertiesInline</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>vertical-align</property>
+ <property>alignment-adjust</property>
+ <property>alignment-baseline</property>
+ <property>baseline-shift</property>
+ <property>dominant-baseline</property>
+ <property>id</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>letter-spacing</property>
+ <property>line-height</property>
+ <property>ref-id</property>
+ <property>score-spaces</property>
+ <property>text-altitude</property>
+ <property>text-decoration</property>
+ <property>text-depth</property>
+ <property>text-shadow</property>
+ <property>text-transform</property>
+ <property>visibility</property>
+ <property>word-spacing</property>
+ <property>wrap-option</property>
+
+</element>
+
+<element>
+ <name>table-and-caption</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonMarginPropertiesBlock</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>page-break-after</property>
+ <property>page-break-before</property>
+ <property>break-after</property>
+ <property>break-before</property>
+ <property>caption-side</property>
+ <property>id</property>
+ <!--property>intrusion-displace</property -->
+ <property>page-break-inside</property>
+ <property>keep-together</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>text-align</property>
+ <content>table-caption</content>
+ <content>table</content>
+</element>
+
+<element>
+ <name>table</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonMarginPropertiesBlock</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>block-progression-dimension</property>
+ <property>border-after-precedence</property>
+ <property>border-before-precedence</property>
+ <property>border-spacing</property>
+ <property>border-collapse</property>
+ <property>border-end-precedence</property>
+ <property>border-separation</property>
+ <property>border-start-precedence</property>
+ <property>page-break-after</property>
+ <property>page-break-before</property>
+ <property>break-after</property>
+ <property>break-before</property>
+ <property>id</property>
+ <property>inline-progression-dimension</property>
+ <!--property>intrusion-displace</property -->
+ <property>height</property>
+ <property>page-break-inside</property>
+ <property>keep-together</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>table-layout</property>
+ <property>table-omit-footer-at-break</property>
+ <property>table-omit-header-at-break</property>
+ <property>width</property>
+ <property>writing-mode</property>
+ <content>table-column</content>
+ <content>table-header</content>
+ <content>table-footer</content>
+ <content>table-body</content>
+</element>
+
+<element>
+ <name>table-column</name>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+<!--
+NOTE:
+Only the background properties from this set apply. If the value of border-collapse is "collapse" or "collapse-with-precedence" for the table the border properties also apply.
+-->
+ <property>border-after-precedence</property>
+ <property>border-before-precedence</property>
+ <property>border-end-precedence</property>
+ <property>border-start-precedence</property>
+ <property>column-number</property>
+ <property>column-width</property>
+ <property>number-columns-repeated</property>
+ <property>number-columns-spanned</property>
+ <property>visibility</property>
+
+</element>
+
+<element>
+ <name>table-caption</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>block-progression-dimension</property>
+ <property>height</property>
+ <property>id</property>
+ <property>inline-progression-dimension</property>
+ <!--property>intrusion-displace</property -->
+ <property>page-break-inside</property>
+ <property>keep-together</property>
+ <property>width</property>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>table-header</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+<!--
+NOTE:
+Only the background properties from this set apply. If the value of border-collapse is "collapse" or "collapse-with-precedence" for the table the border properties also apply.
+-->
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>border-after-precedence</property>
+ <property>border-before-precedence</property>
+ <property>border-end-precedence</property>
+ <property>border-start-precedence</property>
+ <property>id</property>
+ <property>visibility</property>
+ <content>table-row</content>
+ <content>table-cell</content>
+</element>
+
+<element>
+ <name>table-footer</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+<!--
+NOTE:
+Only the background properties from this set apply. If the value of border-collapse is "collapse" or "collapse-with-precedence" for the table the border properties also apply.
+-->
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>border-after-precedence</property>
+ <property>border-before-precedence</property>
+ <property>border-end-precedence</property>
+ <property>border-start-precedence</property>
+ <property>id</property>
+ <property>visibility</property>
+ <content>table-row</content>
+ <content>table-cell</content>
+</element>
+
+<element>
+ <name>table-body</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+<!--
+NOTE:
+Only the background properties from this set apply. If the value of border-collapse is "collapse" or "collapse-with-precedence" for the table the border properties also apply.
+-->
+
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>border-after-precedence</property>
+ <property>border-before-precedence</property>
+ <property>border-end-precedence</property>
+ <property>border-start-precedence</property>
+ <property>id</property>
+ <property>visibility</property>
+ <content>table-row</content>
+ <content>table-cell</content>
+</element>
+
+<element>
+ <name>table-row</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <property>block-progression-dimension</property>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+<!--
+NOTE:
+Only the background properties from this set apply. If the value of border-collapse is "collapse" or "collapse-with-precedence" for the table the border properties also apply.
+-->
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>border-after-precedence</property>
+ <property>border-before-precedence</property>
+ <property>border-end-precedence</property>
+ <property>border-start-precedence</property>
+ <property>page-break-after</property>
+ <property>page-break-before</property>
+ <property>break-after</property>
+ <property>break-before</property>
+ <property>id</property>
+ <property>height</property>
+ <property>page-break-inside</property>
+ <property>keep-together</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>visibility</property>
+ <content>table-cell</content>
+</element>
+
+<element>
+ <name>table-cell</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>border-after-precedence</property>
+ <property>border-before-precedence</property>
+ <property>border-end-precedence</property>
+ <property>border-start-precedence</property>
+ <property>block-progression-dimension</property>
+ <property>column-number</property>
+ <property>display-align</property>
+ <property>relative-align</property>
+ <property>empty-cells</property>
+ <property>ends-row</property>
+ <property>height</property>
+ <property>id</property>
+ <property>inline-progression-dimension</property>
+ <property>number-columns-spanned</property>
+ <property>number-rows-spanned</property>
+ <property>starts-row</property>
+ <property>width</property>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>list-block</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonMarginPropertiesBlock</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>page-break-after</property>
+ <property>page-break-before</property>
+ <property>break-after</property>
+ <property>break-before</property>
+ <property>id</property>
+ <!--property>intrusion-displace</property -->
+ <property>page-break-inside</property>
+ <property>keep-together</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>provisional-distance-between-starts</property>
+ <property>provisional-label-separation</property>
+ <content>list-item</content>
+</element>
+
+<element>
+ <name>list-item</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonMarginPropertiesBlock</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>page-break-after</property>
+ <property>page-break-before</property>
+ <property>break-after</property>
+ <property>break-before</property>
+ <property>id</property>
+ <!--property>intrusion-displace</property -->
+ <property>page-break-inside</property>
+ <property>keep-together</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>relative-align</property>
+ <content>list-item-label</content>
+ <content>list-item-body</content>
+</element>
+
+<element>
+ <name>list-item-body</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <property>id</property>
+ <property>page-break-inside</property>
+ <property>keep-together</property>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>list-item-label</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <property>id</property>
+ <property>page-break-inside</property>
+ <property>keep-together</property>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>basic-link</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <common-ref>CommonAuralProperties</common-ref>
+ <common-ref>CommonBorderPaddingBackgroundProperties</common-ref>
+ <common-ref>CommonMarginPropertiesInline</common-ref>
+ <common-ref>CommonRelativePositionProperties</common-ref>
+ <property>vertical-align</property>
+ <property>alignment-adjust</property>
+ <property>alignment-baseline</property>
+ <property>baseline-shift</property>
+ <property>destination-placement-offset</property>
+ <property>dominant-baseline</property>
+ <property>external-destination</property>
+ <property>id</property>
+ <property>indicate-destination</property>
+ <property>internal-destination</property>
+ <property>page-break-inside</property>
+ <property>keep-together</property>
+ <property>keep-with-next</property>
+ <property>keep-with-previous</property>
+ <property>line-height</property>
+ <property>show-destination</property>
+ <property>target-processing-context</property>
+ <property>target-presentation-context</property>
+ <property>target-stylesheet</property>
+ <content>%inline;</content>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>multi-switch</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <property>auto-restore</property>
+ <property>id</property>
+ <content>multi-case</content>
+</element>
+
+<element>
+ <name>multi-case</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <property>id</property>
+ <property>starting-state</property>
+ <property>case-name</property>
+ <property>case-title</property>
+ <content>%inline;</content>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>multi-toggle</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <property>id</property>
+ <property>switch-to</property>
+ <content>%inline;</content>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>multi-properties</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <property>id</property>
+ <content>multi-property-set</content>
+ <content>wrapper</content>
+</element>
+
+<element>
+ <name>multi-property-set</name>
+ <property>id</property>
+ <property>active-state</property>
+</element>
+
+<element>
+ <name>float</name>
+ <property>float</property>
+ <property>clear</property>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>footnote</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <content>inline</content>
+ <content>footnote-body</content>
+</element>
+
+<element>
+ <name>footnote-body</name>
+ <common-ref>CommonAccessibilityProperties</common-ref>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>wrapper</name>
+ <property>id</property>
+ <content>%inline;</content>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>marker</name>
+ <property>marker-class-name</property>
+ <content>%inline;</content>
+ <content>%block;</content>
+</element>
+
+<element>
+ <name>retrieve-marker</name>
+ <property>retrieve-class-name</property>
+ <property>retrieve-position</property>
+ <property>retrieve-boundary</property>
+</element>
+
+</root>
+
diff --git a/src/codegen/propinc.xsl b/src/codegen/propinc.xsl
index 0407205ad..0699a32d8 100644
--- a/src/codegen/propinc.xsl
+++ b/src/codegen/propinc.xsl
@@ -81,6 +81,14 @@ Software Foundation, please see <http://www.apache.org/>.
</xsl:choose>
</xsl:template>
+<!-- Generate enumeration constants for FO's, Properties, etc. -->
+<xsl:template name="makeEnumConstant">
+ <xsl:param name="propstr"/>
+ <xsl:variable name="lcletters" select="'abcdefghijklmnopqrstuvwxyz-:'" />
+ <xsl:variable name="ucletters" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ__'" />
+ <xsl:value-of select="translate($propstr, $lcletters, $ucletters)"/>
+</xsl:template>
+
<!-- The name of the subclass of Property to be created -->
<xsl:template name="propclass">
<xsl:param name="prop" select="."/>
diff --git a/src/java/org/apache/fop/fo/Constants.java b/src/java/org/apache/fop/fo/Constants.java
new file mode 100644
index 000000000..b5be55044
--- /dev/null
+++ b/src/java/org/apache/fop/fo/Constants.java
@@ -0,0 +1,489 @@
+/* $Id$
+ * ============================================================================
+ * The Apache Software License, Version 1.1
+ * ============================================================================
+ *
+ * Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modifica-
+ * tion, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if any, must
+ * include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if
+ * and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "FOP" and "Apache Software Foundation" must not be used to
+ * endorse or promote products derived from this software without prior
+ * written permission. For written permission, please contact
+ * apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache", nor may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ============================================================================
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation and was originally created by
+ * James Tauber <jtauber@jtauber.com>. For more information on the Apache
+ * Software Foundation, please see <http://www.apache.org/>.
+*/
+package org.apache.fop.fo.properties;
+
+public interface Constants {
+
+ // element constants
+ int FO_BASIC_LINK = 1;
+ int FO_BIDI_OVERRIDE = 2;
+ int FO_BLOCK = 3;
+ int FO_BLOCK_CONTAINER = 4;
+ int FO_CHARACTER = 5;
+ int FO_COLOR_PROFILE = 6;
+ int FO_CONDITIONAL_PAGE_MASTER_REFERENCE = 7;
+ int FO_DECLARATION = 8;
+ int FO_EXTERNAL_GRAPHIC = 9;
+ int FO_FLOAT = 10;
+ int FO_FLOW = 11;
+ int FO_FOOTNOTE = 12;
+ int FO_FOOTNOTE_BODY = 13;
+ int FO_INITIAL_PROPERTY_SET = 14;
+ int FO_INLINE = 15;
+ int FO_INLINE_CONTAINER = 16;
+ int FO_INSTREAM_FOREIGN_OBJECT = 17;
+ int FO_LAYOUT_MASTER_SET = 18;
+ int FO_LEADER = 19;
+ int FO_LIST_BLOCK = 20;
+ int FO_LIST_ITEM = 21;
+ int FO_LIST_ITEM_BODY = 22;
+ int FO_LIST_ITEM_LABEL = 23;
+ int FO_MARKER = 24;
+ int FO_MULTI_CASE = 25;
+ int FO_MULTI_PROPERTIES = 26;
+ int FO_MULTI_PROPERTY_SET = 27;
+ int FO_MULTI_SWITCH = 28;
+ int FO_MULTI_TOGGLE = 29;
+ int FO_PAGE_NUMBER = 30;
+ int FO_PAGE_NUMBER_CITATION = 31;
+ int FO_PAGE_SEQUENCE = 32;
+ int FO_PAGE_SEQUENCE_MASTER = 33;
+ int FO_REGION_AFTER = 34;
+ int FO_REGION_BEFORE = 35;
+ int FO_REGION_BODY = 36;
+ int FO_REGION_END = 37;
+ int FO_REGION_START = 38;
+ int FO_REPEATABLE_PAGE_MASTER_ALTERNATIVES = 39;
+ int FO_REPEATABLE_PAGE_MASTER_REFERENCE = 40;
+ int FO_RETRIEVE_MARKER = 41;
+ int FO_ROOT = 42;
+ int FO_SIMPLE_PAGE_MASTER = 43;
+ int FO_SINGLE_PAGE_MASTER_REFERENCE = 44;
+ int FO_STATIC_CONTENT = 45;
+ int FO_TABLE = 46;
+ int FO_TABLE_AND_CAPTION = 47;
+ int FO_TABLE_BODY = 48;
+ int FO_TABLE_CAPTION = 49;
+ int FO_TABLE_CELL = 50;
+ int FO_TABLE_COLUMN = 51;
+ int FO_TABLE_FOOTER = 52;
+ int FO_TABLE_HEADER = 53;
+ int FO_TABLE_ROW = 54;
+ int FO_TITLE = 55;
+ int FO_WRAPPER = 56;
+ int ELEMENT_COUNT = 56;
+
+ // Masks
+ int COMPOUND_SHIFT = 9;
+ int PROPERTY_MASK = (1 << COMPOUND_SHIFT)-1;
+ int COMPOUND_MASK = ~PROPERTY_MASK;
+
+ // property constants
+ int PR_ABSOLUTE_POSITION = 1;
+ int PR_ACTIVE_STATE = 2;
+ int PR_ALIGNMENT_ADJUST = 3;
+ int PR_ALIGNMENT_BASELINE = 4;
+ int PR_AUTO_RESTORE = 5;
+ int PR_AZIMUTH = 6;
+ int PR_BACKGROUND = 7;
+ int PR_BACKGROUND_ATTACHMENT = 8;
+ int PR_BACKGROUND_COLOR = 9;
+ int PR_BACKGROUND_IMAGE = 10;
+ int PR_BACKGROUND_POSITION = 11;
+ int PR_BACKGROUND_POSITION_HORIZONTAL = 12;
+ int PR_BACKGROUND_POSITION_VERTICAL = 13;
+ int PR_BACKGROUND_REPEAT = 14;
+ int PR_BASELINE_SHIFT = 15;
+ int PR_BLANK_OR_NOT_BLANK = 16;
+ int PR_BLOCK_PROGRESSION_DIMENSION = 17;
+ int PR_BORDER = 18;
+ int PR_BORDER_AFTER_COLOR = 19;
+ int PR_BORDER_AFTER_PRECEDENCE = 20;
+ int PR_BORDER_AFTER_STYLE = 21;
+ int PR_BORDER_AFTER_WIDTH = 22;
+ int PR_BORDER_BEFORE_COLOR = 23;
+ int PR_BORDER_BEFORE_PRECEDENCE = 24;
+ int PR_BORDER_BEFORE_STYLE = 25;
+ int PR_BORDER_BEFORE_WIDTH = 26;
+ int PR_BORDER_BOTTOM = 27;
+ int PR_BORDER_BOTTOM_COLOR = 28;
+ int PR_BORDER_BOTTOM_STYLE = 29;
+ int PR_BORDER_BOTTOM_WIDTH = 30;
+ int PR_BORDER_COLLAPSE = 31;
+ int PR_BORDER_COLOR = 32;
+ int PR_BORDER_END_COLOR = 33;
+ int PR_BORDER_END_PRECEDENCE = 34;
+ int PR_BORDER_END_STYLE = 35;
+ int PR_BORDER_END_WIDTH = 36;
+ int PR_BORDER_LEFT = 37;
+ int PR_BORDER_LEFT_COLOR = 38;
+ int PR_BORDER_LEFT_STYLE = 39;
+ int PR_BORDER_LEFT_WIDTH = 40;
+ int PR_BORDER_RIGHT = 41;
+ int PR_BORDER_RIGHT_COLOR = 42;
+ int PR_BORDER_RIGHT_STYLE = 43;
+ int PR_BORDER_RIGHT_WIDTH = 44;
+ int PR_BORDER_SEPARATION = 45;
+ int PR_BORDER_SPACING = 46;
+ int PR_BORDER_START_COLOR = 47;
+ int PR_BORDER_START_PRECEDENCE = 48;
+ int PR_BORDER_START_STYLE = 49;
+ int PR_BORDER_START_WIDTH = 50;
+ int PR_BORDER_STYLE = 51;
+ int PR_BORDER_TOP = 52;
+ int PR_BORDER_TOP_COLOR = 53;
+ int PR_BORDER_TOP_STYLE = 54;
+ int PR_BORDER_TOP_WIDTH = 55;
+ int PR_BORDER_WIDTH = 56;
+ int PR_BOTTOM = 57;
+ int PR_BREAK_AFTER = 58;
+ int PR_BREAK_BEFORE = 59;
+ int PR_CAPTION_SIDE = 60;
+ int PR_CASE_NAME = 61;
+ int PR_CASE_TITLE = 62;
+ int PR_CHARACTER = 63;
+ int PR_CLEAR = 64;
+ int PR_CLIP = 65;
+ int PR_COLOR = 66;
+ int PR_COLOR_PROFILE_NAME = 67;
+ int PR_COLUMN_COUNT = 68;
+ int PR_COLUMN_GAP = 69;
+ int PR_COLUMN_NUMBER = 70;
+ int PR_COLUMN_WIDTH = 71;
+ int PR_CONTENT_HEIGHT = 72;
+ int PR_CONTENT_TYPE = 73;
+ int PR_CONTENT_WIDTH = 74;
+ int PR_COUNTRY = 75;
+ int PR_CUE = 76;
+ int PR_CUE_AFTER = 77;
+ int PR_CUE_BEFORE = 78;
+ int PR_DESTINATION_PLACEMENT_OFFSET = 79;
+ int PR_DIRECTION = 80;
+ int PR_DISPLAY_ALIGN = 81;
+ int PR_DOMINANT_BASELINE = 82;
+ int PR_ELEVATION = 83;
+ int PR_EMPTY_CELLS = 84;
+ int PR_END_INDENT = 85;
+ int PR_ENDS_ROW = 86;
+ int PR_EXTENT = 87;
+ int PR_EXTERNAL_DESTINATION = 88;
+ int PR_FLOAT = 89;
+ int PR_FLOW_NAME = 90;
+ int PR_FONT = 91;
+ int PR_FONT_FAMILY = 92;
+ int PR_FONT_SELECTION_STRATEGY = 93;
+ int PR_FONT_SIZE = 94;
+ int PR_FONT_SIZE_ADJUST = 95;
+ int PR_FONT_STRETCH = 96;
+ int PR_FONT_STYLE = 97;
+ int PR_FONT_VARIANT = 98;
+ int PR_FONT_WEIGHT = 99;
+ int PR_FORCE_PAGE_COUNT = 100;
+ int PR_FORMAT = 101;
+ int PR_GLYPH_ORIENTATION_HORIZONTAL = 102;
+ int PR_GLYPH_ORIENTATION_VERTICAL = 103;
+ int PR_GROUPING_SEPARATOR = 104;
+ int PR_GROUPING_SIZE = 105;
+ int PR_HEIGHT = 106;
+ int PR_HYPHENATE = 107;
+ int PR_HYPHENATION_CHARACTER = 108;
+ int PR_HYPHENATION_KEEP = 109;
+ int PR_HYPHENATION_LADDER_COUNT = 110;
+ int PR_HYPHENATION_PUSH_CHARACTER_COUNT = 111;
+ int PR_HYPHENATION_REMAIN_CHARACTER_COUNT = 112;
+ int PR_ID = 113;
+ int PR_INDICATE_DESTINATION = 114;
+ int PR_INITIAL_PAGE_NUMBER = 115;
+ int PR_INLINE_PROGRESSION_DIMENSION = 116;
+ int PR_INTERNAL_DESTINATION = 117;
+ int PR_KEEP_TOGETHER = 118;
+ int PR_KEEP_WITH_NEXT = 119;
+ int PR_KEEP_WITH_PREVIOUS = 120;
+ int PR_LANGUAGE = 121;
+ int PR_LAST_LINE_END_INDENT = 122;
+ int PR_LEADER_ALIGNMENT = 123;
+ int PR_LEADER_LENGTH = 124;
+ int PR_LEADER_PATTERN = 125;
+ int PR_LEADER_PATTERN_WIDTH = 126;
+ int PR_LEFT = 127;
+ int PR_LETTER_SPACING = 128;
+ int PR_LETTER_VALUE = 129;
+ int PR_LINEFEED_TREATMENT = 130;
+ int PR_LINE_HEIGHT = 131;
+ int PR_LINE_HEIGHT_SHIFT_ADJUSTMENT = 132;
+ int PR_LINE_STACKING_STRATEGY = 133;
+ int PR_MARGIN = 134;
+ int PR_MARGIN_BOTTOM = 135;
+ int PR_MARGIN_LEFT = 136;
+ int PR_MARGIN_RIGHT = 137;
+ int PR_MARGIN_TOP = 138;
+ int PR_MARKER_CLASS_NAME = 139;
+ int PR_MASTER_NAME = 140;
+ int PR_MASTER_REFERENCE = 141;
+ int PR_MAX_HEIGHT = 142;
+ int PR_MAXIMUM_REPEATS = 143;
+ int PR_MAX_WIDTH = 144;
+ int PR_MEDIA_USAGE = 145;
+ int PR_MIN_HEIGHT = 146;
+ int PR_MIN_WIDTH = 147;
+ int PR_NUMBER_COLUMNS_REPEATED = 148;
+ int PR_NUMBER_COLUMNS_SPANNED = 149;
+ int PR_NUMBER_ROWS_SPANNED = 150;
+ int PR_ODD_OR_EVEN = 151;
+ int PR_ORPHANS = 152;
+ int PR_OVERFLOW = 153;
+ int PR_PADDING = 154;
+ int PR_PADDING_AFTER = 155;
+ int PR_PADDING_BEFORE = 156;
+ int PR_PADDING_BOTTOM = 157;
+ int PR_PADDING_END = 158;
+ int PR_PADDING_LEFT = 159;
+ int PR_PADDING_RIGHT = 160;
+ int PR_PADDING_START = 161;
+ int PR_PADDING_TOP = 162;
+ int PR_PAGE_BREAK_AFTER = 163;
+ int PR_PAGE_BREAK_BEFORE = 164;
+ int PR_PAGE_BREAK_INSIDE = 165;
+ int PR_PAGE_HEIGHT = 166;
+ int PR_PAGE_POSITION = 167;
+ int PR_PAGE_WIDTH = 168;
+ int PR_PAUSE = 169;
+ int PR_PAUSE_AFTER = 170;
+ int PR_PAUSE_BEFORE = 171;
+ int PR_PITCH = 172;
+ int PR_PITCH_RANGE = 173;
+ int PR_PLAY_DURING = 174;
+ int PR_POSITION = 175;
+ int PR_PRECEDENCE = 176;
+ int PR_PROVISIONAL_DISTANCE_BETWEEN_STARTS = 177;
+ int PR_PROVISIONAL_LABEL_SEPARATION = 178;
+ int PR_REFERENCE_ORIENTATION = 179;
+ int PR_REF_ID = 180;
+ int PR_REGION_NAME = 181;
+ int PR_RELATIVE_ALIGN = 182;
+ int PR_RELATIVE_POSITION = 183;
+ int PR_RENDERING_INTENT = 184;
+ int PR_RETRIEVE_BOUNDARY = 185;
+ int PR_RETRIEVE_CLASS_NAME = 186;
+ int PR_RETRIEVE_POSITION = 187;
+ int PR_RICHNESS = 188;
+ int PR_RIGHT = 189;
+ int PR_ROLE = 190;
+ int PR_RULE_STYLE = 191;
+ int PR_RULE_THICKNESS = 192;
+ int PR_SCALING = 193;
+ int PR_SCALING_METHOD = 194;
+ int PR_SCORE_SPACES = 195;
+ int PR_SCRIPT = 196;
+ int PR_SHOW_DESTINATION = 197;
+ int PR_SIZE = 198;
+ int PR_SOURCE_DOCUMENT = 199;
+ int PR_SPACE_AFTER = 200;
+ int PR_SPACE_BEFORE = 201;
+ int PR_SPACE_END = 202;
+ int PR_SPACE_START = 203;
+ int PR_SPACE_TREATMENT = 204;
+ int PR_SPAN = 205;
+ int PR_SPEAK = 206;
+ int PR_SPEAK_HEADER = 207;
+ int PR_SPEAK_NUMERAL = 208;
+ int PR_SPEAK_PUNCTUATION = 209;
+ int PR_SPEECH_RATE = 210;
+ int PR_SRC = 211;
+ int PR_START_INDENT = 212;
+ int PR_STARTING_STATE = 213;
+ int PR_STARTS_ROW = 214;
+ int PR_STRESS = 215;
+ int PR_SUPPRESS_AT_LINE_BREAK = 216;
+ int PR_SWITCH_TO = 217;
+ int PR_TABLE_LAYOUT = 218;
+ int PR_TABLE_OMIT_FOOTER_AT_BREAK = 219;
+ int PR_TABLE_OMIT_HEADER_AT_BREAK = 220;
+ int PR_TARGET_PRESENTATION_CONTEXT = 221;
+ int PR_TARGET_PROCESSING_CONTEXT = 222;
+ int PR_TARGET_STYLESHEET = 223;
+ int PR_TEXT_ALIGN = 224;
+ int PR_TEXT_ALIGN_LAST = 225;
+ int PR_TEXT_ALTITUDE = 226;
+ int PR_TEXT_DECORATION = 227;
+ int PR_TEXT_DEPTH = 228;
+ int PR_TEXT_INDENT = 229;
+ int PR_TEXT_SHADOW = 230;
+ int PR_TEXT_TRANSFORM = 231;
+ int PR_TOP = 232;
+ int PR_TREAT_AS_WORD_SPACE = 233;
+ int PR_UNICODE_BIDI = 234;
+ int PR_VERTICAL_ALIGN = 235;
+ int PR_VISIBILITY = 236;
+ int PR_VOICE_FAMILY = 237;
+ int PR_VOLUME = 238;
+ int PR_WHITE_SPACE_COLLAPSE = 239;
+ int PR_WHITE_SPACE_TREATMENT = 240;
+ int PR_WIDOWS = 241;
+ int PR_WIDTH = 242;
+ int PR_WORD_SPACING = 243;
+ int PR_WRAP_OPTION = 244;
+ int PR_WRITING_MODE = 245;
+ int PR_XML_LANG = 246;
+ int PR_Z_INDEX = 247;
+ int PROPERTY_COUNT = 247;
+
+ // compound property constants
+ int CP_BLOCK_PROGRESSION_DIRECTION = 1 << COMPOUND_SHIFT;
+ int CP_CONDITIONALITY = 2 << COMPOUND_SHIFT;
+ int CP_INLINE_PROGRESSION_DIRECTION = 3 << COMPOUND_SHIFT;
+ int CP_LENGTH = 4 << COMPOUND_SHIFT;
+ int CP_MAXIMUM = 5 << COMPOUND_SHIFT;
+ int CP_MINIMUM = 6 << COMPOUND_SHIFT;
+ int CP_OPTIMUM = 7 << COMPOUND_SHIFT;
+ int CP_PRECEDENCE = 8 << COMPOUND_SHIFT;
+ int CP_WITHIN_COLUMN = 9 << COMPOUND_SHIFT;
+ int CP_WITHIN_LINE = 10 << COMPOUND_SHIFT;
+ int CP_WITHIN_PAGE = 11 << COMPOUND_SHIFT;
+
+ // Enumeration constants
+ int ABSOLUTE = 1;
+ int ABSOLUTE_COLORMETRIC = 2;
+ int AFTER = 3;
+ int ALL = 4;
+ int ALPHABETIC = 5;
+ int ALWAYS = 6;
+ int ANY = 7;
+ int AUTO = 8;
+ int BASELINE = 9;
+ int BEFORE = 10;
+ int BLANK = 11;
+ int BLINK = 12;
+ int BOTTOM = 13;
+ int CAPITALIZE = 14;
+ int CENTER = 15;
+ int COLLAPSE = 16;
+ int COLUMN = 17;
+ int DASHED = 18;
+ int DISCARD = 19;
+ int DOCUMENT = 20;
+ int DOTS = 21;
+ int DOTTED = 22;
+ int DOUBLE = 23;
+ int END = 24;
+ int END_ON_EVEN = 25;
+ int END_ON_ODD = 26;
+ int ERROR_IF_OVERFLOW = 27;
+ int EVEN = 28;
+ int EVEN_PAGE = 29;
+ int FALSE = 30;
+ int FIC = 31;
+ int FIRST = 32;
+ int FIXED = 33;
+ int FORCE = 34;
+ int FSWP = 35;
+ int GROOVE = 36;
+ int HIDDEN = 37;
+ int IGNORE = 38;
+ int IGNORE_IF_AFTER_LINEFEED = 39;
+ int IGNORE_IF_BEFORE_LINEFEED = 40;
+ int IGNORE_IF_SURROUNDING_LINEFEED = 41;
+ int INSET = 42;
+ int JUSTIFY = 43;
+ int LAST = 44;
+ int LEFT = 45;
+ int LEWP = 46;
+ int LINE_THROUGH = 47;
+ int LOWERCASE = 48;
+ int LR_TB = 49;
+ int LSWP = 50;
+ int MIDDLE = 51;
+ int NO_BLINK = 52;
+ int NO_FORCE = 53;
+ int NO_LINE_THROUGH = 54;
+ int NO_OVERLINE = 55;
+ int NO_UNDERLINE = 56;
+ int NO_WRAP = 57;
+ int NON_UNIFORM = 58;
+ int NONE = 59;
+ int NOREPEAT = 60;
+ int NORMAL = 61;
+ int NOT_BLANK = 62;
+ int ODD = 63;
+ int ODD_PAGE = 64;
+ int OUTSET = 65;
+ int OVERLINE = 66;
+ int PAGE = 67;
+ int PAGE_SEQUENCE = 68;
+ int PERCEPTUAL = 69;
+ int PRESERVE = 70;
+ int REFERENCE_AREA = 71;
+ int RELATIVE = 72;
+ int RELATIVE_COLOMETRIC = 73;
+ int REPEAT = 74;
+ int REPEATX = 75;
+ int REPEATY = 76;
+ int REST = 77;
+ int RETAIN = 78;
+ int RIDGE = 79;
+ int RIGHT = 80;
+ int RL_TB = 81;
+ int RULE = 82;
+ int SATURATION = 83;
+ int SCROLL = 84;
+ int SEPARATE = 85;
+ int SMALL_CAPS = 86;
+ int SOLID = 87;
+ int SPACE = 88;
+ int START = 89;
+ int STATIC = 90;
+ int SUB = 91;
+ int SUPER = 92;
+ int TB_RL = 93;
+ int TEXT_BOTTOM = 94;
+ int TEXT_TOP = 95;
+ int TOP = 96;
+ int TRADITIONAL = 97;
+ int TREAT_AS_SPACE = 98;
+ int TREAT_AS_ZERO_WIDTH_SPACE = 99;
+ int TRUE = 100;
+ int UNDERLINE = 101;
+ int UNIFORM = 102;
+ int UPPERCASE = 103;
+ int USECONTENT = 104;
+ int VISIBLE = 105;
+ int WRAP = 106;
+
+}