OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office message

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


Subject: Diagonal Table Headers


Dear TC members,

as announced earlier this week, Redflag 2000 would like to submit a
proposal about Diagonal (or Kite or Asian) Table Headers. The proposal
is quite substantial, as we have been trying to take a semantic approach
to the feature. ISO29500 keeps very brief on it (Part I - 17.4.74
tl2br), while UOF adds some graphical lines with text to a table cell
(range), which means IMHO emulating the feature with a 'borrowed' object
type. RF2000 has been proposing this feature at OOo almost two years ago
with a similar approach to UOF, see:
http://wiki.services.openoffice.org/wiki/Image:Diagonal_Table_Header_Specification.odt
Todays proposal is significantly different. The basic idea is to
overcome the concept, that a table cell has to be rectangular. Hence, we
copied most features of a 'cell as yet known', leaving away all the
stuff, that is only reasonable to be used in a box concept. As a result,
it is possible to calculate the content of diagonal table header cells
in the same way, as used in rectangular cells. A feature we have been
avoiding so far is to go the opposite way. Contents of diagonal table
header cells cannot be used for calculations etc. in rectangular cells.
We have been starting to think about this feature, but this would have
blown up the proposal by multiple times. We think this extension can be
added in a later step.

To draft our proposal, we have been basing our work on ODF 1.2 CD01rev5.
You will also find a modified schema attached, that has about 200 lines
added.

One concern I'd like to raise here. To illustrate the use cases, we have
been scanning samples from a reference book about corporate forms and
tables. Our draft is citing the source in a way, that would be legal to
use in Germany, but I do not know, how this kind of use of copyrighted
work is handled in the US. Hence, I would like to clarify this, before I
copy the proposal to the wiki. Can anyone give me a hint?

As mentioned in an earlier posting this week, Redflag 2000 would really
appreciate feedback about this proposal, although review of new features
should be intermitted during the current state of ODF 1.2. We want to
design several more features during the next couple of months and need
some feedback to learn, as we are an unexperienced team.

Best regards,
Peter

-- 
Peter Junge
Open Source Strategy Director

Beijing Redflag Chinese 2000 Software Co., Ltd.
Building No.2, Block A, Huilongsen, 18 Xihuan Nanlu
Beijing Economic-Technological Development Area
100176 Beijing - P.R.China

北京红旗中文贰仟软件技术有限公司
地址:北京经济技术开发区(亦庄)西环南路18号汇龙森A座二层
邮编:100176

电话/Tel: +86-10-51570010 ext.6183
邮箱/e-mail: peterjunge@RedOffice.com
http://www.RedOffice.com

DiagonalTableHeaders-Draft20090515.odt

<?xml version="1.0" encoding="UTF-8"?>
<!--
    OASIS OpenDocument v1.2
	Draft9, 12 February 2009
    Relax-NG Schema

    $Id$

    © 2002-2009 OASIS Open
-->

<grammar
    xmlns="http://relaxng.org/ns/structure/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:db="urn:oasis:names:tc:opendocument:xmlns:database: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:xforms="http://www.w3.org/2002/xforms";
    xmlns:grddl="http://www.w3.org/2003/g/data-view#";
    xmlns:xhtml="http://www.w3.org/1999/xhtml";

    xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
    xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
    xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"
>
<define name="office-process-content">
    <optional>
        <attribute name="office:process-content">
            <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">
    <attribute name="office:version">
        <value>1.2</value>
    </attribute>
</define>
<define name="office-document-attrs" combine="interleave">
    <attribute name="office:mimetype">
        <ref name="string"/>
    </attribute>
</define>
<define name="office-document-common-attrs" combine="interleave">
	<optional>
		<attribute name="grddl:transformation">
			<list>
				<zeroOrMore>
					<ref name="anyURI"/>
				</zeroOrMore>
			</list>
		</attribute>
	</optional>
</define>
<define name="office-meta">
    <optional>
        <element name="office:meta">
            <ref name="office-meta-content-strict"/>
        </element>
    </optional>
</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"/ Ed. Note: shape incl. draw-a now --> 
                    <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"/ Ed. Note: shape incl. draw-a now -->
        <ref name="text-section"/>
        <ref name="text-soft-page-break"/>
        <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">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="office-text-attlist" combine="interleave">
    <optional>
        <attribute name="text:use-soft-page-breaks">
            <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-body-content" combine="choice">
    <ref name="office-database"/>
</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="style-default-page-layout"/>
                </optional>
                <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>
                <optional>
                    <ref name="table-table-template"/>
                </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">
                <value>simple</value>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate">
                <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">
                <value>simple</value>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:show">
                <value>replace</value>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate">
                <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:object-count">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="meta:paragraph-count">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="meta:word-count">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="meta:character-count">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="meta:frame-count">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="meta:sentence-count">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="meta:syllable-count">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="meta: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>
    </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">
            <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">
            <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>
		<attribute name="text:id">
			<ref name="NCName"/>
		</attribute>
    </optional>
</define>
<define name="paragraph-attrs" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="paragraph-attrs" combine="interleave">
	<optional>
	 	<ref name="common-in-content-meta-attlist"/>
	</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-attr" combine="interleave">
    <optional>
        <attribute name="text:continue-list">
            <ref name="IDREF"/>
        </attribute>
    </optional>
</define>
<define name="text-list-attr" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</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"/>
            <ref name="text-soft-page-break"/>
        </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-item-attr" combine="interleave">
    <optional>
        <attribute name="text:style-override">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="text-list-item-attr" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="text-list-header">
    <element name="text:list-header">
        <ref name="text-list-header-attr"/>
        <ref name="text-list-item-content"/>
    </element>
</define>
<define name="text-list-header-attr" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="text-numbered-paragraph">
    <element name="text:numbered-paragraph">
        <ref name="text-numbered-paragraph-attr"/>
        <optional>
            <ref name="text-number"/>
        </optional>
        <choice>
            <ref name="text-p"/>
            <ref name="text-h"/>
        </choice>
    </element>
</define>
<define name="text-numbered-paragraph-attr" combine="interleave"> 
    <attribute name="text:list-id"> 
        <ref name="NCName"/> 
    </attribute> 
</define>
<define name="text-numbered-paragraph-attr" combine="interleave">
    <optional>
        <attribute name="text:level">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="text-numbered-paragraph-attr" combine="interleave">
    <optional>
        <attribute name="text:style-name">
            <ref name="styleNameRef"/>
        </attribute>
        <attribute name="text:continue-numbering">
            <ref name="boolean"/>
        </attribute>
        <attribute name="text:start-value">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="text-numbered-paragraph-attr" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="text-section">
    <element name="text:section">
        <ref name="text-section-attlist"/>
        <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-attlist" combine="interleave">
    <ref name="common-section-attlist"/>
</define>
<define name="common-section-attlist" combine="interleave">
    <optional>
        <attribute name="text:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="common-section-attlist" combine="interleave">
    <attribute name="text:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="common-section-attlist" combine="interleave">
    <optional>
        <attribute name="text:protected">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="common-section-attlist" combine="interleave">
    <optional>
        <attribute name="text:protection-key">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:protection-key-digest-algorithm"
                  >
            <ref name="anyURI"/>
        </attribute>
    </optional>
</define>
<define name="common-section-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="text-section-attlist" 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">
                <value>simple</value>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:show">
                <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">
            <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">
	<choice>
	 	<ref name="text-changed-region-text-id"/>
		<group>
			<ref name="xml-id"/>
			<optional>
				<ref name="text-changed-region-text-id"/>
			</optional>
		</group>
	</choice>
</define>
<define name="text-changed-region-text-id">
	<attribute name="text:id">
		<ref name="NCName"/>
	</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-soft-page-break">
    <element name="text:soft-page-break">
        <empty/>
    </element>
</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">
    <ref name="text-soft-page-break"/>
</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">
    <optional>
        <attribute name="office:title">
            <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">
            <value>simple</value>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:actuate">
            <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">
	<element name="text:meta">
	 	<ref name="text-meta-attlist"/>
	 	<zeroOrMore>
	 	 	<ref name="paragraph-content"/>
	 	</zeroOrMore>
	</element>
</define>
<define name="text-meta-attlist" combine="interleave">
	<optional>
	 	<ref name="common-in-content-meta-attlist"/>
	</optional>
</define>
<define name="text-meta-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="paragraph-content" combine="choice">
    <choice>
		<ref name="text-bookmark"/>
		<ref name="text-bookmark-start"/>
		<ref name="text-bookmark-end"/>
    </choice>
</define>
<!-- DRAFT7: ODF-Metadata-Proposal http://lists.oasis-open.org/archives/office/200708/msg00103.html -->
<!-- Note: Added missing element definitions -->
<!-- Note: Added an <empty/> as element content -->
<define name="text-bookmark">
	<element name="text:bookmark">
	 	<ref name="text-bookmark-attlist"/>
		<empty/>
	</element>
</define>
<define name="text-bookmark-start">
	<element name="text:bookmark-start">
	 	<ref name="text-bookmark-start-attlist"/>
		<empty/>
	</element>
</define>
<define name="text-bookmark-end">
	<element name="text:bookmark-end">
 		<ref name="text-bookmark-end-attlist"/>
		<empty/>
	</element>
</define>
<define name="text-bookmark-attlist" combine="interleave">
	<attribute name="text:name">
	 	<ref name="string"/>
	</attribute>
</define>
<define name="text-bookmark-start-attlist" combine="interleave">
	<attribute name="text:name">
	 	<ref name="string"/>
	</attribute>
</define>
<define name="text-bookmark-end-attlist" combine="interleave">
	<attribute name="text:name">
	 	<ref name="string"/>
	</attribute>
</define>
<define name="text-bookmark-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="text-bookmark-start-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="text-bookmark-start-attlist" combine="interleave">
	<optional>
	 	<ref name="common-in-content-meta-attlist"/>
	</optional>
</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">
    <choice>
        <ref name="office-annotation"/>
        <ref name="office-annotation-end"/>
    </choice>
</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"/ Ed. Note: shape incl. draw-a now -->
    <!-- /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-bookmark-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"/>
        </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-bookmark-ref-content" combine="interleave">
    <optional>
        <attribute name="text:reference-format">
            <choice>
                <ref name="common-ref-format-values"/>
                <value>number-no-superior</value>
                <value>number-all-superior</value>
                <value>number</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="text-note-ref-content" combine="interleave">
    <optional>
        <attribute name="text:reference-format">
            <choice>
                <ref name="common-ref-format-values"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="text-sequence-ref-content" combine="interleave">
    <optional>
        <attribute name="text:reference-format">
            <choice>
                <ref name="common-ref-format-values"/>
                <value>category-and-value</value>
                <value>caption</value>
                <value>value</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-ref-format-values">
    <choice>
        <value>page</value>
        <value>chapter</value>
        <value>direction</value>
        <value>text</value>
    </choice>
</define>
<define name="text-note-ref-content" combine="interleave">
    <ref name="text-note-class"/>
</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">
                            <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="paragraph-content" combine="choice">
	<element name="text:meta-field">
	 	<ref name="text-meta-field-attlist"/>
	 	<zeroOrMore>
	 	 	<ref name="paragraph-content"/>
	 	</zeroOrMore>
	</element>
</define>
<define name="text-meta-field-attlist" combine="interleave">	 
	<ref name="xml-id"/>
</define>
<define name="text-meta-field-attlist" combine="interleave">
	<ref name="common-field-data-style-name-attlist"/>
</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">
            <ref name="string"/>
        </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">
            <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="common-section-attlist"/>
        <zeroOrMore>
            <ref name="index-content-main"/>
        </zeroOrMore>
    </element>
</define>
<define name="text-table-of-content">
    <element name="text:table-of-content">
        <ref name="common-section-attlist"/>
        <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">
            <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="common-section-attlist"/>
        <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">
            <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"
                  >
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-illustration-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-caption">
            <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-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>
</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="common-section-attlist"/>
        <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="common-section-attlist"/>
        <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">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-object-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-math-objects">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-object-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-draw-objects">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-object-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-chart-objects">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-object-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-other-objects">
            <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="common-section-attlist"/>
        <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"/>
</define>
<define name="text-user-index-source-attr" combine="interleave">
    <optional>
        <attribute name="text:use-index-marks">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:use-index-source-styles">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:use-graphics">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:use-tables">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:use-floating-frames"
                    >
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:use-objects">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-user-index-source-attr" combine="interleave">
    <optional>
        <attribute name="text:copy-outline-levels"
                    >
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-user-index-source-attr" combine="interleave">
    <attribute name="text:index-name">
        <ref name="string"/>
    </attribute>
</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="common-section-attlist"/>
        <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">
            <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">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:combine-entries">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:combine-entries-with-dash"
                  >
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:combine-entries-with-pp">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:use-keys-as-entries">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:capitalize-entries">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="text:comma-separated">
            <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="fo:script">
            <ref name="scriptCode"/>
        </attribute>
    </optional>
</define>
<define name="text-alphabetical-index-source-attrs" combine="interleave">
    <optional>
        <attribute name="style:rfc-language-tag">
            <ref name="language"/>
        </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">
                <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="common-section-attlist"/>
        <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">
            <choice>
                <value>name</value>
                <value>number</value>
                <value>number-and-name</value>
                <value>plain-number</value>
                <value>plain-number-and-name</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="text-index-entry-chapter-attrs" combine="interleave">
    <optional>
        <attribute name="text:outline-level">
            <ref name="positiveInteger"/>
        </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-title"/>
        </optional>
        <optional>
            <ref name="table-desc"/>
        </optional>
        <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>
            <optional>
                <ref name="text-soft-page-break"/>
            </optional>
            <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:template-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="table-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:use-first-row-styles">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:use-last-row-styles">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:use-first-column-styles">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:use-last-column-styles">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:use-banding-rows-styles">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:use-banding-columns-styles"
                  >
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:protected">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="table:protection-key">
            <text/>
        </attribute>
    </optional>
    <optional>
        <attribute name="table:protection-key-digest-algorithm"
                  >
            <ref name="anyURI"/>
        </attribute>
    </optional>
</define>
<define name="table-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:print">
            <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-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="table-title">
    <element name="table:title">
        <text/>
    </element>
</define>
<define name="table-desc">
    <element name="table:desc">
        <text/>
    </element>
</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">
            <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">
            <ref name="table-visibility-value"/>
        </attribute>
    </optional>
</define>
<define name="table-table-row-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</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"/>
        <choice>
            <ref name="table-table-cell-content"/>
            <ref name="table-diagonal-table-headers"/>
        </choice>
    </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">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="table-table-cell-attlist-extra" combine="interleave">
    <optional>
        <attribute name="table:number-columns-spanned">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="table:number-rows-spanned">
            <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">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-table-cell-attlist" combine="interleave">
    <optional>
        <attribute name="table:protected">
             <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-table-cell-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="table-table-cell-attlist" combine="interleave">
	<optional>
	 	<ref name="common-in-content-meta-attlist"/>
	</optional>
</define>
<define name="table-diagonal-table-headers">
    <element name="table:diagonal-table-headers">
        <ref name="table-diagonal-table-headers-attlist"/>
        <ref name="table-diagonal-table-header-cell"/>
    </element>
</define>
<define name="table-diagonal-table-headers-attlist" combine="interleave">
    <optional>
        <attribute name="table:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="table-diagonal-table-headers-attlist" combine="interleave">
    <optional>
        <attribute name="table:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="table-diagonal-table-header-cell">
    <element name="table:diagonal-table-header-cell">
        <ref name="table-diagonal-table-header-cell-content"/>
        <ref name="table-diagonal-table-header-cell-attlist"/>
    </element>
</define>
<define name="table-diagonal-table-header-cell-content">
    <optional>
        <ref name="office-annotation"/>
    </optional>
    <optional>
        <ref name="table-detective"/>
    </optional>
    <zeroOrMore>
        <ref name="text-content"/>
    </zeroOrMore>
</define>
<define name="table-diagonal-table-header-cell-attlist" combine="interleave">
    <optional>
        <attribute name="table:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="table-diagonal-table-header-cell-attlist" combine="interleave">
    <optional>
        <attribute name="table:content-validation-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="table-diagonal-table-header-cell-attlist" combine="interleave">
    <optional>
        <attribute name="table:formula">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="table-diagonal-table-header-cell-attlist" combine="interleave">
    <optional>
        <ref name="common-value-and-type-attlist"/>
    </optional>
</define>
<define name="table-diagonal-table-header-cell-attlist" combine="interleave">
    <optional>
        <attribute name="table:protected">
             <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-diagonal-table-header-cell-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="table-diagonal-table-header-cell-attlist" combine="interleave">
	<optional>
	 	<ref name="common-in-content-meta-attlist"/>
	</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">
            <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">
            <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-column-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</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">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-table-header-rows">
    <element name="table:table-header-rows">
        <oneOrMore>
            <optional>
                <ref name="text-soft-page-break"/>
            </optional>
            <ref name="table-table-row"/>
        </oneOrMore>
    </element>
</define>

<define name="table-table-rows">
    <element name="table:table-rows">
        <oneOrMore>
            <optional>
                <ref name="text-soft-page-break"/>
            </optional>
            <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">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:is-sub-table">
            <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" combine="choice">
    <data type="string">
        <param name="pattern">($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)?</param>

    </data>
</define>
<define name="cellRangeAddress" combine="choice">
    <data type="string">
        <param name="pattern">($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+:($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+</param>

    </data>
</define>

<define name="cellRangeAddress" combine="choice">
    <data type="string">
        <param name="pattern">($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+</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">
            <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">
            <value>simple</value>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:actuate">
            <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">
            <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">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-scenario-attlist" combine="interleave">
    <optional>
        <attribute name="table:copy-styles">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-scenario-attlist" combine="interleave">
    <optional>
        <attribute name="table:copy-formulas">
            <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">
            <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">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="table:protection-key">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="table:protection-key-digest-algorithm"
                  >
            <ref name="anyURI"/>
        </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">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-calculation-setting-attlist" combine="interleave">
    <optional>
        <attribute name="table:precision-as-shown">
            <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"
                    >
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-calculation-setting-attlist" combine="interleave">
    <optional>
        <attribute name="table:automatic-find-labels">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-calculation-setting-attlist" combine="interleave">
    <optional>
        <attribute name="table:use-regular-expressions"
                  >
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-calculation-setting-attlist" combine="interleave">
    <optional>
        <attribute name="table:use-wildcards">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-calculation-setting-attlist" combine="interleave">
    <optional>
        <attribute name="table:null-year">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="table-null-date">
    <element name="table:null-date">
        <optional>
            <attribute name="table:value-type">
                <ref name="valueType"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:date-value"
                        >
                <ref name="date"/>
            </attribute>
        </optional>
        <empty/>
    </element>
</define>
<define name="table-iteration">
    <element name="table:iteration">
        <optional>
            <attribute name="table:status">
                <choice>
                    <value>enable</value>
                    <value>disable</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:steps">
                <ref name="positiveInteger"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:maximum-difference"
                        >
                <ref name="double"/>
            </attribute>
        </optional>
        <empty/>
    </element>
</define>
<define name="table-content-validations">
    <element name="table:content-validations">
        <oneOrMore>
            <ref name="table-content-validation"/>
        </oneOrMore>
    </element>
</define>

<define name="table-content-validation">
    <element name="table:content-validation">
        <ref name="table-validation-attlist"/>
        <optional>
            <ref name="table-help-message"/>
        </optional>
        <optional>
            <choice>
                <ref name="table-error-message"/>
                <group>
                    <ref name="table-error-macro"/>
                    <optional>
                        <ref name="office-event-listeners"/>
                    </optional>
                </group>
            </choice>
        </optional>
    </element>
</define>
<define name="table-validation-attlist" combine="interleave">
    <attribute name="table:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-validation-attlist" combine="interleave">
    <optional>
        <attribute name="table:condition">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="table-validation-attlist" combine="interleave">
    <optional>
        <attribute name="table:base-cell-address">
            <ref name="cellAddress"/>
        </attribute>
    </optional>
</define>
<define name="table-validation-attlist" combine="interleave">
    <optional>
        <attribute name="table:allow-empty-cell">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-validation-attlist" combine="interleave">
    <optional>
        <attribute name="table:display-list">
            <choice>
                <value>none</value>
                <value>unsorted</value>
                <value>sort-ascending</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="table-help-message">
    <element name="table:help-message">
        <optional>
            <attribute name="table:title">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:display">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <zeroOrMore>
            <ref name="text-p"/>
        </zeroOrMore>
    </element>
</define>
<define name="table-error-message">
    <element name="table:error-message">
        <optional>
            <attribute name="table:title">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:display">
                <ref name="boolean"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="table:message-type">
                <choice>
                    <value>stop</value>
                    <value>warning</value>
                    <value>information</value>
                </choice>
            </attribute>
        </optional>
        <zeroOrMore>
            <ref name="text-p"/>
        </zeroOrMore>
    </element>
</define>
<define name="table-error-macro">
    <element name="table:error-macro">
        <optional>
            <attribute name="table:execute">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </element>
</define>
<define name="table-label-ranges">
    <element name="table:label-ranges">
        <zeroOrMore>
            <ref name="table-label-range"/>
        </zeroOrMore>
    </element>
</define>

<define name="table-label-range">
    <element name="table:label-range">
        <ref name="table-label-range-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-label-range-attlist" combine="interleave">
    <attribute name="table:label-cell-range-address">
        <ref name="cellRangeAddress"/>
    </attribute>
</define>
<define name="table-label-range-attlist" combine="interleave">
    <attribute name="table:data-cell-range-address">
        <ref name="cellRangeAddress"/>
    </attribute>
</define>
<define name="table-label-range-attlist" combine="interleave">
    <attribute name="table:orientation">
        <choice>
            <value>column</value>
            <value>row</value>
        </choice>
    </attribute>
</define>
<define name="table-named-expressions">
    <element name="table:named-expressions">
        <zeroOrMore>
            <choice>
                <ref name="table-named-range"/>
                <ref name="table-named-expression"/>
            </choice>
        </zeroOrMore>
    </element>
</define>

<define name="table-named-range">
    <element name="table:named-range">
        <ref name="table-named-range-attlist"/>
        <empty/>
    </element>
</define>

<define name="table-named-range-attlist" combine="interleave">
    <attribute name="table:name">
        <ref name="string"/>
    </attribute>
    <attribute name="table:cell-range-address">
        <ref name="cellRangeAddress"/>
    </attribute>
    <optional>
        <attribute name="table:base-cell-address">
            <ref name="cellAddress"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="table:range-usable-as">
            <choice>
                <value>none</value>
                <list>
                    <oneOrMore>
                        <choice>
                            <value>print-range</value>
                            <value>filter</value>
                            <value>repeat-row</value>
                            <value>repeat-column</value>
                        </choice>
                    </oneOrMore>
                </list>
            </choice>
        </attribute>
    </optional>
</define>
<define name="table-named-expression">
    <element name="table:named-expression">
        <ref name="table-named-expression-attlist"/>
        <empty/>
    </element>
</define>

<define name="table-named-expression-attlist" combine="interleave">
    <attribute name="table:name">
        <ref name="string"/>
    </attribute>
    <attribute name="table:expression">
        <ref name="string"/>
    </attribute>
    <optional>
        <attribute name="table:base-cell-address">
            <ref name="cellAddress"/>
        </attribute>
    </optional>
</define>
<define name="table-database-ranges">
    <element name="table:database-ranges">
        <zeroOrMore>
            <ref name="table-database-range"/>
        </zeroOrMore>
    </element>
</define>
<define name="table-database-range">
    <element name="table:database-range">
        <ref name="table-database-range-attlist"/>
        <optional>
            <choice>
                <ref name="table-database-source-sql"/>
                <ref name="table-database-source-table"/>
                <ref name="table-database-source-query"/>
            </choice>
        </optional>
        <optional>
            <ref name="table-filter"/>
        </optional>
        <optional>
            <ref name="table-sort"/>
        </optional>
        <optional>
            <ref name="table-subtotal-rules"/>
        </optional>
    </element>
</define>
<define name="table-database-range-attlist" combine="interleave">
    <optional>
        <attribute name="table:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="table-database-range-attlist" combine="interleave">
    <optional>
        <attribute name="table:is-selection">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-database-range-attlist" combine="interleave">
    <optional>
        <attribute name="table:on-update-keep-styles">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-database-range-attlist" combine="interleave">
    <optional>
        <attribute name="table:on-update-keep-size">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-database-range-attlist" combine="interleave">
    <optional>
        <attribute name="table:has-persistent-data">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-database-range-attlist" combine="interleave">
    <optional>
        <attribute name="table:orientation">
            <choice>
                <value>column</value>
                <value>row</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="table-database-range-attlist" combine="interleave">
    <optional>
        <attribute name="table:contains-header">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-database-range-attlist" combine="interleave">
    <optional>
        <attribute name="table:display-filter-buttons"
                  >
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-database-range-attlist" combine="interleave">
    <attribute name="table:target-range-address">
        <ref name="cellRangeAddress"/>
    </attribute>
</define>
<define name="table-database-range-attlist" combine="interleave">
    <optional>
        <attribute name="table:refresh-delay">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-database-source-sql">
    <element name="table:database-source-sql">
        <ref name="table-database-source-sql-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-database-source-sql-attlist" combine="interleave">
    <attribute name="table:database-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-database-source-sql-attlist" combine="interleave">
    <attribute name="table:sql-statement">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-database-source-sql-attlist" combine="interleave">
    <optional>
        <attribute name="table:parse-sql-statement">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-database-source-query">
    <element name="table:database-source-table">
        <ref name="table-database-source-table-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-database-source-table-attlist" combine="interleave">
    <attribute name="table:database-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-database-source-table-attlist" combine="interleave">
    <attribute name="table:database-table-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-database-source-table">
    <element name="table:database-source-query">
        <ref name="table-database-source-query-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-database-source-query-attlist" combine="interleave">
    <attribute name="table:database-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-database-source-query-attlist" combine="interleave">
    <attribute name="table:query-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-sort">
    <element name="table:sort">
        <ref name="table-sort-attlist"/>
        <oneOrMore>
            <ref name="table-sort-by"/>
        </oneOrMore>
    </element>
</define>
<define name="table-sort-attlist" combine="interleave">
    <optional>
        <attribute name="table:bind-styles-to-content">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-sort-attlist" combine="interleave">
    <optional>
        <attribute name="table:target-range-address">
            <ref name="cellRangeAddress"/>
        </attribute>
    </optional>
</define>
<define name="table-sort-attlist" combine="interleave">
    <optional>
        <attribute name="table:case-sensitive">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-sort-attlist" combine="interleave">
    <optional>
        <attribute name="table:language">
            <ref name="languageCode"/>
        </attribute>
    </optional>
</define>
<define name="table-sort-attlist" combine="interleave">
    <optional>
        <attribute name="table:country">
            <ref name="countryCode"/>
        </attribute>
    </optional>
</define>
<define name="table-sort-attlist" combine="interleave">
    <optional>
        <attribute name="table:script">
            <ref name="scriptCode"/>
        </attribute>
    </optional>
</define>
<define name="table-sort-attlist" combine="interleave">
    <optional>
        <attribute name="table:rfc-language-tag">
            <ref name="language"/>
        </attribute>
    </optional>
</define>
<define name="table-sort-attlist" combine="interleave">
    <optional>
        <attribute name="table:algorithm">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="table-sort-by">
    <element name="table:sort-by">
        <ref name="table-sort-by-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-sort-attlist" combine="interleave">
    <optional>
        <attribute name="table:embedded-number-behavior"
                  >
            <choice>
                <value>alpha-numeric</value>
                <value>integer</value>
                <value>double</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="table-sort-by-attlist" combine="interleave">
    <attribute name="table:field-number">
        <ref name="nonNegativeInteger"/>
    </attribute>
</define>
<define name="table-sort-by-attlist" combine="interleave">
    <optional>
        <attribute name="table:data-type">
            <choice>
                <value>text</value>
                <value>number</value>
                <value>automatic</value>
                <ref name="string"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="table-sort-by-attlist" combine="interleave">
    <optional>
        <attribute name="table:order">
            <choice>
                <value>ascending</value>
                <value>descending</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="table-subtotal-rules">
    <element name="table:subtotal-rules">
        <ref name="table-subtotal-rules-attlist"/>
        <optional>
            <ref name="table-sort-groups"/>
        </optional>
        <zeroOrMore>
            <ref name="table-subtotal-rule"/>
        </zeroOrMore>
    </element>
</define>
<define name="table-subtotal-rules-attlist" combine="interleave">
    <optional>
        <attribute name="table:bind-styles-to-content">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-subtotal-rules-attlist" combine="interleave">
    <optional>
        <attribute name="table:case-sensitive">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-subtotal-rules-attlist" combine="interleave">
    <optional>
        <attribute name="table:page-breaks-on-group-change"
                  >
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-sort-groups">
    <element name="table:sort-groups">
        <ref name="table-sort-groups-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-sort-groups-attlist" combine="interleave">
    <optional>
        <attribute name="table:data-type">
            <choice>
                <value>text</value>
                <value>number</value>
                <value>automatic</value>
                <ref name="string"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="table-sort-groups-attlist" combine="interleave">
    <optional>
        <attribute name="table:order">
            <choice>
                <value>ascending</value>
                <value>descending</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="table-subtotal-rule">
    <element name="table:subtotal-rule">
        <ref name="table-subtotal-rule-attlist"/>
        <zeroOrMore>
            <ref name="table-subtotal-field"/>
        </zeroOrMore>
    </element>
</define>
<define name="table-subtotal-rule-attlist" combine="interleave">
    <attribute name="table:group-by-field-number">
        <ref name="nonNegativeInteger"/>
    </attribute>
</define>
<define name="table-subtotal-field">
    <element name="table:subtotal-field">
        <ref name="table-subtotal-field-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-subtotal-field-attlist" combine="interleave">
    <attribute name="table:field-number">
        <ref name="nonNegativeInteger"/>
    </attribute>
</define>
<define name="table-subtotal-field-attlist" combine="interleave">
    <attribute name="table:function">
        <choice>
            <value>auto</value>
            <value>average</value>
            <value>count</value>
            <value>countnums</value>
            <value>max</value>
            <value>min</value>
            <value>product</value>
            <value>stdev</value>
            <value>stdevp</value>
            <value>sum</value>
            <value>var</value>
            <value>varp</value>
            <ref name="string"/>
        </choice>
    </attribute>
</define>
<define name="table-filter">
    <element name="table:filter">
        <ref name="table-filter-attlist"/>
        <choice>
            <ref name="table-filter-condition"/>
            <ref name="table-filter-and"/>
            <ref name="table-filter-or"/>
        </choice>
    </element>
</define>
<define name="table-filter-attlist" combine="interleave">
    <optional>
        <attribute name="table:target-range-address">
            <ref name="cellRangeAddress"/>
        </attribute>
    </optional>
</define>
<define name="table-filter-attlist" combine="interleave">
    <optional>
        <attribute name="table:condition-source">
            <choice>
                <value>self</value>
                <value>cell-range</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="table-filter-attlist" combine="interleave">
    <optional>
        <attribute name="table:condition-source-range-address">
            <ref name="cellRangeAddress"/>
        </attribute>
    </optional>
</define>
<define name="table-filter-attlist" combine="interleave">
    <optional>
        <attribute name="table:display-duplicates">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-filter-and">
    <element name="table:filter-and">
        <oneOrMore>
            <choice>
                <ref name="table-filter-or"/>
                <ref name="table-filter-condition"/>
            </choice>
        </oneOrMore>
    </element>
</define>
<define name="table-filter-or">
    <element name="table:filter-or">
        <oneOrMore>
            <choice>
                <ref name="table-filter-and"/>
                <ref name="table-filter-condition"/>
            </choice>
        </oneOrMore>
    </element>
</define>
<define name="table-filter-condition">
    <element name="table:filter-condition">
        <ref name="table-filter-condition-attlist"/>
        <zeroOrMore>
            <ref name="table-filter-set-item"/>
        </zeroOrMore>
    </element>
</define>
<define name="table-filter-condition-attlist" combine="interleave">
    <attribute name="table:field-number">    
        <ref name="nonNegativeInteger"/>
    </attribute>
</define>
<define name="table-filter-condition-attlist" combine="interleave">
    <attribute name="table:value">
        <choice>
            <ref name="string"/>
            <ref name="double"/>
        </choice>
    </attribute>
</define>
<define name="table-filter-condition-attlist" combine="interleave">
    <attribute name="table:operator">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-filter-condition-attlist" combine="interleave">
    <optional>
        <attribute name="table:case-sensitive">    
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="table-filter-condition-attlist" combine="interleave">
    <optional>
        <attribute name="table:data-type">
            <choice>
                <value>text</value>
                <value>number</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="table-filter-set-item">
    <element name="table:filter-set-item">
        <attribute name="table:value">    
            <ref name="string"/>
        </attribute>
        <empty/>
    </element>
</define>
<define name="table-data-pilot-tables">
    <element name="table:data-pilot-tables">
        <zeroOrMore>
            <ref name="table-data-pilot-table"/>
        </zeroOrMore>
    </element>
</define>
<define name="table-data-pilot-table">
    <element name="table:data-pilot-table">
        <ref name="table-data-pilot-table-attlist"/>
        <optional>
            <choice>
                <ref name="table-database-source-sql"/>
                <ref name="table-database-source-table"/>
                <ref name="table-database-source-query"/>
                <ref name="table-source-service"/>
                <ref name="table-source-cell-range"/>
            </choice>
        </optional>
        <oneOrMore>
            <ref name="table-data-pilot-field"/>
        </oneOrMore>
    </element>
</define>
<define name="table-data-pilot-table-attlist" combine="interleave">
    <attribute name="table:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-data-pilot-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:application-data">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="table-data-pilot-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:grand-total">
            <choice>
                <value>none</value>
                <value>row</value>
                <value>column</value>
                <value>both</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="table-data-pilot-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:ignore-empty-rows">    
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-data-pilot-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:identify-categories">    
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-data-pilot-table-attlist" combine="interleave">
    <attribute name="table:target-range-address">    
        <ref name="cellRangeAddress"/>
    </attribute>
</define>
<define name="table-data-pilot-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:buttons">    
            <ref name="cellRangeAddressList"/>
        </attribute>
    </optional>
</define>
<define name="table-data-pilot-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:show-filter-button">    
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-data-pilot-table-attlist" combine="interleave">
    <optional>
        <attribute name="table:drill-down-on-double-click"
                  >    
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-source-cell-range">
    <element name="table:source-cell-range">
        <ref name="table-source-cell-range-attlist"/>
        <optional>
            <ref name="table-filter"/>
        </optional>
    </element>
</define>
<define name="table-source-cell-range-attlist" combine="interleave">
    <attribute name="table:cell-range-address">    
        <ref name="cellRangeAddress"/>
    </attribute>
</define>
<define name="table-source-service">
    <element name="table:source-service">
        <ref name="table-source-service-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-source-service-attlist" combine="interleave">
    <attribute name="table:name">    
        <ref name="string"/>
    </attribute>
</define>
<define name="table-source-service-attlist" combine="interleave">
    <attribute name="table:source-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-source-service-attlist" combine="interleave">
    <attribute name="table:object-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-source-service-attlist" combine="interleave">
    <optional>
        <attribute name="table:user-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="table-source-service-attlist" combine="interleave">
    <optional>
        <attribute name="table:password">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="table-data-pilot-field">
    <element name="table:data-pilot-field">
        <ref name="table-data-pilot-field-attlist"/>
        <optional>
            <ref name="table-data-pilot-level"/>
        </optional>
        <optional>
            <ref name="table-data-pilot-field-reference"/>
        </optional>
        <optional>
            <ref name="table-data-pilot-groups"/>
        </optional>
    </element>
</define>
<define name="table-data-pilot-field-attlist" combine="interleave">
    <attribute name="table:source-field-name">    
        <ref name="string"/>
    </attribute>
</define>
<define name="table-data-pilot-field-attlist" combine="interleave">
    <choice>
        <attribute name="table:orientation">
            <choice>
                <value>row</value>
                <value>column</value>
                <value>data</value>
                <value>hidden</value>
            </choice>
        </attribute>
        <group>
            <attribute name="table:orientation">
                <value>page</value>
            </attribute>
            <attribute name="table:selected-page">
                <ref name="string"/>
            </attribute>
        </group>
    </choice>
</define>
<define name="table-data-pilot-field-attlist" combine="interleave">
    <optional>
        <attribute name="table:is-data-layout-field">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="table-data-pilot-field-attlist" combine="interleave">
    <optional>
        <attribute name="table:function">
            <choice>
                <value>auto</value>
                <value>average</value>
                <value>count</value>
                <value>countnums</value>
                <value>max</value>
                <value>min</value>
                <value>product</value>
                <value>stdev</value>
                <value>stdevp</value>
                <value>sum</value>
                <value>var</value>
                <value>varp</value>
                <ref name="string"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="table-data-pilot-field-attlist" combine="interleave">
    <optional>
        <attribute name="table:used-hierarchy">    
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="table-data-pilot-level">
    <element name="table:data-pilot-level">
        <ref name="table-data-pilot-level-attlist"/>
        <optional>
            <ref name="table-data-pilot-subtotals"/>
        </optional>
        <optional>
            <ref name="table-data-pilot-members"/>
        </optional>
        <optional>
            <ref name="table-data-pilot-display-info"/>
        </optional>
        <optional>
            <ref name="table-data-pilot-sort-info"/>
        </optional>
        <optional>
            <ref name="table-data-pilot-layout-info"/>
        </optional>
    </element>
</define>
<define name="table-data-pilot-level-attlist" combine="interleave">
    <optional>
        <attribute name="table:show-empty">    
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-data-pilot-subtotals">
    <element name="table:data-pilot-subtotals">
        <zeroOrMore>
            <ref name="table-data-pilot-subtotal"/>
        </zeroOrMore>
    </element>
</define>
<define name="table-data-pilot-subtotal">
    <element name="table:data-pilot-subtotal">
        <ref name="table-data-pilot-subtotal-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-data-pilot-subtotal-attlist" combine="interleave">
    <attribute name="table:function">
        <choice>
            <value>auto</value>
            <value>average</value>
            <value>count</value>
            <value>countnums</value>
            <value>max</value>
            <value>min</value>
            <value>product</value>
            <value>stdev</value>
            <value>stdevp</value>
            <value>sum</value>
            <value>var</value>
            <value>varp</value>
            <ref name="string"/>
        </choice>
    </attribute>
</define>
<define name="table-data-pilot-members">
    <element name="table:data-pilot-members">
        <zeroOrMore>
            <ref name="table-data-pilot-member"/>
        </zeroOrMore>
    </element>
</define>
<define name="table-data-pilot-member">
    <element name="table:data-pilot-member">
        <ref name="table-data-pilot-member-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-data-pilot-member-attlist" combine="interleave">
    <attribute name="table:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-data-pilot-member-attlist" combine="interleave">
    <optional>
        <attribute name="table:display">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-data-pilot-member-attlist" combine="interleave">
    <optional>
        <attribute name="table:show-details">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-data-pilot-display-info">
    <element name="table:data-pilot-display-info">
        <ref name="table-data-pilot-display-info-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-data-pilot-display-info-attlist" combine="interleave">
    <attribute name="table:enabled">
        <ref name="boolean"/>
    </attribute>
</define>
<define name="table-data-pilot-display-info-attlist" combine="interleave">
    <attribute name="table:data-field">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-data-pilot-display-info-attlist" combine="interleave">
    <attribute name="table:member-count">
        <ref name="nonNegativeInteger"/>
    </attribute>
</define>
<define name="table-data-pilot-display-info-attlist" combine="interleave">
    <attribute name="table:display-member-mode">
        <choice>
            <value>from-top</value>
            <value>from-bottom</value>
        </choice>
    </attribute>
</define>
<define name="table-data-pilot-sort-info">
    <element name="table:data-pilot-sort-info">
        <ref name="table-data-pilot-sort-info-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-data-pilot-sort-info-attlist" combine="interleave">
    <choice>
        <group>
            <attribute name="table:sort-mode">
                <value>data</value>
            </attribute>
            <attribute name="table:data-field">
                <ref name="string"/>
            </attribute>
        </group>
        <attribute name="table:sort-mode">
            <choice>
                <value>none</value>
                <value>manual</value>
                <value>name</value>
            </choice>
        </attribute>
    </choice>
</define>
<define name="table-data-pilot-sort-info-attlist" combine="interleave">
    <attribute name="table:order">
        <choice>
            <value>ascending</value>
            <value>descending</value>
        </choice>
    </attribute>
</define>
<define name="table-data-pilot-layout-info">
    <element name="table:data-pilot-layout-info">
        <ref name="table-data-pilot-layout-info-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-data-pilot-layout-info-attlist" combine="interleave">
    <attribute name="table:layout-mode">
        <choice>
            <value>tabular-layout</value>
            <value>outline-subtotals-top</value>
            <value>outline-subtotals-bottom</value>
        </choice>
    </attribute>
</define>
<define name="table-data-pilot-layout-info-attlist" combine="interleave">
    <attribute name="table:add-empty-lines">
        <ref name="boolean"/>
    </attribute>
</define>
<define name="table-data-pilot-field-reference">
    <element name="table:data-pilot-field-reference">
        <ref name="table-data-pilot-field-reference-attlist"/>
    </element>
</define>
<define name="table-data-pilot-field-reference-attlist" combine="interleave">
    <attribute name="table:field-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-data-pilot-field-reference-attlist" combine="interleave">
    <choice>
        <group>
            <attribute name="table:member-type">
                <value>named</value>
            </attribute>
            <attribute name="table:member-name">
                <ref name="string"/>
            </attribute>
        </group>
        <attribute name="table:member-type">
            <choice>
                <value>previous</value>
                <value>next</value>
            </choice>
        </attribute>
    </choice>
</define>
<define name="table-data-pilot-field-reference-attlist" combine="interleave">
    <attribute name="table:type">
        <choice>
            <value>none</value>
            <value>member-difference</value>
            <value>member-percentage</value>
            <value>member-percentage-difference</value>
            <value>running-total</value>
            <value>row-percentage</value>
            <value>column-percentage</value>
            <value>total-percentage</value>
            <value>index</value>
        </choice>
    </attribute>
</define>
<define name="table-data-pilot-groups">
    <element name="table:data-pilot-groups">
        <ref name="table-data-pilot-groups-attlist"/>
        <oneOrMore>
            <ref name="table-data-pilot-group"/>
        </oneOrMore>
    </element>
</define>
<define name="table-data-pilot-groups-attlist" combine="interleave">
    <attribute name="table:source-field-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-data-pilot-groups-attlist" combine="interleave">
    <choice>
        <attribute name="table:date-start">
            <choice>
                <ref name="dateOrDateTime"/>
                <value>auto</value>
            </choice>
        </attribute>
        <attribute name="table:start">
            <choice>
                <ref name="double"/>
                <value>auto</value>
            </choice>
        </attribute>
    </choice>
</define>
<define name="table-data-pilot-groups-attlist" combine="interleave">
    <choice>
        <attribute name="table:date-end">
            <choice>
                <ref name="dateOrDateTime"/>
                <value>auto</value>
            </choice>
        </attribute>
        <attribute name="table:end">
            <choice>
                <ref name="double"/>
                <value>auto</value>
            </choice>
        </attribute>
    </choice>
</define>
<define name="table-data-pilot-groups-attlist" combine="interleave">
    <attribute name="table:step">
        <ref name="double"/>
    </attribute>
</define>
<define name="table-data-pilot-groups-attlist" combine="interleave">
    <attribute name="table:grouped-by">
        <choice>
            <value>seconds</value>
            <value>minutes</value>
            <value>hours</value>
            <value>days</value>
            <value>months</value>
            <value>quarters</value>
            <value>years</value>
        </choice>
    </attribute>
</define>
<define name="table-data-pilot-group">
    <element name="table:data-pilot-group">
        <ref name="table-data-pilot-group-attlist"/>
        <oneOrMore>
            <ref name="table-data-pilot-group-member"/>
        </oneOrMore>
    </element>
</define>
<define name="table-data-pilot-group-attlist" combine="interleave">
    <attribute name="table:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-data-pilot-group-member">
    <element name="table:data-pilot-group-member">
        <ref name="table-data-pilot-group-member-attlist"/>
    </element>
</define>
<define name="table-data-pilot-group-member-attlist" combine="interleave">
    <attribute name="table:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-consolidation">
    <element name="table:consolidation">
        <ref name="table-consolidation-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-consolidation-attlist" combine="interleave">
    <attribute name="table:function">    
        <choice>
            <value>auto</value>
            <value>average</value>
            <value>count</value>
            <value>countnums</value>
            <value>max</value>
            <value>min</value>
            <value>product</value>
            <value>stdev</value>
            <value>stdevp</value>
            <value>sum</value>
            <value>var</value>
            <value>varp</value>
            <ref name="string"/>
        </choice>
    </attribute>
</define>
<define name="table-consolidation-attlist" combine="interleave">
    <attribute name="table:source-cell-range-addresses">    
        <ref name="cellRangeAddressList"/>
    </attribute>
</define>
<define name="table-consolidation-attlist" combine="interleave">
    <attribute name="table:target-cell-address">    
        <ref name="cellAddress"/>
    </attribute>
</define>
<define name="table-consolidation-attlist" combine="interleave">
    <optional>
        <attribute name="table:use-labels">
            <choice>
                <value>none</value>
                <value>row</value>
                <value>column</value>
                <value>both</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="table-consolidation-attlist" combine="interleave">
    <optional>
        <attribute name="table:link-to-source-data">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-dde-links">
    <element name="table:dde-links">
        <oneOrMore>
            <ref name="table-dde-link"/>
        </oneOrMore>
    </element>
</define>
<define name="table-tracked-changes">
    <element name="table:tracked-changes">
        <ref name="table-tracked-changes-attlist"/>
        <zeroOrMore>
            <choice>
                <ref name="table-cell-content-change"/>
                <ref name="table-insertion"/>
                <ref name="table-deletion"/>
                <ref name="table-movement"/>
            </choice>
        </zeroOrMore>
    </element>
</define>
<define name="table-tracked-changes-attlist" combine="interleave">
    <optional>
        <attribute name="table:track-changes">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-insertion">
    <element name="table:insertion">
        <ref name="table-insertion-attlist"/>
        <ref name="common-table-change-attlist"/>
        <ref name="office-change-info"/>
        <optional>
            <ref name="table-dependencies"/>
        </optional>
        <optional>
            <ref name="table-deletions"/>
        </optional>
    </element>
</define>
<define name="table-insertion-attlist" combine="interleave">
    <attribute name="table:type">
        <choice>
            <value>row</value>
            <value>column</value>
            <value>table</value>
        </choice>
    </attribute>
</define>
<define name="table-insertion-attlist" combine="interleave">
    <attribute name="table:position">
        <ref name="integer"/>
    </attribute>
</define>
<define name="table-insertion-attlist" combine="interleave">
    <optional>
        <attribute name="table:count">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="table-insertion-attlist" combine="interleave">
    <optional>
        <attribute name="table:table">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="table-dependencies">
    <element name="table:dependencies">
        <oneOrMore>
            <ref name="table-dependency"/>
        </oneOrMore>
    </element>
</define>
<define name="table-dependency">
    <element name="table:dependency">
        <attribute name="table:id">
            <ref name="string"/>
        </attribute>
        <empty/>
    </element>
</define>
<define name="table-deletions">
    <element name="table:deletions">
        <oneOrMore>
            <choice>
                <ref name="table-cell-content-deletion"/>
                <ref name="table-change-deletion"/>
            </choice>
        </oneOrMore>
    </element>
</define>
<define name="table-cell-content-deletion">
    <element name="table:cell-content-deletion">
        <optional>
            <attribute name="table:id">
                <ref name="string"/>
            </attribute>
        </optional>
        <optional>
            <ref name="table-cell-address"/>
        </optional>
        <optional>
            <ref name="table-change-track-table-cell"/>
        </optional>
    </element>
</define>
<define name="table-change-deletion">
    <element name="table:change-deletion">
        <optional>
            <attribute name="table:id">
                <ref name="string"/>
            </attribute>
        </optional>
        <empty/>
    </element>
</define>
<define name="table-deletion">
    <element name="table:deletion">
        <ref name="table-deletion-attlist"/>
        <ref name="common-table-change-attlist"/>
        <ref name="office-change-info"/>
        <optional>
            <ref name="table-dependencies"/>
        </optional>
        <optional>
            <ref name="table-deletions"/>
        </optional>
        <optional>
            <ref name="table-cut-offs"/>
        </optional>
    </element>
</define>
<define name="table-deletion-attlist" combine="interleave">
    <attribute name="table:type">
        <choice>
            <value>row</value>
            <value>column</value>
            <value>table</value>
        </choice>
    </attribute>
</define>
<define name="table-deletion-attlist" combine="interleave">
    <attribute name="table:position">
        <ref name="integer"/>
    </attribute>
</define>
<define name="table-deletion-attlist" combine="interleave">
    <optional>
        <attribute name="table:table">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="table-deletion-attlist" combine="interleave">
    <optional>
        <attribute name="table:multi-deletion-spanned">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="table-cut-offs">
    <element name="table:cut-offs">
        <choice>
            <oneOrMore>
                <ref name="table-movement-cut-off"/>
            </oneOrMore>
            <group>
                <ref name="table-insertion-cut-off"/>
                <zeroOrMore>
                    <ref name="table-movement-cut-off"/>
                </zeroOrMore>
            </group>
        </choice>
    </element>
</define>
<define name="table-insertion-cut-off">
    <element name="table:insertion-cut-off">
        <ref name="table-insertion-cut-off-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-insertion-cut-off-attlist" combine="interleave">
    <attribute name="table:id">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-insertion-cut-off-attlist" combine="interleave">
    <attribute name="table:position">
        <ref name="integer"/>
    </attribute>
</define>
<define name="table-movement-cut-off">
    <element name="table:movement-cut-off">
        <ref name="table-movement-cut-off-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-movement-cut-off-attlist" combine="interleave">
    <choice>
        <attribute name="table:position">
            <ref name="integer"/>
        </attribute>
        <group>
            <attribute name="table:start-position">
                <ref name="integer"/>
            </attribute>
            <attribute name="table:end-position">
                <ref name="integer"/>
            </attribute>
        </group>
    </choice>
</define>
<define name="table-movement">
    <element name="table:movement">
        <ref name="common-table-change-attlist"/>
        <ref name="table-source-range-address"/>
        <ref name="table-target-range-address"/>
        <ref name="office-change-info"/>
        <optional>
            <ref name="table-dependencies"/>
        </optional>
        <optional>
            <ref name="table-deletions"/>
        </optional>
    </element>
</define>
<define name="table-source-range-address">
    <element name="table:source-range-address">
        <ref name="common-table-range-attlist"/>
        <empty/>
    </element>
</define>

<define name="table-target-range-address">
    <element name="table:target-range-address">
        <ref name="common-table-range-attlist"/>
        <empty/>
    </element>
</define>


<define name="common-table-range-attlist" combine="interleave">
    <choice>
        <group>
            <ref name="common-table-cell-address-attlist"/>
        </group>
        <group>
            <ref name="common-table-cell-range-address-attlist"/>
        </group>
    </choice>
</define>
<define name="common-table-cell-address-attlist" combine="interleave">
    <attribute name="table:column">
        <ref name="integer"/>
    </attribute>
    <attribute name="table:row">
        <ref name="integer"/>
    </attribute>
    <attribute name="table:table">
        <ref name="integer"/>
    </attribute>
</define>
<define name="common-table-cell-range-address-attlist" combine="interleave">
    <attribute name="table:start-column">
        <ref name="integer"/>
    </attribute>
    <attribute name="table:start-row">
        <ref name="integer"/>
    </attribute>
    <attribute name="table:start-table">
        <ref name="integer"/>
    </attribute>
    <attribute name="table:end-column">
        <ref name="integer"/>
    </attribute>
    <attribute name="table:end-row">
        <ref name="integer"/>
    </attribute>
    <attribute name="table:end-table">
        <ref name="integer"/>
    </attribute>
</define>
<define name="table-change-track-table-cell" combine="interleave">
    <element name="table:change-track-table-cell">
        <ref name="table-change-track-table-cell-attlist"/>
        <zeroOrMore>
            <ref name="text-p"/>
        </zeroOrMore>
    </element>
</define>
<define name="table-change-track-table-cell-attlist" combine="interleave">
    <optional>
        <attribute name="table:cell-address">
            <ref name="cellAddress"/>
        </attribute>
    </optional>
</define>
<define name="table-change-track-table-cell-attlist" combine="interleave">
    <optional>
        <attribute name="table:matrix-covered">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-change-track-table-cell-attlist" combine="interleave">
    <optional>
        <attribute name="table:formula">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="table:number-matrix-columns-spanned">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="table:number-matrix-rows-spanned">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
    <optional>
        <ref name="common-value-and-type-attlist"/>
    </optional>
</define>
<define name="table-cell-content-change">
    <element name="table:cell-content-change">
        <ref name="common-table-change-attlist"/>
        <ref name="table-cell-address"/>
        <ref name="office-change-info"/>
        <optional>
            <ref name="table-dependencies"/>
        </optional>
        <optional>
            <ref name="table-deletions"/>
        </optional>
        <ref name="table-previous"/>
    </element>
</define>
<define name="table-cell-address">
    <element name="table:cell-address">
        <ref name="common-table-cell-address-attlist"/>
        <empty/>
    </element>
</define>
<define name="table-previous">
    <element name="table:previous">
        <optional>
            <attribute name="table:id">
                <ref name="string"/>
            </attribute>
        </optional>
        <ref name="table-change-track-table-cell"/>
    </element>
</define>
<define name="common-table-change-attlist" combine="interleave">
    <attribute name="table:id">
        <ref name="string"/>
    </attribute>
</define>
<define name="common-table-change-attlist" combine="interleave">
    <optional>
        <attribute name="table:acceptance-state">
            <choice>
                <value>accepted</value>
                <value>rejected</value>
                <value>pending</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-table-change-attlist" combine="interleave">
    <optional>
        <attribute name="table:rejecting-change-id">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-handout-master">
    <element name="style:handout-master">
        <ref name="common-presentation-header-footer-attlist"/>
        <ref name="style-handout-master-attlist"/>
        <zeroOrMore>
            <ref name="shape"/>
        </zeroOrMore>
    </element>
</define>
<define name="style-handout-master-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:presentation-page-layout-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-handout-master-attlist" combine="interleave">
    <attribute name="style:page-layout-name">
        <ref name="styleNameRef"/>
    </attribute>
</define>
<define name="style-handout-master-attlist" combine="interleave">
    <optional>
        <attribute name="draw:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="draw-layer-set">
    <element name="draw:layer-set">
        <zeroOrMore>
            <ref name="draw-layer"/>
        </zeroOrMore>
    </element>
</define>
<define name="draw-layer">
    <element name="draw:layer">
        <ref name="draw-layer-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
    </element>
</define>
<define name="draw-layer-attlist" combine="interleave">
    <attribute name="draw:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="draw-layer-attlist" combine="interleave">
    <optional>
        <attribute name="draw:protected">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-layer-attlist" combine="interleave">
    <optional>
        <attribute name="draw:display">
            <choice>
                <value>always</value>
                <value>screen</value>
                <value>printer</value>
                <value>none</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-page">
    <element name="draw:page">
        <ref name="common-presentation-header-footer-attlist"/>
        <ref name="draw-page-attlist"/>
		<optional>
			<ref name="svg-title"/>
		</optional>
		<optional>
			<ref name="svg-desc"/>
		</optional>
		<optional>
			<ref name="draw-layer-set"/>
		</optional>		
        <optional>
            <ref name="office-forms"/>
        </optional>
        <zeroOrMore>
            <ref name="shape"/>
        </zeroOrMore>
        <optional>
            <choice>
                <ref name="presentation-animations"/>
                <ref name="animation-element"/>
            </choice>
        </optional>
        <optional>
            <ref name="presentation-notes"/>
        </optional>
    </element>
</define>
<define name="draw-page-attlist" combine="interleave">
    <optional>
        <attribute name="draw:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-page-attlist" combine="interleave">
    <optional>
        <attribute name="draw:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="draw-page-attlist" combine="interleave">
    <attribute name="draw:master-page-name">
        <ref name="styleNameRef"/>
    </attribute>
</define>
<define name="draw-page-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:presentation-page-layout-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="common-presentation-header-footer-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:use-header-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-presentation-header-footer-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:use-footer-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-presentation-header-footer-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:use-date-time-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-page-attlist" combine="interleave">
    <optional>
        <attribute name="draw:id">
            <ref name="NCName"/>
        </attribute>
    </optional>
</define>
<define name="draw-page-attlist" combine="interleave">
    <optional>
        <attribute name="draw:nav-order">
            <ref name="IDREFS"/>
        </attribute>
    </optional>
</define>
<define name="draw-page-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="shape">
    <choice>
        <ref name="shape-instance"/>
        <ref name="draw-a"/>
    </choice>
</define>

<define name="shape-instance">
    <choice>
        <ref name="draw-rect"/>
        <ref name="draw-line"/>
        <ref name="draw-polyline"/>
        <ref name="draw-polygon"/>
        <ref name="draw-regular-polygon"/>
        <ref name="draw-path"/>
        <ref name="draw-circle"/>
        <ref name="draw-ellipse"/>
        <ref name="draw-g"/>
        <ref name="draw-page-thumbnail"/>
        <ref name="draw-frame"/>
        <ref name="draw-measure"/>
        <ref name="draw-caption"/>
        <ref name="draw-connector"/>
        <ref name="draw-control"/>
        <ref name="dr3d-scene"/>
        <ref name="draw-custom-shape"/>
    </choice>
</define>
<define name="draw-rect">
    <element name="draw:rect">
        <ref name="draw-rect-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>
<define name="draw-rect-attlist" combine="interleave">
    <choice>
        <optional>
            <attribute name="draw:corner-radius">
                <ref name="nonNegativeLength"/>
            </attribute>
        </optional>
        <group>
            <optional>
                <attribute name="svg:rx">
                    <ref name="nonNegativeLength"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="svg:ry">
                    <ref name="nonNegativeLength"/>
                </attribute>
            </optional>
        </group>
    </choice>
</define>
<define name="draw-line">
    <element name="draw:line">
        <ref name="draw-line-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>
<define name="draw-line-attlist" combine="interleave">
    <attribute name="svg:x1">
        <ref name="coordinate"/>
    </attribute>
    <attribute name="svg:y1">
        <ref name="coordinate"/>
    </attribute>
</define>
<define name="draw-line-attlist" combine="interleave">
    <attribute name="svg:x2">
        <ref name="coordinate"/>
    </attribute>
    <attribute name="svg:y2">
        <ref name="coordinate"/>
    </attribute>
</define>
<define name="draw-polyline">
    <element name="draw:polyline">
        <ref name="common-draw-points-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>
<define name="common-draw-points-attlist">
    <attribute name="draw:points">
        <ref name="points"/>
    </attribute>
</define>
<define name="draw-polygon">
    <element name="draw:polygon">
        <ref name="common-draw-points-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>
<define name="draw-regular-polygon">
    <element name="draw:regular-polygon">
        <ref name="draw-regular-polygon-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>
<define name="draw-regular-polygon-attlist" combine="interleave">
    <choice>
        <attribute name="draw:concave">
            <value>false</value>
        </attribute>
        <group>
            <attribute name="draw:concave">
                <value>true</value>
            </attribute>
            <ref name="draw-regular-polygon-sharpness-attlist"/>
        </group>
    </choice>
</define>
<define name="draw-regular-polygon-attlist" combine="interleave">
    <attribute name="draw:corners">
        <ref name="positiveInteger"/>
    </attribute>
</define>
<define name="draw-regular-polygon-sharpness-attlist">
    <attribute name="draw:sharpness">
        <ref name="percent"/>
    </attribute>
</define>
<define name="draw-path">
    <element name="draw:path">
        <ref name="common-draw-path-data-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>
<define name="common-draw-path-data-attlist">
    <attribute name="svg:d">
        <ref name="pathData"/>
    </attribute>
</define>
<define name="draw-circle">
    <element name="draw:circle">
        <ref name="draw-circle-attlist"/>
        <ref name="common-draw-circle-ellipse-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>
<define name="common-draw-circle-ellipse-attlist" combine="interleave">
    <optional>
        <attribute name="svg:cx">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:cy">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
<define name="draw-circle-attlist" combine="interleave">
    <optional>
        <attribute name="svg:r">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-circle-ellipse-attlist" combine="interleave">
    <optional>
        <attribute name="draw:kind">
            <choice>
                <value>full</value>
                <value>section</value>
                <value>cut</value>
                <value>arc</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-draw-circle-ellipse-attlist" combine="interleave">
    <optional>
        <attribute name="draw:start-angle">
            <ref name="angle"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-circle-ellipse-attlist" combine="interleave">
    <optional>
        <attribute name="draw:end-angle">
            <ref name="angle"/>
        </attribute>
    </optional>
</define>
<define name="draw-ellipse">
    <element name="draw:ellipse">
        <ref name="common-draw-circle-ellipse-attlist"/>
        <ref name="draw-ellipse-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>
<define name="draw-ellipse-attlist" combine="interleave">
    <optional>
        <attribute name="svg:rx">
            <ref name="length"/>
        </attribute>
        <attribute name="svg:ry">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="draw-connector">
    <element name="draw:connector">
        <ref name="draw-connector-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>
<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="draw:type">
            <choice>
                <value>standard</value>
                <value>lines</value>
                <value>line</value>
                <value>curve</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="svg:x1">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:y1">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="draw:start-shape">
            <ref name="IDREF"/>
        </attribute>
    </optional>
</define>
<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="draw:start-glue-point">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="svg:x2">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:y2">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="draw:end-shape">
            <ref name="IDREF"/>
        </attribute>
    </optional>
</define>
<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="draw:end-glue-point">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="draw:line-skew">
            <list>
                <ref name="length"/>
                <optional>
                    <ref name="length"/>
                    <optional>
                        <ref name="length"/>
                    </optional>
                </optional>
            </list>
        </attribute>
    </optional>
</define>
<define name="draw-connector-attlist" combine="interleave">
    <optional>
        <attribute name="svg:d">
            <ref name="pathData"/>
        </attribute>
    </optional>
</define>
<define name="draw-caption">
    <element name="draw:caption">
        <ref name="draw-caption-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>
<define name="draw-caption-attlist" combine="interleave">
    <optional>
        <attribute name="draw:caption-point-x">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="draw:caption-point-y">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
<define name="draw-caption-attlist" combine="interleave">
    <optional>
        <attribute name="draw:corner-radius">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>
<define name="draw-measure">
    <element name="draw:measure">
        <ref name="draw-measure-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
    </element>
</define>
<define name="draw-measure-attlist" combine="interleave">
    <attribute name="svg:x1">
        <ref name="coordinate"/>
    </attribute>
    <attribute name="svg:y1">
        <ref name="coordinate"/>
    </attribute>
</define>
<define name="draw-measure-attlist" combine="interleave">
    <attribute name="svg:x2">
        <ref name="coordinate"/>
    </attribute>
    <attribute name="svg:y2">
        <ref name="coordinate"/>
    </attribute>
</define>
<define name="draw-control">
    <element name="draw:control">
        <ref name="draw-control-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>    
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
    </element>
</define>
<define name="draw-control-attlist" combine="interleave">
    <attribute name="draw:control">
        <ref name="IDREF"/>
    </attribute>
</define>
<define name="draw-page-thumbnail">
    <element name="draw:page-thumbnail">
        <ref name="draw-page-thumbnail-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="presentation-shape-attlist"/>
        <ref name="common-draw-shape-with-styles-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
    </element>
</define>
<define name="draw-page-thumbnail-attlist">
    <optional>
        <attribute name="draw:page-number">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="draw-g">
    <element name="draw:g">
        <ref name="draw-g-attlist"/>
        <ref name="common-draw-z-index-attlist"/>
        <ref name="common-draw-name-attlist"/>
        <ref name="common-draw-id-attlist"/>
        <ref name="common-draw-style-name-attlist"/>
        <ref name="common-text-spreadsheet-shape-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="shape"/>
        </zeroOrMore>
    </element>
</define>
<define name="draw-g-attlist" combine="interleave">
    <optional>
        <attribute name="svg:y">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-name-attlist" combine="interleave">
    <optional>
        <attribute name="draw:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-caption-id-attlist" combine="interleave">
    <optional>
        <attribute name="draw:caption-id">
            <ref name="IDREF"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-position-attlist">
    <optional>
        <attribute name="svg:x">
            <ref name="coordinate"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:y">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-size-attlist">
    <optional>
        <attribute name="svg:width">
            <ref name="length"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:height">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-transform-attlist">
    <optional>
        <attribute name="draw:transform">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-viewbox-attlist">
    <attribute name="svg:viewBox">
        <list>
            <ref name="integer"/>
            <ref name="integer"/>
            <ref name="integer"/>
            <ref name="integer"/>
        </list>
    </attribute>
</define>
<define name="common-draw-style-name-attlist">
    <choice>
        <group>
            <optional>
                <attribute name="draw:style-name">
                    <ref name="styleNameRef"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="draw:class-names">
                    <ref name="styleNameRefs"/>
                </attribute>
            </optional>
        </group>
        <group>
            <optional>
                <attribute name="presentation:style-name">
                    <ref name="styleNameRef"/>
                </attribute>
            </optional>
            <optional>
                <attribute name="presentation:class-names">
                    <ref name="styleNameRefs"/>
                </attribute>
            </optional>
        </group>
    </choice>
</define>
<define name="common-draw-text-style-name-attlist">
    <optional>
        <attribute name="draw:text-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-layer-name-attlist">
    <optional>
        <attribute name="draw:layer">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-id-attlist" combine="interleave">
    <optional>
        <attribute name="draw:id">
            <ref name="NCName"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-id-attlist" combine="interleave">
    <optional>
	 	<ref name="xml-id"/>
    </optional>
</define>
<define name="common-draw-z-index-attlist">
    <optional>
        <attribute name="draw:z-index">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="common-text-spreadsheet-shape-attlist" combine="interleave">
    <optional>
        <attribute name="table:end-cell-address">
            <ref name="cellAddress"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="table:end-x">
            <ref name="coordinate"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="table:end-y">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
<define name="common-text-spreadsheet-shape-attlist" combine="interleave">
    <optional>
        <attribute name="table:table-background">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="common-text-spreadsheet-shape-attlist" combine="interleave">
    <ref name="common-text-anchor-attlist"/>
</define>

<define name="common-text-anchor-attlist" combine="interleave">
    <optional>
        <attribute name="text:anchor-type">
            <choice>
                <value>page</value>
                <value>frame</value>
                <value>paragraph</value>
                <value>char</value>
                <value>as-char</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-text-anchor-attlist" combine="interleave">
    <optional>
        <attribute name="text:anchor-page-number">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="draw-text">
    <zeroOrMore>
        <choice>
            <ref name="text-p"/>
            <ref name="text-list"/>
        </choice>
    </zeroOrMore>
</define>
<define name="common-draw-shape-with-styles-attlist">
    <ref name="common-draw-z-index-attlist"/>
    <ref name="common-draw-id-attlist"/>
    <ref name="common-draw-layer-name-attlist"/>
    <ref name="common-draw-style-name-attlist"/>
    <ref name="common-draw-transform-attlist"/>
    <ref name="common-draw-name-attlist"/>
    <ref name="common-text-spreadsheet-shape-attlist"/>
</define>
<define name="common-draw-shape-with-text-and-styles-attlist">
    <ref name="common-draw-shape-with-styles-attlist"/>
    <ref name="common-draw-text-style-name-attlist"/>
</define>
<define name="draw-glue-point">
    <element name="draw:glue-point">
        <ref name="draw-glue-point-attlist"/>
        <empty/>
    </element>
</define>
<define name="draw-glue-point-attlist" combine="interleave">
    <attribute name="draw:id">
        <ref name="nonNegativeInteger"/>
    </attribute>
</define>
<define name="draw-glue-point-attlist" combine="interleave">
    <attribute name="svg:x">
        <choice>
            <ref name="distance"/>
            <ref name="percent"/>
        </choice>
    </attribute>
    <attribute name="svg:y">
        <choice>
            <ref name="distance"/>
            <ref name="percent"/>
        </choice>
    </attribute>
</define>
<define name="draw-glue-point-attlist" combine="interleave">
    <optional>
        <attribute name="draw:align">
            <choice>
                <value>top-left</value>
                <value>top</value>
                <value>top-right</value>
                <value>left</value>
                <value>center</value>
                <value>right</value>
                <value>bottom-left</value>
                <value>bottom-right</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-glue-point-attlist" combine="interleave">
<!-- DRAFT7: the name of the defines was wrong -->
    <attribute name="draw:escape-direction">
        <choice>
            <value>auto</value>
            <value>left</value>
            <value>right</value>
            <value>up</value>
            <value>down</value>
            <value>horizontal</value>
            <value>vertical</value>
        </choice>
    </attribute>
</define>
<define name="svg-title">
    <element name="svg:title">
        <text/>
    </element>
</define>
<define name="svg-desc">
    <element name="svg:desc">
        <text/>
    </element>
</define>
<define name="draw-frame">
    <element name="draw:frame">
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-rel-size-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <ref name="presentation-shape-attlist"/>
        <ref name="draw-frame-attlist"/>
        <zeroOrMore>
            <choice>
                <ref name="draw-text-box"/>
                <ref name="draw-image"/>
                <ref name="draw-object"/>
                <ref name="draw-object-ole"/>
                <ref name="draw-applet"/>
                <ref name="draw-floating-frame"/>
                <ref name="draw-plugin"/>
                <ref name="table-table"/>
            </choice>
        </zeroOrMore>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <optional>
            <ref name="draw-image-map"/>
        </optional>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <choice>
                <ref name="draw-contour-polygon"/>
                <ref name="draw-contour-path"/>
            </choice>
        </optional>
    </element>
</define>
<define name="common-draw-rel-size-attlist">
    <ref name="common-draw-size-attlist"/>
    <optional>
        <attribute name="style:rel-width">
            <choice>
                <ref name="percent"/>
                <value>scale</value>
                <value>scale-min</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:rel-height">
            <choice>
                <ref name="percent"/>
                <value>scale</value>
                <value>scale-min</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-frame-attlist" combine="interleave">
    <optional>
        <attribute name="draw:copy-of">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-text-box">
    <element name="draw:text-box">
        <ref name="draw-text-box-attlist"/>
        <zeroOrMore>
            <ref name="text-content"/>
        </zeroOrMore>
    </element>
</define>
<define name="draw-text-box-attlist" combine="interleave">
    <optional>
        <attribute name="draw:chain-next-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-text-box-attlist" combine="interleave">
    <optional>
        <attribute name="draw:corner-radius">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>
<define name="draw-text-box-attlist" combine="interleave">
    <optional>
        <attribute name="fo:min-height">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:min-width">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-text-box-attlist" combine="interleave">
    <optional>
        <attribute name="fo:max-height">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:max-width">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-text-box-attlist" combine="interleave">
    <optional>
		<attribute name="text:id">
			<ref name="NCName"/>
		</attribute>
    </optional>
</define>
<define name="draw-text-box-attlist" combine="interleave">
    <optional>
	 	<ref name="xml-id"/>
    </optional>
</define>
<define name="draw-image">
    <element name="draw:image">
        <ref name="draw-image-attlist"/>
        <choice>
            <ref name="common-draw-data-attlist"/>
            <ref name="office-binary-data"/>
        </choice>
        <ref name="draw-text"/>
    </element>
</define>
<define name="common-draw-data-attlist" combine="interleave">
    <group>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
        <optional>
            <attribute name="xlink:type">
                <choice>
                    <value>simple</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:show">
                <choice>
                    <value>embed</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate">
                <choice>
                    <value>onLoad</value>
                </choice>
            </attribute>
        </optional>
    </group>
</define>

<define name="office-binary-data">
    <element name="office:binary-data">
        <ref name="base64Binary"/>
    </element>
</define>
<define name="draw-image-attlist" combine="interleave">
    <optional>
        <attribute name="draw:filter-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-image-attlist" combine="interleave">
    <optional>
	 	<ref name="xml-id"/>
    </optional>
</define>

<define name="draw-object">
    <element name="draw:object">
        <ref name="draw-object-attlist"/>
        <choice>
            <ref name="common-draw-data-attlist"/>
            <ref name="office-document"/>
            <ref name="math-math"/>
        </choice>
    </element>
</define>

<define name="draw-object-ole">
    <element name="draw:object-ole">
        <ref name="draw-object-ole-attlist"/>
        <choice>
            <ref name="common-draw-data-attlist"/>
            <ref name="office-binary-data"/>
        </choice>
    </element>
</define>
<define name="draw-object-attlist" combine="interleave">
    <optional>
        <attribute name="draw:notify-on-update-of-ranges">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-object-attlist" combine="interleave">
<!-- DRAFT8: Added xml:id for consistency reasons -->
    <optional>
	 	<ref name="xml-id"/>
    </optional>
</define>
<define name="draw-object-ole-attlist" combine="interleave">
    <optional>
        <attribute name="draw:class-id">
			<ref name="string"/>
		</attribute>
    </optional>
</define>
<define name="draw-object-ole-attlist" combine="interleave">
<!-- DRAFT8: Added xml:id for consistency reasons -->
    <optional>
	 	<ref name="xml-id"/>
    </optional>
</define>
<define name="draw-applet">
    <element name="draw:applet">
        <ref name="draw-applet-attlist"/>
        <optional>
            <ref name="common-draw-data-attlist"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-param"/>
        </zeroOrMore>
    </element>
</define>
<define name="draw-applet-attlist" combine="interleave">
    <optional>
        <attribute name="draw:code">
			<ref name="string"/>
		</attribute>
    </optional>
</define>
<define name="draw-applet-attlist" combine="interleave">
    <optional>
        <attribute name="draw:object">
			<ref name="string"/>
		</attribute>
    </optional>
</define>
<define name="draw-applet-attlist" combine="interleave">
    <optional>
        <attribute name="draw:archive">
			<ref name="string"/>
		</attribute>
    </optional>
</define>
<define name="draw-applet-attlist" combine="interleave">
    <optional>
        <attribute name="draw:may-script">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-applet-attlist" combine="interleave">
<!-- DRAFT8: Added xml:id for consistency reasons -->
    <optional>
	 	<ref name="xml-id"/>
    </optional>
</define>
<define name="draw-plugin">
    <element name="draw:plugin">
        <ref name="draw-plugin-attlist"/>
        <ref name="common-draw-data-attlist"/>
        <zeroOrMore>
            <ref name="draw-param"/>
        </zeroOrMore>
    </element>
</define>
<define name="draw-plugin-attlist" combine="interleave">
    <optional>
        <attribute name="draw:mime-type">
			<ref name="string"/>
		</attribute>
    </optional>
</define>
<define name="draw-plugin-attlist" combine="interleave">
<!-- DRAFT8: Added xml:id for consistency reasons -->
    <optional>
	 	<ref name="xml-id"/>
    </optional>
</define>
<define name="draw-param">
    <element name="draw:param">
        <ref name="draw-param-attlist"/>
        <empty/>
    </element>
</define>
<define name="draw-param-attlist" combine="interleave">
    <optional>
        <attribute name="draw:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-param-attlist" combine="interleave">
    <optional>
        <attribute name="draw:value">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-floating-frame">
    <element name="draw:floating-frame">
        <ref name="draw-floating-frame-attlist"/>
        <ref name="common-draw-data-attlist"/>
    </element>
</define>
<define name="draw-floating-frame-attlist" combine="interleave">
    <optional>
        <attribute name="draw:frame-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-floating-frame-attlist" combine="interleave">
<!-- DRAFT8: Added xml:id for consistency reasons -->
    <optional>
	 	<ref name="xml-id"/>
    </optional>
</define>
<define name="draw-contour-polygon">
    <element name="draw:contour-polygon">
        <ref name="common-contour-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-points-attlist"/>
        <empty/>
    </element>
</define>

<define name="draw-contour-path">
    <element name="draw:contour-path">
        <ref name="common-contour-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-path-data-attlist"/>
        <empty/>
    </element>
</define>
<define name="common-contour-attlist" combine="interleave">
    <attribute name="draw:recreate-on-edit">
        <ref name="boolean"/>
    </attribute>
</define>
<define name="draw-a">
    <element name="draw:a">
        <ref name="draw-a-attlist"/>
        <ref name="shape-instance"/>
    </element>
</define>
<define name="draw-a-attlist" combine="interleave">
    <attribute name="xlink:href">
        <ref name="anyURI"/>
    </attribute>
    <optional>
        <attribute name="xlink:type">
            <value>simple</value>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:actuate">
            <choice>
                <value>onRequest</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-a-attlist" combine="interleave">
    <optional>
        <attribute name="office:target-frame-name">
            <ref name="targetFrameName"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:show">
            <choice>
                <value>new</value>
                <value>replace</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-a-attlist" combine="interleave">
    <optional>
        <attribute name="office:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-a-attlist" combine="interleave">
    <optional>
        <attribute name="office:title">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-a-attlist" combine="interleave">
    <optional>
        <attribute name="office:server-map">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-a-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="draw-image-map">
    <element name="draw:image-map">
        <zeroOrMore>
            <choice>
                <ref name="draw-area-rectangle"/>
                <ref name="draw-area-circle"/>
                <ref name="draw-area-polygon"/>
            </choice>
        </zeroOrMore>
    </element>
</define>
<define name="draw-area-rectangle">
    <element name="draw:area-rectangle">
        <ref name="common-draw-area-attlist"/>
        <attribute name="svg:x">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:y">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:width">
            <ref name="length"/>
        </attribute>
        <attribute name="svg:height">
            <ref name="length"/>
        </attribute>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
    </element>
</define>
<define name="draw-area-circle">
    <element name="draw:area-circle">
        <ref name="common-draw-area-attlist"/>
        <attribute name="svg:cx">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:cy">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:r">
            <ref name="length"/>
        </attribute>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
    </element>
</define>
<define name="draw-area-polygon">
    <element name="draw:area-polygon">
        <ref name="common-draw-area-attlist"/>
        <attribute name="svg:x">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:y">
            <ref name="coordinate"/>
        </attribute>
        <attribute name="svg:width">
            <ref name="length"/>
        </attribute>
        <attribute name="svg:height">
            <ref name="length"/>
        </attribute>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-points-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
    </element>
</define>
<define name="common-draw-area-attlist" combine="interleave">
    <optional>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:type">
            <choice>
                <value>simple</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="office:target-frame-name">
            <ref name="targetFrameName"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:show">
            <choice>
                <value>new</value>
                <value>replace</value>
            </choice>
            </attribute>
    </optional>
</define>
<define name="common-draw-area-attlist" combine="interleave">
    <optional>
        <attribute name="office:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-area-attlist" combine="interleave">
    <optional>
        <attribute name="draw:nohref">
            <choice>
                <value>nohref</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="dr3d-scene">
    <element name="dr3d:scene">
        <ref name="dr3d-scene-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-style-name-attlist"/>
        <ref name="common-draw-z-index-attlist"/>
        <ref name="common-draw-id-attlist"/>
        <ref name="common-draw-layer-name-attlist"/>
        <ref name="common-text-spreadsheet-shape-attlist"/>
        <ref name="common-dr3d-transform-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <zeroOrMore>
            <ref name="dr3d-light"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="shapes3d"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
    </element>
</define>

<define name="shapes3d">
    <choice>
        <ref name="dr3d-scene"/>
        <ref name="dr3d-extrude"/>
        <ref name="dr3d-sphere"/>
        <ref name="dr3d-rotate"/>
        <ref name="dr3d-cube"/>
    </choice>
</define>
<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:vrp">
            <ref name="vector3D"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="dr3d:vpn">
            <ref name="vector3D"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="dr3d:vup">
            <ref name="vector3D"/>
        </attribute>
    </optional>
</define>
<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:projection">
            <choice>
                <value>parallel</value>
                <value>perspective</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:distance">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:focal-length">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:shadow-slant">
            <ref name="angle"/>
        </attribute>
    </optional>
</define>
<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:shade-mode">
            <choice>
                <value>flat</value>
                <value>phong</value>
                <value>gouraud</value>
                <value>draft</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:ambient-color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="dr3d-scene-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:lighting-mode">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="common-dr3d-transform-attlist">
    <optional>
        <attribute name="dr3d:transform">
			<ref name="string"/>
		</attribute>
    </optional>
</define>
<define name="dr3d-light">
    <element name="dr3d:light">
        <ref name="dr3d-light-attlist"/>
        <empty/>
    </element>
</define>
<define name="dr3d-light-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:diffuse-color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="dr3d-light-attlist" combine="interleave">
    <attribute name="dr3d:direction">
        <ref name="vector3D"/>
    </attribute>
</define>
<define name="dr3d-light-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:enabled">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="dr3d-light-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:specular">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="dr3d-cube">
    <element name="dr3d:cube">
        <ref name="dr3d-cube-attlist"/>
        <ref name="common-draw-z-index-attlist"/>
        <ref name="common-draw-id-attlist"/>
        <ref name="common-draw-layer-name-attlist"/>
        <ref name="common-draw-style-name-attlist"/>
        <ref name="common-dr3d-transform-attlist"/>
        <empty/>
    </element>
</define>
<define name="dr3d-cube-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:min-edge">
            <ref name="vector3D"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="dr3d:max-edge">
            <ref name="vector3D"/>
        </attribute>
    </optional>
</define>
<define name="dr3d-sphere">
    <element name="dr3d:sphere">
        <ref name="dr3d-sphere-attlist"/>
        <ref name="common-draw-z-index-attlist"/>
        <ref name="common-draw-id-attlist"/>
        <ref name="common-draw-layer-name-attlist"/>
        <ref name="common-draw-style-name-attlist"/>
        <ref name="common-dr3d-transform-attlist"/>
        <empty/>
    </element>
</define>
<define name="dr3d-sphere-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:center">
            <ref name="vector3D"/>
        </attribute>
    </optional>
</define>
<define name="dr3d-sphere-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:size">
            <ref name="vector3D"/>
        </attribute>
    </optional>
</define>
<define name="dr3d-extrude">
    <element name="dr3d:extrude">
        <ref name="common-draw-path-data-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-id-attlist"/>
        <ref name="common-draw-z-index-attlist"/>
        <ref name="common-draw-layer-name-attlist"/>
        <ref name="common-draw-style-name-attlist"/>
        <ref name="common-dr3d-transform-attlist"/>
        <empty/>
    </element>
</define>
<define name="dr3d-rotate">
    <element name="dr3d:rotate">
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-path-data-attlist"/>
        <ref name="common-draw-z-index-attlist"/>
        <ref name="common-draw-id-attlist"/>
        <ref name="common-draw-layer-name-attlist"/>
        <ref name="common-draw-style-name-attlist"/>
        <ref name="common-dr3d-transform-attlist"/>
        <empty/>
    </element>
</define>
<define name="draw-custom-shape">
    <element name="draw:custom-shape">
        <ref name="draw-custom-shape-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <ref name="common-draw-caption-id-attlist"/>
        <optional>
            <ref name="svg-title"/>
        </optional>
        <optional>
            <ref name="svg-desc"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <ref name="draw-glue-point"/>
        </zeroOrMore>
        <ref name="draw-text"/>
        <optional>
            <ref name="draw-enhanced-geometry"/>
        </optional>
    </element>
</define>
<define name="draw-custom-shape-attlist" combine="interleave">
    <optional>
        <attribute name="draw:engine">
            <ref name="namespacedToken"/>
        </attribute>
    </optional>
</define>
<define name="draw-custom-shape-attlist" combine="interleave">
    <optional>
        <attribute name="draw:data">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry">
    <element name="draw:enhanced-geometry">
        <ref name="draw-enhanced-geometry-attlist"/>
        <zeroOrMore>
            <ref name="draw-equation"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="draw-handle"/>
        </zeroOrMore>
    </element>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:type">
            <ref name="custom-shape-type"/>
        </attribute>
    </optional>
</define>

<define name="custom-shape-type">
    <choice>
        <value>non-primitive</value>
        <ref name="string"/>
    </choice>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="svg:viewBox">
            <list>
                <ref name="integer"/>
                <ref name="integer"/>
                <ref name="integer"/>
                <ref name="integer"/>
            </list>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:mirror-vertical">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:mirror-horizontal">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-rotate-angle">
            <ref name="angle"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-allowed">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-path-allowed">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:concentric-gradient-fill-allowed"
                   >
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-brightness">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-depth">
            <list>
                <ref name="length"/>
                <ref name="double"/>
            </list>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-diffusion">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-number-of-line-segments"
                  >
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-light-face">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-first-light-harsh"
                  >
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-second-light-harsh"
                  >
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-first-light-level"
                  >
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-second-light-level"
                  >
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-first-light-direction"
                  >
            <ref name="vector3D"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-second-light-direction"
                  >
            <ref name="vector3D"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-metal">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:shade-mode">
            <choice>
                <value>flat</value>
                <value>phong</value>
                <value>gouraud</value>
                <value>draft</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-rotation-angle">
            <list>
	            <ref name="angle"/>
	            <ref name="angle"/>
            </list>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-rotation-center">
            <ref name="vector3D"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-shininess">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-skew">
            <list>
	            <ref name="double"/>
	            <ref name="angle"/>
            </list>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-specularity">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:projection">
            <choice>
                <value>parallel</value>
                <value>perspective</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-viewpoint"
                  >
            <ref name="point3D"/>
        </attribute>
    </optional>
</define>

<define name="point3D">
    <data type="string">
        <param name="pattern">\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))){2}[ ]*\)</param>


    </data>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-origin">
            <list>
                <ref name="extrusionOrigin"/>
                <ref name="extrusionOrigin"/>
            </list>
        </attribute>
    </optional>
</define>

<define name="extrusionOrigin">
    <data type="double">
        <param name="minInclusive">-0.5</param>
        <param name="maxInclusive">0.5</param>
    </data>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:extrusion-color">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:enhanced-path">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:path-stretchpoint-x">
            <ref name="double"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:path-stretchpoint-y">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-areas">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:glue-points">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:glue-point-type">
            <choice>
                <value>none</value>
                <value>segments</value>
                <value>rectangle</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:glue-point-leaving-directions">
			<ref name="string"/>
		</attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-path">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-path-mode">
            <choice>
                <value>normal</value>
                <value>path</value>
                <value>shape</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-path-scale">
            <choice>
                <value>path</value>
                <value>shape</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:text-path-same-letter-heights"
                  >
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-enhanced-geometry-attlist" combine="interleave">
    <optional>
        <attribute name="draw:modifiers">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-equation">
    <element name="draw:equation">
        <ref name="draw-equation-attlist"/>
        <empty/>
    </element>
</define>
<define name="draw-equation-attlist" combine="interleave">
    <optional>
        <attribute name="draw:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-equation-attlist" combine="interleave">
    <optional>
        <attribute name="draw:formula">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-handle">
    <element name="draw:handle">
        <ref name="draw-handle-attlist"/>
        <empty/>
    </element>
</define>
<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-mirror-vertical">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-mirror-horizontal">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-switched">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="draw-handle-attlist" combine="interleave">
    <attribute name="draw:handle-position">
        <ref name="string"/>
    </attribute>
</define>
<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-range-x-minimum">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-range-x-maximum">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-range-y-minimum">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-range-y-maximum">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-polar">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-radius-range-minimum">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-handle-attlist" combine="interleave">
    <optional>
        <attribute name="draw:handle-radius-range-maximum">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="presentation-shape-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:class">
            <ref name="presentation-classes"/>
        </attribute>
    </optional>
</define>
<define name="presentation-classes">
    <choice>
        <value>title</value>
        <value>outline</value>
        <value>subtitle</value>
        <value>text</value>
        <value>graphic</value>
        <value>object</value>
        <value>chart</value>
        <value>table</value>
        <value>orgchart</value>
        <value>page</value>
        <value>notes</value>
        <value>handout</value>
        <value>header</value>
        <value>footer</value>
        <value>date-time</value>
        <value>page-number</value>
    </choice>
</define>
<define name="presentation-shape-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:placeholder">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="presentation-shape-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:user-transformed">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="presentation-animations">
    <element name="presentation:animations">
        <zeroOrMore>
            <choice>
                <ref name="presentation-animation-elements"/>
                <ref name="presentation-animation-group"/>
            </choice>
        </zeroOrMore>
    </element>
</define>
<define name="presentation-animation-elements">
    <choice>
        <ref name="presentation-show-shape"/>
        <ref name="presentation-show-text"/>
        <ref name="presentation-hide-shape"/>
        <ref name="presentation-hide-text"/>
        <ref name="presentation-dim"/>
        <ref name="presentation-play"/>
    </choice>
</define>
<define name="presentation-sound">
    <element name="presentation:sound">
        <ref name="presentation-sound-attlist"/>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
        <optional>
            <attribute name="xlink:type">
                <choice>
                    <value>simple</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate">
                <choice>
                    <value>onRequest</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:show">
                <choice>
                    <value>new</value>
                    <value>replace</value>
                </choice>
            </attribute>
        </optional>
        <empty/>
    </element>
</define>
<define name="presentation-sound-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:play-full">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="presentation-sound-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="presentation-show-shape">
    <element name="presentation:show-shape">
        <ref name="common-presentation-effect-attlist"/>
        <optional>
            <ref name="presentation-sound"/>
        </optional>
    </element>
</define>
<define name="common-presentation-effect-attlist" combine="interleave">
    <attribute name="draw:shape-id">
        <ref name="IDREF"/>
    </attribute>
</define>
<define name="common-presentation-effect-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:effect">
            <ref name="presentationEffects"/>
        </attribute>
    </optional>
</define>
<define name="presentationEffects">
    <choice>
        <value>none</value>
        <value>fade</value>
        <value>move</value>
        <value>stripes</value>
        <value>open</value>
        <value>close</value>
        <value>dissolve</value>
        <value>wavyline</value>
        <value>random</value>
        <value>lines</value>
        <value>laser</value>
        <value>appear</value>
        <value>hide</value>
        <value>move-short</value>
        <value>checkerboard</value>
        <value>rotate</value>
        <value>stretch</value>
    </choice>
</define>
<define name="common-presentation-effect-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:direction">
            <ref name="presentationEffectDirections"/>
        </attribute>
    </optional>
</define>
<define name="presentationEffectDirections">
    <choice>
        <value>none</value>
        <value>from-left</value>
        <value>from-top</value>
        <value>from-right</value>
        <value>from-bottom</value>
        <value>from-center</value>
        <value>from-upper-left</value>
        <value>from-upper-right</value>
        <value>from-lower-left</value>
        <value>from-lower-right</value>
        <value>to-left</value>
        <value>to-top</value>
        <value>to-right</value>
        <value>to-bottom</value>
        <value>to-upper-left</value>
        <value>to-upper-right</value>
        <value>to-lower-right</value>
        <value>to-lower-left</value>
        <value>path</value>
        <value>spiral-inward-left</value>
        <value>spiral-inward-right</value>
        <value>spiral-outward-left</value>
        <value>spiral-outward-right</value>
        <value>vertical</value>
        <value>horizontal</value>
        <value>to-center</value>
        <value>clockwise</value>
        <value>counter-clockwise</value>
    </choice>
</define>
<define name="common-presentation-effect-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:speed">
            <ref name="presentationSpeeds"/>
        </attribute>
    </optional>
</define>
<define name="presentationSpeeds">
    <choice>
        <value>slow</value>
        <value>medium</value>
        <value>fast</value>
    </choice>
</define>
<define name="common-presentation-effect-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:delay">
            <ref name="duration"/>
        </attribute>
    </optional>
</define>
<define name="common-presentation-effect-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:start-scale">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="common-presentation-effect-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:path-id">
			<ref name="string"/>
		</attribute>
    </optional>
</define>
<define name="presentation-show-text">
    <element name="presentation:show-text">
        <ref name="common-presentation-effect-attlist"/>
        <optional>
            <ref name="presentation-sound"/>
        </optional>
    </element>
</define>
<define name="presentation-hide-shape">
    <element name="presentation:hide-shape">
        <ref name="common-presentation-effect-attlist"/>
        <optional>
            <ref name="presentation-sound"/>
        </optional>
    </element>
</define>
<define name="presentation-hide-text">
    <element name="presentation:hide-text">
        <ref name="common-presentation-effect-attlist"/>
        <optional>
            <ref name="presentation-sound"/>
        </optional>
    </element>
</define>
<define name="presentation-dim">
    <element name="presentation:dim">
        <ref name="presentation-dim-attlist"/>
        <optional>
            <ref name="presentation-sound"/>
        </optional>
    </element>
</define>
<define name="presentation-dim-attlist" combine="interleave">
    <attribute name="draw:shape-id">
        <ref name="IDREF"/>
    </attribute>
</define>
<define name="presentation-dim-attlist" combine="interleave">
    <attribute name="draw:color">
        <ref name="color"/>
    </attribute>
</define>
<define name="presentation-play">
    <element name="presentation:play">
        <ref name="presentation-play-attlist"/>
        <empty/>
    </element>
</define>
<define name="presentation-play-attlist" combine="interleave">
    <attribute name="draw:shape-id">
        <ref name="IDREF"/>
    </attribute>
    <optional>
        <attribute name="presentation:speed">
            <ref name="presentationSpeeds"/>
        </attribute>
    </optional>
</define>
<define name="presentation-animation-group">
    <element name="presentation:animation-group">
        <zeroOrMore>
            <ref name="presentation-animation-elements"/>
        </zeroOrMore>
    </element>
</define>
<define name="common-anim-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:node-type">
            <choice>
                <value>default</value>
                <value>on-click</value>
                <value>with-previous</value>
                <value>after-previous</value>
                <value>timing-root</value>
                <value>main-sequence</value>
                <value>interactive-sequence</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-anim-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:preset-id">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-anim-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:preset-sub-type">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-anim-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:preset-class">
            <choice>
                <value>custom</value>
                <value>entrance</value>
                <value>exit</value>
                <value>emphasis</value>
                <value>motion-path</value>
                <value>ole-action</value>
                <value>media-call</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-anim-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:master-element">
            <ref name="IDREF"/>
        </attribute>
    </optional>
</define>
<define name="common-anim-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:group-id">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="presentation-event-listener">
    <element name="presentation:event-listener">
        <ref name="presentation-event-listener-attlist"/>
        <optional>
            <ref name="presentation-sound"/>
        </optional>
    </element>
</define>
<define name="presentation-event-listener-attlist" combine="interleave">
    <attribute name="script:event-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="presentation-event-listener-attlist" combine="interleave">
    <attribute name="presentation:action">
        <choice>
            <value>none</value>
            <value>previous-page</value>
            <value>next-page</value>
            <value>first-page</value>
            <value>last-page</value>
            <value>hide</value>
            <value>stop</value>
            <value>execute</value>
            <value>show</value>
            <value>verb</value>
            <value>fade-out</value>
            <value>sound</value>
            <value>last-visited-page</value>
        </choice>
    </attribute>
</define>
<define name="presentation-event-listener-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:effect">
            <ref name="presentationEffects"/>
        </attribute>
    </optional>
</define>
<define name="presentation-event-listener-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:direction">
            <ref name="presentationEffectDirections"/>
        </attribute>
    </optional>
</define>
<define name="presentation-event-listener-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:speed">
            <ref name="presentationSpeeds"/>
        </attribute>
    </optional>
</define>
<define name="presentation-event-listener-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:start-scale">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="presentation-event-listener-attlist" combine="interleave">
    <optional>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:type">
            <choice>
                <value>simple</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:show">
            <choice>
                <value>embed</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:actuate">
            <choice>
                <value>onRequest</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="presentation-event-listener-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:verb">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="paragraph-content" combine="choice">
    <element name="presentation:header">
        <empty/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="presentation:footer">
        <empty/>
    </element>
</define>
<define name="paragraph-content" combine="choice">
    <element name="presentation:date-time">
        <empty/>
    </element>
</define>
<define name="presentation-decls">
    <zeroOrMore>
        <ref name="presentation-decl"/>
    </zeroOrMore>
</define>
<define name="presentation-decl" combine="choice">
    <element name="presentation:header-decl">
        <ref name="presentation-header-decl-attlist"/>
        <text/>
    </element>
</define>
<define name="presentation-header-decl-attlist" combine="interleave">
    <attribute name="presentation:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="presentation-decl" combine="choice">
    <element name="presentation:footer-decl">
        <ref name="presentation-footer-decl-attlist"/>
        <text/>
    </element>
</define>
<define name="presentation-footer-decl-attlist" combine="interleave">
    <attribute name="presentation:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="presentation-decl" combine="choice">
    <element name="presentation:date-time-decl">
        <ref name="presentation-date-time-decl-attlist"/>
        <text/>
    </element>
</define>
<define name="presentation-date-time-decl-attlist" combine="interleave">
    <attribute name="presentation:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="presentation-date-time-decl-attlist" combine="interleave">
    <attribute name="presentation:source">
        <choice>
            <value>fixed</value>
            <value>current-date</value>
        </choice>
    </attribute>
</define>
<define name="presentation-date-time-decl-attlist" combine="interleave">
    <optional>
        <attribute name="style:data-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="presentation-settings">
    <optional>
        <element name="presentation:settings">
            <ref name="presentation-settings-attlist"/>
            <zeroOrMore>
                <ref name="presentation-show"/>
            </zeroOrMore>
        </element>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:start-page">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:show">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:full-screen">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:endless">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:pause">
            <ref name="duration"/>
        </attribute>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:show-logo">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:force-manual">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:mouse-visible">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:mouse-as-pen">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:start-with-navigator"
                  >
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:animations">
            <choice>
                <value>enabled</value>
                <value>disabled</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:transition-on-click"
                  >
            <choice>
                <value>enabled</value>
                <value>disabled</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:stay-on-top">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="presentation-settings-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:show-end-of-presentation-slide"
                  >
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="presentation-show">
    <element name="presentation:show">
        <ref name="presentation-show-attlist"/>
        <empty/>
    </element>
</define>
<define name="presentation-show-attlist" combine="interleave">
    <attribute name="presentation:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="presentation-show-attlist" combine="interleave">
    <attribute name="presentation:pages">
		<ref name="string"/>
	</attribute>
</define>
<define name="chart-chart">
    <element name="chart:chart">
        <ref name="chart-chart-attlist"/>
        <optional>
            <ref name="chart-title"/>
        </optional>
        <optional>
            <ref name="chart-subtitle"/>
        </optional>
        <optional>
            <ref name="chart-footer"/>
        </optional>
        <optional>
            <ref name="chart-legend"/>
        </optional>
        <ref name="chart-plot-area"/>
        <optional>
            <ref name="table-table"/>
        </optional>
    </element>
</define>
<define name="chart-chart-attlist" combine="interleave">
    <attribute name="chart:class">
        <ref name="namespacedToken"/>
    </attribute>
</define>
<define name="chart-chart-attlist" combine="interleave">
    <ref name="common-draw-size-attlist"/>
</define>
<define name="chart-chart-attlist" combine="interleave">
    <optional>
        <attribute name="chart:column-mapping">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="chart-chart-attlist" combine="interleave">
    <optional>
        <attribute name="chart:row-mapping">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="chart-chart-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-chart-attlist" combine="interleave">
     <optional>
         <group>
             <attribute name="xlink:href">
                 <ref name="anyURI"/>
             </attribute>
             <attribute name="xlink:type">
                 <value>simple</value>
             </attribute>
         </group>
     </optional>
</define>
<define name="chart-chart-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="chart-title">
    <element name="chart:title">
        <ref name="chart-title-attlist"/>
        <optional>
            <ref name="text-p"/>
        </optional>
    </element>
</define>
<define name="chart-title-attlist" combine="interleave">
    <optional>
        <attribute name="table:cell-range">
            <ref name="cellRangeAddressList"/>
        </attribute>
    </optional>
</define>
<define name="chart-title-attlist" combine="interleave">
    <ref name="common-draw-position-attlist"/>
</define>
<define name="chart-title-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-subtitle">
    <element name="chart:subtitle">
        <ref name="chart-title-attlist"/>
        <optional>
            <ref name="text-p"/>
        </optional>
    </element>
</define>
<define name="chart-footer">
    <element name="chart:footer">
        <ref name="chart-title-attlist"/>
        <optional>
            <ref name="text-p"/>
        </optional>
    </element>
</define>
<define name="chart-legend">
    <element name="chart:legend">
        <ref name="chart-legend-attlist"/>
		<optional>
			<ref name="text-p"/>
		</optional>
    </element>
</define>
<define name="chart-legend-attlist" combine="interleave">
    <choice>
        <group>
            <attribute name="chart:legend-position">
                <choice>
                    <value>start</value>
                    <value>end</value>
                    <value>top</value>
                    <value>bottom</value>
                </choice>
            </attribute>
            <optional>
                <attribute name="chart:legend-align">
                    <choice>
                        <value>start</value>
                        <value>center</value>
                        <value>end</value>
                    </choice>
                </attribute>
            </optional>
        </group>
        <attribute name="chart:legend-position">
            <choice>
                <value>top-start</value>
                <value>bottom-start</value>
                <value>top-end</value>
                <value>bottom-end</value>
            </choice>
        </attribute>
        <empty/>
    </choice>
</define>
<define name="chart-legend-attlist" combine="interleave">
    <ref name="common-draw-position-attlist"/>
</define>
<define name="chart-legend-attlist" combine="interleave">
    <choice>
        <attribute name="style:legend-expansion">
            <choice>
                <value>wide</value>
                <value>high</value>
                <value>balanced</value>
            </choice>
        </attribute>
        <group>
            <attribute name="style:legend-expansion">
                <value>custom</value>
            </attribute>
            <attribute name="style:legend-expansion-aspect-ratio">
                <ref name="double"/>
            </attribute>
        </group>
        <empty/>
    </choice>
</define>
<define name="chart-legend-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-plot-area">
    <element name="chart:plot-area">
        <ref name="chart-plot-area-attlist"/>
        <zeroOrMore>
            <ref name="dr3d-light"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="chart-axis"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="chart-series"/>
        </zeroOrMore>
        <optional>
            <ref name="chart-stock-gain-marker"/>
        </optional>
        <optional>
            <ref name="chart-stock-loss-marker"/>
        </optional>
        <optional>
            <ref name="chart-stock-range-line"/>
        </optional>
        <optional>
            <ref name="chart-wall"/>
        </optional>
        <optional>
            <ref name="chart-floor"/>
        </optional>
    </element>
</define>
<define name="chart-plot-area-attlist" combine="interleave">
    <ref name="common-draw-position-attlist"/>
    <ref name="common-draw-size-attlist"/>
</define>
<define name="chart-plot-area-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-plot-area-attlist" combine="interleave">
    <optional>
        <attribute name="table:cell-range-address">
            <ref name="cellRangeAddressList"/>
        </attribute>
    </optional>
</define>
<define name="chart-plot-area-attlist" combine="interleave">
    <optional>
        <attribute name="chart:data-source-has-labels">
            <choice>
                <value>none</value>
                <value>row</value>
                <value>column</value>
                <value>both</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="chart-plot-area-attlist" combine="interleave">
    <ref name="dr3d-scene-attlist"/>
    <ref name="common-dr3d-transform-attlist"/>
</define>
<define name="chart-plot-area-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="chart-wall">
    <element name="chart:wall">
        <ref name="chart-wall-attlist"/>
        <empty/>
    </element>
</define>
<define name="chart-wall-attlist" combine="interleave">
    <optional>
        <attribute name="svg:width">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="chart-wall-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-floor">
    <element name="chart:floor">
        <ref name="chart-floor-attlist"/>
        <empty/>
    </element>
</define>
<define name="chart-floor-attlist" combine="interleave">
    <optional>
        <attribute name="svg:width">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="chart-floor-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-axis">
    <element name="chart:axis">
        <ref name="chart-axis-attlist"/>
        <optional>
            <ref name="chart-title"/>
        </optional>
        <optional>
            <ref name="chart-categories"/>
        </optional>
        <zeroOrMore>
            <ref name="chart-grid"/>
        </zeroOrMore>
    </element>
</define>
<define name="chart-axis-attlist" combine="interleave">
    <attribute name="chart:dimension">
		<ref name="chart-dimension"/>
    </attribute>
</define>
<define name="chart-dimension">
    <choice>
        <value>x</value>
        <value>y</value>
        <value>z</value>
    </choice>
</define>
<define name="chart-axis-attlist" combine="interleave">
    <optional>
        <attribute name="chart:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="chart-axis-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-categories">
    <element name="chart:categories">
    <optional>
        <attribute name="table:cell-range-address">
            <ref name="cellRangeAddressList"/>
        </attribute>
    </optional>
    </element>
</define>
<define name="chart-grid">
    <element name="chart:grid">
        <ref name="chart-grid-attlist"/>
    </element>
</define>
<define name="chart-grid-attlist" combine="interleave">
    <optional>
        <attribute name="chart:class">
            <choice>
                <value>major</value>
                <value>minor</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="chart-grid-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-series">
    <element name="chart:series">
        <ref name="chart-series-attlist"/>
        <zeroOrMore>
            <ref name="chart-domain"/>
        </zeroOrMore>
        <optional>
            <ref name="chart-mean-value"/>
        </optional>
        <optional>
            <ref name="chart-regression-curve"/>
        </optional>
        <zeroOrMore>
            <ref name="chart-error-indicator"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="chart-data-point"/>
        </zeroOrMore>
		<optional>
			<ref name="chart-data-label"/>
		</optional>
    </element>
</define>
<define name="chart-series-attlist" combine="interleave">
    <optional>
        <attribute name="chart:values-cell-range-address">
            <ref name="cellRangeAddressList"/>
        </attribute>
    </optional>
</define>
<define name="chart-series-attlist" combine="interleave">
    <optional>
        <attribute name="chart:label-cell-address">
            <ref name="cellRangeAddressList"/>
        </attribute>
    </optional>
</define>
<define name="chart-series-attlist" combine="interleave">
    <optional>
        <attribute name="chart:class">
            <ref name="namespacedToken"/>
        </attribute>
    </optional>
</define>
<define name="chart-series-attlist" combine="interleave">
    <optional>
        <attribute name="chart:attached-axis">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="chart-series-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-series-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="chart-domain">
    <element name="chart:domain">
        <optional>
            <attribute name="table:cell-range-address">
                <ref name="cellRangeAddressList"/>
            </attribute>
        </optional>
    </element>
</define>
<define name="chart-data-point">
    <element name="chart:data-point">
        <ref name="chart-data-point-attlist"/>
		<optional>
			<ref name="chart-data-label"/>
		</optional>
    </element>
</define>
<define name="chart-data-point-attlist" combine="interleave">
    <optional>
        <attribute name="chart:repeated">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="chart-data-point-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-data-point-attlist" combine="interleave">
	<optional>
	 	<ref name="xml-id"/>
	</optional>
</define>
<define name="chart-data-label">
	<element name="chart:data-label">
		<ref name="chart-data-label-attlist"/>
		<optional>
			<ref name="text-p"/>
		</optional>
	</element>
</define>
<define name="chart-data-label-attlist" combine="interleave">
	<ref name="common-draw-position-attlist"/>
</define>
<define name="chart-data-label-attlist" combine="interleave">
	<optional>
		<attribute name="chart:style-name">
			<ref name="styleNameRef"/>
		</attribute>
	</optional>
</define>
<define name="chart-mean-value">
    <element name="chart:mean-value">
        <ref name="chart-mean-value-attlist"/>
        <empty/>
    </element>
</define>
<define name="chart-mean-value-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-error-indicator">
    <element name="chart:error-indicator">
        <ref name="chart-error-indicator-attlist"/>
        <empty/>
    </element>
</define>
<define name="chart-error-indicator-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-error-indicator-attlist" combine="interleave">
	<attribute name="chart:dimension">
		<ref name="chart-dimension"/>
	</attribute>
</define>
<define name="chart-error-indicator-attlist" combine="interleave">
    <optional>
        <attribute name="chart:error-lower-range">
            <ref name="cellRangeAddress"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:error-upper-range">
            <ref name="cellRangeAddress"/>
        </attribute>
    </optional>
</define>
<define name="chart-regression-curve">
    <element name="chart:regression-curve">
        <ref name="chart-regression-curve-attlist"/>
        <optional>
            <ref name="chart-equation"/>
        </optional>
    </element>
</define>
<define name="chart-regression-curve-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-equation">
    <element name="chart:equation">
        <ref name="chart-equation-attlist"/>
        <optional>
            <ref name="text-p"/>
        </optional>
    </element>
</define>
<define name="chart-equation-attlist" combine="interleave">
    <optional>
        <attribute name="chart:automatic-content">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="chart-equation-attlist" combine="interleave">
    <optional>
        <attribute name="chart:display-r-square">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="chart-equation-attlist" combine="interleave">
	<optional>
		<attribute name="chart:display-equation">
			<ref name="boolean"/>
		</attribute>
	</optional>
</define>
<define name="chart-equation-attlist" combine="interleave">
    <ref name="common-draw-position-attlist"/>
</define>
<define name="chart-equation-attlist" combine="interleave">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="chart-stock-gain-marker">
    <element name="chart:stock-gain-marker">
        <ref name="common-stock-marker-attlist"/>
    </element>
</define>
<define name="chart-stock-loss-marker">
    <element name="chart:stock-loss-marker">
        <ref name="common-stock-marker-attlist"/>
    </element>
</define>
<define name="chart-stock-range-line">
    <element name="chart:stock-range-line">
        <ref name="common-stock-marker-attlist"/>
    </element>
</define>
<define name="common-stock-marker-attlist">
    <optional>
        <attribute name="chart:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="office-database">
    <element name="office:database">
        <ref name="db-data-source"/>
        <optional>
            <ref name="db-forms"/>
        </optional>
        <optional>
            <ref name="db-reports"/>
        </optional>
        <optional>
            <ref name="db-queries"/>
        </optional>
        <optional>
            <ref name="db-table-presentations"/>
        </optional>
        <optional>
            <ref name="db-schema-definition"/>
        </optional>
    </element>
</define>
<define name="db-data-source">
    <element name="db:data-source">
        <ref name="db-data-source-attlist"/>
        <ref name="db-connection-data"/>
        <optional>
            <ref name="db-driver-settings"/>
        </optional>
        <optional>
            <ref name="db-application-connection-settings"/>
        </optional>
    </element>
</define>
<define name="db-data-source-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-connection-data">
    <element name="db:connection-data">
        <ref name="db-connection-data-attlist"/>
        <choice>
            <ref name="db-database-description"/>
            <ref name="db-connection-resource"/>
            <ref name="db-compound-database"/>
        </choice>
        <optional>
            <ref name="db-login"/>
        </optional>
    </element>
</define>
<define name="db-connection-data-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-database-description">
    <element name="db:database-description">
        <ref name="db-database-description-attlist"/>
        <choice>
            <ref name="db-file-based-database"/>
            <ref name="db-server-database"/>
        </choice>
    </element>
</define>
<define name="db-database-description-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-file-based-database">
    <element name="db:file-based-database">
        <ref name="db-file-based-database-attlist"/>
    </element>
</define>
<define name="db-file-based-database-attlist" combine="interleave">
    <attribute name="xlink:href">
        <ref name="anyURI"/>
    </attribute>
    <optional>
        <attribute name="xlink:type">
            <choice>
                <value>simple</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="db-file-based-database-attlist" combine="interleave">
    <attribute name="db:media-type">
        <ref name="string"/>
    </attribute>
</define>
<define name="db-file-based-database-attlist" combine="interleave">
    <optional>
        <attribute name="db:extension">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-server-database">
    <element name="db:server-database">
        <ref name="db-server-database-attlist"/>
        <empty/>
    </element>
</define>
<define name="db-server-database-attlist" combine="interleave">
    <attribute name="db:type">
        <ref name="namespacedToken"/>
    </attribute>
</define>
<define name="db-server-database-attlist" combine="interleave">
    <choice>
        <ref name="db-host-and-port"/>
        <ref name="db-local-socket-name"/>
    </choice>
</define>
<define name="db-host-and-port">
    <attribute name="db:hostname">
        <ref name="string"/>
    </attribute>
    <optional>
        <attribute name="db:port">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="db-local-socket-name">
    <optional>
        <attribute name="db:local-socket">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-server-database-attlist" combine="interleave">
    <optional>
        <attribute name="db:database-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-connection-resource">
    <element name="db:connection-resource">
        <ref name="db-connection-resource-attlist"/>
        <empty/>
    </element>
</define>
<define name="db-connection-resource-attlist" combine="interleave">
    <attribute name="xlink:href">
        <ref name="anyURI"/>
    </attribute>
    <optional>
        <attribute name="xlink:type">
            <choice>
                <value>simple</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:show">
            <choice>
                <value>none</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:actuate">
            <choice>
                <value>onRequest</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="db-compound-database">
    <element name="db:compound-database">
        <ref name="db-compound-database-attlist"/>
        <empty/>
    </element>
</define>
<define name="db-compound-database-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-login">
    <element name="db:login">
        <ref name="db-login-attlist"/>
        <empty/>
    </element>
</define>
<define name="db-login-attlist" combine="interleave">
    <optional>
        <choice>
            <attribute name="db:user-name">
                <ref name="string"/>
            </attribute>
            <attribute name="db:use-system-user">
                <ref name="boolean"/>
            </attribute>
        </choice>
    </optional>
</define>
<define name="db-login-attlist" combine="interleave">
    <optional>
        <attribute name="db:is-password-required">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-login-attlist" combine="interleave">
    <optional>
        <attribute name="db:login-timeout">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="db-driver-settings">
    <element name="db:driver-settings">
        <ref name="db-driver-settings-attlist"/>
        <optional>
            <ref name="db-java-classpath"/>
        </optional>
        <optional>
            <ref name="db-auto-increment"/>
        </optional>
        <optional>
            <ref name="db-delimiter"/>
        </optional>
        <optional>
            <ref name="db-character-set"/>
        </optional>
        <optional>
            <ref name="db-table-settings"/>
        </optional>
    </element>
</define>
<define name="db-driver-settings-attlist" combine="interleave">
    <optional>
        <attribute name="db:java-driver-class">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-driver-settings-attlist" combine="interleave">
    <ref name="db-show-deleted"/>
</define>
<define name="db-show-deleted">
    <optional>
        <attribute name="db:show-deleted">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-driver-settings-attlist" combine="interleave">
    <optional>
        <attribute name="db:system-driver-settings">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-driver-settings-attlist" combine="interleave">
    <optional>
        <attribute name="db:base-dn">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-driver-settings-attlist" combine="interleave">
    <ref name="db-is-first-row-header-line"/>
</define>
<define name="db-is-first-row-header-line">
    <optional>
        <attribute name="db:is-first-row-header-line">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-driver-settings-attlist" combine="interleave">
    <optional>
        <attribute name="db:parameter-name-substitution">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-java-classpath">
    <oneOrMore>
        <element name="db:java-classpath">
            <attribute name="xlink:href">
                <ref name="anyURI"/>
            </attribute>
            <optional>
        <attribute name="xlink:type">
            <value>simple</value>
        </attribute>
        </optional>        
            <optional>
                <attribute name="xlink:show">
                    <choice>
                        <value>none</value>
                    </choice>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:actuate">
                    <choice>
                        <value>onRequest</value>
                    </choice>
                </attribute>
            </optional>
        </element>
    </oneOrMore>
</define>
<define name="db-auto-increment">
    <element name="db:auto-increment">
        <ref name="db-auto-increment-attlist"/>
        <empty/>
    </element>
</define>
<define name="db-auto-increment-attlist" combine="interleave">
    <optional>
        <attribute name="db:additional-column-statement">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-auto-increment-attlist" combine="interleave">
    <optional>
        <attribute name="db:row-retrieving-statement">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-delimiter">
    <element name="db:delimiter">
        <ref name="db-delimiter-attlist"/>
        <empty/>
    </element>
</define>
<define name="db-delimiter-attlist" combine="interleave">
    <optional>
        <attribute name="db:field">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-delimiter-attlist" combine="interleave">
    <optional>
        <attribute name="db:string">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-delimiter-attlist" combine="interleave">
    <optional>
        <attribute name="db:decimal">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-delimiter-attlist" combine="interleave">
    <optional>
        <attribute name="db:thousand">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-character-set">
    <element name="db:character-set">
        <ref name="db-character-set-attlist"/>
        <empty/>
    </element>
</define>
<define name="db-character-set-attlist" combine="interleave">
    <optional>
        <attribute name="db:encoding">
            <ref name="textEncoding"/>
        </attribute>
    </optional>
</define>
<define name="db-table-settings">
    <element name="db:table-settings">
        <zeroOrMore>
            <ref name="db-table-setting"/>
        </zeroOrMore>
    </element>
</define>
<define name="db-table-setting">
    <element name="db:table-setting">
        <ref name="db-table-setting-attlist"/>
        <optional>
            <ref name="db-delimiter"/>
        </optional>
        <optional>
            <ref name="db-character-set"/>
        </optional>
        <empty/>
    </element>
</define>
<define name="db-table-setting-attlist" combine="interleave">
    <ref name="db-is-first-row-header-line"/>
    <ref name="db-show-deleted"/>
</define>
<define name="db-application-connection-settings">
    <element name="db:application-connection-settings">
        <ref name="db-application-connection-settings-attlist"/>
        <optional>
            <ref name="db-table-filter"/>
        </optional>
        <optional>
            <ref name="db-table-type-filter"/>
        </optional>
        <optional>
            <ref name="db-data-source-settings"/>
        </optional>
    </element>
</define>
<define name="db-application-connection-settings-attlist" combine="interleave">
    <optional>
        <attribute name="db:is-table-name-length-limited">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-application-connection-settings-attlist" combine="interleave">
    <optional>
        <attribute name="db:enable-sql92-check">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-application-connection-settings-attlist" combine="interleave">
    <optional>
        <attribute name="db:append-table-alias-name">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-application-connection-settings-attlist" combine="interleave">
    <optional>
        <attribute name="db:ignore-driver-privileges">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-application-connection-settings-attlist" combine="interleave">
    <optional>
        <attribute name="db:boolean-comparison-mode"
                  >
            <choice>
                <value>equal-integer</value>
                <value>is-boolean</value>
                <value>equal-boolean</value>
                <value>equal-use-only-zero</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="db-application-connection-settings-attlist" combine="interleave">
    <optional>
        <attribute name="db:use-catalog">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-application-connection-settings-attlist" combine="interleave">
    <optional>
        <attribute name="db:max-row-count">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="db-application-connection-settings-attlist" combine="interleave">
    <optional>
        <attribute name="db:suppress-version-columns">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-table-filter">
    <element name="db:table-filter">
        <ref name="db-table-filter-attlist"/>
        <optional>
            <ref name="db-table-include-filter"/>
        </optional>
        <optional>
            <ref name="db-table-exclude-filter"/>
        </optional>
    </element>
</define>
<define name="db-table-filter-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-table-include-filter">
    <element name="db:table-include-filter">
        <ref name="db-table-include-filter-attlist"/>
        <oneOrMore>
            <ref name="db-table-filter-pattern"/>
        </oneOrMore>
    </element>
</define>
<define name="db-table-include-filter-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-table-exclude-filter">
    <element name="db:table-exclude-filter">
        <ref name="db-table-exclude-filter-attlist"/>
        <oneOrMore>
            <ref name="db-table-filter-pattern"/>
        </oneOrMore>
    </element>
</define>
<define name="db-table-exclude-filter-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-table-filter-pattern">
    <element name="db:table-filter-pattern">
        <ref name="db-table-filter-pattern-attlist"/>
        <ref name="string"/>
    </element>
</define>
<define name="db-table-filter-pattern-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-table-type-filter">
    <element name="db:table-type-filter">
        <ref name="db-table-type-filter-attlist"/>
        <zeroOrMore>
            <ref name="db-table-type"/>
        </zeroOrMore>
    </element>
</define>
<define name="db-table-type-filter-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-table-type">
    <element name="db:table-type">
        <ref name="db-table-type-attlist"/>
        <ref name="string"/>
    </element>
</define>
<define name="db-table-type-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-data-source-settings">
    <element name="db:data-source-settings">
        <ref name="db-data-source-settings-attlist"/>
        <oneOrMore>
            <ref name="db-data-source-setting"/>
        </oneOrMore>
    </element>
</define>
<define name="db-data-source-settings-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-data-source-setting">
    <element name="db:data-source-setting">
        <ref name="db-data-source-setting-attlist"/>
        <oneOrMore>
            <ref name="db-data-source-setting-value"/>
        </oneOrMore>
    </element>
</define>
<define name="db-data-source-setting-attlist" combine="interleave">
    <optional>
        <attribute name="db:data-source-setting-is-list">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-data-source-setting-attlist" combine="interleave">
    <attribute name="db:data-source-setting-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="db-data-source-setting-attlist" combine="interleave">
    <attribute name="db:data-source-setting-type">
        <ref name="db-data-source-setting-types"/>
    </attribute>
</define>
<define name="db-data-source-setting-types" combine="choice">
    <choice>
        <value>boolean</value>
        <value>short</value>
        <value>int</value>
        <value>long</value>
        <value>double</value>
        <value>string</value>
    </choice>
</define>
<define name="db-data-source-setting-value">
    <element name="db:data-source-setting-value">
        <ref name="db-data-source-setting-value-attlist"/>
        <ref name="string"/>
    </element>
</define>
<define name="db-data-source-setting-value-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-forms">
    <element name="db:forms">
        <ref name="db-forms-attlist"/>
        <zeroOrMore>
            <choice>
                <ref name="db-component"/>
                <ref name="db-component-collection"/>
            </choice>
        </zeroOrMore>
    </element>
</define>
<define name="db-forms-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-reports">
    <element name="db:reports">
        <ref name="db-reports-attlist"/>
        <zeroOrMore>
            <choice>
                <ref name="db-component"/>
                <ref name="db-component-collection"/>
            </choice>
        </zeroOrMore>
    </element>
</define>
<define name="db-reports-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-component-collection">
    <element name="db:component-collection">
        <ref name="db-component-collection-attlist"/>
        <ref name="common-db-object-name"/>
        <ref name="common-db-object-title"/>
        <ref name="common-db-object-description"/>
        <zeroOrMore>
            <choice>
                <ref name="db-component"/>
                <ref name="db-component-collection"/>
            </choice>
        </zeroOrMore>
    </element>
</define>
<define name="db-component-collection-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-component">
    <element name="db:component">
        <ref name="db-component-attlist"/>
        <ref name="common-db-object-name"/>
        <ref name="common-db-object-title"/>
        <ref name="common-db-object-description"/>
        <optional>
            <choice>
                <ref name="office-document"/>
                <ref name="math-math"/>
            </choice>
        </optional>
    </element>
</define>
<define name="db-component-attlist" combine="interleave">
    <optional>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:type">
            <choice>
                <value>simple</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:show">
            <choice>
                <value>none</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:actuate">
            <choice>
                <value>onRequest</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="db-component-attlist" combine="interleave">
    <optional>
        <attribute name="db:as-template">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-queries">
    <element name="db:queries">
        <ref name="db-queries-attlist"/>
        <zeroOrMore>
            <choice>
                <ref name="db-query"/>
                <ref name="db-query-collection"/>
            </choice>
        </zeroOrMore>
    </element>
</define>
<define name="db-queries-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-query-collection">
    <element name="db:query-collection">
        <ref name="db-query-collection-attlist"/>
        <ref name="common-db-object-name"/>
        <ref name="common-db-object-title"/>
        <ref name="common-db-object-description"/>
        <zeroOrMore>
            <choice>
                <ref name="db-query"/>
                <ref name="db-query-collection"/>
            </choice>
        </zeroOrMore>
    </element>
</define>
<define name="db-query-collection-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-query">
    <element name="db:query">
        <ref name="db-query-attlist"/>
        <ref name="common-db-object-name"/>
        <ref name="common-db-object-title"/>
        <ref name="common-db-object-description"/>
        <ref name="common-db-table-style-name"/>
        <optional>
            <ref name="db-order-statement"/>
        </optional>
        <optional>
            <ref name="db-filter-statement"/>
        </optional>
        <optional>
            <ref name="db-columns"/>
        </optional>
        <optional>
            <ref name="db-update-table"/>
        </optional>
    </element>
</define>
<define name="db-query-attlist" combine="interleave">
    <attribute name="db:command">
        <ref name="string"/>
    </attribute>
</define>
<define name="db-query-attlist" combine="interleave">
    <optional>
        <attribute name="db:escape-processing">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-order-statement">
    <element name="db:order-statement">
        <ref name="db-command"/>
        <ref name="db-apply-command"/>
        <empty/>
    </element>
</define>
<define name="db-filter-statement">
    <element name="db:filter-statement">
        <ref name="db-command"/>
        <ref name="db-apply-command"/>
        <empty/>
    </element>
</define>
<define name="db-update-table">
    <element name="db:update-table">
        <ref name="common-db-table-name-attlist"/>
    </element>
</define>
<define name="db-table-presentations">
    <element name="db:table-representations">
        <ref name="db-table-presentations-attlist"/>
        <zeroOrMore>
            <ref name="db-table-presentation"/>
        </zeroOrMore>
    </element>
</define>
<define name="db-table-presentations-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-table-presentation">
    <element name="db:table-representation">
        <ref name="db-table-presentation-attlist"/>
        <ref name="common-db-table-name-attlist"/>
        <ref name="common-db-object-title"/>
        <ref name="common-db-object-description"/>
        <ref name="common-db-table-style-name"/>
        <optional>
            <ref name="db-order-statement"/>
        </optional>
        <optional>
            <ref name="db-filter-statement"/>
        </optional>
        <optional>
            <ref name="db-columns"/>
        </optional>
    </element>
</define>
<define name="db-table-presentation-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-columns">    
    <element name="db:columns">
        <ref name="db-columns-attlist"/>
        <oneOrMore>
            <ref name="db-column"/>
        </oneOrMore>
    </element>
</define>
<define name="db-columns-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-column">    
    <element name="db:column">
        <ref name="db-column-attlist"/>
        <ref name="common-db-object-name"/>
        <ref name="common-db-object-title"/>
        <ref name="common-db-object-description"/>
        <ref name="common-db-default-value"/>
    </element>
</define>
<define name="db-column-attlist" combine="interleave">    
    <optional>
        <attribute name="db:visible">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-column-attlist" combine="interleave">    
    <optional>
        <attribute name="db:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="db-column-attlist" combine="interleave">
    <optional>
        <attribute name="db:default-cell-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="db-command">
    <attribute name="db:command">
        <ref name="string"/>
    </attribute>
</define>
<define name="db-apply-command">
    <optional>
        <attribute name="db:apply-command">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="common-db-table-name-attlist" combine="interleave">
    <attribute name="db:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="common-db-table-name-attlist" combine="interleave">
    <optional>
        <attribute name="db:catalog-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-db-table-name-attlist" combine="interleave">
    <optional>
        <attribute name="db:schema-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-db-object-name">    
    <attribute name="db:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="common-db-object-title">
    <optional>
        <attribute name="db:title">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-db-object-description">
    <optional>
        <attribute name="db:description">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-db-table-style-name">
    <optional>
        <attribute name="db:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="common-db-table-style-name" combine="interleave">
    <optional>
        <attribute name="db:default-row-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="common-db-default-value">
    <optional>
        <ref name="common-value-and-type-attlist"/>
    </optional>
</define>
<define name="db-schema-definition">    
    <element name="db:schema-definition">
        <ref name="db-schema-definition-attlist"/>
        <ref name="db-table-definitions"/>
    </element>
</define>
<define name="db-schema-definition-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-table-definitions">    
    <element name="db:table-definitions">
        <ref name="db-table-definitions-attlist"/>
        <zeroOrMore>
            <ref name="db-table-definition"/>
        </zeroOrMore>
    </element>
</define>
<define name="db-table-definitions-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-table-definition">    
    <element name="db:table-definition">
        <ref name="common-db-table-name-attlist"/>
        <ref name="db-table-definition-attlist"/>
        <ref name="db-column-definitions"/>
        <optional>
            <ref name="db-keys"/>
        </optional>
        <optional>
            <ref name="db-indices"/>
        </optional>
    </element>
</define>
<define name="db-table-definition-attlist" combine="interleave">    
    <optional>
        <attribute name="db:type">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-column-definitions">
    <element name="db:column-definitions">
        <ref name="db-column-definitions-attlist"/>
        <oneOrMore>
            <ref name="db-column-definition"/>
        </oneOrMore>
    </element>
</define>
<define name="db-column-definitions-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-column-definition">
    <element name="db:column-definition">
        <ref name="db-column-definition-attlist"/>
        <ref name="common-db-default-value"/>
    </element>
</define>
<define name="db-column-definition-attlist" combine="interleave">
    <attribute name="db:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="db-column-definition-attlist" combine="interleave">    
    <optional>
        <attribute name="db:data-type">
            <ref name="db-data-types"/>
        </attribute>
    </optional>
</define>
<define name="db-data-types" combine="choice">
    <choice>
        <value>bit</value>
        <value>boolean</value>
        <value>tinyint</value>
        <value>smallint</value>
        <value>integer</value>
        <value>bigint</value>
        <value>float</value>
        <value>real</value>
        <value>double</value>
        <value>numeric</value>
        <value>decimal</value>
        <value>char</value>
        <value>varchar</value>
        <value>longvarchar</value>
        <value>date</value>
        <value>time</value>
        <value>timestmp</value>
        <value>binary</value>
        <value>varbinary</value>
        <value>longvarbinary</value>
        <value>sqlnull</value>
        <value>other</value>
        <value>object</value>
        <value>distinct</value>
        <value>struct</value>
        <value>array</value>
        <value>blob</value>
        <value>clob</value>
        <value>ref</value>
    </choice>
</define>
<define name="db-column-definition-attlist" combine="interleave">    
    <optional>
        <attribute name="db:type-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-column-definition-attlist" combine="interleave">    
    <optional>
        <attribute name="db:precision">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="db-column-definition-attlist" combine="interleave">    
    <optional>
        <attribute name="db:scale">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="db-column-definition-attlist" combine="interleave">    
    <optional>
        <attribute name="db:is-nullable">
            <choice>
                <value>no-nulls</value>
                <value>nullable</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="db-column-definition-attlist" combine="interleave">    
    <optional>
        <attribute name="db:is-empty-allowed">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-column-definition-attlist" combine="interleave">    
    <optional>
        <attribute name="db:is-autoincrement">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-keys">
    <element name="db:keys">
        <ref name="db-keys-attlist"/>
        <oneOrMore>
            <ref name="db-key"/>
        </oneOrMore>
    </element>
</define>
<define name="db-keys-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-key">
    <element name="db:key">
        <ref name="db-key-attlist"/>
        <oneOrMore>
            <ref name="db-key-columns"/>
        </oneOrMore>
    </element>
</define>
<define name="db-key-attlist" combine="interleave">
    <optional>
        <attribute name="db:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-key-attlist" combine="interleave">    
    <attribute name="db:type">
        <choice>
            <value>primary</value>
            <value>unique</value>
            <value>foreign</value>
        </choice>
    </attribute>
</define>
<define name="db-key-attlist" combine="interleave">    
    <optional>
        <attribute name="db:referenced-table-name">
			<ref name="string"/>
		</attribute>
    </optional>
</define>
<define name="db-key-attlist" combine="interleave">    
    <optional>
        <attribute name="db:update-rule">
            <choice>
                <value>cascade</value>
                <value>restrict</value>
                <value>set-null</value>
                <value>no-action</value>
                <value>set-default</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="db-key-attlist" combine="interleave">    
    <optional>
        <attribute name="db:delete-rule">
            <choice>
                <value>cascade</value>
                <value>restrict</value>
                <value>set-null</value>
                <value>no-action</value>
                <value>set-default</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="db-key-columns">
    <element name="db:key-columns">
        <ref name="db-key-columns-attlist"/>
        <oneOrMore>
            <ref name="db-key-column"/>
        </oneOrMore>
    </element>
</define>
<define name="db-key-columns-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-key-column">
    <element name="db:key-column">
        <ref name="db-key-column-attlist"/>
        <empty/>
    </element>
</define>
<define name="db-key-column-attlist" combine="interleave">
    <optional>
        <attribute name="db:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-key-column-attlist" combine="interleave">    
    <optional>
        <attribute name="db:related-column-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-indices">
    <element name="db:indices">
        <ref name="db-indices-attlist"/>
        <oneOrMore>
            <ref name="db-index"/>
        </oneOrMore>
    </element>
</define>
<define name="db-indices-attlist" combine="interleave">
    <empty/>
</define>
<define name="db-index">
    <element name="db:index">
        <ref name="db-index-attlist"/>
        <oneOrMore>
            <ref name="db-index-columns"/>
        </oneOrMore>
    </element>
</define>
<define name="db-index-attlist" combine="interleave">
    <attribute name="db:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="db-index-attlist" combine="interleave">    
    <optional>
        <attribute name="db:catalog-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="db-index-attlist" combine="interleave">    
    <optional>
        <attribute name="db:is-unique">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-index-attlist" combine="interleave">    
    <optional>
        <attribute name="db:is-clustered">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="db-index-columns">
    <element name="db:index-columns">
        <oneOrMore>
            <ref name="db-index-column"/>
        </oneOrMore>
    </element>
</define>
<define name="db-index-column">
    <element name="db:index-column">
        <ref name="db-index-column-attlist"/>
        <empty/>
    </element>
</define>
<define name="db-index-column-attlist" combine="interleave">
    <attribute name="db:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="db-index-column-attlist" combine="interleave">    
    <attribute name="db:is-ascending">
        <ref name="boolean"/>
    </attribute>
</define>
<define name="office-forms">
    <optional>
        <element name="office:forms">
            <ref name="office-forms-attlist"/>
            <zeroOrMore>
                <choice>
                    <ref name="form-form"/>
                    <ref name="xforms-model"/>
                </choice>
            </zeroOrMore>
        </element>
    </optional>
</define>
<define name="office-forms-attlist" combine="interleave">
    <optional>
        <attribute name="form:automatic-focus">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="office-forms-attlist" combine="interleave">
    <optional>
        <attribute name="form:apply-design-mode">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="form-form">
    <element name="form:form">
        <ref name="common-form-control-attlist"/>
        <ref name="form-form-attlist"/>
        <optional>
            <ref name="form-properties"/>
        </optional>
        <optional>
            <ref name="office-event-listeners"/>
        </optional>
        <zeroOrMore>
            <choice>
                <ref name="controls"/>
                <ref name="form-form"/>
            </choice>
        </zeroOrMore>
        <optional>
            <ref name="form-connection-resource"/>
        </optional>
    </element>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
        <optional>
            <attribute name="xlink:type">
                <value>simple</value>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate">
                <value>onRequest</value>
            </attribute>
        </optional>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="office:target-frame">
            <ref name="targetFrameName"/>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:method">
            <choice>
                <value>get</value>
                <value>post</value>
                <ref name="string"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:enctype"
                   >
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:allow-deletes">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:allow-inserts">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:allow-updates">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:apply-filter">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:command-type">
            <choice>
                <value>table</value>
                <value>query</value>
                <value>command</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:command">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:datasource">
            <choice>
                <ref name="anyURI"/>
                <ref name="string"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:master-fields">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:detail-fields">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:escape-processing">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:filter">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:ignore-result">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:navigation-mode">
            <ref name="navigation"/>
        </attribute>
    </optional>
</define>

<define name="navigation">
    <choice>
        <value>none</value>
        <value>current</value>
        <value>parent</value>
    </choice>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:order">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="form-form-attlist" combine="interleave">
    <optional>
        <attribute name="form:tab-cycle">
            <ref name="tab-cycles"/>
        </attribute>
    </optional>
</define>
<define name="tab-cycles">
    <choice>
        <value>records</value>
        <value>current</value>
        <value>page</value>
    </choice>
</define>
<define name="form-connection-resource">
    <element name="form:connection-resource">
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
        <empty/>
    </element>
</define>
<define name="xforms-model">
    <element name="xforms:model">
        <ref name="anyAttListOrElements"/>
    </element>
</define>
<define name="column-controls" combine="choice">
    <element name="form:text">
        <ref name="form-text-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="controls" combine="choice">
    <ref name="column-controls"/>
</define>
<define name="form-text-attlist">
    <ref name="form-control-attlist"/>
    <ref name="common-current-value-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-convert-empty-attlist"/>
    <ref name="common-data-field-attlist"/>
    <ref name="common-linked-cell"/>
</define>
<define name="form-control-attlist">
    <ref name="common-form-control-attlist"/>
    <ref name="common-control-id-attlist"/>
    <ref name="xforms-bind-attlist"/>
</define>
<define name="common-form-control-content">
    <optional>
        <ref name="form-properties"/>
    </optional>
    <optional>
        <ref name="office-event-listeners"/>
    </optional>
</define>
<define name="column-controls" combine="choice">
    <element name="form:textarea">
        <ref name="form-textarea-attlist"/>
        <ref name="common-form-control-content"/>
        <zeroOrMore>
            <ref name="text-p"/>
        </zeroOrMore>
    </element>
</define>
<define name="form-textarea-attlist">
    <ref name="form-control-attlist"/>
    <ref name="common-current-value-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-convert-empty-attlist"/>
    <ref name="common-data-field-attlist"/>
    <ref name="common-linked-cell"/>
</define>
<define name="controls" combine="choice">
    <element name="form:password">
        <ref name="form-password-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-password-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-convert-empty-attlist"/>
    <ref name="common-linked-cell"/>
</define>
<define name="form-password-attlist" combine="interleave">
    <optional>
        <attribute name="form:echo-char">
            <ref name="character"/>
        </attribute>
    </optional>
</define>
<define name="controls" combine="choice">
    <element name="form:file">
        <ref name="form-file-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-file-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-current-value-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-linked-cell"/>
</define>
<define name="column-controls" combine="choice">
    <element name="form:formatted-text">
        <ref name="form-formatted-text-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-formatted-text-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-current-value-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-convert-empty-attlist"/>
    <ref name="common-data-field-attlist"/>
    <ref name="common-linked-cell"/>
    <ref name="common-spin-button"/>
    <ref name="common-repeat"/>
    <ref name="common-delay-for-repeat"/>
</define>
<define name="form-formatted-text-attlist" combine="interleave">
    <optional>
        <attribute name="form:max-value">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="form-formatted-text-attlist" combine="interleave">
    <optional>
        <attribute name="form:min-value">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="form-formatted-text-attlist" combine="interleave">
    <optional>
        <attribute name="form:validation">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="column-controls" combine="choice">
    <element name="form:number">
        <ref name="form-number-attlist"/>
        <ref name="common-numeric-control-attlist"/>
        <ref name="common-form-control-content"/>
        <ref name="common-linked-cell"/>
    <ref name="common-spin-button"/>
    <ref name="common-repeat"/>
    <ref name="common-delay-for-repeat"/>
    </element>
</define>
<define name="common-numeric-control-attlist">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-convert-empty-attlist"/>
    <ref name="common-data-field-attlist"/>
</define>
<define name="form-number-attlist" combine="interleave">
    <optional>
        <attribute name="form:value">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="form-number-attlist" combine="interleave">
    <optional>
        <attribute name="form:current-value">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="form-number-attlist" combine="interleave">
    <optional>
        <attribute name="form:min-value">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="form-number-attlist" combine="interleave">
    <optional>
        <attribute name="form:max-value">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="column-controls" combine="choice">
    <element name="form:date">
        <ref name="form-date-attlist"/>
        <ref name="common-numeric-control-attlist"/>
        <ref name="common-form-control-content"/>
        <ref name="common-linked-cell"/>
        <ref name="common-spin-button"/>
        <ref name="common-repeat"/>
        <ref name="common-delay-for-repeat"/>
    </element>
</define>
<define name="column-controls" combine="choice">
    <element name="form:time">
        <ref name="form-time-attlist"/>
        <ref name="common-numeric-control-attlist"/>
        <ref name="common-form-control-content"/>
        <ref name="common-linked-cell"/>
        <ref name="common-spin-button"/>
        <ref name="common-repeat"/>
        <ref name="common-delay-for-repeat"/>
    </element>
</define>
<define name="form-date-attlist" combine="interleave">
    <optional>
        <attribute name="form:value">
            <ref name="date"/>
        </attribute>
    </optional>
</define>
<define name="form-time-attlist" combine="interleave">
    <optional>
        <attribute name="form:value">
            <ref name="time"/>
        </attribute>
    </optional>
</define>
<define name="form-date-attlist" combine="interleave">
    <optional>
        <attribute name="form:current-value">
            <ref name="date"/>
        </attribute>
    </optional>
</define>
<define name="form-time-attlist" combine="interleave">
    <optional>
        <attribute name="form:current-value">
            <ref name="time"/>
        </attribute>
    </optional>
</define>
<define name="form-date-attlist" combine="interleave">
    <optional>
        <attribute name="form:min-value">
            <ref name="date"/>
        </attribute>
    </optional>
</define>
<define name="form-time-attlist" combine="interleave">
    <optional>
        <attribute name="form:min-value">
            <ref name="time"/>
        </attribute>
    </optional>
</define>
<define name="form-date-attlist" combine="interleave">
    <optional>
        <attribute name="form:max-value">
            <ref name="date"/>
        </attribute>
    </optional>
</define>
<define name="form-time-attlist" combine="interleave">
    <optional>
        <attribute name="form:max-value">
            <ref name="time"/>
        </attribute>
    </optional>
</define>
<define name="controls" combine="choice">
    <element name="form:fixed-text">
        <ref name="form-fixed-text-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-fixed-text-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="for"/>
    <ref name="common-disabled-attlist"/>
    <ref name="label"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-title-attlist"/>
</define>
<define name="form-fixed-text-attlist" combine="interleave">
    <optional>
        <attribute name="form:multi-line">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="column-controls" combine="choice">
    <element name="form:combobox">
        <ref name="form-combobox-attlist"/>
        <ref name="common-form-control-content"/>
        <zeroOrMore>
            <ref name="form-item"/>
        </zeroOrMore>
    </element>
</define>
<define name="form-combobox-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-current-value-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="dropdown"/>
    <ref name="common-maxlength-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="size"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-convert-empty-attlist"/>
    <ref name="common-data-field-attlist"/>
    <ref name="list-source"/>
    <ref name="list-source-type"/>
    <ref name="common-linked-cell"/>
    <ref name="common-source-cell-range"/>
</define>
<define name="form-combobox-attlist" combine="interleave">
    <optional>
        <attribute name="form:auto-complete">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="form-item">
    <element name="form:item">
        <ref name="form-item-attlist"/>
        <text/>
    </element>
</define>
<define name="form-item-attlist" combine="interleave">
    <ref name="label"/>
</define>
<define name="column-controls" combine="choice">
    <element name="form:listbox">
        <ref name="form-listbox-attlist"/>
        <ref name="common-form-control-content"/>
        <zeroOrMore>
            <ref name="form-option"/>
        </zeroOrMore>
    </element>
</define>
<define name="form-listbox-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="dropdown"/>
    <ref name="common-printable-attlist"/>
    <ref name="size"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="bound-column"/>
    <ref name="common-data-field-attlist"/>
    <ref name="list-source"/>
    <ref name="list-source-type"/>
    <ref name="common-linked-cell"/>
    <ref name="list-linkage-type"/>
    <ref name="common-source-cell-range"/>
</define>
<define name="form-listbox-attlist" combine="interleave">
    <optional>
        <attribute name="form:multiple">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="form-listbox-attlist" combine="interleave">
    <optional>
        <attribute name="form:xforms-list-source">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="list-linkage-type" combine="interleave">
    <optional>
        <attribute name="form:list-linkage-type">
            <choice>
                <value>selection</value>
                <value>selection-indexes</value>
            </choice >
        </attribute>
    </optional>
</define>
<define name="form-option">
    <element name="form:option">
        <ref name="form-option-attlist"/>
        <text/>
    </element>
</define>
<define name="form-option-attlist" combine="interleave">
    <ref name="current-selected"/>
    <ref name="selected"/>
    <ref name="label"/>
    <ref name="common-value-attlist"/>
</define>
<define name="controls" combine="choice">
    <element name="form:button">
        <ref name="form-button-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-button-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="button-type"/>
    <ref name="common-disabled-attlist"/>
    <ref name="label"/>
    <ref name="image-data"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="target-frame"/>
    <ref name="target-location"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-form-relative-image-position-attlist"/>
        <ref name="common-repeat"/>
        <ref name="common-delay-for-repeat"/>
</define>
<define name="form-button-attlist" combine="interleave">
    <optional>
        <attribute name="form:default-button">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="form-button-attlist" combine="interleave">
    <optional>
        <attribute name="form:toggle">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="form-button-attlist" combine="interleave">
    <optional>
        <attribute name="form:focus-on-click">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="form-button-attlist" combine="interleave">
    <optional>
        <attribute name="form:xforms-submission">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="controls" combine="choice">
    <element name="form:image">
        <ref name="form-image-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-image-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="button-type"/>
    <ref name="common-disabled-attlist"/>
    <ref name="image-data"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="target-frame"/>
    <ref name="target-location"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
</define>
<define name="column-controls" combine="choice">
    <element name="form:checkbox">
        <ref name="form-checkbox-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-checkbox-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="label"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-data-field-attlist"/>
    <ref name="common-form-visual-effect-attlist"/>
    <ref name="common-form-relative-image-position-attlist"/>
    <ref name="common-linked-cell"/>
</define>
<define name="states">
    <choice>
        <value>unchecked</value>
        <value>checked</value>
        <value>unknown</value>
    </choice>
</define>
<define name="form-checkbox-attlist" combine="interleave">
    <optional>
        <attribute name="form:current-state">
            <ref name="states"/>
        </attribute>
    </optional>
</define>
<define name="form-checkbox-attlist" combine="interleave">
    <optional>
        <attribute name="form:is-tristate">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="form-checkbox-attlist" combine="interleave">
    <optional>
        <attribute name="form:state">
            <ref name="states"/>
        </attribute>
    </optional>
</define>
<define name="controls" combine="choice">
    <element name="form:radio">
        <ref name="form-radio-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-radio-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="current-selected"/>
    <ref name="common-disabled-attlist"/>
    <ref name="label"/>
    <ref name="common-printable-attlist"/>
    <ref name="selected"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-data-field-attlist"/>
    <ref name="common-form-visual-effect-attlist"/>
    <ref name="common-form-relative-image-position-attlist"/>
    <ref name="common-linked-cell"/>
</define>
<define name="controls" combine="choice">
    <element name="form:frame">
        <ref name="form-frame-attlist"/>
        <ref namene>
<define name="form-frame-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="for"/>
    <ref name="label"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-title-attlist"/>
</define>
<define name="controls" combine="choice">
    <element name="form:image-frame">
        <ref name="form-image-frame-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-image-frame-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="image-data"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-readonly-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-data-field-attlist"/>
</define>
<define name="controls" combine="choice">
    <element name="form:hidden">
        <ref name="form-hidden-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-hidden-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-value-attlist"/>
</define>
<define name="controls" combine="choice">
    <element name="form:grid">
        <ref name="form-grid-attlist"/>
        <ref name="common-form-control-content"/>
        <zeroOrMore>
            <ref name="form-column"/>
        </zeroOrMore>
    </element>
</define>
<define name="form-grid-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
</define>
<define name="form-column">
    <element name="form:column">
        <ref name="form-column-attlist"/>
        <oneOrMore>
            <ref name="column-controls"/>
        </oneOrMore>
    </element>
</define>
<define name="form-column-attlist" combine="interleave">
    <ref name="common-form-control-attlist"/>
    <ref name="label"/>
    <ref name="text-style-name"/>
</define>
<define name="text-style-name">
    <optional>
        <attribute name="form:text-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="controls" combine="choice">
    <element name="form:value-range">
        <ref name="form-value-range-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-value-range-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
    <ref name="common-disabled-attlist"/>
    <ref name="common-printable-attlist"/>
    <ref name="common-tab-attlist"/>
    <ref name="common-title-attlist"/>
    <ref name="common-value-attlist"/>
    <ref name="common-linked-cell"/>        
    <ref name="common-repeat"/>
    <ref name="common-delay-for-repeat"/>

</define>
<define name="form-value-range-attlist" combine="interleave">
    <optional>
        <attribute name="form:max-value">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="form-value-range-attlist" combine="interleave">
    <optional>
        <attribute name="form:min-value">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="form-value-range-attlist" combine="interleave">
    <optional>
        <attribute name="form:step-size">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="form-value-range-attlist" combine="interleave">
    <optional>
        <attribute name="form:page-step-size">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="form-value-range-attlist" combine="interleave">
    <optional>
        <attribute name="form:orientation">
            <choice>
                <value>horizontal</value>
                <value>vertical</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="controls" combine="choice">
    <element name="form:generic-control">
        <ref name="form-generic-control-attlist"/>
        <ref name="common-form-control-content"/>
    </element>
</define>
<define name="form-generic-control-attlist" combine="interleave">
    <ref name="form-control-attlist"/>
</define>
<define name="common-form-control-attlist" combine="interleave">
    <optional>
        <attribute name="form:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-form-control-attlist" combine="interleave">
    <optional>
        <attribute name="form:control-implementation">
            <ref name="namespacedToken"/>
        </attribute>
    </optional>
</define>
<define name="xforms-bind-attlist">
    <optional>
        <attribute name="xforms:bind">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="types">
    <choice>
        <value>submit</value>
        <value>reset</value>
        <value>push</value>
        <value>url</value>
    </choice>
</define>
<define name="button-type">
    <optional>
        <attribute name="form:button-type">
            <ref name="types"/>
        </attribute>
    </optional>
</define>
<define name="common-cont-form-id-attlist"/>
		<group>
			<ref name="xml-id"/>
			<optional>
				<ref name="common-control-form-id-attlist"/>
			</optional>
		</group>
	</choice>
</define>
<define name="common-control-form-id-attlist" combine="interleave">
    <attribute name="form:id">
        <ref name="NCName"/>
    </attribute>
</define>
<define name="current-selected">
    <optional>
        <attribute name="form:current-selected">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="common-value-attlist">
    <optional>
        <attribute name="form:value">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-current-value-attlist">
    <optional>
        <attribute name="form:current-value">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-disabled-attlist">
    <optional>
        <attribute name="form:disabled">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="dropdown">
    <optional>
        <attribute name="form:dropdown">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="for">
    <optional>
        <attribute name="form:for">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="image-data">
    <optional>
        <attribute name="form:image-data">
            <ref name="anyURI"/>
        </attribute>
    </optional>
</define>
<define name="label">
    <optional>
        <attribute name="form:label">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-maxlength-attlist">
    <optional>
        <attribute name="form:max-length">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="common-printable-attlist">
    <optional>
        <attribute name="form:printable">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="common-readonly-attlist">
    <optional>
        <attribute name="form:readonly">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="selected">
    <optional>
        <attribute name="form:selected">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="size">
    <optional>
        <attribute name="form:size">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="common-tab-attlist" combine="interleave">
    <optional>
        <attribute name="form:tab-index">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="common-tab-attlist" combine="interleave">
    <optional>
        <attribute name="form:tab-stop">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="target-frame">
    <optional>
        <attribute name="office:target-frame">
            <ref name="targetFrameName"/>
        </attribute>
    </optional>
</define>
<define name="target-location">
    <optional>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
    </optional>
</define>
<define name="common-title-attlist">
    <optional>
        <attribute name="form:title">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-form-visual-effect-attlist" combine="interleave">
    <optional>
        <attribute name="form:visual-effect">
            <choice>
                <value>flat</value>
                <value>3d</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-form-relative-image-position-attlist"
        combine="interleave">
    <choice>
        <optional>
            <attribute name="form:image-position">
                <value>center</value>
            </attribute>
        </optional>
        <group>
            <attribute name="form:image-position">
                <choice>
                    <value>start</value>
                    <value>end</value>
                    <value>top</value>
                    <value>bottom</value>
                </choice>
            </attribute>
            <optional>
                <attribute name="form:image-align">
                    <choice>
                        <value>start</value>
                        <value>center</value>
                        <value>end</value>
                    </choice>
                </attribute>
            </optional>
        </group>
    </choice>
</define>
<define name="bound-column">
    <optional>
        <attribute name="form:bound-column">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-convert-empty-attlist">
    <optional>
        <attribute name="form:convert-empty-to-null">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="common-data-field-attlist">
    <optional>
        <attribute name="form:data-field">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="list-source">
    <optional>
        <attribute name="form:list-source">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="list-source-type">
    <optional>
        <attribute name="form:list-source-type">
            <choice>
                <value>table</value>
                <value>query</value>
                <value>sql</value>
                <value>sql-pass-through</value>
                <value>value-list</value>
                <value>table-fields</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-linked-cell" combine="choice">
    <optional>
        <attribute name="form:linked-cell">
            <choice>
                <ref name="cellAddress"/>
                <ref name="string"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-source-cell-range" combine="choice">
    <optional>
        <attribute name="form:source-cell-range">
            <choice>
                <ref name="cellRangeAddress"/>
                <ref name="string"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-spin-button">
    <optional>
        <attribute name="form:spin-button">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="common-repeat">
    <optional>
        <attribute name="form:repeat">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="common-delay-for-repeat">
    <optional>
        <attribute name="form:delay-for-repeat">
            <ref name="duration"/>
        </attribute>
    </optional>
</define>
<define name="form-properties">
    <element name="form:properties">
        <oneOrMore>
            <ref name="form-property"/>
        </oneOrMore>
    </element>
</define>
<define name="form-property" combine="choice">
    <element name="form:property">
        <ref name="form-property-name"/>
        <ref name="form-property-value-and-type-attlist"/>
    </element>
</define>
<define name="form-property-name" combine="interleave">
    <attribute name="form:property-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="form-property-value-and-type-attlist" combine="interleave">
    <choice>
        <ref name="common-value-and-type-attlist"/>
        <attribute name="office:value-type">
            <value>void</value>
        </attribute>
    </choice>
</define>
<define name="form-property" combine="choice">
    <element name="form:list-property">
        <ref name="form-property-name"/>
        <ref name="form-property-type-and-value-list"/>
    </element>
</define>
<define name="form-property-type-and-value-list">
    <choice>
        <group>
            <attribute name="office:value-type">
                <value>float</value>
            </attribute>
            <zeroOrMore>
                <element name="form:list-value">
                    <attribute name="office:value">
                        <ref name="double"/>
                    </attribute>
                </element>
            </zeroOrMore>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>percentage</value>
            </attribute>
            <zeroOrMore>
                <element name="form:list-value">
                    <attribute name="office:value">
                        <ref name="double"/>
                    </attribute>
                </element>
            </zeroOrMore>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>currency</value>
            </attribute>
            <zeroOrMore>
                <element name="form:list-value">
                    <attribute name="office:value">
                        <ref name="double"/>
                    </attribute>
                    <optional>
                        <attribute name="office:currency">
                            <ref name="string"/>
                        </attribute>
                    </optional>
                </element>
            </zeroOrMore>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>date</value>
            </attribute>
            <zeroOrMore>
                <element name="form:list-value">
                    <attribute name="office:date-value">
                        <ref name="dateOrDateTime"/>
                    </attribute>
                </element>
            </zeroOrMore>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>time</value>
            </attribute>
            <zeroOrMore>
                <element name=""office:time-value">
                        <ref name="duration"/>
                    </attribute>
                </element>
            </zeroOrMore>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>boolean</value>
            </attribute>
            <zeroOrMore>
                <element name="form:list-value">
                    <attribute name="office:boolean-value">
                        <ref name="boolean"/>
                    </attribute>
                </element>
            </zeroOrMore>
        </group>
        <group>
            <attribute name="office:value-type">
                <value>string</value>
            </attribute>
            <zeroOrMore>
                <element name="form:list-value">
                    <attribute name="office:string-value">
                        <ref name="string"/>
                    </attribute>
                </element>
            </zeroOrMore>
        </group>
        <attribute name="office:value-type">
            <value>void</value>
        </attribute>
    </choice>
</define>
<define name="office-annotation">
    <element name="office:annotation">
        <ref name="office-annotation-attlist"/>
        <ref name="draw-caption-attlist"/>
        <ref name="common-draw-position-attlist"/>
        <ref name="common-draw-size-attlist"/>
        <ref name="common-draw-shape-with-text-and-styles-attlist"/>
        <optional>
            <ref name="dc-creator"/>
        </optional>
        <optional>
            <ref name="dc-date"/>
        </optional>
        <optional>
            <ref name="meta-date-string"/>
        </optional>
        <zeroOrMore>
            <choice>
                <ref name="text-p"/>
                <ref name="text-list"/>
            </choice>
        </zeroOrMore>
    </element>
</define>

<define name="office-annotation-end">
    <element name="office:annotation-end">
        <ref name="office-annotation-end-attlist"/>
    </element>
</define>
<define name="office-annotation-attlist" combine="interleave">
    <optional>
        <attribute name="office:display">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="office-annotation-attlist" combine="interleave">
    <optional>
        <ref name="common-office-annotation-name-attlist"/>
    </optional>
</define>

<define name="office-annotation-end-attlist" combine="interleave">
    <ref name="common-office-annotation-name-attlist"/>
</define>

<define name="common-office-annotation-name-attlist">
    <attribute name="office:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="meta-date-string">
    <element name="meta:date-string">
        <ref name="string"/>
    </element>
</define>
<define name="common-num-format-prefix-suffix-attlist" combine="interleave">
    <optional>
        <attribute name="style:num-prefix">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:num-suffix">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-num-format-attlist" combine="interleave">
    <choice>
        <attribute name="style:num-format">
            <choice>
                <value>1</value>
                <value>i</value>
                <value>I</value>
                <ref name="string"/>
                <empty/>
            </choice>
        </attribute>
        <group>
            <attribute name="style:num-format">
                <choice>
                    <value>a</value>
                    <value>A</value>
                </choice>
            </attribute>
            <ref name="style-num-letter-sync-attlist"/>
        </group>
        <empty/>
    </choice>
</define>
<define name="style-num-letter-sync-attlist" combine="interleave">
    <optional>
        <attribute name="style:num-letter-sync">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="office-change-info">
    <element name="office:change-info">
        <ref name="dc-creator"/>
        <ref name="dc-date"/>
        <zeroOrMore>
            <ref name="text-p"/>
        </zeroOrMore>
    </element>
</define>
<define name="office-event-listeners">
    <element name="office:event-listeners">
        <zeroOrMore>
            <choice>
                <ref name="script-event-listener"/>
                <ref name="presentation-event-listener"/>
            </choice>
        </zeroOrMore>
    </element>
</define>
<define name="script-event-listener" combine="interleave">
    <element name="script:event-listener">
        <ref name="script-event-listener-attlist"/>
        <empty/>
    </element>
</define>
<define name="script-event-listener-attlist" combine="interleave">
    <attribute name="script:event-name">
        <ref name="string"/>
    </attribute>
</define>
<define name="script-event-listener-attlist" combine="interleave">
    <attribute name="script:language">
        <ref name="string"/>
    </attribute>
</define>
<define name="script-event-listener-attlist" combine="interleave">
    <choice>
        <attribute name="script:macro-name">
            <ref name="string"/>
        </attribute>
        <group>
         name="anyURI"/>
            </attribute>
            <optional>
                <attribute name="xlink:type">
                    <value>simple</value>
                </attribute>
            </optional>
            <optional>
                <attribute name="xlink:actuate">
                    <value>onRequest</value>
                </attribute>
            </optional>
        </group>
    </choice>
</define>
<define name="math-math">
    <element name="math:math">
        <ref name="mathMarkup"/>
    </element>
</define>

<!-- To avoid inclusion of the complete MathML schema, anything -->
<!-- is allowed within a math:math top-level element            -->
<define name="mathMarkup">
    <zeroOrMore>
        <choice>
            <attribute>
                <anyName/>
            </attribute>
            <text/>
            <element>
                <anyName/>
                <ref name="mathMarkup"/>
            </element>
        </choice>
    </zeroOrMore>
</define>
<define name="text-dde-connection-decl">
    <element name="text:dde-connection-decl">
        <ref name="text-dde-connection-decl-attlist"/>
        <ref name="common-dde-connection-decl-attlist"/>
    </element>
</define>
<define name="text-dde-connection-decl-attlist" combine="interleave">
    <attribute name="office:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="common-dde-connection-decl-attlist" combine="interleave">
    <attribute name="office:dde-application">
        <ref name="string"/>
    </attribute>
</define>
<define name="common-dde-connection-decl-attlist" combine="interleave">
    <attribute name="office:dde-topic">
        <ref name="string"/>
    </attribute>
</define>
<define name="common-dde-connection-decl-attlist" combine="interleave">
    <attribute name="office:dde-item">
        <ref name="string"/>
    </attribute>
</define>
<define name="common-dde-connection-decl-attlist" combine="interleave">
    <optional>
        <attribute name="office:automatic-update">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="table-dde-link">
    <element name="table:dde-link">
        <ref name="office-dde-source"/>
        <ref name="table-table"/>
    </element>
</define>
<define name="office-dde-source">
    <element name="office:dde-source">
        <ref name="office-dde-source-attlist"/>
        <ref name="common-dde-connection-decl-attlist"/>
    </element>
</define>
<define name="office-dde-source-attlist" combine="interleave">
    <optional>
        <attribute name="office:name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="office-dde-source-attlist" combine="interleave">
    <optional>
        <attribute name="office:conversion-mode"
                   >
            <choice>
                <value>into-default-style-data-style</value>
                <value>into-english-number</value>
                <value>keep-text</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="animation-element" combine="choice">
    <element name="anim:animate">
        <ref name="common-anim-target-attlist"/>
        <ref name="common-anim-named-target-attlist"/>
        <ref name="common-anim-values-attlist"/>
        <ref name="common-anim-spline-mode-attlist"/>
        <ref name="common-spline-anim-value-attlist"/>
        <ref name="common-timing-attlist"/>
        <ref name="common-anim-add-accum-attlist"/>
    </element>
</define>
<define name="animation-element" combine="choice">
    <element name="anim:set">
        <ref name="common-anim-target-attlist"/>
        <ref name="common-anim-named-target-attlist"/>
        <ref name="common-anim-set-values-attlist"/>
        <ref name="common-timing-attlist"/>
        <ref name="common-anim-add-accum-attlist"/>
    </element>
</define>
<define name="animation-element" combine="choice">
    <element name="anim:animateMotion">
        <ref name="anim-animate-motion-attlist"/>
        <ref name="common-anim-target-attlist"/>
        <ref name="common-anim-named-target-attlist"/>
        <ref name="common-anim-add-accum-attlist"/>
        <ref name="common-anim-values-attlist"/>
        <ref name="common-timing-attlist"/>
        <ref name="common-spline-anim-value-attlist"/>
    </element>
</define>
<define name="anim-animate-motion-attlist" combine="interleave">
    <optional>
        <attribute name="svg:path">
            <ref name="pathData"/>
        </attribute>
    </optional>
</define>
<define name="anim-animate-motion-attlist" combine="interleave">
    <optional>
        <attribute name="svg:origin">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="anim-animate-motion-attlist" combine="interleave">
    <optional>
        <attribute name="smil:calcMode">
            <choice>
                <value>discrete</value>
                <value>linear</value>
                <value>paced</value>
                <value>spline</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="animation-element" combine="choice">
    <element name="anim:animateColor">
        <ref name="common-anim-target-attlist"/>
        <ref name="common-anim-named-target-attlist"/>
        <ref name="common-anim-add-accum-attlist"/>
        <ref name="common-anim-values-attlist"/>
        <ref name="common-anim-spline-mode-attlist"/>
        <ref name="common-spline-anim-value-attlist"/>
        <ref name="anim-animate-color-attlist"/>
        <ref name="common-timing-attlist"/>
    </element>
</define>
<define name="anim-animate-color-attlist" combine="interleave">
    <optional>
        <attribute name="anim:color-interpolation">
            <choice>
                <value>rgb</value>
                <value>hsl</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="anim-animate-color-attlist" combine="interleave">
    <optional>
        <attribute name="anim:color-interpolation-direction"
                  >
            <choice>
                <value>clockwise</value>
                <value>counter-clockwise</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="animation-element" combine="choice">
    <element name="anim:animateTransform">
        <ref name="common-anim-target-attlist"/>
        <ref name="common-anim-named-target-attlist"/>
        <ref name="common-anim-add-accum-attlist"/>
        <ref name="common-anim-values-attlist"/>
        <ref name="anim-animate-transform-attlist"/>
        <ref name="common-timing-attlist"/>
    </element>
</define>
<define name="anim-animate-transform-attlist" combine="interleave">
    <attribute name="svg:type">
        <choice>
            <value>translate</value>
            <value>scale</value>
            <value>rotate</value>
            <value>skewX</value>
            <value>skewY</value>
        </choice>
    </attribute>
</define>
<define name="animation-element" combine="choice">
    <element name="anim:transitionFilter">
        <ref name="common-anim-target-attlist"/>
        <ref name="common-anim-add-accum-attlist"/>
        <ref name="common-anim-values-attlist"/>
        <ref name="common-anim-spline-mode-attlist "/>
        <ref name="anim-transition-filter-attlist"/>
        <ref name="common-timing-attlist"/>
    </element>
</define>
<define name="anim-transition-filter-attlist" combine="interleave">
    <attribute name="smil:type">
        <ref name="string"/>
    </attribute>
</define>
<define name="anim-transition-filter-attlist" combine="interleave">
    <optional>
        <attribute name="smil:subtype">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="anim-transition-filter-attlist" combine="interleave">
    <optional>
        <attribute name="smil:direction">
            <choice>
                <value>forward</value>
                <value>reverse</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="anim-transition-filter-attlist" combine="interleave">
    <optional>
        <attribute name="smil:fadeColor">
            <choice>
                <value>forward</value>
                <value>reverse</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="anim-transition-filter-attlist" combine="interleave">
    <optional>
        <attribute name="smil:mode">
            <choice>
                <value>in</value>
                <value>out</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-anim-attlist" combine="interleave">
    <optional>
        <attribute name="anim:id">
            <ref name="NCName"/>
        </attribute>
    </optional>
</define>
<define name="common-anim-attlist" combine="interleave">
    <optional>
	 	<ref name="xml-id"/>
    </optional>
</define>
<define name="common-anim-target-attlist" combine="interleave">
    <optional>
        <attribute name="smil:targetElement">
            <ref name="IDREF"/>
        </attribute>
    </optional>
</define>
<define name="common-anim-named-target-attlist" combine="interleave">
    <attribute name="smil:attributeName">
        <ref name="string"/>
    </attribute>
</define>
<define name="common-anim-target-attlist" combine="interleave">
    <optional>
        <attribute name="anim:sub-item">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-anim-values-attlist" combine="interleave">
    <optional>
        <attribute name="smil:values">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-anim-spline-mode-attlist" combine="interleave">
    <optional>
        <attribute name="smil:calcMode">
            <choice>
                <value>discrete</value>
                <value>linear</value>
                <value>paced</value>
                <value>spline</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-spline-anim-value-attlist" combine="interleave">
    <optional>
        <attribute name="smil:keyTimes">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-spline-anim-value-attlist" combine="interleave">
    <optional>
        <attribute name="smil:keySplines">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-anim-add-accum-attlist" combine="interleave">
    <optional>
        <attribute name="smil:accumulate">
            <choice>
                <value>none</value>
                <value>sum</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-anim-add-accum-attlist" combine="interleave">
    <optional>
        <attribute name="smil:additive">
            <choice>
                <value>replace</value>
                <value>sum</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-anim-values-attlist" combine="interleave">
    <optional>
        <attribute name="anim:formula">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-anim-set-values-attlist" combine="interleave">
    <optional>
        <attribute name="smil:to">
            <ref name="string"/>
        </attribute>
    </optional>
</define>

<define name="common-anim-values-attlist" combine="interleave">
    <ref name="common-anim-set-values-attlist"/>
    <optional>
        <attribute name="smil:from">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="smil:by">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-begin-end-timing-attlist" combine="interleave">
    <optional>
        <attribute name="smil:begin">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-begin-end-timing-attlist" combine="interleave">
    <optional>
        <attribute name="smil:end">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-dur-timing-attlist" combine="interleave">
    <optional>
        <attribute name="smil:dur">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-endsync-timing-attlist" combine="interleave">
    <optional>
        <attribute name="smil:endsync">
            <choice>
                <value>first</value>
                <value>last</value>
                <value>all</value>
                <value>media</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-repeat-timing-attlist" combine="interleave">
    <optional>
        <attribute name="smil:repeatDur">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="smil:repeatCount">
            <choice>
                <ref name="nonNegativeInteger"/>
                <value>indefinite</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-fill-timing-attlist" combine="interleave">
    <optional>
        <attribute name="smil:fill">
            <choice>
                <value>remove</value>
                <value>freeze</value>
                <value>hold</value>
                <value>auto</value>
                <value>default</value>
                <value>transition</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-fill-default-attlist" combine="interleave">
    <optional>
        <attribute name="smil:fillDefault">
            <choice>
                <value>remove</value>
                <value>freeze</value>
                <value>hold</value>
                <value>transition</value>
                <value>auto</value>
                <value>inherit</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-restart-timing-attlist" combine="interleave">
    <optional>
        <attribute name="smil:restart">
            <choice>
                <value>never</value>
                <value>always</value>
                <value>whenNotActive</value>
                <value>default</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-restart-default-attlist" combine="interleave">
    <optional>
        <attribute name="smil:restartDefault">
            <choice>
                <value>never</value>
                <value>always</value>
                <value>whenNotActive</value>
                <value>inherit</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-time-manip-attlist" combine="interleave">
    <optional>    
        <attribute name="smil:accelerate">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="common-time-manip-attlist" combine="interleave">
    <optional>
        <attribute name="smil:decelerate">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="common-time-manip-attlist" combine="interleave">
    <optional>
        <attribute name="smil:autoReverse">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="animation-element" combine="choice">
    <element name="anim:par">
        <ref name="common-anim-attlist"/>
        <ref name="common-timing-attlist"/>
        <ref name="common-endsync-timing-attlist"/>
        <zeroOrMore>
            <ref name="animation-element"/>
        </zeroOrMore>
    </element>
</define>

<define name="common-basic-timing-attlist" combine="interleave">
    <ref name="common-begin-end-timing-attlist"/>
    <ref name="common-dur-timing-attlist"/>
    <ref name="common-repeat-timing-attlist"/>
    <ref name="common-restart-timing-attlist"/>
    <ref name="common-restart-default-attlist"/>
    <ref name="common-fill-timing-attlist"/>
    <ref name="common-fill-default-attlist"/>
</define>

<define name="common-timing-attlist" combine="interleave">
    <ref name="common-basic-timing-attlist"/>
    <ref name="common-time-manip-attlist"/>
</define>
<define name="animation-element" combine="choice">
    <element name="anim:seq">
        <ref name="common-anim-attlist"/>
        <ref name="common-endsync-timing-attlist"/>
        <ref name="common-timing-attlist"/>
        <zeroOrMore>
            <ref name="animation-element"/>
        </zeroOrMore>
    </element>
</define>
<define name="animation-element" combine="choice">
    <element name="anim:iterate">
        <ref name="common-anim-attlist"/>
        <ref name="anim-iterate-attlist"/>
        <ref name="common-timing-attlist"/>
        <ref name="common-endsync-timing-attlist"/>
        <zeroOrMore>
            <ref name="animation-element"/>
        </zeroOrMore>
    </element>
</define>
<define name="anim-iterate-attlist" combine="interleave">
    <ref name="common-anim-target-attlist"/>
</define>
<define name="anim-iterate-attlist" combine="interleave">
    <optional>
        <attribute name="anim:iterate-type">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="anim-iterate-attlist" combine="interleave">
    <optional>
        <attribute name="anim:iterate-interval">
            <ref name="duration"/>
        </attribute>
    </optional>
</define>
<define name="animation-element" combine="choice">
    <element name="anim:audio">
        <ref name="common-anim-attlist"/>
        <ref name="anim-audio-attlist"/>
        <ref name="common-basic-timing-attlist"/>
    </element>
</define>
<define name="anim-audio-attlist" combine="interleave">
    <optional>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
    </optional>
</define>
<define name="anim-audio-attlist" combine="interleave">
    <optional>
        <attribute name="anim:audio-level">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="animation-element" combine="choice">
    <element name="anim:command">
        <ref name="common-anim-attlist"/>
        <ref name="anim-command-attlist"/>
        <ref name="common-begin-end-timing-attlist"/>
        <ref name="common-anim-target-attlist"/>
        <zeroOrMore>
            <element name="anim:param">
                <attribute name="anim:name">
					<ref name="string"/>
				</attribute>
                <attribute name="anim:value">
					<ref name="string"/>
				</attribute>
            </element>
        </zeroOrMore>
    </element>
</define>
<define name="anim-command-attlist" combine="interleave">
    <attribute name="anim:command">
        <ref name="string"/>
    </attribute>
</define>
<define name="style-style">
    <element name="style:style">
        <ref name="style-style-attlist"/>
        <ref name="style-style-content"/>
        <zeroOrMore>
            <ref name="style-map"/>
        </zeroOrMore>
    </element>
</define>
<define name="common-in-content-meta-attlist" combine="interleave">
	<attribute name="xhtml:about">
		<ref name="URIorSafeCURIE"/>
	</attribute>
	<attribute name="xhtml:property">
		<ref name="CURIEs"/>
	</attribute>
	<ref name="common-meta-literal-attlist"/>
</define>
<define name="common-meta-literal-attlist" combine="interleave">
    <optional>
        <attribute name="xhtml:datatype">
            <ref name="CURIE"/>
        </attribute>
	</optional>
    <optional>
		<attribute name="xhtml:content">
			<ref name="string"/>
		</attribute>
	</optional>
</define>
<define name="xml-id" combine="interleave">
	<attribute name="xml:id">
		<ref name="ID"/>
	</attribute>
</define>
<define name="style-style-attlist" combine="interleave">
    <attribute name="style:name">
        <ref name="styleName"/>
    </attribute>
</define>
<define name="style-style-attlist" combine="interleave">
    <optional>
        <attribute name="style:display-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-style-attlist" combine="interleave">
    <optional>
        <attribute name="style:parent-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-style-attlist" combine="interleave">
    <optional>
        <attribute name="style:next-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-style-attlist" combine="interleave">
    <optional>
        <attribute name="style:list-level">
            <choice>
                <ref name="positiveInteger"/>
                <empty/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-style-attlist" combine="interleave">
    <optional>
        <attribute name="style:list-style-name">
            <choice>
                <ref name="styleName"/>
                <empty/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-style-attlist" combine="interleave">
    <optional>
        <attribute name="style:master-page-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-style-attlist" combine="interleave">
    <optional>
        <attribute name="style:auto-update">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-style-attlist" combine="interleave">
    <optional>
        <attribute name="style:data-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-style-attlist" combine="interleave">
    <optional>
        <attribute name="style:percentage-data-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-style-attlist" combine="interleave">
    <optional>
        <attribute name="style:class">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-style-attlist" combine="interleave">
    <optional>
        <attribute name="style:default-outline-level">
            <choice>
                <ref name="positiveInteger"/>
                <empty/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-map">
    <element name="style:map">
        <ref name="style-map-attlist"/>
        <empty/>
    </element>
</define>
<define name="style-map-attlist" combine="interleave">
    <attribute name="style:condition">
        <ref name="string"/>
    </attribute>
</define>
<define name="style-map-attlist" combine="interleave">
    <attribute name="style:apply-style-name">
        <ref name="styleNameRef"/>
    </attribute>
</define>
<define name="style-map-attlist" combine="interleave">
    <optional>
        <attribute name="style:base-cell-address">
            <ref name="cellAddress"/>
        </attribute>
    </optional>
</define>
<define name="style-default-style">
    <element name="style:default-style">
        <ref name="style-style-content"/>
    </element>
</define>
<define name="style-page-layout">
    <element name="style:page-layout">
        <ref name="style-page-layout-attlist"/>
        <ref name="style-page-layout-content"/>
    </element>
</define>

<define name="style-page-layout-content">
    <optional>
        <ref name="style-page-layout-properties"/>
    </optional>
    <optional>
        <ref name="style-header-style"/>
    </optional>
    <optional>
        <ref name="style-footer-style"/>
    </optional>
</define>
<define name="style-page-layout-attlist" combine="interleave">
    <attribute name="style:name">
        <ref name="styleName"/>
    </attribute>
</define>
<define name="style-page-layout-attlist" combine="interleave">
    <optional>
        <attribute name="style:page-usage">
            <choice>
                <value>all</value>
                <value>left</value>
                <value>right</value>
                <value>mirrored</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-header-style">
    <element name="style:header-style">
        <optional>
            <ref name="style-header-footer-properties"/>
        </optional>
    </element>
</define>
<define name="style-footer-style">
    <element name="style:footer-style">
        <optional>
            <ref name="style-header-footer-properties"/>
        </optional>
    </element>
</define>
<define name="style-default-page-layout">
    <element name="style:default-page-layout">
        <ref name="style-page-layout-content"/>
    </element>
</define>
<define name="style-master-page">
    <element name="style:master-page">
        <ref name="style-master-page-attlist"/>
        <optional>
            <ref name="style-header"/>
            <optional>
                <ref name="style-header-left"/>
            </optional>
        </optional>
        <optional>
            <ref name="style-footer"/>
            <optional>
                <ref name="style-footer-left"/>
            </optional>
        </optional>
		<optional>
			<ref name="draw-layer-set"/>
		</optional>		
        <optional>
            <ref name="office-forms"/>
        </optional>
        <zeroOrMore>
            <ref name="style-style"/>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="shape"/>
        </zeroOrMore>
        <optional>
            <ref name="animation-element"/>
        </optional>
        <optional>
            <ref name="presentation-notes"/>
        </optional>
    </element>
</define>
<define name="style-master-page-attlist" combine="interleave">
    <attribute name="style:name">
        <ref name="styleName"/>
    </attribute>
</define>
<define name="style-master-page-attlist" combine="interleave">
    <optional>
        <attribute name="style:display-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-master-page-attlist" combine="interleave">
    <attribute name="style:page-layout-name">
        <ref name="styleNameRef"/>
    </attribute>
</define>
<define name="style-master-page-attlist" combine="interleave">
    <optional>
        <attribute name="draw:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-master-page-attlist" combine="interleave">
    <optional>
        <attribute name="style:next-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-header">
    <element name="style:header">
        <ref name="common-style-header-footer-attlist"/>
        <ref name="header-footer-content"/>
    </element>
</define>
<define name="style-footer">
    <element name="style:footer">
        <ref name="common-style-header-footer-attlist"/>
        <ref name="header-footer-content"/>
    </element>
</define>
<define name="style-header-left">
    <element name="style:header-left">
        <ref name="common-style-header-footer-attlist"/>
        <ref name="header-footer-content"/>
    </element>
</define>
<define name="style-footer-left">
    <element name="style:footer-left">
        <ref name="common-style-header-footer-attlist"/>
        <ref name="header-footer-content"/>
    </element>
</define>
<define name="header-footer-content">
    <choice>
        <group>
            <ref name="text-tracked-changes"/>
            <ref name="text-decls"/>
            <zeroOrMore>
                <choice>
                    <ref name="text-h"/>
                    <ref name="text-p"/>
                    <ref name="text-list"/>
                    <ref name="table-table"/>
                    <ref name="text-section"/>
                    <ref name="text-table-of-content"/>
                    <ref name="text-illustration-index"/>
                    <ref name="text-table-index"/>
                    <ref name="text-object-index"/>
                    <ref name="text-user-index"/>
                    <ref name="text-alphabetical-index"/>
                    <ref name="text-bibliography"/>
                    <ref name="text-index-title"/>
                    <ref name="change-marks"/>
                </choice>
            </zeroOrMore>
        </group>
        <group>
            <optional>
                <ref name="style-region-left"/>
            </optional>
            <optional>
                <ref name="style-region-center"/>
            </optional>
            <optional>
                <ref name="style-region-right"/>
            </optional>
        </group>
    </choice>
</define>
<define name="common-style-header-footer-attlist" combine="interleave">
    <optional>
        <attribute name="style:display">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-region-left">
    <element name="style:region-left">
        <ref name="region-content"/>
    </element>
</define>
<define name="style-region-center">
    <element name="style:region-center">
        <ref name="region-content"/>
    </element>
</define>
<define name="style-region-right">
    <element name="style:region-right">
        <ref name="region-content"/>
    </element>
</define>

<define name="region-content">
    <zeroOrMore>
        <ref name="text-p"/>
    </zeroOrMore>
</define>
<define name="presentation-notes">
    <element name="presentation:notes">
        <ref name="common-presentation-header-footer-attlist"/>
        <ref name="presentation-notes-attlist"/>
        <ref name="office-forms"/>
        <zeroOrMore>
            <ref name="shape"/>
        </zeroOrMore>
    </element>
</define>
<define name="presentation-notes-attlist" combine="interleave">
    <optional>
        <attribute name="style:page-layout-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="presentation-notes-attlist" combine="interleave">
    <optional>
        <attribute name="draw:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="table-table-template">
    <element name="table:table-template">
        <ref name="table-table-template-attlist"/>
        <optional>
            <ref name="table-first-row"/>
        </optional>
        <optional>
            <ref name="table-last-row"/>
        </optional>
        <optional>
            <ref name="table-first-column"/>
        </optional>
        <optional>
            <ref name="table-last-column"/>
        </optional>
        <ref name="table-body"/>
        <optional>
            <ref name="table-even-rows"/>
		</optional>
		<optional>
            <ref name="table-odd-rows"/>
        </optional>
        <optional>
            <ref name="table-even-columns"/>
		</optional>
		<optional>
            <ref name="table-odd-columns"/>
        </optional>
        <optional>
            <ref name="table-background"/>
        </optional>
    </element>
</define>
<define name="table-table-template-attlist" combine="interleave">
    <attribute name="table:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="table-table-template-attlist" combine="interleave">
    <attribute name="table:first-row-start-column">
        <ref name="rowOrCol"/>
    </attribute>
</define>

<define name="table-table-template-attlist" combine="interleave">
    <attribute name="table:first-row-end-column">
        <ref name="rowOrCol"/>
    </attribute>
</define>

<define name="table-table-template-attlist" combine="interleave">
    <attribute name="table:last-row-start-column">
        <ref name="rowOrCol"/>
    </attribute>
</define>

<define name="table-table-template-attlist" combine="interleave">
    <attribute name="table:last-row-end-column">
        <ref name="rowOrCol"/>
    </attribute>
</define>

<define name="rowOrCol">
    <choice>
        <value>row</value>
        <value>column</value>
    </choice>
</define>
<define name="table-first-row">
    <element name="table:first-row">
        <ref name="common-table-template-attlist"/>
        <empty/>
    </element>
</define>

<define name="table-last-row">
    <element name="table:last-row">
        <ref name="common-table-template-attlist"/>
        <empty/>
    </element>
</define>

<define name="table-first-column">
    <element name="table:first-column">
        <ref name="common-table-template-attlist"/>
        <empty/>
    </element>
</define>

<define name="table-last-column">
    <element name="table:last-column">
        <ref name="common-table-template-attlist"/>
        <empty/>
    </element>
</define>

<define name="table-body">
    <element name="table:body">
        <ref name="common-table-template-attlist"/>
        <empty/>
    </element>
</define>

<define name="table-even-rows">
    <element name="table:even-rows">
        <ref name="common-table-template-attlist"/>
        <empty/>
    </element>
</define>

<define name="table-odd-rows">
    <element name="table:odd-rows">
        <ref name="common-table-template-attlist"/>
        <empty/>
    </element>
</define>

<define name="table-even-columns">
    <element name="table:even-columns">
        <ref name="common-table-template-attlist"/>
        <empty/>
    </element>
</define>

<define name="table-odd-columns">
    <element name="table:odd-columns">
        <ref name="common-table-template-attlist"/>
        <empty/>
    </element>
</define>

<define name="common-table-template-attlist" combine="interleave">
    <attribute name="table:style-name">
        <ref name="styleNameRef"/>
    </attribute>
	<optional>
		<attribute name="table:paragraph-style-name">
            <ref name="styleNameRef"/>
		</attribute>
	</optional>
</define>

<define name="table-background">
    <element name="table:background">
        <ref name="table-background-attlist"/>
        <empty/>
    </element>
</define>

<define name="table-background-attlist" combine="interleave">
    <attribute name="table:style-name">
        <ref name="styleNameRef"/>
    </attribute>
</define>
<define name="style-font-face">
    <element name="style:font-face">
        <ref name="style-font-face-attlist"/>
        <optional>
            <ref name="svg-font-face-src"/>
        </optional>
        <optional>
            <ref name="svg-definition-src"/>
        </optional>
    </element>
</define>
<define name="style-font-face-attlist" combine="interleave">
    <optional>
        <attribute name="svg:font-family">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:font-style">
            <ref name="fontStyle"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:font-variant">
            <ref name="fontVariant"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:font-weight">
            <ref name="fontWeight"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:font-stretch">
            <choice>
                <value>normal</value>
                <value>ultra-condensed</value>
                <value>extra-condensed</value>
                <value>condensed</value>
                <value>semi-condensed</value>
                <value>semi-expanded</value>
                <value>expanded</value>
                <value>extra-expanded</value>
                <value>ultra-expanded</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:font-size">
            <ref name="positiveLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:unicode-range">
			<ref name="string"/>
		</attribute>
    </optional>
    <optional>
        <attribute name="svg:units-per-em">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:panose-1">
			<ref name="string"/>
		</attribute>
    </optional>
    <optional>
        <attribute name="svg:stemv">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:stemh">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:slope">
            <ref name="integer"/>
        </attribute>
        </optional>
    <optional>
        <attribute name="svg:cap-height">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:x-height">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:accent-height">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:ascent">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:descent">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:widths">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:bbox">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:ideographic">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:alphabetic">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:mathematical">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:hanging">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:v-ideographic">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:v-alphabetic">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:v-mathematical">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:v-hanging">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:underline-position">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:underline-thickness">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:strikethrough-position">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:strikethrough-thickness">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:overline-position">
            <ref name="integer"/>
        </attribute>
        </optional>
    <optional>
        <attribute name="svg:overline-thickness">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>

<define name="svg-font-face-src">
    <element name="svg:font-face-src">
        <oneOrMore>
            <choice>
                <ref name="svg-font-face-uri"/>
                <ref name="svg-font-face-name"/>
            </choice>
        </oneOrMore>
    </element>
</define>

<define name="svg-font-face-uri">
    <element name="svg:font-face-uri">
        <ref name="common-svg-font-face-xlink-attlist"/>
        <zeroOrMore>
            <ref name="svg-font-face-format"/>
        </zeroOrMore>
    </element>
</define>

<define name="svg-font-face-format">
    <element name="svg:font-face-format">
        <optional>
            <attribute name="svg:string">
				<ref name="string"/>
			</attribute>
        </optional>
        <empty/>
    </element>
</define>
<define name="svg-font-face-name">
    <element name="svg:font-face-name">
        <optional>
            <attribute name="svg:name">
				<ref name="string"/>
			</attribute>
        </optional>
        <empty/>
    </element>
</define>

<define name="svg-definition-src">
    <element name="svg:definition-src">
        <ref name="common-svg-font-face-xlink-attlist"/>
    <empty/>
    </element>
</define>

<define name="common-svg-font-face-xlink-attlist" combine="interleave">
    <attribute name="xlink:href">
        <ref name="anyURI"/>
    </attribute>
    <optional>
        <attribute name="xlink:type">
            <value>simple</value>
        </attribute>
    </optional>
    <optional>
        <attribute name="xlink:actuate">
            <value>onRequest</value>
        </attribute>
    </optional>
</define>
<define name="style-font-face-attlist" combine="interleave">
    <attribute name="style:name">
        <ref name="string"/>
    </attribute>
</define>
<define name="style-font-face-attlist" combine="interleave">
    <optional>
        <attribute name="style:font-adornments">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-font-face-attlist" combine="interleave">
    <optional>
        <attribute name="style:font-family-generic">
            <ref name="fontFamilyGeneric"/>
        </attribute>
    </optional>
</define>
<define name="style-font-face-attlist" combine="interleave">
    <optional>
        <attribute name="style:font-pitch">
            <ref name="fontPitch"/>
        </attribute>
    </optional>
</define>

<define name="style-font-face-attlist" combine="interleave">
    <optional>
        <attribute name="style:font-charset">
            <ref name="textEncoding"/>
        </attribute>
    </optional>
</define>
<define name="number-number-style">
    <element name="number:number-style">
        <ref name="common-data-style-attlist"/>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
        <optional>
            <ref name="number-text"/>
        </optional>
        <optional>
            <ref name="any-number"/>
            <optional>
                <ref name="number-text"/>
            </optional>
        </optional>
        <zeroOrMore>
            <ref name="style-map"/>
        </zeroOrMore>
    </element>
</define>

<define name="any-number">
    <choice>
        <ref name="number-number"/>
        <ref name="number-scientific-number"/>
        <ref name="number-fraction"/>
    </choice>
</define>
<define name="number-number">
    <element name="number:number">
        <ref name="number-number-attlist"/>
        <ref name="common-decimal-places-attlist"/>
        <ref name="common-number-attlist"/>
        <zeroOrMore>
            <ref name="number-embedded-text"/>
        </zeroOrMore>
    </element>
</define>
<define name="number-number-attlist" combine="interleave">
    <optional>
        <attribute name="number:decimal-replacement">
			<ref name="string"/>
		</attribute>
    </optional>
</define>
<define name="number-number-attlist" combine="interleave">
    <optional>
        <attribute name="number:display-factor">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="number-embedded-text">
    <element name="number:embedded-text">
        <ref name="number-embedded-text-attlist"/>
        <text/>
    </element>
</define>
<define name="number-embedded-text-attlist" combine="interleave">
    <attribute name="number:position">
        <ref name="integer"/>
    </attribute>
</define>
<define name="number-scientific-number">
    <element name="number:scientific-number">
        <ref name="number-scientific-number-attlist"/>
        <ref name="common-decimal-places-attlist"/>
        <ref name="common-number-attlist"/>
        <empty/>
    </element>
</define>
<define name="number-scientific-number-attlist" combine="interleave">
    <optional>
        <attribute name="number:min-exponent-digits">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="number-fraction">
    <element name="number:fraction">
        <ref name="number-fraction-attlist"/>
        <ref name="common-number-attlist"/>
        <empty/>
    </element>
</define>
<define name="number-fraction-attlist" combine="interleave">
    <optional>
        <attribute name="number:min-numerator-digits">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="number-fraction-attlist" combine="interleave">
    <optional>
        <attribute name="number:min-denominator-digits">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="number-fraction-attlist" combine="interleave">
    <optional>
        <attribute name="number:denominator-value">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="number-currency-style">
    <element name="number:currency-style">
        <ref name="common-data-style-attlist"/>
        <ref name="common-auto-reorder-attlist"/>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
        <optional>
            <ref name="number-text"/>
        </optional>
        <optional>
            <choice>
                <group>
                    <ref name="number-and-text"/>
                    <optional>
                        <ref name="currency-symbol-and-text"/>
                    </optional>
                </group>
                <group>
                    <ref name="currency-symbol-and-text"/>
                    <optional>
                        <ref name="number-and-text"/>
                    </optional>
                </group>
            </choice>
        </optional>
        <zeroOrMore>
            <ref name="style-map"/>
        </zeroOrMore>
    </element>
</define>

<define name="currency-symbol-and-text">
    <ref name="number-currency-symbol"/>
    <optional>
        <ref name="number-text"/>
    </optional>
</define>
<define name="number-and-text">
    <ref name="number-number"/>
    <optional>
        <ref name="number-text"/>
    </optional>
</define>
<define name="number-currency-symbol">
    <element name="number:currency-symbol">
        <ref name="number-currency-symbol-attlist"/>
        <text/>
    </element>
</define>
<define name="number-currency-symbol-attlist" combine="interleave">
    <optional>
        <attribute name="number:language">
            <ref name="languageCode"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="number:country">
            <ref name="countryCode"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="number:script">
            <ref name="scriptCode"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="number:rfc-language-tag">
            <ref name="language"/>
        </attribute>
    </optional>
</define>
<define name="number-percentage-style">
    <element name="number:percentage-style">
        <ref name="common-data-style-attlist"/>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
        <optional>
            <ref name="number-text"/>
        </optional>
        <optional>
            <ref name="number-and-text"/>
        </optional>
        <zeroOrMore>
            <ref name="style-map"/>
        </zeroOrMore>
    </element>
</define>
<define name="number-date-style">
    <element name="number:date-style">
        <ref name="common-data-style-attlist"/>
        <ref name="common-auto-reorder-attlist"/>
        <ref name="common-format-source-attlist"/>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
        <optional>
            <ref name="number-text"/>
        </optional>
        <oneOrMore>
            <ref name="any-date"/>
            <optional>
                <ref name="number-text"/>
            </optional>
        </oneOrMore>
        <zeroOrMore>
            <ref name="style-map"/>
        </zeroOrMore>
    </element>
</define>

<define name="any-date">
    <choice>
        <ref name="number-day"/>
        <ref name="number-month"/>
        <ref name="number-year"/>
        <ref name="number-era"/>
        <ref name="number-day-of-week"/>
        <ref name="number-week-of-year"/>
        <ref name="number-quarter"/>
        <ref name="number-hours"/>
        <ref name="number-am-pm"/>
        <ref name="number-minutes"/>
        <ref name="number-seconds"/>
    </choice>
</define>
<define name="number-day">
    <element name="number:day">
        <ref name="number-day-attlist"/>
        <ref name="common-calendar-attlist"/>
        <empty/>
    </element>
</define>
<define name="number-day-attlist" combine="interleave">
    <optional>
        <attribute name="number:style">
            <choice>
                <value>short</value>
                <value>long</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="number-month">
    <element name="number:month">
        <ref name="number-month-attlist"/>
        <ref name="common-calendar-attlist"/>
        <empty/>
    </element>
</define>
<define name="number-month-attlist" combine="interleave">
    <optional>
        <attribute name="number:textual">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="number-month-attlist" combine="interleave">
    <optional>
        <attribute name="number:possessive-form">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="number-month-attlist" combine="interleave">
    <optional>
        <attribute name="number:style">
            <choice>
                <value>short</value>
                <value>long</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="number-year">
    <element name="number:year">
        <ref name="number-year-attlist"/>
        <ref name="common-calendar-attlist"/>
        <empty/>
    </element>
</define>
<define name="number-year-attlist" combine="interleave">
    <optional>
        <attribute name="number:style">
            <choice>
                <value>short</value>
                <value>long</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="number-era">
    <element name="number:era">
        <ref name="number-era-attlist"/>
        <ref name="common-calendar-attlist"/>
        <empty/>
    </element>
</define>
<define name="number-era-attlist" combine="interleave">
    <optional>
        <attribute name="number:style">
            <choice>
                <value>short</value>
                <value>long</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="number-day-of-week">
    <element name="number:day-of-week">
        <ref name="number-day-of-week-attlist"/>
        <ref name="common-calendar-attlist"/>
        <empty/>
    </element>
</define>
<define name="number-day-of-week-attlist" combine="interleave">
    <optional>
        <attribute name="number:style">
            <choice>
                <value>short</value>
                <value>long</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="number-week-of-year">
    <element name="number:week-of-year">
        <ref name="common-calendar-attlist"/>
        <empty/>
    </element>
</define>
<define name="number-quarter">
    <element name="number:quarter">
        <ref name="number-quarter-attlist"/>
        <ref name="common-calendar-attlist"/>
        <empty/>
    </element>
</define>
<define name="number-quarter-attlist" combine="interleave">
    <optional>
        <attribute name="number:style">
            <choice>
                <value>short</value>
                <value>long</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="number-time-style">
    <element name="number:time-style">
        <ref name="number-time-style-attlist"/>
        <ref name="common-data-style-attlist"/>
        <ref name="common-format-source-attlist"/>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
        <optional>
            <ref name="number-text"/>
        </optional>
        <oneOrMore>
            <ref name="any-time"/>
            <optional>
                <ref name="number-text"/>
            </optional>
        </oneOrMore>
        <zeroOrMore>
            <ref name="style-map"/>
        </zeroOrMore>
    </element>
</define>

<define name="any-time">
    <choice>
        <ref name="number-hours"/>
        <ref name="number-am-pm"/>
        <ref name="number-minutes"/>
        <ref name="number-seconds"/>
    </choice>
</define>
<define name="number-time-style-attlist" combine="interleave">
    <optional>
        <attribute name="number:truncate-on-overflow">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="number-hours">
    <element name="number:hours">
        <ref name="number-hours-attlist"/>
        <empty/>
    </element>
</define>
<define name="number-hours-attlist" combine="interleave">
    <optional>
        <attribute name="number:style">
            <choice>
                <value>short</value>
                <value>long</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="number-minutes">
    <element name="number:minutes">
        <ref name="number-minutes-attlist"/>
        <empty/>
    </element>
</define>
<define name="number-minutes-attlist" combine="interleave">
    <optional>
        <attribute name="number:style">
            <choice>
                <value>short</value>
                <value>long</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="number-seconds">
    <element name="number:seconds">
        <ref name="number-seconds-attlist"/>
        <empty/>
    </element>
</define>
<define name="number-seconds-attlist" combine="interleave">
    <optional>
        <attribute name="number:style">
            <choice>
                <value>short</value>
                <value>long</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="number-seconds-attlist" combine="interleave">
    <optional>
        <attribute name="number:decimal-places">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="number-am-pm">
    <element name="number:am-pm">
        <empty/>
    </element>
</define>
<define name="number-boolean-style">
    <element name="number:boolean-style">
        <ref name="common-data-style-attlist"/>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
        <optional>
            <ref name="number-text"/>
        </optional>
        <optional>
            <ref name="number-boolean"/>
            <optional>
                <ref name="number-text"/>
            </optional>
        </optional>
        <zeroOrMore>
            <ref name="style-map"/>
        </zeroOrMore>
    </element>
</define>
<define name="number-boolean">
    <element name="number:boolean">
        <empty/>
    </element>
</define>
<define name="number-text-style">
    <element name="number:text-style">
        <ref name="common-data-style-attlist"/>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
        <optional>
            <ref name="number-text"/>
        </optional>
        <zeroOrMore>
            <ref name="number-text-content"/>
            <optional>
                <ref name="number-text"/>
            </optional>
        </zeroOrMore>
        <zeroOrMore>
            <ref name="style-map"/>
        </zeroOrMore>
    </element>
</define>
<define name="number-text">
    <element name="number:text">
        <text/>
    </element>
</define>
<define name="number-text-content">
    <element name="number:text-content">
        <empty/>
    </element>
</define>
<define name="common-data-style-attlist" combine="interleave">
    <attribute name="style:name">
        <ref name="styleName"/>
    </attribute>
</define>
<define name="style-data-style-attlist" combine="interleave">
    <optional>
        <attribute name="style:display-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-data-style-attlist" combine="interleave">
    <optional>
        <attribute name="number:language">
            <ref name="languageCode"/>
        </attribute>
    </optional>
</define>
<define name="common-data-style-attlist" combine="interleave">
    <optional>
        <attribute name="number:country">
            <ref name="countryCode"/>
        </attribute>
    </optional>
</define>
<define name="common-data-style-attlist" combine="interleave">
    <optional>
        <attribute name="number:script">
            <ref name="scriptCode"/>
        </attribute>
    </optional>
</define>
<define name="common-data-style-attlist" combine="interleave">
    <optional>
        <attribute name="number:rfc-language-tag">
            <ref name="language"/>
        </attribute>
    </optional>
</define>
<define name="common-data-style-attlist" combine="interleave">
    <optional>
        <attribute name="number:title">
			<ref name="string"/>
		</attribute>
    </optional>
</define>
<define name="common-data-style-attlist" combine="interleave">
    <optional>
        <attribute name="style:volatile">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="common-auto-reorder-attlist" combine="interleave">
    <optional>
        <attribute name="number:automatic-order">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="common-format-source-attlist">
    <optional>
        <attribute name="number:format-source">
            <choice>
                <value>fixed</value>
                <value>language</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-data-style-attlist" combine="interleave">
    <optional>
        <attribute name="number:transliteration-format">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-data-style-attlist" combine="interleave">
    <optional>
        <attribute name="number:transliteration-language">
            <ref name="countryCode"/>
        </attribute>
    </optional>
</define>
<define name="common-data-style-attlist" combine="interleave">
    <optional>
        <attribute name="number:transliteration-country">
            <ref name="countryCode"/>
        </attribute>
    </optional>
</define>
<define name="common-data-style-attlist" combine="interleave">
    <optional>
        <attribute name="number:transliteration-style">
            <choice>
                <value>short</value>
                <value>medium</value>
                <value>long</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-decimal-places-attlist">
    <optional>
        <attribute name="number:decimal-places">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="common-number-attlist" combine="interleave">
    <optional>
        <attribute name="number:min-integer-digits">
            <ref name="integer"/>
        </attribute>
    </optional>
</define>
<define name="common-number-attlist" combine="interleave">
    <optional>
        <attribute name="number:grouping">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="common-calendar-attlist" combine="interleave">
    <optional>
        <attribute name="number:calendar">
            <choice>
                <value>gregorian</value>
                <value>gengou</value>
                <value>ROC</value>
                <value>hanja_yoil</value>
                <value>hanja</value>
                <value>hijri</value>
                <value>jewish</value>
                <value>buddhist</value>
                <ref name="string"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-style-content" combine="choice">
    <group>
        <attribute name="style:family">
            <value>text</value>
        </attribute>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
    </group>
</define>
<define name="style-style-content" combine="choice">
    <group>
        <attribute name="style:family">
            <value>paragraph</value>
        </attribute>
        <optional>
            <ref name="style-paragraph-properties"/>
        </optional>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
    </group>
</define>
<define name="style-style-content" combine="choice">
    <group>
        <attribute name="style:family">
            <value>section</value>
        </attribute>
        <optional>
            <ref name="style-section-properties"/>
        </optional>
    </group>
</define>
<define name="style-style-content" combine="choice">
    <group>
        <attribute name="style:family">
            <value>ruby</value>
        </attribute>
        <optional>
            <ref name="style-ruby-properties"/>
        </optional>
    </group>
</define>
<define name="text-linenumbering-configuration">
    <element name="text:linenumbering-configuration">
        <ref name="text-linenumbering-configuration-attlist"/>
        <optional>
            <ref name="text-linenumbering-separator"/>
        </optional>
    </element>
</define>
<define name="text-linenumbering-configuration-attlist" combine="interleave">
    <optional>
        <attribute name="text:number-lines">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-linenumbering-configuration-attlist" combine="interleave">
    <optional>
        <ref name="common-num-format-attlist"/>
    </optional>
</define>
<define name="text-linenumbering-configuration-attlist" combine="interleave">
    <optional>
        <attribute name="text:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="text-linenumbering-configuration-attlist" combine="interleave">
    <optional>
        <attribute name="text:increment">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="text-linenumbering-configuration-attlist" combine="interleave">
    <optional>
        <attribute name="text:number-position">
            <choice>
                <value>left</value>
                <value>right</value>
                <value>inner</value>
                <value>outer</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="text-linenumbering-configuration-attlist" combine="interleave">
    <optional>
        <attribute name="text:offset">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>
<define name="text-linenumbering-configuration-attlist" combine="interleave">
    <optional>
        <attribute name="text:count-empty-lines">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-linenumbering-configuration-attlist" combine="interleave">
    <optional>
        <attribute name="text:count-in-text-boxes">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-linenumbering-configuration-attlist" combine="interleave">
    <optional>
        <attribute name="text:restart-on-page">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-linenumbering-separator">
    <element name="text:linenumbering-separator">
        <optional>
            <attribute name="text:increment">
                <ref name="nonNegativeInteger"/>
            </attribute>
        </optional>
        <text/>
    </element>
</define>
<define name="text-notes-configuration">
    <element name="text:notes-configuration">
        <ref name="text-notes-configuration-content"/>
    </element>
</define>
<define name="text-notes-configuration-content" combine="interleave">
    <ref name="text-note-class"/>
</define>
<define name="text-notes-configuration-content" combine="interleave">
    <optional>
        <attribute name="text:citation-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="text-notes-configuration-content" combine="interleave">
    <optional>
        <attribute name="text:citation-body-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="text-notes-configuration-content" combine="interleave">
    <optional>
        <attribute name="text:default-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="text-notes-configuration-content" combine="interleave">
    <optional>
        <attribute name="text:master-page-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="text-notes-configuration-content" combine="interleave">
    <optional>
        <attribute name="text:start-value">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="text-notes-configuration-content" combine="interleave">
    <ref name="common-num-format-prefix-suffix-attlist"/>
    <optional>
        <ref name="common-num-format-attlist"/>
    </optional>
</define>
<define name="text-notes-configuration-content" combine="interleave">
    <optional>
        <attribute name="text:start-numbering-at">
            <choice>
                <value>document</value>
                <value>chapter</value>
                <value>page</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="text-notes-configuration-content" combine="interleave">
    <optional>
        <attribute name="text:footnotes-position">
            <choice>
                <value>text</value>
                <value>page</value>
                <value>section</value>
                <value>document</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="text-notes-configuration-content" combine="interleave">
    <optional>
        <element name="text:note-continuation-notice-forward">
            <text/>
        </element>
    </optional>
</define>
<define name="text-notes-configuration-content" combine="interleave">
    <optional>
        <element name="text:note-continuation-notice-backward">
            <text/>
        </element>
    </optional>
</define>
<define name="text-bibliography-configuration">
    <element name="text:bibliography-configuration">
        <ref name="text-bibliography-configuration-attlist"/>
        <zeroOrMore>
            <ref name="text-sort-key"/>
        </zeroOrMore>
    </element>
</define>
<define name="text-bibliography-configuration-attlist" combine="interleave">
    <optional>
        <attribute name="text:prefix">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:suffix">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="text-bibliography-configuration-attlist" combine="interleave">
    <optional>
        <attribute name="text:numbered-entries">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-bibliography-configuration-attlist" combine="interleave">
    <optional>
        <attribute name="text:sort-by-position">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:language">
            <ref name="languageCode"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:country">
            <ref name="countryCode"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:script">
            <ref name="scriptCode"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:rfc-language-tag">
            <ref name="language"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:sort-algorithm">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="text-sort-key">
    <element name="text:sort-key">
        <ref name="text-sort-key-attlist"/>
        <empty/>
    </element>
</define>

<define name="text-sort-key-attlist" combine="interleave">
    <attribute name="text:key">
        <choice>
            <value>address</value>
            <value>annote</value>
            <value>author</value>
            <value>bibliography-type</value>
            <value>booktitle</value>
            <value>chapter</value>
            <value>custom1</value>
            <value>custom2</value>
            <value>custom3</value>
            <value>custom4</value>
            <value>custom5</value>
            <value>edition</value>
            <value>editor</value>
            <value>howpublished</value>
            <value>identifier</value>
            <value>institution</value>
            <value>isbn</value>
            <value>issn</value>
            <value>journal</value>
            <value>month</value>
            <value>note</value>
            <value>number</value>
            <value>organizations</value>
            <value>pages</value>
            <value>publisher</value>
            <value>report-type</value>
            <value>school</value>
            <value>series</value>
            <value>title</value>
            <value>url</value>
            <value>volume</value>
            <value>year</value>
        </choice>
    </attribute>
    <optional>
        <attribute name="text:sort-ascending">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-list-style">
    <element name="text:list-style">
        <ref name="text-list-style-attr"/>
        <zeroOrMore>
            <ref name="text-list-style-content"/>
        </zeroOrMore>
    </element>
</define>
<define name="text-list-style-attr" combine="interleave">
    <attribute name="style:name">
        <ref name="styleName"/>
    </attribute>
</define>
<define name="text-list-style-attr" combine="interleave">
    <optional>
        <attribute name="style:display-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="text-list-style-attr" combine="interleave">
    <optional>
        <attribute name="text:consecutive-numbering">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="text-list-style-content" combine="choice">
    <element name="text:list-level-style-number">
        <ref name="text-list-level-style-attr"/>
        <ref name="text-list-level-style-number-attr"/>
        <optional>
            <ref name="style-list-level-properties"/>
        </optional>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
    </element>
</define>
<define name="text-list-level-style-number-attr" combine="interleave">
    <optional>
        <attribute name="text:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="text-list-level-style-number-attr" combine="interleave">
    <ref name="common-num-format-attlist"/>
    <ref name="common-num-format-prefix-suffix-attlist"/>
</define>
<define name="text-list-level-style-number-attr" combine="interleave">
    <optional>
        <attribute name="text:display-levels">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="text-list-level-style-number-attr" combine="interleave">
    <optional>
        <attribute name="text:start-value">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="text-list-style-content" combine="choice">
    <element name="text:list-level-style-bullet">
        <ref name="text-list-level-style-attr"/>
        <ref name="text-list-level-style-bullet-attr"/>
        <optional>
            <ref name="style-list-level-properties"/>
        </optional>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
    </element>
</define>
<define name="text-list-level-style-bullet-attr" combine="interleave">
    <optional>
        <attribute name="text:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="text-list-level-style-bullet-attr" combine="interleave">
    <attribute name="text:bullet-char">
        <ref name="character"/>
    </attribute>
</define>
<define name="text-list-level-style-bullet-attr" combine="interleave">
    <ref name="common-num-format-prefix-suffix-attlist"/>
</define>
<define name="text-list-level-style-bullet-attr" combine="interleave">
    <optional>
        <attribute name="text:bullet-relative-size">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="text-list-style-content" combine="choice">
    <element name="text:list-level-style-image">
        <ref name="text-list-level-style-attr"/>
        <ref name="text-list-level-style-image-attr"/>
        <optional>
            <ref name="style-list-level-properties"/>
        </optional>
    </element>
</define>
<define name="text-list-level-style-image-attr" combine="interleave">
    <choice>
        <ref name="common-draw-data-attlist"/>
        <ref name="office-binary-data"/>
    </choice>
</define>
<define name="text-list-level-style-attr">
    <attribute name="text:level">
        <ref name="positiveInteger"/>
    </attribute>
</define>
<define name="text-outline-style">
    <element name="text:outline-style">
        <ref name="text-outline-style-attr"/>
        <oneOrMore>
            <ref name="text-outline-level-style"/>
        </oneOrMore>
    </element>
</define>
<define name="text-outline-style-attr" combine="interleave">
    <attribute name="style:name">
        <ref name="styleName"/>
    </attribute>
</define>
<define name="text-outline-level-style">
    <element name="text:outline-level-style">
        <ref name="text-outline-level-style-attlist"/>
        <optional>
            <ref name="style-list-level-properties"/>
        </optional>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
    </element>
</define>
<define name="text-outline-level-style-attlist" combine="interleave">
    <attribute name="text:level">
        <ref name="positiveInteger"/>
    </attribute>
</define>
<define name="text-outline-level-style-attlist" combine="interleave">
    <optional>
        <attribute name="text:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="text-outline-level-style-attlist" combine="interleave">
    <ref name="common-num-format-attlist"/>
    <ref name="common-num-format-prefix-suffix-attlist"/>
</define>
<define name="text-outline-level-style-attlist" combine="interleave">
    <optional>
        <attribute name="text:display-levels">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="text-outline-level-style-attlist" combine="interleave">
    <optional>
        <attribute name="text:start-value">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-style-content" combine="choice">
    <group>
        <attribute name="style:family">
            <value>table</value>
        </attribute>
        <optional>
            <ref name="style-table-properties"/>
        </optional>
    </group>
</define>
<define name="style-style-content" combine="choice">
    <group>
        <attribute name="style:family">
            <value>table-column</value>
        </attribute>
        <optional>
            <ref name="style-table-column-properties"/>
        </optional>
    </group>
</define>
<define name="style-style-content" combine="choice">
    <group>
        <attribute name="style:family">
            <value>table-row</value>
        </attribute>
        <optional>
            <ref name="style-table-row-properties"/>
        </optional>
    </group>
</define>
<define name="style-style-content" combine="choice">
    <group>
        <attribute name="style:family">
            <value>table-cell</value>
        </attribute>
        <optional>
            <ref name="style-table-cell-properties"/>
        </optional>
        <optional>
            <ref name="style-paragraph-properties"/>
        </optional>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
    </group>
</define>
<define name="style-style-content" combine="choice">
    <group>
        <attribute name="style:family">
            <value>table-diagonal-table-headers</value>
        </attribute>
        <optional>
            <ref name="style-diagonal-table-headers-properties"/>
        </optional>
    </group>
</define>
<define name="style-style-content" combine="choice">
    <group>
        <attribute name="style:family">
            <value>table-diagonal-table-header-cell</value>
        </attribute>
        <optional>
            <ref name="style-diagonal-table-header-cell-properties"/>
        </optional>
    </group>
</define>
<define name="style-style-content" combine="choice">
    <group>
        <attribute name="style:family">
            <choice>
                <value>graphic</value>
                <value>presentation</value>
            </choice>
        </attribute>
        <optional>
            <ref name="style-graphic-properties"/>
        </optional>
        <optional>
            <ref name="style-paragraph-properties"/>
        </optional>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
    </group>
</define>

<define name="style-graphic-properties">
    <element name="style:graphic-properties">
        <ref name="style-graphic-properties-content-strict"/>
    </element>
</define>

<define name="style-graphic-properties-content-strict">
    <ref name="style-graphic-properties-attlist"/>
    <ref name="style-graphic-fill-properties-attlist"/>
    <ref name="style-graphic-properties-elements"/>
</define>

<define name=" style-graphic-properties-elements">
    <empty/>
</define>
<define name="style-style-content" combine="choice">
    <group>
        <attribute name="style:family">
            <value>drawing-page</value>
        </attribute>
        <optional>
            <ref name="style-drawing-page-properties"/>
        </optional>
    </group>
</define>

<define name="style-drawing-page-properties">
    <element name="style:drawing-page-properties">
        <ref name="style-drawing-page-properties-content-strict"/>
    </element>
</define>

<define name="style-drawing-page-properties-content-strict">
    <ref name="style-graphic-fill-properties-attlist"/>
    <ref name="style-drawing-page-properties-attlist"/>
    <ref name="style-drawing-page-properties-elements"/>
</define>
<define name="draw-gradient">
    <element name="draw:gradient">
        <ref name="common-draw-gradient-attlist"/>
        <ref name="draw-gradient-attlist"/>
        <empty/>
    </element>
</define>
<define name="common-draw-gradient-attlist" combine="interleave">
    <optional>
        <attribute name="draw:name">
            <ref name="styleName"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-gradient-attlist" combine="interleave">
    <optional>
        <attribute name="draw:display-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-gradient-attlist" combine="interleave">
    <attribute name="draw:style">
        <ref name="gradient-style"/>
    </attribute>
</define>
<define name="gradient-style">
    <choice>
        <value>linear</value>
        <value>axial</value>
        <value>radial</value>
        <value>ellipsoid</value>
        <value>square</value>
        <value>rectangular</value>
    </choice>
</define>
<define name="common-draw-gradient-attlist" combine="interleave">
    <optional>
        <attribute name="draw:cx">
            <ref name="percent"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:cy">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="draw-gradient-attlist" combine="interleave">
    <optional>
        <attribute name="draw:start-color">
            <ref name="color"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:end-color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="draw-gradient-attlist" combine="interleave">
    <optional>
        <attribute name="draw:start-intensity">
            <ref name="percent"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:end-intensity">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-gradient-attlist" combine="interleave">
    <optional>
        <attribute name="draw:angle">
			<ref name="angle"/>
        </attribute>
    </optional>
</define>
<define name="common-draw-gradient-attlist" combine="interleave">
    <optional>
        <attribute name="draw:border">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="svg-linearGradient">
    <element name="svg:linearGradient">
        <ref name="common-svg-gradient-attlist"/>
        <optional>
            <attribute name="svg:x1">
                <choice>
                    <ref name="coordinate"/>
                    <ref name="percent"/>
                </choice>                
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:y1">
                <choice>
                    <ref name="coordinate"/>
                    <ref name="percent"/>
                </choice>                
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:x2">
                <choice>
                    <ref name="coordinate"/>
                    <ref name="percent"/>
                </choice>                
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:y2">
                <choice>
                    <ref name="coordinate"/>
                    <ref name="percent"/>
                </choice>                
            </attribute>
        </optional>
        <zeroOrMore>
            <ref name="svg-stop"/>
        </zeroOrMore>
    </element>
</define>

<define name="svg-radialGradient">
    <element name="svg:radialGradient">
        <ref name="common-svg-gradient-attlist"/>
        <optional>
            <attribute name="svg:cx">
                <choice>
                    <ref name="coordinate"/>
                    <ref name="percent"/>
                </choice>                
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:cy">
                <choice>
                    <ref name="coordinate"/>
                    <ref name="percent"/>
                </choice>                
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:r">
                <choice>
                    <ref name="coordinate"/>
                    <ref name="percent"/>
                </choice>                
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:fx">
                <choice>
                    <ref name="coordinate"/>
                    <ref name="percent"/>
                </choice>                
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:fy">
                <choice>
                    <ref name="coordinate"/>
                    <ref name="percent"/>
                </choice>                
            </attribute>
        </optional>
        <zeroOrMore>
            <ref name="svg-stop"/>
        </zeroOrMore>
    </element>
</define>

<define name="svg-stop">
    <element name="svg:stop">
        <attribute name="svg:offset">
            <choice>
                <ref name="double"/>
                <ref name="percent"/>
            </choice>
        </attribute>
        <optional>
            <attribute name="svg:stop-color">
                <ref name="color"/>
            </attribute>
        </optional>
        <optional>
            <attribute name="svg:stop-opacity">
                <ref name="double"/>
            </attribute>
        </optional>
    </element>
</define>

<define name="common-svg-gradient-attlist" combine="interleave">
    <optional>
        <attribute name="svg:gradientUnits">
            <value>objectBoundingBox</value>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:gradientTransform">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:spreadMethod">
            <choice>
                <value>pad</value>
                <value>reflect</value>
                <value>repeat</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="common-svg-gradient-attlist" combine="interleave">
    <attribute name="draw:name">
        <ref name="styleName"/>
    </attribute>
</define>
<define name="common-svg-gradient-attlist" combine="interleave">
    <optional>
        <attribute name="draw:display-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-hatch">
    <element name="draw:hatch">
        <ref name="draw-hatch-attlist"/>
        <empty/>
    </element>
</define>
<define name="draw-hatch-attlist" combine="interleave">
    <attribute name="draw:name">
        <ref name="styleName"/>
    </attribute>
</define>
<define name="draw-hatch-attlist" combine="interleave">
    <optional>
        <attribute name="draw:display-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-hatch-attlist" combine="interleave">
    <attribute name="draw:style">
        <choice>
            <value>single</value>
            <value>double</value>
            <value>triple</value>
        </choice>
    </attribute>
</define>
<define name="draw-hatch-attlist" combine="interleave">
    <optional>
        <attribute name="draw:color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="draw-hatch-attlist" combine="interleave">
    <optional>
        <attribute name="draw:distance">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="draw-hatch-attlist" combine="interleave">
    <optional>
        <attribute name="draw:rotation">
			<ref name="angle"/>
        </attribute>
    </optional>
</define>
<define name="draw-fill-image">
    <element name="draw:fill-image">
        <ref name="draw-fill-image-attlist"/>
        <attribute name="xlink:href">
            <ref name="anyURI"/>
        </attribute>
        <optional>
            <attribute name="xlink:type">
                <choice>
                    <value>simple</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:show">
                <choice>
                    <value>embed</value>
                </choice>
            </attribute>
        </optional>
        <optional>
            <attribute name="xlink:actuate">
                <choice>
                    <value>onLoad</value>
                </choice>
            </attribute>
        </optional>
        <empty/>
    </element>
</define>
<define name="draw-fill-image-attlist" combine="interleave">
    <attribute name="draw:name">
        <ref name="styleName"/>
    </attribute>
</define>
<define name="draw-fill-image-attlist" combine="interleave">
    <optional>
        <attribute name="draw:display-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-fill-image-attlist" combine="interleave">
    <optional>
        <attribute name="svg:width">
            <ref name="length"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:height">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="draw-opacity">
    <element name="draw:opacity">
        <ref name="common-draw-gradient-attlist"/>
        <ref name="draw-opacity-attlist"/>
        <empty/>
    </element>
</define>
<define name="draw-opacity-attlist" combine="interleave">
    <optional>
        <attribute name="draw:start">
            <ref name="percent"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:end">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="draw-marker">
    <element name="draw:marker">
        <ref name="draw-marker-attlist"/>
        <ref name="common-draw-viewbox-attlist"/>
        <ref name="common-draw-path-data-attlist"/>
        <empty/>
    </element>
</define>
<define name="draw-marker-attlist" combine="interleave">
    <attribute name="draw:name">
        <ref name="styleName"/>
    </attribute>
</define>
<define name="draw-marker-attlist" combine="interleave">
    <optional>
        <attribute name="draw:display-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-stroke-dash">
    <element name="draw:stroke-dash">
        <ref name="draw-stroke-dash-attlist"/>
        <empty/>
    </element>
</define>
<define name="draw-stroke-dash-attlist" combine="interleave">
    <attribute name="draw:name">
        <ref name="styleName"/>
    </attribute>
</define>
<define name="draw-stroke-dash-attlist" combine="interleave">
    <optional>
        <attribute name="draw:display-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="draw-stroke-dash-attlist" combine="interleave">
    <optional>
        <attribute name="draw:style">
            <choice>
                <value>rect</value>
                <value>round</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-stroke-dash-attlist" combine="interleave">
    <optional>
        <attribute name="draw:dots1">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:dots1-length">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:dots2">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:dots2-length">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="draw-stroke-dash-attlist" combine="interleave">
    <optional>
        <attribute name="draw:distance">
            <choice>
				<ref name="length"/>
				<ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-presentation-page-layout">
    <element name="style:presentation-page-layout">
        <attribute name="style:name">
            <ref name="styleName"/>
        </attribute>
        <optional>
            <attribute name="style:display-name">
                <ref name="string"/>
            </attribute>
        </optional>
        <zeroOrMore>
            <ref name="presentation-placeholder"/>
        </zeroOrMore>
    </element>
</define>
<define name="presentation-placeholder">
    <element name="presentation:placeholder">
        <attribute name="presentation:object">
            <ref name="presentation-classes"/>
        </attribute>
        <attribute name="svg:x">
            <choice>
                <ref name="coordinate"/>
                <ref name="percent"/>
            </choice>
        </attribute>
        <attribute name="svg:y">
            <choice>
                <ref name="coordinate"/>
                <ref name="percent"/>
            </choice>
        </attribute>
        <attribute name="svg:width">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
        <attribute name="svg:height">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
        <empty/>
    </element>
</define>
<define name="style-style-content" combine="choice">
    <group>
        <attribute name="style:family">
            <value>chart</value>
        </attribute>
        <optional>
            <ref name="style-chart-properties"/>
        </optional>
        <optional>
            <ref name="style-graphic-properties"/>
        </optional>
        <optional>
            <ref name="style-paragraph-properties"/>
        </optional>
        <optional>
            <ref name="style-text-properties"/>
        </optional>
    </group>
</define>
<define name="style-page-layout-properties">
    <element name="style:page-layout-properties">
        <ref name="style-page-layout-properties-content-strict"/>
    </element>
</define>

<define name="style-page-layout-properties-content-strict">
    <ref name="style-page-layout-properties-attlist"/>
    <ref name="style-page-layout-properties-elements"/>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:page-width">
            <ref name="length"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:page-height">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <ref name="common-num-format-attlist"/>
    </optional>
    <ref name="common-num-format-prefix-suffix-attlist"/>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:paper-tray-name">
            <choice>
                <value>default</value>
                <ref name="string"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:print-orientation">
            <choice>
                <value>portrait</value>
                <value>landscape</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <ref name="common-horizontal-margin-attlist"/>
    <ref name="common-vertical-margin-attlist"/>
    <ref name="common-margin-attlist"/>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <ref name="common-border-attlist"/>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <ref name="common-border-line-width-attlist"/>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <ref name="common-padding-attlist"/>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <ref name="common-shadow-attlist"/>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <ref name="common-background-color-attlist"/>
</define>
<define name="style-page-layout-properties-elements" combine="interleave">
    <ref name="style-background-image"/>
</define>
<define name="style-page-layout-properties-elements" combine="interleave">
    <ref name="style-columns"/>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:register-truth-ref-style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:print">
            <list>
                <zeroOrMore>
                    <choice>
                        <value>headers</value>
                        <value>grid</value>
                        <value>annotations</value>
                        <value>objects</value>
                        <value>charts</value>
                        <value>drawings</value>
                        <value>formulas</value>
                        <value>zero-values</value>
                    </choice>
                </zeroOrMore>
            </list>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:print-page-order">
            <choice>
                <value>ttb</value>
                <value>ltr</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:first-page-number">
            <choice>
                <ref name="positiveInteger"/>
                <value>continue</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:scale-to">
            <ref name="percent"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:scale-to-pages">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:table-centering">
            <choice>
                <value>horizontal</value>
                <value>vertical</value>
                <value>both</value>
                <value>none</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:footnote-max-height">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <ref name="common-writing-mode-attlist"/>
</define>
<define name="style-page-layout-properties-elements" combine="interleave">
    <ref name="style-footnote-sep"/>
</define>

<define name="style-footnote-sep">
    <optional>
        <element name="style:footnote-sep">
            <ref name="style-footnote-sep-attlist"/>
            <empty/>
        </element>
    </optional>
</define>
<define name="style-footnote-sep-attlist" combine="interleave">
    <optional>
        <attribute name="style:width">
            <ref name="length"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:rel-width">
            <ref name="percent"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:color">
            <ref name="color"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:line-style">
            <ref name="lineStyle"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:adjustment">
            <choice>
                <value>left</value>
                <value>center</value>
                <value>right</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:distance-before-sep">
            <ref name="length"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:distance-after-sep">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:layout-grid-mode">
            <choice>
                <value>none</value>
                <value>line</value>
                <value>both</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:layout-grid-standard-mode">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:layout-grid-base-height">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:layout-grid-ruby-height">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:layout-grid-lines">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:layout-grid-base-width">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:layout-grid-color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:layout-grid-ruby-below">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:layout-grid-print">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:layout-grid-display">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-page-layout-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:layout-grid-snap-to">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-header-footer-properties">
    <element name="style:header-footer-properties">
        <ref name="style-header-footer-properties-content-strict"/>
    </element>
</define>

<define name="style-header-footer-properties-content-strict">
        <ref name="style-header-footer-properties-attlist"/>
        <ref name="style-header-footer-properties-elements"/>
</define>
<define name="style-header-footer-properties-attlist" combine="interleave">
    <optional>
        <attribute name="svg:height">
            <ref name="length"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:min-height">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-header-footer-properties-attlist" combine="interleave">
    <ref name="common-horizontal-margin-attlist"/>
    <ref name="common-vertical-margin-attlist"/>
    <ref name="common-margin-attlist"/>
</define>
<define name="style-header-footer-properties-attlist" combine="interleave">
    <ref name="common-border-attlist"/>
</define>
<define name="style-header-footer-properties-attlist" combine="interleave">
    <ref name="common-border-line-width-attlist"/>
</define>
<define name="style-header-footer-properties-attlist" combine="interleave">
    <ref name="common-padding-attlist"/>
</define>
<define name="style-header-footer-properties-attlist" combine="interleave">
    <ref name="common-background-color-attlist"/>
</define>
<define name="style-header-footer-properties-elements" combine="interleave">
    <ref name="style-background-image"/>
</define>
<define name="style-header-footer-properties-attlist" combine="interleave">
    <ref name="common-shadow-attlist"/>
</define>
<define name="style-header-footer-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:dynamic-spacing">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties">
    <element name="style:text-properties">
        <ref name="style-text-properties-content-strict"/>
    </element>
</define>

<define name="style-text-properties-content-strict">
    <ref name="style-text-properties-attlist"/>
    <ref name="style-text-properties-elements"/>
</define>

<define name="style-text-properties-elements">
    <empty/>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:font-variant">
            <ref name="fontVariant"/>
        </attribute>
    </optional>
</define>

<define name="fontVariant">
    <choice>
        <value>normal</value>
        <value>small-caps</value>
    </choice>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:text-transform">
            <choice>
                <value>none</value>
                <value>lowercase</value>
                <value>uppercase</value>
                <value>capitalize</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
            <attribute name="fo:color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:use-window-font-color">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-outline">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-line-through-type">
            <ref name="lineType"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-line-through-style">
            <ref name="lineStyle"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-line-through-width">
            <ref name="lineWidth"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-line-through-color">
            <choice>
                <value>font-color</value>
                <ref name="color"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-line-through-text">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-line-through-text-style">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-position">
            <list>
                <choice>
                    <ref name="percent"/>
                    <value>super</value>
                    <value>sub</value>
                </choice>
                <optional>
                    <ref name="percent"/>
                </optional>
            </list>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:font-name">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-name-asian">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-name-complex">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:font-family">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-family-asian">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-family-complex">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:font-family-generic">
            <ref name="fontFamilyGeneric"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-family-generic-asian">
            <ref name="fontFamilyGeneric"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-family-generic-complex">
            <ref name="fontFamilyGeneric"/>
        </attribute>
    </optional>
</define>

<define name="fontFamilyGeneric">
    <choice>
        <value>roman</value>
        <value>swiss</value>
        <value>modern</value>
        <value>decorative</value>
        <value>script</value>
        <value>system</value>
    </choice>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:font-style-name">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-style-name-asian">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-style-name-complex">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:font-pitch">
            <ref name="fontPitch"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-pitch-asian">
            <ref name="fontPitch"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-pitch-complex">
            <ref name="fontPitch"/>
        </attribute>
    </optional>
</define>

<define name="fontPitch">
    <choice>
        <value>fixed</value>
        <value>variable</value>
    </choice>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:font-charset">
            <ref name="textEncoding"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-charset-asian">
            <ref name="textEncoding"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-charset-complex">
            <ref name="textEncoding"/>
        </attribute>
    </optional>
</define>

<define name="textEncoding">
    <data type="string">
        <param name="pattern">[A-Za-z][A-Za-z0-9._\-]*</param>
    </data>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:font-size">
            <choice>
                <ref name="positiveLength"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-size-asian">
            <choice>
                <ref name="positiveLength"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-size-complex">
            <choice>
                <ref name="positiveLength"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:font-size-rel">
            <ref name="length"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-size-rel-asian">
            <ref name="length"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-size-rel-complex">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:script-type">
            <choice>
                <value>latin</value>
                <value>asian</value>
                <value>complex</value>
                <value>ignore</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:letter-spacing">
            <choice>
                <ref name="length"/>
                <value>normal</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:language">
            <ref name="languageCode"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:language-asian">
            <ref name="languageCode"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:language-complex">
            <ref name="languageCode"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:country">
            <ref name="countryCode"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:country-asian">
            <ref name="countryCode"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:country-complex">
            <ref name="countryCode"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:script">
            <ref name="scriptCode"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:script-asian">
            <ref name="scriptCode"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:script-complex">
            <ref name="scriptCode"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:rfc-language-tag">
            <ref name="language"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:rfc-language-tag-asian">
            <ref name="language"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:rfc-language-tag-complex">
            <ref name="language"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:font-style">
            <ref name="fontStyle"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-style-asian">
            <ref name="fontStyle"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-style-complex">
            <ref name="fontStyle"/>
        </attribute>
    </optional>
</define>

<define name="fontStyle">
    <choice>
        <value>normal</value>
        <value>italic</value>
        <value>oblique</value>
    </choice>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:font-relief">
            <choice>
            <value>none</value>
                <value>embossed</value>
                <value>engraved</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:text-shadow">
            <ref name="shadowType"/>
        </attribute>
    </optional>
</define>

<define name="shadowType">
    <choice>
        <value>none</value>
        <ref name="string"/>
    </choice>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-underline-type">
            <ref name="lineType"/>
        </attribute>
    </optional>
</define>

<define name="lineType">
    <choice>
        <value>none</value>
        <value>single</value>
        <value>double</value>
    </choice>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-underline-style">
            <ref name="lineStyle"/>
        </attribute>
    </optional>
</define>

<define name="lineStyle">
    <choice>
        <value>none</value>
        <value>solid</value>
        <value>dotted</value>
        <value>dash</value>
        <value>long-dash</value>
        <value>dot-dash</value>
        <value>dot-dot-dash</value>
        <value>wave</value>
    </choice>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-underline-width">
            <ref name="lineWidth"/>
        </attribute>
    </optional>
</define>

<define name="lineWidth">
    <choice>
        <value>auto</value>
        <value>normal</value>
        <value>bold</value>
        <value>thin</value>
        <value>dash</value>
        <value>medium</value>
        <value>thick</value>
        <ref name="positiveInteger"/>
        <ref name="percent"/>
        <ref name="positiveLength"/>
    </choice>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-underline-color">
            <choice>
                <value>font-color</value>
                <ref name="color"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-overline-type">
            <ref name="lineType"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-overline-style">
            <ref name="lineStyle"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-overline-width">
            <ref name="lineWidth"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-overline-color">
            <choice>
                <value>font-color</value>
                <ref name="color"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-overline-mode">
            <ref name="lineMode"/>
        </attribute>
    </optional>
</define>

<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:font-weight">
            <ref name="fontWeight"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-weight-asian">
            <ref name="fontWeight"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:font-weight-complex">
            <ref name="fontWeight"/>
        </attribute>
    </optional>
</define>

<define name="fontWeight">
    <choice>
        <value>normal</value>
        <value>bold</value>
        <value>100</value>
        <value>200</value>
        <value>300</value>
        <value>400</value>
        <value>500</value>
        <value>600</value>
        <value>700</value>
        <value>800</value>
        <value>900</value>
    </choice>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-underline-mode">
            <ref name="lineMode"/>
        </attribute>
    </optional>
</define>

<define name="lineMode">
    <choice>
        <value>continuous</value>
        <value>skip-white-space</value>
    </choice>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-line-through-mode">
            <ref name="lineMode"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:letter-kerning">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-blinking">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <ref name="common-background-color-attlist"/>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-combine">
            <choice>
                <value>none</value>
                <value>letters</value>
                <value>lines</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-combine-start-char">
            <ref name="character"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:text-combine-end-char">
            <ref name="character"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-emphasize">
            <choice>
                <value>none</value>
                <list>
                    <choice>
                        <value>none</value>
                        <value>accent</value>
                        <value>dot</value>
                        <value>circle</value>
                        <value>disc</value>
                    </choice>
                    <choice>
                        <value>above</value>
                        <value>below</value>
                    </choice>
                </list>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-scale">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-rotation-angle">
            <choice>
                <value>0</value>
                <value>90</value>
                <value>270</value>
	            <ref name="angle"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-rotation-scale">
            <choice>
                <value>fixed</value>
                <value>line-height</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:hyphenate">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:hyphenation-remain-char-count">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:hyphenation-push-char-count">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-text-properties-attlist" combine="interleave">
    <choice>
        <attribute name="text:display">
            <value>true</value>
        </attribute>
        <attribute name="text:display">
            <value>none</value>
        </attribute>
        <group>
            <attribute name="text:display">
                <value>condition</value>
            </attribute>
            <attribute name="text:condition">
                <value>none</value>
            </attribute>
        </group>
        <empty/>
    </choice>
</define>
<define name="style-paragraph-properties">
    <element name="style:paragraph-properties">
        <ref name="style-paragraph-properties-content-strict"/>
    </element>
</define>

<define name="style-paragraph-properties-content-strict">
    <ref name="style-paragraph-properties-attlist"/>
    <ref name="style-paragraph-properties-elements"/>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:line-height">
            <choice>
                <value>normal</value>
                <ref name="nonNegativeLength"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:line-height-at-least">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:line-spacing">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:font-independent-line-spacing">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-text-align"/>
</define>

<define name="common-text-align">
    <optional>
        <attribute name="fo:text-align">
            <choice>
                <value>start</value>
                <value>end</value>
                <value>left</value>
                <value>right</value>
                <value>center</value>
                <value>justify</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:text-align-last">
            <choice>
                <value>start</value>
                <value>center</value>
                <value>justify</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:justify-single-word">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:keep-together">
            <choice>
                <value>auto</value>
                <value>always</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:widows">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:orphans">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-elements" combine="interleave">
    <ref name="style-tab-stops"/>
</define>

<define name="style-tab-stops">
    <optional>
        <element name="style:tab-stops">
            <zeroOrMore>
                <ref name="style-tab-stop"/>
            </zeroOrMore>
        </element>
    </optional>
</define>

<define name="style-tab-stop">
    <element name="style:tab-stop">
        <ref name="style-tab-stop-attlist"/>
        <empty/>
    </element>
</define>
<define name="style-tab-stop-attlist" combine="interleave">
    <attribute name="style:position">
        <ref name="length"/>
    </attribute>
</define>
<define name="style-tab-stop-attlist" combine="interleave">
    <choice>
        <optional>
            <attribute name="style:type">
                <choice>
                    <value>left</value>
                    <value>center</value>
                    <value>right</value>
                </choice>
            </attribute>
        </optional>
        <group>
            <attribute name="style:type">
                <value>char</value>
            </attribute>
            <ref name="style-tab-stop-char-attlist"/>
        </group>
    </choice>
</define>
<define name="style-tab-stop-char-attlist" combine="interleave">
    <attribute name="style:char">
        <ref name="character"/>
    </attribute>
</define>
<define name="style-tab-stop-attlist" combine="interleave">
    <optional>
        <attribute name="style:leader-type">
            <ref name="lineType"/>
        </attribute>
    </optional>
</define>
<define name="style-tab-stop-attlist" combine="interleave">
    <optional>
        <attribute name="style:leader-style">
            <ref name="lineStyle"/>
        </attribute>
    </optional>
</define>
<define name="style-tab-stop-attlist" combine="interleave">
    <optional>
        <attribute name="style:leader-width">
            <ref name="lineWidth"/>
        </attribute>
    </optional>
</define>
<define name="style-tab-stop-attlist" combine="interleave">
    <optional>
        <attribute name="style:leader-color">
            <choice>
                <value>font-color</value>
                <ref name="color"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-tab-stop-attlist" combine="interleave">
    <optional>
        <attribute name="style:leader-text">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-tab-stop-attlist" combine="interleave">
    <optional>
        <attribute name="style:leader-text-style">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:tab-stop-distance">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:hyphenation-keep">
            <choice>
                <value>auto</value>
                <value>page</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:hyphenation-ladder-count">
            <choice>
                <value>no-limit</value>
                <ref name="positiveInteger"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-elements" combine="interleave">
    <ref name="style-drop-cap"/>
</define>

<define name="style-drop-cap">
    <optional>
        <element name="style:drop-cap">
            <ref name="style-drop-cap-attlist"/>
            <empty/>
        </element>
    </optional>
</define>
<define name="style-drop-cap-attlist" combine="interleave">
    <optional>
        <attribute name="style:length">
            <choice>
                <value>word</value>
                <ref name="positiveInteger"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-drop-cap-attlist" combine="interleave">
    <optional>
        <attribute name="style:lines">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-drop-cap-attlist" combine="interleave">
    <optional>
        <attribute name="style:distance">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-drop-cap-attlist" combine="interleave">
    <optional>
        <attribute name="style:style-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
        <optional>
            <attribute name="style:register-true">
                <ref name="boolean"/>
            </attribute>
        </optional>
    </define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-horizontal-margin-attlist"/>
</define>

<define name="common-horizontal-margin-attlist">
    <optional>
        <attribute name="fo:margin-left">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:margin-right">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:text-indent">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:auto-text-indent">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-vertical-margin-attlist"/>
</define>

<define name="common-vertical-margin-attlist">
    <optional>
        <attribute name="fo:margin-top">
            <choice>
                <ref name="nonNegativeLength"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:margin-bottom">
            <choice>
                <ref name="nonNegativeLength"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-margin-attlist"/>
</define>

<define name="common-margin-attlist">
    <optional>
        <attribute name="fo:margin">
            <choice>
                <ref name="nonNegativeLength"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-break-attlist"/>
</define>

<define name="common-break-attlist">
    <optional>
        <attribute name="fo:break-before">
            <choice>
                <value>auto</value>
                <value>column</value>
                <value>page</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:break-after">
            <choice>
                <value>auto</value>
                <value>column</value>
                <value>page</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-background-color-attlist"/>
</define>

<define name="common-background-color-attlist">
    <optional>
        <attribute name="fo:background-color">
            <choice>
                <value>transparent</value>
                <ref name="color"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-elements" combine="interleave">
    <ref name="style-background-image"/>
</define>

<define name="style-background-image">
    <optional>
        <element name="style:background-image">
            <ref name="style-background-image-attlist"/>
            <choice>
                <ref name="common-draw-data-attlist"/>
                <ref name="office-binary-data"/>
                <empty/>
            </choice>
        </element>
    </optional>
</define>
<define name="style-background-image-attlist" combine="interleave">
    <optional>
        <attribute name="style:repeat">
            <choice>
                <value>no-repeat</value>
                <value>repeat</value>
                <value>stretch</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-background-image-attlist" combine="interleave">
    <optional>
        <attribute name="style:position">
            <choice>
                <value>left</value>
                <value>center</value>
                <value>right</value>
                <value>top</value>
                <value>bottom</value>
                <list>
                    <ref name="horiBackPos"/>
                    <ref name="vertBackPos"/>
                </list>
                <list>
                    <ref name="vertBackPos"/>
                    <ref name="horiBackPos"/>
                </list>
            </choice>
        </attribute>
    </optional>
</define>

<define name="horiBackPos">
    <choice>
        <value>left</value>
        <value>center</value>
        <value>right</value>
    </choice>
</define>
<define name="vertBackPos">
    <choice>
        <value>top</value>
        <value>center</value>
        <value>bottom</value>
    </choice>
</define>
<define name="style-background-image-attlist" combine="interleave">
    <optional>
        <attribute name="style:filter-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-background-image-attlist" combine="interleave">
    <optional>
        <attribute name="draw:opacity">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-border-attlist"/>
</define>

<define name="common-border-attlist">
    <optional>
        <attribute name="fo:border">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:border-top">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:border-bottom">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:border-left">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:border-right">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-border-line-width-attlist"/>
</define>

<define name="common-border-line-width-attlist">
    <optional>
        <attribute name="style:border-line-width">
            <ref name="borderWidths"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:border-line-width-top">
            <ref name="borderWidths"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:border-line-width-bottom">
            <ref name="borderWidths"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:border-line-width-left">
            <ref name="borderWidths"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:border-line-width-right">
            <ref name="borderWidths"/>
        </attribute>
    </optional>
</define>

<define name="borderWidths">
    <list>
        <ref name="positiveLength"/>
        <ref name="positiveLength"/>
        <ref name="positiveLength"/>
    </list>
</define> 
<define name="style-paragraph-properties-attlist" combine="interleave">
      <optional>
          <attribute name="style:join-border">
              <ref name="boolean"/>
          </attribute>
      </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-padding-attlist"/>
</define>

<define name="common-padding-attlist">
    <optional>
        <attribute name="fo:padding">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:padding-top">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:padding-bottom">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:padding-left">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:padding-right">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-shadow-attlist"/>
</define>

<define name="common-shadow-attlist">
    <optional>
        <attribute name="style:shadow">
            <ref name="shadowType"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-keep-with-next-attlist"/>
</define>

<define name="common-keep-with-next-attlist">
    <optional>
        <attribute name="fo:keep-with-next">
            <choice>
                <value>auto</value>
                <value>always</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:number-lines">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:line-number">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-autospace">
            <choice>
                <value>none</value>
                <value>ideograph-alpha</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:punctuation-wrap">
            <choice>
                <value>simple</value>
                <value>hanging</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:line-break">
            <choice>
                <value>normal</value>
                <value>strict</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:vertical-align">
            <choice>
                <value>top</value>
                <value>middle</value>
                <value>bottom</value>
                <value>auto</value>
                <value>baseline</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-writing-mode-attlist"/>
</define>

<define name="common-writing-mode-attlist">
    <optional>
        <attribute name="style:writing-mode">
            <choice>
                <value>lr-tb</value>
                <value>rl-tb</value>
                <value>tb-rl</value>
                <value>tb-lr</value>
                <value>lr</value>
                <value>rl</value>
                <value>tb</value>
                <value>page</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:writing-mode-automatic">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:snap-to-layout-grid">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-page-number-attlist"/>
</define>

<define name="common-page-number-attlist">
    <optional>
        <attribute name="style:page-number">
            <choice>
                <ref name="positiveInteger"/>
                <value>auto</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-paragraph-properties-attlist" combine="interleave">
    <ref name="common-background-transparency-attlist"/>
</define>
<define name="common-background-transparency-attlist">
    <optional>
        <attribute name="style:background-transparency">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-ruby-properties">
    <element name="style:ruby-properties">
        <ref name="style-ruby-properties-content-strict"/>
    </element>
</define>

<define name="style-ruby-properties-content-strict">
    <ref name="style-ruby-properties-attlist"/>
    <ref name="style-ruby-properties-elements"/>
</define>

<define name="style-ruby-properties-elements">
    <empty/>
</define>
<define name="style-ruby-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:ruby-position">
            <choice>
                <value>above</value>
                <value>below</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-ruby-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:ruby-align">
            <choice>
                <value>left</value>
                <value>center</value>
                <value>right</value>
                <value>distribute-letter</value>
                <value>distribute-space</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-section-properties">
    <element name="style:section-properties">
        <ref name="style-section-properties-content-strict"/>
    </element>
</define>

<define name="style-section-properties-content-strict">
    <ref name="style-section-properties-attlist"/>
    <ref name="style-section-properties-elements"/>
</define>
<define name="style-section-properties-attlist" combine="interleave">
    <ref name="common-background-color-attlist"/>
</define>
<define name="style-section-properties-elements" combine="interleave">
    <ref name="style-background-image"/>
</define>
<define name="style-section-properties-attlist" combine="interleave">
    <ref name="common-horizontal-margin-attlist"/>
</define>
<define name="style-section-properties-elements" combine="interleave">
    <ref name="style-columns"/>
</define>

<define name="style-columns">
    <optional>
        <element name="style:columns">
            <ref name="style-columns-attlist"/>
            <optional>
                <ref name="style-column-sep"/>
            </optional>
            <zeroOrMore>
                <ref name="style-column"/>
            </zeroOrMore>
        </element>
    </optional>
</define>
<define name="style-columns-attlist" combine="interleave">
    <attribute name="fo:column-count">
        <ref name="positiveInteger"/>
    </attribute>
</define>
<define name="style-columns-attlist" combine="interleave">
    <optional>
        <attribute name="fo:column-gap">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-column">
    <element name="style:column">
        <ref name="style-column-attlist"/>
    </element>
</define>
<define name="style-column-attlist" combine="interleave">
    <attribute name="style:rel-width">
        <ref name="relativeLength"/>
    </attribute>
</define>
<define name="style-column-attlist" combine="interleave">
    <optional>
        <attribute name="fo:start-indent">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-column-attlist" combine="interleave">
    <optional>
        <attribute name="fo:end-indent">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-column-attlist" combine="interleave">
    <optional>
        <attribute name="fo:space-before">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-column-attlist" combine="interleave">
    <optional>
        <attribute name="fo:space-after">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-column-sep">
    <element name="style:column-sep">
        <ref name="style-column-sep-attlist"/>
    </element>
</define>
<define name="style-column-sep-attlist" combine="interleave">
    <optional>
        <attribute name="style:style">
            <choice>
                <value>none</value>
                <value>solid</value>
                <value>dotted</value>
                <value>dashed</value>
                <value>dot-dashed</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-column-sep-attlist" combine="interleave">
    <attribute name="style:width">
        <ref name="length"/>
    </attribute>
</define>
<define name="style-column-sep-attlist" combine="interleave">
    <optional>
        <attribute name="style:height">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-column-sep-attlist" combine="interleave">
    <optional>
        <attribute name="style:vertical-align">
            <choice>
                <value>top</value>
                <value>middle</value>
                <value>bottom</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-column-sep-attlist" combine="interleave">
    <optional>
        <attribute name="style:color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="style-section-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:protect">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-section-properties-attlist" combine="interleave">
    <ref name="common-editable-attlist"/>
</define>
<define name="style-section-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:dont-balance-text-columns">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-section-properties-attlist" combine="interleave">
    <ref name="common-writing-mode-attlist"/>
</define>
<define name="style-section-properties-elements" combine="interleave">
    <zeroOrMore>
        <ref name="text-notes-configuration"/>
    </zeroOrMore>
</define>
<define name="style-table-properties">
    <element name="style:table-properties">
        <ref name="style-table-properties-content-strict"/>
    </element>
</define>

<define name="style-table-properties-content-strict">
    <ref name="style-table-properties-attlist"/>
    <ref name="style-table-properties-elements"/>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:width">
            <ref name="positiveLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:rel-width">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <optional>
        <attribute name="table:align">
            <choice>
                <value>left</value>
                <value>center</value>
                <value>right</value>
                <value>margins</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <ref name="common-horizontal-margin-attlist"/>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <ref name="common-vertical-margin-attlist"/>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <ref name="common-margin-attlist"/>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <ref name="common-page-number-attlist"/>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <ref name="common-break-attlist"/>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <ref name="common-background-color-attlist"/>
</define>
<define name="style-table-properties-elements" combine="interleave">
    <ref name="style-background-image"/>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <ref name="common-shadow-attlist"/>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <ref name="common-keep-with-next-attlist"/>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:may-break-between-rows">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <optional>
        <attribute name="table:border-model">
            <choice>
                <value>collapsing</value>
                <value>separating</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <ref name="common-writing-mode-attlist"/>
</define>
<define name="style-table-properties-attlist" combine="interleave">
    <optional>
        <attribute name="table:display">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-table-column-properties">
    <element name="style:table-column-properties">
        <ref name="style-table-column-properties-content-strict"/>
    </element>
</define>

<define name="style-table-column-properties-content-strict">
    <ref name="style-table-column-properties-attlist"/>
    <ref name="style-table-column-properties-elements"/>
</define>

<define name="style-table-column-properties-elements">
    <empty/>
</define>
<define name="style-table-column-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:column-width">
            <ref name="positiveLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:rel-column-width">
            <ref name="relativeLength"/>
        </attribute>
    </optional>
</define>
<define name="style-table-column-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:use-optimal-column-width">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-table-column-properties-attlist" combine="interleave">
    <ref name="common-break-attlist"/>
</define>
<define name="style-table-row-properties">
    <element name="style:table-row-properties">
        <ref name="style-table-row-properties-content-strict"/>
    </element>
</define>

<define name="style-table-row-properties-content-strict">
    <ref name="style-table-row-properties-attlist"/>
    <ref name="style-table-row-properties-elements"/>
</define>
<define name="style-table-row-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:row-height">
            <ref name="positiveLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:min-row-height">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>
<define name="style-table-row-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:use-optimal-row-height">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-table-row-properties-attlist" combine="interleave">
    <ref name="common-background-color-attlist"/>
</define>
<define name="style-table-row-properties-elements" combine="interleave">
    <ref name="style-background-image"/>
</define>
<define name="style-table-row-properties-attlist" combine="interleave">
    <ref name="common-break-attlist"/>
</define>
<define name="style-table-row-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:keep-together">
            <choice>
                <value>auto</value>
                <value>always</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-table-cell-properties">
    <element name="style:table-cell-properties">
        <ref name="style-table-cell-properties-content-strict"/>
    </element>
</define>

<define name="style-table-cell-properties-content-strict">
    <ref name="style-table-cell-properties-attlist"/>
    <ref name="style-table-cell-properties-elements"/>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:vertical-align">
            <choice>
                <value>top</value>
                <value>middle</value>
                <value>bottom</value>
                <value>automatic</value>
            </choice>
            </attribute>
    </optional>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:text-align-source">
            <choice>
                <value>fix</value>
                <value>value-type</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <ref name="common-style-direction-attlist"/>
</define>

<define name="common-style-direction-attlist">
    <optional>
        <attribute name="style:direction">
            <choice>
                <value>ltr</value>
                <value>ttb</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:glyph-orientation-vertical">
            <choice>
                <value>auto</value>
                <value>0</value>
                <value>0deg</value>
                <value>0rad</value>
                <value>0grad</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <ref name="common-writing-mode-attlist"/>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <ref name="common-shadow-attlist"/>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <ref name="common-background-color-attlist"/>
</define>
<define name="style-table-cell-properties-elements" combine="interleave">
    <ref name="style-background-image"/>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <ref name="common-border-attlist"/>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:diagonal-tl-br">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:diagonal-tl-br-widths">
            <ref name="borderWidths"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:diagonal-bl-tr">
            <ref name="string"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="style:diagonal-bl-tr-widths">
            <ref name="borderWidths"/>
        </attribute>
    </optional>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <ref name="common-border-line-width-attlist"/>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <ref name="common-padding-attlist"/>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:wrap-option">
            <choice>
                <value>no-wrap</value>
                <value>wrap</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <ref name="common-rotation-angle-attlist"/>
</define>

<define name="common-rotation-angle-attlist">
    <optional>
        <attribute name="style:rotation-angle">
            <ref name="angle"/>
        </attribute>
    </optional>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:rotation-align">
            <choice>
                <value>none</value>
                <value>bottom</value>
                <value>top</value>
                <value>center</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:cell-protect">
            <choice>
                <value>none</value>
                <value>hidden-and-protected</value>
                <list>
                    <oneOrMore>
                        <choice>
                            <value>protected</value>
                            <value>formula-hidden</value>
                        </choice>
                    </oneOrMore>
                </list>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:print-content">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:decimal-places">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:repeat-content">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-table-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:shrink-to-fit">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-list-level-properties">
    <element name="style:list-level-properties">
        <ref name="style-list-level-properties-content-strict"/>
    </element>
</define>

<define name="style-list-level-properties-content-strict">
    <ref name="style-list-level-properties-attlist"/>
    <ref name="style-list-level-properties-elements"/>
</define>

<define name="style-list-level-properties-elements">
    <empty/>
</define>
<define name="style-list-level-properties-attlist" combine="interleave">
    <ref name="common-text-align"/>
</define>
<define name="style-list-level-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:space-before">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-list-level-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:min-label-width">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>
<define name="style-list-level-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:min-label-distance">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>
<define name="style-list-level-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:font-name">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-list-level-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:width">
            <ref name="positiveLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:height">
            <ref name="positiveLength"/>
        </attribute>
    </optional>
</define>
<define name="style-list-level-properties-attlist" combine="interleave">
    <ref name="common-vertical-rel-attlist"/>
    <ref name="common-vertical-pos-attlist"/>
</define>
<define name="style-list-level-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:list-level-position-and-space-mode">
            <choice>
                <value>label-width-and-position</value>
                <value>label-alignment</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-list-level-properties-elements" combine="interleave">
    <ref name="style-list-level-label-alignment"/>
</define>

<define name="style-list-level-label-alignment">
    <optional>
        <element name="style:list-level-label-alignment">
            <ref name="style-list-level-label-alignment-attlist"/>
            <empty/>
        </element>
    </optional>
</define>
<define name="style-list-level-label-alignment-attlist" combine="interleave">
    <attribute name="text:label-followed-by">
        <choice>
            <value>listtab</value>
            <value>space</value>
            <value>nothing</value>
        </choice>
    </attribute>
</define>
<define name="style-list-level-label-alignment-attlist" combine="interleave">
    <optional>
        <attribute name="text:list-tab-stop-position">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>
<define name="style-list-level-label-alignment-attlist" combine="interleave">
    <optional>
<!-- DRAFT7: text:text-indent actually must be fo:text-indent -->
        <attribute name="fo:text-indent">
            <ref name="length"/>
        </attribute>
    </optional>
</define>

<define name="style-list-level-label-alignment-attlist" combine="interleave">
    <optional>
        <attribute name="fo:margin-left">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:stroke">
            <choice>
                <value>none</value>
                <value>dash</value>
                <value>solid</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:stroke-dash">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:stroke-dash-names">
            <ref name="styleNameRefs"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="svg:stroke-width">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="svg:stroke-color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:marker-start">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:marker-end">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:marker-start-width">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:marker-end-width">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:marker-start-center">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:marker-end-center">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="svg:stroke-opacity">
            <choice>
                <data type="double">
                    <param name="minInclusive">0</param>
                    <param name="maxInclusive">1</param>
                </data>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:stroke-linejoin">
            <choice>
                <value>miter</value>
                <value>round</value>
                <value>bevel</value>
                <value>middle</value>
                <value>none</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="svg:stroke-linecap">
            <choice>
                <value>butt</value>
                <value>square</value>
                <value>round</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:fill">
            <choice>
                <value>none</value>
                <value>solid</value>
                <value>bitmap</value>
                <value>gradient</value>
                <value>hatch</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:fill-color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:secondary-fill-color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:fill-gradient-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:gradient-step-count">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:fill-hatch-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:fill-hatch-solid">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:fill-image-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:repeat">
            <choice>
                <value>no-repeat</value>
                <value>repeat</value>
                <value>stretch</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:fill-image-width">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:fill-image-height">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:fill-image-ref-point-x">
            <ref name="percent"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:fill-image-ref-point-y">
            <ref name="percent"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:fill-image-ref-point">
            <choice>
                <value>top-left</value>
                <value>top</value>
                <value>top-right</value>
                <value>left</value>
                <value>center</value>
                <value>right</value>
                <value>bottom-left</value>
                <value>bottom</value>
                <value>bottom-right</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:tile-repeat-offset">
			<ref name="string"/>
		</attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:opacity">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:opacity-name">
            <ref name="styleNameRef"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-fill-properties-attlist" combine="interleave">
    <optional>
        <attribute name="svg:fill-rule">
            <choice>
                <value>nonzero</value>
                <value>evenodd</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:symbol-color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:animation">
            <choice>
                <value>none</value>
                <value>scroll</value>
                <value>alternate</value>
                <value>slide</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:animation-direction">
            <choice>
                <value>left</value>
                <value>right</value>
                <value>up</value>
                <value>down</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:animation-start-inside">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:animation-stop-inside">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:animation-repeat">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:animation-delay">
            <ref name="duration"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="text:animation-steps">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:auto-grow-width">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:auto-grow-height">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:fit-to-size">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:fit-to-contour">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:textarea-vertical-align">
            <choice>
                <value>top</value>
                <value>middle</value>
                <value>bottom</value>
                <value>justify</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:textarea-horizontal-align">
            <choice>
                <value>left</value>
                <value>center</value>
                <value>right</value>
                <value>justify</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:wrap-option">
            <choice>
                <value>no-wrap</value>
                <value>wrap</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:shrink-to-fit">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-elements" combine="interleave">
    <optional>
        <ref name="text-list-style"/>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:color-mode">
            <choice>
                <value>greyscale</value>
                <value>mono</value>
                <value>watermark</value>
                <value>standard</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:color-inversion">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:luminance">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:contrast">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:gamma">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:red">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:green">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:blue">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:image-opacity">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:shadow">
            <choice>
                <value>visible</value>
                <value>hidden</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:shadow-offset-x">
            <ref name="length"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:shadow-offset-y">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:shadow-color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:shadow-opacity">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:start-line-spacing-horizontal">
            <ref name="distance"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:start-line-spacing-vertical">
            <ref name="distance"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:end-line-spacing-horizontal">
            <ref name="distance"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:end-line-spacing-vertical">
            <ref name="distance"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:line-distance">
            <ref name="distance"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:guide-overhang">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:guide-distance">
            <ref name="distance"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:start-guide">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:end-guide">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:placing">
            <choice>
                <value>below</value>
                <value>above</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:parallel">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:measure-align">
            <choice>
                <value>automatic</value>
                <value>left-outside</value>
                <value>inside</value>
                <value>right-outside</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:measure-vertical-align">
            <choice>
                <value>automatic</value>
                <value>above</value>
                <value>below</value>
                <value>center</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:unit">
            <choice>
                <value>automatic</value>
                <value>mm</value>
                <value>cm</value>
                <value>m</value>
                <value>km</value>
                <value>pt</value>
                <value>pc</value>
                <value>inch</value>
                <value>ft</value>
                <value>mi</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:show-unit">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:decimal-places">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:caption-type">
            <choice>
                <value>straight-line</value>
                <value>angled-line</value>
                <value>angled-connector-line</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:caption-angle-type">
            <choice>
                <value>fixed</value>
                <value>free</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:caption-angle">
            <ref name="angle"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:caption-gap">
            <ref name="distance"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:caption-escape-direction">
            <choice>
                <value>horizontal</value>
                <value>vertical</value>
                <value>auto</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:caption-escape">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:caption-line-length">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:caption-fit-line-length">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:horizontal-segments">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:vertical-segments">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:edge-rounding">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:edge-rounding-mode">
            <choice>
                <value>correct</value>
                <value>attractive</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:back-scale">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:depth">
            <ref name="length"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:backface-culling">
            <choice>
                <value>enabled</value>
                <value>disabled</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:end-angle">
            <ref name="angle"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:close-front">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:close-back">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:lighting-mode">
            <choice>
                <value>standard</value>
                <value>double-sided</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:normals-kind">
            <choice>
                <value>object</value>
                <value>flat</value>
                <value>sphere</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:normals-direction">
            <choice>
                <value>normal</value>
                <value>inverse</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:texture-generation-mode-x">
            <choice>
                <value>object</value>
                <value>parallel</value>
                <value>sphere</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="dr3d:texture-generation-mode-y">
            <choice>
                <value>object</value>
                <value>parallel</value>
                <value>sphere</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:texture-kind">
            <choice>
                <value>luminance</value>
                <value>intensity</value>
                <value>color</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:texture-filter">
            <choice>
                <value>enabled</value>
                <value>disabled</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:texture-mode">
            <choice>
                <value>replace</value>
                <value>modulate</value>
                <value>blend</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:ambient-color">
            <ref name="color"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="dr3d:emissive-color">
            <ref name="color"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="dr3d:specular-color">
            <ref name="color"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="dr3d:diffuse-color">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:shininess">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="dr3d:shadow">
            <choice>
                <value>visible</value>
                <value>hidden</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-draw-rel-size-attlist"/>
    <optional>
        <attribute name="fo:min-width">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:min-height">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:max-height">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="fo:max-width">
            <choice>
                <ref name="length"/>
                <ref name="percent"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-horizontal-margin-attlist"/>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-vertical-margin-attlist"/>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-margin-attlist"/>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:print-content">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:protect">
            <choice>
                <value>none</value>
                <list>
                    <oneOrMore>
                        <choice>
                            <value>content</value>
                            <value>position</value>
                            <value>size</value>
                        </choice>
                    </oneOrMore>
                </list>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:horizontal-pos">
            <choice>
                <value>left</value>
                <value>center</value>
                <value>right</value>
                <value>from-left</value>
                <value>inside</value>
                <value>outside</value>
                <value>from-inside</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:x">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:horizontal-rel">
            <choice>
                    <value>page</value>
                <value>page-content</value>
                <value>page-start-margin</value>
                <value>page-end-margin</value>
                <value>frame</value>
                <value>frame-content</value>
                <value>frame-start-margin</value>
                <value>frame-end-margin</value>
                <value>paragraph</value>
                <value>paragraph-content</value>
                <value>paragraph-start-margin</value>
                <value>paragraph-end-margin</value>
                <value>char</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-vertical-pos-attlist"/>
</define>

<define name="common-vertical-pos-attlist">
    <optional>
        <attribute name="style:vertical-pos">
            <choice>
                <value>top</value>
                <value>middle</value>
                <value>bottom</value>
                <value>from-top</value>
                <value>below</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="svg:y">
            <ref name="coordinate"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-vertical-rel-attlist"/>
</define>

<define name="common-vertical-rel-attlist">
    <optional>
        <attribute name="style:vertical-rel">
            <choice>
                <value>page</value>
                <value>page-content</value>
                <value>frame</value>
                <value>frame-content</value>
                <value>paragraph</value>
                <value>paragraph-content</value>
                <value>char</value>
                <value>line</value>
                <value>baseline</value>
                <value>text</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-text-anchor-attlist"/>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-border-attlist"/>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-border-line-width-attlist"/>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-padding-attlist"/>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-shadow-attlist"/>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-background-color-attlist"/>
    <ref name="common-background-transparency-attlist"/>
</define>
<define name="style-graphic-properties-elements" combine="interleave">
    <ref name="style-background-image"/>
</define>
<define name="style-graphic-properties-elements" combine="interleave">
    <ref name="style-columns"/>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-editable-attlist"/>
</define>
<define name="common-editable-attlist">
    <optional>
        <attribute name="style:editable">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:wrap">
            <choice>
                <value>none</value>
                <value>left</value>
                <value>right</value>
                <value>parallel</value>
                <value>dynamic</value>
                <value>run-through</value>
                <value>biggest</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:wrap-dynamic-threshold">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:number-wrapped-paragraphs">
            <choice>
                <value>no-limit</value>
                <ref name="positiveInteger"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:wrap-contour">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:wrap-contour-mode">
            <choice>
                <value>full</value>
                <value>outside</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:run-through">
            <choice>
                <value>foreground</value>
                <value>background</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:flow-with-text">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:overflow-behavior">
            <choice>
                <value>clip</value>
                <value>auto-create-new-frame</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:mirror">
            <choice>
                <value>none</value>
                <value>vertical</value>
                <ref name="horizontal-mirror"/>
                <list>
                    <value>vertical</value>
                    <ref name="horizontal-mirror"/>
                </list>
                <list>
                    <ref name="horizontal-mirror"/>
                    <value>vertical</value>
                </list>
            </choice>
        </attribute>
    </optional>
</define>

<define name="horizontal-mirror">
    <choice>
        <value>horizontal</value>
        <value>horizontal-on-odd</value>
        <value>horizontal-on-even</value>
    </choice>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="fo:clip">
            <choice>
                <value>auto</value>
                <ref name="clipShape"/>
            </choice>
        </attribute>
    </optional>
</define>

<define name="clipShape">
	<!-- DRAFT7: There had to be spaces before the , -->
    <data type="string">
        <param name="pattern">rect\([ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)))|(auto))([ ]*,[ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))))|(auto)){3}[ ]*\)</param>


    </data>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:wrap-influence-on-position">
            <choice>
                <value>iterative</value>
                <value>once-concurrent</value>
                <value>once-successive</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <ref name="common-writing-mode-attlist"/>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:frame-display-scrollbar">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:frame-display-border">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:frame-margin-horizontal">
            <ref name="nonNegativePixelLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:frame-margin-vertical">
            <ref name="nonNegativePixelLength"/>
        </attribute>
    </optional>
</define>

<define name="nonNegativePixelLength">
    <data type="string">
        <param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)(px)</param>
    </data>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:visible-area-left">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:visible-area-top">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:visible-area-width">
            <ref name="positiveLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="draw:visible-area-height">
            <ref name="positiveLength"/>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:draw-aspect">
            <choice>
                <value>content</value>
                <value>thumbnail</value>
                <value>icon</value>
                <value>print-view</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-graphic-properties-attlist" combine="interleave">
    <optional>
        <attribute name="draw:ole-draw-aspect">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties">
    <element name="style:chart-properties">
        <ref name="style-chart-properties-content-strict"/>
    </element>
</define>

<define name="style-chart-properties-content-strict">
    <ref name="style-chart-properties-attlist"/>
    <ref name="style-chart-properties-elements"/>
</define>

<define name="style-chart-properties-elements">
    <empty/>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:scale-text">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:three-dimensional">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:deep">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:right-angled-axes">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <choice>
        <attribute name="chart:symbol-type">
            <value>none</value>
        </attribute>
        <attribute name="chart:symbol-type">
            <value>automatic</value>
        </attribute>
        <group>
            <attribute name="chart:symbol-type">
                <value>named-symbol</value>
            </attribute>
            <attribute name="chart:symbol-name">
                <choice>
                    <value>square</value>
                    <value>diamond</value>
                    <value>arrow-down</value>
                    <value>arrow-up</value>
                    <value>arrow-right</value>
                    <value>arrow-left</value>
                    <value>bow-tie</value>
                    <value>hourglass</value>
                    <value>circle</value>
                    <value>star</value>
                    <value>x</value>
                    <value>plus</value>
                    <value>asterisk</value>
                    <value>horizontal-bar</value>
                    <value>vertical-bar</value>
                </choice>
            </attribute>
        </group>
        <group>
            <attribute name="chart:symbol-type">
                <value>image</value>
            </attribute>
            <element name="chart:symbol-image">
                <attribute name="xlink:href">
                    <ref name="anyURI"/>
                </attribute>
            </element>
        </group>
        <empty/>
    </choice>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:symbol-width">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:symbol-height">
            <ref name="nonNegativeLength"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:sort-by-x-values">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:vertical">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:connect-bars">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:gap-width">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:overlap">
            <ref name="integer"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:group-bars-per-axis">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:japanese-candle-stick">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:interpolation">
            <choice>
                <value>none</value>
                <value>cubic-spline</value>
                <value>b-spline</value>
            </choice>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:spline-order">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:spline-resolution">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:pie-offset">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:angle-offset">
            <ref name="angle"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:hole-size">
            <ref name="percent"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:lines">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:solid-type">
            <choice>
                <value>cuboid</value>
                <value>cylinder</value>
                <value>cone</value>
                <value>pyramid</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:stacked">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:percentage">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:treat-empty-cells">
            <choice>
                <value>use-zero</value>
                <value>leave-gap</value>
                <value>ignore</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:link-data-style-to-source">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:logarithmic">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:maximum">
            <ref name="double"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:minimum">
            <ref name="double"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:origin">
            <ref name="double"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:interval-major">
            <ref name="double"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:interval-minor-divisor">
            <ref name="positiveInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:tick-marks-major-inner">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:tick-marks-major-outer">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:tick-marks-minor-inner">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:tick-marks-minor-outer">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:reverse-direction">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:display-label">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:text-overlap">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="text:line-break">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:label-arrangement">
            <choice>
                <value>side-by-side</value>
                <value>stagger-even</value>
                <value>stagger-odd</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <ref name="common-style-direction-attlist"/>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <ref name="common-rotation-angle-attlist"/>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:data-label-number"
                  >
            <choice>
                <value>none</value>
                <value>value</value>
                <value>percentage</value>
                <value>value-and-percentage</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:data-label-text">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:data-label-symbol">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <element name="chart:label-separator">
            <ref name="text-p"/>
        </element>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
	<optional>
		<attribute name="chart:label-position">
			<ref name="labelPositions"/>
		</attribute>
	</optional>
</define>
<define name="labelPositions">
	<choice>
		<value>avoid-overlap</value>
		<value>center</value>
		<value>top</value>
		<value>top-right</value>
		<value>right</value>
		<value>bottom-right</value>
		<value>bottom</value>
		<value>bottom-left</value>
		<value>left</value>
		<value>top-left</value>
		<value>inside</value>
		<value>outside</value>
		<value>near-origin</value>
	</choice>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
	<optional>
		<attribute name="chart:label-position-negative">
			<ref name="labelPositions"/>
		</attribute>
	</optional>
</define>

<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:visible">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:auto-position">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:auto-size">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:mean-value">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:error-category"
                  >
            <choice>
                <value>none</value>
                <value>variance</value>
                <value>standard-deviation</value>
                <value>percentage</value>
                <value>error-margin</value>
                <value>constant</value>
				<value>standard-error</value>
                <value>cell-range</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:error-percentage">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:error-margin">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:error-lower-limit">
            <ref name="double"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:error-upper-limit">
            <ref name="double"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:error-upper-indicator">
            <ref name="boolean"/>
        </attribute>
    </optional>
    <optional>
        <attribute name="chart:error-lower-indicator">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:series-source">
            <choice>
                <value>columns</value>
                <value>rows</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:regression-type">
            <choice>
                <value>none</value>
                <value>linear</value>
                <value>logarithmic</value>
                <value>exponential</value>
                <value>power</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:axis-position">
            <choice>
                <value>start</value>
                <value>end</value>
                <ref name="double"/>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:axis-label-position">
            <choice>
                <value>near-axis</value>
                <value>near-axis-other-side</value>
                <value>outside-start</value>
                <value>outside-end</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:tick-mark-position">
            <choice>
                <value>at-labels</value>
                <value>at-axis</value>
                <value>at-labels-and-axis</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-chart-properties-attlist" combine="interleave">
    <optional>
        <attribute name="chart:include-hidden-cells">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist"
        combine="interleave">
    <optional>
        <attribute name="presentation:transition-type">
            <choice>
                <value>manual</value>
                <value>automatic</value>
                <value>semi-automatic</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist"
         combine="interleave">
    <optional>
        <attribute name="presentation:transition-style">
            <choice>
                <value>none</value>
                <value>fade-from-left</value>
                <value>fade-from-top</value>
                <value>fade-from-right</value>
                <value>fade-from-bottom</value>
                <value>fade-from-upperleft</value>
                <value>fade-from-upperright</value>
                <value>fade-from-lowerleft</value>
                <value>fade-from-lowerright</value>
                <value>move-from-left</value>
                <value>move-from-top</value>
                <value>move-from-right</value>
                <value>move-from-bottom</value>
                <value>move-from-upperleft</value>
                <value>move-from-upperright</value>
                <value>move-from-lowerleft</value>
                <value>move-from-lowerright</value>
                <value>uncover-to-left</value>
                <value>uncover-to-top</value>
                <value>uncover-to-right</value>    
                <value>uncover-to-bottom</value>
                <value>uncover-to-upperleft</value>
                <value>uncover-to-upperright</value>
                <value>uncover-to-lowerleft</value>
                <value>uncover-to-lowerright</value>
                <value>fade-to-center</value>
                <value>fade-from-center</value>
                <value>vertical-stripes</value>
                <value>horizontal-stripes</value>
                <value>clockwise</value>
                <value>counterclockwise</value>
                <value>open-vertical</value>
                <value>open-horizontal</value>
                <value>close-vertical</value>
                <value>close-horizontal</value>
                <value>wavyline-from-left</value>
                <value>wavyline-from-top</value>
                <value>wavyline-from-right</value>
                <value>wavyline-from-bottom</value>
                <value>spiralin-left</value>
                <value>spiralin-right</value>
                <value>spiralout-left</value>
                <value>spiralout-right</value>
                <value>roll-from-top</value>
                <value>roll-from-left</value>
                <value>roll-from-right</value>
                <value>roll-from-bottom</value>
                <value>stretch-from-left</value>
                <value>stretch-from-top</value>
                <value>stretch-from-right</value>
                <value>stretch-from-bottom</value>
                <value>vertical-lines</value>
                <value>horizontal-lines</value>
                <value>dissolve</value>
                <value>random</value>
                <value>vertical-checkerboard</value>
                <value>horizontal-checkerboard</value>
                <value>interlocking-horizontal-left</value>
                <value>interlocking-horizontal-right</value>
                <value>interlocking-vertical-top</value>
                <value>interlocking-vertical-bottom</value>
                <value>fly-away</value>
                <value>open</value>
                <value>close</value>
                <value>melt</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist"
        combine="interleave">
    <optional>
        <attribute name="presentation:transition-speed">
            <ref name="presentationSpeeds"/>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist " combine="interleave">
    <optional>
        <attribute name="smil:type">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist" combine="interleave">
    <optional>
        <attribute name="smil:subtype">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist" combine="interleave">
    <optional>
        <attribute name="smil:direction">
            <choice>
                <value>forward</value>
                <value>reverse</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist" combine="interleave">
    <optional>
        <attribute name="smil:fadeColor">
            <ref name="color"/>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist"
        combine="interleave">
    <optional>
        <attribute name="presentation:duration">
            <ref name="duration"/>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist"
         combine="interleave">
    <optional>
        <attribute name="presentation:visibility">
            <choice>
                <value>visible</value>
                <value>hidden</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-elements"
        combine="interleave">
    <optional>
        <ref name="presentation-sound"/>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist"
         combine="interleave">
    <optional>
        <attribute name="draw:background-size">
            <choice>
                <value>full</value>
                <value>border</value>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist"
         combine="interleave">
    <optional>
        <attribute name="presentation:background-objects-visible">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist"
         combine="interleave">
    <optional>
        <attribute name="presentation:background-visible">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:display-header">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:display-footer">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:display-page-number">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-drawing-page-properties-attlist" combine="interleave">
    <optional>
        <attribute name="presentation:display-date-time">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-diagonal-table-headers-properties">
    <element name="style:diagonal-table-headers-properties">
        <ref name="style-diagonal-table-headers-properties-content-strict"/>
    </element>
</define>

<define name="style-diagonal-table-headers-properties-content-strict">
    <ref name="style-diagonal-table-headers-properties-attlist"/>
    <ref name="style-diagonal-table-headers-properties-elements"/>
</define>

<define name="style-diagonal-table-headers-properties-elements">
    <empty/>
</define>
<define name="style-diagonal-table-headers-properties-attlist" combine="interleave">
    <attribute name="style:diagonal-table-headers-style">
        <choice>
            <value>Chinese_DTH1</value>
            <value>Chinese_DTH2</value>
            <value>Chinese_DTH3</value>
            <value>Chinese_DTH4</value>
            <value>Chinese_DTH5</value>
            <value>Chinese_DTH6</value>
            <value>Chinese_DTH7</value>
        </choice>
    </attribute>
</define>


<define name="style-diagonal-table-header-cell-properties">
    <element name="style:diagonal-table-header-cell-properties">
        <ref name="style-diagonal-table-header-cell-properties-content-strict"/>
    </element>
</define>

<define name="style-diagonal-table-header-cell-properties-content-strict">
    <ref name="style-diagonal-table-header-cell-properties-attlist"/>
    <ref name="style-diagonal-table-header-cell-properties-elements"/>
</define>
<define name="style-diagonal-table-header-cell-properties-elements">
    <empty/>
</define>
<define name="style-diagonal-table-header-cell-properties-attlist" combine="interleave">
    <ref name="common-style-direction-attlist"/>
</define>
<define name="style-diagonal-table-header-cell-properties-attlist" combine="interleave">
    <ref name="common-writing-mode-attlist"/>
</define>
<define name="style-diagonal-table-header-cell-properties-attlist" combine="interleave">
    <ref name="common-rotation-angle-attlist"/>
</define>
<define name="style-diagonal-table-header-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:cell-protect">
            <choice>
                <value>none</value>
                <value>hidden-and-protected</value>
                <list>
                    <oneOrMore>
                        <choice>
                            <value>protected</value>
                            <value>formula-hidden</value>
                        </choice>
                    </oneOrMore>
                </list>
            </choice>
        </attribute>
    </optional>
</define>
<define name="style-diagonal-table-header-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:print-content">
            <ref name="boolean"/>
        </attribute>
    </optional>
</define>
<define name="style-diagonal-table-header-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:decimal-places">
            <ref name="nonNegativeInteger"/>
        </attribute>
    </optional>
</define>
<define name="style-diagonal-table-header-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:diagonal-table-header-cell-border-style">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="style-diagonal-table-header-cell-properties-attlist" combine="interleave">
    <optional>
        <attribute name="style:diagonal-table-header-cell-border-position">
            <ref name="string"/>
        </attribute>
    </optional>
</define>
<define name="string">
    <data type="string"/>
</define>
<define name="date">
    <data type="date"/>
</define>
<define name="time">
    <data type="time"/>
</define>
<define name="dateTime">
    <data type="dateTime"/>
</define>
<define name="duration">
    <data type="duration"/>
</define>
<define name="integer">
    <data type="integer"/>
</define>
<define name="nonNegativeInteger">
    <data type="nonNegativeInteger"/>
</define>
<define name="positiveInteger">
    <data type="positiveInteger"/>
</define>
<define name="double">
    <data type="double"/>
</define>
<define name="anyURI">
    <data type="anyURI"/>
</define>
<define name="base64Binary">
    <data type="base64Binary"/>
</define>
<define name="ID">
    <data type="ID"/>
</define>
<define name="IDREF">
    <data type="IDREF"/>
</define>
<define name="IDREFS">
    <data type="IDREFS"/>
</define>
<define name="NCName">
    <data type="NCName"/>
</define>
<define name="boolean">
    <choice>
        <value>true</value>
        <value>false</value>
    </choice>
</define>
<define name="dateOrDateTime">
    <choice>
        <data type="date"/>
        <data type="dateTime"/>
    </choice>
        <data type="time"/>
        <data type="dateTime"/>
    </choice>
</define>
<define name="language">
    <data type="language"/>
</define>
<define name="countryCode">
    <data type="token">
        <param name="pattern">[A-Za-z0-9]{1,8}</param>
    </data>
</define>
<define name="languageCode">
    <data type="token">
        <param name="pattern">[A-Za-z]{1,8}</param>
    </data>
</define>
<define name="scriptCode">
    <data type="token">
        <param name="pattern">[A-Za-z0-9]{1,8}</param>
    </data>
</define>
<define name="character">
    <data type="string">
        <param name="length">1</param>
    </data>
</define>
<define name="length">
    <data type="string">
        <param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))</param>

    </data>
</define>
<define name="nonNegativeLength">
    <data type="string">
        <param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))</param>

    </data>
</define>
<define name="positiveLength">
    <data type="string">
        <param name="pattern">([0-9]*[1-9][0-9]*(\.[0-9]*)?|0+\.[0-9]*[1-9][0-9]*|\.[0-9]*[1-9][0-9]*)((cm)|(mm)|(in)|(pt)|(pc)|(px))</param>

    </data>
</define>
<define name="percent">
    <data type="string">
        <param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%</param>
    </data>
</define>
<define name="relativeLength">
    <data type="string">
        <param name="pattern">[0-9]+\*</param>
    </data>
</define>
<define name="coordinate">
    <ref name="length"/>
</define>
<define name="distance">
    <ref name="length"/>
</define>
<define name="color">
    <data type="string">
        <param name="pattern">#[0-9a-fA-F]{6}</param>
    </data>
</define>
<define name="angle">
    <data type="string"/>
</define>
<define name="CURIE">
    <data type="string">
        <param name="pattern">(([\i-[:]][\c-[:]]*)?:)?.+</param>
        <param name="minLength">1</param>
	</data>
</define>
<define name="CURIEs">
    <list>
        <oneOrMore>
            <ref name="CURIE"/>
        </oneOrMore>
    </list>
</define>
<define name="SafeCURIE">
    <data type="string">
        <param name="pattern">\[(([\i-[:]][\c-[:]]*)?:)?.+\]</param>
        <param name="minLength">3</param>
	</data>
</define>
<define name="URIorSafeCURIE">
    <choice>
        <ref name="anyURI"/>
        <ref name="SafeCURIE"/>
    </choice>
</define>

<define name="styleName">
    <data type="NCName"/>
</define>
<define name="styleNameRef">
    <choice>
        <data type="NCName"/>
        <empty/>
    </choice>
</define>
<define name="styleNameRefs">
    <list>
        <zeroOrMore>
            <data type="NCName"/>
        </zeroOrMore>
    </list>
</define>
<define name="variableName">
    <data type="string"/>
</define>
<define name="formula">
    <!-- A formula should start with a namespace prefix, -->
    <!-- but has no restrictions-->
    <data type="string"/>
</define>

<define name="targetFrameName">
    <choice>
        <value>_self</value>
        <value>_blank</value>
        <value>_parent</value>
        <value>_top</value>
        <ref name="string"/>
    </choice>
</define>

<define name="valueType">
    <choice>
        <value>float</value>
        <value>time</value>
        <value>date</value>
        <value>percentage</value>
        <value>currency</value>
        <value>boolean</value>
        <value>string</value>
    </choice>
</define>

<define name="points">
    <data type="string">
        <param name="pattern">-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*</param>
    </data>
</define>
<define name="pathData">
    <data type="string"/>
</define>

<define name="vector3D">
    <data type="string">
        <param name="pattern">\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\)</param>

    </data>
</define>

<define name="namespacedToken">
    <data type="string">
        <param name="pattern">[0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+</param>
    </data>
</define>
<define name="anyAttListOrElements">
    <zeroOrMore>
        <attribute>
            <anyName/>
            <text/>
        </attribute>
    </zeroOrMore>
    <ref name="anyElements"/>
</define>
<define name="anyElements">
    <zeroOrMore>
        <element>
            <anyName/>
            <mixed>
                <ref name="anyAttListOrElements"/>
            </mixed>
        </element>
    </zeroOrMore>
</define>
</grammar>


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