OASIS Open Document Format for Office Applications (OpenDocument) TC

 View Only

Error corrected relax ng schema

  • 1.  Error corrected relax ng schema

    Posted 05-10-2004 16:18
     MHonArc v2.5.0b2 -->
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    office message

    [Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


    Subject: Error corrected relax ng schema


    Hi all,
    
    attached is an error corrected Relax-NG schema for the Open Office format.
    
    Best regards
    
    Michael
    
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
        OASIS Open Office Specification 1.0
        Draft 13, 22 Mar 2004
        Relax-NG Schema
    
        $Id: p-open-office-specification.xml,v 1.45 2004/03/22 09:29:48 mib Exp $
    
        © 2002-2004 OASIS Open
        © 1999-2004 Sun Microsystems, Inc.
    -->
    
    <grammar
        xmlns="http://relaxng.org/ns/structure/1.0";
        xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0";
    
        datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes";
    
        xmlns:office="urn:oasis:names:tc:openoffice:xmlns:office:1.0"
        xmlns:meta="urn:oasis:names:tc:openoffice:xmlns:meta:1.0"
        xmlns:config="urn:oasis:names:tc:openoffice:xmlns:config:1.0"
        xmlns:text="urn:oasis:names:tc:openoffice:xmlns:text:1.0"
        xmlns:table="urn:oasis:names:tc:openoffice:xmlns:table:1.0"
        xmlns:draw="urn:oasis:names:tc:openoffice:xmlns:drawing:1.0"
        xmlns:presentation="urn:oasis:names:tc:openoffice:xmlns:presentation:1.0"
        xmlns:dr3d="urn:oasis:names:tc:openoffice:xmlns:dr3d:1.0"
        xmlns:chart="urn:oasis:names:tc:openoffice:xmlns:chart:1.0"
        xmlns:form="urn:oasis:names:tc:openoffice:xmlns:form:1.0"
        xmlns:script="urn:oasis:names:tc:openoffice:xmlns:script:1.0"
        xmlns:style="urn:oasis:names:tc:openoffice:xmlns:style:1.0"
        xmlns:number="urn:oasis:names:tc:openoffice:xmlns:datastyle:1.0"
    
        xmlns:dc="http://purl.org/dc/elements/1.1/";
        xmlns:xlink="http://www.w3.org/1999/xlink";
        xmlns:math="http://www.w3.org/1998/Math/MathML";
        xmlns:fo="http://www.w3.org/1999/XSL/Format";
        xmlns:svg="http://www.w3.org/2000/svg";
    >
    <define name="office-process-content">
        <optional>
            <attribute name="office:process-content" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <start>
        <choice>
            <ref name="office-document"/>
            <ref name="office-document-content"/>
            <ref name="office-document-styles"/>
            <ref name="office-document-meta"/>
            <ref name="office-document-settings"/>
        </choice>
    </start>
    <define name="office-document">
        <element name="office:document">
            <ref name="office-document-attrs"/>
            <ref name="office-meta"/>
            <ref name="office-settings"/>
            <ref name="office-scripts"/>
            <ref name="office-font-face-decls"/>
            <ref name="office-styles"/>
            <ref name="office-automatic-styles"/>
            <ref name="office-master-styles"/>
            <ref name="office-body"/>
        </element>
    </define>
    <define name="office-document-content">
        <element name="office:document-content">
            <ref name="office-document-attrs"/>
            <ref name="office-scripts"/>
            <ref name="office-font-face-decls"/>
            <ref name="office-automatic-styles"/>
            <ref name="office-body"/>
        </element>
    </define>
    <define name="office-document-styles">
        <element name="office:document-styles">
            <ref name="office-document-attrs"/>
            <ref name="office-font-face-decls"/>
            <ref name="office-styles"/>
            <ref name="office-automatic-styles"/>
            <ref name="office-master-styles"/>
        </element>
    </define>
    <define name="office-document-meta">
        <element name="office:document-meta">
            <ref name="office-document-attrs"/>
            <ref name="office-meta"/>
        </element>
    </define>
    <define name="office-document-settings">
        <element name="office:document-settings">
            <ref name="office-document-attrs"/>
            <ref name="office-settings"/>
        </element>
    </define>
    <define name="office-document-attrs">
        <optional>
            <attribute name="office:version">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="office-meta">
        <optional>
            <element name="office:meta">
                <ref name="office-meta-content"/>
            </element>
        </optional>
    </define>
    
    <define name="office-meta-content">
        <ref name="anyElements"/>
    </define>
    
    <define name="office-meta-content-strict">
        <zeroOrMore>
            <ref name="office-meta-data"/>
        </zeroOrMore>
    </define>
    <define name="office-body">
        <element name="office:body">
            <ref name="office-body-content"/>
        </element>
    </define>
    <define name="office-body-content" combine="choice">
        <element name="office:text">
            <ref name="office-text-attlist"/>
            <ref name="office-text-content-prelude"/>
            <zeroOrMore>
                <ref name="office-text-content-main"/>
            </zeroOrMore>
            <ref name="office-text-content-epilogue"/>
        </element>
    </define>
    <define name="office-text-content-prelude">
        <ref name="office-forms"/>
        <ref name="text-tracked-changes"/>
        <ref name="text-decls"/>
        <ref name="table-decls"/>
    </define>
    <define name="office-text-content-main">
        <choice>
            <zeroOrMore>
                <ref name="text-content"/>
            </zeroOrMore>
            <group>
                <ref name="text-page-sequence"/>
                <zeroOrMore>
                    <ref name="draw-a"/>
                    <ref name="shape"/>
                </zeroOrMore>
            </group>
        </choice>
    </define>
    
    <define name="text-content">
        <choice>
            <ref name="text-h"/>
            <ref name="text-p"/>
            <ref name="text-list"/>
            <ref name="text-numbered-paragraph"/>
            <ref name="table-table"/>
            <ref name="draw-a"/>
            <ref name="text-section"/>
            <ref name="text-table-of-content"/>
            <ref name="text-illustration-index"/>
            <ref name="text-table-index"/>
            <ref name="text-object-index"/>
            <ref name="text-user-index"/>
            <ref name="text-alphabetical-index"/>
            <ref name="text-bibliography"/>
            <ref name="shape"/>
            <ref name="change-marks"/>
        </choice>
    </define>
    <define name="office-text-content-epilogue">
        <ref name="table-functions"/>
    </define>
    <define name="office-text-attlist" combine="interleave">
        <optional>
            <attribute name="text:global" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="office-body-content" combine="choice">
        <element name="office:drawing">
            <ref name="office-drawing-attlist"/>
            <ref name="office-drawing-content-prelude"/>
            <ref name="office-drawing-content-main"/>
            <ref name="office-drawing-content-epilogue"/>
        </element>
    </define>
    
    <define name="office-drawing-attlist">
        <empty/>
    </define>
    <define name="office-drawing-content-prelude">
        <ref name="text-decls"/>
        <ref name="table-decls"/>
    </define>
    <define name="office-drawing-content-main">
        <zeroOrMore>
            <ref name="draw-page"/>
        </zeroOrMore>
    </define>
    <define name="office-drawing-content-epilogue">
        <ref name="table-functions"/>
    </define>
    <define name="office-body-content" combine="choice">
        <element name="office:presentation">
            <ref name="office-presentation-attlist"/>
            <ref name="office-presentation-content-prelude"/>
            <ref name="office-presentation-content-main"/>
            <ref name="office-presentation-content-epilogue"/>
        </element>
    </define>
    
    <define name="office-presentation-attlist">
        <empty/>
    </define>
    <define name="office-presentation-content-prelude">
        <ref name="text-decls"/>
        <ref name="table-decls"/>
    </define>
    <define name="office-presentation-content-main">
        <zeroOrMore>
            <ref name="draw-page"/>
        </zeroOrMore>
    </define>
    <define name="office-presentation-content-epilogue">
        <ref name="presentation-settings"/>
        <ref name="table-functions"/>
    </define>
    <define name="office-body-content" combine="choice">
        <element name="office:spreadsheet">
            <ref name="office-spreadsheet-attlist"/>
            <ref name="office-spreadsheet-content-prelude"/>
            <ref name="office-spreadsheet-content-main"/>
            <ref name="office-spreadsheet-content-epilogue"/>
        </element>
    </define>
    <define name="office-spreadsheet-content-prelude">
        <optional>
            <ref name="table-tracked-changes"/>    
        </optional>
        <ref name="text-decls"/>
        <ref name="table-decls"/>
    </define>
    
    <define name="table-decls">
        <optional>
            <ref name="table-calculation-settings"/>    
        </optional>
        <optional>
            <ref name="table-content-validations"/>    
        </optional>
        <optional>
            <ref name="table-label-ranges"/>    
        </optional>
    </define>
    <define name="office-spreadsheet-content-main">
        <zeroOrMore>
            <ref name="table-table"/>
        </zeroOrMore>
    </define>
    <define name="office-spreadsheet-content-epilogue">
        <ref name="table-functions"/>    
    </define>
    
    <define name="table-functions">
        <optional>
            <ref name="table-named-expressions"/>    
        </optional>
        <optional>
            <ref name="table-database-ranges"/>    
        </optional>
        <optional>
            <ref name="table-data-pilot-tables"/>    
        </optional>
        <optional>
            <ref name="table-consolidation"/>    
        </optional>
        <optional>
            <ref name="table-dde-links"/>    
        </optional>
    </define>
    <define name="office-body-content" combine="choice">
        <element name="office:chart">
            <ref name="office-chart-attlist"/>
            <ref name="office-chart-content-prelude"/>
            <ref name="office-chart-content-main"/>
            <ref name="office-chart-content-epilogue"/>
        </element>
    </define>
    
    <define name="office-chart-attlist">
        <empty/>
    </define>
    <define name="office-chart-content-prelude">
        <ref name="text-decls"/>
        <ref name="table-decls"/>
    </define>
    <define name="office-chart-content-main">
        <ref name="chart-chart"/>
    </define>
    <define name="office-chart-content-epilogue">
        <ref name="table-functions"/>    
    </define>
    <define name="office-body-content" combine="choice">
        <element name="office:image">
            <ref name="office-image-attlist"/>
            <ref name="office-image-content-prelude"/>
            <ref name="office-image-content-main"/>
            <ref name="office-image-content-epilogue"/>
        </element>
    </define>
    
    <define name="office-image-attlist">
        <empty/>
    </define>
    <define name="office-image-content-prelude">
        <empty/>
    </define>
    <define name="office-image-content-main">
        <ref name="draw-frame"/>
    </define>
    <define name="office-image-content-epilogue">
        <empty/>
    </define>
    <define name="office-settings">
        <optional>
            <element name="office:settings">
                <oneOrMore>
                    <ref name="config-config-item-set"/>
                </oneOrMore>
            </element>
        </optional>
    </define>
    <define name="config-config-item-set">
        <element name="config:config-item-set">
            <ref name="config-config-item-set-attlist"/>
            <ref name="config-items"/>
        </element>
    </define>
    
    <define name="config-items">
        <oneOrMore>
            <choice>
                <ref name="config-config-item"/>
                <ref name="config-config-item-set"/>
                <ref name="config-config-item-map-named"/>
                <ref name="config-config-item-map-indexed"/>
            </choice>
        </oneOrMore>
    </define>
    <define name="config-config-item-set-attlist" combine="interleave">
        <attribute name="config:name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="config-config-item">
        <element name="config:config-item">
            <ref name="config-config-item-attlist"/>
            <text/>
        </element>
    </define>
    <define name="config-config-item-attlist" combine="interleave">
        <attribute name="config:name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="config-config-item-attlist" combine="interleave">
        <attribute name="config:type">
            <choice>
                <value>boolean</value>
                <value>short</value>
                <value>int</value>
                <value>long</value>
                <value>double</value>
                <value>string</value>
                <value>datetime</value>
                <value>base64Binary</value>
            </choice>
        </attribute>
    </define>
    <define name="config-config-item-map-indexed">
        <element name="config:config-item-map-indexed">
            <ref name="config-config-item-map-indexed-attlist"/>
            <oneOrMore>
                <ref name="config-config-item-map-entry"/>
            </oneOrMore>
        </element>
    </define>
    <define name="config-config-item-map-indexed-attlist" combine="interleave">
        <attribute name="config:name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="config-config-item-map-entry">
        <element name="config:config-item-map-entry">
            <ref name="config-config-item-map-entry-attlist"/>
            <ref name="config-items"/>
        </element>
    </define>
    <define name="config-config-item-map-entry-attlist" combine="interleave">
        <optional>
            <attribute name="config:name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="config-config-item-map-named">
        <element name="config:config-item-map-named">
            <ref name="config-config-item-map-named-attlist"/>
            <oneOrMore>
                <ref name="config-config-item-map-entry"/>
            </oneOrMore>
        </element>
    </define>
    <define name="config-config-item-map-named-attlist" combine="interleave">
        <attribute name="config:name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="office-scripts">
        <optional>
            <element name="office:scripts">
                <oneOrMore>
                    <ref name="office-script"/>
                </oneOrMore>
            </element>
        </optional>
    </define>
    <define name="office-script">
        <element name="office:script">
            <ref name="office-script-attlist"/>
            <mixed>
                <ref name="anyElements"/>
            </mixed>
        </element>
    </define>
    <define name="office-script-attlist">
        <attribute name="script:language">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="office-font-face-decls">
        <optional>
            <element name="office:font-face-decls">
                <zeroOrMore>
                    <ref name="style-font-face"/>
                </zeroOrMore>
            </element>
        </optional>
    </define>
    <define name="office-styles">
        <optional>
            <element name="office:styles">
                <interleave>
                    <ref name="styles"/>
                    <zeroOrMore>
                        <ref name="style-default-style"/>
                    </zeroOrMore>
                    <optional>
                        <ref name="text-outline-style"/>
                    </optional>
                    <zeroOrMore>
                        <ref name="text-notes-configuration"/>
                    </zeroOrMore>
                    <optional>
                        <ref name="text-bibliography-configuration"/>
                    </optional>
                    <optional>
                        <ref name="text-linenumbering-configuration"/>
                    </optional>
                    <zeroOrMore>
                        <ref name="draw-gradient"/>
                    </zeroOrMore>
                    <zeroOrMore>
                        <ref name="svg-linearGradient"/>
                    </zeroOrMore>
                    <zeroOrMore>
                        <ref name="svg-radialGradient"/>
                    </zeroOrMore>
                    <zeroOrMore>
                        <ref name="draw-hatch"/>
                    </zeroOrMore>
                    <zeroOrMore>
                        <ref name="draw-fill-image"/>
                    </zeroOrMore>
                    <zeroOrMore>
                        <ref name="draw-marker"/>
                    </zeroOrMore>
                    <zeroOrMore>
                        <ref name="draw-stroke-dash"/>
                    </zeroOrMore>
                    <zeroOrMore>
                        <ref name="draw-opacity"/>
                    </zeroOrMore>
                    <zeroOrMore>
                        <ref name="style-presentation-page-layout"/>
                    </zeroOrMore>
                </interleave>
            </element>
        </optional>
    </define>
    <define name="office-automatic-styles">
        <optional>
            <element name="office:automatic-styles">
                <interleave>
                    <ref name="styles"/>
                    <zeroOrMore>
                        <ref name="style-page-layout"/>
                    </zeroOrMore>
                </interleave>
            </element>
        </optional>
    </define>
    <define name="office-master-styles">
        <optional>
            <element name="office:master-styles">
                <interleave>
                    <zeroOrMore>
                        <ref name="style-master-page"/>
                    </zeroOrMore>
                    <optional>
                        <ref name="style-handout-master"/>
                    </optional>
                    <optional>
                        <ref name="draw-layer-set"/>
                    </optional>
                </interleave>
            </element>
        </optional>
    </define>
    
    <define name="styles">
        <zeroOrMore>
            <ref name="style-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="text-list-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-number-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-currency-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-percentage-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-date-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-time-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-boolean-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="number-text-style"/>
        </zeroOrMore>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="meta:generator">
            <ref name="string"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="dc:title">
            <ref name="string"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="dc:description">
            <ref name="string"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="dc:subject">
            <ref name="string"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="meta:keyword">
            <ref name="string"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="meta:initial-creator">
            <ref name="string"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <ref name="dc-creator"/>
    </define>
    <define name="dc-creator">
        <element name="dc:creator">
            <ref name="string"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="meta:printed-by">
            <ref name="string"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="meta:creation-date">
            <ref name="dateTime"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <ref name="dc-date"/>
    </define>
    <define name="dc-date">
        <element name="dc:date">
            <ref name="dateTime"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="meta:print-date">
            <ref name="dateTime"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="meta:template">
            <attribute name="xlink:href">
                <ref name="anyURI"/>
            </attribute>
            <optional>
                <attribute name="xlink:type" a:defaultValue="simple">
                    <value>simple</value>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:actuate" a:defaultValue="onRequest">
                    <value>onRequest</value>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:title">
                    <ref name="string"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="meta:date">
                    <ref name="dateTime"/>
                </attribute>
            </optional>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="meta:auto-reload">
            <optional>
                <attribute name="xlink:type" a:defaultValue="simple">
                    <value>simple</value>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:show" a:defaultValue="replace">
                    <value>replace</value>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:actuate" a:defaultValue="onLoad">
                    <value>onLoad</value>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:href">
                    <ref name="anyURI"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="meta:delay">
                    <ref name="duration"/>
                </attribute>
            </optional>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="meta:hyperlink-behaviour">
            <optional>
                <attribute name="office:target-frame-name">
                    <ref name="targetFrameName"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:show">
                    <choice>
                        <value>new</value>
                        <value>replace</value>
                    </choice>
                </attribute>
            </optional>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="dc:language">
            <ref name="language"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="meta:editing-cycles">
            <ref name="nonNegativeInteger"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="meta:editing-duration">
            <ref name="duration"/>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="meta:document-statistic">
            <optional>
                <attribute name="meta:page-count">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="meta:table-count">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="meta:draw-count">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="meta:image-count">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="meta:ole-object-count">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="meta:paragraph-count">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="meta:word-count">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="meta:character-count">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="meta:row-count">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="meta:cell-count">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="meta:object-count">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
        </element>
    </define>
    <define name="office-meta-data" combine="choice">
        <element name="meta:user-defined">
            <attribute name="meta:name">
                <ref name="string"/>
            </attribute>
            <choice>
                <group>
                    <attribute name="meta:value-type">
                        <value>float</value>
                    </attribute>
                    <ref name="double"/>
                </group>
                <group>
                    <attribute name="meta:value-type">
                        <value>date</value>
                    </attribute>
                    <ref name="dateOrDateTime"/>
                </group>
                <group>
                    <attribute name="meta:value-type">
                        <value>time</value>
                    </attribute>
                    <ref name="duration"/>
                </group>
                <group>
                    <attribute name="meta:value-type">
                        <value>boolean</value>
                    </attribute>
                    <ref name="boolean"/>
                </group>
                <group>
                    <attribute name="meta:value-type">
                        <value>string</value>
                    </attribute>
                    <ref name="string"/>
                </group>
                <text/>
            </choice>
        </element>
    </define>
    <define name="text-h">
        <element name="text:h">
            <ref name="heading-attrs"/>
            <ref name="paragraph-attrs"/>
            <optional>
                <ref name="text-number"/>
            </optional>
            <zeroOrMore>
                <ref name="paragraph-content"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="heading-attrs" combine="interleave">
        <attribute name="text:outline-level">
            <ref name="positiveInteger"/>
        </attribute>
    </define>
    <define name="heading-attrs" combine="interleave">
        <optional>
            <attribute name="text:restart-numbering" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="heading-attrs" combine="interleave">
        <optional>
            <attribute name="text:start-value">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="text-number">
        <element name="text:number">
            <ref name="string"/>
        </element>
    </define>
    <define name="text-p">
        <element name="text:p">
            <ref name="paragraph-attrs"/>
            <zeroOrMore>
                <ref name="paragraph-content"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="paragraph-attrs">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:class-names">
                <ref name="styleName"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:cond-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="text-page-sequence">
        <element name="text:page-sequence">
            <oneOrMore>
                <ref name="text-page"/>
            </oneOrMore>
        </element>
    </define>
    <define name="text-page">
        <element name="text:page">
            <ref name="text-page-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="text-page-attlist">
        <attribute name="text:master-page-name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="text-list">
        <element name="text:list">
            <ref name="text-list-attr"/>
            <optional>
                <ref name="text-list-header"/>
            </optional>
            <zeroOrMore>
                <ref name="text-list-item"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-list-attr" combine="interleave">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="text-list-attr" combine="interleave">
        <optional>
            <attribute name="text:continue-numbering">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-list-item">
        <element name="text:list-item">
            <ref name="text-list-item-attr"/>
            <ref name="text-list-item-content"/>
        </element>
    </define>
    <define name="text-list-item-content">
        <optional>
            <ref name="text-number"/>
        </optional>
        <zeroOrMore>
            <choice>
                <ref name="text-p"/>
                <ref name="text-h"/>
                <ref name="text-list"/>
            </choice>
        </zeroOrMore>
    </define>
    <define name="text-list-item-attr" combine="interleave">
        <optional>
            <attribute name="text:restart-numbering" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-list-item-attr" combine="interleave">
        <optional>
            <attribute name="text:start-value">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="text-list-header">
        <element name="text:list-header">
            <ref name="text-list-item-content"/>
        </element>
    </define>
    <define name="text-numbered-paragraph">
        <element name="text:numbered-paragraph">
            <ref name="text-numbered-paragraph-attr"/>
            <optional>
                <ref name="text-number"/>
            </optional>
            <choice>
                <ref name="text-p"/>
                <ref name="text-h"/>
            </choice>
        </element>
    </define>
    <define name="text-numbered-paragraph-attr" combine="interleave">
        <attribute name="text:level" a:defaultValue="1">
            <ref name="positiveInteger"/>
        </attribute>
    </define>
    <define name="text-numbered-paragraph-attr" combine="interleave">
        <ref name="text-list-attr"/>
    </define>
    <define name="text-numbered-paragraph-attr" combine="interleave">
        <ref name="text-list-item-attr"/>
    </define>
    <define name="text-section">
        <element name="text:section">
            <ref name="text-section-attr"/>
            <choice>
                <ref name="text-section-source"/>
                <ref name="text-section-source-dde"/>
                <empty/>
            </choice>
            <zeroOrMore>
                <ref name="text-content"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-section-attr" combine="interleave">
        <ref name="sectionAttr"/>
    </define>
    <define name="sectionAttr" combine="interleave">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="sectionAttr" combine="interleave">
        <attribute name="text:name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="sectionAttr" combine="interleave">
        <optional>
            <attribute name="text:protected">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="sectionAttr" combine="interleave">
        <optional>
            <attribute name="text:protection-key">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="text-section-attr" combine="interleave">
        <choice>
            <attribute name="text:display">
                <choice>
                    <value>true</value>
                    <value>none</value>
                </choice>
            </attribute>
            <group>
                <attribute name="text:display">
                    <value>condition</value>
                </attribute>
                <attribute name="text:condition">
                    <ref name="string"/>
                </attribute>
            </group>
            <empty/>
        </choice>
    </define>
    <define name="text-section-source">
        <element name="text:section-source">
            <ref name="text-section-source-attr"/>
        </element>
    </define>
    <define name="text-section-source-attr" combine="interleave">
        <optional>
            <attribute name="xlink:href">
                <ref name="anyURI"/>
            </attribute>
            <optional>
                <attribute name="xlink:type" a:defaultValue="simple">
                    <value>simple</value>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:show" a:defaultValue="embed">
                    <value>embed</value>
                </attribute>
            </optional>
        </optional>
    </define>
    <define name="text-section-source-attr" combine="interleave">
        <optional>
            <attribute name="text:section-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="text-section-source-attr" combine="interleave">
        <optional>
            <attribute name="text:filter-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="text-section-source-dde">
        <ref name="office-dde-source"/>
    </define>
    <define name="text-tracked-changes">
        <optional>
            <element name="text:tracked-changes">
                <ref name="text-tracked-changes-attr"/>
                <zeroOrMore>
                    <ref name="text-changed-region"/>
                </zeroOrMore>
            </element>
        </optional>
    </define>
    <define name="text-tracked-changes-attr" combine="interleave">
        <optional>
            <attribute name="text:track-changes" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-changed-region">
        <element name="text:changed-region">
            <ref name="text-changed-region-attr"/>
            <ref name="text-changed-region-content"/>
        </element>
    </define>
    <define name="text-changed-region-attr" combine="interleave">
        <attribute name="text:id">
            <ref name="ID"/>
        </attribute>
    </define>
    <define name="text-changed-region-content" combine="choice">
        <element name="text:insertion">
            <ref name="office-change-info"/>
        </element>
    </define>
    <define name="text-changed-region-content" combine="choice">
        <element name="text:deletion">
            <ref name="office-change-info"/>
            <zeroOrMore>
                <ref name="text-content"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-changed-region-content" combine="choice">
        <element name="text:format-change">
            <ref name="office-change-info"/>
        </element>
    </define>
    <define name="change-marks">
        <choice>
            <element name="text:change">
                <ref name="change-mark-attr"/>
            </element>
            <element name="text:change-start">
                <ref name="change-mark-attr"/>
            </element>
            <element name="text:change-end">
                <ref name="change-mark-attr"/>
            </element>
        </choice>
    </define>
    <define name="change-mark-attr">
        <attribute name="text:change-id">
            <ref name="IDREF"/>
        </attribute>
    </define>
    <define name="text-decls">
        <optional>
            <element name="text:variable-decls">
                <zeroOrMore>
                    <ref name="text-variable-decl"/>
                </zeroOrMore>
            </element>
        </optional>
        <optional>
            <element name="text:sequence-decls">
                <zeroOrMore>
                    <ref name="text-sequence-decl"/>
                </zeroOrMore>
            </element>
        </optional>
        <optional>
            <element name="text:user-field-decls">
                <zeroOrMore>
                    <ref name="text-user-field-decl"/>
                </zeroOrMore>
            </element>
        </optional>
        <optional>
            <element name="text:dde-connection-decls">
                <zeroOrMore>
                    <ref name="text-dde-connection-decl"/>
                </zeroOrMore>
            </element>
        </optional>
        <optional>
            <ref name="text-alphabetical-index-auto-mark-file"/>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <text/>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:s">
            <optional>
                <attribute name="text:c">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:tab">
            <ref name="text-tab-attr"/>
        </element>
    </define>
    <define name="text-tab-attr">
        <optional>
            <attribute name="text:tab-ref">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:line-break">
            <empty/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:span">
            <optional>
                <attribute name="text:style-name">
                    <ref name="styleName"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="text:class-names">
                    <ref name="styleNames"/>
                </attribute>
            </optional>
            <zeroOrMore>
                <ref name="paragraph-content"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:a">
            <ref name="text-a-attlist"/>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <ref name="paragraph-content"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-a-attlist" combine="interleave">
        <optional>
            <attribute name="office:name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="text-a-attlist" combine="interleave">
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
        <optional>
            <attribute name="xlink:type" a:defaultValue="simple">
                <value>simple</value>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate" a:defaultValue="onRequest">
                <value>onRequest</value>
            </attribute>
        </optional>
    </define>
    <define name="text-a-attlist" combine="interleave">
        <optional>
            <attribute name="office:target-frame-name">
                <ref name="targetFrameName"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:show">
                <choice>
                    <value>new</value>
                    <value>replace</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="text-a-attlist" combine="interleave">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:visited-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <choice>
            <element name="text:bookmark">
                <attribute name="text:name">
                    <ref name="string"/>
                </attribute>
            </element>
            <element name="text:bookmark-start">
                <attribute name="text:name">
                    <ref name="string"/>
                </attribute>
            </element>
            <element name="text:bookmark-end">
                <attribute name="text:name">
                    <ref name="string"/>
                </attribute>
            </element>
        </choice>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:reference-mark">
            <attribute name="text:name">
                <ref name="string"/>
            </attribute>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <choice>
            <element name="text:reference-mark-start">
                <attribute name="text:name">
                    <ref name="string"/>
                </attribute>
            </element>
            <element name="text:reference-mark-end">
                <attribute name="text:name">
                    <ref name="string"/>
                </attribute>
            </element>
        </choice>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:note">
            <ref name="text-note-class"/>
            <optional>
                <attribute name="text:id">
                    <ref name="string"/>
                </attribute>
            </optional>
            <element name="text:note-citation">
                <optional>
                    <attribute name="text:label">
                        <ref name="string"/>
                    </attribute>
                </optional>
                <text/>
            </element>
            <element name="text:note-body">
                <zeroOrMore>
                    <ref name="text-content"/>
                </zeroOrMore>
            </element>
        </element>
    </define>
    <define name="text-note-class">
        <attribute name="text:note-class">
            <choice>
                <value>footnote</value>
                <value>endnote</value>
            </choice>
        </attribute>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:ruby">
            <optional>
                <attribute name="text:style-name">
                    <ref name="styleName"/>
                </attribute>
            </optional>
            <element name="text:ruby-base">
                <ref name="paragraph-content"/>
            </element>
            <element name="text:ruby-text">
                <optional>
                    <attribute name="text:style-name">
                        <ref name="styleName"/>
                    </attribute>
                </optional>
                <text/>
            </element>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <ref name="office-annotation"/>
    </define>
    <define name="paragraph-content" combine="choice">
        <ref name="change-marks"/>
    </define>
    <define name="paragraph-content" combine="choice">
        <ref name="shape"/>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:date">
            <ref name="text-date-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-date-attlist" combine="interleave">
        <interleave>
            <ref name="field-fixed"/>
            <ref name="field-data-style-name"/>
        </interleave>
    </define>
    <define name="text-date-attlist" combine="interleave">
        <optional>
            <attribute name="text:date-value">
                <ref name="dateOrDateTime"/>
            </attribute>
        </optional>
    </define>
    <define name="text-date-attlist" combine="interleave">
        <optional>
            <attribute name="text:date-adjust">
                <ref name="duration"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:time">
            <ref name="text-time-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-time-attlist" combine="interleave">
        <interleave>
            <ref name="field-fixed"/>
            <ref name="field-data-style-name"/>
        </interleave>
    </define>
    <define name="text-time-attlist" combine="interleave">
        <optional>
            <attribute name="text:time-value">
                <ref name="timeOrDateTime"/>
            </attribute>
        </optional>
    </define>
    <define name="text-time-attlist" combine="interleave">
        <optional>
            <attribute name="text:time-adjust">
                <ref name="duration"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:page-number">
            <ref name="text-page-number-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-page-number-attlist" combine="interleave">
        <interleave>
            <ref name="field-num-format"/>
            <ref name="field-fixed"/>
        </interleave>
    </define>
    <define name="text-page-number-attlist" combine="interleave">
        <optional>
            <attribute name="text:page-adjust">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="text-page-number-attlist" combine="interleave">
        <optional>
            <attribute name="text:select-page">
                <choice>
                    <value>previous</value>
                    <value>current</value>
                    <value>next</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:page-continuation">
            <ref name="text-page-continuation-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-page-continuation-attlist" combine="interleave">
        <attribute name="text:select-page">
            <choice>
                <value>previous</value>
                <value>next</value>
            </choice>
        </attribute>
    </define>
    <define name="text-page-continuation-attlist" combine="interleave">
        <optional>
            <attribute name="text:string-value">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-firstname">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-lastname">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-initials">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-title">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-position">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-email">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-phone-private">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-fax">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-company">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-phone-work">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-street">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-city">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-postal-code">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-country">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sender-state-or-province">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:author-name">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:author-initials">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:chapter">
            <ref name="text-chapter-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-chapter-attlist" combine="interleave">
        <attribute name="text:display">
            <choice>
                <value>name</value>
                <value>number</value>
                <value>number-and-name</value>
                <value>plain-number-and-name</value>
                <value>plain-number</value>
            </choice>
        </attribute>
    </define>
    <define name="text-chapter-attlist" combine="interleave">
        <attribute name="text:outline-level">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:file-name">
            <ref name="text-file-name-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-file-name-attlist" combine="interleave">
        <optional>
            <attribute name="text:display">
                <choice>
                    <value>full</value>
                    <value>path</value>
                    <value>name</value>
                    <value>name-and-extension</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="text-file-name-attlist" combine="interleave">
        <ref name="field-fixed"/>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:template-name">
            <ref name="text-template-name-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-template-name-attlist">
        <optional>
            <attribute name="text:display">
                <choice>
                    <value>full</value>
                    <value>path</value>
                    <value>name</value>
                    <value>name-and-extension</value>
                    <value>area</value>
                    <value>title</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="text-variable-decl">
        <element name="text:variable-decl">
            <ref name="field-name"/>
            <ref name="common-value-type-attlist"/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:variable-set">
            <interleave>
                <ref name="field-name"/>
                <ref name="field-formula"/>
                <ref name="common-value-and-type-attlist"/>
                <ref name="field-display-value-none"/>
                <ref name="field-data-style-name"/>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:variable-get">
            <interleave>
                <ref name="field-name"/>
                <ref name="field-display-value-formula"/>
                <ref name="field-data-style-name"/>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:variable-input">
            <interleave>
                <ref name="field-name"/>
                <ref name="field-description"/>
                <ref name="common-value-type-attlist"/>
                <ref name="field-display-value-none"/>
                <ref name="field-data-style-name"/>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="text-user-field-decl">
        <element name="text:user-field-decl">
            <ref name="field-name"/>
            <optional>
                <ref name="field-formula"/>
            </optional>
            <ref name="common-value-and-type-attlist"/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:user-field-get">
            <interleave>
                <ref name="field-name"/>
                <ref name="field-display-value-formula-none"/>
                <ref name="field-data-style-name"/>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:user-field-input">
            <interleave>
                <ref name="field-name"/>
                <ref name="field-description"/>
                <ref name="field-data-style-name"/>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="text-sequence-decl">
        <element name="text:sequence-decl">
            <ref name="text-sequence-decl-attlist"/>
        </element>
    </define>
    <define name="text-sequence-decl-attlist" combine="interleave">
        <ref name="field-name"/>
    </define>
    <define name="text-sequence-decl-attlist" combine="interleave">
        <attribute name="text:display-outline-level">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </define>
    <define name="text-sequence-decl-attlist" combine="interleave">
        <optional>
            <attribute name="text:separation-character">
                <ref name="character"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sequence">
            <interleave>
                <ref name="field-name"/>
                <ref name="field-formula"/>
                <ref name="field-num-format"/>
                <ref name="text-sequence-ref-name"/>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="text-sequence-ref-name">
        <optional>
            <attribute name="text:ref-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:expression">
            <interleave>
                <ref name="field-formula"/>
                <optional>
                    <ref name="common-value-and-type-attlist"/>
                </optional>
                <ref name="field-display-value-formula"/>
                <ref name="field-data-style-name"/>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:text-input">
            <ref name="field-description"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:initial-creator">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:creation-date">
            <interleave>
                <ref name="field-fixed"/>
                <ref name="field-data-style-name"/>
                <optional>
                    <attribute name="text:date-value">
                        <ref name="dateOrDateTime"/>
                    </attribute>
                </optional>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:creation-time">
            <interleave>
                <ref name="field-fixed"/>
                <ref name="field-data-style-name"/>
                <optional>
                    <attribute name="text:time-value">
                        <ref name="timeOrDateTime"/>
                    </attribute>
                </optional>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:description">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:user-defined">
            <interleave>
                <ref name="field-fixed"/>
                <attribute name="text:name">
                    <ref name="string"/>
                </attribute>
                <ref name="field-data-style-name"/>
                <optional>
                    <attribute name="office:value">
                        <ref name="double"/>
                    </attribute>
                </optional>
                <optional>
                    <attribute name="office:date-value">
                        <ref name="dateOrDateTime"/>
                    </attribute>
                </optional>
                <optional>
                    <attribute name="office:time-value">
                        <ref name="duration"/>
                    </attribute>
                </optional>
                <optional>
                    <attribute name="office:boolean-value">
                        <ref name="boolean"/>
                    </attribute>
                </optional>
                <optional>
                    <attribute name="office:string-value">
                        <ref name="string"/>
                    </attribute>
                </optional>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:print-time">
            <interleave>
                <ref name="field-fixed"/>
                <ref name="field-data-style-name"/>
                <optional>
                    <attribute name="text:time-value">
                        <ref name="time"/>
                    </attribute>
                </optional>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:print-date">
            <interleave>
                <ref name="field-fixed"/>
                <ref name="field-data-style-name"/>
                <optional>
                    <attribute name="text:date-value">
                        <ref name="date"/>
                    </attribute>
                </optional>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:printed-by">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:title">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:subject">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:keywords">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:editing-cycles">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:editing-duration">
            <interleave>
                <ref name="field-fixed"/>
                <ref name="field-data-style-name"/>
                <optional>
                    <attribute name="text:duration">
                        <ref name="duration"/>
                    </attribute>
                </optional>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:modification-time">
            <interleave>
                <ref name="field-fixed"/>
                <ref name="field-data-style-name"/>
                <optional>
                    <attribute name="text:time-value">
                        <ref name="time"/>
                    </attribute>
                </optional>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:modification-date">
            <interleave>
                <ref name="field-fixed"/>
                <ref name="field-data-style-name"/>
                <optional>
                    <attribute name="text:date-value">
                        <ref name="date"/>
                    </attribute>
                </optional>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:creator">
            <ref name="field-fixed"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element>
            <choice>
                <name>text:page-count</name>
                <name>text:paragraph-count</name>
                <name>text:word-count</name>
                <name>text:character-count</name>
                <name>text:table-count</name>
                <name>text:image-count</name>
                <name>text:object-count</name>
            </choice>
            <ref name="field-num-format"/>
            <text/>
        </element>
    </define>
    <define name="field-database-table">
        <interleave>
            <attribute name="text:database-name">
                <ref name="string"/>
            </attribute>
            <attribute name="text:table-name">
                <ref name="string"/>
            </attribute>
            <optional>
                <attribute name="text:table-type">
                    <choice>
                        <value>table</value>
                        <value>query</value>
                        <value>command</value>
                    </choice>
                </attribute>
            </optional>
        </interleave>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:database-display">
            <ref name="text-database-display-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-database-display-attlist" combine="interleave">
        <ref name="field-database-table"/>
    </define>
    <define name="text-database-display-attlist" combine="interleave">
        <ref name="field-data-style-name"/>
    </define>
    <define name="text-database-display-attlist" combine="interleave">
        <attribute name="text:column-name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:database-next">
            <ref name="text-database-next-attlist"/>
        </element>
    </define>
    <define name="text-database-next-attlist" combine="interleave">
        <ref name="field-database-table"/>
    </define>
    <define name="text-database-next-attlist" combine="interleave">
        <optional>
            <attribute name="text:condition">
                <ref name="formula"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:database-row-select">
            <ref name="text-database-row-select-attlist"/>
        </element>
    </define>
    <define name="text-database-row-select-attlist" combine="interleave">
        <ref name="field-database-table"/>
    </define>
    <define name="text-database-row-select-attlist" combine="interleave">
        <optional>
            <attribute name="text:condition">
                <ref name="formula"/>
            </attribute>
        </optional>
    </define>
    <define name="text-database-row-select-attlist" combine="interleave">
        <optional>
            <attribute name="text:row-number">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:database-row-number">
            <interleave>
                <ref name="field-database-table"/>
                <ref name="field-num-format"/>
                <optional>
                    <attribute name="text:value">
                        <ref name="nonNegativeInteger"/>
                    </attribute>
                </optional>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:database-name">
            <ref name="field-database-table"/>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:page-variable-set">
            <ref name="text-set-page-variable-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-set-page-variable-attlist" combine="interleave">
        <optional>
            <attribute name="text:active">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-set-page-variable-attlist" combine="interleave">
        <optional>
            <attribute name="text:page-adjust">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:page-variable-get">
            <ref name="text-get-page-variable-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-get-page-variable-attlist" combine="interleave">
        <ref name="field-num-format"/>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:placeholder">
            <ref name="text-placeholder-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-placeholder-attlist" combine="interleave">
        <attribute name="text:placeholder-type">
            <choice>
                <value>text</value>
                <value>table</value>
                <value>text-box</value>
                <value>image</value>
                <value>object</value>
            </choice>
        </attribute>
    </define>
    <define name="text-placeholder-attlist" combine="interleave">
        <ref name="field-description"/>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:conditional-text">
            <ref name="text-conditional-text-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-conditional-text-attlist" combine="interleave">
        <attribute name="text:condition">
            <ref name="formula"/>
        </attribute>
    </define>
    <define name="text-conditional-text-attlist" combine="interleave">
        <attribute name="text:string-value-if-true">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="text-conditional-text-attlist" combine="interleave">
        <attribute name="text:string-value-if-false">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="text-conditional-text-attlist" combine="interleave">
        <optional>
            <attribute name="text:current-value">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:hidden-text">
            <ref name="text-hidden-text-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-hidden-text-attlist" combine="interleave">
        <attribute name="text:condition">
            <ref name="formula"/>
        </attribute>
    </define>
    <define name="text-hidden-text-attlist" combine="interleave">
        <attribute name="text:string-value">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="text-hidden-text-attlist" combine="interleave">
        <optional>
            <attribute name="text:is-hidden">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element>
            <choice>
                <name>text:reference-ref</name>
                <name>text:bookmark-ref</name>
                <name>text:note-ref</name>
            </choice>
            <interleave>
                <ref name="text-common-ref-content"/>
                <ref name="text-ref-content"/>
            </interleave>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:sequence-ref">
            <interleave>
                <ref name="text-common-ref-content"/>
                <ref name="text-sequence-ref-content"/>
            </interleave>
        </element>
    </define>
    <define name="text-common-ref-content" combine="interleave">
        <text/>
    </define>
    <define name="text-common-ref-content" combine="interleave">
        <optional>
            <attribute name="text:ref-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="text-ref-content" combine="interleave">
        <optional>
            <attribute name="text:reference-format">
                <choice>
                    <value>page</value>
                    <value>chapter</value>
                    <value>direction</value>
                    <value>text</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="text-sequence-ref-content" combine="interleave">
        <optional>
            <attribute name="text:reference-format">
                <choice>
                    <value>page</value>
                    <value>chapter</value>
                    <value>direction</value>
                    <value>text</value>
                    <value>category-and-value</value>
                    <value>caption</value>
                    <value>value</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:script">
            <interleave>
                <choice>
                    <group>
                        <attribute name="xlink:href">
                            <ref name="anyURI"/>
                        </attribute>
                        <optional>
                            <attribute name="xlink:type" a:defaultValue="simple">
                                <value>simple</value>
                            </attribute>
                        </optional>
                    </group>    
                    <text/>
                </choice>
                <optional>
                    <attribute name="script:language">
                        <ref name="string"/>
                    </attribute>
                </optional>
            </interleave>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:execute-macro">
            <optional>
                <attribute name="text:name">
                    <ref name="string"/>
                </attribute>
            </optional>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:hidden-paragraph">
            <ref name="text-hidden-paragraph-attlist"/>
            <text/>
        </element>
    </define>
    <define name="text-hidden-paragraph-attlist" combine="interleave">
        <attribute name="text:condition">
            <ref name="formula"/>
        </attribute>
    </define>
    <define name="text-hidden-paragraph-attlist" combine="interleave">
        <optional>
            <attribute name="text:is-hidden">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:dde-connection">
            <attribute name="text:connection-name">
                <ref name="string"/>
            </attribute>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:measure">
            <attribute name="text:kind">
                <choice>
                    <value>value</value>
                    <value>unit</value>
                    <value>gap</value>
                </choice>
            </attribute>
            <text/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:table-formula">
            <interleave>
                <ref name="field-formula"/>
                <ref name="field-display-value-formula"/>
                <ref name="field-data-style-name"/>
            </interleave>
            <text/>
        </element>
    </define>
    <define name="common-value-type-attlist">
        <attribute name="office:value-type">
            <ref name="valueType"/>
        </attribute>
    </define>
    <define name="common-value-and-type-attlist">
        <choice>
            <group>
                <attribute name="office:value-type">
                    <value>float</value>
                </attribute>
                <attribute name="office:value">
                    <ref name="double"/>
                </attribute>
            </group>
            <group>
                <attribute name="office:value-type">
                    <value>percentage</value>
                </attribute>
                <attribute name="office:value">
                    <ref name="double"/>
                </attribute>
            </group>
            <group>
                <attribute name="office:value-type">
                    <value>currency</value>
                </attribute>
                <attribute name="office:value">
                    <ref name="double"/>
                </attribute>
                <optional>
                    <attribute name="office:currency">
                        <ref name="string"/>
                    </attribute>
                </optional>
            </group>
            <group>
                <attribute name="office:value-type">
                    <value>date</value>
                </attribute>
                <attribute name="office:date-value">
                    <ref name="dateOrDateTime"/>
                </attribute>
            </group>
            <group>
                <attribute name="office:value-type">
                    <value>time</value>
                </attribute>
                <attribute name="office:time-value">
                    <ref name="duration"/>
                </attribute>
            </group>
            <group>
                <attribute name="office:value-type">
                    <value>boolean</value>
                </attribute>
                <attribute name="office:boolean-value">
                    <ref name="boolean"/>
                </attribute>
            </group>
            <group>
                <attribute name="office:value-type">
                    <value>string</value>
                </attribute>
                <optional>
                    <attribute name="office:string-value">
                        <ref name="string"/>
                    </attribute>
                </optional>
            </group>
        </choice>
    </define>
    <define name="field-fixed">
        <optional>
            <attribute name="text:fixed">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="field-name">
        <attribute name="text:name">
            <ref name="variableName"/>
        </attribute>
    </define>
    <define name="field-description">
        <optional>
            <attribute name="text:description">
                <text/>
            </attribute>
        </optional>
    </define>
    <define name="field-display-value-none">
        <optional>
            <attribute name="text:display">
                <choice>
                    <value>value</value>
                    <value>none</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="field-display-value-formula-none">
        <optional>
            <attribute name="text:display">
                <choice>
                    <value>value</value>
                    <value>formula</value>
                    <value>none</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="field-display-value-formula">
        <optional>
            <attribute name="text:display">
                <choice>
                    <value>value</value>
                    <value>formula</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="field-formula">
        <optional>
            <attribute name="text:formula">
                <ref name="formula"/>
            </attribute>
        </optional>
    </define>
    <define name="field-data-style-name">
        <optional>
            <attribute name="style:data-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="field-num-format">
        <optional>
            <ref name="common-num-format-attlist"/>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:toc-mark-start">
            <ref name="text-toc-mark-start-attrs"/>
        </element>
    </define>
    <define name="text-toc-mark-start-attrs">
        <ref name="text-id"/>
        <ref name="text-outline-level"/>
    </define>
    <define name="text-outline-level">
        <optional>
            <attribute name="text:outline-level">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="text-id">
        <attribute name="text:id">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:toc-mark-end">
            <ref name="text-id"/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:toc-mark">
            <attribute name="text:string-value">
                <ref name="string"/>
            </attribute>
            <ref name="text-outline-level"/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:user-index-mark-start">
            <ref name="text-id"/>
            <ref name="text-outline-level"/>
            <ref name="text-index-name"/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:user-index-mark-end">
            <ref name="text-id"/>
            <ref name="text-outline-level"/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:user-index-mark">
            <attribute name="text:string-value">
                <ref name="string"/>
            </attribute>
            <ref name="text-outline-level"/>
            <ref name="text-index-name"/>
        </element>
    </define>
    <define name="text-index-name">
        <attribute name="text:index-name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:alphabetical-index-mark-start">
            <ref name="text-id"/>
            <ref name="text-alphabetical-index-mark-attrs"/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:alphabetical-index-mark-end">
            <ref name="text-id"/>
        </element>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:alphabetical-index-mark">
            <attribute name="text:string-value">
                <ref name="string"/>
            </attribute>
            <ref name="text-alphabetical-index-mark-attrs"/>
        </element>
    </define>
    <define name="text-alphabetical-index-mark-attrs" combine="interleave">
        <optional>
            <attribute name="text:key1">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:key2">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="text-alphabetical-index-mark-attrs" combine="interleave">
        <optional>
            <attribute name="text:string-value-phonetic">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:key1-phonetic">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:key2-phonetic">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="text-alphabetical-index-mark-attrs" combine="interleave">
        <optional>
            <attribute name="text:main-entry" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="paragraph-content" combine="choice">
        <element name="text:bibliography-mark">
            <attribute name="text:bibliography-type">
                <ref name="text-bibliography-types"/>
            </attribute>
            <zeroOrMore>
                <attribute>
                    <choice>
                        <name>text:identifier</name>
                        <name>text:address</name>
                        <name>text:annote</name>
                        <name>text:author</name>
                        <name>text:booktitle</name>
                        <name>text:chapter</name>
                        <name>text:edition</name>
                        <name>text:editor</name>
                        <name>text:howpublished</name>
                        <name>text:institution</name>
                        <name>text:journal</name>
                        <name>text:month</name>
                        <name>text:note</name>
                        <name>text:number</name>
                        <name>text:organizations</name>
                        <name>text:pages</name>
                        <name>text:publisher</name>
                        <name>text:school</name>
                        <name>text:series</name>
                        <name>text:title</name>
                        <name>text:report-type</name>
                        <name>text:volume</name>
                        <name>text:year</name>
                        <name>text:url</name>
                        <name>text:custom1</name>
                        <name>text:custom2</name>
                        <name>text:custom3</name>
                        <name>text:custom4</name>
                        <name>text:custom5</name>
                        <name>text:isbn</name>
                        <name>text:issn</name>
                    </choice>
                    <ref name="string"/>
                </attribute>
            </zeroOrMore>
            <text/>
        </element>
    </define>
    <define name="text-bibliography-types">
        <choice>
            <value>article</value>
            <value>book</value>
            <value>booklet</value>
            <value>conference</value>
            <value>custom1</value>
            <value>custom2</value>
            <value>custom3</value>
            <value>custom4</value>
            <value>custom5</value>
            <value>email</value>
            <value>inbook</value>
            <value>incollection</value>
            <value>inproceedings</value>
            <value>journal</value>
            <value>manual</value>
            <value>mastersthesis</value>
            <value>misc</value>
            <value>phdthesis</value>
            <value>proceedings</value>
            <value>techreport</value>
            <value>unpublished</value>
            <value>www</value>
        </choice>
    </define>
    <define name="text-index-body">
        <element name="text:index-body">
            <zeroOrMore>
                <ref name="index-content-main"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="index-content-main">
        <choice>
            <ref name="text-content"/>
            <ref name="text-index-title"/>
        </choice>
    </define>
    <define name="text-index-title">
        <element name="text:index-title">
            <ref name="sectionAttr"/>
            <zeroOrMore>
                <ref name="index-content-main"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-table-of-content">
        <element name="text:table-of-content">
            <ref name="sectionAttr"/>
            <ref name="text-table-of-content-source"/>
            <ref name="text-index-body"/>
        </element>
    </define>
    <define name="text-table-of-content-source">
        <element name="text:table-of-content-source">
            <ref name="text-table-of-content-source-attlist"/>
            <optional>
                <ref name="text-index-title-template"/>
            </optional>
            <zeroOrMore>
                <ref name="text-table-of-content-entry-template"/>
            </zeroOrMore>
            <zeroOrMore>
                <ref name="text-index-source-styles"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-table-of-content-source-attlist" combine="interleave">
        <optional>
            <attribute name="text:outline-level">
                <choice>
                    <ref name="positiveInteger"/>
                    <value>none</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="text-table-of-content-source-attlist" combine="interleave">
        <optional>
            <attribute name="text:use-index-marks">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-table-of-content-source-attlist" combine="interleave">
        <optional>
            <attribute name="text:use-index-source-styles">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-table-of-content-source-attlist" combine="interleave">
        <optional>
            <attribute name="text:index-scope">
                <choice>
                    <value>document</value>
                    <value>chapter</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="text-table-of-content-source-attlist" combine="interleave">
        <optional>
            <attribute name="text:relative-tab-stop-position">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-table-of-content-entry-template">
        <element name="text:table-of-content-entry-template">
            <ref name="text-table-of-content-entry-template-attlist"/>
            <zeroOrMore>
                <ref name="text-table-of-content-children"/>
    
            </zeroOrMore>
        </element>
    </define>
    <define name="text-table-of-content-children">
        <choice>
            <ref name="text-index-entry-chapter"/>
            <ref name="text-index-entry-page-number"/>
            <ref name="text-index-entry-text"/>
            <ref name="text-index-entry-span"/>
            <ref name="text-index-entry-tab-stop"/>
            <ref name="text-index-entry-link-start"/>
            <ref name="text-index-entry-link-end"/>
        </choice>
    </define>
    <define name="text-table-of-content-entry-template-attlist"
            combine="interleave">
        <attribute name="text:outline-level">
            <ref name="positiveInteger"/>
        </attribute>
    </define>
    <define name="text-table-of-content-entry-template-attlist"
            combine="interleave">
        <attribute name="text:style-name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="text-illustration-index">
        <element name="text:illustration-index">
            <ref name="sectionAttr"/>
            <ref name="text-illustration-index-source"/>
            <ref name="text-index-body"/>
        </element>
    </define>
    <define name="text-illustration-index-source">
        <element name="text:illustration-index-source">
            <ref name="text-illustration-index-source-attrs"/>
            <optional>
                <ref name="text-index-title-template"/>
            </optional>
            <optional>
                <ref name="text-illustration-index-entry-template"/>
            </optional>
        </element>
    </define>
    <define name="text-illustration-index-source-attrs" combine="interleave">
        <ref name="text-index-scope-attr"/>
    </define>
    <define name="text-index-scope-attr">
        <optional>
            <attribute name="text:index-scope" a:defaultValue="document">
                <choice>
                    <value>document</value>
                    <value>chapter</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="text-illustration-index-source-attrs" combine="interleave">
        <ref name="text-relative-tab-stop-position-attr"/>
    </define>
    <define name="text-relative-tab-stop-position-attr">
        <optional>
            <attribute name="text:relative-tab-stop-position" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-illustration-index-source-attrs" combine="interleave">
        <optional>
            <attribute name="text:use-caption" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-illustration-index-source-attrs" combine="interleave">
        <optional>
            <attribute name="text:caption-sequence-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="text-illustration-index-source-attrs" combine="interleave">
        <optional>
            <attribute name="text:caption-sequence-format">
                <choice>
                    <value>text</value>
                    <value>category-and-value</value>
                    <value>caption</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="text-illustration-index-entry-template">
        <element name="text:illustration-index-entry-template">
            <ref name="text-illustration-index-entry-content"/>
        </element>
    </define>
    <define name="text-illustration-index-entry-content">
        <ref name="text-illustration-index-entry-template-attrs"/>
        <zeroOrMore>
            <choice>
                <ref name="text-index-entry-page-number"/>
                <ref name="text-index-entry-text"/>
                <ref name="text-index-entry-span"/>
                <ref name="text-index-entry-tab-stop"/>
            </choice>
        </zeroOrMore>
    </define>
    <define name="text-illustration-index-entry-template-attrs">
        <attribute name="text:style-name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="text-table-index">
        <element name="text:table-index">
            <ref name="sectionAttr"/>
            <ref name="text-table-index-source"/>
            <ref name="text-index-body"/>
        </element>
    </define>
    <define name="text-table-index-source">
        <element name="text:table-index-source">
            <ref name="text-illustration-index-source-attrs"/>
            <optional>
                <ref name="text-index-title-template"/>
            </optional>
            <optional>
                <ref name="text-table-index-entry-template"/>
            </optional>
        </element>
    </define>
    <define name="text-table-index-entry-template">
        <element name="text:table-index-entry-template">
            <ref name="text-illustration-index-entry-content"/>
        </element>
    </define>
    <define name="text-object-index">
        <element name="text:object-index">
            <ref name="sectionAttr"/>
            <ref name="text-object-index-source"/>
            <ref name="text-index-body"/>
        </element>
    </define>
    <define name="text-object-index-source">
        <element name="text:object-index-source">
            <ref name="text-object-index-source-attrs"/>
            <optional>
                <ref name="text-index-title-template"/>
            </optional>
            <optional>
                <ref name="text-object-index-entry-template"/>
            </optional>
        </element>
    </define>
    <define name="text-object-index-source-attrs" combine="interleave">
        <ref name="text-index-scope-attr"/>
    </define>
    <define name="text-object-index-source-attrs" combine="interleave">
        <ref name="text-relative-tab-stop-position-attr"/>
    </define>
    <define name="text-object-index-source-attrs" combine="interleave">
        <optional>
            <attribute name="text:use-spreadsheet-objects" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-object-index-source-attrs" combine="interleave">
        <optional>
            <attribute name="text:use-math-objects" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-object-index-source-attrs" combine="interleave">
        <optional>
            <attribute name="text:use-draw-objects" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-object-index-source-attrs" combine="interleave">
        <optional>
            <attribute name="text:use-chart-objects" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-object-index-entry-template">
        <element name="text:object-index-entry-template">
            <ref name="text-illustration-index-entry-content"/>
        </element>
    </define>
    <define name="text-user-index">
        <element name="text:user-index">
            <ref name="sectionAttr"/>
            <ref name="text-user-index-source"/>
            <ref name="text-index-body"/>
        </element>
    </define>
    <define name="text-user-index-source">
        <element name="text:user-index-source">
            <ref name="text-user-index-source-attr"/>
            <optional>
                <ref name="text-index-title-template"/>
            </optional>
            <zeroOrMore>
                <ref name="text-user-index-entry-template"/>
            </zeroOrMore>
            <zeroOrMore>
                <ref name="text-index-source-styles"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-user-index-source-attr" combine="interleave">
        <ref name="text-index-scope-attr"/>
        <ref name="text-relative-tab-stop-position-attr"/>
        <attribute name="text:index-name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="text-user-index-source-attr" combine="interleave">
        <optional>
            <attribute name="text:use-index-marks" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:use-graphics" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:use-tables" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:use-floating-frames"
                         a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:use-objects" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-user-index-source-attr" combine="interleave">
        <optional>
            <attribute name="text:copy-outline-levels"
                         a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-user-index-entry-template">
        <element name="text:user-index-entry-template">
            <ref name="text-user-index-entry-template-attrs"/>
            <zeroOrMore>
                <choice>
                    <ref name="text-index-entry-chapter"/>
                    <ref name="text-index-entry-page-number"/>
                    <ref name="text-index-entry-text"/>
                    <ref name="text-index-entry-span"/>
                    <ref name="text-index-entry-tab-stop"/>
                </choice>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-user-index-entry-template-attrs" combine="interleave">
        <attribute name="text:outline-level">
            <ref name="positiveInteger"/>
        </attribute>
    </define>
    <define name="text-user-index-entry-template-attrs" combine="interleave">
        <attribute name="text:style-name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="text-alphabetical-index">
        <element name="text:alphabetical-index">
            <ref name="sectionAttr"/>
            <ref name="text-alphabetical-index-source"/>
            <ref name="text-index-body"/>
        </element>
    </define>
    <define name="text-alphabetical-index-source">
        <ref name="text-alphabetical-index-attrs"/>
        <optional>
            <ref name="text-index-title-template"/>
        </optional>
        <zeroOrMore>
            <ref name="text-alphabetical-index-entry-template"/>
        </zeroOrMore>
    </define>
    <define name="text-alphabetical-index-attrs" combine="interleave">
        <ref name="text-index-scope-attr"/>
        <ref name="text-relative-tab-stop-position-attr"/>
    </define>
    <define name="text-alphabetical-index-attrs" combine="interleave">
        <optional>
            <attribute name="text:ignore-case" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-alphabetical-index-attrs" combine="interleave">
        <optional>
            <attribute name="text:main-entry-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="text-alphabetical-index-attrs" combine="interleave">
        <optional>
            <attribute name="text:alphabetical-separators" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-alphabetical-index-attrs" combine="interleave">
        <optional>
            <attribute name="text:combine-entries" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:combine-entries-with-dash" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:combine-entries-with-pp" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-alphabetical-index-attrs" combine="interleave">
        <optional>
            <attribute name="text:use-keys-as-entries" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-alphabetical-index-attrs" combine="interleave">
        <optional>
            <attribute name="text:capitalize-entries" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-alphabetical-index-attrs" combine="interleave">
        <optional>
            <attribute name="text:comma-separated" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-alphabetical-index-attrs" combine="interleave">
        <optional>
            <attribute name="fo:language">
                <ref name="languageCode"/>
            </attribute>
        </optional>
    </define>
    <define name="text-alphabetical-index-attrs" combine="interleave">
        <optional>
            <attribute name="fo:country">
                <ref name="countryCode"/>
            </attribute>
        </optional>
    </define>
    <define name="text-alphabetical-index-attrs" combine="interleave">
        <optional>
            <attribute name="text:sort-algorithm">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="text-alphabetical-index-auto-mark-file">
        <element name="text:alphabetical-index-auto-mark-file">
            <attribute name="xlink:href">
                <ref name="anyURI"/>
            </attribute>
            <optional>
                <attribute name="xlink:type" a:defaultValue="simple">
                    <value>simple</value>
                </attribute>
            </optional>
        </element>
    </define>
    <define name="text-alphabetical-index-entry-template">
        <element name="text:alphabetical-index-entry-template">
            <ref name="text-alphabetical-index-entry-template-attrs"/>
            <zeroOrMore>
                <choice>
                    <ref name="text-index-entry-chapter"/>
                    <ref name="text-index-entry-page-number"/>
                    <ref name="text-index-entry-text"/>
                    <ref name="text-index-entry-span"/>
                    <ref name="text-index-entry-tab-stop"/>
                </choice>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-alphabetical-index-entry-template-attrs"
            combine="interleave">
        <attribute name="text:outline-level">
            <choice>
                <value>1</value>
                <value>2</value>
                <value>3</value>
                <value>separator</value>
            </choice>
        </attribute>
    </define>
    <define name="text-alphabetical-index-entry-template-attrs"
            combine="interleave">
        <attribute name="text:style-name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="text-bibliography">
        <element name="text:bibliography">
            <ref name="sectionAttr"/>
            <ref name="text-bibliography-source"/>
            <ref name="text-index-body"/>
        </element>
    </define>
    <define name="text-bibliography-source">
        <element name="text:bibliography-source">
            <optional>
                <ref name="text-index-title-template"/>
            </optional>
            <zeroOrMore>
                <ref name="text-bibliography-entry-template"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-bibliography-entry-template">
        <element name="text:bibliography-entry-template">
            <ref name="text-bibliography-entry-template-attrs"/>
            <zeroOrMore>
                <choice>
                    <ref name="text-index-entry-span"/>
                    <ref name="text-index-entry-tab-stop"/>
                    <ref name="text-index-entry-bibliography"/>
                </choice>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-bibliography-entry-template-attrs" combine="interleave">
        <attribute name="text:bibliography-type">
            <ref name="text-bibliography-types"/>
        </attribute>
    </define>
    <define name="text-bibliography-entry-template-attrs" combine="interleave">
        <attribute name="text:style-name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="text-index-source-styles">
        <element name="text:index-source-styles">
            <attribute name="text:outline-level">
                <ref name="positiveInteger"/>
            </attribute>
            <zeroOrMore>
                <ref name="text-index-source-style"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-index-source-style">
        <element name="text:index-source-style">
            <attribute name="text:style-name">
                <ref name="styleName"/>
            </attribute>
            <empty/>
        </element>
    </define>
    <define name="text-index-title-template">
        <element name="text:index-title-template">
            <optional>
                <attribute name="text:style-name">
                    <ref name="styleName"/>
                </attribute>
            </optional>
            <text/>
        </element>
    </define>
    <define name="text-index-entry-chapter">
        <element name="text:index-entry-chapter">
            <optional>
                <attribute name="text:style-name">
                    <ref name="styleName"/>
                </attribute>
            </optional>
            <ref name="text-index-entry-chapter-attrs"/>
        </element>
    </define>
    <define name="text-index-entry-chapter-attrs">
        <attribute name="text:display">
            <choice>
                <value>name</value>
                <value>number</value>
                <value>number-and-name</value>
            </choice>
        </attribute>
    </define>
    <define name="text-index-entry-text">
        <element name="text:index-entry-text">
            <optional>
                <attribute name="text:style-name">
                    <ref name="styleName"/>
                </attribute>
            </optional>
        </element>
    </define>
    <define name="text-index-entry-page-number">
        <element name="text:index-entry-page-number">
            <optional>
                <attribute name="text:style-name">
                    <ref name="styleName"/>
                </attribute>
            </optional>
        </element>
    </define>
    <define name="text-index-entry-span">
        <element name="text:index-entry-span">
            <optional>
                <attribute name="text:style-name">
                    <ref name="styleName"/>
                </attribute>
            </optional>
            <text/>
        </element>
    </define>
    <define name="text-index-entry-bibliography">
        <element name="text:index-entry-bibliography">
            <ref name="text-index-entry-bibliography-attrs"/>
        </element>
    </define>
    <define name="text-index-entry-bibliography-attrs" combine="interleave">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="text-index-entry-bibliography-attrs" combine="interleave">
        <attribute name="text:bibliography-data-field">
            <choice>
                <value>address</value>
                <value>annote</value>
                <value>author</value>
                <value>bibliography-type</value>
                <value>booktitle</value>
                <value>chapter</value>
                <value>custom1</value>
                <value>custom2</value>
                <value>custom3</value>
                <value>custom4</value>
                <value>custom5</value>
                <value>edition</value>
                <value>editor</value>
                <value>howpublished</value>
                <value>identifier</value>
                <value>institution</value>
                <value>isbn</value>
                <value>issn</value>
                <value>journal</value>
                <value>month</value>
                <value>note</value>
                <value>number</value>
                <value>organizations</value>
                <value>pages</value>
                <value>publisher</value>
                <value>report-type</value>
                <value>school</value>
                <value>series</value>
                <value>title</value>
                <value>url</value>
                <value>volume</value>
                <value>year</value>
            </choice>
        </attribute>
    </define>
    <define name="text-index-entry-tab-stop">
        <element name="text:index-entry-tab-stop">
            <optional>
                <attribute name="text:style-name">
                    <ref name="styleName"/>
                </attribute>
            </optional>
            <ref name="text-index-entry-tab-stop-attrs"/>
        </element>
    </define>
    <define name="text-index-entry-tab-stop-attrs" combine="interleave">
        <optional>
            <attribute name="style:leader-char">
                <ref name="character"/>
            </attribute>
        </optional>
    </define>
    <define name="text-index-entry-tab-stop-attrs" combine="interleave">
        <choice>
            <attribute name="style:type">
                <value>right</value>
            </attribute>
            <group>
                <attribute name="style:type">
                    <value>left</value>
                </attribute>
                <attribute name="style:position">
                    <ref name="length"/>
                </attribute>
            </group>
        </choice>
    </define>
    <define name="text-index-entry-link-start">
        <element name="text:index-entry-link-start">
            <optional>
                <attribute name="text:style-name">
                    <ref name="styleName"/>
                </attribute>
            </optional>
        </element>
    </define>
    <define name="text-index-entry-link-end">
        <element name="text:index-entry-link-end">
            <optional>
                <attribute name="text:style-name">
                    <ref name="styleName"/>
                </attribute>
            </optional>
        </element>
    </define>
    <define name="table-table">
        <element name="table:table">
            <ref name="table-table-attlist"/>
            <optional>
                <ref name="table-table-source"/>
            </optional>
            <optional>
                <ref name="office-dde-source"/>
            </optional>
            <optional>
                <ref name="table-scenario"/>
            </optional>
            <optional>
                <ref name="office-forms"/>
            </optional>
            <optional>
                <ref name="table-shapes"/>
            </optional>
            <ref name="table-columns-and-groups"/>
            <ref name="table-rows-and-groups"/>
        </element>
    </define>
    <define name="table-columns-and-groups">
        <oneOrMore>
            <choice>
                <ref name="table-table-column-group"/>
                <ref name="table-columns-no-group"/>
            </choice>
        </oneOrMore>
    </define>
    
    <define name="table-columns-no-group">
        <choice>
            <group>
                <ref name="table-columns"/>
                <optional>
                    <ref name="table-table-header-columns"/>
                    <optional>
                        <ref name="table-columns"/>
                    </optional>
                </optional>
            </group>
            <group>
                <ref name="table-table-header-columns"/>
                <optional>
                    <ref name="table-columns"/>
                </optional>
            </group>
        </choice>
    </define>
    
    <define name="table-columns">
        <choice>
            <ref name="table-table-columns"/>
            <oneOrMore>
                    <ref name="table-table-column"/>
            </oneOrMore>
        </choice>
    </define>
    
    <define name="table-rows-and-groups">
        <oneOrMore>
            <choice>
                <ref name="table-table-row-group"/>
                <ref name="table-rows-no-group"/>
            </choice>
        </oneOrMore>
    </define>
    
    <define name="table-rows-no-group">
        <choice>
            <group>
                <ref name="table-rows"/>
                <optional>
                    <ref name="table-table-header-rows"/>
                    <optional>
                        <ref name="table-rows"/>
                    </optional>
                </optional>
            </group>
            <group>
                <ref name="table-table-header-rows"/>
                <optional>
                    <ref name="table-rows"/>
                </optional>
            </group>
        </choice>
    </define>
    
    <define name="table-rows">
        <choice>
            <ref name="table-table-rows"/>
            <oneOrMore>
                    <ref name="table-table-row"/>
            </oneOrMore>
        </choice>
    </define>
    <define name="table-table-attlist" combine="interleave">
        <optional>
            <attribute name="table:name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-attlist" combine="interleave">
        <optional>
            <attribute name="table:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-attlist" combine="interleave">
        <optional>
            <attribute name="table:protected" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:protection-key">
                <text/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-attlist" combine="interleave">
        <optional>
            <attribute name="table:print-ranges">
                <ref name="cellRangeAddressList"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-row">
        <element name="table:table-row">
            <ref name="table-table-row-attlist"/>
            <oneOrMore>
                <choice>
                    <ref name="table-table-cell"/>
                    <ref name="table-covered-table-cell"/>
                </choice>
            </oneOrMore>
        </element>
    </define>
    <define name="table-table-row-attlist" combine="interleave">
        <optional>
            <attribute name="table:number-rows-repeated" a:defaultValue="1">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-row-attlist" combine="interleave">
        <optional>
            <attribute name="table:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-row-attlist" combine="interleave">
        <optional>
            <attribute name="table:default-cell-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-row-attlist" combine="interleave">
        <optional>
            <attribute name="table:visibility" a:defaultValue="visible">
                <ref name="table-visibility-value"/>
            </attribute>
        </optional>
    </define>
    
    <define name="table-visibility-value">
        <choice>
            <value>visible</value>
            <value>collapse</value>
            <value>filter</value>
        </choice>
    </define>
    <define name="table-table-cell">
        <element name="table:table-cell">
            <ref name="table-table-cell-attlist"/>
            <ref name="table-table-cell-attlist-extra"/>
            <ref name="table-table-cell-content"/>
        </element>
    </define>
    
    <define name="table-covered-table-cell">
        <element name="table:covered-table-cell">
            <ref name="table-table-cell-attlist"/>
            <ref name="table-table-cell-content"/>
        </element>
    </define>
    
    <define name="table-table-cell-content">
        <optional>
            <ref name="table-cell-range-source"/>
        </optional>
        <optional>
            <ref name="office-annotation"/>
        </optional>
        <optional>
            <ref name="table-detective"/>
        </optional>
        <zeroOrMore>
            <ref name="text-content"/>
        </zeroOrMore>
    </define>
    <define name="table-table-cell-attlist" combine="interleave">
        <optional>
            <attribute name="table:number-columns-repeated" a:defaultValue="1">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-cell-attlist-extra" combine="interleave">
        <optional>
            <attribute name="table:number-columns-spanned" a:defaultValue="1">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:number-rows-spanned" a:defaultValue="1">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-cell-attlist" combine="interleave">
        <optional>
            <attribute name="table:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-cell-attlist" combine="interleave">
        <optional>
            <attribute name="table:content-validation-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-cell-attlist" combine="interleave">
        <optional>
            <attribute name="table:formula">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-cell-attlist-extra" combine="interleave">
        <optional>
            <attribute name="table:number-matrix-columns-spanned">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:number-matrix-rows-spanned">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-cell-attlist" combine="interleave">
        <optional>
            <ref name="common-value-and-type-attlist"/>
        </optional>
    </define>
    <define name="table-table-cell-attlist" combine="interleave">
        <optional>
            <attribute name="table:protect" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-column">
        <element name="table:table-column">
            <ref name="table-table-column-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-table-column-attlist" combine="interleave">
        <optional>
            <attribute name="table:number-columns-repeated" a:defaultValue="1">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-column-attlist" combine="interleave">
        <optional>
            <attribute name="table:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-column-attlist" combine="interleave">
        <optional>
            <attribute name="table:visibility" a:defaultValue="visible">
                <ref name="table-visibility-value"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-column-attlist" combine="interleave">
        <optional>
            <attribute name="table:default-cell-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-header-columns">
        <element name="table:table-header-columns">
            <oneOrMore>
                <ref name="table-table-column"/>
            </oneOrMore>
        </element>
    </define>
    
    <define name="table-table-columns">
        <element name="table:table-columns">
            <oneOrMore>
                <ref name="table-table-column"/>
            </oneOrMore>
        </element>
    </define>
    <define name="table-table-column-group">
        <element name="table:table-column-group">
            <ref name="table-table-column-group-attlist"/>
            <ref name="table-columns-and-groups"/>
        </element>
    </define>
    <define name="table-table-column-group-attlist" combine="interleave">
        <optional>
            <attribute name="table:display" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-header-rows">
        <element name="table:table-header-rows">
            <oneOrMore>
                <ref name="table-table-row"/>
            </oneOrMore>
        </element>
    </define>
    
    <define name="table-table-rows">
        <element name="table:table-rows">
            <oneOrMore>
                <ref name="table-table-row"/>
            </oneOrMore>
        </element>
    </define>
    <define name="table-table-row-group">
        <element name="table:table-row-group">
            <ref name="table-table-row-group-attlist"/>
            <ref name="table-rows-and-groups"/>
        </element>
    </define>
    <define name="table-table-row-group-attlist" combine="interleave">
        <optional>
            <attribute name="table:display" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-table-attlist" combine="interleave">
        <optional>
            <attribute name="table:is-sub-table" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="cellAddress">
        <data type="string">
            <param name="pattern">($?([^\. ']+|'[^']+'))?\.$?[A-Z]+$?[0-9]+</param>
        </data>
    </define>
    <define name="cellRangeAddress">
        <data type="string">
            <param name="pattern">($?([^\. ']+|'[^']+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'[^']+'))?\.$?[A-Z]+$?[0-9]+)?</param>
        </data>
    </define>
    <define name="cellRangeAddressList">
        <list>
            <oneOrMore>
                <ref name="cellRangeAddress"/>
            </oneOrMore>
        </list>
    </define>
    <define name="table-table-source">
        <element name="table:table-source">
            <ref name="table-table-source-attlist"/>
            <ref name="table-linked-source-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-table-source-attlist" combine="interleave">
        <optional>
            <attribute name="table:mode" a:defaultValue="copy-all">
                <choice>
                    <value>copy-all</value>
                    <value>copy-results-only</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="table-table-source-attlist" combine="interleave">
        <optional>
            <attribute name="table:table-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-linked-source-attlist" combine="interleave">
        <optional>
            <attribute name="xlink:type" a:defaultValue="simple">
                <value>simple</value>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate" a:defaultValue="onRequest">
                <value>onRequest</value>
            </attribute>
        </optional>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
    </define>
    <define name="table-linked-source-attlist" combine="interleave">
        <optional>
            <attribute name="table:filter-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-linked-source-attlist" combine="interleave">
        <optional>
            <attribute name="table:filter-options">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-linked-source-attlist" combine="interleave">
        <optional>
            <attribute name="table:refresh-delay">
                <ref name="duration"/>
            </attribute>
        </optional>
    </define>
    <define name="table-scenario">
        <element name="table:scenario">
            <ref name="table-scenario-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-scenario-attlist" combine="interleave">
        <attribute name="table:scenario-ranges">
            <ref name="cellRangeAddressList"/>
        </attribute>
    </define>
    <define name="table-scenario-attlist" combine="interleave">
        <attribute name="table:is-active">
            <ref name="boolean"/>
        </attribute>
    </define>
    <define name="table-scenario-attlist" combine="interleave">
        <optional>
            <attribute name="table:display-border" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-scenario-attlist" combine="interleave">
        <optional>
            <attribute name="table:border-color">
                <ref name="color"/>
            </attribute>
        </optional>
    </define>
    <define name="table-scenario-attlist" combine="interleave">
        <optional>
            <attribute name="table:copy-back" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-scenario-attlist" combine="interleave">
        <optional>
            <attribute name="table:copy-styles" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-scenario-attlist" combine="interleave">
        <optional>
            <attribute name="table:copy-formulas" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-scenario-attlist" combine="interleave">
        <optional>
            <attribute name="table:comment">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-shapes">
        <element name="table:shapes">
            <oneOrMore>
                <ref name="shape"/>
            </oneOrMore>
        </element>
    </define>
    <define name="table-cell-range-source">
        <element name="table:cell-range-source">
            <ref name="table-table-cell-range-source-attlist"/>
            <ref name="table-linked-source-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-table-cell-range-source-attlist" combine="interleave">
        <attribute name="table:name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-table-cell-range-source-attlist" combine="interleave">
        <attribute name="table:last-column-spanned">
            <ref name="positiveInteger"/>
        </attribute>
        <attribute name="table:last-row-spanned">
            <ref name="positiveInteger"/>
        </attribute>
    </define>
    <define name="table-detective">
        <element name="table:detective">
            <zeroOrMore>
                <ref name="table-highlighted-range"/>
            </zeroOrMore>
            <zeroOrMore>
                <ref name="table-operation"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="table-operation">
        <element name="table:operation">
            <ref name="table-operation-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-operation-attlist" combine="interleave">
        <attribute name="table:name">
            <choice>
                <value>trace-dependents</value>
                <value>remove-dependents</value>
                <value>trace-precedents</value>
                <value>remove-precedents</value>
                <value>trace-errors</value>
            </choice>
        </attribute>
    </define>
    <define name="table-operation-attlist" combine="interleave">
        <attribute name="table:index">
            <ref name="nonNegativeInteger"/> <!-- nonNegativeInteger missing -->
        </attribute>
    </define>
    <define name="table-highlighted-range">
        <element name="table:highlighted-range">
            <choice>
                <group>
                    <ref name="table-highlighted-range-attlist"/>
                </group>
                <group>
                    <ref name="table-highlighted-range-attlist-invalid"/>
                </group>
            </choice>
            <empty/>
        </element>
    </define>
    <define name="table-highlighted-range-attlist" combine="interleave">
        <attribute name="table:cell-range-address">
            <ref name="cellRangeAddress"/>
        </attribute>
    </define>
    <define name="table-highlighted-range-attlist" combine="interleave">
        <attribute name="table:direction">
            <choice>
                <value>from-another-table</value>
                <value>to-another-table</value>
                <value>from-same-table</value>
            </choice>
        </attribute>
    </define>
    <define name="table-highlighted-range-attlist" combine="interleave">
        <optional>
            <attribute name="table:contains-error" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-highlighted-range-attlist-invalid" combine="interleave">
        <attribute name="table:marked-invalid">
            <ref name="boolean"/>
        </attribute>
    </define>
    <define name="office-spreadsheet-attlist" combine="interleave">
        <optional>
            <attribute name="table:structure-protected" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:protection-key">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-calculation-settings">
        <element name="table:calculation-settings">
            <ref name="table-calculation-setting-attlist"/>
            <optional>
                <ref name="table-null-date"/>
            </optional>
            <optional>
                <ref name="table-iteration"/>
            </optional>
        </element>
    </define>
    <define name="table-calculation-setting-attlist" combine="interleave">
        <optional>
            <attribute name="table:case-sensitive" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-calculation-setting-attlist" combine="interleave">
        <optional>
            <attribute name="table:precision-as-shown" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-calculation-setting-attlist" combine="interleave">
        <optional>
            <attribute name="table:search-criteria-must-apply-to-whole-cell"
                         a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-calculation-setting-attlist" combine="interleave">
        <optional>
            <attribute name="table:automatic-find-labels" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-calculation-setting-attlist" combine="interleave">
        <optional>
            <attribute name="table:use-regular-expressions"
                         a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-calculation-setting-attlist" combine="interleave">
        <optional>
            <attribute name="table:null-year" a:defaultValue="1930">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="table-null-date">
        <element name="table:null-date">
            <optional>
                <attribute name="table:value-type" a:defaultValue="date">
                    <ref name="valueType"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="table:date-value-type" 
                             a:defaultValue="1899-12-30">
                    <ref name="date"/>
                </attribute>
            </optional>
            <empty/>
        </element>
    </define>
    <define name="table-iteration">
        <element name="table:iteration">
            <optional>
                <attribute name="table:status" a:defaultValue="disable">
                    <choice>
                        <value>enable</value>
                        <value>disable</value>
                    </choice>
                </attribute>
            </optional>
            <optional>
                <attribute name="table:steps" a:defaultValue="100">
                    <ref name="positiveInteger"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="table:maximum-difference"
                             a:defaultValue="0.001">
                    <ref name="double"/>
                </attribute>
            </optional>
            <empty/>
        </element>
    </define>
    <define name="table-content-validations">
        <element name="table:content-validations">
            <oneOrMore>
                <ref name="table-content-validation"/>
            </oneOrMore>
        </element>
    </define>
    
    <define name="table-content-validation">
        <element name="table:content-validation">
            <ref name="table-validation-attlist"/>
            <optional>
                <ref name="table-help-message"/>
            </optional>
            <optional>
                <choice>
                    <ref name="table-error-message"/>
                    <group>
                        <ref name="table-error-macro"/>
                        <optional>
                            <ref name="office-event-listeners"/>
                        </optional>
                    </group>
                </choice>
            </optional>
        </element>
    </define>
    <define name="table-validation-attlist" combine="interleave">
        <attribute name="table:name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-validation-attlist" combine="interleave">
        <optional>
            <attribute name="table:condition">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-validation-attlist" combine="interleave">
        <optional>
            <attribute name="table:base-cell-address">
                <ref name="cellAddress"/>
            </attribute>
        </optional>
    </define>
    <define name="table-validation-attlist" combine="interleave">
        <optional>
            <attribute name="table:allow-empty-cell" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-help-message">
        <element name="table:help-message">
            <optional>
                <attribute name="table:title">
                    <ref name="string"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="table:display" a:defaultValue="false">
                    <ref name="boolean"/>
                </attribute>
            </optional>
            <zeroOrMore>
                <ref name="text-p"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="table-error-message">
        <element name="table:error-message">
            <optional>
                <attribute name="table:title">
                    <ref name="string"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="table:display" a:defaultValue="false">
                    <ref name="boolean"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="table:type" a:defaultValue="stop">
                    <choice>
                        <value>stop</value>
                        <value>warning</value>
                        <value>information</value>
                    </choice>
                </attribute>
            </optional>
            <zeroOrMore>
                <ref name="text-p"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="table-error-macro">
        <element name="table:error-macro">
            <optional>
                <attribute name="table:execute" a:defaultValue="true">
                    <ref name="boolean"/>
                </attribute>
            </optional>
        </element>
    </define>
    <define name="table-label-ranges">
        <element name="table:label-ranges">
            <zeroOrMore>
                <ref name="table-label-range"/>
            </zeroOrMore>
        </element>
    </define>
    
    <define name="table-label-range">
        <element name="table:label-range">
            <ref name="table-label-range-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-label-range-attlist" combine="interleave">
        <attribute name="table:label-cell-range-address">
            <ref name="cellRangeAddress"/>
        </attribute>
    </define>
    <define name="table-label-range-attlist" combine="interleave">
        <attribute name="table:data-cell-range-address">
            <ref name="cellRangeAddress"/>
        </attribute>
    </define>
    <define name="table-label-range-attlist" combine="interleave">
        <attribute name="table:orientation">
            <choice>
                <value>column</value>
                <value>row</value>
            </choice>
        </attribute>
    </define>
    <define name="table-named-expressions">
        <element name="table:named-expressions">
            <zeroOrMore>
                <choice>
                    <ref name="table-named-range"/>
                    <ref name="table-named-expression"/>
                </choice>
            </zeroOrMore>
        </element>
    </define>
    
    <define name="table-named-range">
        <element name="table:named-range">
            <ref name="table-named-range-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="table-named-range-attlist" combine="interleave">
        <attribute name="table:name">
            <ref name="string"/>
        </attribute>
        <attribute name="table:cell-range-address">
            <ref name="cellRangeAddress"/>
        </attribute>
        <optional>
            <attribute name="table:base-cell-address">
                <ref name="cellAddress"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:range-usable-as" a:defaultValue="none">
                <choice>
                    <value>none</value>
                    <list>
                        <oneOrMore>
                            <choice>
                                <value>print-range</value>
                                <value>filter</value>
                                <value>repeat-row</value>
                                <value>repeat-column</value>
                            </choice>
                        </oneOrMore>
                    </list>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="table-named-expression">
        <element name="table:named-expression">
            <ref name="table-named-expression-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="table-named-expression-attlist" combine="interleave">
        <attribute name="table:name">
            <ref name="string"/>
        </attribute>
        <attribute name="table:expression">
            <ref name="string"/>
        </attribute>
        <optional>
            <attribute name="table:base-cell-address">
                <ref name="cellAddress"/>
            </attribute>
        </optional>
    </define>
    <define name="table-database-ranges">
        <element name="table:datatabase-ranges">
            <zeroOrMore>
                <ref name="table-database-range"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="table-database-range">
        <element name="table:datatabase-range">
            <ref name="table-database-range-attlist"/>
            <optional>
                <choice>
                    <ref name="table-database-source-sql"/>
                    <ref name="table-database-source-table"/>
                    <ref name="table-database-source-query"/>
                </choice>
            </optional>
            <optional>
                <ref name="table-filter"/>
            </optional>
            <optional>
                <ref name="table-sort"/>
            </optional>
            <optional>
                <ref name="table-subtotal-rules"/>
            </optional>
        </element>
    </define>
    <define name="table-database-range-attlist" combine="interleave">
        <optional>
            <attribute name="table:name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-database-range-attlist" combine="interleave">
        <optional>
            <attribute name="table:is-selection" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-database-range-attlist" combine="interleave">
        <optional>
            <attribute name="table:on-update-keep-styles" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-database-range-attlist" combine="interleave">
        <optional>
            <attribute name="table:on-update-keep-size" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-database-range-attlist" combine="interleave">
        <optional>
            <attribute name="table:has-persistent-data" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-database-range-attlist" combine="interleave">
        <optional>
            <attribute name="table:orientation" a:defaultValue="row">
                <choice>
                    <value>column</value>
                    <value>row</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="table-database-range-attlist" combine="interleave">
        <optional>
            <attribute name="table:contains-header" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-database-range-attlist" combine="interleave">
        <optional>
            <attribute name="table:display-filter-buttons"
                       a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-database-range-attlist" combine="interleave">
        <attribute name="table:target-range-address">
            <ref name="cellRangeAddress"/>
        </attribute>
    </define>
    <define name="table-database-range-attlist" combine="interleave">
        <optional>
            <attribute name="table:refresh-delay">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-database-source-sql">
        <element name="table:database-source-sql">
            <ref name="table-database-source-sql-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-database-source-sql-attlist" combine="interleave">
        <attribute name="table:database-name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-database-source-sql-attlist" combine="interleave">
        <attribute name="table:sql-statement">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-database-source-sql-attlist" combine="interleave">
        <optional>
            <attribute name="table:parse-sql-statement" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-database-source-query">
        <element name="table:datatabase-source-table">
            <ref name="table-datatabase-source-table-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-datatabase-source-table-attlist" combine="interleave">
        <attribute name="table:database-name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-datatabase-source-table-attlist" combine="interleave">
        <attribute name="table:database-table-name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-database-source-table">
        <element name="table:datatabase-source-query">
            <ref name="table-datatabase-source-query-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-datatabase-source-query-attlist" combine="interleave">
        <attribute name="table:database-name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-datatabase-source-query-attlist" combine="interleave">
        <attribute name="table:query-name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-sort">
        <element name="table:sort">
            <ref name="table-sort-attlist"/>
            <oneOrMore>
                <ref name="table-sort-by"/>
            </oneOrMore>
        </element>
    </define>
    <define name="table-sort-attlist" combine="interleave">
        <attribute name="table:bind-styles-to-content" a:defaultValue="true">
            <ref name="boolean"/>
        </attribute>
    </define>
    <define name="table-sort-attlist" combine="interleave">
        <optional>
            <attribute name="table:target-range-address">
                <ref name="cellRangeAddress"/>
            </attribute>
        </optional>
    </define>
    <define name="table-sort-attlist" combine="interleave">
        <optional>
            <attribute name="table:case-sensitive" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-sort-attlist" combine="interleave">
        <optional>
            <attribute name="table:language">
                <ref name="languageCode"/>
            </attribute>
        </optional>
    </define>
    <define name="table-sort-attlist" combine="interleave">
        <optional>
            <attribute name="table:country">
                <ref name="countryCode"/>
            </attribute>
        </optional>
    </define>
    <define name="table-sort-attlist" combine="interleave">
        <optional>
            <attribute name="table:algorithm">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-sort-by">
        <element name="table:sort-by">
            <ref name="table-sort-by-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-sort-by-attlist" combine="interleave">
        <attribute name="table:field-number">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </define>
    <define name="table-sort-attlist" combine="interleave">
        <optional>
            <attribute name="table:data-type" a:defaultValue="automatic">
                <choice>
                    <value>text</value>
                    <value>number</value>
                    <value>automatic</value>
                    <ref name="string"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="table-sort-attlist" combine="interleave">
        <optional>
            <attribute name="table:order" a:defaultValue="ascending">
                <choice>
                    <value>ascending</value>
                    <value>descending</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="table-subtotal-rules">
        <element name="table:subtotal-rules">
            <ref name="table-subtotal-rules-attlist"/>
            <optional>
                <ref name="table-sort-groups"/>
            </optional>
            <zeroOrMore>
                <ref name="table-subtotal-rule"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="table-subtotal-rules-attlist" combine="interleave">
        <optional>
            <attribute name="table:bind-styles-to-content" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-subtotal-rules-attlist" combine="interleave">
        <optional>
            <attribute name="table:case-sensitive" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-subtotal-rules-attlist" combine="interleave">
        <optional>
            <attribute name="table:page-breaks-on-group-change"
                       a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-sort-groups">
        <element name="table:sort-groups">
            <ref name="table-sort-groups-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-sort-groups-attlist" combine="interleave">
        <optional>
            <attribute name="table:data-type" a:defaultValue="automatic">
                <choice>
                    <value>text</value>
                    <value>number</value>
                    <value>automatic</value>
                    <ref name="string"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="table-sort-groups-attlist" combine="interleave">
        <optional>
            <attribute name="table:order" a:defaultValue="ascending">
                <choice>
                    <value>ascending</value>
                    <value>descending</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="table-subtotal-rule">
        <element name="table:subtotal-rule">
            <ref name="table-subtotal-rule-attlist"/>
            <zeroOrMore>
                <ref name="table-subtotal-field"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="table-subtotal-rule-attlist" combine="interleave">
        <attribute name="table:group-by-field-number">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </define>
    <define name="table-subtotal-field">
        <element name="table:subtotal-field">
            <ref name="table-subtotal-field-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-subtotal-field-attlist" combine="interleave">
        <attribute name="table:field-number">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </define>
    <define name="table-subtotal-field-attlist" combine="interleave">
        <attribute name="table:function">
            <choice>
                <value>auto</value>
                <value>average</value>
                <value>count</value>
                <value>countnums</value>
                <value>max</value>
                <value>min</value>
                <value>product</value>
                <value>stdev</value>
                <value>stdevp</value>
                <value>sum</value>
                <value>var</value>
                <value>varp</value>
                <ref name="string"/>
            </choice>
        </attribute>
    </define>
    <define name="table-filter">
        <element name="table:filter">
            <ref name="table-filter-attlist"/>
            <choice>
                <ref name="table-filter-condition"/>
                <ref name="table-filter-and"/>
                <ref name="table-filter-or"/>
            </choice>
        </element>
    </define>
    <define name="table-filter-attlist" combine="interleave">
        <optional>
            <attribute name="table:target-range-address">
                <ref name="cellRangeAddress"/>
            </attribute>
        </optional>
    </define>
    <define name="table-filter-attlist" combine="interleave">
        <optional>
            <attribute name="table:condition-source" a:defaultValue="self">
                <choice>
                    <value>self</value>
                    <value>cell-range</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="table-filter-attlist" combine="interleave">
        <optional>
            <attribute name="table:condition-source-range-address">
                <ref name="cellRangeAddress"/>
            </attribute>
        </optional>
    </define>
    <define name="table-filter-attlist" combine="interleave">
        <optional>
            <attribute name="table:display-duplicated" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-filter-and">
        <element name="table:filter-and">
            <oneOrMore>
                <ref name="table-filter-condition"/>
                <ref name="table-filter-or"/>
            </oneOrMore>
        </element>
    </define>
    <define name="table-filter-or">
        <element name="table:filter-or">
            <oneOrMore>
                <ref name="table-filter-condition"/>
                <ref name="table-filter-and"/>
            </oneOrMore>
        </element>
    </define>
    <define name="table-filter-condition">
        <element name="table:filter-condition">
            <ref name="table-filter-condition-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-filter-condition-attlist" combine="interleave">
        <attribute name="table:field-number">    
            <ref name="nonNegativeInteger"/>
        </attribute>
    </define>
    <define name="table-filter-condition-attlist" combine="interleave">
        <attribute name="table:value">    
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-filter-condition-attlist" combine="interleave">
        <attribute name="table:condition">    
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-filter-condition-attlist" combine="interleave">
        <optional>
            <attribute name="table:case-sensitive" a:defaultValue="false">    
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-filter-condition-attlist" combine="interleave">
        <optional>
            <attribute name="table:data-type" a:defaultValue="text">
                <choice>
                    <value>text</value>
                    <value>number</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="table-data-pilot-tables">
        <element name="table:data-pilot-tables">
            <zeroOrMore>
                <ref name="table-data-pilot-table"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="table-data-pilot-table">
        <element name="table:data-pilot-table">
            <ref name="table-data-pilot-table-attlist"/>
            <optional>
                <choice>
                    <ref name="table-database-source-sql"/>
                    <ref name="table-database-source-table"/>
                    <ref name="table-database-source-query"/>
                    <ref name="table-source-service"/>
                    <ref name="table-source-cell-range"/>
                </choice>
            </optional>
            <oneOrMore>
                <ref name="table-data-pilot-field"/>
            </oneOrMore>
        </element>
    </define>
    <define name="table-data-pilot-table-attlist" combine="interleave">
        <attribute name="table:name">    
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-data-pilot-table-attlist" combine="interleave">
        <optional>
            <attribute name="table:application-data">    
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-data-pilot-table-attlist" combine="interleave">
        <optional>
            <attribute name="table:grand-total" a:defaultValue="both">
                <choice>
                    <value>none</value>
                    <value>row</value>
                    <value>column</value>
                    <value>both</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="table-data-pilot-table-attlist" combine="interleave">
        <optional>
            <attribute name="table:ignore-empty-rows" a:defaultValue="false">    
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-data-pilot-table-attlist" combine="interleave">
        <optional>
            <attribute name="table:identify-categories" a:defaultValue="false">    
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-data-pilot-table-attlist" combine="interleave">
        <attribute name="table:target-range-address">    
            <ref name="cellRangeAddress"/>
        </attribute>
    </define>
    <define name="table-data-pilot-table-attlist" combine="interleave">
        <optional>
            <attribute name="table:buttons">    
                <ref name="cellRangeAddressList"/>
            </attribute>
        </optional>
    </define>
    <define name="table-source-cell-range">
        <element name="table:source-cell-range">
            <ref name="table-source-cell-range-attlist"/>
            <optional>
                <ref name="table-filter"/>
            </optional>
        </element>
    </define>
    <define name="table-source-cell-range-attlist" combine="interleave">
        <attribute name="table:cell-range-address">    
            <ref name="cellRangeAddress"/>
        </attribute>
    </define>
    <define name="table-source-service">
        <element name="table:source-service">
            <ref name="table-source-service-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-source-service-attlist" combine="interleave">
        <attribute name="table:name">    
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-source-service-attlist" combine="interleave">
        <attribute name="table:source-name">    
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-source-service-attlist" combine="interleave">
        <attribute name="table:object-name">    
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-source-service-attlist" combine="interleave">
        <optional>
            <attribute name="table:user-name">    
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-source-service-attlist" combine="interleave">
        <optional>
            <attribute name="table:password">    
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-data-pilot-field">
        <element name="table:data-pilot-field">
            <ref name="table-data-pilot-field-attlist"/>
            <optional>
                <ref name="table-data-pilot-level"/>
            </optional>
        </element>
    </define>
    <define name="table-data-pilot-field-attlist" combine="interleave">
        <attribute name="table:source-field-name">    
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-data-pilot-field-attlist" combine="interleave">
        <attribute name="table:orientation">    
            <choice>
                <value>row</value>
                <value>column</value>
                <value>data</value>
                <value>page</value>
                <value>hidden</value>
            </choice>
        </attribute>
    </define>
    <define name="table-data-pilot-field-attlist" combine="interleave">
        <optional>
            <attribute name="table:is-data-layout-field" a:defaultValue="false">    
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="table-data-pilot-field-attlist" combine="interleave">
        <optional>
            <attribute name="table:function">
                <choice>
                    <value>auto</value>
                    <value>average</value>
                    <value>count</value>
                    <value>countnums</value>
                    <value>max</value>
                    <value>min</value>
                    <value>product</value>
                    <value>stdev</value>
                    <value>stdevp</value>
                    <value>sum</value>
                    <value>var</value>
                    <value>varp</value>
                    <ref name="string"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="table-data-pilot-field-attlist" combine="interleave">
        <optional>
            <attribute name="table:used-hierarchy" a:defaultValue="-1">    
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="table-data-pilot-level">
        <element name="table:data-pilot-level">
            <ref name="table-data-pilot-level-attlist"/>
            <optional>
                <ref name="table-data-pilot-subtotals"/>
                <ref name="table-data-pilot-members"/>
            </optional>
        </element>
    </define>
    <define name="table-data-pilot-level-attlist" combine="interleave">
        <optional>
            <attribute name="table:showEmpty">    
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-data-pilot-subtotals">
        <element name="table:data-pilot-subtotals">
            <zeroOrMore>
                <ref name="table-data-pilot-subtotal"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="table-data-pilot-subtotal">
        <element name="table:data-pilot-subtotal">
            <ref name="table-data-pilot-subtotal-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-data-pilot-subtotal-attlist" combine="interleave">
        <attribute name="table:function">
            <choice>
                <value>auto</value>
                <value>average</value>
                <value>count</value>
                <value>countnums</value>
                <value>max</value>
                <value>min</value>
                <value>product</value>
                <value>stdev</value>
                <value>stdevp</value>
                <value>sum</value>
                <value>var</value>
                <value>varp</value>
                <ref name="string"/>
            </choice>
        </attribute>
    </define>
    <define name="table-data-pilot-members">
        <element name="table:data-pilot-members">
            <zeroOrMore>
                <ref name="table-data-pilot-member"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="table-data-pilot-member">
        <element name="table:data-pilot-member">
            <ref name="table-data-pilot-member-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-data-pilot-member-attlist" combine="interleave">
        <attribute name="table:name">    
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-data-pilot-member-attlist" combine="interleave">
        <optional>
            <attribute name="table:display">    
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-data-pilot-member-attlist" combine="interleave">
        <optional>
            <attribute name="table:show-details">    
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-consolidation">
        <element name="table:consolidation">
            <empty/>
        </element>
    </define>
    <define name="table-consolidation-attlist" combine="interleave">
        <attribute name="table:function">    
            <choice>
                <value>auto</value>
                <value>average</value>
                <value>count</value>
                <value>countnums</value>
                <value>max</value>
                <value>min</value>
                <value>product</value>
                <value>stdev</value>
                <value>stdevp</value>
                <value>sum</value>
                <value>var</value>
                <value>varp</value>
                <ref name="string"/>
            </choice>
        </attribute>
    </define>
    <define name="table-consolidation-attlist" combine="interleave">
        <attribute name="table:source-cell-range-addresses">    
            <ref name="cellRangeAddressList"/>
        </attribute>
    </define>
    <define name="table-consolidation-attlist" combine="interleave">
        <attribute name="table:target-cell-address">    
            <ref name="cellAddress"/>
        </attribute>
    </define>
    <define name="table-consolidation-attlist" combine="interleave">
        <optional>
            <attribute name="table:use-labels" a:defaultValue="none">
                <choice>
                    <value>none</value>
                    <value>row</value>
                    <value>coulmn</value>
                    <value>both</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="table-consolidation-attlist" combine="interleave">
        <optional>
            <attribute name="table:link-to-source-data" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-dde-links">
        <element name="table:dde-links">
            <oneOrMore>
                <ref name="table-dde-link"/>
            </oneOrMore>
        </element>
    </define>
    <define name="table-tracked-changes">
        <element name="table:tracked-changes">
            <ref name="table-tracked-changes-attlist"/>
            <zeroOrMore>
                <choice>
                    <ref name="table-cell-content-change"/>
                    <ref name="table-insertion"/>
                    <ref name="table-deletion"/>
                    <ref name="table-movement"/>
                </choice>
            </zeroOrMore>
        </element>
    </define>
    <define name="table-tracked-changes-attlist" combine="interleave">
        <optional>
            <attribute name="table:track-changes" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-insertion">
        <element name="table:insertion">
            <ref name="table-insertion-attlist"/>
            <ref name="common-table-change-attlist"/>
            <ref name="office-change-info"/>
            <optional>
                <ref name="table-dependencies"/>
            </optional>
            <optional>
                <ref name="table-deletions"/>
            </optional>
        </element>
    </define>
    <define name="table-insertion-attlist" combine="interleave">
        <attribute name="table:type">
            <choice>
                <value>row</value>
                <value>coulmn</value>
                <value>table</value>
            </choice>
        </attribute>
    </define>
    <define name="table-insertion-attlist" combine="interleave">
        <attribute name="table:position">
            <ref name="integer"/>
        </attribute>
    </define>
    <define name="table-insertion-attlist" combine="interleave">
        <optional>
            <attribute name="table:count" a:defaultValue="1">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="table-insertion-attlist" combine="interleave">
        <optional>
            <attribute name="table:table">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="table-dependencies">
        <element name="table:dependencies">
            <oneOrMore>
                <ref name="table-dependency"/>
            </oneOrMore>
        </element>
    </define>
    <define name="table-dependency">
        <element name="table:dependency">
            <attribute name="table:id">
                <ref name="string"/>
            </attribute>
            <empty/>
        </element>
    </define>
    <define name="table-deletions">
        <element name="table:deletions">
            <oneOrMore>
                <choice>
                    <ref name="table-cell-content-deletion"/>
                    <ref name="table-change-deletion"/>
                </choice>
            </oneOrMore>
        </element>
    </define>
    <define name="table-cell-content-deletion">
        <element name="table:cell-content-deletion">
            <optional>
                <attribute name="table:id">
                    <ref name="string"/>
                </attribute>
            </optional>
            <optional>
                <ref name="table-cell-address"/>
            </optional>
            <optional>
                <ref name="table-change-track-table-cell"/>
            </optional>
        </element>
    </define>
    <define name="table-change-deletion">
        <element name="table:change-deletion">
            <optional>
                <attribute name="table:id">
                    <ref name="string"/>
                </attribute>
            </optional>
            <empty/>
        </element>
    </define>
    <define name="table-deletion">
        <element name="table:deletion">
            <ref name="table-deletion-attlist"/>
            <ref name="common-table-change-attlist"/>
            <ref name="office-change-info"/>
            <optional>
                <ref name="table-dependencies"/>
            </optional>
            <optional>
                <ref name="table-deletions"/>
            </optional>
            <optional>
                <ref name="table-cut-offs"/>
            </optional>
        </element>
    </define>
    <define name="table-deletion-attlist" combine="interleave">
        <attribute name="table:type">
            <choice>
                <value>row</value>
                <value>coulmn</value>
                <value>table</value>
            </choice>
        </attribute>
    </define>
    <define name="table-deletion-attlist" combine="interleave">
        <attribute name="table:position">
            <ref name="integer"/>
        </attribute>
    </define>
    <define name="table-deletion-attlist" combine="interleave">
        <optional>
            <attribute name="table:table">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="table-deletion-attlist" combine="interleave">
        <optional>
            <attribute name="table:multi-deletion-spanned">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="table-cut-offs">
        <element name="table:cut-offs">
            <choice>
                <oneOrMore>
                    <ref name="table-movement-cut-off"/>
                </oneOrMore>
                <group>
                    <ref name="table-insertion-cut-off"/>
                    <zeroOrMore>
                        <ref name="table-movement-cut-off"/>
                    </zeroOrMore>
                </group>
            </choice>
        </element>
    </define>
    <define name="table-insertion-cut-off">
        <element name="table:insertion-cut-off">
            <ref name="table-insertion-cut-off-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-insertion-cut-off-attlist" combine="interleave">
        <attribute name="table:id">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-insertion-cut-off-attlist" combine="interleave">
        <attribute name="table:position">
            <ref name="integer"/>
        </attribute>
    </define>
    <define name="table-movement-cut-off">
        <element name="table:movement-cut-off">
            <ref name="table-movement-cut-off-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-movement-cut-off-attlist" combine="interleave">
        <choice>
            <attribute name="table:position">
                <ref name="integer"/>
            </attribute>
            <group>
                <attribute name="table:start-position">
                    <ref name="integer"/>
                </attribute>
                <attribute name="table:end-position">
                    <ref name="integer"/>
                </attribute>
            </group>
        </choice>
    </define>
    <define name="table-movement">
        <element name="table:movement">
            <ref name="common-table-change-attlist"/>
            <ref name="table-source-range-address"/>
            <ref name="table-target-range-address"/>
            <ref name="office-change-info"/>
            <optional>
                <ref name="table-dependencies"/>
            </optional>
            <optional>
                <ref name="table-deletions"/>
            </optional>
        </element>
    </define>
    <define name="table-source-range-address">
        <element name="table:source-range-address">
            <ref name="common-table-range-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="table-target-range-address">
        <element name="table:target-range-address">
            <ref name="common-table-range-attlist"/>
            <empty/>
        </element>
    </define>
    
    
    <define name="common-table-range-attlist" combine="interleave">
        <choice>
            <group>
                <ref name="common-table-cell-address-attlist"/>
            </group>
            <group>
                <ref name="common-table-cell-range-address-attlist"/>
            </group>
        </choice>
    </define>
    <define name="common-table-cell-address-attlist" combine="interleave">
        <attribute name="table:column">
            <ref name="integer"/>
        </attribute>
        <attribute name="table:row">
            <ref name="integer"/>
        </attribute>
        <attribute name="table:table">
            <ref name="integer"/>
        </attribute>
    </define>
    <define name="common-table-cell-range-address-attlist" combine="interleave">
        <attribute name="table:start-column">
            <ref name="integer"/>
        </attribute>
        <attribute name="table:start-row">
            <ref name="integer"/>
        </attribute>
        <attribute name="table:start-table">
            <ref name="integer"/>
        </attribute>
        <attribute name="table:end-column">
            <ref name="integer"/>
        </attribute>
        <attribute name="table:end-row">
            <ref name="integer"/>
        </attribute>
        <attribute name="table:end-table">
            <ref name="integer"/>
        </attribute>
    </define>
    <define name="table-change-track-table-cell" combine="interleave">
        <element name="table:change-track-table-cell">
            <ref name="table-change-track-table-cell-attlist"/>
            <zeroOrMore>
                <ref name="text-p"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="table-change-track-table-cell-attlist" combine="interleave">
        <optional>
            <attribute name="table:cell-address">
                <ref name="cellAddress"/>
            </attribute>
        </optional>
    </define>
    <define name="table-change-track-table-cell-attlist" combine="interleave">
        <optional>
            <attribute name="table:matrix-covered" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-change-track-table-cell-attlist" combine="interleave">
        <optional>
            <attribute name="table:formula">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:number-matrix-columns-spanned">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:number-matrix-rows-spanned">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
        <optional>
            <ref name="common-value-and-type-attlist"/>
        </optional>
    </define>
    <define name="table-cell-content-change">
        <element name="table:cell-content-change">
            <ref name="common-table-change-attlist"/>
            <ref name="table-cell-address"/>
            <ref name="office-change-info"/>
            <optional>
                <ref name="table-dependencies"/>
            </optional>
            <optional>
                <ref name="table-deletions"/>
            </optional>
            <ref name="table-previous"/>
        </element>
    </define>
    <define name="table-cell-address">
        <element name="table:cell-address">
            <ref name="common-table-cell-address-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="table-previous">
        <element name="table:previous">
            <optional>
                <attribute name="table:id">
                    <ref name="string"/>
                </attribute>
            </optional>
            <ref name="table-change-track-table-cell"/>
        </element>
    </define>
    <define name="common-table-change-attlist" combine="interleave">
        <attribute name="table:id">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="common-table-change-attlist" combine="interleave">
        <optional>
            <attribute name="table:acceptance-state" a:defaultValue="pending">
                <choice>
                    <value>accepted</value>
                    <value>rejected</value>
                    <value>pending</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="common-table-change-attlist" combine="interleave">
        <optional>
            <attribute name="table:rejecting-change-id">
                <ref name="string"/> 
            </attribute>
        </optional>
    </define>
    <define name="style-handout-master">
        <element name="style:handout-master">
            <ref name="style-handout-master-attlist"/>
            <zeroOrMore>
                <ref name="shape"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="style-handout-master-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:presentation-page-layout-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-layer-set">
        <element name="draw:layer-set">
            <zeroOrMore>
                <ref name="draw-layer"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="draw-layer">
        <element name="draw:layer">
            <ref name="draw-layer-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="draw-layer-attlist" combine="interleave">
        <attribute name="draw:name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="draw-layer-attlist" combine="interleave">
        <optional>
            <attribute name="draw:protected" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-layer-attlist" combine="interleave">
        <optional>
            <attribute name="draw:display" a:defaultValue="always">
                <choice>
                    <value>always</value>
                    <value>screen</value>
                    <value>printer</value>
                    <value>none</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="draw-page">
        <element name="draw:page">
            <ref name="draw-page-attlist"/>
            <optional>
                <ref name="office-forms"/>
            </optional>
            <zeroOrMore>
                <ref name="shape"/>
            </zeroOrMore>
            <optional>
                <ref name="presentation-animations"/>
            </optional>
            <optional>
                <ref name="presentation-notes"/>
            </optional>
        </element>
    </define>
    <define name="draw-page-attlist" combine="interleave">
        <optional>
            <attribute name="draw:name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-page-attlist" combine="interleave">
        <optional>
            <attribute name="draw:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-page-attlist" combine="interleave">
        <attribute name="draw:master-page-name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="draw-page-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:presentation-page-layout-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="shape">
        <choice>
            <ref name="draw-rect"/>
            <ref name="draw-line"/>
            <ref name="draw-polyline"/>
            <ref name="draw-polygon"/>
            <ref name="draw-path"/>
            <ref name="draw-circle"/>
            <ref name="draw-ellipse"/>
            <ref name="draw-g"/>
            <ref name="draw-page-thumbnail"/>
            <ref name="draw-frame"/>
            <ref name="draw-measure"/>
            <ref name="draw-caption"/>
            <ref name="draw-connector"/>
            <ref name="draw-control"/>
            <ref name="dr3d-scene"/>
        </choice>
    </define>
    <define name="draw-rect">
        <element name="draw:rect">
            <ref name="draw-rect-attlist"/>
            <ref name="common-draw-position-attlist"/>
            <ref name="common-draw-size-attlist"/>
            <ref name="common-draw-shape-with-text-and-styles-attlist"/>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <ref name="draw-glue-point"/>
            </zeroOrMore>
            <ref name="draw-text"/>
        </element>
    </define>
    <define name="draw-rect-attlist" combine="interleave">
        <optional>
            <attribute name="draw:corner-radius">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-line">
        <element name="draw:line">
            <ref name="draw-line-attlist"/>
            <ref name="common-draw-shape-with-text-and-styles-attlist"/>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <ref name="draw-glue-point"/>
            </zeroOrMore>
            <ref name="draw-text"/>
        </element>
    </define>
    <define name="draw-line-attlist" combine="interleave">
        <attribute name="svg:x1">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:y1">
            <ref name="coordinate"/>
        </attribute>
    </define>
    <define name="draw-line-attlist" combine="interleave">
        <attribute name="svg:x2">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:y2">
            <ref name="coordinate"/>
        </attribute>
    </define>
    <define name="draw-polyline">
        <element name="draw:polyline">
            <ref name="common-draw-points-attlist"/>
            <ref name="common-draw-position-attlist"/>
            <ref name="common-draw-size-attlist"/>
            <ref name="common-draw-viewbox-attlist"/>
            <ref name="common-draw-shape-with-text-and-styles-attlist"/>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <ref name="draw-glue-point"/>
            </zeroOrMore>
            <ref name="draw-text"/>
        </element>
    </define>
    <define name="common-draw-points-attlist">
        <attribute name="draw:points">
            <ref name="points"/>
        </attribute>
    </define>
    <define name="draw-polygon">
        <element name="draw:polygon">
            <ref name="common-draw-points-attlist"/>
            <ref name="common-draw-position-attlist"/>
            <ref name="common-draw-size-attlist"/>
            <ref name="common-draw-viewbox-attlist"/>
            <ref name="common-draw-shape-with-text-and-styles-attlist"/>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <ref name="draw-glue-point"/>
            </zeroOrMore>
            <ref name="draw-text"/>
        </element>
    </define>
    <define name="draw-path">
        <element name="draw:path">
            <ref name="common-draw-path-data-attlist"/>
            <ref name="common-draw-position-attlist"/>
            <ref name="common-draw-size-attlist"/>
            <ref name="common-draw-viewbox-attlist"/>
            <ref name="common-draw-shape-with-text-and-styles-attlist"/>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <ref name="draw-glue-point"/>
            </zeroOrMore>
            <ref name="draw-text"/>
        </element>
    </define>
    <define name="common-draw-path-data-attlist">
        <attribute name="svg:d">
            <ref name="pathData"/>
        </attribute>
    </define>
    <define name="draw-circle">
        <element name="draw:circle">
            <ref name="draw-circle-attlist"/>
            <ref name="common-draw-circle-ellipse-attlist"/>
            <ref name="common-draw-position-attlist"/>
            <ref name="common-draw-size-attlist"/>
            <ref name="common-draw-shape-with-text-and-styles-attlist"/>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <ref name="draw-glue-point"/>
            </zeroOrMore>
            <ref name="draw-text"/>
        </element>
    </define>
    <define name="common-draw-circle-ellipse-attlist" combine="interleave">
        <optional>
            <attribute name="svg:cx">
                <ref name="coordinate"/>
            </attribute>
            <attribute name="svg:cy">
                <ref name="coordinate"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-circle-attlist" combine="interleave">
        <optional>
            <attribute name="svg:r">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="common-draw-circle-ellipse-attlist" combine="interleave">
        <optional>
            <attribute name="draw:kind" a:defaultValue="full">
                <choice>
                    <value>full</value>
                    <value>section</value>
                    <value>cut</value>
                    <value>arc</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="common-draw-circle-ellipse-attlist" combine="interleave">
        <optional>
            <attribute name="draw:start-angle">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="common-draw-circle-ellipse-attlist" combine="interleave">
        <optional>
            <attribute name="draw:end-angle">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-ellipse">
        <element name="draw:ellipse">
            <ref name="common-draw-circle-ellipse-attlist"/>
            <ref name="draw-ellipse-attlist"/>
            <ref name="common-draw-position-attlist"/>
            <ref name="common-draw-size-attlist"/>
            <ref name="common-draw-shape-with-text-and-styles-attlist"/>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <ref name="draw-glue-point"/>
            </zeroOrMore>
            <ref name="draw-text"/>
        </element>
    </define>
    <define name="draw-ellipse-attlist" combine="interleave">
        <optional>
            <attribute name="svg:rx">
                <ref name="length"/>
            </attribute>
            <attribute name="svg:ry">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-connector">
        <element name="draw:connector">
            <ref name="draw-connector-attlist"/>
            <ref name="common-draw-shape-with-text-and-styles-attlist"/>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <ref name="draw-glue-point"/>
            </zeroOrMore>
            <ref name="draw-text"/>
        </element>
    </define>
    <define name="draw-connector-attlist" combine="interleave">
        <optional>
            <attribute name="draw:type" a:defaultValue="standard">
                <choice>
                    <value>standard</value>
                    <value>lines</value>
                    <value>line</value>
                    <value>curve</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="draw-connector-attlist" combine="interleave">
        <optional>
            <attribute name="svg:x1">
                <ref name="coordinate"/>
            </attribute>
            <attribute name="svg:y1">
                <ref name="coordinate"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-connector-attlist" combine="interleave">
        <optional>
            <attribute name="draw:start-shape">
                <ref name="IDREF"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-connector-attlist" combine="interleave">
        <optional>
            <attribute name="draw:start-glue-point">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-connector-attlist" combine="interleave">
        <optional>
            <attribute name="svg:x2">
                <ref name="coordinate"/>
            </attribute>
            <attribute name="svg:y2">
                <ref name="coordinate"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-connector-attlist" combine="interleave">
        <optional>
            <attribute name="draw:end-shape">
                <ref name="IDREF"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-connector-attlist" combine="interleave">
        <optional>
            <attribute name="draw:end-glue-point">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-connector-attlist" combine="interleave">
        <optional>
            <attribute name="draw:line-skew">
                <list>
                    <ref name="length"/>
                    <optional>
                        <ref name="length"/>
                        <optional>
                            <ref name="length"/>
                        </optional>
                    </optional>
                </list>
            </attribute>
        </optional>
    </define>
    <define name="draw-caption">
        <element name="draw:caption">
            <ref name="draw-caption-attlist"/>
            <ref name="common-draw-position-attlist"/>
            <ref name="common-draw-size-attlist"/>
            <ref name="common-draw-shape-with-text-and-styles-attlist"/>    
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <ref name="draw-glue-point"/>
            </zeroOrMore>
            <ref name="draw-text"/>
        </element>
    </define>
    <define name="draw-caption-attlist" combine="interleave">
        <optional>
            <attribute name="draw:caption-point-x">
                <ref name="coordinate"/>
            </attribute>
            <attribute name="draw:caption-point-y">
                <ref name="coordinate"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-caption-attlist" combine="interleave">
        <optional>
            <attribute name="draw:corner-radius">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-measure">
        <element name="draw:measure">
            <ref name="draw-measure-attlist"/>
            <ref name="common-draw-shape-with-text-and-styles-attlist"/>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <ref name="draw-glue-point"/>
            </zeroOrMore>
            <ref name="draw-text"/>
        </element>
    </define>
    <define name="draw-measure-attlist" combine="interleave">
        <attribute name="svg:x1">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:y1">
            <ref name="coordinate"/>
        </attribute>
    </define>
    <define name="draw-measure-attlist" combine="interleave">
        <attribute name="svg:x2">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:y2">
            <ref name="coordinate"/>
        </attribute>
    </define>
    <define name="draw-control">
        <element name="draw:control">
            <ref name="draw-control-attlist"/>
            <ref name="common-draw-position-attlist"/>
            <ref name="common-draw-size-attlist"/>
            <ref name="common-draw-shape-with-styles-attlist"/>
            <zeroOrMore>
                <ref name="draw-glue-point"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="draw-control-attlist" combine="interleave">
        <attribute name="draw:control">
            <ref name="IDREF"/>
        </attribute>
    </define>
    <define name="draw-page-thumbnail">
        <element name="draw:page-thumbnail">
            <ref name="draw-page-thumbnail-attlist"/>
            <ref name="common-draw-position-attlist"/>
            <ref name="common-draw-size-attlist"/>
            <ref name="presentation-shape-attlist"/>
            <ref name="common-draw-shape-with-styles-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="draw-page-thumbnail-attlist">
        <optional>
            <attribute name="draw:page-number">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-g">
        <element name="draw:g">
            <ref name="draw-g-attlist"/>
            <ref name="common-draw-z-index-attlist"/>
            <ref name="common-draw-name-attlist"/>
            <ref name="common-draw-id-attlist"/>
            <ref name="common-draw-style-name-attlist"/>
            <ref name="common-text-spreadsheet-shape-attlist"/>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <ref name="draw-glue-point"/>
            </zeroOrMore>
            <zeroOrMore>
                <ref name="shape"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="draw-g-attlist" combine="interleave">
        <optional>
            <attribute name="svg:y">
                <ref name="coordinate"/>
            </attribute>
        </optional>
    </define>
    <define name="common-draw-name-attlist" combine="interleave">
        <attribute name="draw:name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="common-draw-position-attlist">
        <optional>
            <attribute name="svg:x">
                <ref name="coordinate"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:y">
                <ref name="coordinate"/>
            </attribute>
        </optional>
    </define>
    <define name="common-draw-size-attlist">
        <optional>
            <attribute name="svg:width">
                <ref name="length"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:height">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="common-draw-transform-attlist">
        <optional>
            <attribute name="draw:transform">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="common-draw-viewbox-attlist">
        <attribute name="svg:viewBox">
            <list>
                <ref name="integer"/>
                <ref name="integer"/>
                <ref name="integer"/>
                <ref name="integer"/>
            </list>
        </attribute>
    </define>
    <define name="common-draw-style-name-attlist">
        <choice>
            <group>
                <optional>
                    <attribute name="draw:style-name">
                        <ref name="styleName"/>
                    </attribute>
                </optional>
                <optional>
                    <attribute name="draw:class-names">
                        <ref name="styleNames"/>
                    </attribute>
                </optional>
            </group>
            <group>
                <optional>
                    <attribute name="presentation:style-name">
                        <ref name="styleName"/>
                    </attribute>
                </optional>
                <optional>
                    <attribute name="presentation:class-names">
                        <ref name="styleNames"/>
                    </attribute>
                </optional>
            </group>
        </choice>
    </define>
    <define name="common-draw-text-style-name-attlist">
        <optional>
            <attribute name="draw:text-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="common-draw-layer-name-attlist">
        <attribute name="draw:layer">
            <data type="string"/>
        </attribute>
    </define>
    <define name="common-draw-id-attlist">
        <optional>
            <attribute name="draw:id">
                <ref name="ID"/>
            </attribute>
        </optional>
    </define>
    <define name="common-draw-z-index-attlist">
        <optional>
            <attribute name="draw:z-index">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="common-text-spreadsheet-shape-attlist" combine="interleave">
        <optional>
            <attribute name="table:end-cell-address">
                <ref name="cellAddress"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:end-x">
                <ref name="coordinate"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:end-y">
                <ref name="coordinate"/>
            </attribute>
        </optional>
    </define>
    <define name="common-text-spreadsheet-shape-attlist" combine="interleave">
        <optional>
            <attribute name="table:table-background">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="common-text-spreadsheet-shape-attlist" combine="interleave">
        <ref name="common-text-anchor-attlist"/>
    </define>
    
    <define name="common-text-anchor-attlist" combine="interleave">
        <optional>
            <attribute name="text:anchor-type">
                <choice>
                    <value>page</value>
                    <value>frame</value>
                    <value>paragraph</value>
                    <value>char</value>
                    <value>as-char</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="common-text-anchor-attlist" combine="interleave">
        <optional>
            <attribute name="text:anchor-page-number">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-text">
        <zeroOrMore>
            <choice>
                <ref name="text-p"/>
                <ref name="text-list"/>
            </choice>
        </zeroOrMore>
    </define>
    <define name="common-draw-shape-with-styles-attlist">
        <ref name="common-draw-z-index-attlist"/>
        <ref name="common-draw-id-attlist"/>
        <ref name="common-draw-layer-name-attlist"/>
        <ref name="common-draw-style-name-attlist"/>
        <ref name="common-draw-transform-attlist"/>
        <ref name="common-draw-name-attlist"/>
        <ref name="common-text-spreadsheet-shape-attlist"/>
    </define>
    <define name="common-draw-shape-with-text-and-styles-attlist">
        <ref name="common-draw-shape-with-styles-attlist"/>
        <ref name="common-draw-text-style-name-attlist"/>
    </define>
    <define name="draw-glue-point">
        <element name="draw:glue-point">
            <ref name="draw-glue-point-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="draw-glue-point-attlist" combine="interleave">
        <attribute name="draw:id">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </define>
    <define name="draw-glue-point-attlist" combine="interleave">
        <attribute name="svg:x">
            <choice>
                <ref name="distance"/> 
                <ref name="percent"/>
            </choice>
        </attribute>
        <attribute name="svg:y">
            <choice>
                <ref name="distance"/> 
                <ref name="percent"/>
            </choice>
        </attribute>
    </define>
    <define name="draw-glue-point-attlist" combine="interleave">
        <attribute name="draw:align">
            <choice>
                <value>top-left</value>
                <value>top</value>
                <value>top-right</value>
                <value>left</value>
                <value>center</value>
                <value>right</value>
                <value>bottom-left</value>
                <value>bottom-right</value>
            </choice>
        </attribute>
    </define>
    <define name="draw-glue-points-attlist" combine="interleave">
        <attribute name="draw:escape-direction">
            <choice>
                <value>auto</value>
                <value>left</value>
                <value>right</value>
                <value>up</value>
                <value>down</value>
                <value>horizontal</value>
                <value>vertical</value>
            </choice>
        </attribute>
    </define>
    <define name="draw-frame">
        <element name="draw:frame">
            <ref name="common-draw-shape-with-text-and-styles-attlist"/>
            <ref name="common-draw-position-attlist"/>
            <ref name="common-draw-rel-size-attlist"/>
            <ref name="presentation-shape-attlist"/>
            <oneOrMore>
                <ref name="draw-text-box"/>
                <ref name="draw-text-box"/>
                <ref name="draw-image"/>
                <ref name="draw-object"/>
                <ref name="draw-object-ole"/>
                <ref name="draw-applet"/>
                <ref name="draw-floating-frame"/>
                <ref name="draw-plugin"/>
            </oneOrMore>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <ref name="draw-glue-point"/>
            </zeroOrMore>
            <optional>
                <ref name="draw-image-map"/>
            </optional>
            <optional>
                <ref name="svg-desc"/>
            </optional>
            <optional>
                <choice>
                    <ref name="draw-contour-polygon"/>
                    <ref name="draw-contour-path"/>
                </choice>
            </optional>
        </element>
    </define>
    <define name="common-draw-rel-size-attlist">
        <ref name="common-draw-size-attlist"/>
        <optional>
            <attribute name="style:rel-width">
                <choice>
                    <ref name="percent"/>
                    <value>scale</value>
                    <value>scale-min</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:rel-height">
                <choice>
                    <ref name="percent"/>
                    <value>scale</value>
                    <value>scale-min</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="draw-text-box">
        <element name="draw:text-box">
            <ref name="draw-text-box-attlist"/>
            <zeroOrMore>
                <ref name="text-content"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="draw-text-box-attlist" combine="interleave">
        <optional>
            <attribute name="draw:chain-next-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-text-box-attlist" combine="interleave">
        <optional>
            <attribute name="draw:corner-radius">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-text-box-attlist" combine="interleave">
        <optional>
            <attribute name="fo:min-height">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:min-width">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="draw-text-box-attlist" combine="interleave">
        <optional>
            <attribute name="fo:max-height">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:max-width">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="draw-image">
        <element name="draw:image">
            <ref name="draw-image-attlist"/>
            <choice>
                <ref name="common-draw-data-attlist"/>
                <ref name="office-binary-data"/>
            </choice>
        </element>
    </define>
    <define name="common-draw-data-attlist" combine="interleave">
        <group>
            <attribute name="xlink:href">
                <ref name="anyURI"/>
            </attribute>
            <optional>
                <attribute name="xlink:type" a:defaultValue="simple">
                    <choice>
                        <value>simple</value>
                    </choice>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:show" a:defaultValue="embed">
                    <choice>
                        <value>embed</value>
                    </choice>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:actuate" a:defaultValue="onLoad">
                    <choice>
                        <value>onLoad</value>
                    </choice>
                </attribute>
            </optional>
        </group>
    </define>
    
    <define name="office-binary-data">
        <element name="office:binary-data">
            <ref name="base64Binary"/>
        </element>
    </define>
    <define name="draw-image-attlist" combine="interleave">
        <optional>
            <attribute name="draw:filter-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-object">
        <element name="draw:object">
            <ref name="draw-object-attlist"/>
            <choice>
                <ref name="common-draw-data-attlist"/>
                <ref name="office-document"/>
                <ref name="math-math"/>
            </choice>
        </element>
    </define>
    
    <define name="draw-object-ole">
        <element name="draw:object-ole">
            <ref name="draw-object-ole-attlist"/>
            <choice>
                <ref name="common-draw-data-attlist"/>
                <ref name="office-binary-data"/>
            </choice>
        </element>
    </define>
    <define name="draw-object-attlist" combine="interleave">
        <optional>
            <attribute name="draw:notify-on-update-of-ranges">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-object-ole-attlist" combine="interleave">
        <optional>
            <attribute name="draw:class-id"/>
        </optional>
    </define>
    <define name="draw-applet">
        <element name="draw:applet">
            <ref name="draw-applet-attlist"/>
            <optional>
                <ref name="common-draw-data-attlist"/>
            </optional>
            <zeroOrMore>
                <ref name="draw-param"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="draw-applet-attlist" combine="interleave">
        <optional>
            <attribute name="draw:code"/>
        </optional>
    </define>
    <define name="draw-applet-attlist" combine="interleave">
        <optional>
            <attribute name="draw:object"/>
        </optional>
    </define>
    <define name="draw-applet-attlist" combine="interleave">
        <optional>
            <attribute name="draw:archive"/>
        </optional>
    </define>
    <define name="draw-applet-attlist" combine="interleave">
        <optional>
            <attribute name="draw:may-script" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-plugin">
        <element name="draw:plugin">
            <ref name="draw-plugin-attlist"/>
            <ref name="common-draw-data-attlist"/>
            <zeroOrMore>
                <ref name="draw-param"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="draw-plugin-attlist" combine="interleave">
        <optional>
            <attribute name="draw:mime-type"/>
        </optional>
    </define>
    <define name="draw-param">
        <element name="draw:param">
            <ref name="draw-param-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="draw-param-attlist" combine="interleave">
        <optional>
            <attribute name="draw:name"/>
        </optional>
    </define>
    <define name="draw-param-attlist" combine="interleave">
        <optional>
            <attribute name="draw:value"/>
        </optional>
    </define>
    <define name="draw-floating-frame">
        <element name="draw:floating-frame">
            <ref name="draw-floating-frame-attlist"/>
            <ref name="common-draw-data-attlist"/>
        </element>
    </define>
    <define name="draw-floating-frame-attlist" combine="interleave">
        <optional>
            <attribute name="draw:frame-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-contour-polygon">
        <element name="draw:contour-polygon">
            <ref name="common-draw-size-attlist"/>
            <ref name="common-draw-viewbox-attlist"/>
            <ref name="common-draw-points-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="draw-contour-path">
        <element name="draw:contour-path">
            <ref name="common-draw-size-attlist"/>
            <ref name="common-draw-viewbox-attlist"/>
            <ref name="common-draw-path-data-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="svg-desc">
        <element name="svg:desc">
            <text/>
        </element>
    </define>
    <define name="draw-a">
        <element name="draw:a">
            <ref name="draw-a-attlist"/>
            <ref name="draw-frame"/>
        </element>
    </define>
    <define name="draw-a-attlist" combine="interleave">
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
        <optional>
            <attribute name="xlink:type" a:defaultValue="simple">
                <value>simple</value>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate" a:defaultValue="onRequest">
                <choice>
                    <value>onRequest</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="draw-a-attlist" combine="interleave">
        <optional>
            <attribute name="office:target-frame-name">
                <ref name="targetFrameName"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:show">
                <choice>
                    <value>new</value>
                    <value>replace</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="draw-a-attlist" combine="interleave">
        <optional>
            <attribute name="office:name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-a-attlist" combine="interleave">
        <optional>
            <attribute name="office:server-map" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-image-map">
        <element name="draw:image-map">
            <zeroOrMore>
                <choice>
                    <ref name="draw-area-rectangle"/>
                    <ref name="draw-area-circle"/>
                    <ref name="draw-area-polygon"/>
                </choice>
            </zeroOrMore>
        </element>
    </define>
    <define name="draw-area-rectangle">
        <element name="draw:area-rectangle">
            <ref name="common-draw-area-attlist"/>
            <attribute name="svg:x">
                <ref name="coordinate"/>
            </attribute>
            <attribute name="svg:y">
                <ref name="coordinate"/>
            </attribute>
            <attribute name="svg:width">
                <ref name="length"/>
            </attribute>
            <attribute name="svg:height">
                <ref name="length"/>
            </attribute>
            <optional>
                <ref name="svg-desc"/>
            </optional>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
        </element>
    </define>
    <define name="draw-area-circle">
        <element name="draw:area-circle">
            <ref name="common-draw-area-attlist"/>
            <attribute name="svg:cx">
                <ref name="coordinate"/>
            </attribute>
            <attribute name="svg:cy">
                <ref name="coordinate"/>
            </attribute>
            <attribute name="svg:r">
                <ref name="length"/>
            </attribute>
            <optional>
                <ref name="svg-desc"/>
            </optional>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
        </element>
    </define>
    <define name="draw-area-polygon">
        <element name="draw:area-polygon">
            <ref name="common-draw-area-attlist"/>
            <attribute name="svg:x">
                <ref name="coordinate"/>
            </attribute>
            <attribute name="svg:y">
                <ref name="coordinate"/>
            </attribute>
            <attribute name="svg:width">
                <ref name="length"/>
            </attribute>
            <attribute name="svg:height">
                <ref name="length"/>
            </attribute>
            <ref name="common-draw-viewbox-attlist"/>
            <ref name="common-draw-points-attlist"/>
            <optional>
                <ref name="svg-desc"/>
            </optional>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
        </element>
    </define>
    <define name="common-draw-area-attlist" combine="interleave">
        <optional>
            <attribute name="xlink:href">
                <ref name="anyURI"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:type" a:defaultValue="simple">
                <choice>
                    <value>simple</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="office:target-frame-name">
                <ref name="targetFrameName"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:show">
                <choice>
                    <value>new</value>
                    <value>replace</value>
                </choice>
                </attribute>
        </optional>
    </define>
    <define name="common-draw-area-attlist" combine="interleave">
        <optional>
            <attribute name="office:name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="common-draw-area-attlist" combine="interleave">
        <optional>
            <attribute name="draw:nohref">
                <choice>
                    <value>nohref</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-scene">
        <element name="dr3d:scene">
            <ref name="dr3d-scene-attlist"/>
            <ref name="common-draw-position-attlist"/>
            <ref name="common-draw-size-attlist"/>
            <ref name="common-draw-style-name-attlist"/>
            <ref name="common-draw-z-index-attlist"/>
            <ref name="common-draw-id-attlist"/>
            <ref name="common-draw-layer-name-attlist"/>
            <ref name="common-text-spreadsheet-shape-attlist"/>
            <ref name="common-dr3d-transform-attlist"/>
            <zeroOrMore>
                <ref name="dr3d-light"/>
            </zeroOrMore>
            <zeroOrMore>
                <ref name="shapes3d"/>
            </zeroOrMore>
        </element>
    </define>
    
    <define name="shapes3d">
        <choice>
            <ref name="dr3d-scene"/>
            <ref name="dr3d-extrude"/>
            <ref name="dr3d-sphere"/>
            <ref name="dr3d-rotate"/>
            <ref name="dr3d-cube"/>
        </choice>
    </define>
    <define name="dr3d-scene-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:vrp">
                <ref name="vector3D"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="dr3d:vpn">
                <ref name="vector3D"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="dr3d:vup">
                <ref name="vector3D"/>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-scene-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:projection">
                <choice>
                    <value>parallel</value>
                    <value>perspective</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-scene-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:distance">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-scene-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:focal-length">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-scene-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:shadow-slant">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-scene-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:shade-mode">
                <choice>
                    <value>flat</value>
                    <value>phong</value>
                    <value>gouraud</value>
                    <value>draft</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-scene-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:ambient-color">
                <ref name="color"/>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-scene-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:lighting-mode">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="common-dr3d-transform-attlist">
        <optional>
            <attribute name="dr3d:transform"/>
        </optional>
    </define>
    <define name="dr3d-light">
        <element name="dr3d:light">
            <ref name="dr3d-light-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="dr3d-light-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:diffuse-color">
                <ref name="color"/>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-light-attlist" combine="interleave">
        <attribute name="dr3d:direction">
            <ref name="vector3D"/>
        </attribute>
    </define>
    <define name="dr3d-light-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:enabled">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-light-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:specular">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-cube">
        <element name="dr3d:cube">
            <ref name="dr3d-cube-attlist"/>
            <ref name="common-draw-z-index-attlist"/>
            <ref name="common-draw-id-attlist"/>
            <ref name="common-draw-layer-name-attlist"/>
            <ref name="common-draw-style-name-attlist"/>
            <ref name="common-dr3d-transform-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="dr3d-cube-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:min-edge">
                <ref name="vector3D"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="dr3d:max-edge">
                <ref name="vector3D"/>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-sphere">
        <element name="dr3d:sphere">
            <ref name="dr3d-sphere-attlist"/>
            <ref name="common-draw-z-index-attlist"/>
            <ref name="common-draw-id-attlist"/>
            <ref name="common-draw-layer-name-attlist"/>
            <ref name="common-draw-style-name-attlist"/>
            <ref name="common-dr3d-transform-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="dr3d-sphere-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:center">
                <ref name="vector3D"/>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-sphere-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:size">
                <ref name="vector3D"/>
            </attribute>
        </optional>
    </define>
    <define name="dr3d-extrude">
        <element name="dr3d:extrude">
            <ref name="common-draw-path-data-attlist"/>
            <ref name="common-draw-viewbox-attlist"/>
            <ref name="common-draw-id-attlist"/>
            <ref name="common-draw-z-index-attlist"/>
            <ref name="common-draw-layer-name-attlist"/>
            <ref name="common-draw-style-name-attlist"/>
            <ref name="common-dr3d-transform-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="dr3d-rotate">
        <element name="dr3d:rotate">
            <ref name="common-draw-viewbox-attlist"/>
            <ref name="common-draw-path-data-attlist"/>
            <ref name="common-draw-z-index-attlist"/>
            <ref name="common-draw-id-attlist"/>
            <ref name="common-draw-layer-name-attlist"/>
            <ref name="common-draw-style-name-attlist"/>
            <ref name="common-dr3d-transform-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="presentation-shape-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:class">
                <ref name="presentation-classes"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-classes">
        <choice>
            <value>title</value>
            <value>outline</value>
            <value>subtitle</value>
            <value>text</value>
            <value>graphic</value>
            <value>object</value>
            <value>chart</value>
            <value>table</value>
            <value>orgchart</value>
            <value>page</value>
            <value>notes</value>
        </choice>
    </define>
    <define name="presentation-shape-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:placeholder">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-shape-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:user-transformed">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-animations">
        <element name="presentation:animations">
            <zeroOrMore>
                <choice>
                    <ref name="presentation-show-shape"/>
                    <ref name="presentation-show-text"/>
                    <ref name="presentation-hide-shape"/>
                    <ref name="presentation-hide-text"/>
                    <ref name="presentation-dim"/>
                    <ref name="presentation-play"/>
                </choice>
            </zeroOrMore>
        </element>
    </define>
    <define name="presentation-sound">
        <element name="presentation:sound">
            <ref name="presentation-sound-attlist"/>
            <attribute name="xlink:href">
                <ref name="anyURI"/>
            </attribute>
            <optional>
                <attribute name="xlink:type" a:defaultValue="simple">
                    <choice>
                        <value>simple</value>
                    </choice>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:actuate" a:defaultValue="onRequest">
                    <choice>
                        <value>onRequest</value>
                    </choice>
                </attribute>
            </optional>
            <empty/>
        </element>
    </define>
    <define name="presentation-sound-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:play-full">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-show-shape">
        <element name="presentation:show-shape">
            <ref name="common-presentation-effect-attlist"/>
            <optional>
                <ref name="presentation-sound"/>
            </optional>
        </element>
    </define>
    <define name="common-presentation-effect-attlist" combine="interleave">
        <attribute name="draw:shape-id">
            <ref name="IDREF"/>
        </attribute>
    </define>
    <define name="common-presentation-effect-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:effect" a:defaultValue="none">
                <ref name="presentationEffects"/>
            </attribute>
        </optional>
    </define>
    <define name="presentationEffects">
        <choice>
            <value>none</value>
            <value>fade</value>
            <value>move</value>
            <value>stripes</value>
            <value>open</value>
            <value>close</value>
            <value>dissolve</value>
            <value>wavyline</value>
            <value>random</value>
            <value>lines</value>
            <value>laser</value>
            <value>appear</value>
            <value>hide</value>
            <value>move-short</value>
            <value>checkerboard</value>
            <value>rotate</value>
            <value>stretch</value>
        </choice>
    </define>
    <define name="common-presentation-effect-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:direction" a:defaultValue="none">
                <ref name="presentationEffectDirections"/>
            </attribute>
        </optional>
    </define>
    <define name="presentationEffectDirections">
        <choice>
            <value>none</value>
            <value>from-left</value>
            <value>from-top</value>
            <value>from-right</value>
            <value>from-bottom</value>
            <value>from-center</value>
            <value>from-upper-left</value>
            <value>from-upper-right</value>
            <value>from-lower-left</value>
            <value>from-lower-right</value>
            <value>to-left</value>
            <value>to-top</value>
            <value>to-right</value>
            <value>to-bottom</value>
            <value>to-upper-left</value>
            <value>to-upper-right</value>
            <value>to-lower-right</value>
            <value>to-lower-left</value>
            <value>path</value>
            <value>spiral-inward-left</value>
            <value>spiral-inward-right</value>
            <value>spiral-outward-left</value>
            <value>spiral-outward-right</value>
            <value>vertical</value>
            <value>horizontal</value>
            <value>to-center</value>
            <value>clockwise</value>
            <value>counter-clockwise</value>
        </choice>
    </define>
    <define name="common-presentation-effect-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:speed" a:defaultValue="medium">
                <ref name="presentationSpeeds"/>
            </attribute>
        </optional>
    </define>
    <define name="presentationSpeeds">
        <choice>
            <value>slow</value>
            <value>medium</value>
            <value>fast</value>
        </choice>
    </define>
    <define name="common-presentation-effect-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:start-scale" a:defaultValue="100%">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="common-presentation-effect-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:path-id"/>
        </optional>
    </define>
    <define name="presentation-show-text">
        <element name="presentation:show-text">
            <ref name="common-presentation-effect-attlist"/>
            <optional>
                <ref name="presentation-sound"/>
            </optional>
        </element>
    </define>
    <define name="presentation-hide-shape">
        <element name="presentation:hide-shape">
            <ref name="common-presentation-effect-attlist"/>
            <optional>
                <ref name="presentation-sound"/>
            </optional>
        </element>
    </define>
    <define name="presentation-hide-text">
        <element name="presentation:hide-text">
            <ref name="common-presentation-effect-attlist"/>
            <optional>
                <ref name="presentation-sound"/>
            </optional>
        </element>
    </define>
    <define name="presentation-dim">
        <element name="presentation:dim">
            <ref name="presentation-dim-attlist"/>
            <optional>
                <ref name="presentation-sound"/>
            </optional>
        </element>
    </define>
    <define name="presentation-dim-attlist" combine="interleave">
        <attribute name="draw:shape-id">
            <ref name="IDREF"/>
        </attribute>
    </define>
    <define name="presentation-dim-attlist" combine="interleave">
        <attribute name="draw:color">
            <ref name="color"/>
        </attribute>
    </define>
    <define name="presentation-play">
        <element name="presentation:play">
            <ref name="presentation-play-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="presentation-play-attlist" combine="interleave">
        <attribute name="draw:shape-id">
            <ref name="IDREF"/>
        </attribute>
        <optional>
            <attribute name="presentation:speed" a:defaultValue="medium">
                <ref name="presentationSpeeds"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-event-listener">
        <element name="presentation:event-listener">
            <ref name="presentation-event-listener-attlist"/>
            <optional>
                <ref name="presentation-sound"/>
            </optional>
        </element>
    </define>
    <define name="presentation-event-listener-attlist" combine="interleave">
        <attribute name="script:event-name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="presentation-event-listener-attlist" combine="interleave">
        <attribute name="presentation:action">
            <choice>
                <value>none</value>
                <value>previous-page</value>
                <value>next-page</value>
                <value>first-page</value>
                <value>last-page</value>
                <value>hide</value>
                <value>stop</value>
                <value>execute</value>
                <value>show</value>
                <value>verb</value>
                <value>fade-out</value>
                <value>sound</value>
            </choice>
        </attribute>
    </define>
    <define name="presentation-event-listener-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:effect" a:defaultValue="none">
                <ref name="presentationEffects"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-event-listener-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:direction" a:defaultValue="none">
                <ref name="presentationEffectDirections"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-event-listener-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:speed" a:defaultValue="medium">
                <ref name="presentationSpeeds"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-event-listener-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:start-scale" a:defaultValue="100%">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-event-listener-attlist" combine="interleave">
        <optional>
            <attribute name="xlink:href">
                <ref name="anyURI"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:type" a:defaultValue="simple">
                <choice>
                    <value>simple</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:show" a:defaultValue="emebed">
                <choice>
                    <value>embed</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate" a:defaultValue="onRequest">
                <choice>
                    <value>onRequest</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="presentation-event-listener-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:verb">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-settings">
        <optional>
            <element name="presentation:settings">
                <ref name="presentation-settings-attlist"/>
                <zeroOrMore>
                    <ref name="presentation-show"/>
                </zeroOrMore>
            </element>
        </optional>
    </define>
    <define name="presentation-settings-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:start-page">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-settings-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:show">
                <ref name="string"/> <!-- Note to the TC: This was a styleName -->
            </attribute>
        </optional>
    </define>
    <define name="presentation-settings-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:full-screen" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-settings-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:endless" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-settings-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:pause">
                <ref name="duration"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-settings-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:show-logo" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-settings-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:force-manual" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-settings-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:mouse-visible" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-settings-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:mouse-as-pen" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-settings-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:start-with-navigator"
                       a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-settings-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:animations" a:defaultValue="enabled">
                <choice>
                    <value>enabled</value>
                    <value>disabled</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="presentation-settings-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:transition-on-click"
                       a:defaultValue="enabled">
                <choice>
                    <value>enabled</value>
                    <value>disabled</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="presentation-settings-attlist" combine="interleave">
        <optional>
            <attribute name="presentation:stay-on-top" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="presentation-show">
        <element name="presentation:show">
            <ref name="presentation-show-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="presentation-show-attlist" combine="interleave">
        <attribute name="presentation:name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="presentation-show-attlist" combine="interleave">
        <attribute name="presentation:pages"/>
    </define>
    <define name="chart-chart">
        <element name="chart:chart">
            <ref name="chart-chart-attlist"/>
            <optional>
                <ref name="chart-title"/>
            </optional>
            <optional>
                <ref name="chart-subtitle"/>
            </optional>
            <optional>
                <ref name="chart-footer"/>
            </optional>
            <optional>
                <ref name="chart-legend"/>
            </optional>
            <ref name="chart-plot-area"/>
            <optional>
                <ref name="table-table"/>
            </optional>
        </element>
    </define>
    <define name="chart-chart-attlist" combine="interleave">
        <attribute name="chart:class">
            <ref name="namespacedToken"/>
        </attribute>
    </define>
    <define name="chart-chart-attlist" combine="interleave">
        <ref name="common-draw-size-attlist"/>
    </define>
    <define name="chart-chart-attlist" combine="interleave">
        <optional>
            <attribute name="chart:column-mapping">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-chart-attlist" combine="interleave">
        <optional>
            <attribute name="chart:row-mapping">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-chart-attlist" combine="interleave">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-title">
        <element name="chart:title">
            <ref name="chart-title-attlist"/>
            <optional>
                <ref name="text-p"/>
            </optional>
        </element>
    </define>
    <define name="chart-title-attlist" combine="interleave">
        <optional>
            <attribute name="table:cell-range">
                <ref name="cellAddress"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-title-attlist" combine="interleave">
        <ref name="common-draw-position-attlist"/>
    </define>
    <define name="chart-title-attlist" combine="interleave">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-subtitle">
        <element name="chart:subtitle">
            <ref name="chart-title-attlist"/>
            <optional>
                <ref name="text-p"/>
            </optional>
        </element>
    </define>
    <define name="chart-footer">
        <element name="chart:footer">
            <ref name="chart-title-attlist"/>
            <optional>
                <ref name="text-p"/>
            </optional>
        </element>
    </define>
    <define name="chart-legend">
        <element name="chart:legend">
            <ref name="chart-legend-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="chart-legend-attlist" combine="interleave">
        <choice>
            <group>
                <attribute name="chart:legend-position">
                    <choice>
                        <value>start</value>
                        <value>end</value>
                        <value>top</value>
                        <value>bottom</value>
                    </choice>
                </attribute>
                <optional>
                    <attribute name="chart:legend-align">
                        <choice>
                            <value>start</value>
                            <value>center</value>
                            <value>end</value>
                        </choice>
                    </attribute>
                </optional>
            </group>
            <attribute name="chart:legend-position">
                <choice>
                    <value>top-start</value>
                    <value>bottom-start</value>
                    <value>top-end</value>
                    <value>bottom-end</value>
                </choice>
            </attribute>
            <empty/>
        </choice>
    </define>
    <define name="chart-legend-attlist" combine="interleave">
        <ref name="common-draw-position-attlist"/>
    </define>
    <define name="chart-legend-attlist" combine="interleave">
        <choice>
            <attribute name="style:legend-expansion">
                <choice>
                    <value>wide</value>
                    <value>high</value>
                    <value>balanced</value>
                </choice>
            </attribute>
            <group>
                <attribute name="style:legend-expansion">
                    <value>custom</value>
                </attribute>
                <attribute name="style:legend-expansion-aspect-ratio">
                    <ref name="double"/>
                </attribute>
            </group>
            <empty/>
        </choice>
    </define>
    <define name="chart-legend-attlist" combine="interleave">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-plot-area">
        <element name="chart:plot-area">
            <ref name="chart-plot-area-attlist"/>
            <zeroOrMore>
                <ref name="dr3d-light"/>
            </zeroOrMore>
            <zeroOrMore>
                <ref name="chart-axis"/>
            </zeroOrMore>
            <zeroOrMore>
                <ref name="chart-series"/>
            </zeroOrMore>
            <optional>
                <ref name="chart-stock-gain-marker"/>
            </optional>
            <optional>
                <ref name="chart-stock-loss-marker"/>
            </optional>
            <optional>
                <ref name="chart-stock-range-line"/>
            </optional>
            <optional>
                <ref name="chart-wall"/>
            </optional>
            <optional>
                <ref name="chart-floor"/>
            </optional>
        </element>
    </define>
    <define name="chart-plot-area-attlist" combine="interleave">
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
    </define>
    <define name="chart-plot-area-attlist" combine="interleave">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-plot-area-attlist" combine="interleave">
        <optional>
            <attribute name="table:cell-range-address">
                <ref name="cellRangeAddress"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-plot-area-attlist" combine="interleave">
        <optional>
            <attribute name="chart:data-source-has-labels" a:defaultValue="none">
                <choice>
                    <value>none</value>
                    <value>row</value>
                    <value>column</value>
                    <value>both</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="chart-plot-area-attlist" combine="interleave">
        <ref name="dr3d-scene-attlist"/>
        <ref name="common-dr3d-transform-attlist"/>
    </define>
    <define name="chart-wall">
        <element name="chart:wall">
            <ref name="chart-wall-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="chart-wall-attlist" combine="interleave">
        <optional>
            <attribute name="svg:width">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-wall-attlist" combine="interleave">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-floor">
        <element name="chart:floor">
            <ref name="chart-floor-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="chart-floor-attlist" combine="interleave">
        <optional>
            <attribute name="svg:width">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-floor-attlist" combine="interleave">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-axis">
        <element name="chart:axis">
            <ref name="chart-axis-attlist"/>
            <optional>
                <ref name="chart-title"/>
            </optional>
            <optional>
                <ref name="chart-categories"/>
            </optional>
            <zeroOrMore>
                <ref name="chart-grid"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="chart-axis-attlist" combine="interleave">
        <attribute name="chart:dimension">
            <choice>
                <value>x</value>
                <value>y</value>
                <value>z</value>
            </choice>
        </attribute>
    </define>
    <define name="chart-axis-attlist" combine="interleave">
        <optional>
            <attribute name="chart:name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-axis-attlist" combine="interleave">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-grid">
        <element name="chart:grid">
            <ref name="chart-grid-attlist"/>
        </element>
    </define>
    <define name="chart-grid-attlist" combine="interleave">
        <optional>
            <attribute name="chart:class" a:defaultValue="major">
                <choice>
                    <value>major</value>
                    <value>minor</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="chart-grid-attlist" combine="interleave">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-series">
        <element name="chart:series">
            <ref name="chart-series-attlist"/>
            <zeroOrMore>
                <ref name="chart-domain"/>
            </zeroOrMore>
            <optional>
                <ref name="chart-mean-value"/>
            </optional>
            <optional>
                <ref name="chart-regression-curve"/>
            </optional>
            <optional>
                <ref name="chart-error-indicator"/>
            </optional>
            <zeroOrMore>
                <ref name="chart-data-point"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="chart-series-attlist" combine="interleave">
        <optional>
            <attribute name="chart:values-cell-range-address">
                <ref name="cellRangeAddress"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-series-attlist" combine="interleave">
        <optional>
            <attribute name="chart:label-cell-address">
                <ref name="cellAddress"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-series-attlist" combine="interleave">
        <optional>
            <attribute name="chart:class">
                <ref name="namespacedToken"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-series-attlist" combine="interleave">
        <optional>
            <attribute name="chart:attached-axis">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-series-attlist" combine="interleave">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-domain">
        <element name="chart:domain">
        <optional>
            <attribute name="table:cell-range-address">
                <ref name="cellRangeAddress"/>
            </attribute>
        </optional>
        </element>
    </define>
    <define name="chart-categories">
        <element name="chart:categories">
        <optional>
            <attribute name="table:cell-range-address">
                <ref name="cellRangeAddress"/>
            </attribute>
        </optional>
        </element>
    </define>
    <define name="chart-data-point">
        <element name="chart:data-point">
            <ref name="chart-data-point-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="chart-data-point-attlist" combine="interleave">
        <optional>
            <attribute name="chart:repeated">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-data-point-attlist" combine="interleave">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    
    <define name="chart-mean-value">
        <element name="chart:mean-value">
            <ref name="chart-mean-value-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="chart-mean-value-attlist" combine="interleave">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-error-indicator">
        <element name="chart:error-indicator">
            <ref name="chart-error-indicator-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="chart-error-indicator-attlist" combine="interleave">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-regression-curve">
        <element name="chart:regression-curve">
            <ref name="chart-regression-curve-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="chart-regression-curve-attlist" combine="interleave">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="chart-stock-gain-marker">
        <element name="chart:stock-gain-marker">
            <ref name="common-stock-marker-attlist"/>
        </element>
    </define>
    <define name="chart-stock-loss-marker">
        <element name="chart:stock-loss-marker">
            <ref name="common-stock-marker-attlist"/>
        </element>
    </define>
    <define name="chart-stock-range-line">
        <element name="chart:stock-range-line">
            <ref name="common-stock-marker-attlist"/>
        </element>
    </define>
    <define name="common-stock-marker-attlist">
        <optional>
            <attribute name="chart:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="office-forms">
        <optional>
            <element name="office:forms">
                <ref name="office-forms-attlist"/>
                <zeroOrMore>
                    <ref name="form-form"/>
                </zeroOrMore>
            </element>
        </optional>
    </define>
    <define name="office-forms-attlist" combine="interleave">
        <optional>
            <attribute name="form:automatic-focus" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="office-forms-attlist" combine="interleave">
        <optional>
            <attribute name="form:apply-design-mode" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="form-form">
        <element name="form:form">
            <ref name="common-form-control-attlist"/>
            <ref name="form-form-attlist"/>
            <optional>
                <ref name="form-properties"/>
            </optional>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
            <zeroOrMore>
                <choice>
                    <ref name="controls"/>
                    <ref name="form-form"/>
                </choice>
            </zeroOrMore>
        </element>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="xlink:href">
                <ref name="anyURI"/>
            </attribute>
            <optional>
                <attribute name="xlink:type" a:defaultValue="simple">
                    <value>simple</value>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:actuate" a:defaultValue="onRequest">
                    <value>onRequest</value>
                </attribute>
            </optional>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="office:target-frame" a:defaultValue="_blank">
                <ref name="targetFrameName"/>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:method" a:defaultValue="get">
                <choice>
                    <value>get</value>
                    <value>post</value>
                    <ref name="string"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:enctype" 
                        a:defaultValue="application/x-www-form-urlencoded">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:allow-deletes" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:allow-inserts" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:allow-updates" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:apply-filter" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:command-type" a:defaultValue="command">
                <choice>
                    <value>table</value>
                    <value>query</value>
                    <value>command</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:command"/>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:datasource">
                <choice>
                    <ref name="anyURI"/>
                    <ref name="string"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:master-fields">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:detail-fields">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:escape-processing" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:filter">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:ignore-result" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:navigation-mode">
                <ref name="navigation"/>
            </attribute>
        </optional>
    </define>
    
    <define name="navigation">
        <choice>
            <value>none</value>
            <value>current</value>
            <value>parent</value>
        </choice>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:order">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="form-form-attlist" combine="interleave">
        <optional>
            <attribute name="form:tab-cycle">
                <ref name="tab-cycles"/>
            </attribute>
        </optional>
    </define>
    <define name="tab-cycles">
        <choice>
            <value>records</value>
            <value>current</value>
            <value>page</value>
        </choice>
    </define>
    <define name="column-controls" combine="choice">
        <element name="form:text">
            <ref name="form-text-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="controls" combine="choice">
        <ref name="column-controls"/>
    </define>
    <define name="form-text-attlist">
        <ref name="form-control-attlist"/>
        <ref name="common-current-value-attlist"/>
        <ref name="common-disabled-attlist"/>
        <ref name="common-maxlength-attlist"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-readonly-attlist"/>
        <ref name="common-tab-attlist"/>
        <ref name="common-title-attlist"/>
        <ref name="common-value-attlist"/>
        <ref name="common-convert-empty-attlist"/>
        <ref name="common-data-field-attlist"/>
    </define>
    <define name="form-control-attlist">
        <ref name="common-form-control-attlist"/>
        <ref name="common-control-id-attlist"/>
    </define>
    <define name="common-form-control-content">
        <optional>
            <ref name="form-properties"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
    </define>
    <define name="column-controls" combine="choice">
        <element name="form:textarea">
            <ref name="form-textarea-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-textarea-attlist">
        <ref name="form-control-attlist"/>
        <ref name="common-current-value-attlist"/>
        <ref name="common-disabled-attlist"/>
        <ref name="common-maxlength-attlist"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-readonly-attlist"/>
        <ref name="common-tab-attlist"/>
        <ref name="common-title-attlist"/>
        <ref name="common-value-attlist"/>
        <ref name="common-convert-empty-attlist"/>
        <ref name="common-data-field-attlist"/>
    </define>
    <define name="controls" combine="choice">
        <element name="form:password">
            <ref name="form-password-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-password-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="common-disabled-attlist"/>
        <ref name="common-maxlength-attlist"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-tab-attlist"/>
        <ref name="common-title-attlist"/>
        <ref name="common-value-attlist"/>
        <ref name="common-convert-empty-attlist"/>
    </define>
    <define name="form-password-attlist" combine="interleave">
        <optional>
            <attribute name="form:echo-char" a:defaultValue="*">
                <ref name="character"/>
            </attribute>
        </optional>
    </define>
    <define name="controls" combine="choice">
        <element name="form:file">
            <ref name="form-file-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-file-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="common-current-value-attlist"/>
        <ref name="common-disabled-attlist"/>
        <ref name="common-maxlength-attlist"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-readonly-attlist"/>
        <ref name="common-tab-attlist"/>
        <ref name="common-title-attlist"/>
        <ref name="common-value-attlist"/>
    </define>
    <define name="column-controls" combine="choice">
        <element name="form:formatted-text">
            <ref name="form-formatted-text-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-formatted-text-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="common-current-value-attlist"/>
        <ref name="common-disabled-attlist"/>
        <ref name="common-maxlength-attlist"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-readonly-attlist"/>
        <ref name="common-tab-attlist"/>
        <ref name="common-title-attlist"/>
        <ref name="common-value-attlist"/>
        <ref name="common-convert-empty-attlist"/>
        <ref name="common-data-field-attlist"/>
    </define>
    <define name="form-formatted-text-attlist" combine="interleave">
        <optional>
            <attribute name="form:max-value">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="form-formatted-text-attlist" combine="interleave">
        <optional>
            <attribute name="form:min-value">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="form-formatted-text-attlist" combine="interleave">
        <optional>
            <attribute name="form:validation" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="column-controls" combine="choice">
        <element name="form:number">
            <ref name="form-number-attlist"/>
            <ref name="common-numeric-control-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="common-numeric-control-attlist">
        <ref name="form-control-attlist"/>
        <ref name="common-disabled-attlist"/>
        <ref name="common-maxlength-attlist"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-readonly-attlist"/>
        <ref name="common-tab-attlist"/>
        <ref name="common-title-attlist"/>
        <ref name="common-convert-empty-attlist"/>
        <ref name="common-data-field-attlist"/>
    </define>
    <define name="form-number-attlist" combine="interleave">
        <optional>
            <attribute name="form:value">
                <ref name="double"/>
            </attribute>
        </optional>
    </define>
    <define name="form-number-attlist" combine="interleave">
        <optional>
            <attribute name="form:current-value">
                <ref name="double"/>
            </attribute>
        </optional>
    </define>
    <define name="form-number-attlist" combine="interleave">
        <optional>
            <attribute name="form:min-value">
                <ref name="double"/>
            </attribute>
        </optional>
    </define>
    <define name="form-number-attlist" combine="interleave">
        <optional>
            <attribute name="form:max-value">
                <ref name="double"/>
            </attribute>
        </optional>
    </define>
    <define name="column-controls" combine="choice">
        <element name="form:date">
            <ref name="form-date-attlist"/>
            <ref name="common-numeric-control-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="controls" combine="choice">
        <element name="form:time">
            <ref name="form-time-attlist"/>
            <ref name="common-numeric-control-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-date-attlist" combine="interleave">
        <optional>
            <attribute name="form:value">
                <ref name="date"/>
            </attribute>
        </optional>
    </define>
    <define name="form-time-attlist" combine="interleave">
        <optional>
            <attribute name="form:value">
                <ref name="time"/>
            </attribute>
        </optional>
    </define>
    <define name="form-date-attlist" combine="interleave">
        <optional>
            <attribute name="form:current-value">
                <ref name="date"/>
            </attribute>
        </optional>
    </define>
    <define name="form-time-attlist" combine="interleave">
        <optional>
            <attribute name="form:current-value">
                <ref name="time"/>
            </attribute>
        </optional>
    </define>
    <define name="form-date-attlist" combine="interleave">
        <optional>
            <attribute name="form:min-value">
                <ref name="date"/>
            </attribute>
        </optional>
    </define>
    <define name="form-time-attlist" combine="interleave">
        <optional>
            <attribute name="form:min-value">
                <ref name="time"/>
            </attribute>
        </optional>
    </define>
    <define name="form-date-attlist" combine="interleave">
        <optional>
            <attribute name="form:max-value">
                <ref name="date"/>
            </attribute>
        </optional>
    </define>
    <define name="form-time-attlist" combine="interleave">
        <optional>
            <attribute name="form:max-value">
                <ref name="time"/>
            </attribute>
        </optional>
    </define>
    <define name="controls" combine="choice">
        <element name="form:fixed-text">
            <ref name="form-fixed-text-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-fixed-text-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="for"/>
        <ref name="common-disabled-attlist"/>
        <ref name="label"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-title-attlist"/>
    </define>
    <define name="form-fixed-text-attlist" combine="interleave">
        <optional>
            <attribute name="form:multi-line" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="column-controls" combine="choice">
        <element name="form:combobox">
            <ref name="form-combobox-attlist"/>
            <ref name="common-form-control-content"/>
            <zeroOrMore>
                <ref name="form-item"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="form-combobox-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="common-current-value-attlist"/>
        <ref name="common-disabled-attlist"/>
        <ref name="dropdown"/>
        <ref name="common-maxlength-attlist"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-readonly-attlist"/>
        <ref name="size"/>
        <ref name="common-tab-attlist"/>
        <ref name="common-title-attlist"/>
        <ref name="common-value-attlist"/>
        <ref name="common-convert-empty-attlist"/>
        <ref name="common-data-field-attlist"/>
        <ref name="list-source"/>
        <ref name="list-source-type"/>
    </define>
    <define name="form-combobox-attlist" combine="interleave">
        <optional>
            <attribute name="form:auto-complete">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="form-item">
        <element name="form:item">
            <ref name="form-item-attlist"/>
            <text/>
        </element>
    </define>
    <define name="form-item-attlist" combine="interleave">
        <ref name="label"/>
    </define>
    <define name="column-controls" combine="choice">
        <element name="form:listbox">
            <ref name="form-listbox-attlist"/>
            <ref name="common-form-control-content"/>
            <zeroOrMore>
                <ref name="form-option"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="form-listbox-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="common-disabled-attlist"/>
        <ref name="dropdown"/>
        <ref name="common-printable-attlist"/>
        <ref name="size"/>
        <ref name="common-tab-attlist"/>
        <ref name="common-title-attlist"/>
        <ref name="bound-column"/>
        <ref name="common-data-field-attlist"/>
        <ref name="list-source"/>
        <ref name="list-source-type"/>
    </define>
    <define name="form-listbox-attlist" combine="interleave">
        <optional>
            <attribute name="form:multiple" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="form-option">
        <element name="form:option">
            <ref name="form-option-attlist"/>
            <text/>
        </element>
    </define><define name="form-option-attlist" combine="interleave">
        <ref name="current-selected"/>
        <ref name="selected"/>
        <ref name="label"/>
        <ref name="common-value-attlist"/>
    </define>
    <define name="controls" combine="choice">
        <element name="form:button">
            <ref name="form-button-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-button-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="button-type"/>
        <ref name="common-disabled-attlist"/>
        <ref name="label"/>
        <ref name="image-data"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-tab-attlist"/>
        <ref name="target-frame"/>
        <ref name="target-location"/>
        <ref name="common-title-attlist"/>
        <ref name="common-value-attlist"/>
    </define>
    <define name="form-button-attlist" combine="interleave">
        <optional>
            <attribute name="form:default-button" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="controls" combine="choice">
        <element name="form:image">
            <ref name="form-image-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-image-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="button-type"/>
        <ref name="common-disabled-attlist"/>
        <ref name="image-data"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-tab-attlist"/>
        <ref name="target-frame"/>
        <ref name="target-location"/>
        <ref name="common-title-attlist"/>
        <ref name="common-value-attlist"/>
    </define>
    <define name="column-controls" combine="choice">
        <element name="form:checkbox">
            <ref name="form-checkbox-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-checkbox-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="common-disabled-attlist"/>
        <ref name="label"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-tab-attlist"/>
        <ref name="common-title-attlist"/>
        <ref name="common-value-attlist"/>
        <ref name="common-data-field-attlist"/>
    </define>
    <define name="states">
        <choice>
            <value>unchecked</value>
            <value>checked</value>
            <value>unknown</value>
        </choice>
    </define><define name="form-checkbox-attlist" combine="interleave">
        <optional>
            <attribute name="form:current-state">
                <ref name="states"/>
            </attribute>
        </optional>
    </define>
    <define name="form-checkbox-attlist" combine="interleave">
        <optional>
            <attribute name="form:is-tristate" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="form-checkbox-attlist" combine="interleave">
        <optional>
            <attribute name="form:state" a:defaultValue="unchecked">
                <ref name="states"/>
            </attribute>
        </optional>
    </define>
    <define name="controls" combine="choice">
        <element name="form:radio">
            <ref name="form-radio-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-radio-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="current-selected"/>
        <ref name="common-disabled-attlist"/>
        <ref name="label"/>
        <ref name="common-printable-attlist"/>
        <ref name="selected"/>
        <ref name="common-tab-attlist"/>
        <ref name="common-title-attlist"/>
        <ref name="common-value-attlist"/>
        <ref name="common-data-field-attlist"/>
    </define>
    <define name="controls" combine="choice">
        <element name="form:frame">
            <ref name="form-frame-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-frame-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="common-disabled-attlist"/>
        <ref name="for"/>
        <ref name="label"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-title-attlist"/>
    </define>
    <define name="controls" combine="choice">
        <element name="form:image-frame">
            <ref name="form-image-frame-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-image-frame-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="common-disabled-attlist"/>
        <ref name="image-data"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-readonly-attlist"/>
        <ref name="common-title-attlist"/>
        <ref name="common-data-field-attlist"/>
    </define>
    <define name="controls" combine="choice">
        <element name="form:hidden">
            <ref name="form-hidden-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-hidden-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="common-value-attlist"/>
    </define>
    <define name="controls" combine="choice">
        <element name="form:grid">
            <ref name="form-grid-attlist"/>
            <ref name="common-form-control-content"/>
            <zeroOrMore>
                <ref name="form-column"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="form-grid-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
        <ref name="common-disabled-attlist"/>
        <ref name="common-printable-attlist"/>
        <ref name="common-tab-attlist"/>
        <ref name="common-title-attlist"/>
    </define>
    <define name="form-column">
        <element name="form:column">
            <ref name="form-column-attlist"/>
            <oneOrMore>
                <ref name="column-controls"/>
            </oneOrMore>
        </element>
    </define>
    <define name="form-column-attlist" combine="interleave">
        <ref name="common-form-control-attlist"/>
        <ref name="label"/>
        <ref name="text-style-name"/>
    </define>
    <define name="text-style-name">
        <optional>
            <attribute name="form:text-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="controls" combine="choice">
        <element name="form:generic-control">
            <ref name="form-generic-control-attlist"/>
            <ref name="common-form-control-content"/>
        </element>
    </define>
    <define name="form-generic-control-attlist" combine="interleave">
        <ref name="form-control-attlist"/>
    </define>
    <define name="common-form-control-attlist" combine="interleave">
        <optional>
            <attribute name="form:name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="common-form-control-attlist" combine="interleave">
        <optional>
            <attribute name="form:control-implementation">
                <ref name="namespacedToken"/>
            </attribute>
        </optional>
    </define>
    <define name="types">
        <choice>
            <value>submit</value>
            <value>reset</value>
            <value>push</value>
            <value>url</value>
        </choice>
    </define>
    <define name="button-type">
        <optional>
            <attribute name="form:button-type" a:defaultValue="push">
                <ref name="types"/>
            </attribute>
        </optional>
    </define>
    <define name="common-control-id-attlist">
        <attribute name="form:id">
            <ref name="ID"/>
        </attribute>
    </define>
    <define name="current-selected">
        <optional>
            <attribute name="form:current-selected" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="common-value-attlist">
        <optional>
            <attribute name="form:value">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="common-current-value-attlist">
        <optional>
            <attribute name="form:current-value">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="common-disabled-attlist">
        <optional>
            <attribute name="form:disabled" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="dropdown">
        <optional>
            <attribute name="form:dropdown" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="for">
        <optional>
            <attribute name="form:for">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="image-data">
        <optional>
            <attribute name="form:image-data">
                <ref name="anyURI"/>
            </attribute>
        </optional>
    </define>
    <define name="label">
        <optional>
            <attribute name="form:label">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="common-maxlength-attlist">
        <optional>
            <attribute name="form:max-length">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="common-printable-attlist">
        <optional>
            <attribute name="form:printable" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="common-readonly-attlist">
        <optional>
            <attribute name="form:readonly" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="selected">
        <optional>
            <attribute name="form:selected" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="size">
        <optional>
            <attribute name="form:size">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="common-tab-attlist" combine="interleave">
        <optional>
            <attribute name="form:tab-index" a:defaultValue="0">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="common-tab-attlist" combine="interleave">
        <optional>
            <attribute name="form:tab-stop" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="target-frame">
        <optional>
            <attribute name="office:target-frame" a:defaultValue="_blank">
                <ref name="targetFrameName"/>
            </attribute>
        </optional>
    </define>
    <define name="target-location">
        <optional>
            <attribute name="xlink:href">
                <ref name="anyURI"/>
            </attribute>
        </optional>
    </define>
    <define name="common-title-attlist">
        <optional>
            <attribute name="form:title"/>
        </optional>
    </define>
    <define name="bound-column">
        <optional>
            <attribute name="form:bound-column">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="common-convert-empty-attlist">
        <optional>
            <attribute name="form:convert-empty-to-null" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="common-data-field-attlist">
        <optional>
            <attribute name="form:data-field">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="list-source">
        <optional>
            <attribute name="form:list-source">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="list-source-type">
        <optional>
            <attribute name="form:list-source-type">
                <choice>
                    <value>table</value>
                    <value>query</value>
                    <value>sql</value>
                    <value>sql-pass-through</value>
                    <value>value-list</value>
                    <value>table-fields</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="form-properties">
        <element name="form:properties">
            <oneOrMore>
                <ref name="form-property"/>
            </oneOrMore>
        </element>
    </define>
    <define name="form-property" combine="choice">
        <element name="form:property">
            <ref name="form-property-name"/>
            <ref name="form-property-value-and-type-attlist"/>
        </element>
    </define>
    <define name="form-property-name" combine="interleave">
        <attribute name="form:property-name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="form-property-value-and-type-attlist" combine="interleave">
        <choice>
            <ref name="common-value-and-type-attlist"/>
            <attribute name="office:value-type">
                <value>void</value>
            </attribute>
        </choice>
    </define>
    <define name="form-property" combine="choice">
        <element name="form:list-property">
            <ref name="form-property-name"/>
            <ref name="form-property-type-and-value-list"/>
        </element>
    </define>
    <define name="form-property-type-and-value-list">
        <choice>
            <group>
                <attribute name="office:value-type">
                    <value>float</value>
                </attribute>
                <zeroOrMore>
                    <element name="form:list-value">
                        <attribute name="office:value">
                            <ref name="double"/>
                        </attribute>
                    </element>
                </zeroOrMore>
            </group>
            <group>
                <attribute name="office:value-type">
                    <value>percentage</value>
                </attribute>
                <zeroOrMore>
                    <element name="form:list-value">
                        <attribute name="office:value">
                            <ref name="double"/>
                        </attribute>
                    </element>
                </zeroOrMore>
            </group>
            <group>
                <attribute name="office:value-type">
                    <value>currency</value>
                </attribute>
                <zeroOrMore>
                    <element name="form:list-value">
                        <attribute name="office:value">
                            <ref name="double"/>
                        </attribute>
                        <optional>
                            <attribute name="office:currency">
                                <ref name="string"/>
                            </attribute>
                        </optional>
                    </element>
                </zeroOrMore>
            </group>
            <group>
                <attribute name="office:value-type">
                    <value>date</value>
                </attribute>
                <zeroOrMore>
                    <element name="form:list-value">
                        <attribute name="office:date-value">
                            <ref name="dateOrDateTime"/>
                        </attribute>
                    </element>
                </zeroOrMore>
            </group>
            <group>
                <attribute name="office:value-type">
                    <value>time</value>
                </attribute>
                <zeroOrMore>
                    <element name="form:list-value">
                        <attribute name="office:time-value">
                            <ref name="duration"/>
                        </attribute>
                    </element>
                </zeroOrMore>
            </group>
            <group>
                <attribute name="office:value-type">
                    <value>boolean</value>
                </attribute>
                <zeroOrMore>
                    <element name="form:list-value">
                        <attribute name="office:boolean-value">
                            <ref name="boolean"/>
                        </attribute>
                    </element>
                </zeroOrMore>
            </group>
            <group>
                <attribute name="office:value-type">
                    <value>string</value>
                </attribute>
                <zeroOrMore>
                    <element name="form:list-value">
                        <attribute name="office:string-value">
                            <ref name="string"/>
                        </attribute>
                    </element>
                </zeroOrMore>
            </group>
            <attribute name="office:value-type">
                <value>void</value>
            </attribute>
        </choice>
    </define>
    <define name="office-annotation">
        <element name="office:annotation">
            <ref name="office-annotation-attlist"/>
            <optional>
                <ref name="dc-creator"/>
            </optional>
            <optional>
                <ref name="dc-date"/>
            </optional>
            <optional>
                <ref name="meta-date-string"/>
            </optional>
            <zeroOrMore>
                <ref name="text-p"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="meta-date-string">
        <element name="meta:date-string">
            <ref name="string"/>
        </element>
    </define>
    <define name="office-annotation-attlist" combine="interleave">
        <optional>
            <attribute name="office:display">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="common-num-format-prefix-suffix-attlist" combine="interleave">
        <optional>
            <attribute name="style:num-prefix">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:num-suffix">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="common-num-format-attlist" combine="interleave">
        <choice>
            <attribute name="style:num-format">
                <choice>
                    <value>1</value>
                    <value>i</value>
                    <value>I</value>
                    <empty/>
                </choice>
            </attribute>
            <group>
                <attribute name="style:num-format">
                    <choice>
                        <value>a</value>
                        <value>A</value>
                    </choice>
                </attribute>
                <ref name="style-num-letter-sync-attlist"/>
            </group>
            <empty/>
        </choice>
    </define>
    <define name="style-num-letter-sync-attlist" combine="interleave">
        <optional>
            <attribute name="style:num-letter-sync">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="office-change-info">
        <element name="office:change-info">
            <ref name="dc-creator"/>
            <ref name="dc-date"/>
            <zeroOrMore>
                <ref name="text-p"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="office-event-listeners">
        <element name="office:event-listeners">
            <zeroOrMore>
                <choice>
                    <ref name="script-event-listener"/>
                    <ref name="presentation-event-listener"/>
                </choice>
            </zeroOrMore>
        </element>
    </define>
    <define name="script-event-listener" combine="interleave">
        <element name="script:event-listener">
            <ref name="script-event-listener-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="script-event-listener-attlist" combine="interleave">
        <attribute name="script:event-name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="script-event-listener-attlist" combine="interleave">
        <attribute name="script:language">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="script-event-listener-attlist" combine="interleave">
        <choice>
            <attribute name="script:macro-name">
                <ref name="string"/>
            </attribute>
            <group>
                <attribute name="xlink:href">
                    <ref name="anyURI"/>
                </attribute>
                <optional>
                    <attribute name="xlink:type" a:defaultValue="simple">
                        <value>simple</value>
                    </attribute>
                </optional>
                <optional>
                    <attribute name="xlink:actuate" a:defaultValue="onRequest">
                        <value>onRequest</value>
                    </attribute>
                </optional>
            </group>
        </choice>
    </define>
    <define name="math-math">
        <element name="math:math">
            <ref name="mathMarkup"/>
        </element>
    </define>
    
    <!-- To avoid inclusion of the complete MathML schema, anything -->
    <!-- is allowed within a math:math top-level element            -->
    <define name="mathMarkup">
        <zeroOrMore>
            <choice>
                <attribute>
                    <anyName/>
                </attribute>
                <text/>
                <element>
                    <anyName/>
                    <ref name="mathMarkup"/>
                </element>
            </choice>
        </zeroOrMore>
    </define>
    <define name="text-dde-connection-decl">
        <element name="text:dde-connection-decl">
            <ref name="text-dde-connection-decl-attlist"/>
            <ref name="common-dde-connection-decl-attlist"/>
        </element>
    </define>
    <define name="text-dde-connection-decl-attlist" combine="interleave">
        <attribute name="office:name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="common-dde-connection-decl-attlist" combine="interleave">
        <attribute name="office:dde-application">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="common-dde-connection-decl-attlist" combine="interleave">
        <attribute name="office:dde-topic">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="common-dde-connection-decl-attlist" combine="interleave">
        <attribute name="office:dde-item">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="common-dde-connection-decl-attlist" combine="interleave">
        <optional>
            <attribute name="office:automatic-update" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="table-dde-link">
        <element name="table:dde-link">
            <ref name="office-dde-source"/>
            <ref name="table-table"/>
        </element>
    </define>
    <define name="office-dde-source">
        <element name="office:dde-source">
            <ref name="office-dde-source-attlist"/>
            <ref name="common-dde-connection-decl-attlist"/>
        </element>
    </define>
    <define name="office-dde-source-attlist" combine="interleave">
        <optional>
            <attribute name="office:name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="office-dde-source-attlist" combine="interleave">
        <optional>
            <attribute name="office:conversion-mode" 
                        a:defaultValue="into-default-style-data-style">
                <choice>
                    <value>into-default-style-data-style</value>
                    <value>into-english-number</value>
                    <value>keep-text</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-style">
        <element name="style:style">
            <ref name="style-style-attlist"/>
            <ref name="style-style-content"/>
            <zeroOrMore>
                <ref name="style-map"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="style-style-attlist" combine="interleave">
        <attribute name="style:name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="style-style-attlist" combine="interleave">
        <optional>
            <attribute name="style:display-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="style-style-attlist" combine="interleave">
        <optional>
            <attribute name="style:parent-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-style-attlist" combine="interleave">
        <optional>
            <attribute name="style:next-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-style-attlist" combine="interleave">
        <optional>
            <attribute name="style:list-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-style-attlist" combine="interleave">
        <optional>
            <attribute name="style:master-page-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-style-attlist" combine="interleave">
        <optional>
            <attribute name="style:auto-update" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-style-attlist" combine="interleave">
        <optional>
            <attribute name="style:data-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-style-attlist" combine="interleave">
        <optional>
            <attribute name="style:class">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="style-style-attlist" combine="interleave">
        <optional>
            <attribute name="style:default-outline-level">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-map">
        <element name="style:map">
            <ref name="style-map-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="style-map-attlist" combine="interleave">
        <attribute name="style:condition">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="style-map-attlist" combine="interleave">
        <attribute name="style:apply-style-name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="style-map-attlist" combine="interleave">
        <optional>
            <attribute name="style:base-cell-address">
                <ref name="cellAddress"/>
            </attribute>
        </optional>
    </define>
    <define name="style-default-style">
        <element name="style:default-style">
            <ref name="style-style-content"/>
        </element>
    </define>
    <define name="style-page-layout">
        <element name="style:page-layout">
            <ref name="style-page-layout-attlist"/>
            <optional>
                <ref name="style-page-layout-properties"/>
            </optional>
            <optional>
                <ref name="style-header-style"/>
            </optional>
            <optional>
                <ref name="style-footer-style"/>
            </optional>
        </element>
    </define>
    <define name="style-page-layout-attlist" combine="interleave">
        <attribute name="style:name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="style-page-layout-attlist" combine="interleave">
        <optional>
            <attribute name="style:page-usage" a:defaultValue="all">
                <choice>
                    <value>all</value>
                    <value>left</value>
                    <value>right</value>
                    <value>mirrored</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-header-style">
        <element name="style:header-style">
            <optional>
                <ref name="style-header-footer-properties"/>
            </optional>
        </element>
    </define>
    <define name="style-footer-style">
        <element name="style:footer-style">
            <optional>
                <ref name="style-header-footer-properties"/>
            </optional>
        </element>
    </define>
    <define name="style-master-page">
        <element name="style:master-page">
            <ref name="style-master-page-attlist"/>
            <optional>
                <ref name="style-header"/>
                <optional>
                    <ref name="style-header-left"/>
                </optional>
            </optional>
            <optional>
                <ref name="style-footer"/>
                <optional>
                    <ref name="style-footer-left"/>
                </optional>
            </optional>
            <optional>
                <ref name="office-forms"/>
            </optional>
            <zeroOrMore>
                <ref name="style-style"/>
            </zeroOrMore>
            <zeroOrMore>
                <ref name="shape"/>
            </zeroOrMore>
            <optional>
                <ref name="presentation-notes"/>
            </optional>
        </element>
    </define>
    <define name="style-master-page-attlist" combine="interleave">
        <attribute name="style:name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="style-master-page-attlist" combine="interleave">
        <optional>
            <attribute name="style:display-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="style-master-page-attlist" combine="interleave">
        <attribute name="style:page-layout-name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="style-master-page-attlist" combine="interleave">
        <optional>
            <attribute name="draw:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-master-page-attlist" combine="interleave">
        <optional>
            <attribute name="style:next-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-header">
        <element name="style:header">
            <ref name="common-style-header-footer-attlist"/>
            <ref name="header-footer-content"/>
        </element>
    </define>
    <define name="style-footer">
        <element name="style:footer">
            <ref name="common-style-header-footer-attlist"/>
            <ref name="header-footer-content"/>
        </element>
    </define>
    <define name="style-header-left">
        <element name="style:header-left">
            <ref name="common-style-header-footer-attlist"/>
            <ref name="header-footer-content"/>
        </element>
    </define>
    <define name="style-footer-left">
        <element name="style:footer-left">
            <ref name="common-style-header-footer-attlist"/>
            <ref name="header-footer-content"/>
        </element>
    </define>
    <define name="header-footer-content">
        <choice>
            <group>
                <ref name="text-decls"/>
                <zeroOrMore>
                    <choice>
                        <ref name="text-h"/>
                        <ref name="text-p"/>
                        <ref name="text-list"/>
                        <ref name="table-table"/>
                        <ref name="text-section"/>
                        <ref name="text-table-of-content"/>
                        <ref name="text-illustration-index"/>
                        <ref name="text-table-index"/>
                        <ref name="text-object-index"/>
                        <ref name="text-user-index"/>
                        <ref name="text-alphabetical-index"/>
                        <ref name="text-bibliography"/>
                        <ref name="text-index-title"/>
                        <ref name="change-marks"/>
                    </choice>
                </zeroOrMore>
            </group>
            <group>
                <optional>
                    <ref name="style-region-left"/>
                </optional>
                <optional>
                    <ref name="style-region-center"/>
                </optional>
                <optional>
                    <ref name="style-region-right"/>
                </optional>
            </group>
        </choice>
    </define>
    <define name="common-style-header-footer-attlist" combine="interleave">
        <optional>
            <attribute name="style:display" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-region-left">
        <element name="style:region-left">
            <ref name="region-content"/>
        </element>
    </define>
    <define name="style-region-center">
        <element name="style:region-center">
            <ref name="region-content"/>
        </element>
    </define>
    <define name="style-region-right">
        <element name="style:region-right">
            <ref name="region-content"/>
        </element>
    </define>
    
    <define name="region-content">
        <zeroOrMore>
            <ref name="text-p"/>
        </zeroOrMore>
    </define>
    <define name="presentation-notes">
        <element name="presentation:notes">
            <ref name="presentation-notes-attlist"/>
            <zeroOrMore>
                <ref name="shape"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="presentation-notes-attlist" combine="interleave">
        <attribute name="style:page-layout-name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="table-table-template">
        <element name="table:table-template">
            <ref name="table-table-template-attlist"/>
            <optional>
                <ref name="table-first-row"/>
            </optional>
            <optional>
                <ref name="table-last-row"/>
            </optional>
            <optional>
                <ref name="table-first-column"/>
            </optional>
            <optional>
                <ref name="table-last-column"/>
            </optional>
            <choice>
                <ref name="table-body"/>
                <group>
                    <ref name="table-even-rows"/>
                    <ref name="table-odd-rows"/>
                </group>
                <group>
                    <ref name="table-even-columns"/>
                    <ref name="table-odd-columns"/>
                </group>
            </choice>
        </element>
    </define>
    <define name="table-table-template-attlist" combine="interleave">
        <attribute name="text:name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="table-table-template-attlist" combine="interleave">
        <attribute name="text:first-row-start-column">
            <ref name="rowOrCol"/>
        </attribute>
    </define>
    
    <define name="table-table-template-attlist" combine="interleave">
        <attribute name="text:first-row-end-column">
            <ref name="rowOrCol"/>
        </attribute>
    </define>
    
    <define name="table-table-template-attlist" combine="interleave">
        <attribute name="text:last-row-start-column">
            <ref name="rowOrCol"/>
        </attribute>
    </define>
    
    <define name="table-table-template-attlist" combine="interleave">
        <attribute name="text:last-row-end-column">
            <ref name="rowOrCol"/>
        </attribute>
    </define>
    
    <define name="rowOrCol">
        <choice>
            <value>row</value>
            <value>column</value>
        </choice>
    </define>
    <define name="table-first-row">
        <element name="table:first-row">
            <ref name="common-table-template-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="table-last-row">
        <element name="table:last-row">
            <ref name="common-table-template-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="table-first-column">
        <element name="table:first-column">
            <ref name="common-table-template-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="table-last-column">
        <element name="table:last-column">
            <ref name="common-table-template-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="table-body">
        <element name="table:body">
            <ref name="common-table-template-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="table-even-rows">
        <element name="table:even-rows">
            <ref name="common-table-template-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="table-odd-rows">
        <element name="table:odd-rows">
            <ref name="common-table-template-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="table-even-columns">
        <element name="table:even-columns">
            <ref name="common-table-template-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="table-odd-columns">
        <element name="table:odd-columns">
            <ref name="common-table-template-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="common-table-template-attlist" combine="interleave">
        <attribute name="text:style-name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="style-font-face">
        <element name="style:font-face">
            <ref name="style-font-face-attlist"/>
            <optional>
                <ref name="svg-font-face-src"/>
            </optional>
            <optional>
                <ref name="svg-definition-src"/>
            </optional>
        </element>
    </define>
    <define name="style-font-face-attlist" combine="interleave">
        <optional>
            <attribute name="svg:font-family">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:font-style">
                <ref name="fontStyle"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:font-variant">
                <ref name="fontVariant"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:font-weight">
                <ref name="fontWeight"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:font-stretch">
                <choice>
                    <value>normal</value>
                    <value>ultra-condensed</value>
                    <value>extra-condensed</value>
                    <value>condensed</value>
                    <value>semi-condensed</value>
                    <value>semi-expanded</value>
                    <value>expanded</value>
                    <value>extra-expanded</value>
                    <value>ultra-expanded</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:font-size">
                <ref name="positiveLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:unicode-range"/>
        </optional>
        <optional>
            <attribute name="svg:units-per-em">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:panose-1"/>
        </optional>
        <optional>
            <attribute name="svg:stemv">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:stemh">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:slope">
                <ref name="integer"/>
            </attribute>
            </optional>
        <optional>
            <attribute name="svg:cap-height">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:x-height">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:accent-height">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:ascent">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:descent">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:widths"/>
        </optional>
        <optional>
            <attribute name="svg:bbox"/>
        </optional>
        <optional>
            <attribute name="svg:ideographic">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:alphabetic">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:mathematical">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:hanging">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:v-ideographic">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:v-alphabetic">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:v-mathematical">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:v-hanging">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:underline-position">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:underline-thickness">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:strikethrough-position">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:strikethrough-thickness">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:overline-position">
                <ref name="integer"/>
            </attribute>
            </optional>
        <optional>
            <attribute name="svg:overline-thickness">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    
    <define name="svg-font-face-src">
        <element name="svg:font-face-src">
            <oneOrMore>
                <choice>
                    <ref name="svg-font-face-uri"/>
                    <ref name="svg-font-face-name"/>
                </choice>
            </oneOrMore>
        </element>
    </define>
    
    <define name="svg-font-face-uri">
        <element name="svg:font-face-uri">
            <ref name="common-svg-font-face-xlink-attlist"/>
            <zeroOrMore>
                <ref name="svg-font-face-format"/>
            </zeroOrMore>
        </element>
    </define>
    
    <define name="svg-font-face-format">
        <element name="svg:font-face-format">
            <optional>
                <attribute name="svg:string"/>
            </optional>
            <empty/>
        </element>
    </define>
    <define name="svg-font-face-name">
        <element name="svg:font-face-name">
            <optional>
                <attribute name="name"/>
            </optional>
            <empty/>
        </element>
    </define>
    
    <define name="svg-definition-src">
        <element name="svg:definition-src">
            <ref name="common-svg-font-face-xlink-attlist"/>
        <empty/>
        </element>
    </define>
    
    <define name="common-svg-font-face-xlink-attlist" combine="interleave">
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
        <optional>
            <attribute name="xlink:type" a:defaultValue="simple">
                <value>simple</value>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate" a:defaultValue="onRequest">
                <value>onRequest</value>
            </attribute>
        </optional>
    </define>
    <define name="style-font-face-attlist" combine="interleave">
        <attribute name="style:name">
            <ref name="string"/>
        </attribute>
    </define>
    <define name="style-font-face-attlist" combine="interleave">
        <optional>
            <attribute name="style:font-adornments">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="style-font-face-attlist" combine="interleave">
        <optional>
            <attribute name="style:font-family-generic">
                <ref name="fontFamilyGeneric"/>
            </attribute>
        </optional>
    </define>
    <define name="style-font-face-attlist" combine="interleave">
        <optional>
            <attribute name="style:font-pitch">
                <ref name="fontPitch"/>
            </attribute>
        </optional>
    </define>
    
    <define name="style-font-face-attlist" combine="interleave">
        <optional>
            <attribute name="style:font-charset">
                <ref name="textEncoding"/>
            </attribute>
        </optional>
    </define>
    <define name="number-number-style">
        <element name="number:number-style">
            <ref name="common-data-style-attlist"/>
            <optional>
                <ref name="style-text-properties"/>
            </optional>
            <optional>
                <ref name="number-text"/>
            </optional>
            <optional>
                <ref name="any-number"/>
                <optional>
                    <ref name="number-text"/>
                </optional>
            </optional>
            <zeroOrMore>
                <ref name="style-map"/>
            </zeroOrMore>
        </element>
    </define>
    
    <define name="any-number">
        <choice>
            <ref name="number-number"/>
            <ref name="number-scientific-number"/>
            <ref name="number-fraction"/>
        </choice>
    </define>
    <define name="number-number">
        <element name="number:number">
            <ref name="number-number-attlist"/>
            <ref name="common-decimal-places-attlist"/>
            <ref name="common-number-attlist"/>
            <zeroOrMore>
                <ref name="number-embedded-text"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="number-number-attlist" combine="interleave">
        <optional>
            <attribute name="number:decimal-replacement"/>
        </optional>
    </define>
    <define name="number-number-attlist" combine="interleave">
        <optional>
            <attribute name="number:display-factor" a:defaultValue="1">
                <ref name="double"/>
            </attribute>
        </optional>
    </define>
    <define name="number-embedded-text">
        <element name="number:embedded-text">
            <ref name="number-embedded-text-attlist"/>
            <text/>
        </element>
    </define>
    <define name="number-embedded-text-attlist" combine="interleave">
        <attribute name="number:position">
            <ref name="integer"/>
        </attribute>
    </define>
    <define name="number-scientific-number">
        <element name="number:scientific-number">
            <ref name="number-scientific-number-attlist"/>
            <ref name="common-decimal-places-attlist"/>
            <ref name="common-number-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="number-scientific-number-attlist" combine="interleave">
        <optional>
            <attribute name="number:min-exponent-digits">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="number-fraction">
        <element name="number:fraction">
            <ref name="number-fraction-attlist"/>
            <ref name="common-number-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="number-fraction-attlist" combine="interleave">
        <optional>
            <attribute name="number:min-numerator-digits">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="number-fraction-attlist" combine="interleave">
        <optional>
            <attribute name="number:min-denominator-digits">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="number-currency-style">
        <element name="number:currency-style">
            <ref name="common-data-style-attlist"/>
            <ref name="common-auto-reorder-attlist"/>
            <optional>
                <ref name="style-text-properties"/>
            </optional>
            <optional>
                <ref name="number-text"/>
            </optional>
            <optional>
                <choice>
                    <group>
                        <ref name="number-and-text"/>
                        <optional>
                            <ref name="currency-symbol-and-text"/>
                        </optional>
                    </group>
                    <group>
                        <ref name="currency-symbol-and-text"/>
                        <optional>
                            <ref name="number-and-text"/>
                        </optional>
                    </group>
                </choice>
            </optional>
            <zeroOrMore>
                <ref name="style-map"/>
            </zeroOrMore>
        </element>
    </define>
    
    <define name="currency-symbol-and-text">
        <ref name="number-currency-symbol"/>
        <optional>
            <ref name="number-text"/>
        </optional>
    </define>
    <define name="number-and-text">
        <ref name="number-number"/>
        <optional>
            <ref name="number-text"/>
        </optional>
    </define>
    <define name="number-currency-symbol">
        <element name="number:currency-symbol">
            <ref name="number-currency-symbol-attlist"/>
            <text/>
        </element>
    </define>
    <define name="number-currency-symbol-attlist" combine="interleave">
        <optional>
            <attribute name="number:language">
                <ref name="languageCode"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="number:country">
                <ref name="countryCode"/>
            </attribute>
        </optional>
    </define>
    <define name="number-percentage-style">
        <element name="number:percentage-style">
            <ref name="common-data-style-attlist"/>
            <optional>
                <ref name="style-text-properties"/>
            </optional>
            <optional>
                <ref name="number-text"/>
            </optional>
            <optional>
                <ref name="number-and-text"/>
            </optional>
            <zeroOrMore>
                <ref name="style-map"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="number-date-style">
        <element name="number:date-style">
            <ref name="common-data-style-attlist"/>
            <ref name="common-auto-reorder-attlist"/>
            <ref name="common-format-source-attlist"/>
            <optional>
                <ref name="style-text-properties"/>
            </optional>
            <!-- This DTD does not reflect the fact that some elements must not -->
            <!-- occur more than once. -->
            <optional>
                <ref name="number-text"/>
            </optional>
            <oneOrMore>
                <ref name="any-date"/>
                <optional>
                    <ref name="number-text"/>
                </optional>
            </oneOrMore>
            <zeroOrMore>
                <ref name="style-map"/>
            </zeroOrMore>
        </element>
    </define>
    
    <define name="any-date">
        <choice>
            <ref name="number-day"/>
            <ref name="number-month"/>
            <ref name="number-year"/>
            <ref name="number-era"/>
            <ref name="number-day-of-week"/>
            <ref name="number-week-of-year"/>
            <ref name="number-quarter"/>
            <ref name="number-hours"/>
            <ref name="number-am-pm"/>
            <ref name="number-minutes"/>
            <ref name="number-seconds"/>
        </choice>
    </define>
    <define name="number-day">
        <element name="number:day">
            <ref name="number-day-attlist"/>
            <ref name="common-calendar-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="number-day-attlist" combine="interleave">
        <optional>
            <attribute name="number:style" a:defaultValue="short">
                <choice>
                    <value>short</value>
                    <value>long</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="number-month">
        <element name="number:month">
            <ref name="number-month-attlist"/>
            <ref name="common-calendar-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="number-month-attlist" combine="interleave">
        <optional>
            <attribute name="number:textual" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="number-month-attlist" combine="interleave">
        <optional>
            <attribute name="number:style" a:defaultValue="short">
                <choice>
                    <value>short</value>
                    <value>long</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="number-year">
        <element name="number:year">
            <ref name="number-year-attlist"/>
            <ref name="common-calendar-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="number-year-attlist" combine="interleave">
        <optional>
            <attribute name="number:style" a:defaultValue="short">
                <choice>
                    <value>short</value>
                    <value>long</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="number-era">
        <element name="number:era">
            <ref name="number-era-attlist"/>
            <ref name="common-calendar-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="number-era-attlist" combine="interleave">
        <optional>
            <attribute name="number:style" a:defaultValue="short">
                <choice>
                    <value>short</value>
                    <value>long</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="number-day-of-week">
        <element name="number:day-of-week">
            <ref name="number-day-of-week-attlist"/>
            <ref name="common-calendar-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="number-day-of-week-attlist" combine="interleave">
        <optional>
            <attribute name="number:style" a:defaultValue="short">
                <choice>
                    <value>short</value>
                    <value>long</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="number-week-of-year">
        <element name="number:week-of-year">
            <ref name="common-calendar-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="number-quarter">
        <element name="number:quarter">
            <ref name="number-quarter-attlist"/>
            <ref name="common-calendar-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="number-quarter-attlist" combine="interleave">
        <optional>
            <attribute name="number:style" a:defaultValue="short">
                <choice>
                    <value>short</value>
                    <value>long</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="number-time-style">
        <element name="number:time-style">
            <ref name="number-time-style-attlist"/>
            <ref name="common-data-style-attlist"/>
            <ref name="common-format-source-attlist"/>
            <optional>
                <ref name="style-text-properties"/>
            </optional>
            <!-- This DTD does not reflect the fact that some elements must not -->
            <!-- occur more than once. -->
            <optional>
                <ref name="number-text"/>
            </optional>
            <oneOrMore>
                <ref name="any-time"/>
                <optional>
                    <ref name="number-text"/>
                </optional>
            </oneOrMore>
            <zeroOrMore>
                <ref name="style-map"/>
            </zeroOrMore>
        </element>
    </define>
    
    <define name="any-time">
        <choice>
            <ref name="number-hours"/>
            <ref name="number-am-pm"/>
            <ref name="number-minutes"/>
            <ref name="number-seconds"/>
        </choice>
    </define>
    <define name="number-time-style-attlist" combine="interleave">
        <optional>
            <attribute name="number:truncate-on-overflow" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="number-hours">
        <element name="number:hours">
            <ref name="number-hours-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="number-hours-attlist" combine="interleave">
        <optional>
            <attribute name="number:style" a:defaultValue="short">
                <choice>
                    <value>short</value>
                    <value>long</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="number-minutes">
        <element name="number:minutes">
            <ref name="number-minutes-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="number-minutes-attlist" combine="interleave">
        <optional>
            <attribute name="number:style" a:defaultValue="short">
                <choice>
                    <value>short</value>
                    <value>long</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="number-seconds">
        <element name="number:seconds">
            <ref name="number-seconds-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="number-seconds-attlist" combine="interleave">
        <optional>
            <attribute name="number:style" a:defaultValue="short">
                <choice>
                    <value>short</value>
                    <value>long</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="number-seconds-attlist" combine="interleave">
        <optional>
            <attribute name="number:decimal-places" a:defaultValue="0">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="number-am-pm">
        <element name="number:am-pm">
            <empty/>
        </element>
    </define>
    <define name="number-boolean-style">
        <element name="number:boolean-style">
            <ref name="common-data-style-attlist"/>
            <optional>
                <ref name="style-text-properties"/>
            </optional>
            <optional>
                <ref name="number-text"/>
            </optional>
            <optional>
                <ref name="number-boolean"/>
                <optional>
                    <ref name="number-text"/>
                </optional>
            </optional>
            <zeroOrMore>
                <ref name="style-map"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="number-boolean">
        <element name="number:boolean">
            <empty/>
        </element>
    </define>
    <define name="number-text-style">
        <element name="number:text-style">
            <ref name="common-data-style-attlist"/>
            <optional>
                <ref name="style-text-properties"/>
            </optional>
            <optional>
                <ref name="number-text"/>
            </optional>
            <zeroOrMore>
                <ref name="number-text-content"/>
                <optional>
                    <ref name="number-text"/>
                </optional>
            </zeroOrMore>
            <zeroOrMore>
                <ref name="style-map"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="number-text">
        <element name="number:text">
            <text/>
        </element>
    </define>
    <define name="number-text-content">
        <element name="number:text-content">
            <empty/>
        </element>
    </define>
    <define name="common-data-style-attlist" combine="interleave">
        <attribute name="style:name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="style-data-style-attlist" combine="interleave">
        <optional>
            <attribute name="style:display-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="common-data-style-attlist" combine="interleave">
        <optional>
            <attribute name="number:language">
                <ref name="languageCode"/>
            </attribute>
        </optional>
    </define>
    <define name="common-data-style-attlist" combine="interleave">
        <optional>
            <attribute name="number:country">
                <ref name="countryCode"/>
            </attribute>
        </optional>
    </define>
    <define name="common-data-style-attlist" combine="interleave">
        <optional>
            <attribute name="number:title"/>
        </optional>
    </define>
    <define name="common-data-style-attlist" combine="interleave">
        <optional>
            <attribute name="style:volatile">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="common-auto-reorder-attlist" combine="interleave">
        <optional>
            <attribute name="number:automatic-order" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="common-format-source-attlist">
        <optional>
            <attribute name="number:format-source" a:defaultValue="fixed">
                <choice>
                    <value>fixed</value>
                    <value>language</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="common-style-attlist" combine="interleave">
        <optional>
            <attribute name="number:transliteration-format" a:defaultValue="1">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="common-style-attlist" combine="interleave">
        <optional>
            <attribute name="number:transliteration-language">
                <ref name="countryCode"/>
            </attribute>
        </optional>
    </define>
    <define name="common-style-attlist" combine="interleave">
        <optional>
            <attribute name="number:transliteration-country">
                <ref name="countryCode"/>
            </attribute>
        </optional>
    </define>
    <define name="common-style-attlist" combine="interleave">
        <optional>
            <attribute name="number:transliteration-style" a:defaultValue="short">
                <choice>
                    <value>short</value>
                    <value>medium</value>
                    <value>long</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="common-decimal-places-attlist">
        <optional>
            <attribute name="number:decimal-places">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="common-number-attlist" combine="interleave">
        <optional>
            <attribute name="number:min-integer-digits">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="common-number-attlist" combine="interleave">
        <optional>
            <attribute name="number:grouping" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="common-calendar-attlist" combine="interleave">
        <optional>
            <attribute name="number:calendar">
                <choice>
                    <value>gregorian</value>
                    <value>gengou</value>
                    <value>ROC</value>
                    <value>hanja_yoil</value>
                    <value>hanja</value>
                    <value>hijri</value>
                    <value>jewish</value>
                    <value>buddhist</value>
                    <ref name="string"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-style-content" combine="choice">
        <group>
            <attribute name="style:family">
                <value>text</value>
            </attribute>
            <optional>
                <ref name="style-text-properties"/>
            </optional>
        </group>
    </define>
    <define name="style-style-content" combine="choice">
        <group>
            <attribute name="style:family">
                <value>paragraph</value>
            </attribute>
            <optional>
                <ref name="style-paragraph-properties"/>
            </optional>
            <optional>
                <ref name="style-text-properties"/>
            </optional>
        </group>
    </define>
    <define name="style-style-content" combine="choice">
        <group>
            <attribute name="style:family">
                <value>section</value>
            </attribute>
            <optional>
                <ref name="style-section-properties"/>
            </optional>
        </group>
    </define>
    <define name="style-style-content" combine="choice">
        <group>
            <attribute name="style:family">
                <value>ruby</value>
            </attribute>
            <optional>
                <ref name="style-ruby-properties"/>
            </optional>
        </group>
    </define>
    <define name="text-linenumbering-configuration">
        <element name="text:linenumbering-configuration">
            <ref name="text-linenumbering-configuration-attlist"/>
            <optional>
                <ref name="text-linenumbering-separator"/>
            </optional>
        </element>
    </define>
    <define name="text-linenumbering-configuration-attlist" combine="interleave">
        <optional>
            <attribute name="text:number-lines" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-linenumbering-configuration-attlist" combine="interleave">
        <optional>
            <ref name="common-num-format-attlist"/>
        </optional>
    </define>
    <define name="text-linenumbering-configuration-attlist" combine="interleave">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="text-linenumbering-configuration-attlist" combine="interleave">
        <optional>
            <attribute name="text:increment">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="text-linenumbering-configuration-attlist" combine="interleave">
        <optional>
            <attribute name="text:number-position" a:defaultValue="left">
                <choice>
                    <value>left</value>
                    <value>rigth</value>
                    <value>inner</value>
                    <value>outer</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="text-linenumbering-configuration-attlist" combine="interleave">
        <optional>
            <attribute name="text:offset">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="text-linenumbering-configuration-attlist" combine="interleave">
        <optional>
            <attribute name="text:count-empty-lines" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-linenumbering-configuration-attlist" combine="interleave">
        <optional>
            <attribute name="text:count-in-text-boxes" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-linenumbering-configuration-attlist" combine="interleave">
        <optional>
            <attribute name="text:restart-numbering" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-linenumbering-separator">
        <element name="text:linenumbering-separator">
            <optional>
                <attribute name="text:increment">
                    <ref name="nonNegativeInteger"/>
                </attribute>
            </optional>
            <text/>
        </element>
    </define>
    <define name="text-notes-configuration">
        <element name="text:notes-configuration">
            <ref name="text-notes-configuration-content"/>
        </element>
    </define>
    <define name="text-notes-configuration-content" combine="interleave">
        <ref name="text-note-class"/>
    </define>
    <define name="text-notes-configuration-content" combine="interleave">
        <optional>
            <attribute name="text:citation-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="text-notes-configuration-content" combine="interleave">
        <optional>
            <attribute name="text:citation-body-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="text-notes-configuration-content" combine="interleave">
        <optional>
            <attribute name="text:default-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="text-notes-configuration-content" combine="interleave">
        <optional>
            <attribute name="text:master-page-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="text-notes-configuration-content" combine="interleave">
        <optional>
            <attribute name="text:start-value">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="text-notes-configuration-content" combine="interleave">
        <ref name="common-num-format-prefix-suffix-attlist"/>
        <optional>
            <ref name="common-num-format-attlist"/>
        </optional>
    </define>
    <define name="text-notes-configuration-content" combine="interleave">
        <optional>
            <attribute name="text:start-numbering-at">
                <choice>
                    <value>document</value>
                    <value>chapter</value>
                    <value>page</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="text-notes-configuration-content" combine="interleave">
        <optional>
            <attribute name="text:footnotes-position">
                <choice>
                    <value>text</value>
                    <value>page</value>
                    <value>section</value>
                    <value>document</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="text-notes-configuration-content" combine="interleave">
        <optional>
            <element name="text:note-continuation-notice-forward">
                <text/>
            </element>
        </optional>
    </define>
    <define name="text-notes-configuration-content" combine="interleave">
        <optional>
            <element name="text:note-continuation-notice-backward">
                <text/>
            </element>
        </optional>
    </define>
    <define name="text-bibliography-configuration">
        <element name="text:bibliography-configuration">
            <ref name="text-bibliography-configuration-attlist"/>
            <zeroOrMore>
                <ref name="text-sort-key"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-bibliography-configuration-attlist" combine="interleave">
        <optional>
            <attribute name="text:prefix">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:suffix">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="text-bibliography-configuration-attlist" combine="interleave">
        <optional>
            <attribute name="text:numbered-entries" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-bibliography-configuration-attlist" combine="interleave">
        <optional>
            <attribute name="text:sort-by-position" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:language">
                <ref name="languageCode"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:country">
                <ref name="countryCode"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:sort-algorithm">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="text-sort-key">
        <element name="text:sort-key">
            <ref name="text-sort-key-attlist"/>
            <empty/>
        </element>
    </define>
    
    <define name="text-sort-key-attlist" combine="interleave">
        <attribute name="text:key">
            <choice>
                <value>address</value>
                <value>annote</value>
                <value>author</value>
                <value>bibliography-type</value>
                <value>booktitle</value>
                <value>chapter</value>
                <value>custom1</value>
                <value>custom2</value>
                <value>custom3</value>
                <value>custom4</value>
                <value>custom5</value>
                <value>edition</value>
                <value>editor</value>
                <value>howpublished</value>
                <value>identifier</value>
                <value>institution</value>
                <value>isbn</value>
                <value>issn</value>
                <value>journal</value>
                <value>month</value>
                <value>note</value>
                <value>number</value>
                <value>organizations</value>
                <value>pages</value>
                <value>publisher</value>
                <value>report-type</value>
                <value>school</value>
                <value>series</value>
                <value>title</value>
                <value>url</value>
                <value>volume</value>
                <value>year</value>
            </choice>
        </attribute>
        <optional>
            <attribute name="text:sort-ascending" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="text-list-style">
        <element name="text:list-style">
            <ref name="text-list-style-attr"/>
            <zeroOrMore>
                <ref name="text-list-style-content"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="text-list-style-attr" combine="interleave">
        <attribute name="style:name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="text-list-style-attr" combine="interleave">
        <optional>
            <attribute name="style:display-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="text-list-style-attr" combine="interleave">
        <attribute name="text:consecutive-numbering" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </define>
    <define name="text-list-level-style-attr">
        <attribute name="text:level">
            <ref name="positiveInteger"/>
        </attribute>
    </define>
    <define name="text-list-style-content" combine="choice">
        <element name="text:list-level-style-number">
            <ref name="text-list-level-style-attr"/>
            <ref name="text-list-level-style-number-attr"/>
            <optional>
                <ref name="style-list-level-properties"/>
            </optional>
        </element>
    </define>
    <define name="text-list-level-style-number-attr" combine="interleave">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="text-list-level-style-number-attr" combine="interleave">
        <ref name="common-num-format-attlist"/>
        <ref name="common-num-format-prefix-suffix-attlist"/>
    </define>
    <define name="text-list-level-style-number-attr" combine="interleave">
        <optional>
            <attribute name="text:display-levels" a:defaultValue="1">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="text-list-level-style-number-attr" combine="interleave">
        <optional>
            <attribute name="text:start-value" a:defaultValue="1">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="text-list-style-content" combine="choice">
        <element name="text:list-level-style-bullet">
            <ref name="text-list-level-style-attr"/>
            <ref name="text-list-level-style-bullet-attr"/>
            <optional>
                <ref name="style-list-level-properties"/>
            </optional>
        </element>
    </define>
    <define name="text-list-level-style-bullet-attr" combine="interleave">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="text-list-level-style-bullet-attr" combine="interleave">
        <attribute name="text:bullet-char">
            <ref name="character"/>
        </attribute>
    </define>
    <define name="text-list-level-style-bullet-attr" combine="interleave">
        <ref name="common-num-format-prefix-suffix-attlist"/>
    </define>
    <define name="text-list-level-style-bullet-attr" combine="interleave">
        <optional>
            <attribute name="text:bullet-relative-size">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="text-list-style-content" combine="choice">
        <element name="text:list-level-style-image">
            <ref name="text-list-level-style-attr"/>
            <ref name="text-list-level-style-image-attr"/>
            <optional>
                <ref name="style-list-level-properties"/>
            </optional>
        </element>
    </define>
    <define name="text-list-level-style-image-attr" combine="interleave">
        <choice>
            <ref name="common-draw-data-attlist"/>
            <ref name="office-binary-data"/>
        </choice>
    </define>
    <define name="text-outline-style">
        <element name="text:outline-style">
            <oneOrMore>
                <ref name="text-outline-level-style"/>
            </oneOrMore>
        </element>
    </define>
    <define name="text-outline-level-style">
        <element name="text:outline-level-style">
            <ref name="text-outline-level-style-attlist"/>
            <optional>
                <ref name="style-list-level-properties"/>
            </optional>
        </element>
    </define>
    <define name="text-outline-level-style-attlist" combine="interleave">
        <attribute name="text:level">
            <ref name="positiveInteger"/>
        </attribute>
    </define>
    <define name="text-outline-level-style-attlist" combine="interleave">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="text-outline-level-style-attlist" combine="interleave">
        <ref name="common-num-format-attlist"/>
        <ref name="common-num-format-prefix-suffix-attlist"/>
    </define>
    <define name="text-outline-level-style-attlist" combine="interleave">
        <optional>
            <attribute name="text:display-levels" a:defaultValue="1">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="text-outline-level-style-attlist" combine="interleave">
        <optional>
            <attribute name="text:start-value" a:defaultValue="1">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-style-content" combine="choice">
        <group>
            <attribute name="style:family">
                <value>table</value>
            </attribute>
            <optional>
                <ref name="style-table-properties"/>
            </optional>
        </group>
    </define>
    <define name="style-style-content" combine="choice">
        <group>
            <attribute name="style:family">
                <value>table-column</value>
            </attribute>
            <optional>
                <ref name="style-table-column-properties"/>
            </optional>
        </group>
    </define>
    <define name="style-style-content" combine="choice">
        <group>
            <attribute name="style:family">
                <value>table row</value>
            </attribute>
            <optional>
                <ref name="style-table-row-properties"/>
            </optional>
        </group>
    </define>
    <define name="style-style-content" combine="choice">
        <group>
            <attribute name="style:family">
                <value>table-cell</value>
            </attribute>
            <optional>
                <ref name="style-table-cell-properties"/>
            </optional>
            <optional>
                <ref name="style-paragraph-properties"/>
            </optional>
            <optional>
                <ref name="style-text-properties"/>
            </optional>
        </group>
    </define>
    <define name="style-style-content" combine="choice">
        <group>
            <attribute name="style:family">
                <choice>
                    <value>graphic</value>
                    <value>presentation</value>
                </choice>
            </attribute>
            <optional>
                <ref name="style-graphic-properties"/>
            </optional>
            <optional>
                <ref name="style-paragraph-properties"/>
            </optional>
            <optional>
                <ref name="style-text-properties"/>
            </optional>
        </group>
    </define>
    
    <define name="style-graphic-properties">
        <element name="style:graphic-properties">
            <ref name="style-graphic-properties-content"/>
        </element>
    </define>
    
    <define name="style-graphic-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-graphic-properties-content-strict">
        <ref name="style-graphic-properties-attlist"/>
        <ref name="style-graphic-fill-properties-attlist"/>
        <ref name="style-graphic-properties-elements"/>
    </define>
    
    <define name=" style-graphic-properties-elements">
        <empty/>
    </define>
    <define name="style-style-content" combine="choice">
        <group>
            <attribute name="style:family">
                <value>drawing-page</value>
            </attribute>
            <optional>
                <ref name="style-drawing-page-properties"/>
            </optional>
        </group>
    </define>
    
    <define name="style-drawing-page-properties">
        <element name="style:drawing-page-properties">
            <ref name="style-drawing-page-properties-content"/>
        </element>
    </define>
    
    <define name="style-drawing-page-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-drawing-page-properties-content-strict">
        <ref name="style-graphic-fill-properties-attlist"/>
        <ref name="style-drawing-page-properties-attlist"/>
        <ref name="style-drawing-page-properties-elements"/>
    </define>
    <define name="draw-gradient">
        <element name="draw:gradient">
            <ref name="common-draw-gradient-attlist"/>
            <ref name="draw-gradient-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="common-draw-gradient-attlist" combine="interleave">
        <attribute name="draw:name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="common-draw-gradient-attlist" combine="interleave">
        <optional>
            <attribute name="draw:display-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="common-draw-gradient-attlist" combine="interleave">
        <attribute name="draw:style">
            <ref name="gradient-style"/>
        </attribute>
    </define>
    <define name="gradient-style">
        <choice>
            <value>linear</value>
            <value>axial</value>
            <value>radial</value>
            <value>ellipsoid</value>
            <value>square</value>
            <value>rectangular</value>
        </choice>
    </define>
    <define name="common-draw-gradient-attlist" combine="interleave">
        <optional>
            <attribute name="draw:cx">
                <ref name="percent"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:cy">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-gradient-attlist" combine="interleave">
        <optional>
            <attribute name="draw:start-color">
                <ref name="color"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:end-color">
                <ref name="color"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-gradient-attlist" combine="interleave">
        <optional>
            <attribute name="draw:start-intensity">
                <ref name="percent"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:end-intensity">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="common-draw-gradient-attlist" combine="interleave">
        <optional>
            <attribute name="draw:angle">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="common-draw-gradient-attlist" combine="interleave">
        <optional>
            <attribute name="draw:border">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="svg-linearGradient">
        <element name="svg:linearGadient">
            <ref name="common-svg-gradient-attlist"/>
            <optional>
                <attribute name="svg:x1" a:defaultValue="0%">
                    <choice>
                        <ref name="coordinate"/>
                        <ref name="percent"/>
                    </choice>                
                </attribute>
            </optional>
            <optional>
                <attribute name="svg:y1" a:defaultValue="0%">
                    <choice>
                        <ref name="coordinate"/>
                        <ref name="percent"/>
                    </choice>                
                </attribute>
            </optional>
            <optional>
                <attribute name="svg:x2" a:defaultValue="100%">
                    <choice>
                        <ref name="coordinate"/>
                        <ref name="percent"/>
                    </choice>                
                </attribute>
            </optional>
            <optional>
                <attribute name="svg:y2" a:defaultValue="100%">
                    <choice>
                        <ref name="coordinate"/>
                        <ref name="percent"/>
                    </choice>                
                </attribute>
            </optional>
            <zeroOrMore>
                <ref name="svg-stop"/>
            </zeroOrMore>
        </element>
    </define>
    
    <define name="svg-radialGradient">
        <element name="svg:radialGradient">
            <ref name="common-svg-gradient-attlist"/>
            <optional>
                <attribute name="svg:cx" a:defaultValue="50%">
                    <choice>
                        <ref name="coordinate"/>
                        <ref name="percent"/>
                    </choice>                
                </attribute>
            </optional>
            <optional>
                <attribute name="svg:cy" a:defaultValue="5%">
                    <choice>
                        <ref name="coordinate"/>
                        <ref name="percent"/>
                    </choice>                
                </attribute>
            </optional>
            <optional>
                <attribute name="svg:r" a:defaultValue="5%">
                    <choice>
                        <ref name="coordinate"/>
                        <ref name="percent"/>
                    </choice>                
                </attribute>
            </optional>
            <optional>
                <attribute name="svg:fx">
                    <choice>
                        <ref name="coordinate"/>
                        <ref name="percent"/>
                    </choice>                
                </attribute>
            </optional>
            <optional>
                <attribute name="svg:fy">
                    <choice>
                        <ref name="coordinate"/>
                        <ref name="percent"/>
                    </choice>                
                </attribute>
            </optional>
            <zeroOrMore>
                <ref name="svg-stop"/>
            </zeroOrMore>
        </element>
    </define>
    
    <define name="svg-stop">
        <element name="svg:stop">
            <attribute name="svg:offset">
                <choice>
                    <ref name="double"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
            <optional>
                <attribute name="svg:stop-color">
                    <ref name="color"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="svg:stop-opacity">
                    <ref name="double"/>
                </attribute>
            </optional>
        </element>
    </define>
    
    <define name="common-svg-gradient-attlist" combine="interleave">
        <optional>
            <attribute name="svg:gradientUnits" a:defaultValue="objectBoundingBox">
                <value>objectBoundingBox</value>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:gradientTransform">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:spreadMethod" a:defaultValue="pad">
                <choice>
                    <value>pad</value>
                    <value>reflect</value>
                    <value>repeat</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="common-svg-gradient-attlist" combine="interleave">
        <attribute name="draw:name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="common-svg-gradient-attlist" combine="interleave">
        <optional>
            <attribute name="draw:display-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-hatch">
        <element name="draw:hatch">
            <ref name="draw-hatch-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="draw-hatch-attlist" combine="interleave">
        <attribute name="draw:name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="draw-hatch-attlist" combine="interleave">
        <optional>
            <attribute name="draw:display-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-hatch-attlist" combine="interleave">
        <attribute name="draw:style">
            <choice>
                <value>single</value>
                <value>double</value>
                <value>triple</value>
            </choice>
        </attribute>
    </define>
    <define name="draw-hatch-attlist" combine="interleave">
        <optional>
            <attribute name="draw:color">
                <ref name="color"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-hatch-attlist" combine="interleave">
        <optional>
            <attribute name="draw:distance">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-hatch-attlist" combine="interleave">
        <optional>
            <attribute name="draw:rotation">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-fill-image">
        <element name="draw:fill-image">
            <ref name="draw-fill-image-attlist"/>
            <attribute name="xlink:href">
                <ref name="anyURI"/>
            </attribute>
            <optional>
                <attribute name="xlink:type" a:defaultValue="simple">
                    <choice>
                        <value>simple</value>
                    </choice>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:show" a:defaultValue="embed">
                    <choice>
                        <value>embed</value>
                    </choice>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:actuate" a:defaultValue="onLoad">
                    <choice>
                        <value>onLoad</value>
                    </choice>
                </attribute>
            </optional>
            <empty/>
        </element>
    </define>
    <define name="draw-fill-image-attlist" combine="interleave">
        <attribute name="draw:name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="draw-fill-image-attlist" combine="interleave">
        <optional>
            <attribute name="draw:display-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-fill-image-attlist" combine="interleave">
        <optional>
            <attribute name="svg:width">
                <ref name="length"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:height">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-opacity">
        <element name="draw:opacity">
            <ref name="common-draw-gradient-attlist"/>
            <ref name="draw-opacity-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="draw-opacity-attlist" combine="interleave">
        <optional>
            <attribute name="draw:start">
                <ref name="percent"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:end">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-marker">
        <element name="draw:marker">
            <ref name="draw-marker-attlist"/>
            <ref name="common-draw-viewbox-attlist"/>
            <ref name="common-draw-path-data-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="draw-marker-attlist" combine="interleave">
        <attribute name="draw:name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="draw-marker-attlist" combine="interleave">
        <optional>
            <attribute name="draw:display-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-stroke-dash">
        <element name="draw:stroke-dash">
            <ref name="draw-stroke-dash-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="draw-stroke-dash-attlist" combine="interleave">
        <attribute name="draw:name">
            <ref name="styleName"/>
        </attribute>
    </define>
    <define name="draw-stroke-dash-attlist" combine="interleave">
        <optional>
            <attribute name="draw:display-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-stroke-dash-attlist" combine="interleave">
        <optional>
            <attribute name="draw:style">
                <choice>
                    <value>rect</value>
                    <value>round</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="draw-stroke-dash-attlist" combine="interleave">
        <optional>
            <attribute name="draw:dots1">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:dots1-length">
                <ref name="length"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:dots2">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:dots2-length">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="draw-stroke-dash-attlist" combine="interleave">
        <optional>
            <attribute name="draw:distance">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-presentation-page-layout">
        <element name="style:presentation-page-layout">
            <attribute name="style:name">
                <ref name="styleName"/>
            </attribute>
            <optional>
                <attribute name="style:diplay-name">
                    <ref name="string"/>
                </attribute>
            </optional>
            <zeroOrMore>
                <ref name="presentation-placeholder"/>
            </zeroOrMore>
        </element>
    </define>
    <define name="presentation-placeholder">
        <element name="presentation:placeholder">
            <attribute name="presentation:object">
                <ref name="presentation-classes"/>
            </attribute>
            <attribute name="svg:x">
                <choice>
                    <ref name="coordinate"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
            <attribute name="svg:y">
                <choice>
                    <ref name="coordinate"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
            <attribute name="svg:width">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
            <attribute name="svg:height">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
            <empty/>
        </element>
    </define>
    <define name="style-style-content" combine="choice">
        <group>
            <attribute name="style:family">
                <value>chart</value>
            </attribute>
            <optional>
                <ref name="style-chart-properties"/>
                <ref name="style-graphic-properties"/>
                <ref name="style-paragraph-properties"/>
                <ref name="style-text-properties"/>
            </optional>
        </group>
    </define>
    <define name="style-properties-content">
        <ref name="anyAttListOrElements"/>
    </define>
    <define name="style-page-layout-properties">
        <element name="style:page-layout-properties">
            <ref name="style-page-layout-properties-content"/>
        </element>
    </define>
    
    <define name="style-page-layout-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-page-layout-properties-content-strict">
        <ref name="style-page-layout-properties-attlist"/>
        <ref name="style-page-layout-properties-elements"/>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:page-width">
                <ref name="length"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:page-height">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <ref name="common-num-format-attlist"/>
        </optional>
        <ref name="common-num-format-prefix-suffix-attlist"/>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:paper-tray-name">
                <choice>
                    <value>default</value>
                    <ref name="string"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:print-orientation">
                <choice>
                    <value>portrait</value>
                    <value>landscape</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <ref name="common-horizontal-margin-attlist"/>
        <ref name="common-vertical-margin-attlist"/>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <ref name="common-border-attlist"/>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <ref name="common-border-line-width-attlist"/>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <ref name="common-padding-attlist"/>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <ref name="common-shadow-attlist"/>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <ref name="common-background-color-attlist"/>
    </define>
    <define name="style-page-layout-properties-elements" combine="interleave">
        <ref name="style-background-image"/>
    </define>
    <define name="style-page-layout-properties-elements" combine="interleave">
        <ref name="style-columns"/>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:register-truth-ref-style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:print">
                <list>
                    <zeroOrMore>
                        <choice>
                            <value>headers</value>
                            <value>grid</value>
                            <value>annotations</value>
                            <value>objects</value>
                            <value>charts</value>
                            <value>drawings</value>
                            <value>formulas</value>
                            <value>zero-values</value>
                        </choice>
                    </zeroOrMore>
                </list>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:print-page-order">
                <choice>
                    <value>ttb</value>
                    <value>ltr</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:first-page-number">
                <choice>
                    <ref name="positiveInteger"/>
                    <value>continue</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:scale-to">
                <ref name="percent"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:scale-to-pages">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:table-centering">
                <choice>
                    <value>horizontal</value>
                    <value>vertical</value>
                    <value>both</value>
                    <value>none</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:footnote-max-height">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <ref name="common-writing-mode-attlist"/>
    </define>
    <define name="style-page-layout-properties-elements" combine="interleave">
        <ref name="style-footnote-sep"/>
    </define>
    
    <define name="style-footnote-sep">
        <optional>
            <element name="style:footnote-sep">
                <ref name="style-footnote-sep-attlist"/>
                <empty/>
            </element>
        </optional>
    </define>
    <define name="style-footnote-sep-attlist" combine="interleave">
        <optional>
            <attribute name="style:width">
                <ref name="length"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:rel-width">
                <ref name="percent"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:color">
                <ref name="color"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:adjustment" a:defaultValue="left">
                <choice>
                    <value>left</value>
                    <value>center</value>
                    <value>right</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:distance-before-sep">
                <ref name="length"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:distance-after-sep">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:layout-grid-mode">
                <choice>
                    <value>none</value>
                    <value>line</value>
                    <value>both</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:layout-grid-base-height">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:layout-grid-ruby-height">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:layout-grid-lines">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:layout-grid-color">
                <ref name="color"/>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:layout-grid-ruby-below">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:layout-grid-print">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-page-layout-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:layout-grid-display">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-header-footer-properties">
        <element name="style:header-footer-properties">
            <ref name="style-header-footer-properties-content"/>
        </element>
    </define>
    
    <define name="style-header-footer-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-header-footer-properties-content-strict">
            <ref name="style-header-footer-properties-attlist"/>
            <ref name="style-header-footer-properties-elements"/>
    </define>
    <define name="style-header-footer-properties-attlist" combine="interleave">
        <optional>
            <attribute name="svg:height">
                <ref name="length"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:min-height">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-header-footer-properties-attlist" combine="interleave">
        <ref name="common-horizontal-margin-attlist"/>
        <ref name="common-vertical-margin-attlist"/>
    </define>
    <define name="style-header-footer-properties-attlist" combine="interleave">
        <ref name="common-border-attlist"/>
    </define>
    <define name="style-header-footer-properties-attlist" combine="interleave">
        <ref name="common-border-line-width-attlist"/>
    </define>
    <define name="style-header-footer-properties-attlist" combine="interleave">
        <ref name="common-padding-attlist"/>
    </define>
    <define name="style-header-footer-properties-attlist" combine="interleave">
        <ref name="common-background-color-attlist"/>
    </define>
    <define name="style-header-footer-properties-elements" combine="interleave">
        <ref name="style-background-image"/>
    </define>
    <define name="style-header-footer-properties-attlist" combine="interleave">
        <ref name="common-shadow-attlist"/>
    </define>
    <define name="style-header-footer-attlist" combine="interleave">
        <optional>
            <attribute name="style:dynamic-spacing">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-haeder-footer-properties-attlist" combine="interleave">
        <ref name="common-background-color-attlist"/>
    </define>
    <define name="style-haeder-footer-properties-elements" combine="interleave">
        <ref name="style-background-image"/>
    </define>
    <define name="style-text-properties">
        <element name="style:text-properties">
            <ref name="style-text-properties-content"/>
        </element>
    </define>
    
    <define name="style-text-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-text-properties-content-strict">
        <ref name="style-text-properties-attlist"/>
        <ref name="style-text-properties-elements"/>
    </define>
    
    <define name="style-text-properties-elements">
        <empty/>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:font-variant">
                <ref name="fontVariant"/>
            </attribute>
        </optional>
    </define>
    
    <define name="fontVariant">
        <choice>
            <value>normal</value>
            <value>small-caps</value>
        </choice>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:text-transform">
                <choice>
                    <value>none</value>
                    <value>lowercase</value>
                    <value>uppercase</value>
                    <value>capitalize</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
                <attribute name="fo:color">
                <ref name="color"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:use-window-font-color">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-outline">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-line-through-type">
                <ref name="lineType"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-line-through-style">
                <ref name="lineStyle"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-line-through-width">
                <ref name="lineWidth"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-line-through-color">
                <choice>
                    <value>font-color</value>
                    <ref name="color"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-line-through-text">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-line-through-text-style">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-position">
                <list>
                    <choice>
                        <ref name="percent"/>
                        <value>super</value>
                        <value>sub</value>
                    </choice>
                    <optional>
                        <ref name="percent"/>
                    </optional>
                </list>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:font-name">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-name-asian">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-name-complex">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:font-family">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-family-asian">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-family-complex">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:font-family-generic">
                <ref name="fontFamilyGeneric"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-family-generic-asian">
                <ref name="fontFamilyGeneric"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-family-generic-complex">
                <ref name="fontFamilyGeneric"/>
            </attribute>
        </optional>
    </define>
    
    <define name="fontFamilyGeneric">
        <choice>
            <value>roman</value>
            <value>swiss</value>
            <value>modern</value>
            <value>decorative</value>
            <value>script</value>
            <value>system</value>
        </choice>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:font-style-name">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-style-name-asian">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-style-name-complex">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:font-pitch">
                <ref name="fontPitch"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-pitch-asian">
                <ref name="fontPitch"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-pitch-complex">
                <ref name="fontPitch"/>
            </attribute>
        </optional>
    </define>
    
    <define name="fontPitch">
        <choice>
            <value>fixed</value>
            <value>variable</value>
        </choice>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:font-charset">
                <ref name="textEncoding"/>
            </attribute>
        </optional>
    </define>
    
    <define name="textEncoding">
        <data type="string">
            <param name="pattern">[A-Za-z][A-Za-z0-9._\-]*</param>
        </data>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:font-size">
                <choice>
                    <ref name="positiveLength"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-size-asian">
                <choice>
                    <ref name="positiveLength"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-size-complex">
                <choice>
                    <ref name="positiveLength"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:font-size-rel">
                <ref name="length"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-size-rel-asian">
                <ref name="length"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-size-rel-complex">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:script-type">
                <choice>
                    <value>latin</value>
                    <value>asian</value>
                    <value>complex</value>
                    <value>ignore</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:letter-spacing">
                <choice>
                    <ref name="length"/>
                    <value>normal</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:language">
                <ref name="languageCode"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:language-asian">
                <ref name="languageCode"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:language-complex">
                <ref name="languageCode"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:country">
                <ref name="countryCode"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:country-asian">
                <ref name="countryCode"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:country-complex">
                <ref name="countryCode"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:font-style">
                <ref name="fontStyle"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-style-asian">
                <ref name="fontStyle"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-style-complex">
                <ref name="fontStyle"/>
            </attribute>
        </optional>
    </define>
    
    <define name="fontStyle">
        <choice>
            <value>normal</value>
            <value>italic</value>
            <value>oblique</value>
        </choice>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:font-relief">
                <choice>
                <value>none</value>
                    <value>embossed</value>
                    <value>engraved</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:text-shadow">
                <ref name="shadowType"/>
            </attribute>
        </optional>
    </define>
    
    <define name="shadowType">
        <choice>
            <value>none</value>
            <!-- The follwing string must match an XSL shadow decl -->
            <ref name="string"/>
        </choice>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-underline-type">
                <ref name="lineType"/>
            </attribute>
        </optional>
    </define>
    
    <define name="lineType">
        <choice>
            <value>none</value>
            <value>single</value>
            <value>double</value>
        </choice>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-underline-style">
                <ref name="lineStyle"/>
            </attribute>
        </optional>
    </define>
    
    <define name="lineStyle">
        <choice>
            <value>none</value>
            <value>solid</value>
            <value>dotted</value>
            <value>dash</value>
            <value>long-dash</value>
            <value>dot-dash</value>
            <value>dot-dot-dash</value>
            <value>wave</value>
        </choice>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-underline-width">
                <ref name="lineWidth"/>
            </attribute>
        </optional>
    </define>
    
    <define name="lineWidth">
        <choice>
            <value>auto</value>
            <value>normal</value>
            <value>bold</value>
            <value>thin</value>
            <value>dash</value>
            <value>medium</value>
            <value>thick</value>
            <ref name="positiveInteger"/>
            <ref name="percent"/>
            <ref name="positiveLength"/>
        </choice>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-underline-color">
                <choice>
                    <value>font-color</value>
                    <ref name="color"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:font-weight">
                <ref name="fontWeight"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-weight-asian">
                <ref name="fontWeight"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:font-weight-complex">
                <ref name="fontWeight"/>
            </attribute>
        </optional>
    </define>
    
    <define name="fontWeight">
        <choice>
            <value>normal</value>
            <value>bold</value>
            <value>100</value>
            <value>200</value>
            <value>300</value>
            <value>400</value>
            <value>500</value>
            <value>600</value>
            <value>700</value>
            <value>800</value>
            <value>900</value>
        </choice>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-underline-mode">
                <ref name="lineMode"/>
            </attribute>
        </optional>
    </define>
    
    <define name="lineMode">
        <choice>
            <value>continuous</value>
            <value>skip-white-space</value>
        </choice>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-line-through-mode">
                <ref name="lineMode"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:letter-kerning">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-blinking">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <ref name="common-background-color-attlist"/>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-combine">
                <choice>
                    <value>none</value>
                    <value>letters</value>
                    <value>lines</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-combine-start-char">
                <ref name="character"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:text-combine-end-char">
                <ref name="character"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-emphasize">
                <choice>
                    <value>none</value>
                    <list>
                        <choice>
                            <value>none</value>
                            <value>accent</value>
                            <value>dot</value>
                            <value>circle</value>
                            <value>disc</value>
                        </choice>
                        <choice>
                            <value>above</value>
                            <value>below</value>
                        </choice>
                    </list>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-scale">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-rotation-angle">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="style-text-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-rotation-scale">
                <choice>
                    <value>fixed</value>
                    <value>line-height</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties">
        <element name="style:paragraph-properties">
            <ref name="style-paragraph-properties-content"/>
        </element>
    </define>
    
    <define name="style-paragraph-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-paragraph-properties-content-strict">
        <ref name="style-paragraph-properties-attlist"/>
        <ref name="style-paragraph-properties-elements"/>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:line-height">
                <choice>
                    <value>normal</value>
                    <ref name="nonNegativeLength"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:line-height-at-least">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:line-spacing">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <ref name="common-text-align"/>
    </define>
    
    <define name="common-text-align">
        <optional>
            <attribute name="fo:text-align">
                <choice>
                    <value>start</value>
                    <value>end</value>
                    <value>left</value>
                    <value>right</value>
                    <value>center</value>
                    <value>justify</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:text-align-last">
                <choice>
                    <value>start</value>
                    <value>center</value>
                    <value>justify</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:justify-single-word">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:break-inside">
                <choice>
                    <value>auto</value>
                    <value>avoid</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:widows">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:orphans">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-elements" combine="interleave">
        <ref name="style-tab-stops"/>
    </define>
    
    <define name="style-tab-stops">
        <optional>
            <element name="style:tab-stops">
                <zeroOrMore>
                    <ref name="style-tab-stop"/>
                </zeroOrMore>
            </element>
        </optional>
    </define>
    
    <define name="style-tab-stop">
        <element name="style:tab-stop">
            <ref name="style-tab-stop-attlist"/>
            <empty/>
        </element>
    </define>
    <define name="style-tab-stop-attlist" combine="interleave">
        <attribute name="style:position">
            <ref name="nonNegativeLength"/>
        </attribute>
    </define>
    <define name="style-tab-stop-attlist" combine="interleave">
        <optional>
            <choice>
                <attribute name="style:type" a:defaultValue="left">
                    <choice>
                        <value>left</value>
                        <value>center</value>
                        <value>right</value>
                    </choice>
                </attribute>
                <group>
                    <attribute name="style:type" a:defaultValue="left">
                        <value>char</value>
                    </attribute>
                    <ref name="style-tab-stop-char-attlist"/>
                </group>
            </choice>
        </optional>
    </define>
    <define name="style-tab-stop-char-attlist" combine="interleave">
        <attribute name="style:char">
            <ref name="character"/>
        </attribute>
    </define>
    <define name="style-tab-stop-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-line-through-type">
                <ref name="lineType"/>
            </attribute>
        </optional>
    </define>
    <define name="style-tab-stop-attlist" combine="interleave">
        <optional>
            <attribute name="style:leader-style">
                <ref name="lineStyle"/>
            </attribute>
        </optional>
    </define>
    <define name="style-tab-stop-attlist" combine="interleave">
        <optional>
            <attribute name="style:leader-width">
                <ref name="lineWidth"/>
            </attribute>
        </optional>
    </define>
    <define name="style-tab-stop-attlist" combine="interleave">
        <optional>
            <attribute name="style:leader-color">
                <choice>
                    <value>font-color</value>
                    <ref name="color"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-tab-stop-attlist" combine="interleave">
        <optional>
            <attribute name="style:leader-text" a:defaultValue=" ">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="style-tab-stop-attlist" combine="interleave">
        <optional>
            <attribute name="style:leader-text-style">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:tab-stop-distance">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:hyphenate">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:hyphenate-keep">
                <choice>
                    <value>auto</value>
                    <value>page</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:hyphenation-remain-char-count">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:hyphenation-push-char-count">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:hyphenation-ladder-count">
                <choice>
                    <value>no-limit</value>
                    <ref name="positiveInteger"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-elements" combine="interleave">
        <ref name="style-drop-cap"/>
    </define>
    
    <define name="style-drop-cap">
        <optional>
            <element name="style:drop-cap">
                <ref name="style-drop-cap-attlist"/>
                <empty/>
            </element>
        </optional>
    </define>
    <define name="style-drop-cap-attlist" combine="interleave">
        <optional>
            <attribute name="style:length" a:defaultValue="1">
                <choice>
                    <value>word</value>
                    <ref name="positiveInteger"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-drop-cap-attlist" combine="interleave">
        <optional>
            <attribute name="style:lines" a:defaultValue="1">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-drop-cap-attlist" combine="interleave">
        <optional>
            <attribute name="style:distance" a:defaultValue="0cm">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-drop-cap-attlist" combine="interleave">
        <optional>
            <attribute name="style:style-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
            <optional>
                <attribute name="style:register-true">
                    <ref name="boolean"/>
                </attribute>
            </optional>
        </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <ref name="common-horizontal-margin-attlist"/>
    </define>
    
    <define name="common-horizontal-margin-attlist">
        <optional>
            <attribute name="fo:margin-left">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:margin-right">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:text-indent">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:auto-text-indent">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <ref name="common-vertical-margin-attlist"/>
    </define>
    
    <define name="common-vertical-margin-attlist">
        <optional>
            <attribute name="fo:margin-top">
                <choice>
                    <ref name="nonNegativeLength"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:margin-bottom">
                <choice>
                    <ref name="nonNegativeLength"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <ref name="common-break-attlist"/>
    </define>
    
    <define name="common-break-attlist">
        <optional>
            <attribute name="fo:break-before">
                <choice>
                    <value>auto</value>
                    <value>column</value>
                    <value>page</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:break-after">
                <choice>
                    <value>auto</value>
                    <value>column</value>
                    <value>page</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <ref name="common-background-color-attlist"/>
    </define>
    
    <define name="common-background-color-attlist">
        <optional>
            <attribute name="fo:background-color">
                <choice>
                    <value>transparent</value>
                    <ref name="color"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-elements" combine="interleave">
        <ref name="style-background-image"/>
    </define>
    
    <define name="style-background-image">
        <optional>
            <element name="style:background-image">
                <ref name="style-background-image-attlist"/>
                <choice>
                    <ref name="common-draw-data-attlist"/>
                    <ref name="office-binary-data"/>
                    <empty/>
                </choice>
            </element>
        </optional>
    </define>
    <define name="style-background-image-attlist" combine="interleave">
        <optional>
            <attribute name="style:repeat" a:defaultValue="repeat">
                <choice>
                    <value>no-repeat</value>
                    <value>repeat</value>
                    <value>stretch</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-background-image-attlist" combine="interleave">
        <optional>
            <attribute name="style:position" a:defaultValue="center">
                <choice>
                    <value>left</value>
                    <value>center</value>
                    <value>right</value>
                    <value>top</value>
                    <value>bottom</value>
                    <list>
                        <ref name="horiBackPos"/>
                        <ref name="vertBackPos"/>
                    </list>
                    <list>
                        <ref name="vertBackPos"/>
                        <ref name="horiBackPos"/>
                    </list>
                </choice>
            </attribute>
        </optional>
    </define>
    
    <define name="horiBackPos">
        <choice>
            <value>left</value>
            <value>center</value>
            <value>right</value>
        </choice>
    </define>
    <define name="vertBackPos">
        <choice>
            <value>top</value>
            <value>center</value>
            <value>bottom</value>
        </choice>
    </define>
    <define name="style-background-image-attlist" combine="interleave">
        <optional>
            <attribute name="style:filter-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="style-background-image-attlist" combine="interleave">
        <optional>
            <attribute name="draw:opacity">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <ref name="common-border-attlist"/>
    </define>
    
    <define name="common-border-attlist">
        <optional>
            <attribute name="fo:border">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:border-top">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:border-bottom">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:border-left">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:border-right">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <ref name="common-border-line-width-attlist"/>
    </define>
    
    <define name="common-border-line-width-attlist">
        <optional>
            <attribute name="style:border-line-width">
                <ref name="borderWidths"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:border-line-width-top">
                <ref name="borderWidths"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:border-line-width-bottom">
                <ref name="borderWidths"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:border-line-width-left">
                <ref name="borderWidths"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:border-line-width-right">
                <ref name="borderWidths"/>
            </attribute>
        </optional>
    </define>
    
    <define name="borderWidths">
        <list>
            <ref name="positiveLength"/>
            <ref name="positiveLength"/>
            <ref name="positiveLength"/>
        </list>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <ref name="common-padding-attlist"/>
    </define>
    
    <define name="common-padding-attlist">
        <optional>
            <attribute name="fo:padding">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:padding-top">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:padding-bottom">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:padding-left">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:padding-right">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <ref name="common-shadow-attlist"/>
    </define>
    
    <define name="common-shadow-attlist">
        <optional>
            <attribute name="style:shadow">
                <ref name="shadowType"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <ref name="common-keep-with-next-attlist"/>
    </define>
    
    <define name="common-keep-with-next-attlist">
        <optional>
            <attribute name="fo:keep-with-next">
                <!-- Note to the TC: The attribute value wrongly was boolean -->
                <choice>
                    <value>auto</value>
                    <value>always</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="text:number-lines" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="text:line-number">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-autospace">
                <choice>
                    <value>none</value>
                    <value>ideograph-alpha</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:punctuation-wrap">
                <choice>
                    <value>simple</value>
                    <value>hanging</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:line-break">
                <choice>
                    <value>normal</value>
                    <value>strict</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:vertical-align" a:defaultValue="auto">
                <choice>
                    <value>top</value>
                    <value>middle</value>
                    <value>bottom</value>
                    <value>center</value>
                    <value>auto</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <ref name="common-writing-mode-attlist"/>
    </define>
    
    <define name="common-writing-mode-attlist">
        <optional>
            <attribute name="style:writing-mode">
                <choice>
                    <value>lr-tb</value>
                    <value>rl-tb</value>
                    <value>tb-rl</value>
                    <value>tb-lr</value>
                    <value>lr</value>
                    <value>rl</value>
                    <value>tb</value>
                    <value>page</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:writing-mode-automatic">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:snap-to-layout-grid">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <ref name="common-page-number-attlist"/>
    </define>
    
    <define name="common-page-number-attlist">
        <optional>
            <attribute name="style:page-number">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:background-transparency">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-ruby-properties">
        <element name="style:ruby-properties">
            <ref name="style-ruby-properties-content"/>
        </element>
    </define>
    
    <define name="style-ruby-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-ruby-properties-content-strict">
        <ref name="style-ruby-properties-attlist"/>
        <ref name="style-ruby-properties-elements"/>
    </define>
    
    <define name="style-ruby-properties-elements">
        <empty/>
    </define>
    <define name="style-ruby-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:ruby-position">
                <choice>
                    <value>above</value>
                    <value>below</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-ruby-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:ruby-align">
                <choice>
                    <value>left</value>
                    <value>center</value>
                    <value>right</value>
                    <value>distribute-letter</value>
                    <value>distribute-space</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-section-properties">
        <element name="style:section-properties">
            <ref name="style-section-properties-content"/>
        </element>
    </define>
    
    <define name="style-section-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-section-properties-content-strict">
        <ref name="style-section-properties-attlist"/>
        <ref name="style-section-properties-elements"/>
    </define>
    <define name="style-section-properties-attlist" combine="interleave">
        <ref name="common-background-color-attlist"/>
        <ref name="style-background-image"/>
    </define>
    <define name="style-section-properties-attlist" combine="interleave">
        <ref name="common-horizontal-margin-attlist"/>
    </define>
    <define name="style-section-properties-elements" combine="interleave">
        <ref name="style-columns"/>
    </define>
    
    <define name="style-columns">
        <optional>
            <element name="style:columns">
                <ref name="style-columns-attlist"/>
                <optional>
                    <ref name="style-column-sep"/>
                </optional>
                <zeroOrMore>
                    <ref name="style-column"/>
                </zeroOrMore>
            </element>
        </optional>
    </define>
    <define name="style-columns-attlist" combine="interleave">
        <attribute name="fo:column-count">
            <ref name="positiveInteger"/>
        </attribute>
    </define>
    <define name="style-columns-attlist" combine="interleave">
        <optional>
            <attribute name="fo:column-gap">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-column">
        <element name="style:column">
            <ref name="style-column-attlist"/>
        </element>
    </define>
    <define name="style-column-attlist" combine="interleave">
        <attribute name="style:rel-width">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </define>
    <define name="style-column-attlist" combine="interleave">
        <optional>
            <attribute name="fo:start-indent" a:defaultValue="0cm">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-column-attlist" combine="interleave">
        <optional>
            <attribute name="fo:end-indent" a:defaultValue="0cm">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-column-attlist" combine="interleave">
        <optional>
            <attribute name="fo:space-before" a:defaultValue="0cm">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-column-attlist" combine="interleave">
        <optional>
            <attribute name="fo:space-after" a:defaultValue="0cm">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-column-sep">
        <element name="style:column-sep">
            <ref name="style-column-sep-attlist"/>
        </element>
    </define>
    <define name="style-column-sep-attlist" combine="interleave">
        <optional>
            <attribute name="style:style" a:defaultValue="solid">
                <choice>
                    <value>none</value>
                    <value>solid</value>
                    <value>dotted</value>
                    <value>dashed</value>
                    <value>dot-dashed</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-column-sep-attlist" combine="interleave">
        <attribute name="style:width">
            <ref name="length"/>
        </attribute>
    </define>
    <define name="style-column-sep-attlist" combine="interleave">
        <optional>
            <attribute name="style:height" a:defaultValue="100%">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-column-sep-attlist" combine="interleave">
        <optional>
            <attribute name="style:vertical-align" a:defaultValue="top">
                <choice>
                    <value>top</value>
                    <value>middle</value>
                    <value>bottom</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-column-sep-attlist" combine="interleave">
        <optional>
            <attribute name="style:color" a:defaultValue="#000000">
                <ref name="color"/>
            </attribute>
        </optional>
    </define>
    <define name="style-section-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:protect" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-section-properties-elements" combine="interleave">
        <zeroOrMore>
            <ref name="text-notes-configuration"/>
        </zeroOrMore>
    </define>
    <define name="style-table-properties">
        <element name="style:table-properties">
            <ref name="style-table-properties-content"/>
        </element>
    </define>
    
    <define name="style-table-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-table-properties-content-strict">
        <ref name="style-table-properties-attlist"/>
        <ref name="style-table-properties-elements"/>
    </define>
    <define name="style-table-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:width">
                <ref name="positiveLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:rel-width">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-table-properties-attlist" combine="interleave">
        <optional>
            <attribute name="table:align">
                <choice>
                    <value>left</value>
                    <value>center</value>
                    <value>right</value>
                    <value>margins</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-table-properties-attlist" combine="interleave">
        <ref name="common-horizontal-margin-attlist"/>
    </define>
    <define name="style-table-properties-attlist" combine="interleave">
        <ref name="common-vertical-margin-attlist"/>
    </define>
    <define name="style-table-properties-attlist" combine="interleave">
        <ref name="common-page-number-attlist"/>
    </define>
    <define name="style-table-properties-attlist" combine="interleave">
        <ref name="common-break-attlist"/>
    </define>
    <define name="style-table-properties-attlist" combine="interleave">
        <ref name="common-background-color-attlist"/>
    </define>
    <define name="style-table-properties-elements" combine="interleave">
        <ref name="style-background-image"/>
    </define>
    <define name="style-table-properties-attlist" combine="interleave">
        <ref name="common-shadow-attlist"/>
    </define>
    <define name="style-table-properties-attlist" combine="interleave">
        <ref name="common-keep-with-next-attlist"/>
    </define>
    <define name="style-table-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:reak-between-rows">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-table-properties-attlist" combine="interleave">
        <optional>
            <attribute name="table:border-model">
                <choice>
                    <value>collapsing</value>
                    <value>separating</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-table-properties-attlist" combine="interleave">
        <optional>
            <attribute name="table:display">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-table-column-properties">
        <element name="style:table-column-properties">
            <ref name="style-table-column-properties-content"/>
        </element>
    </define>
    
    <define name="style-table-column-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-table-column-properties-content-strict">
        <ref name="style-table-column-properties-attlist"/>
        <ref name="style-table-column-properties-elements"/>
    </define>
    
    <define name="style-table-column-properties-elements">
        <empty/>
    </define>
    <define name="style-table-column-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:column-width">
                <ref name="positiveLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:rel-column-width">
                <ref name="relativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="style-table-column-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:use-optimal-column-width">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-table-column-properties-attlist" combine="interleave">
        <ref name="common-break-attlist"/>
    </define>
    <define name="style-table-row-properties">
        <element name="style:table-row-properties">
            <ref name="style-table-row-properties-content"/>
        </element>
    </define>
    
    <define name="style-table-row-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-table-row-properties-content-strict">
        <ref name="style-table-row-properties-attlist"/>
        <ref name="style-table-row-properties-elements"/>
    </define>
    <define name="style-table-row-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:row-height">
                <ref name="positiveLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="style:min-row-height">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="style-table-row-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:use-optimal-row-height">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-table-row-properties-attlist" combine="interleave">
        <ref name="common-background-color-attlist"/>
    </define>
    <define name="style-table-row-properties-elements" combine="interleave">
        <ref name="style-background-image"/>
    </define>
    <define name="style-table-row-properties-attlist" combine="interleave">
        <ref name="common-break-attlist"/>
    </define>
    <define name="style-table-cell-properties">
        <element name="style:table-cell-properties">
            <ref name="style-table-cell-properties-content"/>
        </element>
    </define>
    
    <define name="style-table-cell-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-table-cell-properties-content-strict">
        <ref name="style-table-cell-properties-attlist"/>
        <ref name="style-table-cell-properties-elements"/>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:vertical-align">
                <choice>
                    <value>top</value>
                    <value>middle</value>
                    <value>bottom</value>
                    <value>automatic</value>
                </choice>
                </attribute>
        </optional>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:text-align-source">
                <choice>
                    <value>fix</value>
                    <value>value-type</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <ref name="common-style-direction-attlist"/>
    </define>
    
    <define name="common-style-direction-attlist">
        <optional>
            <attribute name="style:direction">
                <choice>
                    <value>ltr</value>
                    <value>ttb</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:glyph-orientation-vertical">
                <choice>
                    <value>auto</value>
                    <value>0</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <ref name="common-shadow-attlist"/>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <ref name="common-background-color-attlist"/>
    </define>
    <define name="style-table-cell-properties-elements" combine="interleave">
        <ref name="style-background-image"/>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <ref name="common-border-attlist"/>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <ref name="common-border-line-width-attlist"/>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <ref name="common-padding-attlist"/>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:wrap-option">
                <choice>
                    <value>no-wrap</value>
                    <value>wrap</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <ref name="common-rotation-angle-attlist"/>
    </define>
    
    <define name="common-rotation-angle-attlist">
        <optional>
            <attribute name="style:rotation-angle">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:rotation-align">
                <choice>
                    <value>none</value>
                    <value>bottom</value>
                    <value>top</value>
                    <value>center</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:cell-protect">
                <choice>
                    <value>none</value>
                    <value>hidden-and-protected</value>
                    <list>
                        <oneOrMore>
                            <choice>
                                <value>protected</value>
                                <value>formula-hidden</value>
                            </choice>
                        </oneOrMore>
                    </list>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:print-content">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-table-cell-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:decimal-places">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-list-level-properties">
        <element name="style:list-level-properties">
            <ref name="style-list-level-properties-content"/>
        </element>
    </define>
    
    <define name="style-list-level-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-list-level-properties-content-strict">
        <ref name="style-list-level-properties-attlist"/>
        <ref name="style-list-level-properties-elements"/>
    </define>
    
    <define name="style-list-level-properties-elements">
        <empty/>
    </define>
    <define name="style-list-level-properties-attlist" combine="interleave">
        <ref name="common-text-align"/>
    </define>
    <define name="style-list-level-properties-attlist" combine="interleave">
        <optional>
            <attribute name="text:space-before">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="style-list-level-properties-attlist" combine="interleave">
        <optional>
            <attribute name="text:min-label-width">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="style-list-level-properties-attlist" combine="interleave">
        <optional>
            <attribute name="text:min-label-distance">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="style-list-level-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:font-name">
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="style-list-level-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:width">
                <ref name="positiveLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:height">
                <ref name="positiveLength"/>
            </attribute>
        </optional>
    </define>
    <define name="style-list-level-properties-attlist" combine="interleave">
        <ref name="common-vertical-rel-attlist"/>
        <ref name="common-vertical-pos-attlist"/>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:stroke">
                <choice>
                    <value>none</value>
                    <value>dash</value>
                    <value>solid</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:stroke-dash">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="svg:stroke-width">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="svg:stroke-color">
                <ref name="color"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:marker-start">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:marker-end">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:marker-start-width">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:marker-end-width">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:marker-start-center">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:marker-end-center">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="svg:stroke-opacity">
                <choice>
                    <data type="double">
                        <param name="minInclusive">0</param>
                        <param name="maxInclusive">1</param>
                    </data>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:stroke-linejoin">
                <choice>
                    <value>miter</value>
                    <value>round</value>
                    <value>bevel</value>
                    <value>middle</value>
                    <value>none</value>
                    <value>inherit</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-fill-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:fill">
                <choice>
                    <value>none</value>
                    <value>solid</value>
                    <value>bitmap</value>
                    <value>gradient</value>
                    <value>hatch</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-fill-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:fill-color">
                <ref name="color"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-fill-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:fill-gradient-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-fill-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:gradient-step-count">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-fill-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:fill-hatch-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-fill-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:fill-hatch-solid">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-fill-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:fill-image-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-fill-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:repeat">
                <choice>
                    <value>no-repeat</value>
                    <value>repeat</value>
                    <value>stretch</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-fill-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:fill-image-width">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:fill-image-height">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-fill-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:fill-image-ref-point-x">
                <ref name="percent"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:fill-image-ref-point-y">
                <ref name="percent"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:fill-image-ref-point">
                <choice>
                    <value>top-left</value>
                    <value>top</value>
                    <value>top-right</value>
                    <value>left</value>
                    <value>center</value>
                    <value>right</value>
                    <value>bottom-left</value>
                    <value>bottom</value>
                    <value>bottom-right</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-fill-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:tile-repeat-offset"/>
        </optional>
    </define>
    <define name="style-graphic-fill-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:opacity">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-fill-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:opacity-name">
                <ref name="styleName"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="text:animation">
                <choice>
                    <value>none</value>
                    <value>scroll</value>
                    <value>alternate</value>
                    <value>slide</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="text:animation-direction">
                <choice>
                    <value>left</value>
                    <value>right</value>
                    <value>up</value>
                    <value>down</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="text:animation-start-inside">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="text:animation-stop-inside">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="text:animation-repeat">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="text:animation-delay">
                <ref name="duration"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:auto-grow-width">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:auto-grow-height">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:fit-to-size">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:textarea-vertical-align">
                <choice>
                    <value>top</value>
                    <value>middle</value>
                    <value>bottom</value>
                    <value>justify</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:textarea-horizontal-align">
                <choice>
                    <value>left</value>
                    <value>center</value>
                    <value>right</value>
                    <value>justify</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:color-mode">
                <choice>
                    <value>greyscale</value>
                    <value>mono</value>
                    <value>watermark</value>
                    <value>standard</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:color-inversion">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:luminance">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:contrast">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:gamma">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:red">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:green">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:blue">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:shadow">
                <choice>
                    <value>visible</value>
                    <value>hidden</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:shadow-offset-x">
                <ref name="length"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:shadow-offset-y">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:shadow-color">
                <ref name="color"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:shadow-opacity">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:start-line-spacing-horizontal">
                <ref name="distance"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:start-line-spacing-vertical">
                <ref name="distance"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:end-line-spacing-horizontal">
                <ref name="distance"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:end-line-spacing-vertical">
                <ref name="distance"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:line-distance">
                <ref name="distance"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:guide-overhang">
                <!-- Notde to the TC: This was distance, but length is better -->
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:guide-distance">
                <ref name="distance"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:start-guide">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:end-guide">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:placing">
                <choice>
                    <value>below</value>
                    <value>above</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:parallel">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:measure-align">
                <choice>
                    <value>automatic</value>
                    <value>left-outside</value>
                    <value>inside</value>
                    <value>right-outside</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:measure-vertical-align">
                <choice>
                    <value>automatic</value>
                    <value>above</value>
                    <value>below</value>
                    <value>center</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:unit">
                <choice>
                    <value>automatic</value>
                    <value>mm</value>
                    <value>cm</value>
                    <value>m</value>
                    <value>km</value>
                    <value>pt</value>
                    <value>pc</value>
                    <value>inch</value>
                    <value>ft</value>
                    <value>mi</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:show-unit">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:decimal-places">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:caption-type">
                <choice>
                    <value>straight-line</value>
                    <value>angled-line</value>
                    <value>angled-connector-line</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:caption-angle-type">
                <choice>
                    <value>fixed</value>
                    <value>free</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:caption-angle">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:caption-gap">
                <ref name="distance"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:caption-escape-direction">
                <choice>
                    <value>horizontal</value>
                    <value>vertical</value>
                    <value>auto</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:caption-escape">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:caption-line-length">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:caption-fit-line-length">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:horizontal-segments">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:vertical-segments">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:edge-rounding">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:edge-rounding-mode">
                <choice>
                    <value>correct</value>
                    <value>attractive</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:back-scale">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:depth">
                <ref name="length"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:backface-culling">
                <choice>
                    <value>enabled</value>
                    <value>disabled</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:lighting-mode">
                <choice>
                    <value>standard</value>
                    <value>double-sided</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:normals-kind">
                <choice>
                    <value>object</value>
                    <value>flat</value>
                    <value>sphere</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:normals-direction">
                <choice>
                    <value>normal</value>
                    <value>inverse</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:texture-generation-mode-x">
                <choice>
                    <value>object</value>
                    <value>parallel</value>
                    <value>sphere</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="dr3d:texture-generation-mode-y">
                <choice>
                    <value>object</value>
                    <value>parallel</value>
                    <value>sphere</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:texture-kind">
                <choice>
                    <value>luminance</value>
                    <value>intesity</value>
                    <value>color</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:texture-filter">
                <choice>
                    <value>enabled</value>
                    <value>disabled</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:texture-mode">
                <choice>
                    <value>replace</value>
                    <value>modulate</value>
                    <value>blend</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:ambient-color">
                <ref name="color"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="dr3d:emissive-color">
                <ref name="color"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="dr3d:specular-color">
                <ref name="color"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="dr3d:diffuse-color">
                <ref name="color"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:shininess">
                <ref name="percent"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="dr3d:shadow">
                <choice>
                    <value>visible</value>
                    <value>hidden</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <ref name="common-draw-rel-size-attlist"/>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:max-height">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="fo:max-width">
                <choice>
                    <ref name="length"/>
                    <ref name="percent"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <ref name="common-horizontal-margin-attlist"/>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <ref name="common-vertical-margin-attlist"/>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:print-content">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:protect">
                <choice>
                    <value>none</value>
                    <list>
                        <oneOrMore>
                            <choice>
                                <value>content</value>
                                <value>position</value>
                                <value>size</value>
                            </choice>
                        </oneOrMore>
                    </list>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:horizontal-pos">
                <choice>
                    <value>left</value>
                    <value>center</value>
                    <value>right</value>
                    <value>from-left</value>
                    <value>inside</value>
                    <value>outside</value>
                    <value>from-inside</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:x">
                <ref name="coordinate"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:horizontal-rel">
                <choice>
                        <value>page</value>
                    <value>page-content</value>
                    <value>page-start-margin</value>
                    <value>page-end-margin</value>
                    <value>frame</value>
                    <value>frame-content</value>
                    <value>frame-start-margin</value>
                    <value>frame-end-margin</value>
                    <value>paragraph</value>
                    <value>paragraph-content</value>
                    <value>paragraph-start-margin</value>
                    <value>paragraph-end-margin</value>
                    <value>char</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <ref name="common-vertical-pos-attlist"/>
    </define>
    
    <define name="common-vertical-pos-attlist">
        <optional>
            <attribute name="style:vertical-pos">
                <choice>
                    <value>top</value>
                    <value>middle</value>
                    <value>bottom</value>
                    <value>from-top</value>
                    <value>below</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:y">
                <ref name="coordinate"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <ref name="common-vertical-rel-attlist"/>
    </define>
    
    <define name="common-vertical-rel-attlist">
        <optional>
            <attribute name="style:vertical-rel">
                <choice>
                    <value>page</value>
                    <value>page-content</value>
                    <value>frame</value>
                    <value>frame-content</value>
                    <value>paragraph</value>
                    <value>paragraph-content</value>
                    <value>char</value>
                    <value>line</value>
                    <value>baseline</value>
                    <value>text</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <ref name="common-text-anchor-attlist"/>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <ref name="common-border-attlist"/>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <ref name="common-border-line-width-attlist"/>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <ref name="common-padding-attlist"/>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <ref name="common-shadow-attlist"/>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <ref name="common-background-color-attlist"/>
    </define>
    <define name="style-graphic-properties-elements" combine="interleave">
        <ref name="style-background-image"/>
    </define>
    <define name="style-graphic-properties-elements" combine="interleave">
        <ref name="style-columns"/>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:editable">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:wrap">
                <choice>
                    <value>none</value>
                    <value>left</value>
                    <value>right</value>
                    <value>parallel</value>
                    <value>dynamic</value>
                    <value>run-through</value>
                    <value>biggest</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:wrap-dynamic-treshold">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:number-wrapped-paragraphs">
                <choice>
                    <value>no-limit</value>
                    <ref name="positiveInteger"/>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:wrap-contour">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:wrap-contour-mode">
                <choice>
                    <value>full</value>
                    <value>outside</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:run-through">
                <choice>
                    <value>foreground</value>
                    <value>background</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:flow-with-text">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:overflow-behavior">
                <choice>
                    <value>clip</value>
                    <value>auto-create-new-frame</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:mirror">
                <choice>
                    <value>none</value>
                    <value>vertical</value>
                    <ref name="horizontal-mirror"/>
                    <list>
                        <value>vertical</value>
                        <ref name="horizontal-mirror"/>
                    </list>
                    <list>
                        <ref name="horizontal-mirror"/>
                        <value>vertical</value>
                    </list>
                </choice>
            </attribute>
        </optional>
    </define>
    
    <define name="horizontal-mirror">
        <choice>
            <value>horizontal</value>
            <value>horizontal-on-odd</value>
            <value>horizontal-on-even</value>
        </choice>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="fo:clip">
                <!-- The attribute value must match the one XSL's clip -->
                <ref name="string"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:frame-display-scrollbar">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:frame-display-border">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:frame-margin-horizontal">
                <ref name="nonNegativePixelLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:frame-margin-vertical">
                <ref name="nonNegativePixelLength"/>
            </attribute>
        </optional>
    </define>
    
    <define name="nonNegativePixelLength">
        <data type="string">
            <param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)(px)</param>
        </data>
    </define>
    <define name="style-graphic-properties-attlist" combine="interleave">
        <optional>
            <attribute name="draw:visible-area-left">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:visible-area-top">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:visible-area-width">
                <ref name="positiveLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="draw:visible-area-height">
                <ref name="positiveLength"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties">
        <element name="style:chart-properties">
            <ref name="style-chart-properties-content"/>
        </element>
    </define>
    
    <define name="style-chart-properties-content">
        <ref name="style-properties-content"/>
    </define>
    
    <define name="style-chart-properties-content-strict">
        <ref name="style-chart-properties-attlist"/>
        <ref name="style-chart-properties-elements"/>
    </define>
    
    <define name="style-chart-properties-elements">
        <empty/>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:scale-text" a:defaultValue="true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:three-dimensional">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:deep">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <choice>
            <attribute name="chart:symbol-type">
                <value>none</value>
            </attribute>
            <attribute name="chart:symbol-type">
                <value>automatic</value>
            </attribute>
            <group>
                <attribute name="chart:symbol-type">
                    <value>named-symbol</value>
                </attribute>
                <attribute name="chart:symbol-name">
                    <choice>
                        <value>square</value>
                        <value>diamond</value>
                        <value>arrow-down</value>
                        <value>arrow-up</value>
                        <value>arrow-right</value>
                        <value>arrow-left</value>
                        <value>bow-tie</value>
                        <value>hourglass</value>
                        <value>circle</value>
                        <value>star</value>
                        <value>x</value>
                        <value>plus</value>
                        <value>asterisk</value>
                        <value>horizontal-bar</value>
                        <value>vertical-bar</value>
                    </choice>
                </attribute>
            </group>
            <group>
                <attribute name="chart:symbol-type">
                    <value>image</value>
                </attribute>
                <element name="chart:symbol-image">
                    <attribute name="xlink:href">
                        <ref name="anyURI"/>
                    </attribute>
                </element>
            </group>
            <empty/>
        </choice>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:symbol-width">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:symbol-height">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:vertical" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:connect-bars" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:gap-width">
                <ref name="integer"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:overlap">
                <ref name="integer"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:japanese-candle-stick"
                        a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:interpolation" a:defaultValue="none">
                <choice>
                    <value>none</value>
                    <value>cubic-spline</value>
                    <value>b-spline</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:spline-order" a:defaultValue="2">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:spline-resolution" a:defaultValue="20">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:pie-offset" a:defaultValue="0">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:lines" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:solid-type" a:defaultValue="cuboid">
                <choice>
                    <value>cuboid</value>
                    <value>cylinder</value>
                    <value>cone</value>
                    <value>pyramid</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:stacked" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:percentage" a:defaultValue="false">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:link-data-style-to-source">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:visible">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:logarithmic">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:maximum">
                <ref name="double"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:minimum">
                <ref name="double"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:origin">
                <ref name="double"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:interval-major">
                <ref name="double"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:interval-minor">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:tick-marks-major-inner">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:tick-marks-major-outer">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:tick-marks-minor-inner">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:tick-marks-minor-outer">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:display-label">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:text-overlap">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:line-break">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:label-arrangement" a:defaultValue="side-by-side">
                <choice>
                    <value>side-by-side</value>
                    <value>stagger-even</value>
                    <value>stagger-odd</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <ref name="common-style-direction-attlist"/>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <ref name="common-rotation-angle-attlist"/>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:data-label-number">
                <choice>
                    <value>none</value>
                    <value>value</value>
                    <value>percentage</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:data-label-text">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:data-label-symbol">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:mean-value">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:error-category" a:defaultValue="none">
                <choice>
                    <value>none</value>
                    <value>variance</value>
                    <value>standard-deviation</value>
                    <value>percentage</value>
                    <value>error-margin</value>
                    <value>constant</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:error-percentage">
                <ref name="double"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:error-margin">
                <ref name="double"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:error-lower-limit">
                <ref name="double"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:error-upper-limit">
                <ref name="double"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:error-upper-indicator">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="chart:error-lower-indicator">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:series-source" a:defaultValue="columns">
                <choice>
                    <value>columns</value>
                    <value>rows</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-chart-properties-attlist" combine="interleave">
        <optional>
            <attribute name="chart:regression-type" a:defaultValue="none">
                <choice>
                    <value>none</value>
                    <value>linear</value>
                    <value>logarithmic</value>
                    <value>exponential</value>
                    <value>power</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-drawing-page-properties-attlist"
             combine="interleave">
        <optional>
            <attribute name="presentation:transition-type">
                <choice>
                    <value>manual</value>
                    <value>automatic</value>
                    <value>semi-automatic</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-drawing-page-properties-attlist"
             combine="interleave">
        <optional>
            <attribute name="presentation:transition-style">
                <choice>
                    <value>none</value>
                    <value>fade-from-left</value>
                    <value>fade-from-top</value>
                    <value>fade-from-right</value>
                    <value>fade-from-bottom</value>
                    <value>fade-from-upperleft</value>
                    <value>fade-from-upperright</value>
                    <value>fade-from-lowerleft</value>
                    <value>fade-from-lowerright</value>
                    <value>move-from-left</value>
                    <value>move-from-top</value>
                    <value>move-from-right</value>
                    <value>move-from-bottom</value>
                    <value>move-from-upperleft</value>
                    <value>move-from-upperright</value>
                    <value>move-from-lowerleft</value>
                    <value>move-from-lowerright</value>
                    <value>uncover-to-left</value>
                    <value>uncover-to-top</value>
                    <value>uncover-to-right</value>    
                    <value>uncover-to-bottom</value>
                    <value>uncover-to-upperleft</value>
                    <value>uncover-to-upperright</value>
                    <value>uncover-to-lowerleft</value>
                    <value>uncover-to-lowerright</value>
                    <value>fade-to-center</value>
                    <value>fade-from-center</value>
                    <value>vertical-stripes</value>
                    <value>horizontal-stripes</value>
                    <value>clockwise</value>
                    <value>counterclockwise</value>
                    <value>open-vertical</value>
                    <value>open-horizontal</value>
                    <value>close-vertical</value>
                    <value>close-horizontal</value>
                    <value>wavyline-from-left</value>
                    <value>wavyline-from-top</value>
                    <value>wavyline-from-right</value>
                    <value>wavyline-from-bottom</value>
                    <value>spiralin-left</value>
                    <value>spiralin-right</value>
                    <value>spiralout-left</value>
                    <value>spiralout-right</value>
                    <value>roll-from-top</value>
                    <value>roll-from-left</value>
                    <value>roll-from-right</value>
                    <value>roll-from-bottom</value>
                    <value>stretch-from-left</value>
                    <value>stretch-from-top</value>
                    <value>stretch-from-right</value>
                    <value>stretch-from-bottom</value>
    
                    <value>vertical-lines</value>
                    <value>horizontal-lines</value>
                    <value>dissolve</value>
                    <value>random</value>
                    <value>vertical-checkerboard</value>
                    <value>horizontal-checkerboard</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-drawing-page-properties-attlist"
             combine="interleave">
        <optional>
            <attribute name="presentation:transition-speed">
                <ref name="presentationSpeeds"/>
            </attribute>
        </optional>
    </define>
    <define name="style-drawing-page-properties-attlist"
             combine="interleave">
        <optional>
            <attribute name="presentation:duration">
                <ref name="duration"/>
            </attribute>
        </optional>
    </define>
    <define name="style-drawing-page-properties-attlist"
             combine="interleave">
        <optional>
            <attribute name="presentation:visibility">
                <choice>
                    <value>visible</value>
                    <value>hidden</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-drawing-page-properties-elements"
             combine="interleave">
        <optional>
            <ref name="presentation-sound"/>
        </optional>
    </define>
    <define name="style-drawing-page-properties-attlist"
             combine="interleave">
        <optional>
            <attribute name="draw:background-size">
                <choice>
                    <value>full</value>
                    <value>border</value>
                </choice>
            </attribute>
        </optional>
    </define>
    <define name="style-drawing-page-properties-attlist"
             combine="interleave">
        <optional>
            <attribute name="presentation:background-objects-visible">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="style-drawing-page-properties-attlist"
             combine="interleave">
        <optional>
            <attribute name="presentation:background-visible">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
    <define name="string">
        <data type="string"/>
    </define>
    <define name="date">
        <data type="date"/>
    </define>
    <define name="time">
        <data type="time"/>
    </define>
    <define name="dateTime">
        <data type="dateTime"/>
    </define>
    <define name="duration">
        <data type="duration"/>
    </define>
    <define name="integer">
        <data type="integer"/>
    </define>
    <define name="nonNegativeInteger">
        <data type="nonNegativeInteger"/>
    </define>
    <define name="positiveInteger">
        <data type="positiveInteger"/>
    </define>
    <define name="double">
        <data type="double"/>
    </define>
    <define name="anyURI">
        <data type="anyURI"/>
    </define>
    <define name="base64Binary">
        <data type="base64Binary"/>
    </define>
    <define name="ID">
        <data type="ID"/>
    </define>
    <define name="IDREF">
        <data type="IDREF"/>
    </define>
    <define name="boolean">
        <choice>
            <value>true</value>
            <value>false</value>
        </choice>
    </define>
    <define name="dateOrDateTime">
        <choice>
            <data type="date"/>
            <data type="dateTime"/>
        </choice>
    </define>
    <define name="timeOrDateTime">
        <choice>
            <data type="time"/>
            <data type="dateTime"/>
        </choice>
    </define>
    <define name="language">
        <data type="token">
            <param name="pattern">[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*</param>
        </data>
    </define>
    <define name="countryCode">
        <data type="token">
            <param name="pattern">[A-Za-z0-9]{1,8}</param>
        </data>
    </define>
    <define name="languageCode">
        <data type="token">
            <param name="pattern">[A-Za-z]{1,8}</param>
        </data>
    </define>
    <define name="character">
        <data type="string">
            <param name="length">1</param>
        </data>
    </define>
    <define name="length">
        <data type="string">
            <param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))</param>
        </data>
    </define>
    <define name="nonNegativeLength">
        <data type="string">
            <param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))</param>
        </data>
    </define>
    <define name="positiveLength">
        <data type="string">
            <!-- A zero value is not allowed here -->
            <param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))</param>
        </data>
    </define>
    <define name="percent">
        <data type="string">
            <param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%</param>
        </data>
    </define>
    <define name="relativeLength">
        <data type="string">
            <param name="pattern">[0-9]+\*</param>
        </data>
    </define>
    <define name="coordinate">
        <ref name="length"/>
    </define>
    <define name="distance">
        <ref name="length"/>
    </define>
    <define name="color">
        <data type="string">
            <param name="pattern">#[0-9a-fA-F]{6}</param>
        </data>
    </define>
    <define name="styleName">
        <data type="NCName"/>
    </define>
    <define name="styleNames">
        <list>
            <oneOrMore>
                <data type="NCName"/>
            </oneOrMore>
        </list>
    </define>
    <define name="variableName">
        <data type="string"/>
    </define>
    <define name="formula">
        <!-- A formula shoudl start with a namespace prefix, -->
        <!-- but has no restrictions-->
        <data type="string"/>
    </define>
    
    <define name="targetFrameName">
        <choice>
            <value>_self</value>
            <value>_blank</value>
            <value>_parent</value>
            <value>_top</value>
            <ref name="string"/>
        </choice>
    </define>
    
    <define name="valueType">
        <choice>
            <value>float</value>
            <value>time</value>
            <value>date</value>
            <value>percentage</value>
            <value>currency</value>
            <value>boolean</value>
            <value>string</value>
        </choice>
    </define>
    
    <define name="points">
        <data type="string">
            <param name="pattern">-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*</param>
        </data>
    </define>
    <define name="pathData">
        <data type="string"/>
    </define>
    
    <define name="vector3D">
        <data type="string">
            <param name="pattern">\(([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){3}[ ]+\)</param>
        </data>
    </define>
    
    <define name="namespacedToken">
        <data type="string">
            <param name="pattern">[0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+</param>
        </data>
    </define>
    <define name="anyAttListOrElements">
        <zeroOrMore>
            <attribute>
                <anyName/>
                <text/>
            </attribute>
        </zeroOrMore>
        <ref name="anyElements"/>
    </define>
    <define name="anyElements">
        <zeroOrMore>
            <element>
                <anyName/>
                <ref name="anyAttListOrElements"/>
            </element>
        </zeroOrMore>
    </define>
    </grammar>
    
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
        OASIS Open Office Specification 1.0
        Draft 13, 22 Mar 2004
        Strict Relax-NG Schema
    
        $Id: p-open-office-specification.xml,v 1.45 2004/03/22 09:29:48 mib Exp $
    
        © 2002-2004 OASIS Open
        © 1999-2004 Sun Microsystems, Inc.
    -->
    
    <grammar xmlns="http://relaxng.org/ns/structure/1.0";>
        <include href="office-schema-1.0-draft-13.rng">
            <define name="office-meta-content">
                <ref name="office-meta-content-strict"/>
            </define>
            <define name="style-page-layout-properties-content">
                <ref name="style-page-layout-properties-content-strict"/>
            </define>
            <define name="style-header-footer-properties-content">
                <ref name="style-header-footer-properties-content-strict"/>
            </define>
            <define name="style-drawing-page-properties-content">
                <ref name="style-drawing-page-properties-content-strict"/>
            </define>
            <define name="style-text-properties-content">
                <ref name="style-text-properties-content-strict"/>
            </define>
            <define name="style-paragraph-properties-content">
                <ref name="style-paragraph-properties-content-strict"/>
            </define>
            <define name="style-ruby-properties-content">
                <ref name="style-ruby-properties-content-strict"/>
            </define>
            <define name="style-section-properties-content">
                <ref name="style-section-properties-content-strict"/>
            </define>
            <define name="style-list-level-properties-content">
                <ref name="style-list-level-properties-content-strict"/>
            </define>
            <define name="style-table-properties-content">
                <ref name="style-table-properties-content-strict"/>
            </define>
            <define name="style-table-column-properties-content">
                <ref name="style-table-column-properties-content-strict"/>
            </define>
            <define name="style-table-row-properties-content">
                <ref name="style-table-row-properties-content-strict"/>
            </define>
            <define name="style-table-cell-properties-content">
                <ref name="style-table-cell-properties-content-strict"/>
            </define>
            <define name="style-graphic-properties-content">
                <ref name="style-graphic-properties-content-strict"/>
            </define>
            <define name="style-chart-properties-content">
                <ref name="style-properties-content"/>
            </define>
        </include>
    </grammar>
    


    [Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]