home *** CD-ROM | disk | FTP | other *** search
/ MacFormat UK 160 - Disc 2 / MF_UK_160_2.iso / pc / DiscContent / Trials / oxygen / lib / oxygen.jar / builtin / fop4.xsd < prev    next >
Encoding:
Extensible Markup Language  |  2005-07-21  |  147.2 KB  |  3,037 lines

  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <!-- *************************************************************** -->
  3. <!-- Entity definitions for groups of formatting objects -->
  4. <!-- *************************************************************** -->
  5. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
  6.     targetNamespace="http://www.w3.org/1999/XSL/Format" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:rx="http://www.renderx.com/XSL/Extensions">
  7.     <xs:import namespace="http://www.renderx.com/XSL/Extensions" schemaLocation="rxxsd.xsd"/>
  8.     <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xmlxsd.xsd"/>
  9.     <xs:element name="basic-inlines" abstract="true"/>
  10.     <xs:element name="basic-blocks" abstract="true" substitutionGroup="fo:blocks"/>
  11.     <xs:element name="out-of-lines" abstract="true" substitutionGroup="fo:blocks"/>
  12.     <xs:element name="wrappers" abstract="true" substitutionGroup="fo:blocks"/>
  13.     <xs:group name="inlines">
  14.         <xs:sequence>
  15.             <xs:choice minOccurs="0">
  16.                 <xs:element ref="fo:basic-inlines"/>
  17.                 <xs:element ref="fo:out-of-lines"/>
  18.                 <xs:element ref="fo:wrappers"/>
  19.             </xs:choice>
  20.         </xs:sequence>
  21.     </xs:group>
  22.     <xs:element name="blocks" abstract="true"/>
  23.     <xs:group name="mixed-level">
  24.         <xs:sequence>
  25.             <xs:choice minOccurs="0">
  26.                 <xs:element ref="fo:basic-inlines"/>
  27.                 <xs:element ref="fo:basic-blocks"/>
  28.                 <xs:element ref="fo:out-of-lines"/>
  29.                 <xs:element ref="fo:wrappers"/>
  30.             </xs:choice>
  31.         </xs:sequence>
  32.     </xs:group>
  33.     <!-- *************************************************************** -->
  34.     <!-- Entity definitions for common groups of properties -->
  35.     <!-- This grouping reflects properties cooccurrence, rather than -->
  36.     <!-- property semantics. It does not correspond to grouping in the -->
  37.     <!-- draft. -->
  38.     <!-- *************************************************************** -->
  39.     <!-- Accessibility Properties -->
  40.     <xs:attributeGroup name="accessibility-properties">
  41.         <xs:attribute name="source-document"/>
  42.         <xs:attribute name="role"/>
  43.     </xs:attributeGroup>
  44.     <!-- Relative Position Properties -->
  45.     <!-- 'position' shorthand property also makes part of this group -->
  46.     <xs:attributeGroup name="relative-position-properties">
  47.         <xs:attribute name="relative-position">
  48.             <xs:simpleType>
  49.                 <xs:restriction base="xs:token">
  50.                     <xs:enumeration value="auto"/>
  51.                     <xs:enumeration value="static"/>
  52.                     <xs:enumeration value="relative"/>
  53.                     <xs:enumeration value="inherit"/>
  54.                 </xs:restriction>
  55.             </xs:simpleType>
  56.         </xs:attribute>
  57.         <xs:attribute name="position">
  58.             <xs:simpleType>
  59.                 <xs:restriction base="xs:token">
  60.                     <xs:enumeration value="static"/>
  61.                     <xs:enumeration value="relative"/>
  62.                     <xs:enumeration value="absolute"/>
  63.                     <xs:enumeration value="fixed"/>
  64.                     <xs:enumeration value="inherit"/>
  65.                 </xs:restriction>
  66.             </xs:simpleType>
  67.         </xs:attribute>
  68.         <xs:attribute name="top"/>
  69.         <xs:attribute name="right"/>
  70.         <xs:attribute name="bottom"/>
  71.         <xs:attribute name="left"/>
  72.     </xs:attributeGroup>
  73.     <!-- Absolute or Relative Position Properties -->
  74.     <!-- There is no object that can be positioned only absolutely. -->
  75.     <!-- Therefore, absolute and relative positioning properties are -->
  76.     <!-- grouped together -->
  77.     <xs:attributeGroup name="absolute-or-relative-position-properties">
  78.         <xs:attribute name="absolute-position">
  79.             <xs:simpleType>
  80.                 <xs:restriction base="xs:token">
  81.                     <xs:enumeration value="auto"/>
  82.                     <xs:enumeration value="absolute"/>
  83.                     <xs:enumeration value="fixed"/>
  84.                     <xs:enumeration value="inherit"/>
  85.                 </xs:restriction>
  86.             </xs:simpleType>
  87.         </xs:attribute>
  88.         <xs:attributeGroup ref="fo:relative-position-properties"/>
  89.     </xs:attributeGroup>
  90.     <!-- Aural Properties -->
  91.     <!-- 'cue' and 'pause' shorthand properties are also included -->
  92.     <xs:attributeGroup name="aural-properties">
  93.         <xs:attribute name="azimuth"/>
  94.         <xs:attribute name="cue"/>
  95.         <xs:attribute name="cue-after"/>
  96.         <xs:attribute name="cue-before"/>
  97.         <xs:attribute name="elevation"/>
  98.         <xs:attribute name="pause"/>
  99.         <xs:attribute name="pause-after"/>
  100.         <xs:attribute name="pause-before"/>
  101.         <xs:attribute name="pitch"/>
  102.         <xs:attribute name="pitch-range"/>
  103.         <xs:attribute name="play-during"/>
  104.         <xs:attribute name="richness"/>
  105.         <xs:attribute name="speak">
  106.             <xs:simpleType>
  107.                 <xs:restriction base="xs:token">
  108.                     <xs:enumeration value="normal"/>
  109.                     <xs:enumeration value="none"/>
  110.                     <xs:enumeration value="spell-out"/>
  111.                     <xs:enumeration value="inherit"/>
  112.                 </xs:restriction>
  113.             </xs:simpleType>
  114.         </xs:attribute>
  115.         <xs:attribute name="speak-header">
  116.             <xs:simpleType>
  117.                 <xs:restriction base="xs:token">
  118.                     <xs:enumeration value="once"/>
  119.                     <xs:enumeration value="always"/>
  120.                     <xs:enumeration value="inherit"/>
  121.                 </xs:restriction>
  122.             </xs:simpleType>
  123.         </xs:attribute>
  124.         <xs:attribute name="speak-numeral">
  125.             <xs:simpleType>
  126.                 <xs:restriction base="xs:token">
  127.                     <xs:enumeration value="digits"/>
  128.                     <xs:enumeration value="continuous"/>
  129.                     <xs:enumeration value="inherit"/>
  130.                 </xs:restriction>
  131.             </xs:simpleType>
  132.         </xs:attribute>
  133.         <xs:attribute name="speak-punctuation">
  134.             <xs:simpleType>
  135.                 <xs:restriction base="xs:token">
  136.                     <xs:enumeration value="code"/>
  137.                     <xs:enumeration value="none"/>
  138.                     <xs:enumeration value="inherit"/>
  139.                 </xs:restriction>
  140.             </xs:simpleType>
  141.         </xs:attribute>
  142.         <xs:attribute name="speech-rate"/>
  143.         <xs:attribute name="stress"/>
  144.         <xs:attribute name="voice-family"/>
  145.         <xs:attribute name="volume"/>
  146.     </xs:attributeGroup>
  147.     <!-- Common Border, Padding, and Background Properties -->
  148.     <!-- Relative shorthand properties are also included -->
  149.     <xs:attributeGroup name="border-padding-background-properties">
  150.         <xs:attribute name="background"/>
  151.         <xs:attribute name="background-attachment">
  152.             <xs:simpleType>
  153.                 <xs:restriction base="xs:token">
  154.                     <xs:enumeration value="scroll"/>
  155.                     <xs:enumeration value="fixed"/>
  156.                     <xs:enumeration value="inherit"/>
  157.                 </xs:restriction>
  158.             </xs:simpleType>
  159.         </xs:attribute>
  160.         <xs:attribute name="background-color">
  161.             <xs:annotation>
  162.                 <xs:documentation> Specifies the color for the background. </xs:documentation>
  163.             </xs:annotation>
  164.         </xs:attribute>
  165.         <xs:attribute name="background-image">
  166.             <xs:annotation>
  167.                 <xs:documentation>The background-image attribute specifies an URI of the bitmap
  168.                     image file. An unqualified URI is treated as a path to a file in the local file
  169.                     system; if the path is relative, it is calculated from the location of the
  170.                     source XSL FO document (rather than from the current directory where XEP is run).</xs:documentation>
  171.             </xs:annotation>
  172.         </xs:attribute>
  173.         <xs:attribute name="background-position">
  174.             <xs:annotation>
  175.                 <xs:documentation>Used to specify image position.</xs:documentation>
  176.             </xs:annotation>
  177.         </xs:attribute>
  178.         <xs:attribute name="background-position-vertical"/>
  179.         <xs:attribute name="background-position-horizontal"/>
  180.         <xs:attribute name="background-repeat">
  181.             <xs:annotation>
  182.                 <xs:documentation>Specify whether the image should be repeated along any of the axes.</xs:documentation>
  183.             </xs:annotation>
  184.             <xs:simpleType>
  185.                 <xs:restriction base="xs:token">
  186.                     <xs:enumeration value="repeat"/>
  187.                     <xs:enumeration value="repeat-x"/>
  188.                     <xs:enumeration value="repeat-y"/>
  189.                     <xs:enumeration value="no-repeat"/>
  190.                     <xs:enumeration value="inherit"/>
  191.                 </xs:restriction>
  192.             </xs:simpleType>
  193.         </xs:attribute>
  194.         <xs:attribute ref="rx:background-content-type"/>
  195.         <xs:attribute ref="rx:background-content-height"/>
  196.         <xs:attribute ref="rx:background-content-width"/>
  197.         <xs:attribute ref="rx:background-scaling"/>
  198.         <xs:attribute name="border"/>
  199.         <xs:attribute name="border-after-color"/>
  200.         <xs:attribute name="border-after-style">
  201.             <xs:simpleType>
  202.                 <xs:restriction base="xs:token">
  203.                     <xs:enumeration value="none"/>
  204.                     <xs:enumeration value="hidden"/>
  205.                     <xs:enumeration value="dotted"/>
  206.                     <xs:enumeration value="dashed"/>
  207.                     <xs:enumeration value="solid"/>
  208.                     <xs:enumeration value="double"/>
  209.                     <xs:enumeration value="groove"/>
  210.                     <xs:enumeration value="ridge"/>
  211.                     <xs:enumeration value="inset"/>
  212.                     <xs:enumeration value="outset"/>
  213.                     <xs:enumeration value="inherit"/>
  214.                 </xs:restriction>
  215.             </xs:simpleType>
  216.         </xs:attribute>
  217.         <xs:attribute name="border-after-width"/>
  218.         <xs:attribute name="border-after-width.length"/>
  219.         <xs:attribute name="border-after-width.conditionality">
  220.             <xs:simpleType>
  221.                 <xs:restriction base="xs:token">
  222.                     <xs:enumeration value="discard"/>
  223.                     <xs:enumeration value="retain"/>
  224.                 </xs:restriction>
  225.             </xs:simpleType>
  226.         </xs:attribute>
  227.         <xs:attribute name="border-before-color"/>
  228.         <xs:attribute name="border-before-style">
  229.             <xs:simpleType>
  230.                 <xs:restriction base="xs:token">
  231.                     <xs:enumeration value="none"/>
  232.                     <xs:enumeration value="hidden"/>
  233.                     <xs:enumeration value="dotted"/>
  234.                     <xs:enumeration value="dashed"/>
  235.                     <xs:enumeration value="solid"/>
  236.                     <xs:enumeration value="double"/>
  237.                     <xs:enumeration value="groove"/>
  238.                     <xs:enumeration value="ridge"/>
  239.                     <xs:enumeration value="inset"/>
  240.                     <xs:enumeration value="outset"/>
  241.                     <xs:enumeration value="inherit"/>
  242.                 </xs:restriction>
  243.             </xs:simpleType>
  244.         </xs:attribute>
  245.         <xs:attribute name="border-before-width"/>
  246.         <xs:attribute name="border-before-width.length"/>
  247.         <xs:attribute name="border-before-width.conditionality">
  248.             <xs:simpleType>
  249.                 <xs:restriction base="xs:token">
  250.                     <xs:enumeration value="discard"/>
  251.                     <xs:enumeration value="retain"/>
  252.                 </xs:restriction>
  253.             </xs:simpleType>
  254.         </xs:attribute>
  255.         <xs:attribute name="border-bottom"/>
  256.         <xs:attribute name="border-bottom-color"/>
  257.         <xs:attribute name="border-bottom-style">
  258.             <xs:simpleType>
  259.                 <xs:restriction base="xs:token">
  260.                     <xs:enumeration value="none"/>
  261.                     <xs:enumeration value="hidden"/>
  262.                     <xs:enumeration value="dotted"/>
  263.                     <xs:enumeration value="dashed"/>
  264.                     <xs:enumeration value="solid"/>
  265.                     <xs:enumeration value="double"/>
  266.                     <xs:enumeration value="groove"/>
  267.                     <xs:enumeration value="ridge"/>
  268.                     <xs:enumeration value="inset"/>
  269.                     <xs:enumeration value="outset"/>
  270.                     <xs:enumeration value="inherit"/>
  271.                 </xs:restriction>
  272.             </xs:simpleType>
  273.         </xs:attribute>
  274.         <xs:attribute name="border-bottom-width"/>
  275.         <xs:attribute name="border-bottom-width.length"/>
  276.         <xs:attribute name="border-bottom-width.conditionality">
  277.             <xs:simpleType>
  278.                 <xs:restriction base="xs:token">
  279.                     <xs:enumeration value="discard"/>
  280.                     <xs:enumeration value="retain"/>
  281.                 </xs:restriction>
  282.             </xs:simpleType>
  283.         </xs:attribute>
  284.         <xs:attribute name="border-color"/>
  285.         <xs:attribute name="border-end-color"/>
  286.         <xs:attribute name="border-end-style">
  287.             <xs:simpleType>
  288.                 <xs:restriction base="xs:token">
  289.                     <xs:enumeration value="none"/>
  290.                     <xs:enumeration value="hidden"/>
  291.                     <xs:enumeration value="dotted"/>
  292.                     <xs:enumeration value="dashed"/>
  293.                     <xs:enumeration value="solid"/>
  294.                     <xs:enumeration value="double"/>
  295.                     <xs:enumeration value="groove"/>
  296.                     <xs:enumeration value="ridge"/>
  297.                     <xs:enumeration value="inset"/>
  298.                     <xs:enumeration value="outset"/>
  299.                     <xs:enumeration value="inherit"/>
  300.                 </xs:restriction>
  301.             </xs:simpleType>
  302.         </xs:attribute>
  303.         <xs:attribute name="border-end-width"/>
  304.         <xs:attribute name="border-end-width.length"/>
  305.         <xs:attribute name="border-end-width.conditionality">
  306.             <xs:simpleType>
  307.                 <xs:restriction base="xs:token">
  308.                     <xs:enumeration value="discard"/>
  309.                     <xs:enumeration value="retain"/>
  310.                 </xs:restriction>
  311.             </xs:simpleType>
  312.         </xs:attribute>
  313.         <xs:attribute name="border-left"/>
  314.         <xs:attribute name="border-left-color"/>
  315.         <xs:attribute name="border-left-style">
  316.             <xs:simpleType>
  317.                 <xs:restriction base="xs:token">
  318.                     <xs:enumeration value="none"/>
  319.                     <xs:enumeration value="hidden"/>
  320.                     <xs:enumeration value="dotted"/>
  321.                     <xs:enumeration value="dashed"/>
  322.                     <xs:enumeration value="solid"/>
  323.                     <xs:enumeration value="double"/>
  324.                     <xs:enumeration value="groove"/>
  325.                     <xs:enumeration value="ridge"/>
  326.                     <xs:enumeration value="inset"/>
  327.                     <xs:enumeration value="outset"/>
  328.                     <xs:enumeration value="inherit"/>
  329.                 </xs:restriction>
  330.             </xs:simpleType>
  331.         </xs:attribute>
  332.         <xs:attribute name="border-left-width"/>
  333.         <xs:attribute name="border-left-width.length"/>
  334.         <xs:attribute name="border-left-width.conditionality">
  335.             <xs:simpleType>
  336.                 <xs:restriction base="xs:token">
  337.                     <xs:enumeration value="discard"/>
  338.                     <xs:enumeration value="retain"/>
  339.                 </xs:restriction>
  340.             </xs:simpleType>
  341.         </xs:attribute>
  342.         <xs:attribute name="border-right"/>
  343.         <xs:attribute name="border-right-color"/>
  344.         <xs:attribute name="border-right-style">
  345.             <xs:simpleType>
  346.                 <xs:restriction base="xs:token">
  347.                     <xs:enumeration value="none"/>
  348.                     <xs:enumeration value="hidden"/>
  349.                     <xs:enumeration value="dotted"/>
  350.                     <xs:enumeration value="dashed"/>
  351.                     <xs:enumeration value="solid"/>
  352.                     <xs:enumeration value="double"/>
  353.                     <xs:enumeration value="groove"/>
  354.                     <xs:enumeration value="ridge"/>
  355.                     <xs:enumeration value="inset"/>
  356.                     <xs:enumeration value="outset"/>
  357.                     <xs:enumeration value="inherit"/>
  358.                 </xs:restriction>
  359.             </xs:simpleType>
  360.         </xs:attribute>
  361.         <xs:attribute name="border-right-width"/>
  362.         <xs:attribute name="border-right-width.length"/>
  363.         <xs:attribute name="border-right-width.conditionality">
  364.             <xs:simpleType>
  365.                 <xs:restriction base="xs:token">
  366.                     <xs:enumeration value="discard"/>
  367.                     <xs:enumeration value="retain"/>
  368.                 </xs:restriction>
  369.             </xs:simpleType>
  370.         </xs:attribute>
  371.         <xs:attribute name="border-start-color"/>
  372.         <xs:attribute name="border-start-style">
  373.             <xs:simpleType>
  374.                 <xs:restriction base="xs:token">
  375.                     <xs:enumeration value="none"/>
  376.                     <xs:enumeration value="hidden"/>
  377.                     <xs:enumeration value="dotted"/>
  378.                     <xs:enumeration value="dashed"/>
  379.                     <xs:enumeration value="solid"/>
  380.                     <xs:enumeration value="double"/>
  381.                     <xs:enumeration value="groove"/>
  382.                     <xs:enumeration value="ridge"/>
  383.                     <xs:enumeration value="inset"/>
  384.                     <xs:enumeration value="outset"/>
  385.                     <xs:enumeration value="inherit"/>
  386.                 </xs:restriction>
  387.             </xs:simpleType>
  388.         </xs:attribute>
  389.         <xs:attribute name="border-start-width"/>
  390.         <xs:attribute name="border-start-width.length"/>
  391.         <xs:attribute name="border-start-width.conditionality">
  392.             <xs:simpleType>
  393.                 <xs:restriction base="xs:token">
  394.                     <xs:enumeration value="discard"/>
  395.                     <xs:enumeration value="retain"/>
  396.                 </xs:restriction>
  397.             </xs:simpleType>
  398.         </xs:attribute>
  399.         <xs:attribute name="border-style"/>
  400.         <xs:attribute name="border-top"/>
  401.         <xs:attribute name="border-top-color">
  402.             <xs:annotation>
  403.                 <xs:documentation> One of 16 predefined HTML system colors, or an RGB value. </xs:documentation>
  404.             </xs:annotation>
  405.         </xs:attribute>
  406.         <xs:attribute name="border-top-style">
  407.             <xs:annotation>
  408.                 <xs:documentation>One of solid, dashed, dotted, double, inset, outset, groove,
  409.                     ridge, or none.</xs:documentation>
  410.             </xs:annotation>
  411.             <xs:simpleType>
  412.                 <xs:restriction base="xs:token">
  413.                     <xs:enumeration value="none"/>
  414.                     <xs:enumeration value="hidden"/>
  415.                     <xs:enumeration value="dotted"/>
  416.                     <xs:enumeration value="dashed"/>
  417.                     <xs:enumeration value="solid"/>
  418.                     <xs:enumeration value="double"/>
  419.                     <xs:enumeration value="groove"/>
  420.                     <xs:enumeration value="ridge"/>
  421.                     <xs:enumeration value="inset"/>
  422.                     <xs:enumeration value="outset"/>
  423.                     <xs:enumeration value="inherit"/>
  424.                 </xs:restriction>
  425.             </xs:simpleType>
  426.         </xs:attribute>
  427.         <xs:attribute name="border-top-width">
  428.             <xs:annotation>
  429.                 <xs:documentation>One of thin, medium, thick, or an explicit width specification.</xs:documentation>
  430.             </xs:annotation>
  431.         </xs:attribute>
  432.         <xs:attribute name="border-top-width.length"/>
  433.         <xs:attribute name="border-top-width.conditionality">
  434.             <xs:simpleType>
  435.                 <xs:restriction base="xs:token">
  436.                     <xs:enumeration value="discard"/>
  437.                     <xs:enumeration value="retain"/>
  438.                 </xs:restriction>
  439.             </xs:simpleType>
  440.         </xs:attribute>
  441.         <xs:attribute name="border-width"/>
  442.         <xs:attribute name="padding">
  443.             <xs:annotation>
  444.                 <xs:documentation>The padding between the text and the border. <ul> You can also
  445.                         specify several numbers as a value for padding attributes: <li> if there are
  446.                             two values, the top and bottom paddings are set to the first value and
  447.                             the right and left paddings are set to the second;</li>
  448.                         <li> if there are three values, the top is set to the first value, the left
  449.                             and right are set to the second, and the bottom one is set to the third;</li>
  450.                         <li> if there are four values, they apply to the top, right, bottom, and
  451.                             left, respectively.</li>
  452.                     </ul>
  453.                 </xs:documentation>
  454.             </xs:annotation>
  455.         </xs:attribute>
  456.         <xs:attribute name="padding-after"/>
  457.         <xs:attribute name="padding-after.length"/>
  458.         <xs:attribute name="padding-after.conditionality">
  459.             <xs:simpleType>
  460.                 <xs:restriction base="xs:token">
  461.                     <xs:enumeration value="discard"/>
  462.                     <xs:enumeration value="retain"/>
  463.                 </xs:restriction>
  464.             </xs:simpleType>
  465.         </xs:attribute>
  466.         <xs:attribute name="padding-before"/>
  467.         <xs:attribute name="padding-before.length"/>
  468.         <xs:attribute name="padding-before.conditionality">
  469.             <xs:simpleType>
  470.                 <xs:restriction base="xs:token">
  471.                     <xs:enumeration value="discard"/>
  472.                     <xs:enumeration value="retain"/>
  473.                 </xs:restriction>
  474.             </xs:simpleType>
  475.         </xs:attribute>
  476.         <xs:attribute name="padding-bottom"/>
  477.         <xs:attribute name="padding-bottom.length"/>
  478.         <xs:attribute name="padding-bottom.conditionality">
  479.             <xs:simpleType>
  480.                 <xs:restriction base="xs:token">
  481.                     <xs:enumeration value="discard"/>
  482.                     <xs:enumeration value="retain"/>
  483.                 </xs:restriction>
  484.             </xs:simpleType>
  485.         </xs:attribute>
  486.         <xs:attribute name="padding-end"/>
  487.         <xs:attribute name="padding-end.length"/>
  488.         <xs:attribute name="padding-end.conditionality">
  489.             <xs:simpleType>
  490.                 <xs:restriction base="xs:token">
  491.                     <xs:enumeration value="discard"/>
  492.                     <xs:enumeration value="retain"/>
  493.                 </xs:restriction>
  494.             </xs:simpleType>
  495.         </xs:attribute>
  496.         <xs:attribute name="padding-left"/>
  497.         <xs:attribute name="padding-left.length"/>
  498.         <xs:attribute name="padding-left.conditionality">
  499.             <xs:simpleType>
  500.                 <xs:restriction base="xs:token">
  501.                     <xs:enumeration value="discard"/>
  502.                     <xs:enumeration value="retain"/>
  503.                 </xs:restriction>
  504.             </xs:simpleType>
  505.         </xs:attribute>
  506.         <xs:attribute name="padding-right"/>
  507.         <xs:attribute name="padding-right.length"/>
  508.         <xs:attribute name="padding-right.conditionality">
  509.             <xs:simpleType>
  510.                 <xs:restriction base="xs:token">
  511.                     <xs:enumeration value="discard"/>
  512.                     <xs:enumeration value="retain"/>
  513.                 </xs:restriction>
  514.             </xs:simpleType>
  515.         </xs:attribute>
  516.         <xs:attribute name="padding-start"/>
  517.         <xs:attribute name="padding-start.length"/>
  518.         <xs:attribute name="padding-start.conditionality">
  519.             <xs:simpleType>
  520.                 <xs:restriction base="xs:token">
  521.                     <xs:enumeration value="discard"/>
  522.                     <xs:enumeration value="retain"/>
  523.                 </xs:restriction>
  524.             </xs:simpleType>
  525.         </xs:attribute>
  526.         <xs:attribute name="padding-top"/>
  527.         <xs:attribute name="padding-top.length"/>
  528.         <xs:attribute name="padding-top.conditionality">
  529.             <xs:simpleType>
  530.                 <xs:restriction base="xs:token">
  531.                     <xs:enumeration value="discard"/>
  532.                     <xs:enumeration value="retain"/>
  533.                 </xs:restriction>
  534.             </xs:simpleType>
  535.         </xs:attribute>
  536.     </xs:attributeGroup>
  537.     <!-- Border Precedence Properties for tables -->
  538.     <xs:attributeGroup name="border-precedence-properties">
  539.         <xs:attribute name="border-after-precedence"/>
  540.         <xs:attribute name="border-before-precedence"/>
  541.         <xs:attribute name="border-end-precedence"/>
  542.         <xs:attribute name="border-start-precedence"/>
  543.     </xs:attributeGroup>
  544.     <!-- Box Size Properties -->
  545.     <xs:attributeGroup name="box-size-properties">
  546.         <xs:attribute name="height"/>
  547.         <xs:attribute name="min-height"/>
  548.         <xs:attribute name="max-height"/>
  549.         <xs:attribute name="width"/>
  550.         <xs:attribute name="min-width"/>
  551.         <xs:attribute name="max-width"/>
  552.         <xs:attribute name="inline-progression-dimension"/>
  553.         <xs:attribute name="inline-progression-dimension.minimum"/>
  554.         <xs:attribute name="inline-progression-dimension.optimum"/>
  555.         <xs:attribute name="inline-progression-dimension.maximum"/>
  556.         <xs:attribute name="block-progression-dimension"/>
  557.         <xs:attribute name="block-progression-dimension.minimum"/>
  558.         <xs:attribute name="block-progression-dimension.optimum"/>
  559.         <xs:attribute name="block-progression-dimension.maximum"/>
  560.     </xs:attributeGroup>
  561.     <!-- Common Area Properties -->
  562.     <xs:attributeGroup name="area-properties">
  563.         <xs:attribute name="clip"/>
  564.         <xs:attribute name="overflow">
  565.             <xs:simpleType>
  566.                 <xs:restriction base="xs:token">
  567.                     <xs:enumeration value="visible"/>
  568.                     <xs:enumeration value="hidden"/>
  569.                     <xs:enumeration value="scroll"/>
  570.                     <xs:enumeration value="auto"/>
  571.                     <xs:enumeration value="error-if-overflow"/>
  572.                     <xs:enumeration value="inherit"/>
  573.                 </xs:restriction>
  574.             </xs:simpleType>
  575.         </xs:attribute>
  576.         <xs:attribute name="display-align">
  577.             <xs:annotation>
  578.                 <xs:documentation>Specifies the alignment of the contents inside the area.</xs:documentation>
  579.             </xs:annotation>
  580.             <xs:simpleType>
  581.                 <xs:restriction base="xs:token">
  582.                     <xs:enumeration value="auto"/>
  583.                     <xs:enumeration value="before"/>
  584.                     <xs:enumeration value="center"/>
  585.                     <xs:enumeration value="after"/>
  586.                     <xs:enumeration value="inherit"/>
  587.                 </xs:restriction>
  588.             </xs:simpleType>
  589.         </xs:attribute>
  590.         <xs:attribute name="reference-orientation">
  591.             <xs:annotation>
  592.                 <xs:documentation>Specifies rotation of coordinate axes for the region; its value is
  593.                     an angle of rotation counterclockwise (in degrees; must be multiple of 90;
  594.                     negative values rotate clockwise).</xs:documentation>
  595.             </xs:annotation>
  596.             <xs:simpleType>
  597.                 <xs:restriction base="xs:token">
  598.                     <xs:enumeration value="0"/>
  599.                     <xs:enumeration value="90"/>
  600.                     <xs:enumeration value="180"/>
  601.                     <xs:enumeration value="270"/>
  602.                     <xs:enumeration value="-90"/>
  603.                     <xs:enumeration value="-180"/>
  604.                     <xs:enumeration value="-270"/>
  605.                     <xs:enumeration value="0deg"/>
  606.                     <xs:enumeration value="90deg"/>
  607.                     <xs:enumeration value="180deg"/>
  608.                     <xs:enumeration value="270deg"/>
  609.                     <xs:enumeration value="-90deg"/>
  610.                     <xs:enumeration value="-180deg"/>
  611.                     <xs:enumeration value="-270deg"/>
  612.                     <xs:enumeration value="inherit"/>
  613.                 </xs:restriction>
  614.             </xs:simpleType>
  615.         </xs:attribute>
  616.         <xs:attribute name="writing-mode">
  617.             <xs:simpleType>
  618.                 <xs:restriction base="xs:token">
  619.                     <xs:enumeration value="lr-tb"/>
  620.                     <xs:enumeration value="rl-tb"/>
  621.                     <xs:enumeration value="tb-rl"/>
  622.                     <xs:enumeration value="lr"/>
  623.                     <xs:enumeration value="rl"/>
  624.                     <xs:enumeration value="tb"/>
  625.                     <xs:enumeration value="inherit"/>
  626.                 </xs:restriction>
  627.             </xs:simpleType>
  628.         </xs:attribute>
  629.     </xs:attributeGroup>
  630.     <!-- Common Font Properties -->
  631.     <!-- 'font' shorthand property is also included -->
  632.     <xs:attributeGroup name="font-properties">
  633.         <xs:attribute name="font"/>
  634.         <xs:attribute name="font-selection-strategy">
  635.             <xs:simpleType>
  636.                 <xs:restriction base="xs:token">
  637.                     <xs:enumeration value="auto"/>
  638.                     <xs:enumeration value="character-by-character"/>
  639.                     <xs:enumeration value="inherit"/>
  640.                 </xs:restriction>
  641.             </xs:simpleType>
  642.         </xs:attribute>
  643.         <xs:attribute name="font-family"/>
  644.         <xs:attribute name="font-size"/>
  645.         <xs:attribute name="font-size-adjust"/>
  646.         <xs:attribute name="font-stretch">
  647.             <xs:simpleType>
  648.                 <xs:restriction base="xs:token">
  649.                     <xs:enumeration value="normal"/>
  650.                     <xs:enumeration value="wider"/>
  651.                     <xs:enumeration value="narrower"/>
  652.                     <xs:enumeration value="ultra-condensed"/>
  653.                     <xs:enumeration value="extra-condensed"/>
  654.                     <xs:enumeration value="condensed"/>
  655.                     <xs:enumeration value="semi-condensed"/>
  656.                     <xs:enumeration value="semi-expanded"/>
  657.                     <xs:enumeration value="expanded"/>
  658.                     <xs:enumeration value="extra-expanded"/>
  659.                     <xs:enumeration value="ultra-expanded"/>
  660.                     <xs:enumeration value="inherit"/>
  661.                 </xs:restriction>
  662.             </xs:simpleType>
  663.         </xs:attribute>
  664.         <xs:attribute name="font-style">
  665.             <xs:simpleType>
  666.                 <xs:restriction base="xs:token">
  667.                     <xs:enumeration value="normal"/>
  668.                     <xs:enumeration value="italic"/>
  669.                     <xs:enumeration value="oblique"/>
  670.                     <xs:enumeration value="backslant"/>
  671.                     <xs:enumeration value="inherit"/>
  672.                 </xs:restriction>
  673.             </xs:simpleType>
  674.         </xs:attribute>
  675.         <xs:attribute name="font-variant">
  676.             <xs:simpleType>
  677.                 <xs:restriction base="xs:token">
  678.                     <xs:enumeration value="normal"/>
  679.                     <xs:enumeration value="small-caps"/>
  680.                     <xs:enumeration value="inherit"/>
  681.                 </xs:restriction>
  682.             </xs:simpleType>
  683.         </xs:attribute>
  684.         <xs:attribute name="font-weight">
  685.             <xs:simpleType>
  686.                 <xs:restriction base="xs:token">
  687.                     <xs:enumeration value="normal"/>
  688.                     <xs:enumeration value="bold"/>
  689.                     <xs:enumeration value="bolder"/>
  690.                     <xs:enumeration value="lighter"/>
  691.                     <xs:enumeration value="inherit"/>
  692.                     <xs:enumeration value="100"/>
  693.                     <xs:enumeration value="200"/>
  694.                     <xs:enumeration value="300"/>
  695.                     <xs:enumeration value="400"/>
  696.                     <xs:enumeration value="500"/>
  697.                     <xs:enumeration value="600"/>
  698.                     <xs:enumeration value="700"/>
  699.                     <xs:enumeration value="800"/>
  700.                     <xs:enumeration value="900"/>
  701.                 </xs:restriction>
  702.             </xs:simpleType>
  703.         </xs:attribute>
  704.     </xs:attributeGroup>
  705.     <!-- Common Hyphenation Properties - Inline -->
  706.     <!-- 'xml:lang' shorthand property is also included -->
  707.     <xs:attributeGroup name="hyphenation-properties-inline">
  708.         <xs:attribute name="country"/>
  709.         <xs:attribute name="language"/>
  710.         <xs:attribute name="script"/>
  711.         <xs:attribute ref="xml:lang"/>
  712.         <xs:attribute name="hyphenate">
  713.             <xs:simpleType>
  714.                 <xs:restriction base="xs:token">
  715.                     <xs:enumeration value="false"/>
  716.                     <xs:enumeration value="true"/>
  717.                     <xs:enumeration value="inherit"/>
  718.                 </xs:restriction>
  719.             </xs:simpleType>
  720.         </xs:attribute>
  721.         <xs:attribute name="hyphenation-character"/>
  722.         <xs:attribute name="hyphenation-push-character-count"/>
  723.         <xs:attribute name="hyphenation-remain-character-count"/>
  724.     </xs:attributeGroup>
  725.     <!-- Common Hyphenation Properties - Block -->
  726.     <xs:attributeGroup name="hyphenation-properties-block">
  727.         <xs:attribute name="hyphenation-keep">
  728.             <xs:simpleType>
  729.                 <xs:restriction base="xs:token">
  730.                     <xs:enumeration value="auto"/>
  731.                     <xs:enumeration value="column"/>
  732.                     <xs:enumeration value="page"/>
  733.                     <xs:enumeration value="inherit"/>
  734.                 </xs:restriction>
  735.             </xs:simpleType>
  736.         </xs:attribute>
  737.         <xs:attribute name="hyphenation-ladder-count"/>
  738.         <xs:attributeGroup ref="fo:hyphenation-properties-inline"/>
  739.     </xs:attributeGroup>
  740.     <!-- Common CSS Margin Properties -->
  741.     <!-- 'margin' shorthand property is also included -->
  742.     <xs:attributeGroup name="margin-properties-CSS">
  743.         <xs:attribute name="margin"/>
  744.         <xs:attribute name="margin-bottom"/>
  745.         <xs:attribute name="margin-left"/>
  746.         <xs:attribute name="margin-right"/>
  747.         <xs:attribute name="margin-top"/>
  748.     </xs:attributeGroup>
  749.     <!-- Common Margin Properties - Block -->
  750.     <xs:attributeGroup name="margin-properties-block">
  751.         <xs:attributeGroup ref="fo:margin-properties-CSS"/>
  752.         <xs:attribute name="space-after"/>
  753.         <xs:attribute name="space-after.minimum"/>
  754.         <xs:attribute name="space-after.optimum">
  755.             <xs:annotation>
  756.                 <xs:documentation> This serves to separate adjacent footnote bodies. </xs:documentation>
  757.             </xs:annotation>
  758.         </xs:attribute>
  759.         <xs:attribute name="space-after.maximum"/>
  760.         <xs:attribute name="space-after.precedence"/>
  761.         <xs:attribute name="space-after.conditionality">
  762.             <xs:simpleType>
  763.                 <xs:restriction base="xs:token">
  764.                     <xs:enumeration value="retain"/>
  765.                     <xs:enumeration value="discard"/>
  766.                 </xs:restriction>
  767.             </xs:simpleType>
  768.         </xs:attribute>
  769.         <xs:attribute name="space-before"/>
  770.         <xs:attribute name="space-before.minimum"/>
  771.         <xs:attribute name="space-before.optimum"/>
  772.         <xs:attribute name="space-before.maximum"/>
  773.         <xs:attribute name="space-before.precedence"/>
  774.         <xs:attribute name="space-before.conditionality">
  775.             <xs:simpleType>
  776.                 <xs:restriction base="xs:token">
  777.                     <xs:enumeration value="retain"/>
  778.                     <xs:enumeration value="discard"/>
  779.                 </xs:restriction>
  780.             </xs:simpleType>
  781.         </xs:attribute>
  782.         <xs:attribute name="start-indent"/>
  783.         <xs:attribute name="end-indent"/>
  784.     </xs:attributeGroup>
  785.     <!-- Common Margin Properties - Inline -->
  786.     <xs:attributeGroup name="margin-properties-inline">
  787.         <xs:attributeGroup ref="fo:margin-properties-block"/>
  788.         <xs:attribute name="space-start"/>
  789.         <xs:attribute name="space-start.minimum"/>
  790.         <xs:attribute name="space-start.optimum"/>
  791.         <xs:attribute name="space-start.maximum"/>
  792.         <xs:attribute name="space-start.precedence"/>
  793.         <xs:attribute name="space-start.conditionality">
  794.             <xs:simpleType>
  795.                 <xs:restriction base="xs:token">
  796.                     <xs:enumeration value="retain"/>
  797.                     <xs:enumeration value="discard"/>
  798.                 </xs:restriction>
  799.             </xs:simpleType>
  800.         </xs:attribute>
  801.         <xs:attribute name="space-end"/>
  802.         <xs:attribute name="space-end.minimum"/>
  803.         <xs:attribute name="space-end.optimum"/>
  804.         <xs:attribute name="space-end.maximum"/>
  805.         <xs:attribute name="space-end.precedence"/>
  806.         <xs:attribute name="space-end.conditionality">
  807.             <xs:simpleType>
  808.                 <xs:restriction base="xs:token">
  809.                     <xs:enumeration value="retain"/>
  810.                     <xs:enumeration value="discard"/>
  811.                 </xs:restriction>
  812.             </xs:simpleType>
  813.         </xs:attribute>
  814.     </xs:attributeGroup>
  815.     <!-- Area Alignment Properties - inline -->
  816.     <!-- 'vertical-align' shorthand is added -->
  817.     <xs:attributeGroup name="area-alignment-properties-inline">
  818.         <xs:attribute name="alignment-adjust"/>
  819.         <xs:attribute name="alignment-baseline">
  820.             <xs:annotation>
  821.                 <xs:documentation> This aligns the leader vertically to the baseline. </xs:documentation>
  822.             </xs:annotation>
  823.             <xs:simpleType>
  824.                 <xs:restriction base="xs:token">
  825.                     <xs:enumeration value="auto"/>
  826.                     <xs:enumeration value="baseline"/>
  827.                     <xs:enumeration value="before-edge"/>
  828.                     <xs:enumeration value="text-before-edge"/>
  829.                     <xs:enumeration value="middle"/>
  830.                     <xs:enumeration value="central"/>
  831.                     <xs:enumeration value="after-edge"/>
  832.                     <xs:enumeration value="text-after-edge"/>
  833.                     <xs:enumeration value="top"/>
  834.                     <xs:enumeration value="text-top"/>
  835.                     <xs:enumeration value="bottom"/>
  836.                     <xs:enumeration value="text-bottom"/>
  837.                     <xs:enumeration value="ideographic"/>
  838.                     <xs:enumeration value="alphabetic"/>
  839.                     <xs:enumeration value="hanging"/>
  840.                     <xs:enumeration value="mathematical"/>
  841.                     <xs:enumeration value="inherit"/>
  842.                 </xs:restriction>
  843.             </xs:simpleType>
  844.         </xs:attribute>
  845.         <xs:attribute name="baseline-shift"/>
  846.         <xs:attribute name="dominant-baseline">
  847.             <xs:simpleType>
  848.                 <xs:restriction base="xs:token">
  849.                     <xs:enumeration value="auto"/>
  850.                     <xs:enumeration value="use-script"/>
  851.                     <xs:enumeration value="no-change"/>
  852.                     <xs:enumeration value="reset-size"/>
  853.                     <xs:enumeration value="ideographic"/>
  854.                     <xs:enumeration value="alphabetic"/>
  855.                     <xs:enumeration value="hanging"/>
  856.                     <xs:enumeration value="mathematical"/>
  857.                     <xs:enumeration value="central"/>
  858.                     <xs:enumeration value="middle"/>
  859.                     <xs:enumeration value="text-after-edge"/>
  860.                     <xs:enumeration value="text-before-edge"/>
  861.                     <xs:enumeration value="inherit"/>
  862.                 </xs:restriction>
  863.             </xs:simpleType>
  864.         </xs:attribute>
  865.         <xs:attribute name="vertical-align"/>
  866.     </xs:attributeGroup>
  867.     <!-- Line Height Properties -->
  868.     <xs:attributeGroup name="line-height-properties">
  869.         <xs:attribute name="line-height">
  870.             <xs:annotation>
  871.                 <xs:documentation> This property specifies the line height: it can be expressed as a
  872.                     length, as a numeric value, or as a percent. Numbers and percents are
  873.                     interpreted as multiples to the nominal font height. </xs:documentation>
  874.             </xs:annotation>
  875.         </xs:attribute>
  876.         <xs:attribute name="line-height.minimum"/>
  877.         <xs:attribute name="line-height.optimum"/>
  878.         <xs:attribute name="line-height.maximum"/>
  879.         <xs:attribute name="line-height.precedence"/>
  880.         <xs:attribute name="line-height.conditionality">
  881.             <xs:simpleType>
  882.                 <xs:restriction base="xs:token">
  883.                     <xs:enumeration value="retain"/>
  884.                     <xs:enumeration value="discard"/>
  885.                 </xs:restriction>
  886.             </xs:simpleType>
  887.         </xs:attribute>
  888.         <xs:attribute name="line-height-shift-adjustment"/>
  889.     </xs:attributeGroup>
  890.     <!-- Line Related Properties -->
  891.     <!-- [!] <string> values are temporarily excluded from text-align -->
  892.     <xs:attributeGroup name="line-related-properties">
  893.         <xs:attribute name="text-align">
  894.             <xs:simpleType>
  895.                 <xs:restriction base="xs:token">
  896.                     <xs:enumeration value="start"/>
  897.                     <xs:enumeration value="center"/>
  898.                     <xs:enumeration value="end"/>
  899.                     <xs:enumeration value="justify"/>
  900.                     <xs:enumeration value="inside"/>
  901.                     <xs:enumeration value="outside"/>
  902.                     <xs:enumeration value="left"/>
  903.                     <xs:enumeration value="right"/>
  904.                     <xs:enumeration value="inherit"/>
  905.                 </xs:restriction>
  906.             </xs:simpleType>
  907.         </xs:attribute>
  908.         <xs:attribute name="text-align-last">
  909.             <xs:annotation>
  910.                 <xs:documentation> This attribute alligns the last line. </xs:documentation>
  911.             </xs:annotation>
  912.             <xs:simpleType>
  913.                 <xs:restriction base="xs:token">
  914.                     <xs:enumeration value="relative"/>
  915.                     <xs:enumeration value="start"/>
  916.                     <xs:enumeration value="center"/>
  917.                     <xs:enumeration value="end"/>
  918.                     <xs:enumeration value="justify"/>
  919.                     <xs:enumeration value="inside"/>
  920.                     <xs:enumeration value="outside"/>
  921.                     <xs:enumeration value="left"/>
  922.                     <xs:enumeration value="right"/>
  923.                     <xs:enumeration value="inherit"/>
  924.                 </xs:restriction>
  925.             </xs:simpleType>
  926.         </xs:attribute>
  927.         <xs:attribute name="text-indent"/>
  928.         <xs:attribute name="last-line-end-indent"/>
  929.         <xs:attribute name="line-stacking-strategy">
  930.             <xs:simpleType>
  931.                 <xs:restriction base="xs:token">
  932.                     <xs:enumeration value="line-height"/>
  933.                     <xs:enumeration value="font-height"/>
  934.                     <xs:enumeration value="max-height"/>
  935.                     <xs:enumeration value="inherit"/>
  936.                 </xs:restriction>
  937.             </xs:simpleType>
  938.         </xs:attribute>
  939.         <xs:attribute name="linefeed-treatment">
  940.             <xs:simpleType>
  941.                 <xs:restriction base="xs:token">
  942.                     <xs:enumeration value="ignore"/>
  943.                     <xs:enumeration value="preserve"/>
  944.                     <xs:enumeration value="treat-as-space"/>
  945.                     <xs:enumeration value="treat-as-zero-width-space"/>
  946.                     <xs:enumeration value="inherit"/>
  947.                 </xs:restriction>
  948.             </xs:simpleType>
  949.         </xs:attribute>
  950.         <xs:attribute name="white-space">
  951.             <xs:simpleType>
  952.                 <xs:restriction base="xs:token">
  953.                     <xs:enumeration value="normal"/>
  954.                     <xs:enumeration value="pre"/>
  955.                     <xs:enumeration value="nowrap"/>
  956.                     <xs:enumeration value="inherit"/>
  957.                 </xs:restriction>
  958.             </xs:simpleType>
  959.         </xs:attribute>
  960.         <xs:attribute name="white-space-treatment">
  961.             <xs:simpleType>
  962.                 <xs:restriction base="xs:token">
  963.                     <xs:enumeration value="ignore"/>
  964.                     <xs:enumeration value="preserve"/>
  965.                     <xs:enumeration value="ignore-if-before-linefeed"/>
  966.                     <xs:enumeration value="ignore-if-after-linefeed"/>
  967.                     <xs:enumeration value="ignore-if-surrounding-linefeed"/>
  968.                     <xs:enumeration value="inherit"/>
  969.                 </xs:restriction>
  970.             </xs:simpleType>
  971.         </xs:attribute>
  972.         <xs:attribute name="white-space-collapse">
  973.             <xs:simpleType>
  974.                 <xs:restriction base="xs:token">
  975.                     <xs:enumeration value="false"/>
  976.                     <xs:enumeration value="true"/>
  977.                     <xs:enumeration value="inherit"/>
  978.                 </xs:restriction>
  979.             </xs:simpleType>
  980.         </xs:attribute>
  981.         <xs:attribute name="wrap-option">
  982.             <xs:simpleType>
  983.                 <xs:restriction base="xs:token">
  984.                     <xs:enumeration value="no-wrap"/>
  985.                     <xs:enumeration value="wrap"/>
  986.                     <xs:enumeration value="inherit"/>
  987.                 </xs:restriction>
  988.             </xs:simpleType>
  989.         </xs:attribute>
  990.         <xs:attribute name="unicode-bidi">
  991.             <xs:simpleType>
  992.                 <xs:restriction base="xs:token">
  993.                     <xs:enumeration value="normal"/>
  994.                     <xs:enumeration value="embed"/>
  995.                     <xs:enumeration value="bidi-override"/>
  996.                     <xs:enumeration value="inherit"/>
  997.                 </xs:restriction>
  998.             </xs:simpleType>
  999.         </xs:attribute>
  1000.         <xs:attribute name="direction">
  1001.             <xs:simpleType>
  1002.                 <xs:restriction base="xs:token">
  1003.                     <xs:enumeration value="ltr"/>
  1004.                     <xs:enumeration value="rtl"/>
  1005.                     <xs:enumeration value="inherit"/>
  1006.                 </xs:restriction>
  1007.             </xs:simpleType>
  1008.         </xs:attribute>
  1009.     </xs:attributeGroup>
  1010.     <!-- Character Properties -->
  1011.     <xs:attributeGroup name="character-properties">
  1012.         <xs:attribute name="letter-spacing"/>
  1013.         <xs:attribute name="letter-spacing.minimum"/>
  1014.         <xs:attribute name="letter-spacing.optimum"/>
  1015.         <xs:attribute name="letter-spacing.maximum"/>
  1016.         <xs:attribute name="letter-spacing.precedence"/>
  1017.         <xs:attribute name="letter-spacing.conditionality">
  1018.             <xs:simpleType>
  1019.                 <xs:restriction base="xs:token">
  1020.                     <xs:enumeration value="retain"/>
  1021.                     <xs:enumeration value="discard"/>
  1022.                 </xs:restriction>
  1023.             </xs:simpleType>
  1024.         </xs:attribute>
  1025.         <xs:attribute name="word-spacing"/>
  1026.         <xs:attribute name="word-spacing.minimum"/>
  1027.         <xs:attribute name="word-spacing.optimum"/>
  1028.         <xs:attribute name="word-spacing.maximum"/>
  1029.         <xs:attribute name="word-spacing.precedence"/>
  1030.         <xs:attribute name="word-spacing.conditionality">
  1031.             <xs:simpleType>
  1032.                 <xs:restriction base="xs:token">
  1033.                     <xs:enumeration value="retain"/>
  1034.                     <xs:enumeration value="discard"/>
  1035.                 </xs:restriction>
  1036.             </xs:simpleType>
  1037.         </xs:attribute>
  1038.         <xs:attribute name="treat-as-word-space">
  1039.             <xs:simpleType>
  1040.                 <xs:restriction base="xs:token">
  1041.                     <xs:enumeration value="auto"/>
  1042.                     <xs:enumeration value="true"/>
  1043.                     <xs:enumeration value="false"/>
  1044.                     <xs:enumeration value="inherit"/>
  1045.                 </xs:restriction>
  1046.             </xs:simpleType>
  1047.         </xs:attribute>
  1048.         <xs:attribute name="text-decoration" type="xs:NMTOKENS"/>
  1049.         <xs:attribute name="score-spaces">
  1050.             <xs:simpleType>
  1051.                 <xs:restriction base="xs:token">
  1052.                     <xs:enumeration value="true"/>
  1053.                     <xs:enumeration value="false"/>
  1054.                     <xs:enumeration value="inherit"/>
  1055.                 </xs:restriction>
  1056.             </xs:simpleType>
  1057.         </xs:attribute>
  1058.         <xs:attribute name="text-shadow"/>
  1059.         <xs:attribute name="text-transform">
  1060.             <xs:simpleType>
  1061.                 <xs:restriction base="xs:token">
  1062.                     <xs:enumeration value="capitalize"/>
  1063.                     <xs:enumeration value="uppercase"/>
  1064.                     <xs:enumeration value="lowercase"/>
  1065.                     <xs:enumeration value="none"/>
  1066.                     <xs:enumeration value="inherit"/>
  1067.                 </xs:restriction>
  1068.             </xs:simpleType>
  1069.         </xs:attribute>
  1070.         <xs:attribute name="suppress-at-line-break">
  1071.             <xs:simpleType>
  1072.                 <xs:restriction base="xs:token">
  1073.                     <xs:enumeration value="auto"/>
  1074.                     <xs:enumeration value="suppress"/>
  1075.                     <xs:enumeration value="retain"/>
  1076.                     <xs:enumeration value="inherit"/>
  1077.                 </xs:restriction>
  1078.             </xs:simpleType>
  1079.         </xs:attribute>
  1080.         <xs:attribute name="text-altitude"/>
  1081.         <xs:attribute name="text-depth"/>
  1082.         <xs:attribute name="glyph-orientation-horizontal">
  1083.             <xs:simpleType>
  1084.                 <xs:restriction base="xs:token">
  1085.                     <xs:enumeration value="0"/>
  1086.                     <xs:enumeration value="90"/>
  1087.                     <xs:enumeration value="180"/>
  1088.                     <xs:enumeration value="270"/>
  1089.                     <xs:enumeration value="-90"/>
  1090.                     <xs:enumeration value="-180"/>
  1091.                     <xs:enumeration value="-270"/>
  1092.                     <xs:enumeration value="0deg"/>
  1093.                     <xs:enumeration value="90deg"/>
  1094.                     <xs:enumeration value="180deg"/>
  1095.                     <xs:enumeration value="270deg"/>
  1096.                     <xs:enumeration value="-90deg"/>
  1097.                     <xs:enumeration value="-180deg"/>
  1098.                     <xs:enumeration value="-270deg"/>
  1099.                     <xs:enumeration value="inherit"/>
  1100.                 </xs:restriction>
  1101.             </xs:simpleType>
  1102.         </xs:attribute>
  1103.         <xs:attribute name="glyph-orientation-vertical">
  1104.             <xs:simpleType>
  1105.                 <xs:restriction base="xs:token">
  1106.                     <xs:enumeration value="0"/>
  1107.                     <xs:enumeration value="90"/>
  1108.                     <xs:enumeration value="180"/>
  1109.                     <xs:enumeration value="270"/>
  1110.                     <xs:enumeration value="-90"/>
  1111.                     <xs:enumeration value="-180"/>
  1112.                     <xs:enumeration value="-270"/>
  1113.                     <xs:enumeration value="0deg"/>
  1114.                     <xs:enumeration value="90deg"/>
  1115.                     <xs:enumeration value="180deg"/>
  1116.                     <xs:enumeration value="270deg"/>
  1117.                     <xs:enumeration value="-90deg"/>
  1118.                     <xs:enumeration value="-180deg"/>
  1119.                     <xs:enumeration value="-270deg"/>
  1120.                     <xs:enumeration value="inherit"/>
  1121.                 </xs:restriction>
  1122.             </xs:simpleType>
  1123.         </xs:attribute>
  1124.         <xs:attributeGroup ref="fo:font-properties"/>
  1125.         <xs:attributeGroup ref="fo:line-height-properties"/>
  1126.     </xs:attributeGroup>
  1127.     <!-- Common Keeps and Breaks Properties - Atomic objects -->
  1128.     <!-- 'page-break-*' shorthand properties are also included -->
  1129.     <xs:attributeGroup name="keeps-and-breaks-properties-atomic">
  1130.         <xs:attribute name="break-after">
  1131.             <xs:simpleType>
  1132.                 <xs:restriction base="xs:token">
  1133.                     <xs:enumeration value="auto"/>
  1134.                     <xs:enumeration value="column"/>
  1135.                     <xs:enumeration value="page"/>
  1136.                     <xs:enumeration value="even-page"/>
  1137.                     <xs:enumeration value="odd-page"/>
  1138.                     <xs:enumeration value="inherit"/>
  1139.                 </xs:restriction>
  1140.             </xs:simpleType>
  1141.         </xs:attribute>
  1142.         <xs:attribute name="break-before">
  1143.             <xs:simpleType>
  1144.                 <xs:restriction base="xs:token">
  1145.                     <xs:enumeration value="auto"/>
  1146.                     <xs:enumeration value="column"/>
  1147.                     <xs:enumeration value="page"/>
  1148.                     <xs:enumeration value="even-page"/>
  1149.                     <xs:enumeration value="odd-page"/>
  1150.                     <xs:enumeration value="inherit"/>
  1151.                 </xs:restriction>
  1152.             </xs:simpleType>
  1153.         </xs:attribute>
  1154.         <xs:attribute name="keep-with-next"/>
  1155.         <xs:attribute name="keep-with-next.within-line"/>
  1156.         <xs:attribute name="keep-with-next.within-column">
  1157.             <xs:annotation>
  1158.                 <xs:documentation> This property connects the figure caption to the figure itself.</xs:documentation>
  1159.             </xs:annotation>
  1160.         </xs:attribute>
  1161.         <xs:attribute name="keep-with-next.within-page"/>
  1162.         <xs:attribute name="keep-with-previous"/>
  1163.         <xs:attribute name="keep-with-previous.within-line"/>
  1164.         <xs:attribute name="keep-with-previous.within-column"/>
  1165.         <xs:attribute name="keep-with-previous.within-page"/>
  1166.         <xs:attribute name="page-break-after">
  1167.             <xs:simpleType>
  1168.                 <xs:restriction base="xs:token">
  1169.                     <xs:enumeration value="auto"/>
  1170.                     <xs:enumeration value="always"/>
  1171.                     <xs:enumeration value="avoid"/>
  1172.                     <xs:enumeration value="left"/>
  1173.                     <xs:enumeration value="right"/>
  1174.                     <xs:enumeration value="inherit"/>
  1175.                 </xs:restriction>
  1176.             </xs:simpleType>
  1177.         </xs:attribute>
  1178.         <xs:attribute name="page-break-before">
  1179.             <xs:simpleType>
  1180.                 <xs:restriction base="xs:token">
  1181.                     <xs:enumeration value="auto"/>
  1182.                     <xs:enumeration value="always"/>
  1183.                     <xs:enumeration value="avoid"/>
  1184.                     <xs:enumeration value="left"/>
  1185.                     <xs:enumeration value="right"/>
  1186.                     <xs:enumeration value="inherit"/>
  1187.                 </xs:restriction>
  1188.             </xs:simpleType>
  1189.         </xs:attribute>
  1190.     </xs:attributeGroup>
  1191.     <!-- Common Keeps and Breaks Properties - Inline -->
  1192.     <!-- 'page-break-inside' shorthand property is also included -->
  1193.     <xs:attributeGroup name="keeps-and-breaks-properties-inline">
  1194.         <xs:attributeGroup ref="fo:keeps-and-breaks-properties-atomic"/>
  1195.         <xs:attribute name="keep-together"/>
  1196.         <xs:attribute name="keep-together.within-line"/>
  1197.         <xs:attribute name="keep-together.within-column"/>
  1198.         <xs:attribute name="keep-together.within-page"/>
  1199.         <xs:attribute name="page-break-inside">
  1200.             <xs:simpleType>
  1201.                 <xs:restriction base="xs:token">
  1202.                     <xs:enumeration value="avoid"/>
  1203.                     <xs:enumeration value="auto"/>
  1204.                     <xs:enumeration value="inherit"/>
  1205.                 </xs:restriction>
  1206.             </xs:simpleType>
  1207.         </xs:attribute>
  1208.     </xs:attributeGroup>
  1209.     <!-- Common Keeps and Breaks Properties - Block -->
  1210.     <xs:attributeGroup name="keeps-and-breaks-properties-block">
  1211.         <xs:attributeGroup ref="fo:keeps-and-breaks-properties-inline"/>
  1212.         <xs:attribute name="orphans"/>
  1213.         <xs:attribute name="widows"/>
  1214.     </xs:attributeGroup>
  1215.     <!-- Leader and Rule Properties -->
  1216.     <xs:attributeGroup name="leader-properties">
  1217.         <xs:attribute name="leader-alignment">
  1218.             <xs:simpleType>
  1219.                 <xs:restriction base="xs:token">
  1220.                     <xs:enumeration value="none"/>
  1221.                     <xs:enumeration value="reference-area"/>
  1222.                     <xs:enumeration value="page"/>
  1223.                     <xs:enumeration value="inherit"/>
  1224.                 </xs:restriction>
  1225.             </xs:simpleType>
  1226.         </xs:attribute>
  1227.         <xs:attribute name="leader-pattern">
  1228.             <xs:simpleType>
  1229.                 <xs:restriction base="xs:token">
  1230.                     <xs:enumeration value="space"/>
  1231.                     <xs:enumeration value="rule"/>
  1232.                     <xs:enumeration value="dots"/>
  1233.                     <xs:enumeration value="use-content"/>
  1234.                     <xs:enumeration value="inherit"/>
  1235.                 </xs:restriction>
  1236.             </xs:simpleType>
  1237.         </xs:attribute>
  1238.         <xs:attribute name="leader-pattern-width"/>
  1239.         <xs:attribute name="leader-length"/>
  1240.         <xs:attribute name="leader-length.minimum"/>
  1241.         <xs:attribute name="leader-length.optimum"/>
  1242.         <xs:attribute name="leader-length.maximum"/>
  1243.         <xs:attribute name="rule-style">
  1244.             <xs:simpleType>
  1245.                 <xs:restriction base="xs:token">
  1246.                     <xs:enumeration value="none"/>
  1247.                     <xs:enumeration value="dotted"/>
  1248.                     <xs:enumeration value="dashed"/>
  1249.                     <xs:enumeration value="solid"/>
  1250.                     <xs:enumeration value="double"/>
  1251.                     <xs:enumeration value="groove"/>
  1252.                     <xs:enumeration value="ridge"/>
  1253.                     <xs:enumeration value="inherit"/>
  1254.                 </xs:restriction>
  1255.             </xs:simpleType>
  1256.         </xs:attribute>
  1257.         <xs:attribute name="rule-thickness"/>
  1258.     </xs:attributeGroup>
  1259.     <!-- Table Properties -->
  1260.     <!-- 'border-spacing' shorthand property is also included -->
  1261.     <!-- 'inherit' property added to table-omit-...er-at-break -->
  1262.     <xs:attributeGroup name="table-properties">
  1263.         <xs:attribute name="border-collapse">
  1264.             <xs:simpleType>
  1265.                 <xs:restriction base="xs:token">
  1266.                     <xs:enumeration value="collapse"/>
  1267.                     <xs:enumeration value="collapse-with-precedence"/>
  1268.                     <xs:enumeration value="separate"/>
  1269.                     <xs:enumeration value="inherit"/>
  1270.                 </xs:restriction>
  1271.             </xs:simpleType>
  1272.         </xs:attribute>
  1273.         <xs:attribute name="border-spacing">
  1274.             <xs:annotation>
  1275.                 <xs:documentation> Corresponds to CELLSPACING attribute of the HTML table model. </xs:documentation>
  1276.             </xs:annotation>
  1277.         </xs:attribute>
  1278.         <xs:attribute name="border-separation"/>
  1279.         <xs:attribute name="border-separation.inline-progression-direction"/>
  1280.         <xs:attribute name="border-separation.block-progression-direction"/>
  1281.         <xs:attribute name="caption-side">
  1282.             <xs:simpleType>
  1283.                 <xs:restriction base="xs:token">
  1284.                     <xs:enumeration value="before"/>
  1285.                     <xs:enumeration value="after"/>
  1286.                     <xs:enumeration value="start"/>
  1287.                     <xs:enumeration value="end"/>
  1288.                     <xs:enumeration value="top"/>
  1289.                     <xs:enumeration value="bottom"/>
  1290.                     <xs:enumeration value="left"/>
  1291.                     <xs:enumeration value="right"/>
  1292.                     <xs:enumeration value="inherit"/>
  1293.                 </xs:restriction>
  1294.             </xs:simpleType>
  1295.         </xs:attribute>
  1296.         <xs:attribute name="empty-cells">
  1297.             <xs:simpleType>
  1298.                 <xs:restriction base="xs:token">
  1299.                     <xs:enumeration value="show"/>
  1300.                     <xs:enumeration value="hide"/>
  1301.                     <xs:enumeration value="inherit"/>
  1302.                 </xs:restriction>
  1303.             </xs:simpleType>
  1304.         </xs:attribute>
  1305.         <xs:attribute name="table-layout">
  1306.             <xs:simpleType>
  1307.                 <xs:restriction base="xs:token">
  1308.                     <xs:enumeration value="auto"/>
  1309.                     <xs:enumeration value="fixed"/>
  1310.                     <xs:enumeration value="inherit"/>
  1311.                 </xs:restriction>
  1312.             </xs:simpleType>
  1313.         </xs:attribute>
  1314.         <xs:attribute name="table-omit-header-at-break">
  1315.             <xs:simpleType>
  1316.                 <xs:restriction base="xs:token">
  1317.                     <xs:enumeration value="true"/>
  1318.                     <xs:enumeration value="false"/>
  1319.                     <xs:enumeration value="inherit"/>
  1320.                 </xs:restriction>
  1321.             </xs:simpleType>
  1322.         </xs:attribute>
  1323.         <xs:attribute name="table-omit-footer-at-break">
  1324.             <xs:simpleType>
  1325.                 <xs:restriction base="xs:token">
  1326.                     <xs:enumeration value="true"/>
  1327.                     <xs:enumeration value="false"/>
  1328.                     <xs:enumeration value="inherit"/>
  1329.                 </xs:restriction>
  1330.             </xs:simpleType>
  1331.         </xs:attribute>
  1332.     </xs:attributeGroup>
  1333.     <!-- List Properties -->
  1334.     <xs:attributeGroup name="list-properties">
  1335.         <xs:attribute name="provisional-distance-between-starts">
  1336.             <xs:annotation>
  1337.                 <xs:documentation> This property specifies how far the left side of the label is
  1338.                     distant from the left side of the body.</xs:documentation>
  1339.             </xs:annotation>
  1340.         </xs:attribute>
  1341.         <xs:attribute name="provisional-label-separation">
  1342.             <xs:annotation>
  1343.                 <xs:documentation> This property specifies the separation between the right side of
  1344.                     the label and the left edge of the body.</xs:documentation>
  1345.             </xs:annotation>
  1346.         </xs:attribute>
  1347.     </xs:attributeGroup>
  1348.     <!-- Float Properties -->
  1349.     <xs:attributeGroup name="float-properties">
  1350.         <xs:attribute name="float">
  1351.             <xs:simpleType>
  1352.                 <xs:restriction base="xs:token">
  1353.                     <xs:enumeration value="before"/>
  1354.                     <xs:enumeration value="start"/>
  1355.                     <xs:enumeration value="end"/>
  1356.                     <xs:enumeration value="left"/>
  1357.                     <xs:enumeration value="right"/>
  1358.                     <xs:enumeration value="none"/>
  1359.                     <xs:enumeration value="inherit"/>
  1360.                 </xs:restriction>
  1361.             </xs:simpleType>
  1362.         </xs:attribute>
  1363.         <xs:attribute name="clear">
  1364.             <xs:simpleType>
  1365.                 <xs:restriction base="xs:token">
  1366.                     <xs:enumeration value="start"/>
  1367.                     <xs:enumeration value="end"/>
  1368.                     <xs:enumeration value="left"/>
  1369.                     <xs:enumeration value="right"/>
  1370.                     <xs:enumeration value="both"/>
  1371.                     <xs:enumeration value="none"/>
  1372.                     <xs:enumeration value="inherit"/>
  1373.                 </xs:restriction>
  1374.             </xs:simpleType>
  1375.         </xs:attribute>
  1376.         <xs:attribute name="intrusion-displace">
  1377.             <xs:annotation>
  1378.                 <xs:documentation> This controls interaction of formatting objects with side floats. </xs:documentation>
  1379.             </xs:annotation>
  1380.             <xs:simpleType>
  1381.                 <xs:restriction base="xs:token">
  1382.                     <xs:enumeration value="auto"/>
  1383.                     <xs:enumeration value="none"/>
  1384.                     <xs:enumeration value="line"/>
  1385.                     <xs:enumeration value="indent"/>
  1386.                     <xs:enumeration value="block"/>
  1387.                     <xs:enumeration value="inherit"/>
  1388.                 </xs:restriction>
  1389.             </xs:simpleType>
  1390.         </xs:attribute>
  1391.     </xs:attributeGroup>
  1392.     <!-- Visibility Properties -->
  1393.     <xs:attributeGroup name="visibility-properties">
  1394.         <xs:attribute name="visibility">
  1395.             <xs:simpleType>
  1396.                 <xs:restriction base="xs:token">
  1397.                     <xs:enumeration value="visible"/>
  1398.                     <xs:enumeration value="hidden"/>
  1399.                     <xs:enumeration value="collapse"/>
  1400.                     <xs:enumeration value="inherit"/>
  1401.                 </xs:restriction>
  1402.             </xs:simpleType>
  1403.         </xs:attribute>
  1404.         <xs:attribute name="z-index"/>
  1405.     </xs:attributeGroup>
  1406.     <!-- =============================================================== -->
  1407.     <!-- Set of all inheritable properties. This includes attributes -->
  1408.     <!-- marked as inheritable in the spec, as well as all features that -->
  1409.     <!-- may assume a value of "inherit" (because all such features are -->
  1410.     <!-- also permitted at parent elements). By XSL design, this set -->
  1411.     <!-- comprises nearly all attributes. -->
  1412.     <!-- =============================================================== -->
  1413.     <xs:attributeGroup name="inheritable-properties">
  1414.         <xs:attribute name="color"/>
  1415.         <xs:attribute name="relative-align">
  1416.             <xs:simpleType>
  1417.                 <xs:restriction base="xs:token">
  1418.                     <xs:enumeration value="before"/>
  1419.                     <xs:enumeration value="baseline"/>
  1420.                     <xs:enumeration value="inherit"/>
  1421.                 </xs:restriction>
  1422.             </xs:simpleType>
  1423.         </xs:attribute>
  1424.         <xs:attribute name="span">
  1425.             <xs:simpleType>
  1426.                 <xs:restriction base="xs:token">
  1427.                     <xs:enumeration value="none"/>
  1428.                     <xs:enumeration value="all"/>
  1429.                     <xs:enumeration value="inherit"/>
  1430.                 </xs:restriction>
  1431.             </xs:simpleType>
  1432.         </xs:attribute>
  1433.         <xs:attributeGroup ref="fo:accessibility-properties"/>
  1434.         <xs:attributeGroup ref="fo:absolute-or-relative-position-properties"/>
  1435.         <xs:attributeGroup ref="fo:border-padding-background-properties"/>
  1436.         <xs:attributeGroup ref="fo:border-precedence-properties"/>
  1437.         <xs:attributeGroup ref="fo:aural-properties"/>
  1438.         <xs:attributeGroup ref="fo:box-size-properties"/>
  1439.         <xs:attributeGroup ref="fo:margin-properties-inline"/>
  1440.         <xs:attributeGroup ref="fo:area-properties"/>
  1441.         <xs:attributeGroup ref="fo:area-alignment-properties-inline"/>
  1442.         <xs:attributeGroup ref="fo:character-properties"/>
  1443.         <xs:attributeGroup ref="fo:table-properties"/>
  1444.         <xs:attributeGroup ref="fo:list-properties"/>
  1445.         <xs:attributeGroup ref="fo:float-properties"/>
  1446.         <xs:attributeGroup ref="fo:line-related-properties"/>
  1447.         <xs:attributeGroup ref="fo:leader-properties"/>
  1448.         <xs:attributeGroup ref="fo:keeps-and-breaks-properties-block"/>
  1449.         <xs:attributeGroup ref="fo:hyphenation-properties-block"/>
  1450.         <xs:attributeGroup ref="fo:visibility-properties"/>
  1451.     </xs:attributeGroup>
  1452.     <!-- =============================================================== -->
  1453.     <!-- Common property subsets. -->
  1454.     <!-- =============================================================== -->
  1455.     <!-- Properties for every block that may contain text children -->
  1456.     <xs:attributeGroup name="block-properties">
  1457.         <xs:attribute name="id"/>
  1458.         <xs:attribute ref="rx:key"/>
  1459.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  1460.     </xs:attributeGroup>
  1461.     <!-- Properties for nonempty inline elements -->
  1462.     <xs:attributeGroup name="inline-properties">
  1463.         <xs:attribute name="id"/>
  1464.         <xs:attribute ref="rx:key"/>
  1465.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  1466.     </xs:attributeGroup>
  1467.     <!-- Properties for empty inline elements that contain characters -->
  1468.     <xs:attributeGroup name="empty-inline-properties">
  1469.         <xs:attribute name="id"/>
  1470.         <xs:attribute ref="rx:key"/>
  1471.         <xs:attribute name="color"/>
  1472.         <xs:attributeGroup ref="fo:accessibility-properties"/>
  1473.         <xs:attributeGroup ref="fo:aural-properties"/>
  1474.         <xs:attributeGroup ref="fo:relative-position-properties"/>
  1475.         <xs:attributeGroup ref="fo:area-alignment-properties-inline"/>
  1476.         <xs:attributeGroup ref="fo:character-properties"/>
  1477.         <xs:attributeGroup ref="fo:border-padding-background-properties"/>
  1478.         <xs:attributeGroup ref="fo:hyphenation-properties-inline"/>
  1479.         <xs:attributeGroup ref="fo:visibility-properties"/>
  1480.     </xs:attributeGroup>
  1481.     <!-- Properties for graphical inline elements -->
  1482.     <xs:attributeGroup name="graphic-properties">
  1483.         <xs:attribute name="id"/>
  1484.         <xs:attribute ref="rx:key"/>
  1485.         <xs:attribute name="content-type"/>
  1486.         <xs:attributeGroup ref="fo:accessibility-properties"/>
  1487.         <xs:attributeGroup ref="fo:relative-position-properties"/>
  1488.         <xs:attributeGroup ref="fo:aural-properties"/>
  1489.         <xs:attributeGroup ref="fo:border-padding-background-properties"/>
  1490.         <xs:attributeGroup ref="fo:margin-properties-inline"/>
  1491.         <xs:attributeGroup ref="fo:area-alignment-properties-inline"/>
  1492.         <xs:attributeGroup ref="fo:box-size-properties"/>
  1493.         <xs:attributeGroup ref="fo:font-properties"/>
  1494.         <xs:attributeGroup ref="fo:line-height-properties"/>
  1495.         <xs:attributeGroup ref="fo:keeps-and-breaks-properties-atomic"/>
  1496.         <xs:attribute name="content-height"/>
  1497.         <xs:attribute name="content-width"/>
  1498.         <xs:attribute name="display-align">
  1499.             <xs:simpleType>
  1500.                 <xs:restriction base="xs:token">
  1501.                     <xs:enumeration value="auto"/>
  1502.                     <xs:enumeration value="before"/>
  1503.                     <xs:enumeration value="center"/>
  1504.                     <xs:enumeration value="after"/>
  1505.                     <xs:enumeration value="inherit"/>
  1506.                 </xs:restriction>
  1507.             </xs:simpleType>
  1508.         </xs:attribute>
  1509.         <xs:attribute name="overflow">
  1510.             <xs:simpleType>
  1511.                 <xs:restriction base="xs:token">
  1512.                     <xs:enumeration value="visible"/>
  1513.                     <xs:enumeration value="hidden"/>
  1514.                     <xs:enumeration value="scroll"/>
  1515.                     <xs:enumeration value="auto"/>
  1516.                     <xs:enumeration value="error-if-overflow"/>
  1517.                     <xs:enumeration value="inherit"/>
  1518.                 </xs:restriction>
  1519.             </xs:simpleType>
  1520.         </xs:attribute>
  1521.         <xs:attribute name="scaling">
  1522.             <xs:simpleType>
  1523.                 <xs:restriction base="xs:token">
  1524.                     <xs:enumeration value="uniform"/>
  1525.                     <xs:enumeration value="non-uniform"/>
  1526.                     <xs:enumeration value="inherit"/>
  1527.                 </xs:restriction>
  1528.             </xs:simpleType>
  1529.         </xs:attribute>
  1530.         <xs:attribute name="scaling-method">
  1531.             <xs:simpleType>
  1532.                 <xs:restriction base="xs:token">
  1533.                     <xs:enumeration value="auto"/>
  1534.                     <xs:enumeration value="integer-pixels"/>
  1535.                     <xs:enumeration value="resample-any-method"/>
  1536.                     <xs:enumeration value="inherit"/>
  1537.                 </xs:restriction>
  1538.             </xs:simpleType>
  1539.         </xs:attribute>
  1540.         <xs:attribute name="text-align">
  1541.             <xs:annotation>
  1542.                 <xs:documentation> This property defines the alignment of the text within the block.
  1543.                     XSL FO uses a specific coordinate system for referring to block edges: instead
  1544.                     of ‘left’ and ‘right’, side
  1545.                     alignment is expressed in terms of inline progression direction. For Western
  1546.                     scripts, glyphs on the line are placed from left to right; therefore,
  1547.                     left-aligned text will have text-align="start", and right-aligned text will have
  1548.                     text-align="end". Two other values are "center" and "justify" (same as in CSS).
  1549.                     You can also use other CSS values for this property — "left" is a
  1550.                     synonym for start, and "right" is a synonym for end. </xs:documentation>
  1551.             </xs:annotation>
  1552.             <xs:simpleType>
  1553.                 <xs:restriction base="xs:token">
  1554.                     <xs:enumeration value="start"/>
  1555.                     <xs:enumeration value="center"/>
  1556.                     <xs:enumeration value="end"/>
  1557.                     <xs:enumeration value="justify"/>
  1558.                     <xs:enumeration value="inside"/>
  1559.                     <xs:enumeration value="outside"/>
  1560.                     <xs:enumeration value="left"/>
  1561.                     <xs:enumeration value="right"/>
  1562.                     <xs:enumeration value="inherit"/>
  1563.                 </xs:restriction>
  1564.             </xs:simpleType>
  1565.         </xs:attribute>
  1566.     </xs:attributeGroup>
  1567.     <!-- *************************************************************** -->
  1568.     <!-- Content models and attributes -->
  1569.     <!---->
  1570.     <!-- A. Element structure for top-level elements -->
  1571.     <!-- *************************************************************** -->
  1572.     <!-- =============================================================== -->
  1573.     <!-- Root element. Contains everything, generates nothing. It has an -->
  1574.     <!-- id, a FO namespace prefix declaration, and other namespace -->
  1575.     <!-- declarations if used. It can also bear inheritable properties, -->
  1576.     <!-- passed further to fo:flows/fo:static-contents. Inheritable -->
  1577.     <!-- properties from fo:layout-master-set are banned in this version -->
  1578.     <!-- of the DTD. -->
  1579.     <!-- =============================================================== -->
  1580.     <xs:element name="root">
  1581.         <xs:annotation>
  1582.             <xs:documentation> This is the top node of the formatting object tree. It holds an
  1583.                 fo:layout-master-set formatting object (which holds all masters used in the
  1584.                 document), an optional fo:declarations, and one or more fo:page-sequence objects. </xs:documentation>
  1585.         </xs:annotation>
  1586.         <xs:complexType>
  1587.             <xs:sequence>
  1588.                 <xs:element minOccurs="0" ref="rx:meta-info"/>
  1589.                 <xs:element minOccurs="0" ref="rx:page-device"/>
  1590.                 <xs:element ref="fo:layout-master-set"/>
  1591.                 <xs:element minOccurs="0" ref="fo:declarations"/>
  1592.                 <xs:element minOccurs="0" ref="rx:outline"/>
  1593.                 <xs:element maxOccurs="unbounded" ref="fo:page-sequence"/>
  1594.             </xs:sequence>
  1595.             <xs:attributeGroup ref="fo:fo.root-attlist"/>
  1596.         </xs:complexType>
  1597.     </xs:element>
  1598.     <xs:attributeGroup name="fo.root-attlist">
  1599.         <xs:attribute name="media-usage">
  1600.             <xs:simpleType>
  1601.                 <xs:restriction base="xs:token">
  1602.                     <xs:enumeration value="auto"/>
  1603.                     <xs:enumeration value="paginate"/>
  1604.                     <xs:enumeration value="bounded-in-one-dimension"/>
  1605.                     <xs:enumeration value="unbounded"/>
  1606.                 </xs:restriction>
  1607.             </xs:simpleType>
  1608.         </xs:attribute>
  1609.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  1610.     </xs:attributeGroup>
  1611.     <!-- =============================================================== -->
  1612.     <!-- Document meta information - RenderX extension -->
  1613.     <!-- =============================================================== -->
  1614.     <xs:attributeGroup name="rx.meta-field-attlist">
  1615.         <xs:attribute name="name" use="required"/>
  1616.         <xs:attribute name="value" use="required"/>
  1617.     </xs:attributeGroup>
  1618.     <xs:attributeGroup name="rx.page-device-attlist">
  1619.         <xs:attribute name="input-tray"/>
  1620.         <xs:attribute name="output-tray"/>
  1621.         <xs:attribute name="manual-feed">
  1622.             <xs:simpleType>
  1623.                 <xs:restriction base="xs:token">
  1624.                     <xs:enumeration value="true"/>
  1625.                     <xs:enumeration value="false"/>
  1626.                 </xs:restriction>
  1627.             </xs:simpleType>
  1628.         </xs:attribute>
  1629.         <xs:attribute name="duplex">
  1630.             <xs:simpleType>
  1631.                 <xs:restriction base="xs:token">
  1632.                     <xs:enumeration value="true"/>
  1633.                     <xs:enumeration value="false"/>
  1634.                 </xs:restriction>
  1635.             </xs:simpleType>
  1636.         </xs:attribute>
  1637.         <xs:attribute name="mirror-print">
  1638.             <xs:simpleType>
  1639.                 <xs:restriction base="xs:token">
  1640.                     <xs:enumeration value="true"/>
  1641.                     <xs:enumeration value="false"/>
  1642.                 </xs:restriction>
  1643.             </xs:simpleType>
  1644.         </xs:attribute>
  1645.         <xs:attribute name="negative-print">
  1646.             <xs:simpleType>
  1647.                 <xs:restriction base="xs:token">
  1648.                     <xs:enumeration value="true"/>
  1649.                     <xs:enumeration value="false"/>
  1650.                 </xs:restriction>
  1651.             </xs:simpleType>
  1652.         </xs:attribute>
  1653.         <xs:attribute name="collate">
  1654.             <xs:simpleType>
  1655.                 <xs:restriction base="xs:token">
  1656.                     <xs:enumeration value="true"/>
  1657.                     <xs:enumeration value="false"/>
  1658.                 </xs:restriction>
  1659.             </xs:simpleType>
  1660.         </xs:attribute>
  1661.         <xs:attribute name="number-copies"/>
  1662.     </xs:attributeGroup>
  1663.     <!-- =============================================================== -->
  1664.     <!-- Color profile declarations -->
  1665.     <!-- =============================================================== -->
  1666.     <xs:element name="declarations">
  1667.         <xs:annotation>
  1668.             <xs:documentation>The fo:declarations formatting object is used to group global
  1669.                 declarations for a stylesheet.</xs:documentation>
  1670.         </xs:annotation>
  1671.         <xs:complexType>
  1672.             <xs:sequence>
  1673.                 <xs:element maxOccurs="unbounded" ref="fo:color-profile"/>
  1674.             </xs:sequence>
  1675.         </xs:complexType>
  1676.     </xs:element>
  1677.     <xs:element name="color-profile">
  1678.         <xs:annotation>
  1679.             <xs:documentation>The fo:color-profile formatting object is used to declare an ICC Color
  1680.                 Profile for a stylesheet. </xs:documentation>
  1681.         </xs:annotation>
  1682.         <xs:complexType>
  1683.             <xs:attributeGroup ref="fo:fo.color-profile-attlist"/>
  1684.         </xs:complexType>
  1685.     </xs:element>
  1686.     <xs:attributeGroup name="fo.color-profile-attlist">
  1687.         <xs:attribute name="src" use="required"/>
  1688.         <xs:attribute name="color-profile-name" use="required"/>
  1689.         <xs:attribute name="rendering-intent"/>
  1690.     </xs:attributeGroup>
  1691.     <!-- =============================================================== -->
  1692.     <!-- Bookmarks - RenderX extension -->
  1693.     <!-- =============================================================== -->
  1694.     <xs:attributeGroup name="rx.bookmark-attlist">
  1695.         <xs:attribute name="internal-destination"/>
  1696.         <xs:attribute name="external-destination"/>
  1697.         <xs:attribute name="collapse-subtree">
  1698.             <xs:simpleType>
  1699.                 <xs:restriction base="xs:token">
  1700.                     <xs:enumeration value="true"/>
  1701.                     <xs:enumeration value="false"/>
  1702.                 </xs:restriction>
  1703.             </xs:simpleType>
  1704.         </xs:attribute>
  1705.     </xs:attributeGroup>
  1706.     <!-- =============================================================== -->
  1707.     <!-- Layout-master-set. Contains a set of page-masters. Neither of -->
  1708.     <!-- its descendants generates any area, so no inherited elements -->
  1709.     <!-- can be specified on it or on its children. -->
  1710.     <!-- Content model made more strict than in the draft, to enforce -->
  1711.     <!-- that a page-sequence-master be always accompanied by at least -->
  1712.     <!-- one simple-page-master. -->
  1713.     <!-- =============================================================== -->
  1714.     <xs:element name="layout-master-set">
  1715.         <xs:annotation>
  1716.             <xs:documentation>The fo:layout-master-set is a wrapper around all masters used in the
  1717.                 document. This includes page-sequence-masters, page-masters, and region-masters. </xs:documentation>
  1718.         </xs:annotation>
  1719.         <xs:complexType>
  1720.             <xs:sequence>
  1721.                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="fo:page-sequence-master"/>
  1722.                 <xs:element ref="fo:simple-page-master"/>
  1723.                 <xs:choice minOccurs="0" maxOccurs="unbounded">
  1724.                     <xs:element ref="fo:simple-page-master"/>
  1725.                     <xs:element ref="fo:page-sequence-master"/>
  1726.                 </xs:choice>
  1727.             </xs:sequence>
  1728.         </xs:complexType>
  1729.     </xs:element>
  1730.     <!-- =============================================================== -->
  1731.     <!-- Page sequence master -->
  1732.     <!-- =============================================================== -->
  1733.     <xs:element name="page-sequence-master">
  1734.         <xs:annotation>
  1735.             <xs:documentation>This is used to specify the constraints on and the order in which a
  1736.                 given set of page-masters will be used in generating a sequence of pages. Pages are
  1737.                 automatically generated when the fo:page-sequence-master is used in formatting an
  1738.                 fo:page-sequence. </xs:documentation>
  1739.         </xs:annotation>
  1740.         <xs:complexType>
  1741.             <xs:choice maxOccurs="unbounded">
  1742.                 <xs:element ref="fo:single-page-master-reference"/>
  1743.                 <xs:element ref="fo:repeatable-page-master-reference"/>
  1744.                 <xs:element ref="fo:repeatable-page-master-alternatives"/>
  1745.             </xs:choice>
  1746.             <xs:attributeGroup ref="fo:fo.page-sequence-master-attlist"/>
  1747.         </xs:complexType>
  1748.     </xs:element>
  1749.     <xs:attributeGroup name="fo.page-sequence-master-attlist">
  1750.         <xs:attribute name="master-name" use="required"/>
  1751.     </xs:attributeGroup>
  1752.     <!-- =============================================================== -->
  1753.     <!-- Sequence specifiers are predefined sequences of page masters -->
  1754.     <!-- that are used by page sequence master to construct a desired -->
  1755.     <!-- page collection. -->
  1756.     <!-- =============================================================== -->
  1757.     <xs:element name="single-page-master-reference">
  1758.         <xs:annotation>
  1759.             <xs:documentation>This specifies a sub-sequence consisting of a single instance of a
  1760.                 single page-master. It is used to specify the use of a particular page-master at a
  1761.                 given point in the sequence of pages that would be generated using the
  1762.                 fo:page-sequence-master that is the parent of the fo:single-page-master-reference. </xs:documentation>
  1763.         </xs:annotation>
  1764.         <xs:complexType>
  1765.             <xs:attributeGroup ref="fo:fo.single-page-master-reference-attlist"/>
  1766.         </xs:complexType>
  1767.     </xs:element>
  1768.     <xs:attributeGroup name="fo.single-page-master-reference-attlist">
  1769.         <xs:attribute name="master-reference" use="required"/>
  1770.     </xs:attributeGroup>
  1771.     <xs:element name="repeatable-page-master-reference">
  1772.         <xs:annotation>
  1773.             <xs:documentation>This specifies a sub-sequence consisting of repeated instances of a
  1774.                 single page-master. The number of repetitions may be bounded or potentially unbounded.</xs:documentation>
  1775.         </xs:annotation>
  1776.         <xs:complexType>
  1777.             <xs:attributeGroup ref="fo:fo.repeatable-page-master-reference-attlist"/>
  1778.         </xs:complexType>
  1779.     </xs:element>
  1780.     <xs:attributeGroup name="fo.repeatable-page-master-reference-attlist">
  1781.         <xs:attribute name="master-reference" use="required"/>
  1782.         <xs:attribute name="maximum-repeats"/>
  1783.     </xs:attributeGroup>
  1784.     <xs:element name="repeatable-page-master-alternatives">
  1785.         <xs:annotation>
  1786.             <xs:documentation> This specifies a sub-sequence consisting of repeated instances of a
  1787.                 set of alternative page-masters. The number of repetitions may be bounded or
  1788.                 potentially unbounded. </xs:documentation>
  1789.         </xs:annotation>
  1790.         <xs:complexType>
  1791.             <xs:sequence>
  1792.                 <xs:element maxOccurs="unbounded" ref="fo:conditional-page-master-reference"/>
  1793.             </xs:sequence>
  1794.             <xs:attributeGroup ref="fo:fo.repeatable-page-master-alternatives-attlist"/>
  1795.         </xs:complexType>
  1796.     </xs:element>
  1797.     <xs:attributeGroup name="fo.repeatable-page-master-alternatives-attlist">
  1798.         <xs:attribute name="maximum-repeats"/>
  1799.     </xs:attributeGroup>
  1800.     <xs:element name="conditional-page-master-reference">
  1801.         <xs:annotation>
  1802.             <xs:documentation> This used to identify a page-master that is to be used when the
  1803.                 conditions on its use are satisfied. This allows different page-masters to be used,
  1804.                 for example, for even and odd pages, for the first page in a page-sequence, or for
  1805.                 blank pages. This usage is typical in chapters of a book or report where the first
  1806.                 page has a different layout than the rest of the chapter and the headings and
  1807.                 footings on even and odd pages may be different as well. </xs:documentation>
  1808.         </xs:annotation>
  1809.         <xs:complexType>
  1810.             <xs:attributeGroup ref="fo:fo.conditional-page-master-reference-attlist"/>
  1811.         </xs:complexType>
  1812.     </xs:element>
  1813.     <xs:attributeGroup name="fo.conditional-page-master-reference-attlist">
  1814.         <xs:attribute name="master-reference" use="required"/>
  1815.         <xs:attribute name="page-position">
  1816.             <xs:simpleType>
  1817.                 <xs:restriction base="xs:token">
  1818.                     <xs:enumeration value="first"/>
  1819.                     <xs:enumeration value="last"/>
  1820.                     <xs:enumeration value="rest"/>
  1821.                     <xs:enumeration value="any"/>
  1822.                     <xs:enumeration value="inherit"/>
  1823.                 </xs:restriction>
  1824.             </xs:simpleType>
  1825.         </xs:attribute>
  1826.         <xs:attribute name="odd-or-even">
  1827.             <xs:simpleType>
  1828.                 <xs:restriction base="xs:token">
  1829.                     <xs:enumeration value="odd"/>
  1830.                     <xs:enumeration value="even"/>
  1831.                     <xs:enumeration value="any"/>
  1832.                     <xs:enumeration value="inherit"/>
  1833.                 </xs:restriction>
  1834.             </xs:simpleType>
  1835.         </xs:attribute>
  1836.         <xs:attribute name="blank-or-not-blank">
  1837.             <xs:simpleType>
  1838.                 <xs:restriction base="xs:token">
  1839.                     <xs:enumeration value="blank"/>
  1840.                     <xs:enumeration value="not-blank"/>
  1841.                     <xs:enumeration value="any"/>
  1842.                     <xs:enumeration value="inherit"/>
  1843.                 </xs:restriction>
  1844.             </xs:simpleType>
  1845.         </xs:attribute>
  1846.     </xs:attributeGroup>
  1847.     <!-- =============================================================== -->
  1848.     <!-- Simple page master defines a page layout. It does not -->
  1849.     <!-- explicitly generate any content. Most of its properties are -->
  1850.     <!-- local except for writing-mode and reference-orientation that -->
  1851.     <!-- are inherited by the underlying region-* objects. -->
  1852.     <!-- =============================================================== -->
  1853.     <!-- NOTE. We could think about a common background/padding/border -->
  1854.     <!-- for every page instance generated by the page master. For such -->
  1855.     <!-- a scope, we may add borders/padding/background to its features. -->
  1856.     <!-- However, in the current version this is ruled out explicitly by -->
  1857.     <!-- the XSL specs. -->
  1858.     <xs:element name="simple-page-master">
  1859.         <xs:annotation>
  1860.             <xs:documentation> This is used in the generation of pages and specifies the geometry of
  1861.                 the page. The page may be subdivided into up to five regions: region-body,
  1862.                 region-before, region-after, region-start, and region-end. </xs:documentation>
  1863.         </xs:annotation>
  1864.         <xs:complexType>
  1865.             <xs:sequence>
  1866.                 <xs:element ref="fo:region-body"/>
  1867.                 <xs:element minOccurs="0" ref="fo:region-before"/>
  1868.                 <xs:element minOccurs="0" ref="fo:region-after"/>
  1869.                 <xs:element minOccurs="0" ref="fo:region-start"/>
  1870.                 <xs:element minOccurs="0" ref="fo:region-end"/>
  1871.             </xs:sequence>
  1872.             <xs:attributeGroup ref="fo:fo.simple-page-master-attlist"/>
  1873.         </xs:complexType>
  1874.     </xs:element>
  1875.     <xs:attributeGroup name="fo.simple-page-master-attlist">
  1876.         <xs:attributeGroup ref="fo:margin-properties-CSS"/>
  1877.         <xs:attribute name="master-name" use="required"/>
  1878.         <xs:attribute name="page-height">
  1879.             <xs:annotation>
  1880.                 <xs:documentation>The height of the page.</xs:documentation>
  1881.             </xs:annotation>
  1882.         </xs:attribute>
  1883.         <xs:attribute name="page-width">
  1884.             <xs:annotation>
  1885.                 <xs:documentation>The width of the page.</xs:documentation>
  1886.             </xs:annotation>
  1887.         </xs:attribute>
  1888.         <xs:attribute name="size">
  1889.             <xs:annotation>
  1890.                 <xs:documentation>A shorthand property to set the page size. Worth noting are
  1891.                     "portrait" and "landscape" values to set the default page size with different orientation.</xs:documentation>
  1892.             </xs:annotation>
  1893.         </xs:attribute>
  1894.         <xs:attribute name="reference-orientation">
  1895.             <xs:simpleType>
  1896.                 <xs:restriction base="xs:token">
  1897.                     <xs:enumeration value="0"/>
  1898.                     <xs:enumeration value="90"/>
  1899.                     <xs:enumeration value="180"/>
  1900.                     <xs:enumeration value="270"/>
  1901.                     <xs:enumeration value="-90"/>
  1902.                     <xs:enumeration value="-180"/>
  1903.                     <xs:enumeration value="-270"/>
  1904.                     <xs:enumeration value="0deg"/>
  1905.                     <xs:enumeration value="90deg"/>
  1906.                     <xs:enumeration value="180deg"/>
  1907.                     <xs:enumeration value="270deg"/>
  1908.                     <xs:enumeration value="-90deg"/>
  1909.                     <xs:enumeration value="-180deg"/>
  1910.                     <xs:enumeration value="-270deg"/>
  1911.                     <xs:enumeration value="inherit"/>
  1912.                 </xs:restriction>
  1913.             </xs:simpleType>
  1914.         </xs:attribute>
  1915.         <xs:attribute name="writing-mode">
  1916.             <xs:simpleType>
  1917.                 <xs:restriction base="xs:token">
  1918.                     <xs:enumeration value="lr-tb"/>
  1919.                     <xs:enumeration value="rl-tb"/>
  1920.                     <xs:enumeration value="tb-rl"/>
  1921.                     <xs:enumeration value="lr"/>
  1922.                     <xs:enumeration value="rl"/>
  1923.                     <xs:enumeration value="tb"/>
  1924.                     <xs:enumeration value="inherit"/>
  1925.                 </xs:restriction>
  1926.             </xs:simpleType>
  1927.         </xs:attribute>
  1928.     </xs:attributeGroup>
  1929.     <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
  1930.     <!-- Regions. The page instance is divided into subareas, whose -->
  1931.     <!-- properties are described by the five region-* elements. These -->
  1932.     <!-- elements by themselves do not generate any content. -->
  1933.     <!-- Reference-orientation and writing-mode may be inherited from -->
  1934.     <!-- the page master; all other features are local. -->
  1935.     <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
  1936.     <xs:attributeGroup name="region-properties">
  1937.         <xs:attributeGroup ref="fo:border-padding-background-properties"/>
  1938.         <xs:attributeGroup ref="fo:area-properties"/>
  1939.         <xs:attribute name="region-name"/>
  1940.     </xs:attributeGroup>
  1941.     <!-- =============================================================== -->
  1942.     <!-- Body region: middle of the page. Unlike side regions, this one -->
  1943.     <!-- may have multiple columns. -->
  1944.     <!-- [!] We have restricted margin properties to be margin-only, -->
  1945.     <!-- allowing no spaces. This is done because no clear semantics -->
  1946.     <!-- can be ascribed to single components of a space vector. -->
  1947.     <!-- =============================================================== -->
  1948.     <xs:element name="region-body">
  1949.         <xs:annotation>
  1950.             <xs:documentation> Used in constructing a simple-page-master. This region specifies a
  1951.                 viewport/reference pair that is located in the "center" of the
  1952.                 fo:simple-page-master. The overflow trait controls how much of the underlying
  1953.                 region-reference-area is visible; that is, whether the region-reference-area is
  1954.                 clipped by its parent region-viewport-area. </xs:documentation>
  1955.         </xs:annotation>
  1956.         <xs:complexType>
  1957.             <xs:attributeGroup ref="fo:fo.region-body-attlist"/>
  1958.         </xs:complexType>
  1959.     </xs:element>
  1960.     <xs:attributeGroup name="fo.region-body-attlist">
  1961.         <xs:attributeGroup ref="fo:region-properties"/>
  1962.         <xs:attributeGroup ref="fo:margin-properties-CSS"/>
  1963.         <xs:attribute name="column-count"/>
  1964.         <xs:attribute name="column-gap"/>
  1965.     </xs:attributeGroup>
  1966.     <!-- =============================================================== -->
  1967.     <!-- Side regions: page edges. These regions have extent and -->
  1968.     <!-- precedence that is used to arbitrate corner conflicts. Side -->
  1969.     <!-- regions are viewed as frames, and may not have margins. -->
  1970.     <!-- Extent made obligatory: its default value of 0.0pt does not -->
  1971.     <!-- make much sense. -->
  1972.     <!-- =============================================================== -->
  1973.     <xs:attributeGroup name="side-region-properties">
  1974.         <xs:attributeGroup ref="fo:region-properties"/>
  1975.         <xs:attribute name="extent" use="required"/>
  1976.         <xs:attribute name="precedence">
  1977.             <xs:annotation>
  1978.                 <xs:documentation> To control the allocation of page corners to either sidebars or
  1979.                     headers/footers, this special precedence attribute is used on side regions: if
  1980.                     set to "true", its bearer captures the corner. In case of equal precedences,
  1981.                     headers/footers win.</xs:documentation>
  1982.             </xs:annotation>
  1983.             <xs:simpleType>
  1984.                 <xs:restriction base="xs:token">
  1985.                     <xs:enumeration value="true"/>
  1986.                     <xs:enumeration value="false"/>
  1987.                     <xs:enumeration value="inherit"/>
  1988.                 </xs:restriction>
  1989.             </xs:simpleType>
  1990.         </xs:attribute>
  1991.     </xs:attributeGroup>
  1992.     <xs:element name="region-before">
  1993.         <xs:annotation>
  1994.             <xs:documentation> Used in constructing a simple-page-master. This region specifies a
  1995.                 viewport/reference pair that is located on the "before" side of the
  1996.                 page-reference-area. In lr-tb writing-mode, this region corresponds to the header
  1997.                 region. The overflow trait controls how much of the underlying region-reference-area
  1998.                 is visible; that is, whether the region-reference-area is clipped by its parent
  1999.                 region-viewport-area. </xs:documentation>
  2000.         </xs:annotation>
  2001.         <xs:complexType>
  2002.             <xs:attributeGroup ref="fo:fo.region-before-attlist"/>
  2003.         </xs:complexType>
  2004.     </xs:element>
  2005.     <xs:attributeGroup name="fo.region-before-attlist">
  2006.         <xs:attributeGroup ref="fo:side-region-properties"/>
  2007.     </xs:attributeGroup>
  2008.     <xs:element name="region-after">
  2009.         <xs:annotation>
  2010.             <xs:documentation> Used in constructing a simple-page-master. This region specifies a
  2011.                 viewport/reference pair that is located on the "after" side of the
  2012.                 page-reference-area. In lr-tb writing-mode, this region corresponds to the footer
  2013.                 region. The overflow trait controls how much of the underlying region-reference-area
  2014.                 is visible; that is, whether the region-reference-area is clipped by its parent
  2015.                 region-viewport-area. </xs:documentation>
  2016.         </xs:annotation>
  2017.         <xs:complexType>
  2018.             <xs:attributeGroup ref="fo:fo.region-after-attlist"/>
  2019.         </xs:complexType>
  2020.     </xs:element>
  2021.     <xs:attributeGroup name="fo.region-after-attlist">
  2022.         <xs:attributeGroup ref="fo:side-region-properties"/>
  2023.     </xs:attributeGroup>
  2024.     <xs:element name="region-start">
  2025.         <xs:annotation>
  2026.             <xs:documentation> Used in constructing a simple-page-master. This region specifies a
  2027.                 viewport/reference pair that is located on the "start" side of the
  2028.                 page-reference-area. In lr-tb writing-mode, this region corresponds to a left
  2029.                 sidebar. The overflow trait controls how much of the underlying
  2030.                 region-reference-area is visible; that is, whether the region-reference-area is
  2031.                 clipped by its parent region-viewport-area. </xs:documentation>
  2032.         </xs:annotation>
  2033.         <xs:complexType>
  2034.             <xs:attributeGroup ref="fo:fo.region-start-attlist"/>
  2035.         </xs:complexType>
  2036.     </xs:element>
  2037.     <xs:attributeGroup name="fo.region-start-attlist">
  2038.         <xs:attributeGroup ref="fo:side-region-properties"/>
  2039.     </xs:attributeGroup>
  2040.     <xs:element name="region-end">
  2041.         <xs:annotation>
  2042.             <xs:documentation> Used in constructing a simple-page-master. This region specifies a
  2043.                 viewport/reference pair that is located on the "end" side of the
  2044.                 page-reference-area. In lr-tb writing-mode, this region corresponds to a right
  2045.                 sidebar. The overflow trait controls how much of the underlying
  2046.                 region-reference-area is visible; that is, whether the region-reference-area is
  2047.                 clipped by its parent region-viewport-area. </xs:documentation>
  2048.         </xs:annotation>
  2049.         <xs:complexType>
  2050.             <xs:attributeGroup ref="fo:fo.region-end-attlist"/>
  2051.         </xs:complexType>
  2052.     </xs:element>
  2053.     <xs:attributeGroup name="fo.region-end-attlist">
  2054.         <xs:attributeGroup ref="fo:side-region-properties"/>
  2055.     </xs:attributeGroup>
  2056.     <!-- =============================================================== -->
  2057.     <!-- Page sequence defines the order of choosing page masters to -->
  2058.     <!-- accomodate all the contents generated by its fo:flow and -->
  2059.     <!-- fo:static-content children, and the way of numbering them. -->
  2060.     <!-- =============================================================== -->
  2061.     <xs:element name="page-sequence">
  2062.         <xs:annotation>
  2063.             <xs:documentation>This object is used to specify how to create a (sub-)sequence of pages
  2064.                 within a document; for example, a chapter of a report. The content of these pages
  2065.                 comes from flow children (consisting of the single fo:flow and any fo:static-content
  2066.                 flow objects) of the fo:page-sequence.</xs:documentation>
  2067.         </xs:annotation>
  2068.         <xs:complexType>
  2069.             <xs:sequence>
  2070.                 <xs:element minOccurs="0" ref="fo:title"/>
  2071.                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="fo:static-content"/>
  2072.                 <xs:element ref="fo:flow"/>
  2073.             </xs:sequence>
  2074.             <xs:attributeGroup ref="fo:fo.page-sequence-attlist"/>
  2075.         </xs:complexType>
  2076.     </xs:element>
  2077.     <xs:attributeGroup name="fo.page-sequence-attlist">
  2078.         <xs:attribute name="id"/>
  2079.         <xs:attribute ref="rx:key"/>
  2080.         <xs:attribute name="master-reference" use="required">
  2081.             <xs:annotation>
  2082.                 <xs:documentation>This attribute selects an appropriate layout scheme. Setting
  2083.                     master-reference to a page master name means that all pages in this sequence
  2084.                     will be formatted using this page master.</xs:documentation>
  2085.             </xs:annotation>
  2086.         </xs:attribute>
  2087.         <xs:attribute name="initial-page-number"/>
  2088.         <xs:attribute name="force-page-count">
  2089.             <xs:simpleType>
  2090.                 <xs:restriction base="xs:token">
  2091.                     <xs:enumeration value="auto"/>
  2092.                     <xs:enumeration value="even"/>
  2093.                     <xs:enumeration value="odd"/>
  2094.                     <xs:enumeration value="end-on-even"/>
  2095.                     <xs:enumeration value="end-on-odd"/>
  2096.                     <xs:enumeration value="no-force"/>
  2097.                     <xs:enumeration value="inherit"/>
  2098.                 </xs:restriction>
  2099.             </xs:simpleType>
  2100.         </xs:attribute>
  2101.         <xs:attribute name="format"/>
  2102.         <xs:attribute name="letter-value">
  2103.             <xs:simpleType>
  2104.                 <xs:restriction base="xs:token">
  2105.                     <xs:enumeration value="auto"/>
  2106.                     <xs:enumeration value="alphabetic"/>
  2107.                     <xs:enumeration value="traditional"/>
  2108.                 </xs:restriction>
  2109.             </xs:simpleType>
  2110.         </xs:attribute>
  2111.         <xs:attribute name="grouping-separator"/>
  2112.         <xs:attribute name="grouping-size"/>
  2113.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  2114.     </xs:attributeGroup>
  2115.     <!-- =============================================================== -->
  2116.     <!-- Title may not contain out-of-lines. -->
  2117.     <!-- =============================================================== -->
  2118.     <xs:element name="title">
  2119.         <xs:annotation>
  2120.             <xs:documentation> This formatting object is used to associate a title with a given
  2121.                 page-sequence. This title may be used by an interactive User Agent to identify the
  2122.                 pages. For example, the content of the fo:title can be formatted and displayed in a
  2123.                 "title" window or in a "tool tip". </xs:documentation>
  2124.         </xs:annotation>
  2125.         <xs:complexType mixed="true">
  2126.             <xs:choice minOccurs="0" maxOccurs="unbounded">
  2127.                 <xs:element ref="fo:basic-inlines"/>
  2128.                 <xs:element ref="fo:wrappers"/>
  2129.             </xs:choice>
  2130.             <xs:attributeGroup ref="fo:fo.title-attlist"/>
  2131.         </xs:complexType>
  2132.     </xs:element>
  2133.     <xs:attributeGroup name="fo.title-attlist">
  2134.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  2135.     </xs:attributeGroup>
  2136.     <!-- *************************************************************** -->
  2137.     <!-- B. Element structure for content-bearing elements -->
  2138.     <!-- *************************************************************** -->
  2139.     <!-- =============================================================== -->
  2140.     <!-- Flows. They are just sequences of blocks. 'flow-name' feature -->
  2141.     <!-- defines linkage of the flow to a region in the page master. -->
  2142.     <!-- =============================================================== -->
  2143.     <!-- =============================================================== -->
  2144.     <!-- An extension element, fo:flow-section, has been added in order -->
  2145.     <!-- to overcome limitations on multicolumn layout imposed by XSL FO -->
  2146.     <!-- =============================================================== -->
  2147.     <xs:attributeGroup name="flow-properties">
  2148.         <xs:attribute name="id"/>
  2149.         <xs:attribute ref="rx:key"/>
  2150.         <xs:attribute name="flow-name" use="required"/>
  2151.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  2152.     </xs:attributeGroup>
  2153.     <xs:element name="static-content">
  2154.         <xs:annotation>
  2155.             <xs:documentation> This formatting object holds a sequence or a tree of formatting
  2156.                 objects that is to be presented in a single region or repeated in like-named regions
  2157.                 on one or more pages in the page-sequence. Its common use is for repeating or
  2158.                 running headers and footers. </xs:documentation>
  2159.         </xs:annotation>
  2160.         <xs:complexType>
  2161.             <xs:sequence>
  2162.                 <xs:element maxOccurs="unbounded" ref="fo:blocks"/>
  2163.             </xs:sequence>
  2164.             <xs:attributeGroup ref="fo:fo.static-content-attlist"/>
  2165.         </xs:complexType>
  2166.     </xs:element>
  2167.     <xs:attributeGroup name="fo.static-content-attlist">
  2168.         <xs:attributeGroup ref="fo:flow-properties"/>
  2169.     </xs:attributeGroup>
  2170.     <xs:element name="flow">
  2171.         <xs:annotation>
  2172.             <xs:documentation> The content of the fo:flow formatting object is a sequence of flow
  2173.                 objects that provides the flowing text content that is distributed into pages. </xs:documentation>
  2174.         </xs:annotation>
  2175.         <xs:complexType>
  2176.             <xs:choice maxOccurs="unbounded">
  2177.                 <xs:element ref="fo:blocks"/>
  2178.                 <xs:element ref="rx:flow-section"/>
  2179.             </xs:choice>
  2180.             <xs:attributeGroup ref="fo:fo.flow-attlist"/>
  2181.         </xs:complexType>
  2182.     </xs:element>
  2183.     <xs:attributeGroup name="fo.flow-attlist">
  2184.         <xs:attributeGroup ref="fo:flow-properties"/>
  2185.     </xs:attributeGroup>
  2186.     <!-- Extension element. Acts like a top-level block -->
  2187.     <!-- with multiple columns. -->
  2188.     <xs:attributeGroup name="rx.flow-section-attlist">
  2189.         <xs:attribute name="column-count"/>
  2190.         <xs:attribute name="column-gap"/>
  2191.         <xs:attributeGroup ref="fo:block-properties"/>
  2192.     </xs:attributeGroup>
  2193.     <!-- =============================================================== -->
  2194.     <!-- Block is the base element for all content areas. Besides -->
  2195.     <!-- properties used to format the block itself, it also conveys -->
  2196.     <!-- formatting information to its inline-level children. -->
  2197.     <!-- =============================================================== -->
  2198.     <xs:element name="block" substitutionGroup="fo:basic-blocks">
  2199.         <xs:annotation>
  2200.             <xs:documentation> This formatting object is commonly used for formatting paragraphs,
  2201.                 titles, headlines, figure and table captions, etc. </xs:documentation>
  2202.         </xs:annotation>
  2203.         <xs:complexType mixed="true">
  2204.             <xs:choice minOccurs="0" maxOccurs="unbounded">
  2205.                 <xs:element ref="fo:initial-property-set"/>
  2206.                 <xs:element ref="fo:basic-inlines"/>
  2207.                 <xs:element ref="fo:basic-blocks"/>
  2208.                 <xs:element ref="fo:out-of-lines"/>
  2209.                 <xs:element ref="fo:wrappers"/>
  2210.             </xs:choice>
  2211.             <xs:attributeGroup ref="fo:fo.block-attlist"/>
  2212.         </xs:complexType>
  2213.     </xs:element>
  2214.     <xs:attributeGroup name="fo.block-attlist">
  2215.         <xs:attributeGroup ref="fo:block-properties"/>
  2216.     </xs:attributeGroup>
  2217.     <!-- =============================================================== -->
  2218.     <!-- Block container -->
  2219.     <!-- =============================================================== -->
  2220.     <xs:element name="block-container" substitutionGroup="fo:basic-blocks">
  2221.         <xs:annotation>
  2222.             <xs:documentation> This flow object is used to generate a block-level reference-area,
  2223.                 typically containing text blocks with a different writing-mode. In addition, it can
  2224.                 also be used with a different reference-orientation to rotate its content. </xs:documentation>
  2225.         </xs:annotation>
  2226.         <xs:complexType>
  2227.             <xs:sequence>
  2228.                 <xs:element maxOccurs="unbounded" ref="fo:blocks"/>
  2229.             </xs:sequence>
  2230.             <xs:attributeGroup ref="fo:fo.block-container-attlist"/>
  2231.         </xs:complexType>
  2232.     </xs:element>
  2233.     <xs:attributeGroup name="fo.block-container-attlist">
  2234.         <xs:attributeGroup ref="fo:block-properties"/>
  2235.     </xs:attributeGroup>
  2236.     <!-- *************************************************************** -->
  2237.     <!-- Inline elements -->
  2238.     <!-- *************************************************************** -->
  2239.     <!-- =============================================================== -->
  2240.     <!-- Unicode bidi-override -->
  2241.     <!-- =============================================================== -->
  2242.     <xs:element name="bidi-override" substitutionGroup="fo:basic-inlines">
  2243.         <xs:annotation>
  2244.             <xs:documentation> This formatting object is used when the Unicode BIDI algorithm fails.
  2245.                 It forces a string of text to be written in a specific direction. </xs:documentation>
  2246.         </xs:annotation>
  2247.         <xs:complexType mixed="true">
  2248.             <xs:group minOccurs="0" maxOccurs="unbounded" ref="fo:inlines"/>
  2249.             <xs:attributeGroup ref="fo:fo.bidi-override-attlist"/>
  2250.         </xs:complexType>
  2251.     </xs:element>
  2252.     <xs:attributeGroup name="fo.bidi-override-attlist">
  2253.         <xs:attributeGroup ref="fo:inline-properties"/>
  2254.     </xs:attributeGroup>
  2255.     <!-- =============================================================== -->
  2256.     <!-- Single character -->
  2257.     <!-- =============================================================== -->
  2258.     <xs:element name="character" substitutionGroup="fo:basic-inlines">
  2259.         <xs:annotation>
  2260.             <xs:documentation> This flow object represents a character that is mapped to a glyph for
  2261.                 presentation. It is an atomic unit to the formatter. </xs:documentation>
  2262.         </xs:annotation>
  2263.         <xs:complexType>
  2264.             <xs:attributeGroup ref="fo:fo.character-attlist"/>
  2265.         </xs:complexType>
  2266.     </xs:element>
  2267.     <xs:attributeGroup name="fo.character-attlist">
  2268.         <xs:attribute name="character" use="required"/>
  2269.         <xs:attributeGroup ref="fo:empty-inline-properties"/>
  2270.     </xs:attributeGroup>
  2271.     <!-- =============================================================== -->
  2272.     <!-- Initial property set specifies properties for one or more lines -->
  2273.     <!-- =============================================================== -->
  2274.     <xs:element name="initial-property-set">
  2275.         <xs:annotation>
  2276.             <xs:documentation> This auxiliary formatting object specifies formatting properties for
  2277.                 the first line of an fo:block. </xs:documentation>
  2278.         </xs:annotation>
  2279.         <xs:complexType>
  2280.             <xs:attributeGroup ref="fo:fo.initial-property-set-attlist"/>
  2281.         </xs:complexType>
  2282.     </xs:element>
  2283.     <xs:attributeGroup name="fo.initial-property-set-attlist">
  2284.         <xs:attributeGroup ref="fo:empty-inline-properties"/>
  2285.     </xs:attributeGroup>
  2286.     <!-- =============================================================== -->
  2287.     <!-- External graphic -->
  2288.     <!-- =============================================================== -->
  2289.     <xs:element name="external-graphic" substitutionGroup="fo:basic-inlines">
  2290.         <xs:annotation>
  2291.             <xs:documentation> This formatting object generates and returns one inline-level
  2292.                 viewport-area and one reference-area containing the external graphic. </xs:documentation>
  2293.         </xs:annotation>
  2294.         <xs:complexType>
  2295.             <xs:attributeGroup ref="fo:fo.external-graphic-attlist"/>
  2296.         </xs:complexType>
  2297.     </xs:element>
  2298.     <xs:attributeGroup name="fo.external-graphic-attlist">
  2299.         <xs:attributeGroup ref="fo:graphic-properties"/>
  2300.         <xs:attribute name="src"/>
  2301.     </xs:attributeGroup>
  2302.     <!-- =============================================================== -->
  2303.     <!-- In-stream graphic -->
  2304.     <!-- =============================================================== -->
  2305.     <xs:element name="instream-foreign-object" substitutionGroup="fo:basic-inlines">
  2306.         <xs:annotation>
  2307.             <xs:documentation> This flow object is used for an inline graphic or other "generic"
  2308.                 object where the object data resides as descendants of the
  2309.                 fo:instream-foreign-object, typically as an XML element subtree in a non-XSL
  2310.                 namespace. </xs:documentation>
  2311.         </xs:annotation>
  2312.         <xs:complexType>
  2313.             <xs:complexContent>
  2314.                 <xs:extension base="fo:any">
  2315.                     <xs:attributeGroup ref="fo:fo.instream-foreign-object-attlist"/>
  2316.                 </xs:extension>
  2317.             </xs:complexContent>
  2318.         </xs:complexType>
  2319.     </xs:element>
  2320.     <xs:attributeGroup name="fo.instream-foreign-object-attlist">
  2321.         <xs:attributeGroup ref="fo:graphic-properties"/>
  2322.     </xs:attributeGroup>
  2323.     <!-- =============================================================== -->
  2324.     <!--  An element to mark a point in the XML output (RenderX extension) -->
  2325.     <!-- =============================================================== -->
  2326.     <xs:attributeGroup name="rx.pinpoint-attlist">
  2327.         <xs:attribute name="value" use="required"/>
  2328.         <xs:attributeGroup ref="fo:accessibility-properties"/>
  2329.         <xs:attributeGroup ref="fo:relative-position-properties"/>
  2330.         <xs:attributeGroup ref="fo:area-alignment-properties-inline"/>
  2331.         <xs:attributeGroup ref="fo:keeps-and-breaks-properties-atomic"/>
  2332.     </xs:attributeGroup>
  2333.     <!-- =============================================================== -->
  2334.     <!-- Inline -->
  2335.     <!-- =============================================================== -->
  2336.     <xs:element name="inline" substitutionGroup="fo:basic-inlines">
  2337.         <xs:annotation>
  2338.             <xs:documentation> This formatting object is commonly used for formatting a portion of
  2339.                 text with a background or enclosing it in a border. </xs:documentation>
  2340.         </xs:annotation>
  2341.         <xs:complexType mixed="true">
  2342.             <xs:group minOccurs="0" maxOccurs="unbounded" ref="fo:mixed-level"/>
  2343.             <xs:attributeGroup ref="fo:fo.inline-attlist"/>
  2344.         </xs:complexType>
  2345.     </xs:element>
  2346.     <xs:attributeGroup name="fo.inline-attlist">
  2347.         <xs:attributeGroup ref="fo:inline-properties"/>
  2348.     </xs:attributeGroup>
  2349.     <!-- =============================================================== -->
  2350.     <!-- Inline container -->
  2351.     <!-- =============================================================== -->
  2352.     <xs:element name="inline-container" substitutionGroup="fo:basic-inlines">
  2353.         <xs:annotation>
  2354.             <xs:documentation> This flow object is used to generate an inline reference-area,
  2355.                 typically containing text blocks with a different writing-mode. </xs:documentation>
  2356.         </xs:annotation>
  2357.         <xs:complexType>
  2358.             <xs:sequence>
  2359.                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="fo:blocks"/>
  2360.             </xs:sequence>
  2361.             <xs:attributeGroup ref="fo:fo.inline-container-attlist"/>
  2362.         </xs:complexType>
  2363.     </xs:element>
  2364.     <xs:attributeGroup name="fo.inline-container-attlist">
  2365.         <xs:attributeGroup ref="fo:inline-properties"/>
  2366.     </xs:attributeGroup>
  2367.     <!-- =============================================================== -->
  2368.     <!-- Leader -->
  2369.     <!-- =============================================================== -->
  2370.     <xs:element name="leader" substitutionGroup="fo:basic-inlines">
  2371.         <xs:annotation>
  2372.             <xs:documentation> This formatting object generates and returns a single normal
  2373.                 inline-area. </xs:documentation>
  2374.         </xs:annotation>
  2375.         <xs:complexType mixed="true">
  2376.             <xs:group minOccurs="0" maxOccurs="unbounded" ref="fo:inlines"/>
  2377.             <xs:attributeGroup ref="fo:fo.leader-attlist"/>
  2378.         </xs:complexType>
  2379.     </xs:element>
  2380.     <xs:attributeGroup name="fo.leader-attlist">
  2381.         <xs:attributeGroup ref="fo:inline-properties"/>
  2382.     </xs:attributeGroup>
  2383.     <!-- =============================================================== -->
  2384.     <!-- Page Number -->
  2385.     <!-- =============================================================== -->
  2386.     <xs:element name="page-number" substitutionGroup="fo:basic-inlines">
  2387.         <xs:annotation>
  2388.             <xs:documentation> This formatting object is used to obtain an inline-area whose content
  2389.                 is the page-number for the page on which the inline-area is placed. </xs:documentation>
  2390.         </xs:annotation>
  2391.         <xs:complexType>
  2392.             <xs:attributeGroup ref="fo:fo.page-number-attlist"/>
  2393.         </xs:complexType>
  2394.     </xs:element>
  2395.     <xs:attributeGroup name="fo.page-number-attlist">
  2396.         <xs:attributeGroup ref="fo:empty-inline-properties"/>
  2397.     </xs:attributeGroup>
  2398.     <!-- =============================================================== -->
  2399.     <!-- Page number citation -->
  2400.     <!-- =============================================================== -->
  2401.     <xs:element name="page-number-citation" substitutionGroup="fo:basic-inlines">
  2402.         <xs:annotation>
  2403.             <xs:documentation> This is used to reference the page-number for the page containing the
  2404.                 first normal area returned by the cited formatting object. </xs:documentation>
  2405.         </xs:annotation>
  2406.         <xs:complexType>
  2407.             <xs:attributeGroup ref="fo:fo.page-number-citation-attlist"/>
  2408.         </xs:complexType>
  2409.     </xs:element>
  2410.     <xs:attributeGroup name="fo.page-number-citation-attlist">
  2411.         <xs:attributeGroup ref="fo:empty-inline-properties"/>
  2412.         <xs:attribute name="ref-id" use="required"/>
  2413.     </xs:attributeGroup>
  2414.     <!-- =============================================================== -->
  2415.     <!-- Page number list - index entry -->
  2416.     <!-- =============================================================== -->
  2417.     <xs:attributeGroup name="rx.page-index-attlist">
  2418.         <xs:attributeGroup ref="fo:empty-inline-properties"/>
  2419.         <xs:attribute name="ref-key" use="required"/>
  2420.         <xs:attribute name="list-separator"/>
  2421.         <xs:attribute name="range-separator"/>
  2422.         <xs:attribute name="merge-subsequent-page-numbers"/>
  2423.     </xs:attributeGroup>
  2424.     <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
  2425.     <!-- Formatting objects for tables. -->
  2426.     <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
  2427.     <!-- =============================================================== -->
  2428.     <!-- Table & Caption is a wrapper to all the stuff pertinent to a -->
  2429.     <!-- given table. It generates a block consisting of two subblocks: -->
  2430.     <!-- one for the caption, another one for the table itself. The -->
  2431.     <!-- placement of these two blocks is controlled by the -->
  2432.     <!-- 'caption-side' property: if  caption-side="before"|"after" (or -->
  2433.     <!-- their absolute orientation equivalents), the two blocks are -->
  2434.     <!-- drawn one after another; if it is "start"|"end", then the -->
  2435.     <!-- caption is displayed on the correspondent side of the table. -->
  2436.     <!-- In this case, the relative alignment of the two blocks is given -->
  2437.     <!-- by the 'relative-align'/'display-align' property. -->
  2438.     <!---->
  2439.     <!-- =============================================================== -->
  2440.     <xs:element name="table-and-caption" substitutionGroup="fo:basic-blocks">
  2441.         <xs:annotation>
  2442.             <xs:documentation> This flow object is used for formatting a table together with its
  2443.                 caption. </xs:documentation>
  2444.         </xs:annotation>
  2445.         <xs:complexType>
  2446.             <xs:sequence>
  2447.                 <xs:element minOccurs="0" ref="fo:table-caption"/>
  2448.                 <xs:element ref="fo:table"/>
  2449.             </xs:sequence>
  2450.             <xs:attributeGroup ref="fo:fo.table-and-caption-attlist"/>
  2451.         </xs:complexType>
  2452.     </xs:element>
  2453.     <xs:attributeGroup name="fo.table-and-caption-attlist">
  2454.         <xs:attributeGroup ref="fo:block-properties"/>
  2455.     </xs:attributeGroup>
  2456.     <!-- =============================================================== -->
  2457.     <!-- Table caption is an area container. -->
  2458.     <!-- =============================================================== -->
  2459.     <xs:element name="table-caption">
  2460.         <xs:annotation>
  2461.             <xs:documentation>This formatting object is used to contain block-level formatting
  2462.                 objects containing the caption for the table only when using the fo:table-and-caption.</xs:documentation>
  2463.         </xs:annotation>
  2464.         <xs:complexType>
  2465.             <xs:sequence>
  2466.                 <xs:element maxOccurs="unbounded" ref="fo:blocks"/>
  2467.             </xs:sequence>
  2468.             <xs:attributeGroup ref="fo:fo.table-caption-attlist"/>
  2469.         </xs:complexType>
  2470.     </xs:element>
  2471.     <xs:attributeGroup name="fo.table-caption-attlist">
  2472.         <xs:attributeGroup ref="fo:block-properties"/>
  2473.     </xs:attributeGroup>
  2474.     <!-- =============================================================== -->
  2475.     <!-- fo:table is the basic element for all tables. All the contents -->
  2476.     <!-- placed inside it is distributed over a single rectangular grid -->
  2477.     <!-- of rows and columns. -->
  2478.     <!-- =============================================================== -->
  2479.     <xs:element name="table" substitutionGroup="fo:basic-blocks">
  2480.         <xs:annotation>
  2481.             <xs:documentation> This flow object is used for formatting the tabular material of a
  2482.                 table. </xs:documentation>
  2483.         </xs:annotation>
  2484.         <xs:complexType>
  2485.             <xs:sequence>
  2486.                 <xs:element minOccurs="0" maxOccurs="unbounded" ref="fo:table-column"/>
  2487.                 <xs:element minOccurs="0" ref="fo:table-header"/>
  2488.                 <xs:element minOccurs="0" ref="fo:table-footer"/>
  2489.                 <xs:element maxOccurs="unbounded" ref="fo:table-body"/>
  2490.             </xs:sequence>
  2491.             <xs:attributeGroup ref="fo:fo.table-attlist"/>
  2492.         </xs:complexType>
  2493.     </xs:element>
  2494.     <xs:attributeGroup name="fo.table-attlist">
  2495.         <xs:attributeGroup ref="fo:block-properties"/>
  2496.     </xs:attributeGroup>
  2497.     <!-- =============================================================== -->
  2498.     <!-- Table column specifies common properties to ascribe to all -->
  2499.     <!-- cells in a column *or a group of columns*. Note that, if both -->
  2500.     <!-- 'number-columns-repeated' and 'number-columns-spanned' exceed -->
  2501.     <!-- 1, the column counter is increased by 'number-columns-spanned'. -->
  2502.     <!-- it means that you only set properties for columns: -->
  2503.     <!-- 'column-number' -->
  2504.     <!-- 'column-number' + 'number-columns-spanned' -->
  2505.     <!-- 'column-number' + 2 * 'number-columns-spanned' -->
  2506.     <!-- and so on, leaving default properties for intermediate columns. -->
  2507.     <!-- =============================================================== -->
  2508.     <xs:element name="table-column">
  2509.         <xs:annotation>
  2510.             <xs:documentation> This auxiliary formatting object specifies characteristics applicable
  2511.                 to table cells that have the same column and span. The most important property is
  2512.                 the "column-width" property. </xs:documentation>
  2513.         </xs:annotation>
  2514.         <xs:complexType>
  2515.             <xs:attributeGroup ref="fo:fo.table-column-attlist"/>
  2516.         </xs:complexType>
  2517.     </xs:element>
  2518.     <xs:attributeGroup name="fo.table-column-attlist">
  2519.         <xs:attribute name="column-number"/>
  2520.         <xs:attribute name="column-width"/>
  2521.         <xs:attribute name="number-columns-repeated">
  2522.             <xs:annotation>
  2523.                 <xs:documentation> Sets the same size characteristic for a given number of columns. </xs:documentation>
  2524.             </xs:annotation>
  2525.         </xs:attribute>
  2526.         <xs:attribute name="number-columns-spanned">
  2527.             <xs:annotation>
  2528.                 <xs:documentation>Specifies the number of columns a cell spans.</xs:documentation>
  2529.             </xs:annotation>
  2530.         </xs:attribute>
  2531.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  2532.     </xs:attributeGroup>
  2533.     <!-- =============================================================== -->
  2534.     <!-- Table header, table footer, and table body are wrappers for -->
  2535.     <!-- groups of rows. They contain either one or more fo:table-rows, -->
  2536.     <!-- or one or more fo:table-cells; in the latter case, row breaks -->
  2537.     <!-- are specified in the cells by 'starts-row'/'ends-row'. -->
  2538.     <!-- All these elements are identical both in the content structure -->
  2539.     <!-- and in the attributes. -->
  2540.     <!-- =============================================================== -->
  2541.     <xs:complexType name="row-group">
  2542.         <xs:choice>
  2543.             <xs:element maxOccurs="unbounded" ref="fo:table-row"/>
  2544.             <xs:element maxOccurs="unbounded" ref="fo:table-cell"/>
  2545.         </xs:choice>
  2546.     </xs:complexType>
  2547.     <xs:element name="table-header">
  2548.         <xs:annotation>
  2549.             <xs:documentation> This formatting object is used to contain the content of the table
  2550.                 header. </xs:documentation>
  2551.         </xs:annotation>
  2552.         <xs:complexType>
  2553.             <xs:complexContent>
  2554.                 <xs:extension base="fo:row-group">
  2555.                     <xs:attributeGroup ref="fo:fo.table-header-attlist"/>
  2556.                 </xs:extension>
  2557.             </xs:complexContent>
  2558.         </xs:complexType>
  2559.     </xs:element>
  2560.     <xs:attributeGroup name="fo.table-header-attlist">
  2561.         <xs:attribute name="id"/>
  2562.         <xs:attribute ref="rx:key"/>
  2563.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  2564.     </xs:attributeGroup>
  2565.     <xs:element name="table-footer">
  2566.         <xs:annotation>
  2567.             <xs:documentation> This formatting object is used to contain the content of the table
  2568.                 footer. </xs:documentation>
  2569.         </xs:annotation>
  2570.         <xs:complexType>
  2571.             <xs:complexContent>
  2572.                 <xs:extension base="fo:row-group">
  2573.                     <xs:attributeGroup ref="fo:fo.table-footer-attlist"/>
  2574.                 </xs:extension>
  2575.             </xs:complexContent>
  2576.         </xs:complexType>
  2577.     </xs:element>
  2578.     <xs:attributeGroup name="fo.table-footer-attlist">
  2579.         <xs:attribute name="id"/>
  2580.         <xs:attribute ref="rx:key"/>
  2581.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  2582.     </xs:attributeGroup>
  2583.     <xs:element name="table-body">
  2584.         <xs:annotation>
  2585.             <xs:documentation> This formatting object is used to contain the content of the table
  2586.                 body. </xs:documentation>
  2587.         </xs:annotation>
  2588.         <xs:complexType>
  2589.             <xs:complexContent>
  2590.                 <xs:extension base="fo:row-group">
  2591.                     <xs:attributeGroup ref="fo:fo.table-body-attlist"/>
  2592.                 </xs:extension>
  2593.             </xs:complexContent>
  2594.         </xs:complexType>
  2595.     </xs:element>
  2596.     <xs:attributeGroup name="fo.table-body-attlist">
  2597.         <xs:attribute name="id"/>
  2598.         <xs:attribute ref="rx:key"/>
  2599.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  2600.     </xs:attributeGroup>
  2601.     <!-- =============================================================== -->
  2602.     <!-- Table row. -->
  2603.     <!-- =============================================================== -->
  2604.     <xs:element name="table-row">
  2605.         <xs:annotation>
  2606.             <xs:documentation> This formatting object is used to group table-cells into rows; all
  2607.                 table-cells in a table-row start in the same geometric row on the table grid. </xs:documentation>
  2608.         </xs:annotation>
  2609.         <xs:complexType>
  2610.             <xs:sequence>
  2611.                 <xs:element maxOccurs="unbounded" ref="fo:table-cell"/>
  2612.             </xs:sequence>
  2613.             <xs:attributeGroup ref="fo:fo.table-row-attlist"/>
  2614.         </xs:complexType>
  2615.     </xs:element>
  2616.     <xs:attributeGroup name="fo.table-row-attlist">
  2617.         <xs:attribute name="id"/>
  2618.         <xs:attribute ref="rx:key"/>
  2619.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  2620.     </xs:attributeGroup>
  2621.     <!-- =============================================================== -->
  2622.     <!-- Table cell. -->
  2623.     <!-- =============================================================== -->
  2624.     <xs:element name="table-cell">
  2625.         <xs:annotation>
  2626.             <xs:documentation> This formatting object is used to group content to be placed in a
  2627.                 table cell. </xs:documentation>
  2628.         </xs:annotation>
  2629.         <xs:complexType>
  2630.             <xs:sequence>
  2631.                 <xs:element maxOccurs="unbounded" ref="fo:blocks"/>
  2632.             </xs:sequence>
  2633.             <xs:attributeGroup ref="fo:fo.table-cell-attlist"/>
  2634.         </xs:complexType>
  2635.     </xs:element>
  2636.     <xs:attributeGroup name="fo.table-cell-attlist">
  2637.         <xs:attributeGroup ref="fo:block-properties"/>
  2638.         <xs:attribute name="column-number"/>
  2639.         <xs:attribute name="ends-row">
  2640.             <xs:simpleType>
  2641.                 <xs:restriction base="xs:token">
  2642.                     <xs:enumeration value="true"/>
  2643.                     <xs:enumeration value="false"/>
  2644.                 </xs:restriction>
  2645.             </xs:simpleType>
  2646.         </xs:attribute>
  2647.         <xs:attribute name="number-columns-spanned"/>
  2648.         <xs:attribute name="number-rows-spanned">
  2649.             <xs:annotation>
  2650.                 <xs:documentation> Sets the number of rows the cell spans. </xs:documentation>
  2651.             </xs:annotation>
  2652.         </xs:attribute>
  2653.         <xs:attribute name="starts-row">
  2654.             <xs:simpleType>
  2655.                 <xs:restriction base="xs:token">
  2656.                     <xs:enumeration value="true"/>
  2657.                     <xs:enumeration value="false"/>
  2658.                 </xs:restriction>
  2659.             </xs:simpleType>
  2660.         </xs:attribute>
  2661.     </xs:attributeGroup>
  2662.     <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
  2663.     <!-- Formatting objects for lists. -->
  2664.     <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
  2665.     <!-- =============================================================== -->
  2666.     <!-- List block is a block, with some extra features to control the -->
  2667.     <!-- disposition of list items. -->
  2668.     <!-- =============================================================== -->
  2669.     <xs:element name="list-block" substitutionGroup="fo:basic-blocks">
  2670.         <xs:annotation>
  2671.             <xs:documentation> This flow object is used to format a list. </xs:documentation>
  2672.         </xs:annotation>
  2673.         <xs:complexType>
  2674.             <xs:sequence>
  2675.                 <xs:element maxOccurs="unbounded" ref="fo:list-item"/>
  2676.             </xs:sequence>
  2677.             <xs:attributeGroup ref="fo:fo.list-block-attlist"/>
  2678.         </xs:complexType>
  2679.     </xs:element>
  2680.     <xs:attributeGroup name="fo.list-block-attlist">
  2681.         <xs:attributeGroup ref="fo:block-properties"/>
  2682.     </xs:attributeGroup>
  2683.     <!-- =============================================================== -->
  2684.     <!-- List item is a coupling of item label and item body. -->
  2685.     <!-- =============================================================== -->
  2686.     <xs:element name="list-item">
  2687.         <xs:annotation>
  2688.             <xs:documentation> This formatting object contains the label and the body of an item in
  2689.                 a list. </xs:documentation>
  2690.         </xs:annotation>
  2691.         <xs:complexType>
  2692.             <xs:sequence>
  2693.                 <xs:element ref="fo:list-item-label"/>
  2694.                 <xs:element ref="fo:list-item-body"/>
  2695.             </xs:sequence>
  2696.             <xs:attributeGroup ref="fo:fo.list-item-attlist"/>
  2697.         </xs:complexType>
  2698.     </xs:element>
  2699.     <xs:attributeGroup name="fo.list-item-attlist">
  2700.         <xs:attributeGroup ref="fo:block-properties"/>
  2701.     </xs:attributeGroup>
  2702.     <!-- =============================================================== -->
  2703.     <!-- List item label and list item body -->
  2704.     <!-- =============================================================== -->
  2705.     <xs:element name="list-item-label">
  2706.         <xs:annotation>
  2707.             <xs:documentation>This formatting object contains the content of the label of a
  2708.                 list-item, typically used to either enumerate, identify, or adorn the list-item's body.</xs:documentation>
  2709.         </xs:annotation>
  2710.         <xs:complexType>
  2711.             <xs:sequence>
  2712.                 <xs:element maxOccurs="unbounded" ref="fo:blocks"/>
  2713.             </xs:sequence>
  2714.             <xs:attributeGroup ref="fo:fo.list-item-label-attlist"/>
  2715.         </xs:complexType>
  2716.     </xs:element>
  2717.     <xs:attributeGroup name="fo.list-item-label-attlist">
  2718.         <xs:attributeGroup ref="fo:block-properties"/>
  2719.     </xs:attributeGroup>
  2720.     <xs:element name="list-item-body">
  2721.         <xs:annotation>
  2722.             <xs:documentation> This formatting object contains the content of the body of a
  2723.                 list-item. </xs:documentation>
  2724.         </xs:annotation>
  2725.         <xs:complexType>
  2726.             <xs:sequence>
  2727.                 <xs:element maxOccurs="unbounded" ref="fo:blocks"/>
  2728.             </xs:sequence>
  2729.             <xs:attributeGroup ref="fo:fo.list-item-body-attlist"/>
  2730.         </xs:complexType>
  2731.     </xs:element>
  2732.     <xs:attributeGroup name="fo.list-item-body-attlist">
  2733.         <xs:attributeGroup ref="fo:block-properties"/>
  2734.     </xs:attributeGroup>
  2735.     <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
  2736.     <!-- Out-of-lines. -->
  2737.     <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
  2738.     <!-- =============================================================== -->
  2739.     <!-- Floats and footnotes resemble containers. Accordingly, we treat -->
  2740.     <!-- them as block sequences. -->
  2741.     <!-- =============================================================== -->
  2742.     <xs:element name="float" substitutionGroup="fo:out-of-lines">
  2743.         <xs:annotation>
  2744.             <xs:documentation> This formatting object is typically used either to cause an image to
  2745.                 be positioned in a separate area at the beginning of a page, or to cause an image to
  2746.                 be positioned to one side, with normal content flowing around and along-side the
  2747.                 image. </xs:documentation>
  2748.         </xs:annotation>
  2749.         <xs:complexType>
  2750.             <xs:sequence>
  2751.                 <xs:element maxOccurs="unbounded" ref="fo:blocks"/>
  2752.             </xs:sequence>
  2753.             <xs:attributeGroup ref="fo:fo.float-attlist"/>
  2754.         </xs:complexType>
  2755.     </xs:element>
  2756.     <xs:attributeGroup name="fo.float-attlist">
  2757.         <xs:attributeGroup ref="fo:block-properties"/>
  2758.     </xs:attributeGroup>
  2759.     <xs:element name="footnote" substitutionGroup="fo:out-of-lines">
  2760.         <xs:annotation>
  2761.             <xs:documentation>This is typically used to produce footnote-citations within the
  2762.                 region-body of a page and the corresponding footnote in a separate area nearer the
  2763.                 after-edge of the page.</xs:documentation>
  2764.         </xs:annotation>
  2765.         <xs:complexType>
  2766.             <xs:sequence>
  2767.                 <xs:element ref="fo:inline"/>
  2768.                 <xs:element ref="fo:footnote-body"/>
  2769.             </xs:sequence>
  2770.             <xs:attributeGroup ref="fo:fo.footnote-attlist"/>
  2771.         </xs:complexType>
  2772.     </xs:element>
  2773.     <xs:attributeGroup name="fo.footnote-attlist">
  2774.         <xs:attributeGroup ref="fo:block-properties"/>
  2775.     </xs:attributeGroup>
  2776.     <xs:element name="footnote-body">
  2777.         <xs:annotation>
  2778.             <xs:documentation>This is used to generate the footnote content.</xs:documentation>
  2779.         </xs:annotation>
  2780.         <xs:complexType>
  2781.             <xs:sequence>
  2782.                 <xs:element maxOccurs="unbounded" ref="fo:blocks"/>
  2783.             </xs:sequence>
  2784.             <xs:attributeGroup ref="fo:fo.footnote-body-attlist"/>
  2785.         </xs:complexType>
  2786.     </xs:element>
  2787.     <xs:attributeGroup name="fo.footnote-body-attlist">
  2788.         <xs:attributeGroup ref="fo:block-properties"/>
  2789.     </xs:attributeGroup>
  2790.     <!-- =============================================================== -->
  2791.     <!-- Simple link. From the formatting point of view, it's nothing -->
  2792.     <!-- but a regular inline sequence. -->
  2793.     <!-- =============================================================== -->
  2794.     <xs:element name="basic-link" substitutionGroup="fo:basic-inlines">
  2795.         <xs:annotation>
  2796.             <xs:documentation>This is used for representing the start resource of a simple
  2797.                 one-directional single-target link. The object allows for traversal to the
  2798.                 destination resource, typically by clicking on any of the containing areas.</xs:documentation>
  2799.         </xs:annotation>
  2800.         <xs:complexType mixed="true">
  2801.             <xs:group minOccurs="0" maxOccurs="unbounded" ref="fo:mixed-level"/>
  2802.             <xs:attributeGroup ref="fo:fo.basic-link-attlist"/>
  2803.         </xs:complexType>
  2804.     </xs:element>
  2805.     <xs:attributeGroup name="fo.basic-link-attlist">
  2806.         <xs:attributeGroup ref="fo:inline-properties"/>
  2807.         <xs:attribute name="external-destination"/>
  2808.         <xs:attribute name="internal-destination"/>
  2809.         <xs:attribute name="indicate-destination">
  2810.             <xs:simpleType>
  2811.                 <xs:restriction base="xs:token">
  2812.                     <xs:enumeration value="true"/>
  2813.                     <xs:enumeration value="false"/>
  2814.                 </xs:restriction>
  2815.             </xs:simpleType>
  2816.         </xs:attribute>
  2817.         <xs:attribute name="show-destination">
  2818.             <xs:simpleType>
  2819.                 <xs:restriction base="xs:token">
  2820.                     <xs:enumeration value="replace"/>
  2821.                     <xs:enumeration value="new"/>
  2822.                 </xs:restriction>
  2823.             </xs:simpleType>
  2824.         </xs:attribute>
  2825.         <xs:attribute name="destination-placement-offset"/>
  2826.         <xs:attribute name="target-processing-context"/>
  2827.         <xs:attribute name="target-presentation-context"/>
  2828.         <xs:attribute name="target-stylesheet"/>
  2829.     </xs:attributeGroup>
  2830.     <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
  2831.     <!-- Wrappers and Markers. -->
  2832.     <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
  2833.     <!-- =============================================================== -->
  2834.     <!-- Wrapper. This may be useful but breaks every effort to validate -->
  2835.     <!-- content models for blocks and inlines. -->
  2836.     <!-- =============================================================== -->
  2837.     <xs:element name="wrapper" substitutionGroup="fo:wrappers">
  2838.         <xs:annotation>
  2839.             <xs:documentation>This formatting object is used to specify inherited properties for a
  2840.                 group of formatting objects.</xs:documentation>
  2841.         </xs:annotation>
  2842.         <xs:complexType mixed="true">
  2843.             <xs:group minOccurs="0" maxOccurs="unbounded" ref="fo:mixed-level"/>
  2844.             <xs:attributeGroup ref="fo:fo.wrapper-attlist"/>
  2845.         </xs:complexType>
  2846.     </xs:element>
  2847.     <xs:attributeGroup name="fo.wrapper-attlist">
  2848.         <xs:attribute name="id"/>
  2849.         <xs:attribute ref="rx:key"/>
  2850.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  2851.     </xs:attributeGroup>
  2852.     <!-- =============================================================== -->
  2853.     <!-- Marker. This element may embrace any content but cannot pass -->
  2854.     <!-- properties to its children; so, it may not have features other -->
  2855.     <!-- than marker-class-name. -->
  2856.     <!-- =============================================================== -->
  2857.     <xs:element name="marker" substitutionGroup="fo:wrappers">
  2858.         <xs:annotation>
  2859.             <xs:documentation>This is used in conjunction with fo:retrieve-marker to produce running
  2860.                 headers or footers.</xs:documentation>
  2861.         </xs:annotation>
  2862.         <xs:complexType mixed="true">
  2863.             <xs:group minOccurs="0" maxOccurs="unbounded" ref="fo:mixed-level"/>
  2864.             <xs:attributeGroup ref="fo:fo.marker-attlist"/>
  2865.         </xs:complexType>
  2866.     </xs:element>
  2867.     <xs:attributeGroup name="fo.marker-attlist">
  2868.         <xs:attribute name="marker-class-name"/>
  2869.     </xs:attributeGroup>
  2870.     <!-- =============================================================== -->
  2871.     <!-- Marker retrieval. -->
  2872.     <!-- =============================================================== -->
  2873.     <xs:element name="retrieve-marker" substitutionGroup="fo:wrappers">
  2874.         <xs:annotation>
  2875.             <xs:documentation>This is used in conjunction with fo:marker to produce running headers
  2876.                 or footers. </xs:documentation>
  2877.         </xs:annotation>
  2878.         <xs:complexType>
  2879.             <xs:attributeGroup ref="fo:fo.retrieve-marker-attlist"/>
  2880.         </xs:complexType>
  2881.     </xs:element>
  2882.     <xs:attributeGroup name="fo.retrieve-marker-attlist">
  2883.         <xs:attribute name="retrieve-class-name"/>
  2884.         <xs:attribute name="retrieve-position">
  2885.             <xs:simpleType>
  2886.                 <xs:restriction base="xs:token">
  2887.                     <xs:enumeration value="first-starting-within-page"/>
  2888.                     <xs:enumeration value="first-including-carryover"/>
  2889.                     <xs:enumeration value="last-starting-within-page"/>
  2890.                     <xs:enumeration value="last-ending-within-page"/>
  2891.                 </xs:restriction>
  2892.             </xs:simpleType>
  2893.         </xs:attribute>
  2894.         <xs:attribute name="retrieve-boundary">
  2895.             <xs:simpleType>
  2896.                 <xs:restriction base="xs:token">
  2897.                     <xs:enumeration value="page"/>
  2898.                     <xs:enumeration value="page-sequence"/>
  2899.                     <xs:enumeration value="document"/>
  2900.                 </xs:restriction>
  2901.             </xs:simpleType>
  2902.         </xs:attribute>
  2903.     </xs:attributeGroup>
  2904.     <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
  2905.     <!-- Multistate stuff. This section is the least developed in the -->
  2906.     <!-- whole DTD, and most solutions are arbitrary. We beg thy pardon. -->
  2907.     <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
  2908.     <!-- =============================================================== -->
  2909.     <!-- Switch. This is a pure logical operator; no formatting may be -->
  2910.     <!-- conveyed through it. -->
  2911.     <!-- =============================================================== -->
  2912.     <xs:element name="multi-switch" substitutionGroup="fo:wrappers">
  2913.         <xs:annotation>
  2914.             <xs:documentation>This wraps the specification of alternative sub-trees of formatting
  2915.                 objects (each sub-tree being within an fo:multi-case), and controls the switching
  2916.                 (activated via fo:multi-toggle) from one alternative to another.</xs:documentation>
  2917.         </xs:annotation>
  2918.         <xs:complexType>
  2919.             <xs:sequence>
  2920.                 <xs:element maxOccurs="unbounded" ref="fo:multi-case"/>
  2921.             </xs:sequence>
  2922.             <xs:attributeGroup ref="fo:fo.multi-switch-attlist"/>
  2923.         </xs:complexType>
  2924.     </xs:element>
  2925.     <xs:attributeGroup name="fo.multi-switch-attlist">
  2926.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  2927.         <xs:attribute name="id"/>
  2928.         <xs:attribute ref="rx:key"/>
  2929.         <xs:attribute name="auto-restore">
  2930.             <xs:simpleType>
  2931.                 <xs:restriction base="xs:token">
  2932.                     <xs:enumeration value="true"/>
  2933.                     <xs:enumeration value="false"/>
  2934.                 </xs:restriction>
  2935.             </xs:simpleType>
  2936.         </xs:attribute>
  2937.     </xs:attributeGroup>
  2938.     <!-- =============================================================== -->
  2939.     <!-- Single case. Block-level formatting may be conveyed. -->
  2940.     <!-- =============================================================== -->
  2941.     <xs:element name="multi-case">
  2942.         <xs:annotation>
  2943.             <xs:documentation>This is used to contain (within an fo:multi-switch) each alternative
  2944.                 sub-tree of formatting objects among which the parent fo:multi-switch will choose
  2945.                 one to show and will hide the rest.</xs:documentation>
  2946.         </xs:annotation>
  2947.         <xs:complexType mixed="true">
  2948.             <xs:group minOccurs="0" maxOccurs="unbounded" ref="fo:mixed-level"/>
  2949.             <xs:attributeGroup ref="fo:fo.multi-case-attlist"/>
  2950.         </xs:complexType>
  2951.     </xs:element>
  2952.     <xs:attributeGroup name="fo.multi-case-attlist">
  2953.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  2954.         <xs:attribute name="id"/>
  2955.         <xs:attribute ref="rx:key"/>
  2956.         <xs:attribute name="starting-state"/>
  2957.         <xs:attribute name="case-name"/>
  2958.         <xs:attribute name="case-title"/>
  2959.     </xs:attributeGroup>
  2960.     <!-- =============================================================== -->
  2961.     <!-- Toggle. This is a typical inline. -->
  2962.     <!-- =============================================================== -->
  2963.     <xs:element name="multi-toggle" substitutionGroup="fo:basic-inlines">
  2964.         <xs:annotation>
  2965.             <xs:documentation>This is typically used to establish an area that when actuated (for
  2966.                 example implemented as "clicked"), has the effect of switching from one
  2967.                 fo:multi-case to another. The "switch-to" property value of the fo:multi-toggle
  2968.                 typically matches the "case-name" property value of the fo:multi-case to switch to.</xs:documentation>
  2969.         </xs:annotation>
  2970.         <xs:complexType mixed="true">
  2971.             <xs:group minOccurs="0" maxOccurs="unbounded" ref="fo:inlines"/>
  2972.             <xs:attributeGroup ref="fo:fo.multi-toggle-attlist"/>
  2973.         </xs:complexType>
  2974.     </xs:element>
  2975.     <xs:attributeGroup name="fo.multi-toggle-attlist">
  2976.         <xs:attributeGroup ref="fo:inheritable-properties"/>
  2977.         <xs:attribute name="id"/>
  2978.         <xs:attribute ref="rx:key"/>
  2979.         <xs:attribute name="switch-to"/>
  2980.     </xs:attributeGroup>
  2981.     <!-- =============================================================== -->
  2982.     <!-- Multi-properties is listed among block-level elements. -->
  2983.     <!-- Formatting common to all property sets can be specified here; -->
  2984.     <!-- we expect it to be block-level only. -->
  2985.     <!-- =============================================================== -->
  2986.     <xs:element name="multi-properties" substitutionGroup="fo:wrappers">
  2987.         <xs:annotation>
  2988.             <xs:documentation>This is used to switch between two or more property sets that are
  2989.                 associated with a given portion of content.</xs:documentation>
  2990.         </xs:annotation>
  2991.         <xs:complexType>
  2992.             <xs:sequence>
  2993.                 <xs:element maxOccurs="unbounded" ref="fo:multi-property-set"/>
  2994.                 <xs:element ref="fo:wrapper"/>
  2995.             </xs:sequence>
  2996.             <xs:attributeGroup ref="fo:fo.multi-properties-attlist"/>
  2997.         </xs:complexType>
  2998.     </xs:element>
  2999.     <xs:attributeGroup name="fo.multi-properties-attlist">
  3000.         <xs:attributeGroup ref="fo:block-properties"/>
  3001.     </xs:attributeGroup>
  3002.     <!-- =============================================================== -->
  3003.     <!-- Multi property set. Since these are properties of a -->
  3004.     <!-- fo:multi-properties that is considered a block, we accept only -->
  3005.     <!-- block properties here. -->
  3006.     <!-- =============================================================== -->
  3007.     <xs:element name="multi-property-set">
  3008.         <xs:annotation>
  3009.             <xs:documentation>This auxiliary formatting object is used to specify an alternative set
  3010.                 of formatting properties that can be used to provide an alternate presentation of
  3011.                 the children flow objects of the fo:wrapper child of the parent of this fo:multi-property-set.</xs:documentation>
  3012.         </xs:annotation>
  3013.         <xs:complexType>
  3014.             <xs:attributeGroup ref="fo:fo.multi-property-set-attlist"/>
  3015.         </xs:complexType>
  3016.     </xs:element>
  3017.     <xs:attributeGroup name="fo.multi-property-set-attlist">
  3018.         <xs:attributeGroup ref="fo:block-properties"/>
  3019.         <xs:attribute name="active-state" use="required">
  3020.             <xs:simpleType>
  3021.                 <xs:restriction base="xs:token">
  3022.                     <xs:enumeration value="link"/>
  3023.                     <xs:enumeration value="visited"/>
  3024.                     <xs:enumeration value="active"/>
  3025.                     <xs:enumeration value="hover"/>
  3026.                     <xs:enumeration value="focus"/>
  3027.                 </xs:restriction>
  3028.             </xs:simpleType>
  3029.         </xs:attribute>
  3030.     </xs:attributeGroup>
  3031.     <xs:complexType name="any" mixed="true">
  3032.         <xs:sequence>
  3033.             <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
  3034.         </xs:sequence>
  3035.     </xs:complexType>
  3036. </xs:schema>
  3037.