]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
1. Removed the properties.Constants class from automatic generation, and
authorGlen Mazza <gmazza@apache.org>
Mon, 15 Dec 2003 01:07:50 +0000 (01:07 +0000)
committerGlen Mazza <gmazza@apache.org>
Mon, 15 Dec 2003 01:07:50 +0000 (01:07 +0000)
added Finn Bock's work on Property and Element Constants (currently unused
within application.)  The CVS version is now the official one.  (The
new constants are not currently being used within the application;
more work is needed.)

2. Build.xml has a new helper XSLTtoJAVA task separate from any of the build
processes to generate the Constants class above (although its output is
expected to fall behind what will be maintained in the CVS version.)

3. Some xml and xsl file renaming to make clearer the purposes of those files.

4. Removed a debug statement from PropertyList.java (forgot to remove from
yesterday's work).

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

build.xml
src/codegen/allprops.xml [deleted file]
src/codegen/constants.xml [new file with mode: 0644]
src/codegen/constants.xsl [new file with mode: 0644]
src/codegen/foelements.xml [new file with mode: 0644]
src/codegen/genconst.xsl [deleted file]
src/codegen/propinc.xsl
src/java/org/apache/fop/fo/Constants.java [new file with mode: 0644]

index e0cfd92c0e035cb303a9ee7cdcb26669c820e9b5..dfd5c4242dce2ad1b8af6c34f7c09a3be1374c4a 100644 (file)
--- 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}"
@@ -917,6 +913,17 @@ list of possible build targets.
     </fop>
   </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                                             -->
   <!-- =================================================================== -->
@@ -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 (file)
index 480a7f3..0000000
+++ /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 (file)
index 0000000..83fb9df
--- /dev/null
@@ -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/constants.xsl b/src/codegen/constants.xsl
new file mode 100644 (file)
index 0000000..1a2097d
--- /dev/null
@@ -0,0 +1,182 @@
+<!-- $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/>.
+--> 
+<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)//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>
+</xsl:template>
+
+<xsl:template name="sortconsts">
+<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: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>
+    <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>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/src/codegen/foelements.xml b/src/codegen/foelements.xml
new file mode 100644 (file)
index 0000000..35c7ed9
--- /dev/null
@@ -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/genconst.xsl b/src/codegen/genconst.xsl
deleted file mode 100644 (file)
index 518b3a4..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<!--
-$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/>.
---> 
-<xsl:stylesheet version="1.0"
-                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-
-<xsl:output method="text" />
-
-<xsl:template match="allprops">
-<xsl:variable name="constlist">
-  <xsl:for-each select="document(propfile)//enumeration/value">
-    <xsl:sort select="@const"/>
-  <xsl:value-of select="@const"/>:</xsl:for-each>
-</xsl:variable>
-<xsl:text>
-package org.apache.fop.fo.properties;
-
-public interface Constants {</xsl:text>
-<xsl:call-template name="sortconsts">
-  <xsl:with-param name="consts" select="$constlist"/>
-</xsl:call-template>
-<xsl:text>
-}
-</xsl:text>
-</xsl:template>
-
-<xsl:template name="sortconsts">
-<xsl:param name="consts"/>
-<xsl:param name="prevconst"/>
-<xsl:param name="num" select="1"/>
-<xsl:variable name="cval" select="substring-before($consts,':')"/>
-<xsl:choose>
-  <xsl:when test="$consts = ''"/>
-  <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:call-template>
-  </xsl:when>
-  <xsl:otherwise>
-    <xsl:text>
-      int </xsl:text>
-    <xsl:value-of select="$cval"/>
-    <xsl:text> = </xsl:text>
-    <xsl:value-of select="$num"/>
-    <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:call-template>
-  </xsl:otherwise>
-</xsl:choose>
-</xsl:template>
-</xsl:stylesheet>
index 0407205ad5e21254345ff0a904eaf59529953ac2..0699a32d806f33ecadcb9410fde13dcd4da79771 100644 (file)
@@ -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 (file)
index 0000000..b5be550
--- /dev/null
@@ -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;
+
+}