<?xml version="1.0" encoding="UTF-8"?>
<!--
    OASIS OpenDocument Specification 1.0
    Draft 23, 7 Dec 2004
    Relax-NG Schema

    $Id$

    © 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:opendocument:xmlns:office:1.0"
    xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
    xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
    xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
    xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
    xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
    xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
    xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
    xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
    xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
    xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
    xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
    xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
    xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation: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"
    xmlns:xforms="http://www.w3.org/2002/xforms"
    xmlns:smil="http://www.w3.org/2001/SMIL20/"
>
<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-document-common-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-common-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-common-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-common-attrs"/>
        <ref name="office-meta"/>
    </element>
</define>
<define name="office-document-settings">
    <element name="office:document-settings">
        <ref name="office-document-common-attrs"/>
        <ref name="office-settings"/>
    </element>
</define>
<define name="office-document-common-attrs" combine="interleave">
    <optional>
        <attribute name="office:version">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="office-document-attrs" combine="interleave">
    <attribute name="office:mimetype">
        <ref name="string"/>
    </attribute>
</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>
                <choice>
                    <ref name="draw-a"/>
                    <ref name="shape"/>
                </choice>
            </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"/>
    <ref name="presentation-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">
            <zeroOrMore>
                <ref name="office-script"/>
            </zeroOrMore>
            <optional>
                <ref name="office-event-listeners"/>
            </optional>
        </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">
    <interleave>
        <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>
    </interleave>
</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="frame-count">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="sentence-count">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="syllable-count">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="non-whitespace-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="heading-attrs" combine="interleave">
    <optional>
        <attribute name="text:is-list-header" a:defaultValue="false">
            <ref name="boolean"/>
        </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="styleNameRef"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:class-names">
            <ref name="styleNameRefs"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:cond-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="paragraph-attrs" combine="interleave">
    <optional>
        <ref name="text-id"/>
    </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="styleNameRef"/>
    </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="styleNameRef"/>
        </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: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">
    <optional>
        <attribute name="text:level" a:defaultValue="1">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</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="styleNameRef"/>
        </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="styleNameRef"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="text:class-names">
                <ref name="styleNameRefs"/>
            </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="styleNameRef"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:visited-style-name">
            <ref name="styleNameRef"/>
        </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="styleNameRef"/>
            </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="styleNameRef"/>
                </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">
    <choice>
        <ref name="shape"/>
        <ref name="draw-a"/>
    </choice>
</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="common-field-fixed-attlist"/>
        <ref name="common-field-data-style-name-attlist"/>
    </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="common-field-fixed-attlist"/>
        <ref name="common-field-data-style-name-attlist"/>
    </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="common-field-num-format-attlist"/>
        <ref name="common-field-fixed-attlist"/>
    </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="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-lastname">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-initials">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-title">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-position">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-email">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-phone-private">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-fax">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-company">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-phone-work">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-street">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-city">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-postal-code">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-country">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:sender-state-or-province">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:author-name">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:author-initials">
        <ref name="common-field-fixed-attlist"/>
        <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="common-field-fixed-attlist"/>
</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="paragraph-content" combine="choice">
    <element name="text:sheet-name">
        <text/>
    </element>
</define>
<define name="text-variable-decl">
    <element name="text:variable-decl">
        <ref name="common-field-name-attlist"/>
        <ref name="common-value-type-attlist"/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:variable-set">
        <interleave>
            <ref name="common-field-name-attlist"/>
            <ref name="common-field-formula-attlist"/>
            <ref name="common-value-and-type-attlist"/>
            <ref name="common-field-display-value-none-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </interleave>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:variable-get">
        <interleave>
            <ref name="common-field-name-attlist"/>
            <ref name="common-field-display-value-formula-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </interleave>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:variable-input">
        <interleave>
            <ref name="common-field-name-attlist"/>
            <ref name="common-field-description-attlist"/>
            <ref name="common-value-type-attlist"/>
            <ref name="common-field-display-value-none-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </interleave>
        <text/>
    </element>
</define>
<define name="text-user-field-decl">
    <element name="text:user-field-decl">
        <ref name="common-field-name-attlist"/>
        <optional>
            <ref name="common-field-formula-attlist"/>
        </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="common-field-name-attlist"/>
            <ref name="common-field-display-value-formula-none-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </interleave>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:user-field-input">
        <interleave>
            <ref name="common-field-name-attlist"/>
            <ref name="common-field-description-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </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="common-field-name-attlist"/>
</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="common-field-name-attlist"/>
            <ref name="common-field-formula-attlist"/>
            <ref name="common-field-num-format-attlist"/>
            <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="common-field-formula-attlist"/>
            <optional>
                <ref name="common-value-and-type-attlist"/>
            </optional>
            <ref name="common-field-display-value-formula-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </interleave>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:text-input">
        <ref name="common-field-description-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:initial-creator">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:creation-date">
        <interleave>
            <ref name="common-field-fixed-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
            <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="common-field-fixed-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
            <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="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:user-defined">
        <interleave>
            <ref name="common-field-fixed-attlist"/>
            <attribute name="text:name">
                <ref name="string"/>
            </attribute>
            <ref name="common-field-data-style-name-attlist"/>
            <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="common-field-fixed-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
            <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="common-field-fixed-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
            <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="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:title">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:subject">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:keywords">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:editing-cycles">
        <ref name="common-field-fixed-attlist"/>
        <text/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="text:editing-duration">
        <interleave>
            <ref name="common-field-fixed-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
            <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="common-field-fixed-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
            <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="common-field-fixed-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
            <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="common-field-fixed-attlist"/>
        <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="common-field-num-format-attlist"/>
        <text/>
    </element>
</define>
<define name="common-field-database-table">
    <ref name="common-field-database-table-attlist"/>
    <ref name="common-field-database-name"/>
</define>
<define name="common-field-database-name" combine="choice">
    <optional>
        <attribute name="text:database-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-field-database-name" combine="choice">
    <ref name="form-connection-resource"/>
</define>
<define name="common-field-database-table-attlist" combine="interleave">
    <attribute name="text:table-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="common-field-database-table-attlist" combine="interleave">
    <optional>
        <attribute name="text:table-type">
            <choice>
                <value>table</value>
                <value>query</value>
                <value>command</value>
            </choice>
        </attribute>
    </optional>
</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="common-field-database-table"/>
</define>
<define name="text-database-display-attlist" combine="interleave">
    <ref name="common-field-data-style-name-attlist"/>
</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="common-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="common-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="common-field-database-table"/>
            <ref name="common-field-num-format-attlist"/>
            <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="common-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="common-field-num-format-attlist"/>
</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="common-field-description-attlist"/>
</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>
        </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:note-ref">
        <interleave>
            <ref name="text-common-ref-content"/>
            <ref name="text-note-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-note-ref-content" combine="interleave">
    <ref name="text-note-class"/>
</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="common-field-formula-attlist"/>
            <ref name="common-field-display-value-formula-attlist"/>
            <ref name="common-field-data-style-name-attlist"/>
        </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="common-field-fixed-attlist">
    <optional>
        <attribute name="text:fixed">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="common-field-name-attlist">
    <attribute name="text:name">
        <ref name="variableName"/>
    </attribute>
</define>
<define name="common-field-description-attlist">
    <optional>
        <attribute name="text:description">
            <text/>
        </attribute>
    </optional>
</define>
<define name="common-field-display-value-none-attlist">
    <optional>
        <attribute name="text:display">
            <choice>
                <value>value</value>
                <value>none</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-field-display-value-formula-none-attlist">
    <optional>
        <attribute name="text:display">
            <choice>
                <value>value</value>
                <value>formula</value>
                <value>none</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-field-display-value-formula-attlist">
    <optional>
        <attribute name="text:display">
            <choice>
                <value>value</value>
                <value>formula</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-field-formula-attlist">
    <optional>
        <attribute name="text:formula">
            <ref name="formula"/>
        </attribute>
    </optional>
</define>
<define name="common-field-data-style-name-attlist">
    <optional>
        <attribute name="style:data-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="common-field-num-format-attlist">
    <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"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="text-table-of-content-source-attlist" combine="interleave">
    <optional>
        <attribute name="text:use-outline-level" a:defaultValue="true">
            <ref name="boolean"/>
        </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="styleNameRef"/>
    </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="styleNameRef"/>
    </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-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-other-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="styleNameRef"/>
    </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">
    <element name="text:alphabetical-index-source">
        <ref name="text-alphabetical-index-source-attrs"/>
        <optional>
            <ref name="text-index-title-template"/>
        </optional>
        <zeroOrMore>
            <ref name="text-alphabetical-index-entry-template"/>
        </zeroOrMore>
    </element>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <ref name="text-index-scope-attr"/>
    <ref name="text-relative-tab-stop-position-attr"/>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:ignore-case" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:main-entry-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:alphabetical-separators" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-alphabetical-index-source-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-source-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-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:capitalize-entries" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:comma-separated" a:defaultValue="false">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="fo:language">
            <ref name="languageCode"/>
        </attribute>
    </optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="fo:country">
            <ref name="countryCode"/>
        </attribute>
    </optional>
</define>
<define name="text-alphabetical-index-source-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="styleNameRef"/>
    </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="styleNameRef"/>
    </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="styleNameRef"/>
            </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="styleNameRef"/>
            </attribute>
        </optional>
        <ref name="text-index-entry-chapter-attrs"/>
    </element>
</define>
<define name="text-index-entry-chapter-attrs">
    <optional>
        <attribute name="text:display" a:defaultValue="number">
            <choice>
                <value>name</value>
                <value>number</value>
                <value>number-and-name</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="text-index-entry-text">
    <element name="text:index-entry-text">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleNameRef"/>
            </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="styleNameRef"/>
            </attribute>
        </optional>
    </element>
</define>
<define name="text-index-entry-span">
    <element name="text:index-entry-span">
        <optional>
            <attribute name="text:style-name">
                <ref name="styleNameRef"/>
            </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="styleNameRef"/>
        </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="styleNameRef"/>
            </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="styleNameRef"/>
            </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="styleNameRef"/>
            </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="styleNameRef"/>
        </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" a:defaultValue="true">
            <ref name="boolean"/>
        </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="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="table-table-row-attlist" combine="interleave">
    <optional>
        <attribute name="table:default-cell-style-name">
            <ref name="styleNameRef"/>
        </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="styleNameRef"/>
        </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="styleNameRef"/>
        </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="styleNameRef"/>
        </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">
    <!-- Value is a space separated list of "cellRangeAddress" patterns -->
    <data type="string"/> 
</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-scenario-attlist" combine="interleave">
    <optional>
        <attribute name="table:protected">
            <ref name="boolean"/>
        </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"/>
    </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">
    <optional>
        <attribute name="table:cell-range-address">
            <ref name="cellRangeAddress"/>
        </attribute>
    </optional>
</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"/>
    </attr