You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by gm...@apache.org on 2003/12/15 02:07:50 UTC

cvs commit: xml-fop/src/java/org/apache/fop/fo Constants.java

gmazza      2003/12/14 17:07:50

  Modified:    .        build.xml
               src/codegen propinc.xsl
  Added:       src/codegen constants.xml constants.xsl foelements.xml
               src/java/org/apache/fop/fo Constants.java
  Removed:     src/codegen allprops.xml genconst.xsl
  Log:
  1. Removed the properties.Constants class from automatic generation, and
  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).
  
  Revision  Changes    Path
  1.93      +13 -5     xml-fop/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/xml-fop/build.xml,v
  retrieving revision 1.92
  retrieving revision 1.93
  diff -u -r1.92 -r1.93
  --- build.xml	7 Nov 2003 22:21:28 -0000	1.92
  +++ build.xml	15 Dec 2003 01:07:50 -0000	1.93
  @@ -207,13 +207,11 @@
       <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 @@
       <mkdir dir="${build.dest}/hyph"/>
     </target>
   
  +
     <!-- =================================================================== -->
     <!-- Generate the source code                                            -->
     <!-- =================================================================== -->
  @@ -353,9 +352,6 @@
         <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 @@
     </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 @@
         </xmlcatalog>
       </xmlvalidate>
     </target>
  +  
   </project>
  
  
  
  1.6       +9 -1      xml-fop/src/codegen/propinc.xsl
  
  Index: propinc.xsl
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/codegen/propinc.xsl,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- propinc.xsl	7 Mar 2003 10:54:17 -0000	1.5
  +++ propinc.xsl	15 Dec 2003 01:07:50 -0000	1.6
  @@ -81,6 +81,14 @@
     </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="."/>
  
  
  
  1.1                  xml-fop/src/codegen/constants.xml
  
  Index: constants.xml
  ===================================================================
  <!--
   * $Id: constants.xml,v 1.1 2003/12/15 01:07:50 gmazza Exp $
   * ============================================================================
   *                    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 <jt...@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>
  
  
  
  1.1                  xml-fop/src/codegen/constants.xsl
  
  Index: constants.xsl
  ===================================================================
  <!-- $Id: constants.xsl,v 1.1 2003/12/15 01:07:50 gmazza Exp $
  ============================================================================
                     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 <jt...@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>
  
  
  
  1.1                  xml-fop/src/codegen/foelements.xml
  
  Index: foelements.xml
  ===================================================================
  <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>
  
  
  
  
  1.1                  xml-fop/src/java/org/apache/fop/fo/Constants.java
  
  Index: Constants.java
  ===================================================================
  /* $Id: Constants.java,v 1.1 2003/12/15 01:07:50 gmazza Exp $
   * ============================================================================
   *                    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 <jt...@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;
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org


Re: cvs commit: xml-fop/src/java/org/apache/fop/fo Constants.java

Posted by "Peter B. West" <pb...@powerup.com.au>.
Glen Mazza wrote:
> 
> There's about 10-15 differences between Alt-Design and
> HEAD (my unresearched guess), and getting us on to INT
> constants--the no-brainer--removes one of them.  Peter
> hopefully will start to see more of the "theory" of
> Alt-Design in HEAD, if not exactly the same
> implementation (e.g., like Finn, I have a slight
> preference for a constants
> interface--Constants.java--that classes can implement,
> rather than a constants class--PropNames.java.)

Joshua Bloch, in an interview about the new features in 1.5, refers to 
the "Constant Interface" anti-pattern, and briefly discusses why it's 
not a good idea.  The discussion of Typesafe Enum pattern in association 
with the new Typesafe enums in 1.5 may be useful in HEAD.  Alt.design 
needs ints because I access everything to do with properties through 
arrays indexed by the property int constant, but that is probably not an 
issue in HEAD.

http://java.sun.com/features/2003/05/bloch_qa.html

Peter
-- 
Peter B. West <http://www.powerup.com.au/~pbwest/resume.html>


Re: cvs commit: xml-fop/src/java/org/apache/fop/fo Constants.java

Posted by Finn Bock <bc...@worldonline.dk>.
>>Also, while I used fo:element constants in my
>>experiment, it is clear to 
>>me that such an approach does not work well for
>>extension elements.

[Glen Mazza]

> Oh no--I hope you don't mean we have to revert to
> strings for those?  

No, not at all. It is just that the element id's for extensions must be 
assigned dynamically. Something along the lines of:

in FONode (or anywhere else):

     private static int _elementId = Constants.ELEMENT_COUNT;
     synchronized public static int makeElementIdentifier() {
         return ++_elementId;
     }

and in each and every extension subclass of FONode this boilerplate:

     private static int elementId = makeElementIdentifier();
     public int getElementId() {
         return elementId;
     }

> Using that logic, property
> constants wouldn't work either, right?  (because
> extension elements can have different properties).

At the moment, my performance experiment does not support extension 
properties either, but it can be added like this:

- An API that allow the extension to assign values to its property 
identifiers dynamically, like elementId above.
- An API that allow the extension to inserts its properties into the 
bitset of the parent elements. Otherwise extension property values can 
not be inherited from the normal fo: elements. (BTW, this is a good 
argument for calculating the full inheritance bitset at runtime).

A change to int elementId's and properties along the lines of my 
experiment, would mean a somewhat higher burden on extension writers.

regards,
finn


Re: cvs commit: xml-fop/src/java/org/apache/fop/fo Constants.java

Posted by Glen Mazza <gr...@yahoo.com>.
--- Finn Bock <bc...@worldonline.dk> wrote:
> I think Peter was refering to the fact that you
> placed the file in the
>      src/java/org/apache/fop/fo/
> directory, but it used to be in the
>      org.apache.fop.fo.properties.
> package. Indeed, the package statement in the
> Constants still reads
>      package org.apache.fop.fo.properties;
> 

Yes, I foolishly realized later that's what Peter
meant (I'm surprised it compiled w/o error
though--that was my confusion, since there was no
error I assumed he was commenting on my choice of
location for the package.)

> 
> > [...](e.g., like Finn, I have a slight
> > preference for a constants
> > interface--Constants.java--that classes can
> implement,
> > rather than a constants class--PropNames.java.)
> 
> Right, but methods that can map constants->string
> and string->constants 
> is still needed and must be placed in a class
> somewhere. I happened to 
> put the methods in the FOPropertyMapping class.
> 

I'll look at that--I'm currently trying to move the
constants over right now.

> 
> Also, while I used fo:element constants in my
> experiment, it is clear to 
> me that such an approach does not work well for
> extension elements.
> 
> regards,
> finn
> 

Oh no--I hope you don't mean we have to revert to
strings for those?  Using that logic, property
constants wouldn't work either, right?  (because
extension elements can have different properties).  At
worst, I hope we can use overloaded functions
(constants in some cases, strings in others.)

Thanks,
Glen

__________________________________
Do you Yahoo!?
New Yahoo! Photos - easier uploading and sharing.
http://photos.yahoo.com/

Re: cvs commit: xml-fop/src/java/org/apache/fop/fo Constants.java

Posted by Finn Bock <bc...@worldonline.dk>.
[Glen Mazza]

> It's been in that location for at least several
> months--it's just that we never saw it because it was
> autogenerated and never checked into CVS.  (As for its
> location--it is used by the FO classes and it also has
> some FO constants and other enumerations in there, so
> it is OK remaining there, I think.)

I think Peter was refering to the fact that you placed the file in the
     src/java/org/apache/fop/fo/
directory, but it used to be in the
     org.apache.fop.fo.properties.
package. Indeed, the package statement in the Constants still reads
     package org.apache.fop.fo.properties;

So you really should move the file from
    src/java/org/apache/fop/fo/Constants.java
to
    src/java/org/apache/fop/fo/properties/Constants.java


> [...](e.g., like Finn, I have a slight
> preference for a constants
> interface--Constants.java--that classes can implement,
> rather than a constants class--PropNames.java.)

Right, but methods that can map constants->string and string->constants 
is still needed and must be placed in a class somewhere. I happened to 
put the methods in the FOPropertyMapping class.


Also, while I used fo:element constants in my experiment, it is clear to 
me that such an approach does not work well for extension elements.

regards,
finn



RE: cvs commit: xml-fop/src/java/org/apache/fop/fo Constants.java

Posted by Glen Mazza <gr...@yahoo.com>.
It's been in that location for at least several
months--it's just that we never saw it because it was
autogenerated and never checked into CVS.  (As for its
location--it is used by the FO classes and it also has
some FO constants and other enumerations in there, so
it is OK remaining there, I think.)

I pulled that class off its autogenerated pedestal and
checked it into CVS.  Also added Finn's properties and
fo constants, or slight variations of them.  The
latter are still unused--there's more work needed to
be done to get us on to int constants.  I've been
working on it continuously--after work and on
weekends, since about Saturday.

And we may also need to rearrange the property
constants if we're to use Alt-Design's resolution
method, I don't want to gratuitously have Peter's
implementation ruled out just because of the ordering
of some constants.  (Now ruling them out if his method
proves sluggish, OTOH, is another matter... ;)  But
I'm not there yet.

There's about 10-15 differences between Alt-Design and
HEAD (my unresearched guess), and getting us on to INT
constants--the no-brainer--removes one of them.  Peter
hopefully will start to see more of the "theory" of
Alt-Design in HEAD, if not exactly the same
implementation (e.g., like Finn, I have a slight
preference for a constants
interface--Constants.java--that classes can implement,
rather than a constants class--PropNames.java.)

Glen


--- "Andreas L. Delmelle" <a_...@pandora.be>
wrote:
> > -----Original Message-----
> > From: Peter B. West [mailto:pbwest@powerup.com.au]
> > >
> > >
> > >   1.1                 
> xml-fop/src/java/org/apache/fop/fo/Constants.java
> > >
> > >   Index: Constants.java
> > >  
>
===================================================================
> > >   /* $Id: Constants.java,v 1.1 2003/12/15
> 01:07:50 gmazza Exp $
> > >    *
> >
>
==================================================================
> > ==========
> >
> > Glen,
> >
> > Shouldn't this one go into fop/fo/properties?
> >
> 
> This one puzzles me as well... In the props design
> in head, I found a lot of
> little interfaces declaring static finals with
> values from the
> fop.fo.Constants class.
> 
> Anyone?
> 
> 
> Cheers,
> 
> Andreas
> 




__________________________________
Do you Yahoo!?
New Yahoo! Photos - easier uploading and sharing.
http://photos.yahoo.com/

RE: cvs commit: xml-fop/src/java/org/apache/fop/fo Constants.java

Posted by "Andreas L. Delmelle" <a_...@pandora.be>.
> -----Original Message-----
> From: Peter B. West [mailto:pbwest@powerup.com.au]
> >
> >
> >   1.1                  xml-fop/src/java/org/apache/fop/fo/Constants.java
> >
> >   Index: Constants.java
> >   ===================================================================
> >   /* $Id: Constants.java,v 1.1 2003/12/15 01:07:50 gmazza Exp $
> >    *
> ==================================================================
> ==========
>
> Glen,
>
> Shouldn't this one go into fop/fo/properties?
>

This one puzzles me as well... In the props design in head, I found a lot of
little interfaces declaring static finals with values from the
fop.fo.Constants class.

Anyone?


Cheers,

Andreas


Re: cvs commit: xml-fop/src/java/org/apache/fop/fo Constants.java

Posted by "Peter B. West" <pb...@powerup.com.au>.
gmazza@apache.org wrote:
> gmazza      2003/12/14 17:07:50
> 
>   Modified:    .        build.xml
>                src/codegen propinc.xsl
>   Added:       src/codegen constants.xml constants.xsl foelements.xml
>                src/java/org/apache/fop/fo Constants.java
>   Removed:     src/codegen allprops.xml genconst.xsl
>   Log:
>   1. Removed the properties.Constants class from automatic generation, and
>   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.)
>   
>   
>   1.1                  xml-fop/src/java/org/apache/fop/fo/Constants.java
>   
>   Index: Constants.java
>   ===================================================================
>   /* $Id: Constants.java,v 1.1 2003/12/15 01:07:50 gmazza Exp $
>    * ============================================================================

Glen,

Shouldn't this one go into fop/fo/properties?

Peter
-- 
Peter B. West <http://www.powerup.com.au/~pbwest/resume.html>