office-gobmx/schema/odf1.4/OpenDocument-v1.4-schema.rng
Regina Henschel 1b7bdc2955 tdf#162686 tdf#162687 ODF 1.4 extrusion-metal-type
and extrusion-specularity.

In ODF strict always value 'draw:MetalODF' was written. Changed the
logic to write 'loext:MetalMSCompatible' too, depending on eMetalType.
Using a QName as value requires a namespace declaration for the prefix
'loext'. That is now written directly at the element, not as global
declaration, to restrict its scope to the element. A global declaration
would hide when attributes or elements are accidentially written in
'loext' namespace.

The pattern for nonNegativePercent had missed the percent sign.
The export is adapted to write the percent sign.

Validation is skipped for save to ODF 1.3, because currently the
implicit validation uses always latest ODF version, see tdf#163806.

Tests are extended to cover ODF 1.4 and value draw:MetalODF.

Change-Id: I836d11b9cd327b9772e800d9797e04e1613ab2f9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176246
Tested-by: Jenkins
Reviewed-by: Regina Henschel <rb.henschel@t-online.de>
2024-11-10 18:50:37 +01:00

18573 lines
596 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
Open Document Format for Office Applications (OpenDocument) Version 1.4
OASIS Standard
11 March 2024
Copyright (c) OASIS Open 2024. All Rights Reserved.
Source: https://docs.oasis-open.org/office/OpenDocument/v1.4/csd01/schemas/
Latest stage of specification: https://docs.oasis-open.org/office/OpenDocument/v1.4/OpenDocument-v1.4-part1-introduction.html
TC IPR Statement: https://www.oasis-open.org/committees/office/ipr.php
Open Document Format for Office Applications (OpenDocument) Version 1.4
Relax-NG Schema
OpenDocument-v1.4-schema.rng
-->
<!-- https://issues.oasis-open.org/browse/OFFICE-2153 -->
<!-- https://issues.oasis-open.org/browse/OFFICE-4126 -->
<rng:grammar xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:db="urn:oasis:names:tc:opendocument:xmlns:database:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<rng:start>
<rng:choice>
<rng:ref name="office-document"/>
<rng:ref name="office-document-content"/>
<rng:ref name="office-document-styles"/>
<rng:ref name="office-document-meta"/>
<rng:ref name="office-document-settings"/>
</rng:choice>
</rng:start>
<rng:define name="CURIE">
<rng:data type="string">
<rng:param name="pattern">(([\i-[:]][\c-[:]]*)?:)?.+</rng:param>
<rng:param name="minLength">1</rng:param>
</rng:data>
</rng:define>
<rng:define name="CURIEs">
<rng:list>
<rng:oneOrMore>
<rng:ref name="CURIE"/>
</rng:oneOrMore>
</rng:list>
</rng:define>
<rng:define name="ID">
<rng:data type="ID"/>
</rng:define>
<rng:define name="IDREF">
<rng:data type="IDREF"/>
</rng:define>
<rng:define name="IDREFS">
<rng:data type="IDREFS"/>
</rng:define>
<rng:define name="NCName">
<rng:data type="NCName"/>
</rng:define>
<rng:define name="SafeCURIE">
<rng:data type="string">
<rng:param name="pattern">\[(([\i-[:]][\c-[:]]*)?:)?.+\]</rng:param>
<rng:param name="minLength">3</rng:param>
</rng:data>
</rng:define>
<rng:define name="URIorSafeCURIE">
<rng:choice>
<rng:ref name="anyURI"/>
<rng:ref name="SafeCURIE"/>
</rng:choice>
</rng:define>
<rng:define name="angle">
<rng:data type="string"/>
</rng:define>
<rng:define name="anim-animate-color-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="anim:color-interpolation">
<rng:choice>
<rng:value>rgb</rng:value>
<rng:value>hsl</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="anim:color-interpolation-direction">
<rng:choice>
<rng:value>clockwise</rng:value>
<rng:value>counter-clockwise</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="anim-animate-motion-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="svg:path">
<rng:ref name="pathData"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:origin">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:calcMode">
<rng:choice>
<rng:value>discrete</rng:value>
<rng:value>linear</rng:value>
<rng:value>paced</rng:value>
<rng:value>spline</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="anim-animate-transform-attlist">
<rng:attribute name="svg:type">
<rng:choice>
<rng:value>translate</rng:value>
<rng:value>scale</rng:value>
<rng:value>rotate</rng:value>
<rng:value>skewX</rng:value>
<rng:value>skewY</rng:value>
</rng:choice>
</rng:attribute>
</rng:define>
<rng:define name="anim-audio-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="anim:audio-level">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="anim-command-attlist">
<rng:attribute name="anim:command">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="anim-iterate-attlist">
<rng:interleave>
<rng:ref name="common-anim-target-attlist"/>
<rng:optional>
<rng:attribute name="anim:iterate-type">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="anim:iterate-interval">
<rng:ref name="duration"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="anim-transition-filter-attlist">
<rng:interleave>
<rng:attribute name="smil:type">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="smil:subtype">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:direction">
<rng:choice>
<rng:value>forward</rng:value>
<rng:value>reverse</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:fadeColor">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:mode">
<rng:choice>
<rng:value>in</rng:value>
<rng:value>out</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="animation-element">
<rng:choice>
<rng:element name="anim:animate">
<rng:ref name="common-anim-target-attlist"/>
<rng:ref name="common-anim-named-target-attlist"/>
<rng:ref name="common-anim-values-attlist"/>
<rng:ref name="common-anim-spline-mode-attlist"/>
<rng:ref name="common-spline-anim-value-attlist"/>
<rng:ref name="common-timing-attlist"/>
<rng:ref name="common-anim-add-accum-attlist"/>
</rng:element>
<rng:element name="anim:set">
<rng:ref name="common-anim-target-attlist"/>
<rng:ref name="common-anim-named-target-attlist"/>
<rng:ref name="common-anim-set-values-attlist"/>
<rng:ref name="common-timing-attlist"/>
<rng:ref name="common-anim-add-accum-attlist"/>
</rng:element>
<rng:element name="anim:animateMotion">
<rng:ref name="anim-animate-motion-attlist"/>
<rng:ref name="common-anim-target-attlist"/>
<rng:ref name="common-anim-named-target-attlist"/>
<rng:ref name="common-anim-add-accum-attlist"/>
<rng:ref name="common-anim-values-attlist"/>
<rng:ref name="common-timing-attlist"/>
<rng:ref name="common-spline-anim-value-attlist"/>
</rng:element>
<rng:element name="anim:animateColor">
<rng:ref name="common-anim-target-attlist"/>
<rng:ref name="common-anim-named-target-attlist"/>
<rng:ref name="common-anim-add-accum-attlist"/>
<rng:ref name="common-anim-values-attlist"/>
<rng:ref name="common-anim-spline-mode-attlist"/>
<rng:ref name="common-spline-anim-value-attlist"/>
<rng:ref name="anim-animate-color-attlist"/>
<rng:ref name="common-timing-attlist"/>
</rng:element>
<rng:element name="anim:animateTransform">
<rng:ref name="common-anim-target-attlist"/>
<rng:ref name="common-anim-named-target-attlist"/>
<rng:ref name="common-anim-add-accum-attlist"/>
<rng:ref name="common-anim-values-attlist"/>
<rng:ref name="anim-animate-transform-attlist"/>
<rng:ref name="common-timing-attlist"/>
</rng:element>
<rng:element name="anim:transitionFilter">
<rng:ref name="common-anim-target-attlist"/>
<rng:ref name="common-anim-add-accum-attlist"/>
<rng:ref name="common-anim-values-attlist"/>
<rng:ref name="common-anim-spline-mode-attlist"/>
<rng:ref name="anim-transition-filter-attlist"/>
<rng:ref name="common-timing-attlist"/>
</rng:element>
<rng:element name="anim:par">
<rng:ref name="common-anim-attlist"/>
<rng:ref name="common-timing-attlist"/>
<rng:ref name="common-endsync-timing-attlist"/>
<rng:zeroOrMore>
<rng:ref name="animation-element"/>
</rng:zeroOrMore>
</rng:element>
<rng:element name="anim:seq">
<rng:ref name="common-anim-attlist"/>
<rng:ref name="common-endsync-timing-attlist"/>
<rng:ref name="common-timing-attlist"/>
<rng:zeroOrMore>
<rng:ref name="animation-element"/>
</rng:zeroOrMore>
</rng:element>
<rng:element name="anim:iterate">
<rng:ref name="common-anim-attlist"/>
<rng:ref name="anim-iterate-attlist"/>
<rng:ref name="common-timing-attlist"/>
<rng:ref name="common-endsync-timing-attlist"/>
<rng:zeroOrMore>
<rng:ref name="animation-element"/>
</rng:zeroOrMore>
</rng:element>
<rng:element name="anim:audio">
<rng:ref name="common-anim-attlist"/>
<rng:ref name="anim-audio-attlist"/>
<rng:ref name="common-basic-timing-attlist"/>
</rng:element>
<rng:element name="anim:command">
<rng:ref name="common-anim-attlist"/>
<rng:ref name="anim-command-attlist"/>
<rng:ref name="common-begin-end-timing-attlist"/>
<rng:ref name="common-anim-target-attlist"/>
<rng:zeroOrMore>
<rng:element name="anim:param">
<rng:attribute name="anim:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="anim:value">
<rng:ref name="string"/>
</rng:attribute>
</rng:element>
</rng:zeroOrMore>
</rng:element>
</rng:choice>
</rng:define>
<rng:define name="any-date">
<rng:choice>
<rng:ref name="number-day"/>
<rng:ref name="number-month"/>
<rng:ref name="number-year"/>
<rng:ref name="number-era"/>
<rng:ref name="number-day-of-week"/>
<rng:ref name="number-week-of-year"/>
<rng:ref name="number-quarter"/>
<rng:ref name="number-hours"/>
<rng:ref name="number-am-pm"/>
<rng:ref name="number-minutes"/>
<rng:ref name="number-seconds"/>
</rng:choice>
</rng:define>
<rng:define name="any-number">
<rng:choice>
<rng:ref name="number-number"/>
<rng:ref name="number-scientific-number"/>
<rng:ref name="number-fraction"/>
</rng:choice>
</rng:define>
<rng:define name="any-time">
<rng:choice>
<rng:ref name="number-hours"/>
<rng:ref name="number-am-pm"/>
<rng:ref name="number-minutes"/>
<rng:ref name="number-seconds"/>
</rng:choice>
</rng:define>
<rng:define name="anyAttListOrElements">
<rng:zeroOrMore>
<rng:attribute>
<rng:anyName/>
<rng:text/>
</rng:attribute>
</rng:zeroOrMore>
<rng:ref name="anyElements"/>
</rng:define>
<rng:define name="anyElements">
<rng:zeroOrMore>
<rng:element>
<rng:anyName/>
<rng:mixed>
<rng:ref name="anyAttListOrElements"/>
</rng:mixed>
</rng:element>
</rng:zeroOrMore>
</rng:define>
<rng:define name="anyIRI">
<rng:data type="anyURI"/>
<dc:description>An IRI-reference as defined in [RFC3987]. See ODF 1.4 Part 3 section 18.3.</dc:description>
</rng:define>
<rng:define name="anyURI">
<rng:data type="anyURI"/>
</rng:define>
<rng:define name="base64Binary">
<rng:data type="base64Binary"/>
</rng:define>
<rng:define name="boolean">
<rng:choice>
<rng:value>true</rng:value>
<rng:value>false</rng:value>
</rng:choice>
</rng:define>
<rng:define name="borderWidths">
<rng:list>
<rng:ref name="positiveLength"/>
<rng:ref name="positiveLength"/>
<rng:ref name="positiveLength"/>
</rng:list>
</rng:define>
<rng:define name="bound-column">
<rng:optional>
<rng:attribute name="form:bound-column">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="button-type">
<rng:optional>
<rng:attribute name="form:button-type">
<rng:ref name="types"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="cellAddress">
<rng:data type="string">
<rng:param name="pattern">($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+</rng:param>
</rng:data>
</rng:define>
<rng:define name="cellRangeAddress">
<rng:choice>
<rng:data type="string">
<rng:param name="pattern">($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)?</rng:param>
</rng:data>
<rng:data type="string">
<rng:param name="pattern">($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+:($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+</rng:param>
</rng:data>
<rng:data type="string">
<rng:param name="pattern">($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+</rng:param>
</rng:data>
</rng:choice>
</rng:define>
<rng:define name="cellRangeAddressList">
<rng:data type="string"/>
<dc:description>Value is a space separated list of "cellRangeAddress" patterns</dc:description>
</rng:define>
<rng:define name="change-mark-attr">
<rng:attribute name="text:change-id">
<rng:ref name="IDREF"/>
</rng:attribute>
</rng:define>
<rng:define name="change-marks">
<rng:choice>
<rng:element name="text:change">
<rng:ref name="change-mark-attr"/>
</rng:element>
<rng:element name="text:change-start">
<rng:ref name="change-mark-attr"/>
</rng:element>
<rng:element name="text:change-end">
<rng:ref name="change-mark-attr"/>
</rng:element>
</rng:choice>
</rng:define>
<rng:define name="character">
<rng:data type="string">
<rng:param name="length">1</rng:param>
</rng:data>
</rng:define>
<rng:define name="chart-axis">
<rng:element name="chart:axis">
<rng:ref name="chart-axis-attlist"/>
<rng:optional>
<rng:ref name="chart-title"/>
</rng:optional>
<rng:optional>
<rng:ref name="chart-categories"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="chart-grid"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="chart-axis-attlist">
<rng:interleave>
<rng:attribute name="chart:dimension">
<rng:ref name="chart-dimension"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="chart:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="chart-categories">
<rng:element name="chart:categories">
<rng:optional>
<rng:attribute name="table:cell-range-address">
<rng:ref name="cellRangeAddressList"/>
</rng:attribute>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="chart-chart">
<rng:element name="chart:chart">
<rng:ref name="chart-chart-attlist"/>
<rng:optional>
<rng:ref name="chart-title"/>
</rng:optional>
<rng:optional>
<rng:ref name="chart-subtitle"/>
</rng:optional>
<rng:optional>
<rng:ref name="chart-footer"/>
</rng:optional>
<rng:optional>
<rng:ref name="chart-legend"/>
</rng:optional>
<rng:ref name="chart-plot-area"/>
<rng:zeroOrMore>
<rng:ref name="shape"/>
</rng:zeroOrMore>
<!-- https://issues.oasis-open.org/browse/OFFICE-2123 -->
<rng:optional>
<rng:ref name="table-table"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="chart-chart-attlist">
<rng:interleave>
<rng:attribute name="chart:class">
<rng:ref name="namespacedToken"/>
</rng:attribute>
<rng:ref name="common-draw-size-attlist"/>
<rng:optional>
<rng:attribute name="chart:column-mapping">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:row-mapping">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:group>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
</rng:group>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="chart-coordinate-region">
<rng:element name="chart:coordinate-region">
<rng:ref name="chart-coordinate-region-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="chart-coordinate-region-attlist">
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-3928 -->
<rng:define name="chart-data-label">
<rng:element name="chart:data-label">
<rng:ref name="chart-data-label-attlist"/>
<rng:optional>
<rng:ref name="text-p"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="chart-data-label-attlist">
<rng:interleave>
<rng:ref name="common-draw-position-attlist"/>
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="chart-data-point">
<rng:element name="chart:data-point">
<rng:ref name="chart-data-point-attlist"/>
<rng:optional>
<rng:ref name="chart-data-label"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="chart-data-point-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="chart:repeated">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="chart-dimension">
<rng:choice>
<rng:value>x</rng:value>
<rng:value>y</rng:value>
<rng:value>z</rng:value>
</rng:choice>
</rng:define>
<rng:define name="chart-domain">
<rng:element name="chart:domain">
<rng:optional>
<rng:attribute name="table:cell-range-address">
<rng:ref name="cellRangeAddressList"/>
</rng:attribute>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="chart-equation">
<rng:element name="chart:equation">
<rng:ref name="chart-equation-attlist"/>
<rng:optional>
<rng:ref name="text-p"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="chart-equation-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="chart:automatic-content">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:display-r-square">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:display-equation">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-draw-position-attlist"/>
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="chart-error-indicator">
<rng:element name="chart:error-indicator">
<rng:ref name="chart-error-indicator-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="chart-error-indicator-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="chart:dimension">
<rng:ref name="chart-dimension"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="chart-floor">
<rng:element name="chart:floor">
<rng:ref name="chart-floor-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="chart-floor-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="svg:width">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="chart-footer">
<rng:element name="chart:footer">
<rng:ref name="chart-title-attlist"/>
<rng:optional>
<rng:ref name="text-p"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="chart-grid">
<rng:element name="chart:grid">
<rng:ref name="chart-grid-attlist"/>
</rng:element>
</rng:define>
<rng:define name="chart-grid-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="chart:class">
<rng:choice>
<rng:value>major</rng:value>
<rng:value>minor</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="chart-legend">
<rng:element name="chart:legend">
<rng:ref name="chart-legend-attlist"/>
<rng:optional>
<rng:ref name="text-p"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="chart-legend-attlist">
<rng:interleave>
<rng:choice>
<rng:group>
<rng:attribute name="chart:legend-position">
<rng:choice>
<rng:value>start</rng:value>
<rng:value>end</rng:value>
<rng:value>top</rng:value>
<rng:value>bottom</rng:value>
</rng:choice>
</rng:attribute>
<rng:optional>
<rng:attribute name="chart:legend-align">
<rng:choice>
<rng:value>start</rng:value>
<rng:value>center</rng:value>
<rng:value>end</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:group>
<rng:attribute name="chart:legend-position">
<rng:choice>
<rng:value>top-start</rng:value>
<rng:value>bottom-start</rng:value>
<rng:value>top-end</rng:value>
<rng:value>bottom-end</rng:value>
</rng:choice>
</rng:attribute>
<rng:empty/>
</rng:choice>
<rng:ref name="common-draw-position-attlist"/>
<rng:choice>
<rng:attribute name="style:legend-expansion">
<rng:choice>
<rng:value>wide</rng:value>
<rng:value>high</rng:value>
<rng:value>balanced</rng:value>
</rng:choice>
</rng:attribute>
<rng:group>
<rng:attribute name="style:legend-expansion">
<rng:value>custom</rng:value>
</rng:attribute>
<rng:attribute name="style:legend-expansion-aspect-ratio">
<rng:ref name="double"/>
</rng:attribute>
<rng:ref name="common-draw-size-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-3883 -->
</rng:group>
<rng:empty/>
</rng:choice>
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="chart-mean-value">
<rng:element name="chart:mean-value">
<rng:ref name="chart-mean-value-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="chart-mean-value-attlist">
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="chart-plot-area">
<rng:element name="chart:plot-area">
<rng:ref name="chart-plot-area-attlist"/>
<rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3928 -->
<rng:ref name="chart-coordinate-region"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="dr3d-light"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="chart-axis"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="chart-series"/>
</rng:zeroOrMore>
<rng:optional>
<rng:ref name="chart-stock-gain-marker"/>
</rng:optional>
<rng:optional>
<rng:ref name="chart-stock-loss-marker"/>
</rng:optional>
<rng:optional>
<rng:ref name="chart-stock-range-line"/>
</rng:optional>
<rng:optional>
<rng:ref name="chart-wall"/>
</rng:optional>
<rng:optional>
<rng:ref name="chart-floor"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="chart-plot-area-attlist">
<rng:interleave>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<!-- Deleted as per https://issues.oasis-open.org/browse/OFFICE-3741 for ODF 1.4
<rng:optional>
<rng:attribute name="table:cell-range-address">
<rng:ref name="cellRangeAddressList"/>
</rng:attribute>
</rng:optional>
-->
<rng:optional>
<rng:attribute name="chart:data-source-has-labels">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>row</rng:value>
<rng:value>column</rng:value>
<rng:value>both</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="dr3d-scene-attlist"/>
<rng:ref name="common-dr3d-transform-attlist"/>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="chart-regression-curve">
<rng:element name="chart:regression-curve">
<rng:ref name="chart-regression-curve-attlist"/>
<rng:optional>
<rng:ref name="chart-equation"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="chart-regression-curve-attlist">
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="chart-series">
<rng:element name="chart:series">
<rng:ref name="chart-series-attlist"/>
<rng:zeroOrMore>
<rng:ref name="chart-domain"/>
</rng:zeroOrMore>
<rng:optional>
<rng:ref name="chart-mean-value"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="chart-regression-curve"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="chart-error-indicator"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="chart-data-point"/>
</rng:zeroOrMore>
<rng:optional>
<rng:ref name="chart-data-label"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="chart-series-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="chart:values-cell-range-address">
<rng:ref name="cellRangeAddressList"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:label-cell-address">
<rng:ref name="cellRangeAddressList"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:class">
<rng:ref name="namespacedToken"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:attached-axis">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="chart-stock-gain-marker">
<rng:element name="chart:stock-gain-marker">
<rng:ref name="common-stock-marker-attlist"/>
</rng:element>
</rng:define>
<rng:define name="chart-stock-loss-marker">
<rng:element name="chart:stock-loss-marker">
<rng:ref name="common-stock-marker-attlist"/>
</rng:element>
</rng:define>
<rng:define name="chart-stock-range-line">
<rng:element name="chart:stock-range-line">
<rng:ref name="common-stock-marker-attlist"/>
</rng:element>
</rng:define>
<rng:define name="chart-subtitle">
<rng:element name="chart:subtitle">
<rng:ref name="chart-title-attlist"/>
<rng:optional>
<rng:ref name="text-p"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="chart-title">
<rng:element name="chart:title">
<rng:ref name="chart-title-attlist"/>
<rng:optional>
<rng:ref name="text-p"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="chart-title-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:cell-range">
<rng:ref name="cellRangeAddressList"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-draw-position-attlist"/>
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="chart-wall">
<rng:element name="chart:wall">
<rng:ref name="chart-wall-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="chart-wall-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="svg:width">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="clipShape">
<rng:data type="string">
<rng: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}[ ]*\)</rng:param>
</rng:data>
</rng:define>
<rng:define name="color">
<rng:data type="string">
<rng:param name="pattern">#[0-9a-fA-F]{6}</rng:param>
</rng:data>
</rng:define>
<rng:define name="column-controls">
<rng:choice>
<rng:element name="form:text">
<rng:ref name="form-text-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
<rng:element name="form:textarea">
<rng:ref name="form-textarea-attlist"/>
<rng:ref name="common-form-control-content"/>
<rng:zeroOrMore>
<rng:ref name="text-p"/>
</rng:zeroOrMore>
</rng:element>
<rng:element name="form:formatted-text">
<rng:ref name="form-formatted-text-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
<rng:element name="form:number">
<rng:ref name="form-number-attlist"/>
<rng:ref name="common-numeric-control-attlist"/>
<rng:ref name="common-form-control-content"/>
<rng:ref name="common-linked-cell"/>
<rng:ref name="common-spin-button"/>
<rng:ref name="common-repeat"/>
<rng:ref name="common-delay-for-repeat"/>
</rng:element>
<rng:element name="form:date">
<rng:ref name="form-date-attlist"/>
<rng:ref name="common-numeric-control-attlist"/>
<rng:ref name="common-form-control-content"/>
<rng:ref name="common-linked-cell"/>
<rng:ref name="common-spin-button"/>
<rng:ref name="common-repeat"/>
<rng:ref name="common-delay-for-repeat"/>
</rng:element>
<rng:element name="form:time">
<rng:ref name="form-time-attlist"/>
<rng:ref name="common-numeric-control-attlist"/>
<rng:ref name="common-form-control-content"/>
<rng:ref name="common-linked-cell"/>
<rng:ref name="common-spin-button"/>
<rng:ref name="common-repeat"/>
<rng:ref name="common-delay-for-repeat"/>
</rng:element>
<rng:element name="form:combobox">
<rng:ref name="form-combobox-attlist"/>
<rng:ref name="common-form-control-content"/>
<rng:zeroOrMore>
<rng:ref name="form-item"/>
</rng:zeroOrMore>
</rng:element>
<rng:element name="form:listbox">
<rng:ref name="form-listbox-attlist"/>
<rng:ref name="common-form-control-content"/>
<rng:zeroOrMore>
<rng:ref name="form-option"/>
</rng:zeroOrMore>
</rng:element>
<rng:element name="form:checkbox">
<rng:ref name="form-checkbox-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
</rng:choice>
</rng:define>
<rng:define name="common-anim-add-accum-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="smil:accumulate">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>sum</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:additive">
<rng:choice>
<rng:value>replace</rng:value>
<rng:value>sum</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-anim-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="presentation:node-type">
<rng:choice>
<rng:value>default</rng:value>
<rng:value>on-click</rng:value>
<rng:value>with-previous</rng:value>
<rng:value>after-previous</rng:value>
<rng:value>timing-root</rng:value>
<rng:value>main-sequence</rng:value>
<rng:value>interactive-sequence</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:preset-id">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:preset-sub-type">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:preset-class">
<rng:choice>
<rng:value>custom</rng:value>
<rng:value>entrance</rng:value>
<rng:value>exit</rng:value>
<rng:value>emphasis</rng:value>
<rng:value>motion-path</rng:value>
<rng:value>ole-action</rng:value>
<rng:value>media-call</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:master-element">
<rng:ref name="IDREF"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:group-id">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:group>
<rng:ref name="xml-id"/>
<rng:optional>
<rng:attribute name="anim:id">
<rng:ref name="NCName"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-anim-named-target-attlist">
<rng:attribute name="smil:attributeName">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="common-anim-set-values-attlist">
<rng:optional>
<rng:attribute name="smil:to">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-anim-spline-mode-attlist">
<rng:optional>
<rng:attribute name="smil:calcMode">
<rng:choice>
<rng:value>discrete</rng:value>
<rng:value>linear</rng:value>
<rng:value>paced</rng:value>
<rng:value>spline</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-anim-target-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="smil:targetElement">
<rng:ref name="IDREF"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="anim:sub-item">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-anim-values-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="smil:values">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="anim:formula">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-anim-set-values-attlist"/>
<rng:optional>
<rng:attribute name="smil:from">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:by">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-auto-reorder-attlist">
<rng:optional>
<rng:attribute name="number:automatic-order">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-background-color-attlist">
<rng:optional>
<rng:attribute name="fo:background-color">
<rng:choice>
<rng:value>transparent</rng:value>
<rng:ref name="color"/>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-background-transparency-attlist">
<rng:optional>
<rng:attribute name="style:background-transparency">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-basic-timing-attlist">
<rng:ref name="common-begin-end-timing-attlist"/>
<rng:ref name="common-dur-timing-attlist"/>
<rng:ref name="common-repeat-timing-attlist"/>
<rng:ref name="common-restart-timing-attlist"/>
<rng:ref name="common-restart-default-attlist"/>
<rng:ref name="common-fill-timing-attlist"/>
<rng:ref name="common-fill-default-attlist"/>
</rng:define>
<rng:define name="common-begin-end-timing-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="smil:begin">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:end">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-border-attlist">
<rng:optional>
<rng:attribute name="fo:border">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:border-top">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:border-bottom">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:border-left">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:border-right">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-border-line-width-attlist">
<rng:optional>
<rng:attribute name="style:border-line-width">
<rng:ref name="borderWidths"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:border-line-width-top">
<rng:ref name="borderWidths"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:border-line-width-bottom">
<rng:ref name="borderWidths"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:border-line-width-left">
<rng:ref name="borderWidths"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:border-line-width-right">
<rng:ref name="borderWidths"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-break-attlist">
<rng:optional>
<rng:attribute name="fo:break-before">
<rng:choice>
<rng:value>auto</rng:value>
<rng:value>column</rng:value>
<rng:value>page</rng:value>
<!-- https://issues.oasis-open.org/browse/OFFICE-3751 -->
<rng:value>even-page</rng:value>
<rng:value>odd-page</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:break-after">
<rng:choice>
<rng:value>auto</rng:value>
<rng:value>column</rng:value>
<rng:value>page</rng:value>
<!-- https://issues.oasis-open.org/browse/OFFICE-3751 -->
<rng:value>even-page</rng:value>
<rng:value>odd-page</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-calendar-attlist">
<rng:optional>
<rng:attribute name="number:calendar">
<rng:choice>
<rng:value>gregorian</rng:value>
<rng:value>gengou</rng:value>
<rng:value>ROC</rng:value>
<rng:value>hanja_yoil</rng:value>
<rng:value>hanja</rng:value>
<rng:value>hijri</rng:value>
<rng:value>jewish</rng:value>
<rng:value>buddhist</rng:value>
<rng:ref name="string"/>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-contour-attlist">
<rng:attribute name="draw:recreate-on-edit">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:define>
<rng:define name="common-control-id-attlist">
<rng:group>
<rng:ref name="xml-id"/>
<rng:optional>
<rng:attribute name="form:id">
<rng:ref name="NCName"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:define>
<rng:define name="common-convert-empty-attlist">
<rng:optional>
<rng:attribute name="form:convert-empty-to-null">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-current-value-attlist">
<rng:optional>
<rng:attribute name="form:current-value">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-data-field-attlist">
<rng:optional>
<rng:attribute name="form:data-field">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-data-style-attlist">
<rng:interleave>
<rng:attribute name="style:name">
<rng:ref name="styleName"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="style:display-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:language">
<rng:ref name="languageCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:country">
<rng:ref name="countryCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:script">
<rng:ref name="scriptCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:rfc-language-tag">
<rng:ref name="language"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:title">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:volatile">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:transliteration-format">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:transliteration-language">
<rng:ref name="countryCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:transliteration-country">
<rng:ref name="countryCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:transliteration-style">
<rng:choice>
<rng:value>short</rng:value>
<rng:value>medium</rng:value>
<rng:value>long</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-db-default-value">
<rng:optional>
<rng:ref name="common-value-and-type-attlist"/>
</rng:optional>
</rng:define>
<rng:define name="common-db-object-description">
<rng:optional>
<rng:attribute name="db:description">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-db-object-name">
<rng:attribute name="db:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="common-db-object-title">
<rng:optional>
<rng:attribute name="db:title">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-db-table-name-attlist">
<rng:interleave>
<rng:attribute name="db:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="db:catalog-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:schema-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-db-table-style-name">
<rng:interleave>
<rng:optional>
<rng:attribute name="db:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:default-row-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-dde-connection-decl-attlist">
<rng:interleave>
<rng:attribute name="office:dde-application">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="office:dde-topic">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="office:dde-item">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="office:automatic-update">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-decimal-places-attlist">
<rng:optional>
<rng:attribute name="number:decimal-places">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:min-decimal-places">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3860 added number:min-decimal-places -->
</rng:define>
<rng:define name="common-delay-for-repeat">
<rng:optional>
<rng:attribute name="form:delay-for-repeat">
<rng:ref name="duration"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-disabled-attlist">
<rng:optional>
<rng:attribute name="form:disabled">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-dr3d-transform-attlist">
<rng:optional>
<rng:attribute name="dr3d:transform">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-draw-area-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="office:target-frame-name">
<rng:ref name="targetFrameName"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="xlink:show">
<rng:choice>
<rng:value>new</rng:value>
<rng:value>replace</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:optional>
<rng:optional>
<rng:attribute name="office:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:nohref">
<rng:value>nohref</rng:value>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-draw-caption-id-attlist">
<rng:optional>
<rng:attribute name="draw:caption-id">
<rng:ref name="IDREF"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-draw-circle-ellipse-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:kind">
<rng:choice>
<rng:value>full</rng:value>
<rng:value>section</rng:value>
<rng:value>cut</rng:value>
<rng:value>arc</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:start-angle">
<rng:ref name="angle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:end-angle">
<rng:ref name="angle"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-draw-circle-ellipse-pos-attlist">
<rng:attribute name="svg:cx">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:cy">
<rng:ref name="coordinate"/>
</rng:attribute>
</rng:define>
<rng:define name="common-draw-data-attlist">
<rng:group>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:show">
<rng:value>embed</rng:value>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="xlink:actuate">
<rng:value>onLoad</rng:value>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:define>
<rng:define name="common-draw-gradient-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:name">
<rng:ref name="styleName"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:display-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="draw:style">
<rng:ref name="gradient-style"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="draw:cx">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:cy">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:angle">
<rng:ref name="angle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:border">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-draw-id-attlist">
<rng:optional>
<rng:group>
<rng:ref name="xml-id"/>
<rng:optional>
<rng:attribute name="draw:id">
<rng:ref name="NCName"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:optional>
</rng:define>
<rng:define name="common-draw-layer-name-attlist">
<rng:optional>
<rng:attribute name="draw:layer">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-draw-mime-type-attlist">
<rng:optional>
<rng:attribute name="draw:mime-type">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-3943 -->
<rng:define name="common-draw-name-attlist">
<rng:optional>
<rng:attribute name="draw:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-draw-path-data-attlist">
<rng:attribute name="svg:d">
<rng:ref name="pathData"/>
</rng:attribute>
</rng:define>
<rng:define name="common-draw-points-attlist">
<rng:attribute name="draw:points">
<rng:ref name="points"/>
</rng:attribute>
</rng:define>
<rng:define name="common-draw-position-attlist">
<rng:optional>
<rng:attribute name="svg:x">
<rng:ref name="coordinate"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:y">
<rng:ref name="coordinate"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-draw-rel-size-attlist">
<rng:ref name="common-draw-size-attlist"/>
<rng:optional>
<rng:attribute name="style:rel-width">
<rng:choice>
<rng:ref name="percent"/>
<rng:value>scale</rng:value>
<rng:value>scale-min</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:rel-height">
<rng:choice>
<rng:ref name="percent"/>
<rng:value>scale</rng:value>
<rng:value>scale-min</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:define name="common-draw-shape-accessibility">
<!-- https://issues.oasis-open.org/browse/OFFICE-4142 -->
<rng:optional>
<rng:ref name="svg-title"/>
</rng:optional>
<rng:optional>
<rng:ref name="svg-desc"/>
</rng:optional>
</rng:define>
<rng:define name="common-draw-shape-with-styles-attlist">
<rng:ref name="common-draw-z-index-attlist"/>
<rng:ref name="common-draw-id-attlist"/>
<rng:ref name="common-draw-layer-name-attlist"/>
<rng:ref name="common-draw-style-name-attlist"/>
<rng:ref name="common-draw-transform-attlist"/>
<rng:ref name="common-draw-name-attlist"/>
<rng:ref name="common-text-spreadsheet-shape-attlist"/>
</rng:define>
<rng:define name="common-draw-shape-with-text-and-styles-attlist">
<rng:ref name="common-draw-shape-with-styles-attlist"/>
<rng:ref name="common-draw-text-style-name-attlist"/>
</rng:define>
<rng:define name="common-draw-size-attlist">
<rng:optional>
<rng:attribute name="svg:width">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:height">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-draw-style-name-attlist">
<rng:choice>
<rng:group>
<rng:optional>
<rng:attribute name="draw:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:class-names">
<rng:ref name="styleNameRefs"/>
</rng:attribute>
</rng:optional>
</rng:group>
<rng:group>
<rng:optional>
<rng:attribute name="presentation:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:class-names">
<rng:ref name="styleNameRefs"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:choice>
</rng:define>
<rng:define name="common-draw-text-style-name-attlist">
<rng:optional>
<rng:attribute name="draw:text-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-draw-transform-attlist">
<rng:optional>
<rng:attribute name="draw:transform">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-draw-viewbox-attlist">
<rng:attribute name="svg:viewBox">
<rng:list>
<rng:ref name="integer"/>
<rng:ref name="integer"/>
<rng:ref name="integer"/>
<rng:ref name="integer"/>
</rng:list>
</rng:attribute>
</rng:define>
<rng:define name="common-draw-z-index-attlist">
<rng:optional>
<rng:attribute name="draw:z-index">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-dur-timing-attlist">
<rng:optional>
<rng:attribute name="smil:dur">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-editable-attlist">
<rng:optional>
<rng:attribute name="style:editable">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-endsync-timing-attlist">
<rng:optional>
<rng:attribute name="smil:endsync">
<rng:choice>
<rng:value>first</rng:value>
<rng:value>last</rng:value>
<rng:value>all</rng:value>
<rng:value>media</rng:value>
<rng:ref name="IDREF"/>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-field-data-style-name-attlist">
<rng:optional>
<rng:attribute name="style:data-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-field-database-name">
<rng:choice>
<rng:optional>
<rng:attribute name="text:database-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:ref name="form-connection-resource"/>
</rng:choice>
</rng:define>
<rng:define name="common-field-database-table">
<rng:ref name="common-field-database-table-attlist"/>
<rng:ref name="common-field-database-name"/>
</rng:define>
<rng:define name="common-field-database-table-attlist">
<rng:interleave>
<rng:attribute name="text:table-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="text:table-type">
<rng:choice>
<rng:value>table</rng:value>
<rng:value>query</rng:value>
<rng:value>command</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-field-description-attlist">
<rng:optional>
<rng:attribute name="text:description">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-field-display-value-formula-attlist">
<rng:optional>
<rng:attribute name="text:display">
<rng:choice>
<rng:value>value</rng:value>
<rng:value>formula</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-field-display-value-formula-none-attlist">
<rng:optional>
<rng:attribute name="text:display">
<rng:choice>
<rng:value>value</rng:value>
<rng:value>formula</rng:value>
<rng:value>none</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-field-display-value-none-attlist">
<rng:optional>
<rng:attribute name="text:display">
<rng:choice>
<rng:value>value</rng:value>
<rng:value>none</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-field-fixed-attlist">
<rng:optional>
<rng:attribute name="text:fixed">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-field-formula-attlist">
<rng:optional>
<rng:attribute name="text:formula">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-field-name-attlist">
<rng:attribute name="text:name">
<rng:ref name="variableName"/>
</rng:attribute>
</rng:define>
<rng:define name="common-field-num-format-attlist">
<rng:optional>
<rng:ref name="common-num-format-attlist"/>
</rng:optional>
</rng:define>
<rng:define name="common-fill-default-attlist">
<rng:optional>
<rng:attribute name="smil:fillDefault">
<rng:choice>
<rng:value>remove</rng:value>
<rng:value>freeze</rng:value>
<rng:value>hold</rng:value>
<rng:value>transition</rng:value>
<rng:value>auto</rng:value>
<rng:value>inherit</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-fill-timing-attlist">
<rng:optional>
<rng:attribute name="smil:fill">
<rng:choice>
<rng:value>remove</rng:value>
<rng:value>freeze</rng:value>
<rng:value>hold</rng:value>
<rng:value>auto</rng:value>
<rng:value>default</rng:value>
<rng:value>transition</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-form-control-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="form:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:control-implementation">
<rng:ref name="namespacedToken"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-form-control-content">
<rng:optional>
<rng:ref name="form-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
</rng:define>
<rng:define name="common-form-relative-image-position-attlist">
<rng:choice>
<rng:optional>
<rng:attribute name="form:image-position">
<rng:value>center</rng:value>
</rng:attribute>
</rng:optional>
<rng:group>
<rng:attribute name="form:image-position">
<rng:choice>
<rng:value>start</rng:value>
<rng:value>end</rng:value>
<rng:value>top</rng:value>
<rng:value>bottom</rng:value>
</rng:choice>
</rng:attribute>
<rng:optional>
<rng:attribute name="form:image-align">
<rng:choice>
<rng:value>start</rng:value>
<rng:value>center</rng:value>
<rng:value>end</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:choice>
</rng:define>
<rng:define name="common-form-visual-effect-attlist">
<rng:optional>
<rng:attribute name="form:visual-effect">
<rng:choice>
<rng:value>flat</rng:value>
<rng:value>3d</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-format-source-attlist">
<rng:optional>
<rng:attribute name="number:format-source">
<rng:choice>
<rng:value>fixed</rng:value>
<rng:value>language</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-horizontal-margin-attlist">
<rng:optional>
<rng:attribute name="fo:margin-left">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:margin-right">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-in-content-meta-attlist">
<rng:attribute name="xhtml:about">
<rng:ref name="URIorSafeCURIE"/>
</rng:attribute>
<rng:attribute name="xhtml:property">
<rng:ref name="CURIEs"/>
</rng:attribute>
<rng:ref name="common-meta-literal-attlist"/>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-4121 -->
<rng:define name="common-input-required-attlist">
<rng:optional>
<rng:attribute name="form:input-required">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-keep-with-next-attlist">
<rng:optional>
<rng:attribute name="fo:keep-with-next">
<rng:choice>
<rng:value>auto</rng:value>
<rng:value>always</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-linked-cell">
<rng:optional>
<rng:attribute name="form:linked-cell">
<rng:choice>
<rng:ref name="cellAddress"/>
<rng:ref name="string"/>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-margin-attlist">
<rng:optional>
<rng:attribute name="fo:margin">
<rng:choice>
<rng:ref name="nonNegativeLength"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-maxlength-attlist">
<rng:optional>
<rng:attribute name="form:max-length">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-meta-literal-attlist">
<rng:optional>
<rng:attribute name="xhtml:datatype">
<rng:ref name="CURIE"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="xhtml:content">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-num-format-attlist">
<rng:choice>
<rng:attribute name="style:num-format">
<rng:choice>
<rng:value>1</rng:value>
<rng:value>i</rng:value>
<rng:value>I</rng:value>
<rng:ref name="string"/>
<rng:empty/>
</rng:choice>
</rng:attribute>
<rng:group>
<rng:attribute name="style:num-format">
<rng:choice>
<rng:value>a</rng:value>
<rng:value>A</rng:value>
</rng:choice>
</rng:attribute>
<rng:ref name="style-num-letter-sync-attlist"/>
</rng:group>
<rng:empty/>
</rng:choice>
</rng:define>
<rng:define name="common-num-format-prefix-suffix-attlist">
<rng:optional>
<rng:attribute name="style:num-prefix">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:num-suffix">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-4108 -->
<rng:define name="common-num-list-format-name-attlist">
<rng:optional>
<rng:attribute name="style:num-list-format-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-number-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="number:min-integer-digits">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:grouping">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-numeric-control-attlist">
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-disabled-attlist"/>
<rng:ref name="common-maxlength-attlist"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-readonly-attlist"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="common-convert-empty-attlist"/>
<rng:ref name="common-data-field-attlist"/>
</rng:define>
<rng:define name="common-office-annotation-name-attlist">
<rng:attribute name="office:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="common-padding-attlist">
<rng:optional>
<rng:attribute name="fo:padding">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:padding-top">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:padding-bottom">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:padding-left">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:padding-right">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-page-number-attlist">
<rng:optional>
<rng:attribute name="style:page-number">
<rng:choice>
<rng:ref name="nonNegativeInteger"/>
<rng:value>auto</rng:value>
</rng:choice>
<!-- https://issues.oasis-open.org/browse/OFFICE-3923 -->
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-presentation-effect-attlist">
<rng:interleave>
<rng:attribute name="draw:shape-id">
<rng:ref name="IDREF"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="presentation:effect">
<rng:ref name="presentationEffects"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:direction">
<rng:ref name="presentationEffectDirections"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:speed">
<rng:ref name="presentationSpeeds"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:delay">
<rng:ref name="duration"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:start-scale">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:path-id">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-presentation-header-footer-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="presentation:use-header-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:use-footer-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:use-date-time-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-printable-attlist">
<rng:optional>
<rng:attribute name="form:printable">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-readonly-attlist">
<rng:optional>
<rng:attribute name="form:readonly">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-4035
<rng:define name="common-ref-format-values">
<rng:choice>
<rng:value>page</rng:value>
<rng:value>chapter</rng:value>
<rng:value>direction</rng:value>
<rng:value>text</rng:value>
</rng:choice>
</rng:define>
-->
<rng:define name="common-repeat">
<rng:optional>
<rng:attribute name="form:repeat">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-repeat-timing-attlist">
<rng:optional>
<rng:attribute name="smil:repeatDur">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:repeatCount">
<rng:choice>
<rng:ref name="nonNegativeDecimal"/>
<rng:value>indefinite</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-restart-default-attlist">
<rng:optional>
<rng:attribute name="smil:restartDefault">
<rng:choice>
<rng:value>never</rng:value>
<rng:value>always</rng:value>
<rng:value>whenNotActive</rng:value>
<rng:value>inherit</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-restart-timing-attlist">
<rng:optional>
<rng:attribute name="smil:restart">
<rng:choice>
<rng:value>never</rng:value>
<rng:value>always</rng:value>
<rng:value>whenNotActive</rng:value>
<rng:value>default</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-rotation-angle-attlist">
<rng:optional>
<rng:attribute name="style:rotation-angle">
<rng:ref name="angle"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-section-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="text:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="text:protected">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:protection-key">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:protection-key-digest-algorithm">
<rng:ref name="anyIRI"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-shadow-attlist">
<rng:optional>
<rng:attribute name="style:shadow">
<rng:ref name="shadowType"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-source-cell-range">
<rng:optional>
<rng:attribute name="form:source-cell-range">
<rng:choice>
<rng:ref name="cellRangeAddress"/>
<rng:ref name="string"/>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-spin-button">
<rng:optional>
<rng:attribute name="form:spin-button">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-spline-anim-value-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="smil:keyTimes">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:keySplines">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-stock-marker-attlist">
<rng:optional>
<rng:attribute name="chart:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-style-direction-attlist">
<rng:optional>
<rng:attribute name="style:direction">
<rng:choice>
<rng:value>ltr</rng:value>
<rng:value>ttb</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-style-header-footer-attlist">
<rng:optional>
<rng:attribute name="style:display">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-svg-font-face-xlink-attlist">
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:actuate">
<rng:value>onRequest</rng:value>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-svg-gradient-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="svg:gradientUnits">
<rng:value>objectBoundingBox</rng:value>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:gradientTransform">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:spreadMethod">
<rng:choice>
<rng:value>pad</rng:value>
<rng:value>reflect</rng:value>
<rng:value>repeat</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:attribute name="draw:name">
<rng:ref name="styleName"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="draw:display-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-tab-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="form:tab-index">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:tab-stop">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-table-cell-address-attlist">
<rng:attribute name="table:column">
<rng:ref name="integer"/>
</rng:attribute>
<rng:attribute name="table:row">
<rng:ref name="integer"/>
</rng:attribute>
<rng:attribute name="table:table">
<rng:ref name="integer"/>
</rng:attribute>
</rng:define>
<rng:define name="common-table-cell-range-address-attlist">
<rng:attribute name="table:start-column">
<rng:ref name="integer"/>
</rng:attribute>
<rng:attribute name="table:start-row">
<rng:ref name="integer"/>
</rng:attribute>
<rng:attribute name="table:start-table">
<rng:ref name="integer"/>
</rng:attribute>
<rng:attribute name="table:end-column">
<rng:ref name="integer"/>
</rng:attribute>
<rng:attribute name="table:end-row">
<rng:ref name="integer"/>
</rng:attribute>
<rng:attribute name="table:end-table">
<rng:ref name="integer"/>
</rng:attribute>
</rng:define>
<rng:define name="common-table-change-attlist">
<rng:interleave>
<rng:attribute name="table:id">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:acceptance-state">
<rng:choice>
<rng:value>accepted</rng:value>
<rng:value>rejected</rng:value>
<rng:value>pending</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:rejecting-change-id">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-table-range-attlist">
<rng:choice>
<rng:group>
<rng:ref name="common-table-cell-address-attlist"/>
</rng:group>
<rng:group>
<rng:ref name="common-table-cell-range-address-attlist"/>
</rng:group>
</rng:choice>
</rng:define>
<rng:define name="common-table-template-attlist">
<rng:attribute name="table:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:paragraph-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-text-align">
<rng:optional>
<rng:attribute name="fo:text-align">
<rng:choice>
<rng:value>start</rng:value>
<rng:value>end</rng:value>
<rng:value>left</rng:value>
<rng:value>right</rng:value>
<rng:value>center</rng:value>
<rng:value>justify</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-text-anchor-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:anchor-type">
<rng:choice>
<rng:value>page</rng:value>
<rng:value>frame</rng:value>
<rng:value>paragraph</rng:value>
<rng:value>char</rng:value>
<rng:value>as-char</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:anchor-page-number">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-text-spreadsheet-shape-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:end-cell-address">
<rng:ref name="cellAddress"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:end-x">
<rng:ref name="coordinate"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:end-y">
<rng:ref name="coordinate"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:table-background">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-text-anchor-attlist"/>
</rng:interleave>
</rng:define>
<rng:define name="common-time-manip-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="smil:accelerate">
<rng:ref name="zeroToOneDecimal"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:decelerate">
<rng:ref name="zeroToOneDecimal"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:autoReverse">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="common-timing-attlist">
<rng:ref name="common-basic-timing-attlist"/>
<rng:ref name="common-time-manip-attlist"/>
</rng:define>
<rng:define name="common-title-attlist">
<rng:optional>
<rng:attribute name="form:title">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-value-and-type-attlist">
<rng:choice>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>float</rng:value>
</rng:attribute>
<rng:attribute name="office:value">
<rng:ref name="double"/>
</rng:attribute>
</rng:group>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>percentage</rng:value>
</rng:attribute>
<rng:attribute name="office:value">
<rng:ref name="double"/>
</rng:attribute>
</rng:group>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>currency</rng:value>
</rng:attribute>
<rng:attribute name="office:value">
<rng:ref name="double"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="office:currency">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:group>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>date</rng:value>
</rng:attribute>
<rng:attribute name="office:date-value">
<rng:ref name="dateOrDateTime"/>
</rng:attribute>
</rng:group>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>time</rng:value>
</rng:attribute>
<rng:attribute name="office:time-value">
<rng:ref name="duration"/>
</rng:attribute>
</rng:group>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>boolean</rng:value>
</rng:attribute>
<rng:attribute name="office:boolean-value">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:group>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>string</rng:value>
</rng:attribute>
<rng:optional>
<rng:attribute name="office:string-value">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:group>
<!-- https://issues.oasis-open.org/browse/OFFICE-3759 -->
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>error</rng:value>
</rng:attribute>
<rng:optional>
<rng:attribute name="office:string-value">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:choice>
</rng:define>
<rng:define name="common-value-attlist">
<rng:optional>
<rng:attribute name="form:value">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-value-type-attlist">
<rng:attribute name="office:value-type">
<rng:ref name="valueType"/>
</rng:attribute>
</rng:define>
<rng:define name="common-vertical-margin-attlist">
<rng:optional>
<rng:attribute name="fo:margin-top">
<rng:choice>
<rng:ref name="nonNegativeLength"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:margin-bottom">
<rng:choice>
<rng:ref name="nonNegativeLength"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-vertical-pos-attlist">
<rng:optional>
<rng:attribute name="style:vertical-pos">
<rng:choice>
<rng:value>top</rng:value>
<rng:value>middle</rng:value>
<rng:value>bottom</rng:value>
<rng:value>from-top</rng:value>
<rng:value>below</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:y">
<rng:ref name="coordinate"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-vertical-rel-attlist">
<rng:optional>
<rng:attribute name="style:vertical-rel">
<rng:choice>
<rng:value>page</rng:value>
<rng:value>page-content</rng:value>
<!-- https://issues.oasis-open.org/browse/OFFICE-4073 -->
<rng:value>page-content-bottom</rng:value>
<!-- https://issues.oasis-open.org/browse/OFFICE-4129 -->
<rng:value>page-content-top</rng:value>
<rng:value>frame</rng:value>
<rng:value>frame-content</rng:value>
<rng:value>paragraph</rng:value>
<rng:value>paragraph-content</rng:value>
<rng:value>char</rng:value>
<rng:value>line</rng:value>
<rng:value>baseline</rng:value>
<rng:value>text</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="common-writing-mode-attlist">
<rng:optional>
<rng:attribute name="style:writing-mode">
<rng:choice>
<rng:value>lr-tb</rng:value>
<rng:value>lr</rng:value>
<rng:value>rl-tb</rng:value>
<rng:value>rl</rng:value>
<rng:value>tb-rl</rng:value>
<rng:value>tb</rng:value>
<rng:value>tb-lr</rng:value>
<!-- https://issues.oasis-open.org/browse/OFFICE-4030 -->
<rng:value>sideways-rl</rng:value>
<rng:value>sideways-lr</rng:value>
<rng:value>page</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="config-config-item">
<rng:element name="config:config-item">
<rng:ref name="config-config-item-attlist"/>
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="config-config-item-attlist">
<rng:interleave>
<rng:attribute name="config:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="config:type">
<rng:choice>
<rng:value>boolean</rng:value>
<rng:value>short</rng:value>
<rng:value>int</rng:value>
<rng:value>long</rng:value>
<rng:value>double</rng:value>
<rng:value>string</rng:value>
<rng:value>datetime</rng:value>
<rng:value>base64Binary</rng:value>
</rng:choice>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="config-config-item-map-entry">
<rng:element name="config:config-item-map-entry">
<rng:ref name="config-config-item-map-entry-attlist"/>
<rng:ref name="config-items"/>
</rng:element>
</rng:define>
<rng:define name="config-config-item-map-entry-attlist">
<rng:optional>
<rng:attribute name="config:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="config-config-item-map-indexed">
<rng:element name="config:config-item-map-indexed">
<rng:ref name="config-config-item-map-indexed-attlist"/>
<rng:oneOrMore>
<rng:ref name="config-config-item-map-entry"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="config-config-item-map-indexed-attlist">
<rng:attribute name="config:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="config-config-item-map-named">
<rng:element name="config:config-item-map-named">
<rng:ref name="config-config-item-map-named-attlist"/>
<rng:oneOrMore>
<rng:ref name="config-config-item-map-entry"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="config-config-item-map-named-attlist">
<rng:attribute name="config:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="config-config-item-set">
<rng:element name="config:config-item-set">
<rng:ref name="config-config-item-set-attlist"/>
<rng:ref name="config-items"/>
</rng:element>
</rng:define>
<rng:define name="config-config-item-set-attlist">
<rng:attribute name="config:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="config-items">
<rng:oneOrMore>
<rng:choice>
<rng:ref name="config-config-item"/>
<rng:ref name="config-config-item-set"/>
<rng:ref name="config-config-item-map-named"/>
<rng:ref name="config-config-item-map-indexed"/>
</rng:choice>
</rng:oneOrMore>
</rng:define>
<rng:define name="controls">
<rng:choice>
<rng:ref name="column-controls"/>
<rng:element name="form:password">
<rng:ref name="form-password-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
<rng:element name="form:file">
<rng:ref name="form-file-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
<rng:element name="form:fixed-text">
<rng:ref name="form-fixed-text-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
<rng:element name="form:button">
<rng:ref name="form-button-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
<rng:element name="form:image">
<rng:ref name="form-image-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
<rng:element name="form:radio">
<rng:ref name="form-radio-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
<rng:element name="form:frame">
<rng:ref name="form-frame-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
<rng:element name="form:image-frame">
<rng:ref name="form-image-frame-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
<rng:element name="form:hidden">
<rng:ref name="form-hidden-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
<rng:element name="form:grid">
<rng:ref name="form-grid-attlist"/>
<rng:ref name="common-form-control-content"/>
<rng:zeroOrMore>
<rng:ref name="form-column"/>
</rng:zeroOrMore>
</rng:element>
<rng:element name="form:value-range">
<rng:ref name="form-value-range-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
<rng:element name="form:generic-control">
<rng:ref name="form-generic-control-attlist"/>
<rng:ref name="common-form-control-content"/>
</rng:element>
</rng:choice>
</rng:define>
<rng:define name="coordinate">
<rng:ref name="length"/>
</rng:define>
<rng:define name="countryCode">
<rng:data type="token">
<rng:param name="pattern">[A-Za-z0-9]{1,8}</rng:param>
</rng:data>
</rng:define>
<rng:define name="currency-symbol-and-text">
<rng:ref name="number-currency-symbol"/>
<rng:optional>
<rng:ref name="number-text-with-fillchar"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
</rng:optional>
</rng:define>
<rng:define name="current-selected">
<rng:optional>
<rng:attribute name="form:current-selected">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="custom-shape-type">
<rng:choice>
<rng:value>non-primitive</rng:value>
<rng:ref name="string"/>
</rng:choice>
</rng:define>
<rng:define name="date">
<rng:data type="date"/>
</rng:define>
<rng:define name="dateOrDateTime">
<rng:choice>
<rng:data type="date"/>
<rng:data type="dateTime"/>
</rng:choice>
</rng:define>
<rng:define name="dateTime">
<rng:data type="dateTime"/>
</rng:define>
<rng:define name="db-application-connection-settings">
<rng:element name="db:application-connection-settings">
<rng:ref name="db-application-connection-settings-attlist"/>
<rng:optional>
<rng:ref name="db-table-filter"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-table-type-filter"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-data-source-settings"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="db-application-connection-settings-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="db:is-table-name-length-limited">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:enable-sql92-check">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:append-table-alias-name">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:ignore-driver-privileges">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:boolean-comparison-mode">
<rng:choice>
<rng:value>equal-integer</rng:value>
<rng:value>is-boolean</rng:value>
<rng:value>equal-boolean</rng:value>
<rng:value>equal-use-only-zero</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:use-catalog">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:max-row-count">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:suppress-version-columns">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-apply-command">
<rng:optional>
<rng:attribute name="db:apply-command">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="db-auto-increment">
<rng:element name="db:auto-increment">
<rng:ref name="db-auto-increment-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="db-auto-increment-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="db:additional-column-statement">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:row-retrieving-statement">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-character-set">
<rng:element name="db:character-set">
<rng:ref name="db-character-set-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="db-character-set-attlist">
<rng:optional>
<rng:attribute name="db:encoding">
<rng:ref name="textEncoding"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="db-column">
<rng:element name="db:column">
<rng:ref name="db-column-attlist"/>
<rng:ref name="common-db-object-name"/>
<rng:ref name="common-db-object-title"/>
<rng:ref name="common-db-object-description"/>
<rng:ref name="common-db-default-value"/>
</rng:element>
</rng:define>
<rng:define name="db-column-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="db:visible">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:default-cell-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-column-definition">
<rng:element name="db:column-definition">
<rng:ref name="db-column-definition-attlist"/>
<rng:ref name="common-db-default-value"/>
</rng:element>
</rng:define>
<rng:define name="db-column-definition-attlist">
<rng:interleave>
<rng:attribute name="db:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="db:data-type">
<rng:ref name="db-data-types"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:type-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:precision">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:scale">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:is-nullable">
<rng:choice>
<rng:value>no-nulls</rng:value>
<rng:value>nullable</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:is-empty-allowed">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:is-autoincrement">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-column-definitions">
<rng:element name="db:column-definitions">
<rng:ref name="db-column-definitions-attlist"/>
<rng:oneOrMore>
<rng:ref name="db-column-definition"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="db-column-definitions-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-columns">
<rng:element name="db:columns">
<rng:ref name="db-columns-attlist"/>
<rng:oneOrMore>
<rng:ref name="db-column"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="db-columns-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-command">
<rng:attribute name="db:command">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="db-component">
<rng:element name="db:component">
<rng:ref name="db-component-attlist"/>
<rng:ref name="common-db-object-name"/>
<rng:ref name="common-db-object-title"/>
<rng:ref name="common-db-object-description"/>
<rng:optional>
<rng:choice>
<rng:ref name="office-document"/>
<rng:ref name="math-math"/>
</rng:choice>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="db-component-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:show">
<rng:value>none</rng:value>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="xlink:actuate">
<rng:value>onRequest</rng:value>
</rng:attribute>
</rng:optional>
</rng:optional>
<rng:optional>
<rng:attribute name="db:as-template">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-component-collection">
<rng:element name="db:component-collection">
<rng:ref name="db-component-collection-attlist"/>
<rng:ref name="common-db-object-name"/>
<rng:ref name="common-db-object-title"/>
<rng:ref name="common-db-object-description"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="db-component"/>
<rng:ref name="db-component-collection"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="db-component-collection-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-connection-data">
<rng:element name="db:connection-data">
<rng:ref name="db-connection-data-attlist"/>
<rng:choice>
<rng:ref name="db-database-description"/>
<rng:ref name="db-connection-resource"/>
</rng:choice>
<rng:optional>
<rng:ref name="db-login"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="db-connection-data-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-connection-resource">
<rng:element name="db:connection-resource">
<rng:ref name="db-connection-resource-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="db-connection-resource-attlist">
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:show">
<rng:value>none</rng:value>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="xlink:actuate">
<rng:value>onRequest</rng:value>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="db-data-source">
<rng:element name="db:data-source">
<rng:ref name="db-data-source-attlist"/>
<rng:ref name="db-connection-data"/>
<rng:optional>
<rng:ref name="db-driver-settings"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-application-connection-settings"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="db-data-source-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-data-source-setting">
<rng:element name="db:data-source-setting">
<rng:ref name="db-data-source-setting-attlist"/>
<rng:oneOrMore>
<rng:ref name="db-data-source-setting-value"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="db-data-source-setting-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="db:data-source-setting-is-list">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="db:data-source-setting-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="db:data-source-setting-type">
<rng:ref name="db-data-source-setting-types"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="db-data-source-setting-types">
<rng:choice>
<rng:value>boolean</rng:value>
<rng:value>short</rng:value>
<rng:value>int</rng:value>
<rng:value>long</rng:value>
<rng:value>double</rng:value>
<rng:value>string</rng:value>
</rng:choice>
</rng:define>
<rng:define name="db-data-source-setting-value">
<rng:element name="db:data-source-setting-value">
<rng:ref name="db-data-source-setting-value-attlist"/>
<rng:ref name="string"/>
</rng:element>
</rng:define>
<rng:define name="db-data-source-setting-value-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-data-source-settings">
<rng:element name="db:data-source-settings">
<rng:ref name="db-data-source-settings-attlist"/>
<rng:oneOrMore>
<rng:ref name="db-data-source-setting"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="db-data-source-settings-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-data-types">
<rng:choice>
<rng:value>bit</rng:value>
<rng:value>boolean</rng:value>
<rng:value>tinyint</rng:value>
<rng:value>smallint</rng:value>
<rng:value>integer</rng:value>
<rng:value>bigint</rng:value>
<rng:value>float</rng:value>
<rng:value>real</rng:value>
<rng:value>double</rng:value>
<rng:value>numeric</rng:value>
<rng:value>decimal</rng:value>
<rng:value>char</rng:value>
<rng:value>varchar</rng:value>
<rng:value>longvarchar</rng:value>
<rng:value>date</rng:value>
<rng:value>time</rng:value>
<rng:value>timestmp</rng:value>
<rng:value>binary</rng:value>
<rng:value>varbinary</rng:value>
<rng:value>longvarbinary</rng:value>
<rng:value>sqlnull</rng:value>
<rng:value>other</rng:value>
<rng:value>object</rng:value>
<rng:value>distinct</rng:value>
<rng:value>struct</rng:value>
<rng:value>array</rng:value>
<rng:value>blob</rng:value>
<rng:value>clob</rng:value>
<rng:value>ref</rng:value>
</rng:choice>
</rng:define>
<rng:define name="db-database-description">
<rng:element name="db:database-description">
<rng:ref name="db-database-description-attlist"/>
<rng:choice>
<rng:ref name="db-file-based-database"/>
<rng:ref name="db-server-database"/>
</rng:choice>
</rng:element>
</rng:define>
<rng:define name="db-database-description-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-delimiter">
<rng:element name="db:delimiter">
<rng:ref name="db-delimiter-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="db-delimiter-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="db:field">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:string">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:decimal">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:thousand">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-driver-settings">
<rng:element name="db:driver-settings">
<rng:ref name="db-driver-settings-attlist"/>
<rng:optional>
<rng:ref name="db-auto-increment"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-delimiter"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-character-set"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-table-settings"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="db-driver-settings-attlist">
<rng:interleave>
<rng:ref name="db-show-deleted"/>
<rng:optional>
<rng:attribute name="db:system-driver-settings">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:base-dn">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:ref name="db-is-first-row-header-line"/>
<rng:optional>
<rng:attribute name="db:parameter-name-substitution">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-file-based-database">
<rng:element name="db:file-based-database">
<rng:ref name="db-file-based-database-attlist"/>
</rng:element>
</rng:define>
<rng:define name="db-file-based-database-attlist">
<rng:interleave>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:attribute name="db:media-type">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="db:extension">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-filter-statement">
<rng:element name="db:filter-statement">
<rng:ref name="db-command"/>
<rng:ref name="db-apply-command"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="db-forms">
<rng:element name="db:forms">
<rng:ref name="db-forms-attlist"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="db-component"/>
<rng:ref name="db-component-collection"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="db-forms-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-host-and-port">
<rng:attribute name="db:hostname">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="db:port">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="db-index">
<rng:element name="db:index">
<rng:ref name="db-index-attlist"/>
<rng:oneOrMore>
<rng:ref name="db-index-columns"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="db-index-attlist">
<rng:interleave>
<rng:attribute name="db:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="db:catalog-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:is-unique">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:is-clustered">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-index-column">
<rng:element name="db:index-column">
<rng:ref name="db-index-column-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="db-index-column-attlist">
<rng:interleave>
<rng:attribute name="db:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="db:is-ascending">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-index-columns">
<rng:element name="db:index-columns">
<rng:oneOrMore>
<rng:ref name="db-index-column"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="db-indices">
<rng:element name="db:indices">
<rng:ref name="db-indices-attlist"/>
<rng:oneOrMore>
<rng:ref name="db-index"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="db-indices-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-is-first-row-header-line">
<rng:optional>
<rng:attribute name="db:is-first-row-header-line">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="db-key">
<rng:element name="db:key">
<rng:ref name="db-key-attlist"/>
<rng:oneOrMore>
<rng:ref name="db-key-columns"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="db-key-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="db:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="db:type">
<rng:choice>
<rng:value>primary</rng:value>
<rng:value>unique</rng:value>
<rng:value>foreign</rng:value>
</rng:choice>
</rng:attribute>
<rng:optional>
<rng:attribute name="db:referenced-table-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:update-rule">
<rng:choice>
<rng:value>cascade</rng:value>
<rng:value>restrict</rng:value>
<rng:value>set-null</rng:value>
<rng:value>no-action</rng:value>
<rng:value>set-default</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:delete-rule">
<rng:choice>
<rng:value>cascade</rng:value>
<rng:value>restrict</rng:value>
<rng:value>set-null</rng:value>
<rng:value>no-action</rng:value>
<rng:value>set-default</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-key-column">
<rng:element name="db:key-column">
<rng:ref name="db-key-column-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="db-key-column-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="db:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:related-column-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-key-columns">
<rng:element name="db:key-columns">
<rng:ref name="db-key-columns-attlist"/>
<rng:oneOrMore>
<rng:ref name="db-key-column"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="db-key-columns-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-keys">
<rng:element name="db:keys">
<rng:ref name="db-keys-attlist"/>
<rng:oneOrMore>
<rng:ref name="db-key"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="db-keys-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-local-socket-name">
<rng:optional>
<rng:attribute name="db:local-socket">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="db-login">
<rng:element name="db:login">
<rng:ref name="db-login-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="db-login-attlist">
<rng:interleave>
<rng:optional>
<rng:choice>
<rng:attribute name="db:user-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="db:use-system-user">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:choice>
</rng:optional>
<rng:optional>
<rng:attribute name="db:is-password-required">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="db:login-timeout">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-order-statement">
<rng:element name="db:order-statement">
<rng:ref name="db-command"/>
<rng:ref name="db-apply-command"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="db-queries">
<rng:element name="db:queries">
<rng:ref name="db-queries-attlist"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="db-query"/>
<rng:ref name="db-query-collection"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="db-queries-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-query">
<rng:element name="db:query">
<rng:ref name="db-query-attlist"/>
<rng:ref name="common-db-object-name"/>
<rng:ref name="common-db-object-title"/>
<rng:ref name="common-db-object-description"/>
<rng:ref name="common-db-table-style-name"/>
<rng:optional>
<rng:ref name="db-order-statement"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-filter-statement"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-columns"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-update-table"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="db-query-attlist">
<rng:interleave>
<rng:attribute name="db:command">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="db:escape-processing">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-query-collection">
<rng:element name="db:query-collection">
<rng:ref name="db-query-collection-attlist"/>
<rng:ref name="common-db-object-name"/>
<rng:ref name="common-db-object-title"/>
<rng:ref name="common-db-object-description"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="db-query"/>
<rng:ref name="db-query-collection"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="db-query-collection-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-reports">
<rng:element name="db:reports">
<rng:ref name="db-reports-attlist"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="db-component"/>
<rng:ref name="db-component-collection"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="db-reports-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-schema-definition">
<rng:element name="db:schema-definition">
<rng:ref name="db-schema-definition-attlist"/>
<rng:ref name="db-table-definitions"/>
</rng:element>
</rng:define>
<rng:define name="db-schema-definition-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-server-database">
<rng:element name="db:server-database">
<rng:ref name="db-server-database-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="db-server-database-attlist">
<rng:interleave>
<rng:attribute name="db:type">
<rng:ref name="namespacedToken"/>
</rng:attribute>
<rng:choice>
<rng:ref name="db-host-and-port"/>
<rng:ref name="db-local-socket-name"/>
</rng:choice>
<rng:optional>
<rng:attribute name="db:database-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="db-show-deleted">
<rng:optional>
<rng:attribute name="db:show-deleted">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="db-table-definition">
<rng:element name="db:table-definition">
<rng:ref name="common-db-table-name-attlist"/>
<rng:ref name="db-table-definition-attlist"/>
<rng:ref name="db-column-definitions"/>
<rng:optional>
<rng:ref name="db-keys"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-indices"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="db-table-definition-attlist">
<rng:optional>
<rng:attribute name="db:type">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="db-table-definitions">
<rng:element name="db:table-definitions">
<rng:ref name="db-table-definitions-attlist"/>
<rng:zeroOrMore>
<rng:ref name="db-table-definition"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="db-table-definitions-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-table-exclude-filter">
<rng:element name="db:table-exclude-filter">
<rng:ref name="db-table-exclude-filter-attlist"/>
<rng:oneOrMore>
<rng:ref name="db-table-filter-pattern"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="db-table-exclude-filter-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-table-filter">
<rng:element name="db:table-filter">
<rng:ref name="db-table-filter-attlist"/>
<rng:optional>
<rng:ref name="db-table-include-filter"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-table-exclude-filter"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="db-table-filter-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-table-filter-pattern">
<rng:element name="db:table-filter-pattern">
<rng:ref name="db-table-filter-pattern-attlist"/>
<rng:ref name="string"/>
</rng:element>
</rng:define>
<rng:define name="db-table-filter-pattern-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-table-include-filter">
<rng:element name="db:table-include-filter">
<rng:ref name="db-table-include-filter-attlist"/>
<rng:oneOrMore>
<rng:ref name="db-table-filter-pattern"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="db-table-include-filter-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-table-presentation">
<rng:element name="db:table-representation">
<rng:ref name="db-table-presentation-attlist"/>
<rng:ref name="common-db-table-name-attlist"/>
<rng:ref name="common-db-object-title"/>
<rng:ref name="common-db-object-description"/>
<rng:ref name="common-db-table-style-name"/>
<rng:optional>
<rng:ref name="db-order-statement"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-filter-statement"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-columns"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="db-table-presentation-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-table-presentations">
<rng:element name="db:table-representations">
<rng:ref name="db-table-presentations-attlist"/>
<rng:zeroOrMore>
<rng:ref name="db-table-presentation"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="db-table-presentations-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-table-setting">
<rng:element name="db:table-setting">
<rng:ref name="db-table-setting-attlist"/>
<rng:optional>
<rng:ref name="db-delimiter"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-character-set"/>
</rng:optional>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="db-table-setting-attlist">
<rng:ref name="db-is-first-row-header-line"/>
<rng:ref name="db-show-deleted"/>
</rng:define>
<rng:define name="db-table-settings">
<rng:element name="db:table-settings">
<rng:zeroOrMore>
<rng:ref name="db-table-setting"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="db-table-type">
<rng:element name="db:table-type">
<rng:ref name="db-table-type-attlist"/>
<rng:ref name="string"/>
</rng:element>
</rng:define>
<rng:define name="db-table-type-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-table-type-filter">
<rng:element name="db:table-type-filter">
<rng:ref name="db-table-type-filter-attlist"/>
<rng:zeroOrMore>
<rng:ref name="db-table-type"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="db-table-type-filter-attlist">
<rng:empty/>
</rng:define>
<rng:define name="db-update-table">
<rng:element name="db:update-table">
<rng:ref name="common-db-table-name-attlist"/>
</rng:element>
</rng:define>
<rng:define name="dc-creator">
<rng:element name="dc:creator">
<rng:ref name="string"/>
</rng:element>
</rng:define>
<rng:define name="dc-date">
<rng:element name="dc:date">
<rng:ref name="dateTime"/>
</rng:element>
</rng:define>
<rng:define name="distance">
<rng:ref name="length"/>
</rng:define>
<rng:define name="double">
<rng:data type="double"/>
</rng:define>
<rng:define name="dr3d-cube">
<rng:element name="dr3d:cube">
<rng:ref name="dr3d-cube-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4072 -->
<rng:ref name="common-draw-name-attlist"/>
<rng:ref name="common-draw-z-index-attlist"/>
<rng:ref name="common-draw-id-attlist"/>
<rng:ref name="common-draw-layer-name-attlist"/>
<rng:ref name="common-draw-style-name-attlist"/>
<rng:ref name="common-dr3d-transform-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="dr3d-cube-attlist">
<rng:optional>
<rng:attribute name="dr3d:min-edge">
<rng:ref name="vector3D"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:max-edge">
<rng:ref name="vector3D"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="dr3d-extrude">
<rng:element name="dr3d:extrude">
<!-- https://issues.oasis-open.org/browse/OFFICE-4072 -->
<rng:ref name="common-draw-name-attlist"/>
<rng:ref name="common-draw-path-data-attlist"/>
<rng:ref name="common-draw-viewbox-attlist"/>
<rng:ref name="common-draw-id-attlist"/>
<rng:ref name="common-draw-z-index-attlist"/>
<rng:ref name="common-draw-layer-name-attlist"/>
<rng:ref name="common-draw-style-name-attlist"/>
<rng:ref name="common-dr3d-transform-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="dr3d-light">
<rng:element name="dr3d:light">
<rng:ref name="dr3d-light-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="dr3d-light-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="dr3d:diffuse-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="dr3d:direction">
<rng:ref name="vector3D"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="dr3d:enabled">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:specular">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="dr3d-rotate">
<rng:element name="dr3d:rotate">
<!-- https://issues.oasis-open.org/browse/OFFICE-4072 -->
<rng:ref name="common-draw-name-attlist"/>
<rng:ref name="common-draw-viewbox-attlist"/>
<rng:ref name="common-draw-path-data-attlist"/>
<rng:ref name="common-draw-z-index-attlist"/>
<rng:ref name="common-draw-id-attlist"/>
<rng:ref name="common-draw-layer-name-attlist"/>
<rng:ref name="common-draw-style-name-attlist"/>
<rng:ref name="common-dr3d-transform-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="dr3d-scene">
<rng:element name="dr3d:scene">
<rng:ref name="dr3d-scene-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4072 -->
<rng:ref name="common-draw-name-attlist"/>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:ref name="common-draw-style-name-attlist"/>
<rng:ref name="common-draw-z-index-attlist"/>
<rng:ref name="common-draw-id-attlist"/>
<rng:ref name="common-draw-layer-name-attlist"/>
<rng:ref name="common-text-spreadsheet-shape-attlist"/>
<rng:ref name="common-dr3d-transform-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:zeroOrMore>
<rng:ref name="dr3d-light"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="shapes3d"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="dr3d-scene-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="dr3d:vrp">
<rng:ref name="vector3D"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:vpn">
<rng:ref name="vector3D"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:vup">
<rng:ref name="vector3D"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:projection">
<rng:choice>
<rng:value>parallel</rng:value>
<rng:value>perspective</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:distance">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:focal-length">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:shadow-slant">
<rng:ref name="angle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:shade-mode">
<rng:choice>
<rng:value>flat</rng:value>
<rng:value>phong</rng:value>
<rng:value>gouraud</rng:value>
<rng:value>draft</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:ambient-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:lighting-mode">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="dr3d-sphere">
<rng:element name="dr3d:sphere">
<rng:ref name="dr3d-sphere-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4072 -->
<rng:ref name="common-draw-name-attlist"/>
<rng:ref name="common-draw-z-index-attlist"/>
<rng:ref name="common-draw-id-attlist"/>
<rng:ref name="common-draw-layer-name-attlist"/>
<rng:ref name="common-draw-style-name-attlist"/>
<rng:ref name="common-dr3d-transform-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="dr3d-sphere-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="dr3d:center">
<rng:ref name="vector3D"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:size">
<rng:ref name="vector3D"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-a">
<rng:element name="draw:a">
<rng:ref name="draw-a-attlist"/>
<rng:ref name="shape-instance"/>
</rng:element>
</rng:define>
<rng:define name="draw-a-attlist">
<rng:interleave>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:actuate">
<rng:value>onRequest</rng:value>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="office:target-frame-name">
<rng:ref name="targetFrameName"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="xlink:show">
<rng:choice>
<rng:value>new</rng:value>
<rng:value>replace</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="office:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="office:title">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="office:server-map">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-applet">
<rng:element name="draw:applet">
<rng:ref name="draw-applet-attlist"/>
<rng:optional>
<rng:ref name="common-draw-data-attlist"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-param"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="draw-applet-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:code">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:object">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:archive">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:may-script">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-area-circle">
<rng:element name="draw:area-circle">
<rng:ref name="common-draw-area-attlist"/>
<rng:attribute name="svg:cx">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:cy">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:r">
<rng:ref name="length"/>
</rng:attribute>
<rng:optional>
<rng:ref name="svg-title"/>
</rng:optional>
<rng:optional>
<rng:ref name="svg-desc"/>
</rng:optional>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="draw-area-polygon">
<rng:element name="draw:area-polygon">
<rng:ref name="common-draw-area-attlist"/>
<rng:attribute name="svg:x">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:y">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:width">
<rng:ref name="length"/>
</rng:attribute>
<rng:attribute name="svg:height">
<rng:ref name="length"/>
</rng:attribute>
<rng:ref name="common-draw-viewbox-attlist"/>
<rng:ref name="common-draw-points-attlist"/>
<rng:optional>
<rng:ref name="svg-title"/>
</rng:optional>
<rng:optional>
<rng:ref name="svg-desc"/>
</rng:optional>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="draw-area-rectangle">
<rng:element name="draw:area-rectangle">
<rng:ref name="common-draw-area-attlist"/>
<rng:attribute name="svg:x">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:y">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:width">
<rng:ref name="length"/>
</rng:attribute>
<rng:attribute name="svg:height">
<rng:ref name="length"/>
</rng:attribute>
<rng:optional>
<rng:ref name="svg-title"/>
</rng:optional>
<rng:optional>
<rng:ref name="svg-desc"/>
</rng:optional>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="draw-caption">
<rng:element name="draw:caption">
<rng:ref name="draw-caption-attlist"/>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:ref name="draw-text"/>
</rng:element>
</rng:define>
<rng:define name="draw-caption-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:caption-point-x">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="draw:caption-point-y">
<rng:ref name="coordinate"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-1909 -->
<rng:choice>
<rng:optional>
<rng:attribute name="draw:corner-radius">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:group>
<rng:optional>
<rng:attribute name="svg:rx">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:ry">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:choice>
</rng:interleave>
</rng:define>
<rng:define name="draw-circle">
<rng:element name="draw:circle">
<rng:choice>
<rng:group>
<rng:ref name="draw-circle-attlist"/>
<rng:ref name="common-draw-circle-ellipse-pos-attlist"/>
</rng:group>
<rng:group>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
</rng:group>
</rng:choice>
<rng:ref name="common-draw-circle-ellipse-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:ref name="draw-text"/>
</rng:element>
</rng:define>
<rng:define name="draw-circle-attlist">
<rng:attribute name="svg:r">
<rng:ref name="length"/>
</rng:attribute>
</rng:define>
<rng:define name="draw-connector">
<rng:element name="draw:connector">
<rng:ref name="draw-connector-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<rng:ref name="common-draw-viewbox-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:ref name="draw-text"/>
</rng:element>
</rng:define>
<rng:define name="draw-connector-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:type">
<rng:choice>
<rng:value>standard</rng:value>
<rng:value>lines</rng:value>
<rng:value>line</rng:value>
<rng:value>curve</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:x1">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:y1">
<rng:ref name="coordinate"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:start-shape">
<rng:ref name="IDREF"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:start-glue-point">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:x2">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:y2">
<rng:ref name="coordinate"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:end-shape">
<rng:ref name="IDREF"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:end-glue-point">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:line-skew">
<rng:list>
<rng:ref name="length"/>
<rng:optional>
<rng:ref name="length"/>
<rng:optional>
<rng:ref name="length"/>
</rng:optional>
</rng:optional>
</rng:list>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:d">
<rng:ref name="pathData"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-contour-path">
<rng:element name="draw:contour-path">
<rng:ref name="common-contour-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:ref name="common-draw-viewbox-attlist"/>
<rng:ref name="common-draw-path-data-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="draw-contour-polygon">
<rng:element name="draw:contour-polygon">
<rng:ref name="common-contour-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:ref name="common-draw-viewbox-attlist"/>
<rng:ref name="common-draw-points-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="draw-control">
<rng:element name="draw:control">
<rng:ref name="draw-control-attlist"/>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<rng:optional>
<rng:ref name="svg-title"/>
</rng:optional>
<rng:optional>
<rng:ref name="svg-desc"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="draw-control-attlist">
<rng:attribute name="draw:control">
<rng:ref name="IDREF"/>
</rng:attribute>
</rng:define>
<rng:define name="draw-custom-shape">
<rng:element name="draw:custom-shape">
<rng:ref name="draw-custom-shape-attlist"/>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:ref name="draw-text"/>
<rng:optional>
<rng:ref name="draw-enhanced-geometry"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="draw-custom-shape-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:engine">
<rng:ref name="namespacedToken"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:data">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-ellipse">
<rng:element name="draw:ellipse">
<rng:choice>
<rng:group>
<rng:ref name="draw-ellipse-attlist"/>
<rng:ref name="common-draw-circle-ellipse-pos-attlist"/>
</rng:group>
<rng:group>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
</rng:group>
</rng:choice>
<rng:ref name="common-draw-circle-ellipse-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:ref name="draw-text"/>
</rng:element>
</rng:define>
<rng:define name="draw-ellipse-attlist">
<rng:attribute name="svg:rx">
<rng:ref name="length"/>
</rng:attribute>
<rng:attribute name="svg:ry">
<rng:ref name="length"/>
</rng:attribute>
</rng:define>
<rng:define name="draw-enhanced-geometry">
<rng:element name="draw:enhanced-geometry">
<rng:ref name="draw-enhanced-geometry-attlist"/>
<rng:zeroOrMore>
<rng:ref name="draw-equation"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="draw-handle"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="draw-enhanced-geometry-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:type">
<rng:ref name="custom-shape-type"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:viewBox">
<rng:list>
<rng:ref name="integer"/>
<rng:ref name="integer"/>
<rng:ref name="integer"/>
<rng:ref name="integer"/>
</rng:list>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:mirror-vertical">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:mirror-horizontal">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:text-rotate-angle">
<rng:ref name="angle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-allowed">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:text-path-allowed">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:concentric-gradient-fill-allowed">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-brightness">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-depth">
<rng:list>
<rng:ref name="length"/>
<rng:ref name="double"/>
</rng:list>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-diffusion">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-number-of-line-segments">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-light-face">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-first-light-harsh">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-second-light-harsh">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-first-light-level">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-second-light-level">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-first-light-direction">
<rng:ref name="vector3D"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-second-light-direction">
<rng:ref name="vector3D"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-metal">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-4123 -->
<rng:optional>
<rng:attribute name="draw:extrusion-metal-type">
<rng:ref name="namespacedToken"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:shade-mode">
<rng:choice>
<rng:value>flat</rng:value>
<rng:value>phong</rng:value>
<rng:value>gouraud</rng:value>
<rng:value>draft</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-rotation-angle">
<rng:list>
<rng:ref name="angle"/>
<rng:ref name="angle"/>
</rng:list>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-rotation-center">
<rng:ref name="vector3D"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-shininess">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-skew">
<rng:list>
<rng:ref name="double"/>
<rng:ref name="angle"/>
</rng:list>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-specularity">
<!-- https://issues.oasis-open.org/browse/OFFICE-4122 - changed from "zeroToHundredPercent" to "nonNegativePercent" -->
<rng:ref name="nonNegativePercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:projection">
<rng:choice>
<rng:value>parallel</rng:value>
<rng:value>perspective</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-viewpoint">
<rng:ref name="point3D"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-origin">
<rng:list>
<rng:ref name="extrusionOrigin"/>
<rng:ref name="extrusionOrigin"/>
</rng:list>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:extrusion-color">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:enhanced-path">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:path-stretchpoint-x">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:path-stretchpoint-y">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:text-areas">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:glue-points">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:glue-point-type">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>segments</rng:value>
<rng:value>rectangle</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:glue-point-leaving-directions">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:text-path">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:text-path-mode">
<rng:choice>
<rng:value>normal</rng:value>
<rng:value>path</rng:value>
<rng:value>shape</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:text-path-scale">
<rng:choice>
<rng:value>path</rng:value>
<rng:value>shape</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:text-path-same-letter-heights">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:modifiers">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-equation">
<rng:element name="draw:equation">
<rng:ref name="draw-equation-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="draw-equation-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:formula">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-fill-image">
<rng:element name="draw:fill-image">
<rng:ref name="draw-fill-image-attlist"/>
<!-- XLink duplicate declaration removed. see common-draw-data-attlist -->
<rng:choice>
<rng:group>
<rng:ref name="common-draw-data-attlist"/>
<rng:empty/>
</rng:group>
<rng:ref name="office-binary-data"/>
</rng:choice>
<!-- https://issues.oasis-open.org/browse/OFFICE-3933 -->
</rng:element>
</rng:define>
<rng:define name="draw-fill-image-attlist">
<rng:interleave>
<rng:attribute name="draw:name">
<rng:ref name="styleName"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="draw:display-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:width">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:height">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-floating-frame">
<rng:element name="draw:floating-frame">
<rng:ref name="draw-floating-frame-attlist"/>
<rng:ref name="common-draw-data-attlist"/>
</rng:element>
</rng:define>
<rng:define name="draw-floating-frame-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:frame-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-frame">
<rng:element name="draw:frame">
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-rel-size-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<rng:ref name="presentation-shape-attlist"/>
<rng:ref name="draw-frame-attlist"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="draw-text-box"/>
<rng:ref name="draw-image"/>
<rng:ref name="draw-object"/>
<rng:ref name="draw-object-ole"/>
<rng:ref name="draw-applet"/>
<rng:ref name="draw-floating-frame"/>
<rng:ref name="draw-plugin"/>
<rng:ref name="table-table"/>
</rng:choice>
</rng:zeroOrMore>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:optional>
<rng:ref name="draw-image-map"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:choice>
<rng:ref name="draw-contour-polygon"/>
<rng:ref name="draw-contour-path"/>
</rng:choice>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="draw-frame-attlist">
<rng:optional>
<rng:attribute name="draw:copy-of">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="draw-g">
<rng:element name="draw:g">
<rng:ref name="draw-g-attlist"/>
<rng:ref name="common-draw-z-index-attlist"/>
<rng:ref name="common-draw-name-attlist"/>
<rng:ref name="common-draw-id-attlist"/>
<rng:ref name="common-draw-style-name-attlist"/>
<rng:ref name="common-text-spreadsheet-shape-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="shape"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="draw-g-attlist">
<rng:optional>
<rng:attribute name="svg:y">
<rng:ref name="coordinate"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="draw-glue-point">
<rng:element name="draw:glue-point">
<rng:ref name="draw-glue-point-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="draw-glue-point-attlist">
<rng:interleave>
<rng:attribute name="draw:id">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
<rng:attribute name="svg:x">
<rng:choice>
<rng:ref name="distance"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
<rng:attribute name="svg:y">
<rng:choice>
<rng:ref name="distance"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
<rng:optional>
<rng:attribute name="draw:align">
<rng:choice>
<rng:value>top-left</rng:value>
<rng:value>top</rng:value>
<rng:value>top-right</rng:value>
<rng:value>left</rng:value>
<rng:value>center</rng:value>
<rng:value>right</rng:value>
<rng:value>bottom-left</rng:value>
<rng:value>bottom-right</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:attribute name="draw:escape-direction">
<rng:choice>
<rng:value>auto</rng:value>
<rng:value>left</rng:value>
<rng:value>right</rng:value>
<rng:value>up</rng:value>
<rng:value>down</rng:value>
<rng:value>horizontal</rng:value>
<rng:value>vertical</rng:value>
</rng:choice>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="draw-gradient">
<rng:element name="draw:gradient">
<rng:ref name="common-draw-gradient-attlist"/>
<rng:ref name="draw-gradient-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="draw-gradient-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:start-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:end-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:start-intensity">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:end-intensity">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-handle">
<rng:element name="draw:handle">
<rng:ref name="draw-handle-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="draw-handle-attlist">
<rng:interleave>
<!-- https://issues.oasis-open.org/browse/OFFICE-4110 -->
<rng:choice>
<rng:group> <!-- XY-handle -->
<rng:attribute name="draw:handle-position-x">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="draw:handle-position-y">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="draw:handle-range-x-minimum">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:handle-range-x-maximum">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:handle-range-y-minimum">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:handle-range-y-maximum">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:group>
<rng:group> <!-- polar handle -->
<rng:attribute name="draw:handle-polar-pole-x">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="draw:handle-polar-pole-y">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="draw:handle-polar-radius">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:handle-polar-angle">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:handle-radius-range-minimum">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:handle-radius-range-maximum">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:choice>
<rng:optional>
<rng:attribute name="draw:handle-mirror-vertical">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:handle-mirror-horizontal">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:handle-switched">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<!-- The attributes draw:handle-position and draw:handle-polar are deprecated. -->
<rng:optional>
<rng:attribute name="draw:handle-position">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:handle-polar">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-hatch">
<rng:element name="draw:hatch">
<rng:ref name="draw-hatch-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="draw-hatch-attlist">
<rng:interleave>
<rng:attribute name="draw:name">
<rng:ref name="styleName"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="draw:display-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="draw:style">
<rng:choice>
<rng:value>single</rng:value>
<rng:value>double</rng:value>
<rng:value>triple</rng:value>
</rng:choice>
</rng:attribute>
<rng:optional>
<rng:attribute name="draw:color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:distance">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:rotation">
<rng:ref name="angle"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-image">
<rng:element name="draw:image">
<rng:ref name="draw-image-attlist"/>
<rng:choice>
<rng:ref name="common-draw-data-attlist"/>
<rng:ref name="office-binary-data"/>
</rng:choice>
<rng:ref name="draw-text"/>
</rng:element>
</rng:define>
<rng:define name="draw-image-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:filter-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-draw-mime-type-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-3943 -->
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-image-map">
<rng:element name="draw:image-map">
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="draw-area-rectangle"/>
<rng:ref name="draw-area-circle"/>
<rng:ref name="draw-area-polygon"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="draw-layer">
<rng:element name="draw:layer">
<rng:ref name="draw-layer-attlist"/>
<rng:optional>
<rng:ref name="svg-title"/>
</rng:optional>
<rng:optional>
<rng:ref name="svg-desc"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="draw-layer-attlist">
<rng:interleave>
<rng:attribute name="draw:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="draw:protected">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:display">
<rng:choice>
<rng:value>always</rng:value>
<rng:value>screen</rng:value>
<rng:value>printer</rng:value>
<rng:value>none</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-layer-set">
<rng:element name="draw:layer-set">
<rng:zeroOrMore>
<rng:ref name="draw-layer"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="draw-line">
<rng:element name="draw:line">
<rng:ref name="draw-line-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:ref name="draw-text"/>
</rng:element>
</rng:define>
<rng:define name="draw-line-attlist">
<rng:interleave>
<rng:attribute name="svg:x1">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:y1">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:x2">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:y2">
<rng:ref name="coordinate"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="draw-marker">
<rng:element name="draw:marker">
<rng:ref name="draw-marker-attlist"/>
<rng:ref name="common-draw-viewbox-attlist"/>
<rng:ref name="common-draw-path-data-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="draw-marker-attlist">
<rng:interleave>
<rng:attribute name="draw:name">
<rng:ref name="styleName"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="draw:display-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-measure">
<rng:element name="draw:measure">
<rng:ref name="draw-measure-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:ref name="draw-text"/>
</rng:element>
</rng:define>
<rng:define name="draw-measure-attlist">
<rng:interleave>
<rng:attribute name="svg:x1">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:y1">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:x2">
<rng:ref name="coordinate"/>
</rng:attribute>
<rng:attribute name="svg:y2">
<rng:ref name="coordinate"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="draw-object">
<rng:element name="draw:object">
<rng:ref name="draw-object-attlist"/>
<rng:choice>
<rng:ref name="common-draw-data-attlist"/>
<rng:ref name="office-document"/>
<rng:ref name="math-math"/>
</rng:choice>
</rng:element>
</rng:define>
<rng:define name="draw-object-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:notify-on-update-of-ranges">
<rng:choice>
<rng:ref name="cellRangeAddressList"/>
<rng:ref name="string"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-object-ole">
<rng:element name="draw:object-ole">
<rng:ref name="draw-object-ole-attlist"/>
<rng:choice>
<rng:ref name="common-draw-data-attlist"/>
<rng:ref name="office-binary-data"/>
</rng:choice>
</rng:element>
</rng:define>
<rng:define name="draw-object-ole-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:class-id">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-opacity">
<rng:element name="draw:opacity">
<rng:ref name="common-draw-gradient-attlist"/>
<rng:ref name="draw-opacity-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="draw-opacity-attlist">
<rng:optional>
<rng:attribute name="draw:start">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:end">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="draw-page">
<rng:element name="draw:page">
<rng:ref name="common-presentation-header-footer-attlist"/>
<rng:ref name="draw-page-attlist"/>
<rng:optional>
<rng:ref name="svg-title"/>
</rng:optional>
<rng:optional>
<rng:ref name="svg-desc"/>
</rng:optional>
<rng:optional>
<rng:ref name="draw-layer-set"/>
</rng:optional>
<rng:optional>
<rng:ref name="office-forms"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="shape"/>
</rng:zeroOrMore>
<rng:optional>
<rng:choice>
<rng:ref name="presentation-animations"/>
<rng:ref name="animation-element"/>
</rng:choice>
</rng:optional>
<rng:optional>
<rng:ref name="presentation-notes"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3022 -->
<rng:zeroOrMore>
<rng:ref name="office-annotation"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="draw-page-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="draw:master-page-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="presentation:presentation-page-layout-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:group>
<rng:ref name="xml-id"/>
<rng:optional>
<rng:attribute name="draw:id">
<rng:ref name="NCName"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:nav-order">
<rng:ref name="IDREFS"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-page-thumbnail">
<rng:element name="draw:page-thumbnail">
<rng:ref name="draw-page-thumbnail-attlist"/>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:ref name="presentation-shape-attlist"/>
<rng:ref name="common-draw-shape-with-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
</rng:element>
</rng:define>
<rng:define name="draw-page-thumbnail-attlist">
<rng:optional>
<rng:attribute name="draw:page-number">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="draw-param">
<rng:element name="draw:param">
<rng:ref name="draw-param-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="draw-param-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:value">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-path">
<rng:element name="draw:path">
<rng:ref name="common-draw-path-data-attlist"/>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:ref name="common-draw-viewbox-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:ref name="draw-text"/>
</rng:element>
</rng:define>
<rng:define name="draw-plugin">
<rng:element name="draw:plugin">
<rng:ref name="draw-plugin-attlist"/>
<rng:ref name="common-draw-data-attlist"/>
<rng:zeroOrMore>
<rng:ref name="draw-param"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="draw-plugin-attlist">
<rng:interleave>
<rng:ref name="common-draw-mime-type-attlist"/>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-3943 -->
<rng:define name="draw-polygon">
<rng:element name="draw:polygon">
<rng:ref name="common-draw-points-attlist"/>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:ref name="common-draw-viewbox-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:ref name="draw-text"/>
</rng:element>
</rng:define>
<rng:define name="draw-polyline">
<rng:element name="draw:polyline">
<rng:ref name="common-draw-points-attlist"/>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:ref name="common-draw-viewbox-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:ref name="draw-text"/>
</rng:element>
</rng:define>
<rng:define name="draw-rect">
<rng:element name="draw:rect">
<rng:ref name="draw-rect-attlist"/>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:ref name="draw-text"/>
</rng:element>
</rng:define>
<rng:define name="draw-rect-attlist">
<rng:choice>
<rng:optional>
<rng:attribute name="draw:corner-radius">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:group>
<rng:optional>
<rng:attribute name="svg:rx">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:ry">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:choice>
</rng:define>
<rng:define name="draw-regular-polygon">
<rng:element name="draw:regular-polygon">
<rng:ref name="draw-regular-polygon-attlist"/>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:ref name="common-draw-caption-id-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
<rng:ref name="common-draw-shape-accessibility"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-glue-point"/>
</rng:zeroOrMore>
<rng:ref name="draw-text"/>
</rng:element>
</rng:define>
<rng:define name="draw-regular-polygon-attlist">
<rng:interleave>
<rng:choice>
<rng:attribute name="draw:concave">
<rng:value>false</rng:value>
</rng:attribute>
<rng:group>
<rng:attribute name="draw:concave">
<rng:value>true</rng:value>
</rng:attribute>
<rng:ref name="draw-regular-polygon-sharpness-attlist"/>
</rng:group>
</rng:choice>
<rng:attribute name="draw:corners">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="draw-regular-polygon-sharpness-attlist">
<rng:attribute name="draw:sharpness">
<rng:ref name="percent"/>
</rng:attribute>
</rng:define>
<rng:define name="draw-stroke-dash">
<rng:element name="draw:stroke-dash">
<rng:ref name="draw-stroke-dash-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="draw-stroke-dash-attlist">
<rng:interleave>
<rng:attribute name="draw:name">
<rng:ref name="styleName"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="draw:display-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:style">
<rng:choice>
<rng:value>rect</rng:value>
<rng:value>round</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:dots1">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:dots1-length">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:dots2">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:dots2-length">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:distance">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-text">
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="text-p"/>
<rng:ref name="text-list"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-3761 -->
<rng:ref name="table-table"/>
</rng:choice>
</rng:zeroOrMore>
</rng:define>
<rng:define name="draw-text-box">
<rng:element name="draw:text-box">
<rng:ref name="draw-text-box-attlist"/>
<rng:zeroOrMore>
<rng:ref name="text-content"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="draw-text-box-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:chain-next-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-1909 -->
<rng:choice>
<rng:optional>
<rng:attribute name="draw:corner-radius">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:group>
<rng:optional>
<rng:attribute name="svg:rx">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:ry">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:choice>
<rng:optional>
<rng:attribute name="fo:min-height">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:min-width">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:max-height">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:max-width">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:group>
<rng:ref name="xml-id"/>
<rng:optional>
<rng:attribute name="text:id">
<rng:ref name="NCName"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="dropdown">
<rng:optional>
<rng:attribute name="form:dropdown">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="duration">
<rng:data type="duration"/>
</rng:define>
<rng:define name="extrusionOrigin">
<rng:data type="double">
<rng:param name="minInclusive">-0.5</rng:param>
<rng:param name="maxInclusive">0.5</rng:param>
</rng:data>
</rng:define>
<rng:define name="fontFamilyGeneric">
<rng:choice>
<rng:value>roman</rng:value>
<rng:value>swiss</rng:value>
<rng:value>modern</rng:value>
<rng:value>decorative</rng:value>
<rng:value>script</rng:value>
<rng:value>system</rng:value>
</rng:choice>
</rng:define>
<rng:define name="fontPitch">
<rng:choice>
<rng:value>fixed</rng:value>
<rng:value>variable</rng:value>
</rng:choice>
</rng:define>
<rng:define name="fontStyle">
<rng:choice>
<rng:value>normal</rng:value>
<rng:value>italic</rng:value>
<rng:value>oblique</rng:value>
</rng:choice>
</rng:define>
<rng:define name="fontVariant">
<rng:choice>
<rng:value>normal</rng:value>
<rng:value>small-caps</rng:value>
</rng:choice>
</rng:define>
<rng:define name="fontWeight">
<rng:choice>
<rng:value>normal</rng:value>
<rng:value>bold</rng:value>
<rng:value>100</rng:value>
<rng:value>200</rng:value>
<rng:value>300</rng:value>
<rng:value>400</rng:value>
<rng:value>500</rng:value>
<rng:value>600</rng:value>
<rng:value>700</rng:value>
<rng:value>800</rng:value>
<rng:value>900</rng:value>
</rng:choice>
</rng:define>
<rng:define name="for">
<rng:optional>
<rng:attribute name="form:for">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="form-button-attlist">
<rng:interleave>
<rng:ref name="form-control-attlist"/>
<rng:ref name="button-type"/>
<rng:ref name="common-disabled-attlist"/>
<rng:ref name="label"/>
<rng:ref name="image-data"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="target-frame"/>
<rng:ref name="target-location"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="common-value-attlist"/>
<rng:ref name="common-form-relative-image-position-attlist"/>
<rng:ref name="common-repeat"/>
<rng:ref name="common-delay-for-repeat"/>
<rng:optional>
<rng:attribute name="form:default-button">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:toggle">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:focus-on-click">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:xforms-submission">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="form-checkbox-attlist">
<rng:interleave>
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-disabled-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4121 -->
<rng:ref name="common-input-required-attlist"/>
<rng:ref name="label"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="common-value-attlist"/>
<rng:ref name="common-data-field-attlist"/>
<rng:ref name="common-form-visual-effect-attlist"/>
<rng:ref name="common-form-relative-image-position-attlist"/>
<rng:ref name="common-linked-cell"/>
<rng:optional>
<rng:attribute name="form:current-state">
<rng:ref name="states"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:is-tristate">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:state">
<rng:ref name="states"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="form-column">
<rng:element name="form:column">
<rng:ref name="form-column-attlist"/>
<rng:oneOrMore>
<rng:ref name="column-controls"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="form-column-attlist">
<rng:ref name="common-form-control-attlist"/>
<rng:ref name="label"/>
<rng:ref name="text-style-name"/>
</rng:define>
<rng:define name="form-combobox-attlist">
<rng:interleave>
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-current-value-attlist"/>
<rng:ref name="common-disabled-attlist"/>
<rng:ref name="dropdown"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4121 -->
<rng:ref name="common-input-required-attlist"/>
<rng:ref name="common-maxlength-attlist"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-readonly-attlist"/>
<rng:ref name="size"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="common-value-attlist"/>
<rng:ref name="common-convert-empty-attlist"/>
<rng:ref name="common-data-field-attlist"/>
<rng:ref name="list-source"/>
<rng:ref name="list-source-type"/>
<rng:ref name="common-linked-cell"/>
<rng:ref name="common-source-cell-range"/>
<rng:optional>
<rng:attribute name="form:auto-complete">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="form-connection-resource">
<rng:element name="form:connection-resource">
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="form-control-attlist">
<rng:ref name="common-form-control-attlist"/>
<rng:ref name="common-control-id-attlist"/>
<rng:ref name="xforms-bind-attlist"/>
</rng:define>
<rng:define name="form-date-attlist">
<rng:interleave>
<!-- https://issues.oasis-open.org/browse/OFFICE-4121 -->
<rng:ref name="common-input-required-attlist"/>
<rng:optional>
<rng:attribute name="form:value">
<rng:ref name="date"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:current-value">
<rng:ref name="date"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:min-value">
<rng:ref name="date"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:max-value">
<rng:ref name="date"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="form-file-attlist">
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-current-value-attlist"/>
<rng:ref name="common-disabled-attlist"/>
<rng:ref name="common-maxlength-attlist"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-readonly-attlist"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="common-value-attlist"/>
<rng:ref name="common-linked-cell"/>
</rng:define>
<rng:define name="form-fixed-text-attlist">
<rng:interleave>
<rng:ref name="form-control-attlist"/>
<rng:ref name="for"/>
<rng:ref name="common-disabled-attlist"/>
<rng:ref name="label"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-title-attlist"/>
<rng:optional>
<rng:attribute name="form:multi-line">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="form-form">
<rng:element name="form:form">
<rng:ref name="common-form-control-attlist"/>
<rng:ref name="form-form-attlist"/>
<rng:optional>
<rng:ref name="form-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="controls"/>
<rng:ref name="form-form"/>
</rng:choice>
</rng:zeroOrMore>
<rng:optional>
<rng:ref name="form-connection-resource"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="form-form-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:actuate">
<rng:value>onRequest</rng:value>
</rng:attribute>
</rng:optional>
</rng:optional>
<rng:optional>
<rng:attribute name="office:target-frame">
<rng:ref name="targetFrameName"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:method">
<rng:choice>
<rng:value>get</rng:value>
<rng:value>post</rng:value>
<rng:ref name="string"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:enctype">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:allow-deletes">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:allow-inserts">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:allow-updates">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:apply-filter">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:command-type">
<rng:choice>
<rng:value>table</rng:value>
<rng:value>query</rng:value>
<rng:value>command</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:command">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:datasource">
<rng:choice>
<rng:ref name="anyIRI"/>
<rng:ref name="string"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:master-fields">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:detail-fields">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:escape-processing">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:filter">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:ignore-result">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:navigation-mode">
<rng:ref name="navigation"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:order">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:tab-cycle">
<rng:ref name="tab-cycles"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="form-formatted-text-attlist">
<rng:interleave>
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-current-value-attlist"/>
<rng:ref name="common-disabled-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4121 -->
<rng:ref name="common-input-required-attlist"/>
<rng:ref name="common-maxlength-attlist"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-readonly-attlist"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="common-value-attlist"/>
<rng:ref name="common-convert-empty-attlist"/>
<rng:ref name="common-data-field-attlist"/>
<rng:ref name="common-linked-cell"/>
<rng:ref name="common-spin-button"/>
<rng:ref name="common-repeat"/>
<rng:ref name="common-delay-for-repeat"/>
<rng:optional>
<rng:attribute name="form:max-value">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:min-value">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:validation">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="form-frame-attlist">
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-disabled-attlist"/>
<rng:ref name="for"/>
<rng:ref name="label"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-title-attlist"/>
</rng:define>
<rng:define name="form-generic-control-attlist">
<rng:ref name="form-control-attlist"/>
</rng:define>
<rng:define name="form-grid-attlist">
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-disabled-attlist"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="common-title-attlist"/>
</rng:define>
<rng:define name="form-hidden-attlist">
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-value-attlist"/>
</rng:define>
<rng:define name="form-image-attlist">
<rng:ref name="form-control-attlist"/>
<rng:ref name="button-type"/>
<rng:ref name="common-disabled-attlist"/>
<rng:ref name="image-data"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="target-frame"/>
<rng:ref name="target-location"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="common-value-attlist"/>
</rng:define>
<rng:define name="form-image-frame-attlist">
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-disabled-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4121 -->
<rng:ref name="common-input-required-attlist"/>
<rng:ref name="image-data"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-readonly-attlist"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="common-data-field-attlist"/>
</rng:define>
<rng:define name="form-item">
<rng:element name="form:item">
<rng:ref name="form-item-attlist"/>
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="form-item-attlist">
<rng:ref name="label"/>
</rng:define>
<rng:define name="form-listbox-attlist">
<rng:interleave>
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-disabled-attlist"/>
<rng:ref name="dropdown"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4121 -->
<rng:ref name="common-input-required-attlist"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="size"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="bound-column"/>
<rng:ref name="common-data-field-attlist"/>
<rng:ref name="list-source"/>
<rng:ref name="list-source-type"/>
<rng:ref name="common-linked-cell"/>
<rng:ref name="list-linkage-type"/>
<rng:ref name="common-source-cell-range"/>
<rng:optional>
<rng:attribute name="form:multiple">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:xforms-list-source">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="form-number-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="form:value">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:current-value">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:min-value">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:max-value">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="form-option">
<rng:element name="form:option">
<rng:ref name="form-option-attlist"/>
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="form-option-attlist">
<rng:ref name="current-selected"/>
<rng:ref name="selected"/>
<rng:ref name="label"/>
<rng:ref name="common-value-attlist"/>
</rng:define>
<rng:define name="form-password-attlist">
<rng:interleave>
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-disabled-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4121 -->
<rng:ref name="common-input-required-attlist"/>
<rng:ref name="common-maxlength-attlist"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="common-value-attlist"/>
<rng:ref name="common-convert-empty-attlist"/>
<rng:ref name="common-linked-cell"/>
<rng:optional>
<rng:attribute name="form:echo-char">
<rng:ref name="character"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="form-properties">
<rng:element name="form:properties">
<rng:oneOrMore>
<rng:ref name="form-property"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="form-property">
<rng:choice>
<rng:element name="form:property">
<rng:ref name="form-property-name"/>
<rng:ref name="form-property-value-and-type-attlist"/>
</rng:element>
<rng:element name="form:list-property">
<rng:ref name="form-property-name"/>
<rng:ref name="form-property-type-and-value-list"/>
</rng:element>
</rng:choice>
</rng:define>
<rng:define name="form-property-name">
<rng:attribute name="form:property-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="form-property-type-and-value-list">
<rng:choice>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>float</rng:value>
</rng:attribute>
<rng:zeroOrMore>
<rng:element name="form:list-value">
<rng:attribute name="office:value">
<rng:ref name="double"/>
</rng:attribute>
</rng:element>
</rng:zeroOrMore>
</rng:group>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>percentage</rng:value>
</rng:attribute>
<rng:zeroOrMore>
<rng:element name="form:list-value">
<rng:attribute name="office:value">
<rng:ref name="double"/>
</rng:attribute>
</rng:element>
</rng:zeroOrMore>
</rng:group>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>currency</rng:value>
</rng:attribute>
<rng:zeroOrMore>
<rng:element name="form:list-value">
<rng:attribute name="office:value">
<rng:ref name="double"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="office:currency">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:element>
</rng:zeroOrMore>
</rng:group>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>date</rng:value>
</rng:attribute>
<rng:zeroOrMore>
<rng:element name="form:list-value">
<rng:attribute name="office:date-value">
<rng:ref name="dateOrDateTime"/>
</rng:attribute>
</rng:element>
</rng:zeroOrMore>
</rng:group>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>time</rng:value>
</rng:attribute>
<rng:zeroOrMore>
<rng:element name="form:list-value">
<rng:attribute name="office:time-value">
<rng:ref name="duration"/>
</rng:attribute>
</rng:element>
</rng:zeroOrMore>
</rng:group>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>boolean</rng:value>
</rng:attribute>
<rng:zeroOrMore>
<rng:element name="form:list-value">
<rng:attribute name="office:boolean-value">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:element>
</rng:zeroOrMore>
</rng:group>
<rng:group>
<rng:attribute name="office:value-type">
<rng:value>string</rng:value>
</rng:attribute>
<rng:zeroOrMore>
<rng:element name="form:list-value">
<rng:attribute name="office:string-value">
<rng:ref name="string"/>
</rng:attribute>
</rng:element>
</rng:zeroOrMore>
</rng:group>
<rng:attribute name="office:value-type">
<rng:value>void</rng:value>
</rng:attribute>
</rng:choice>
</rng:define>
<rng:define name="form-property-value-and-type-attlist">
<rng:choice>
<rng:ref name="common-value-and-type-attlist"/>
<rng:attribute name="office:value-type">
<rng:value>void</rng:value>
</rng:attribute>
</rng:choice>
</rng:define>
<rng:define name="form-radio-attlist">
<rng:ref name="form-control-attlist"/>
<rng:ref name="current-selected"/>
<rng:ref name="common-disabled-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4121 -->
<rng:ref name="common-input-required-attlist"/>
<rng:ref name="label"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="selected"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="common-value-attlist"/>
<rng:ref name="common-data-field-attlist"/>
<rng:ref name="common-form-visual-effect-attlist"/>
<rng:ref name="common-form-relative-image-position-attlist"/>
<rng:ref name="common-linked-cell"/>
</rng:define>
<rng:define name="form-text-attlist">
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-current-value-attlist"/>
<rng:ref name="common-disabled-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4121 -->
<rng:ref name="common-input-required-attlist"/>
<rng:ref name="common-maxlength-attlist"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-readonly-attlist"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="common-value-attlist"/>
<rng:ref name="common-convert-empty-attlist"/>
<rng:ref name="common-data-field-attlist"/>
<rng:ref name="common-linked-cell"/>
</rng:define>
<rng:define name="form-textarea-attlist">
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-current-value-attlist"/>
<rng:ref name="common-disabled-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4121 -->
<rng:ref name="common-input-required-attlist"/>
<rng:ref name="common-maxlength-attlist"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-readonly-attlist"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="common-value-attlist"/>
<rng:ref name="common-convert-empty-attlist"/>
<rng:ref name="common-data-field-attlist"/>
<rng:ref name="common-linked-cell"/>
</rng:define>
<rng:define name="form-time-attlist">
<rng:interleave>
<!-- https://issues.oasis-open.org/browse/OFFICE-4121 -->
<rng:ref name="common-input-required-attlist"/>
<rng:optional>
<rng:attribute name="form:value">
<rng:ref name="time"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:current-value">
<rng:ref name="time"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:min-value">
<rng:ref name="time"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:max-value">
<rng:ref name="time"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="form-value-range-attlist">
<rng:interleave>
<rng:ref name="form-control-attlist"/>
<rng:ref name="common-disabled-attlist"/>
<rng:ref name="common-printable-attlist"/>
<rng:ref name="common-tab-attlist"/>
<rng:ref name="common-title-attlist"/>
<rng:ref name="common-value-attlist"/>
<rng:ref name="common-linked-cell"/>
<rng:ref name="common-repeat"/>
<rng:ref name="common-delay-for-repeat"/>
<rng:optional>
<rng:attribute name="form:max-value">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:min-value">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:step-size">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:page-step-size">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:orientation">
<rng:choice>
<rng:value>horizontal</rng:value>
<rng:value>vertical</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="gradient-style">
<rng:choice>
<rng:value>linear</rng:value>
<rng:value>axial</rng:value>
<rng:value>radial</rng:value>
<rng:value>ellipsoid</rng:value>
<rng:value>square</rng:value>
<rng:value>rectangular</rng:value>
</rng:choice>
</rng:define>
<rng:define name="header-footer-content">
<rng:choice>
<rng:group>
<rng:ref name="text-tracked-changes"/>
<rng:ref name="text-decls"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="text-h"/>
<rng:ref name="text-p"/>
<rng:ref name="text-list"/>
<rng:ref name="table-table"/>
<rng:ref name="text-section"/>
<rng:ref name="text-table-of-content"/>
<rng:ref name="text-illustration-index"/>
<rng:ref name="text-table-index"/>
<rng:ref name="text-object-index"/>
<rng:ref name="text-user-index"/>
<rng:ref name="text-alphabetical-index"/>
<rng:ref name="text-bibliography"/>
<rng:ref name="text-index-title"/>
<rng:ref name="change-marks"/>
</rng:choice>
</rng:zeroOrMore>
</rng:group>
<rng:group>
<rng:optional>
<rng:ref name="style-region-left"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-region-center"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-region-right"/>
</rng:optional>
</rng:group>
</rng:choice>
</rng:define>
<rng:define name="heading-attrs">
<rng:interleave>
<rng:attribute name="text:outline-level">
<rng:ref name="positiveInteger"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="text:restart-numbering">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:start-value">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:is-list-header">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="horiBackPos">
<rng:choice>
<rng:value>left</rng:value>
<rng:value>center</rng:value>
<rng:value>right</rng:value>
</rng:choice>
</rng:define>
<rng:define name="horizontal-mirror">
<rng:choice>
<rng:value>horizontal</rng:value>
<rng:value>horizontal-on-odd</rng:value>
<rng:value>horizontal-on-even</rng:value>
</rng:choice>
</rng:define>
<rng:define name="image-data">
<rng:optional>
<rng:attribute name="form:image-data">
<rng:ref name="anyIRI"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="index-content-main">
<rng:choice>
<rng:ref name="text-content"/>
<rng:ref name="text-index-title"/>
</rng:choice>
</rng:define>
<rng:define name="integer">
<rng:data type="integer"/>
</rng:define>
<rng:define name="label">
<rng:optional>
<rng:attribute name="form:label">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="labelPositions">
<rng:choice>
<rng:value>avoid-overlap</rng:value>
<rng:value>center</rng:value>
<rng:value>top</rng:value>
<rng:value>top-right</rng:value>
<rng:value>right</rng:value>
<rng:value>bottom-right</rng:value>
<rng:value>bottom</rng:value>
<rng:value>bottom-left</rng:value>
<rng:value>left</rng:value>
<rng:value>top-left</rng:value>
<rng:value>inside</rng:value>
<rng:value>outside</rng:value>
<rng:value>near-origin</rng:value>
</rng:choice>
</rng:define>
<rng:define name="language">
<rng:data type="language"/>
</rng:define>
<rng:define name="languageCode">
<rng:data type="token">
<rng:param name="pattern">[A-Za-z]{1,8}</rng:param>
</rng:data>
</rng:define>
<rng:define name="length">
<rng:data type="string">
<rng:param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))</rng:param>
</rng:data>
</rng:define>
<rng:define name="lineMode">
<rng:choice>
<rng:value>continuous</rng:value>
<rng:value>skip-white-space</rng:value>
</rng:choice>
</rng:define>
<rng:define name="lineStyle">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>solid</rng:value>
<rng:value>dotted</rng:value>
<rng:value>dash</rng:value>
<rng:value>long-dash</rng:value>
<rng:value>dot-dash</rng:value>
<rng:value>dot-dot-dash</rng:value>
<rng:value>wave</rng:value>
</rng:choice>
</rng:define>
<rng:define name="lineType">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>single</rng:value>
<rng:value>double</rng:value>
</rng:choice>
</rng:define>
<rng:define name="lineWidth">
<rng:choice>
<rng:value>auto</rng:value>
<rng:value>normal</rng:value>
<rng:value>bold</rng:value>
<rng:value>thin</rng:value>
<rng:value>medium</rng:value>
<rng:value>thick</rng:value>
<rng:ref name="positiveInteger"/>
<rng:ref name="percent"/>
<rng:ref name="positiveLength"/>
</rng:choice>
</rng:define>
<rng:define name="list-linkage-type">
<rng:optional>
<rng:attribute name="form:list-linkage-type">
<rng:choice>
<rng:value>selection</rng:value>
<rng:value>selection-indices</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="list-source">
<rng:optional>
<rng:attribute name="form:list-source">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="list-source-type">
<rng:optional>
<rng:attribute name="form:list-source-type">
<rng:choice>
<rng:value>table</rng:value>
<rng:value>query</rng:value>
<rng:value>sql</rng:value>
<rng:value>sql-pass-through</rng:value>
<rng:value>value-list</rng:value>
<rng:value>table-fields</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="math-math">
<rng:element name="math:math">
<rng:ref name="mathMarkup"/>
</rng:element>
</rng:define>
<rng:define name="mathMarkup">
<dc:description>To avoid inclusion of the complete MathML schema, anything is allowed within a math:math top-level element</dc:description>
<rng:zeroOrMore>
<rng:choice>
<rng:attribute>
<rng:anyName/>
</rng:attribute>
<rng:text/>
<rng:element>
<rng:anyName/>
<rng:ref name="mathMarkup"/>
</rng:element>
</rng:choice>
</rng:zeroOrMore>
</rng:define>
<rng:define name="meta-date-string">
<rng:element name="meta:date-string">
<rng:ref name="string"/>
</rng:element>
</rng:define>
<rng:define name="namespacedToken">
<rng:data type="QName">
<rng:param name="pattern">[^:]+:[^:]+</rng:param>
</rng:data>
</rng:define>
<rng:define name="navigation">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>current</rng:value>
<rng:value>parent</rng:value>
</rng:choice>
</rng:define>
<rng:define name="nonNegativeDecimal">
<rng:data type="decimal">
<rng:param name="minInclusive">0.0</rng:param>
</rng:data>
</rng:define>
<rng:define name="nonNegativeInteger">
<rng:data type="nonNegativeInteger"/>
</rng:define>
<rng:define name="nonNegativeLength">
<rng:data type="string">
<rng:param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px))</rng:param>
</rng:data>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-4122 nonNegativePercent -->
<rng:define name="nonNegativePercent">
<rng:data type="string">
<rng:param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)%</rng:param>
</rng:data>
</rng:define>
<rng:define name="nonNegativePixelLength">
<rng:data type="string">
<rng:param name="pattern">([0-9]+(\.[0-9]*)?|\.[0-9]+)(px)</rng:param>
</rng:data>
</rng:define>
<rng:define name="number-am-pm">
<rng:element name="number:am-pm">
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-and-text">
<rng:ref name="number-number"/>
<rng:optional>
<rng:ref name="number-text-with-fillchar"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
</rng:define>
<rng:define name="number-boolean">
<rng:element name="number:boolean">
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-boolean-style">
<rng:element name="number:boolean-style">
<rng:ref name="common-data-style-attlist"/>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="number-text"/>
</rng:optional>
<rng:optional>
<rng:ref name="number-boolean"/>
<rng:optional>
<rng:ref name="number-text"/>
</rng:optional>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="style-map"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="number-currency-style">
<rng:element name="number:currency-style">
<rng:ref name="common-data-style-attlist"/>
<rng:ref name="common-auto-reorder-attlist"/>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="number-text-with-fillchar"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
<rng:optional>
<rng:choice>
<rng:group>
<rng:ref name="number-and-text"/>
<rng:optional>
<rng:ref name="currency-symbol-and-text"/>
</rng:optional>
</rng:group>
<rng:group>
<rng:ref name="currency-symbol-and-text"/>
<rng:optional>
<rng:ref name="number-and-text"/>
</rng:optional>
</rng:group>
</rng:choice>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="style-map"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="number-currency-symbol">
<rng:element name="number:currency-symbol">
<rng:ref name="number-currency-symbol-attlist"/>
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="number-currency-symbol-attlist">
<rng:optional>
<rng:attribute name="number:language">
<rng:ref name="languageCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:country">
<rng:ref name="countryCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:script">
<rng:ref name="scriptCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:rfc-language-tag">
<rng:ref name="language"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="number-date-style">
<rng:element name="number:date-style">
<rng:ref name="common-data-style-attlist"/>
<rng:ref name="common-auto-reorder-attlist"/>
<rng:ref name="common-format-source-attlist"/>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="number-text-with-fillchar"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
<rng:oneOrMore>
<rng:ref name="any-date"/>
<rng:optional>
<rng:ref name="number-text-with-fillchar"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
</rng:oneOrMore>
<rng:zeroOrMore>
<rng:ref name="style-map"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="number-day">
<rng:element name="number:day">
<rng:ref name="number-day-attlist"/>
<rng:ref name="common-calendar-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-day-attlist">
<rng:optional>
<rng:attribute name="number:style">
<rng:choice>
<rng:value>short</rng:value>
<rng:value>long</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="number-day-of-week">
<rng:element name="number:day-of-week">
<rng:ref name="number-day-of-week-attlist"/>
<rng:ref name="common-calendar-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-day-of-week-attlist">
<rng:optional>
<rng:attribute name="number:style">
<rng:choice>
<rng:value>short</rng:value>
<rng:value>long</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="number-embedded-text">
<rng:element name="number:embedded-text">
<rng:ref name="number-embedded-text-attlist"/>
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="number-embedded-text-attlist">
<rng:attribute name="number:position">
<rng:ref name="integer"/>
</rng:attribute>
</rng:define>
<rng:define name="number-era">
<rng:element name="number:era">
<rng:ref name="number-era-attlist"/>
<rng:ref name="common-calendar-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-era-attlist">
<rng:optional>
<rng:attribute name="number:style">
<rng:choice>
<rng:value>short</rng:value>
<rng:value>long</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="number-fill-character">
<rng:element name="number:fill-character">
<rng:text/>
</rng:element>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
<rng:define name="number-fraction">
<rng:element name="number:fraction">
<rng:ref name="number-fraction-attlist"/>
<rng:ref name="common-number-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-fraction-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="number:min-numerator-digits">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:min-denominator-digits">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:denominator-value">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:max-denominator-value">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3695 max-denominator-value -->
</rng:interleave>
</rng:define>
<rng:define name="number-hours">
<rng:element name="number:hours">
<rng:ref name="number-hours-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-hours-attlist">
<rng:optional>
<rng:attribute name="number:style">
<rng:choice>
<rng:value>short</rng:value>
<rng:value>long</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="number-minutes">
<rng:element name="number:minutes">
<rng:ref name="number-minutes-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-minutes-attlist">
<rng:optional>
<rng:attribute name="number:style">
<rng:choice>
<rng:value>short</rng:value>
<rng:value>long</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="number-month">
<rng:element name="number:month">
<rng:ref name="number-month-attlist"/>
<rng:ref name="common-calendar-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-month-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="number:textual">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:possessive-form">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:style">
<rng:choice>
<rng:value>short</rng:value>
<rng:value>long</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-4108 -->
<rng:define name="number-num-list-format">
<rng:element name="number:num-list-format">
<rng:attribute name="style:name">
<rng:ref name="styleName"/>
</rng:attribute>
<rng:interleave>
<rng:zeroOrMore>
<rng:element name="number:num-list-label">
<rng:attribute name="text:level">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:element>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="number-text"/>
</rng:zeroOrMore>
</rng:interleave>
</rng:element>
</rng:define>
<rng:define name="number-number">
<rng:element name="number:number">
<rng:ref name="number-number-attlist"/>
<rng:ref name="common-decimal-places-attlist"/>
<rng:ref name="common-number-attlist"/>
<rng:zeroOrMore>
<rng:ref name="number-embedded-text"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="number-number-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="number:decimal-replacement">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:display-factor">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="number-number-style">
<rng:element name="number:number-style">
<rng:ref name="common-data-style-attlist"/>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="number-text-with-fillchar"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
<rng:optional>
<rng:ref name="any-number"/>
<rng:optional>
<rng:ref name="number-text-with-fillchar"/>
</rng:optional>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
<rng:zeroOrMore>
<rng:ref name="style-map"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="number-percentage-style">
<rng:element name="number:percentage-style">
<rng:ref name="common-data-style-attlist"/>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="number-text-with-fillchar"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
<rng:optional>
<rng:ref name="number-and-text"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="style-map"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="number-quarter">
<rng:element name="number:quarter">
<rng:ref name="number-quarter-attlist"/>
<rng:ref name="common-calendar-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-quarter-attlist">
<rng:optional>
<rng:attribute name="number:style">
<rng:choice>
<rng:value>short</rng:value>
<rng:value>long</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="number-scientific-number">
<rng:element name="number:scientific-number">
<rng:ref name="number-scientific-number-attlist"/>
<rng:ref name="common-decimal-places-attlist"/>
<rng:ref name="common-number-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-scientific-number-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="number:min-exponent-digits">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:exponent-interval">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-1828 exponent-interval -->
<rng:optional>
<rng:attribute name="number:forced-exponent-sign">
<rng:ref name="boolean"/>
</rng:attribute>
<!-- https://issues.oasis-open.org/browse/OFFICE-3860 added number:forced-exponent-sign -->
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="number-seconds">
<rng:element name="number:seconds">
<rng:ref name="number-seconds-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-seconds-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="number:style">
<rng:choice>
<rng:value>short</rng:value>
<rng:value>long</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:decimal-places">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="number-text">
<rng:element name="number:text">
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="number-text-content">
<rng:element name="number:text-content">
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-text-style">
<rng:element name="number:text-style">
<rng:ref name="common-data-style-attlist"/>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="number-text-with-fillchar"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
<rng:zeroOrMore>
<rng:ref name="number-text-content"/>
<rng:optional>
<rng:ref name="number-text-with-fillchar"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="style-map"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="number-text-with-fillchar">
<rng:optional>
<rng:ref name="number-text"/>
</rng:optional>
<rng:optional>
<rng:ref name="number-fill-character"/>
<rng:optional>
<rng:ref name="number-text"/>
</rng:optional>
</rng:optional>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
<rng:define name="number-time-style">
<rng:element name="number:time-style">
<rng:ref name="number-time-style-attlist"/>
<rng:ref name="common-data-style-attlist"/>
<rng:ref name="common-format-source-attlist"/>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="number-text-with-fillchar"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
<rng:oneOrMore>
<rng:ref name="any-time"/>
<rng:optional>
<rng:ref name="number-text-with-fillchar"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
</rng:oneOrMore>
<rng:zeroOrMore>
<rng:ref name="style-map"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="number-time-style-attlist">
<rng:optional>
<rng:attribute name="number:truncate-on-overflow">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="number-week-of-year">
<rng:element name="number:week-of-year">
<rng:ref name="common-calendar-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-year">
<rng:element name="number:year">
<rng:ref name="number-year-attlist"/>
<rng:ref name="common-calendar-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-year-attlist">
<rng:optional>
<rng:attribute name="number:style">
<rng:choice>
<rng:value>short</rng:value>
<rng:value>long</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="office-annotation">
<rng:element name="office:annotation">
<rng:ref name="office-annotation-attlist"/>
<rng:ref name="draw-caption-attlist"/>
<rng:ref name="common-draw-position-attlist"/>
<rng:ref name="common-draw-size-attlist"/>
<rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
<rng:optional>
<rng:ref name="dc-creator"/>
</rng:optional>
<rng:optional>
<rng:ref name="dc-date"/>
</rng:optional>
<rng:optional>
<rng:ref name="meta-date-string"/>
</rng:optional>
<rng:optional>
<rng:element name="meta:creator-initials">
<rng:text/>
</rng:element>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3776 -->
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="text-p"/>
<rng:ref name="text-list"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="office-annotation-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="office:display">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="common-office-annotation-name-attlist"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="office-annotation-end">
<rng:element name="office:annotation-end">
<rng:ref name="office-annotation-end-attlist"/>
</rng:element>
</rng:define>
<rng:define name="office-annotation-end-attlist">
<rng:ref name="common-office-annotation-name-attlist"/>
</rng:define>
<rng:define name="office-automatic-styles">
<rng:optional>
<rng:element name="office:automatic-styles">
<rng:interleave>
<rng:ref name="styles"/>
<rng:zeroOrMore>
<rng:ref name="style-page-layout"/>
</rng:zeroOrMore>
</rng:interleave>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="office-binary-data">
<rng:element name="office:binary-data">
<rng:ref name="base64Binary"/>
</rng:element>
</rng:define>
<rng:define name="office-body">
<rng:element name="office:body">
<rng:ref name="office-body-content"/>
</rng:element>
</rng:define>
<rng:define name="office-body-content">
<rng:choice>
<rng:element name="office:text">
<rng:ref name="office-text-attlist"/>
<rng:ref name="office-text-content-prelude"/>
<rng:ref name="office-text-content-main"/>
<rng:ref name="office-text-content-epilogue"/>
</rng:element>
<rng:element name="office:drawing">
<rng:ref name="office-drawing-attlist"/>
<rng:ref name="office-drawing-content-prelude"/>
<rng:ref name="office-drawing-content-main"/>
<rng:ref name="office-drawing-content-epilogue"/>
</rng:element>
<rng:element name="office:presentation">
<rng:ref name="office-presentation-attlist"/>
<rng:ref name="office-presentation-content-prelude"/>
<rng:ref name="office-presentation-content-main"/>
<rng:ref name="office-presentation-content-epilogue"/>
</rng:element>
<rng:element name="office:spreadsheet">
<rng:ref name="office-spreadsheet-attlist"/>
<rng:ref name="office-spreadsheet-content-prelude"/>
<rng:ref name="office-spreadsheet-content-main"/>
<rng:ref name="office-spreadsheet-content-epilogue"/>
</rng:element>
<rng:element name="office:chart">
<rng:ref name="office-chart-attlist"/>
<rng:ref name="office-chart-content-prelude"/>
<rng:ref name="office-chart-content-main"/>
<rng:ref name="office-chart-content-epilogue"/>
</rng:element>
<rng:element name="office:image">
<rng:ref name="office-image-attlist"/>
<rng:ref name="office-image-content-prelude"/>
<rng:ref name="office-image-content-main"/>
<rng:ref name="office-image-content-epilogue"/>
</rng:element>
<rng:ref name="office-database"/>
</rng:choice>
</rng:define>
<rng:define name="office-change-info">
<rng:element name="office:change-info">
<rng:ref name="dc-creator"/>
<rng:ref name="dc-date"/>
<rng:zeroOrMore>
<rng:ref name="text-p"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="office-chart-attlist">
<rng:empty/>
</rng:define>
<rng:define name="office-chart-content-epilogue">
<rng:ref name="table-functions"/>
</rng:define>
<rng:define name="office-chart-content-main">
<rng:ref name="chart-chart"/>
</rng:define>
<rng:define name="office-chart-content-prelude">
<rng:ref name="text-decls"/>
<rng:ref name="table-decls"/>
</rng:define>
<rng:define name="office-database">
<rng:element name="office:database">
<rng:ref name="db-data-source"/>
<rng:optional>
<rng:ref name="db-forms"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-reports"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-queries"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-table-presentations"/>
</rng:optional>
<rng:optional>
<rng:ref name="db-schema-definition"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="office-dde-source">
<rng:element name="office:dde-source">
<rng:ref name="office-dde-source-attlist"/>
<rng:ref name="common-dde-connection-decl-attlist"/>
</rng:element>
</rng:define>
<rng:define name="office-dde-source-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="office:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="office:conversion-mode">
<rng:choice>
<rng:value>into-default-style-data-style</rng:value>
<rng:value>into-english-number</rng:value>
<rng:value>keep-text</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="office-document">
<rng:element name="office:document">
<rng:ref name="office-document-attrs"/>
<rng:ref name="office-document-common-attrs"/>
<rng:ref name="office-meta"/>
<rng:ref name="office-settings"/>
<rng:ref name="office-scripts"/>
<rng:ref name="office-font-face-decls"/>
<rng:ref name="office-styles"/>
<rng:ref name="office-automatic-styles"/>
<rng:ref name="office-master-styles"/>
<rng:ref name="office-body"/>
</rng:element>
</rng:define>
<rng:define name="office-document-attrs">
<rng:attribute name="office:mimetype">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="office-document-common-attrs">
<rng:interleave>
<rng:attribute name="office:version">
<!-- https://issues.oasis-open.org/browse/OFFICE-4140 -->
<rng:value>1.4</rng:value>
</rng:attribute>
<rng:optional>
<rng:attribute name="grddl:transformation">
<rng:list>
<rng:zeroOrMore>
<rng:ref name="anyIRI"/>
</rng:zeroOrMore>
</rng:list>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="office-document-content">
<rng:element name="office:document-content">
<rng:ref name="office-document-common-attrs"/>
<rng:ref name="office-scripts"/>
<rng:ref name="office-font-face-decls"/>
<rng:ref name="office-automatic-styles"/>
<rng:ref name="office-body"/>
</rng:element>
</rng:define>
<rng:define name="office-document-meta">
<rng:element name="office:document-meta">
<rng:ref name="office-document-common-attrs"/>
<rng:ref name="office-meta"/>
</rng:element>
</rng:define>
<rng:define name="office-document-settings">
<rng:element name="office:document-settings">
<rng:ref name="office-document-common-attrs"/>
<rng:ref name="office-settings"/>
</rng:element>
</rng:define>
<rng:define name="office-document-styles">
<rng:element name="office:document-styles">
<rng:ref name="office-document-common-attrs"/>
<rng:ref name="office-font-face-decls"/>
<rng:ref name="office-styles"/>
<rng:ref name="office-automatic-styles"/>
<rng:ref name="office-master-styles"/>
</rng:element>
</rng:define>
<rng:define name="office-drawing-attlist">
<rng:empty/>
</rng:define>
<rng:define name="office-drawing-content-epilogue">
<rng:ref name="table-functions"/>
</rng:define>
<rng:define name="office-drawing-content-main">
<rng:zeroOrMore>
<rng:ref name="draw-page"/>
</rng:zeroOrMore>
</rng:define>
<rng:define name="office-drawing-content-prelude">
<rng:ref name="text-decls"/>
<rng:ref name="table-decls"/>
</rng:define>
<rng:define name="office-event-listeners">
<rng:element name="office:event-listeners">
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="script-event-listener"/>
<rng:ref name="presentation-event-listener"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="office-font-face-decls">
<rng:optional>
<rng:element name="office:font-face-decls">
<rng:zeroOrMore>
<rng:ref name="style-font-face"/>
</rng:zeroOrMore>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="office-forms">
<rng:optional>
<rng:element name="office:forms">
<rng:ref name="office-forms-attlist"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="form-form"/>
<rng:ref name="xforms-model"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="office-forms-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="form:automatic-focus">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="form:apply-design-mode">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="office-image-attlist">
<rng:empty/>
</rng:define>
<rng:define name="office-image-content-epilogue">
<rng:empty/>
</rng:define>
<rng:define name="office-image-content-main">
<rng:ref name="draw-frame"/>
</rng:define>
<rng:define name="office-image-content-prelude">
<rng:empty/>
</rng:define>
<rng:define name="office-master-styles">
<rng:optional>
<rng:element name="office:master-styles">
<rng:interleave>
<rng:zeroOrMore>
<rng:ref name="style-master-page"/>
</rng:zeroOrMore>
<rng:optional>
<rng:ref name="style-handout-master"/>
</rng:optional>
<rng:optional>
<rng:ref name="draw-layer-set"/>
</rng:optional>
</rng:interleave>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="office-meta">
<rng:optional>
<rng:element name="office:meta">
<rng:ref name="office-meta-content-strict"/>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="office-meta-content-strict">
<rng:zeroOrMore>
<rng:ref name="office-meta-data"/>
</rng:zeroOrMore>
</rng:define>
<rng:define name="office-meta-data">
<rng:choice>
<rng:element name="meta:generator">
<rng:ref name="string"/>
</rng:element>
<rng:element name="dc:title">
<rng:ref name="string"/>
</rng:element>
<rng:element name="dc:description">
<rng:ref name="string"/>
</rng:element>
<rng:element name="dc:subject">
<rng:ref name="string"/>
</rng:element>
<rng:element name="meta:keyword">
<rng:ref name="string"/>
</rng:element>
<rng:element name="meta:initial-creator">
<rng:ref name="string"/>
</rng:element>
<rng:ref name="dc-creator"/>
<rng:element name="meta:printed-by">
<rng:ref name="string"/>
</rng:element>
<rng:element name="meta:creation-date">
<rng:ref name="dateTime"/>
</rng:element>
<rng:ref name="dc-date"/>
<rng:element name="meta:print-date">
<rng:ref name="dateTime"/>
</rng:element>
<rng:element name="meta:template">
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:actuate">
<rng:value>onRequest</rng:value>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="xlink:title">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:date">
<rng:ref name="dateTime"/>
</rng:attribute>
</rng:optional>
</rng:element>
<rng:element name="meta:auto-reload">
<rng:optional>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:show">
<rng:value>replace</rng:value>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="xlink:actuate">
<rng:value>onLoad</rng:value>
</rng:attribute>
</rng:optional>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:delay">
<rng:ref name="duration"/>
</rng:attribute>
</rng:optional>
</rng:element>
<rng:element name="meta:hyperlink-behaviour">
<rng:optional>
<rng:attribute name="office:target-frame-name">
<rng:ref name="targetFrameName"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="xlink:show">
<rng:choice>
<rng:value>new</rng:value>
<rng:value>replace</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:element>
<rng:element name="dc:language">
<rng:ref name="language"/>
</rng:element>
<rng:element name="meta:editing-cycles">
<rng:ref name="nonNegativeInteger"/>
</rng:element>
<rng:element name="meta:editing-duration">
<rng:ref name="duration"/>
</rng:element>
<rng:element name="meta:document-statistic">
<rng:optional>
<rng:attribute name="meta:page-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:table-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:draw-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:image-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:ole-object-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:object-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:paragraph-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:word-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:character-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:frame-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:sentence-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:syllable-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:non-whitespace-character-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:row-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="meta:cell-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
</rng:element>
<rng:element name="meta:user-defined">
<rng:attribute name="meta:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:choice>
<rng:group>
<rng:attribute name="meta:value-type">
<rng:value>float</rng:value>
</rng:attribute>
<rng:ref name="double"/>
</rng:group>
<rng:group>
<rng:attribute name="meta:value-type">
<rng:value>date</rng:value>
</rng:attribute>
<rng:ref name="dateOrDateTime"/>
</rng:group>
<rng:group>
<rng:attribute name="meta:value-type">
<rng:value>time</rng:value>
</rng:attribute>
<rng:ref name="duration"/>
</rng:group>
<rng:group>
<rng:attribute name="meta:value-type">
<rng:value>boolean</rng:value>
</rng:attribute>
<rng:ref name="boolean"/>
</rng:group>
<rng:group>
<rng:attribute name="meta:value-type">
<rng:value>string</rng:value>
</rng:attribute>
<rng:ref name="string"/>
</rng:group>
<rng:text/>
</rng:choice>
</rng:element>
</rng:choice>
</rng:define>
<rng:define name="office-presentation-attlist">
<rng:empty/>
</rng:define>
<rng:define name="office-presentation-content-epilogue">
<rng:ref name="presentation-settings"/>
<rng:ref name="table-functions"/>
</rng:define>
<rng:define name="office-presentation-content-main">
<rng:zeroOrMore>
<rng:ref name="draw-page"/>
</rng:zeroOrMore>
</rng:define>
<rng:define name="office-presentation-content-prelude">
<rng:ref name="text-decls"/>
<rng:ref name="table-decls"/>
<rng:ref name="presentation-decls"/>
</rng:define>
<!-- removed from text as well
<rng:define name="office-process-content">
<rng:optional>
<rng:attribute name="office:process-content">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
-->
<rng:define name="office-script">
<rng:element name="office:script">
<rng:ref name="office-script-attlist"/>
<rng:mixed>
<rng:ref name="anyElements"/>
</rng:mixed>
</rng:element>
</rng:define>
<rng:define name="office-script-attlist">
<rng:attribute name="script:language">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="office-scripts">
<rng:optional>
<rng:element name="office:scripts">
<rng:zeroOrMore>
<rng:ref name="office-script"/>
</rng:zeroOrMore>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="office-settings">
<rng:optional>
<rng:element name="office:settings">
<rng:oneOrMore>
<rng:ref name="config-config-item-set"/>
</rng:oneOrMore>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="office-spreadsheet-attlist">
<rng:optional>
<rng:attribute name="table:structure-protected">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:protection-key">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:protection-key-digest-algorithm">
<rng:ref name="anyIRI"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="office-spreadsheet-content-epilogue">
<rng:ref name="table-functions"/>
</rng:define>
<rng:define name="office-spreadsheet-content-main">
<rng:zeroOrMore>
<rng:ref name="table-table"/>
</rng:zeroOrMore>
</rng:define>
<rng:define name="office-spreadsheet-content-prelude">
<rng:optional>
<rng:ref name="table-tracked-changes"/>
</rng:optional>
<rng:ref name="text-decls"/>
<rng:ref name="table-decls"/>
</rng:define>
<rng:define name="office-styles">
<rng:optional>
<rng:element name="office:styles">
<rng:interleave>
<rng:ref name="styles"/>
<rng:zeroOrMore>
<rng:ref name="style-default-style"/>
</rng:zeroOrMore>
<rng:optional>
<rng:ref name="style-default-page-layout"/>
</rng:optional>
<rng:optional>
<rng:ref name="text-outline-style"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="text-notes-configuration"/>
</rng:zeroOrMore>
<rng:optional>
<rng:ref name="text-bibliography-configuration"/>
</rng:optional>
<rng:optional>
<rng:ref name="text-linenumbering-configuration"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="draw-gradient"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="svg-linearGradient"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="svg-radialGradient"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="draw-hatch"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="draw-fill-image"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="draw-marker"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="draw-stroke-dash"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="draw-opacity"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="style-presentation-page-layout"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="table-table-template"/>
</rng:zeroOrMore>
</rng:interleave>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="office-text-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:global">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-soft-page-breaks">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="office-text-content-epilogue">
<rng:ref name="table-functions"/>
</rng:define>
<rng:define name="office-text-content-main">
<rng:choice>
<rng:zeroOrMore>
<rng:ref name="text-content"/>
</rng:zeroOrMore>
<rng:group>
<rng:ref name="text-page-sequence"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="shape"/>
</rng:choice>
</rng:zeroOrMore>
</rng:group>
</rng:choice>
</rng:define>
<rng:define name="office-text-content-prelude">
<rng:ref name="office-forms"/>
<rng:ref name="text-tracked-changes"/>
<rng:ref name="text-decls"/>
<rng:ref name="table-decls"/>
</rng:define>
<rng:define name="paragraph-attrs">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:class-names">
<rng:ref name="styleNameRefs"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:cond-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:group>
<rng:ref name="xml-id"/>
<rng:optional>
<rng:attribute name="text:id">
<rng:ref name="NCName"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:optional>
<rng:optional>
<rng:ref name="common-in-content-meta-attlist"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="paragraph-content">
<rng:choice>
<rng:text/>
<rng:element name="text:s">
<rng:optional>
<rng:attribute name="text:c">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
</rng:element>
<rng:element name="text:tab">
<rng:ref name="text-tab-attr"/>
</rng:element>
<rng:element name="text:line-break">
<rng:empty/>
</rng:element>
<rng:ref name="text-soft-page-break"/>
<rng:element name="text:span">
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:class-names">
<rng:ref name="styleNameRefs"/>
</rng:attribute>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="paragraph-content-or-hyperlink"/>
</rng:zeroOrMore>
</rng:element>
<rng:element name="text:meta">
<rng:ref name="text-meta-attlist"/>
<rng:zeroOrMore>
<rng:ref name="paragraph-content-or-hyperlink"/>
</rng:zeroOrMore>
</rng:element>
<rng:choice>
<rng:ref name="text-bookmark"/>
<rng:ref name="text-bookmark-start"/>
<rng:ref name="text-bookmark-end"/>
</rng:choice>
<rng:element name="text:reference-mark">
<rng:attribute name="text:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:element>
<rng:choice>
<rng:element name="text:reference-mark-start">
<rng:attribute name="text:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:element>
<rng:element name="text:reference-mark-end">
<rng:attribute name="text:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:element>
</rng:choice>
<rng:element name="text:note">
<rng:ref name="text-note-class"/>
<rng:optional>
<rng:attribute name="text:id">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:element name="text:note-citation">
<rng:optional>
<rng:attribute name="text:label">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:text/>
</rng:element>
<rng:element name="text:note-body">
<rng:zeroOrMore>
<rng:ref name="text-content"/>
</rng:zeroOrMore>
</rng:element>
</rng:element>
<rng:element name="text:ruby">
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:element name="text:ruby-base">
<rng:zeroOrMore>
<rng:ref name="paragraph-content-or-hyperlink"/>
</rng:zeroOrMore>
</rng:element>
<rng:element name="text:ruby-text">
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:text/>
</rng:element>
</rng:element>
<rng:choice>
<rng:ref name="office-annotation"/>
<rng:ref name="office-annotation-end"/>
</rng:choice>
<rng:ref name="change-marks"/>
<rng:ref name="shape"/>
<rng:element name="text:date">
<rng:ref name="text-date-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:time">
<rng:ref name="text-time-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:page-number">
<rng:ref name="text-page-number-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:page-continuation">
<rng:ref name="text-page-continuation-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-firstname">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-lastname">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-initials">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-title">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-position">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-email">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-phone-private">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-fax">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-company">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-phone-work">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-street">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-city">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-postal-code">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-country">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sender-state-or-province">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:author-name">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:author-initials">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:chapter">
<rng:ref name="text-chapter-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:file-name">
<rng:ref name="text-file-name-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:template-name">
<rng:ref name="text-template-name-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:sheet-name">
<rng:text/>
</rng:element>
<rng:element name="text:variable-set">
<rng:interleave>
<rng:ref name="common-field-name-attlist"/>
<rng:ref name="common-field-formula-attlist"/>
<rng:ref name="common-value-and-type-attlist"/>
<rng:ref name="common-field-display-value-none-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:variable-get">
<rng:interleave>
<rng:ref name="common-field-name-attlist"/>
<rng:ref name="common-field-display-value-formula-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:variable-input">
<rng:interleave>
<rng:ref name="common-field-name-attlist"/>
<rng:ref name="common-field-description-attlist"/>
<rng:ref name="common-value-type-attlist"/>
<rng:ref name="common-field-display-value-none-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:user-field-get">
<rng:interleave>
<rng:ref name="common-field-name-attlist"/>
<rng:ref name="common-field-display-value-formula-none-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:user-field-input">
<rng:interleave>
<rng:ref name="common-field-name-attlist"/>
<rng:ref name="common-field-description-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:sequence">
<rng:interleave>
<rng:ref name="common-field-name-attlist"/>
<rng:ref name="common-field-formula-attlist"/>
<rng:ref name="common-field-num-format-attlist"/>
<rng:ref name="text-sequence-ref-name"/>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:expression">
<rng:interleave>
<rng:ref name="common-field-formula-attlist"/>
<rng:optional>
<rng:ref name="common-value-and-type-attlist"/>
</rng:optional>
<rng:ref name="common-field-display-value-formula-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:text-input">
<rng:ref name="common-field-description-attlist"/>
<rng:text/>
</rng:element>
<rng:ref name="text-drop-down"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-3881 -->
<rng:element name="text:initial-creator">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:creation-date">
<rng:interleave>
<rng:ref name="common-field-fixed-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
<rng:optional>
<rng:attribute name="text:date-value">
<rng:ref name="dateOrDateTime"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:creation-time">
<rng:interleave>
<rng:ref name="common-field-fixed-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
<rng:optional>
<rng:attribute name="text:time-value">
<rng:ref name="timeOrDateTime"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:description">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:user-defined">
<rng:interleave>
<rng:ref name="common-field-fixed-attlist"/>
<rng:attribute name="text:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:ref name="common-field-data-style-name-attlist"/>
<rng:optional>
<rng:attribute name="office:value">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="office:date-value">
<rng:ref name="dateOrDateTime"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="office:time-value">
<rng:ref name="duration"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="office:boolean-value">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="office:string-value">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:print-time">
<rng:interleave>
<rng:ref name="common-field-fixed-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
<rng:optional>
<rng:attribute name="text:time-value">
<rng:ref name="time"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:print-date">
<rng:interleave>
<rng:ref name="common-field-fixed-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
<rng:optional>
<rng:attribute name="text:date-value">
<rng:ref name="date"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:printed-by">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:title">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:subject">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:keywords">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:editing-cycles">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:editing-duration">
<rng:interleave>
<rng:ref name="common-field-fixed-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
<rng:optional>
<rng:attribute name="text:duration">
<rng:ref name="duration"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:modification-time">
<rng:interleave>
<rng:ref name="common-field-fixed-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
<rng:optional>
<rng:attribute name="text:time-value">
<rng:ref name="time"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:modification-date">
<rng:interleave>
<rng:ref name="common-field-fixed-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
<rng:optional>
<rng:attribute name="text:date-value">
<rng:ref name="date"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:creator">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element>
<rng:choice>
<rng:name>text:page-count</rng:name>
<rng:name>text:paragraph-count</rng:name>
<rng:name>text:word-count</rng:name>
<rng:name>text:character-count</rng:name>
<rng:name>text:table-count</rng:name>
<rng:name>text:image-count</rng:name>
<rng:name>text:object-count</rng:name>
</rng:choice>
<rng:ref name="common-field-num-format-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:database-display">
<rng:ref name="text-database-display-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:database-next">
<rng:ref name="text-database-next-attlist"/>
</rng:element>
<rng:element name="text:database-row-select">
<rng:ref name="text-database-row-select-attlist"/>
</rng:element>
<rng:element name="text:database-row-number">
<rng:interleave>
<rng:ref name="common-field-database-table"/>
<rng:ref name="common-field-num-format-attlist"/>
<rng:optional>
<rng:attribute name="text:value">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:database-name">
<rng:ref name="common-field-database-table"/>
<rng:text/>
</rng:element>
<rng:element name="text:page-variable-set">
<rng:ref name="text-set-page-variable-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:page-variable-get">
<rng:ref name="text-get-page-variable-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:placeholder">
<rng:ref name="text-placeholder-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:conditional-text">
<rng:ref name="text-conditional-text-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:hidden-text">
<rng:ref name="text-hidden-text-attlist"/>
<rng:text/>
</rng:element>
<rng:element>
<rng:choice>
<rng:name>text:reference-ref</rng:name>
<rng:name>text:bookmark-ref</rng:name>
</rng:choice>
<rng:interleave>
<rng:ref name="text-common-ref-content"/>
<rng:ref name="text-bookmark-ref-content"/>
</rng:interleave>
</rng:element>
<rng:element name="text:note-ref">
<rng:interleave>
<rng:ref name="text-common-ref-content"/>
<rng:ref name="text-note-ref-content"/>
</rng:interleave>
</rng:element>
<rng:element name="text:sequence-ref">
<rng:interleave>
<rng:ref name="text-common-ref-content"/>
<rng:ref name="text-sequence-ref-content"/>
</rng:interleave>
</rng:element>
<rng:element name="text:script">
<rng:interleave>
<rng:choice>
<rng:group>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
</rng:group>
<rng:text/>
</rng:choice>
<rng:optional>
<rng:attribute name="script:language">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:element>
<rng:element name="text:execute-macro">
<rng:optional>
<rng:attribute name="text:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:text/>
</rng:element>
<rng:element name="text:hidden-paragraph">
<rng:ref name="text-hidden-paragraph-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:dde-connection">
<rng:attribute name="text:connection-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:text/>
</rng:element>
<rng:element name="text:measure">
<rng:attribute name="text:kind">
<rng:choice>
<rng:value>value</rng:value>
<rng:value>unit</rng:value>
<rng:value>gap</rng:value>
</rng:choice>
</rng:attribute>
<rng:text/>
</rng:element>
<rng:element name="text:table-formula">
<rng:interleave>
<rng:ref name="common-field-formula-attlist"/>
<rng:ref name="common-field-display-value-formula-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:meta-field">
<rng:ref name="text-meta-field-attlist"/>
<rng:zeroOrMore>
<rng:ref name="paragraph-content-or-hyperlink"/>
</rng:zeroOrMore>
</rng:element>
<rng:element name="text:toc-mark-start">
<rng:ref name="text-toc-mark-start-attrs"/>
</rng:element>
<rng:element name="text:toc-mark-end">
<rng:ref name="text-id"/>
</rng:element>
<rng:element name="text:toc-mark">
<rng:attribute name="text:string-value">
<rng:ref name="string"/>
</rng:attribute>
<rng:ref name="text-outline-level"/>
</rng:element>
<rng:element name="text:user-index-mark-start">
<rng:ref name="text-id"/>
<rng:ref name="text-outline-level"/>
<rng:ref name="text-index-name"/>
</rng:element>
<rng:element name="text:user-index-mark-end">
<rng:ref name="text-id"/>
</rng:element>
<rng:element name="text:user-index-mark">
<rng:attribute name="text:string-value">
<rng:ref name="string"/>
</rng:attribute>
<rng:ref name="text-outline-level"/>
<rng:ref name="text-index-name"/>
</rng:element>
<rng:element name="text:alphabetical-index-mark-start">
<rng:ref name="text-id"/>
<rng:ref name="text-alphabetical-index-mark-attrs"/>
</rng:element>
<rng:element name="text:alphabetical-index-mark-end">
<rng:ref name="text-id"/>
</rng:element>
<rng:element name="text:alphabetical-index-mark">
<rng:attribute name="text:string-value">
<rng:ref name="string"/>
</rng:attribute>
<rng:ref name="text-alphabetical-index-mark-attrs"/>
</rng:element>
<rng:element name="text:bibliography-mark">
<rng:attribute name="text:bibliography-type">
<rng:ref name="text-bibliography-types"/>
</rng:attribute>
<rng:zeroOrMore>
<rng:attribute>
<rng:choice>
<rng:name>text:identifier</rng:name>
<rng:name>text:address</rng:name>
<rng:name>text:annote</rng:name>
<rng:name>text:author</rng:name>
<rng:name>text:booktitle</rng:name>
<rng:name>text:chapter</rng:name>
<rng:name>text:edition</rng:name>
<rng:name>text:editor</rng:name>
<rng:name>text:howpublished</rng:name>
<rng:name>text:institution</rng:name>
<rng:name>text:journal</rng:name>
<rng:name>text:month</rng:name>
<rng:name>text:note</rng:name>
<rng:name>text:number</rng:name>
<rng:name>text:organizations</rng:name>
<rng:name>text:pages</rng:name>
<rng:name>text:publisher</rng:name>
<rng:name>text:school</rng:name>
<rng:name>text:series</rng:name>
<rng:name>text:title</rng:name>
<rng:name>text:report-type</rng:name>
<rng:name>text:volume</rng:name>
<rng:name>text:year</rng:name>
<rng:name>text:url</rng:name>
<rng:name>text:custom1</rng:name>
<rng:name>text:custom2</rng:name>
<rng:name>text:custom3</rng:name>
<rng:name>text:custom4</rng:name>
<rng:name>text:custom5</rng:name>
<rng:name>text:isbn</rng:name>
<rng:name>text:issn</rng:name>
</rng:choice>
<rng:ref name="string"/>
</rng:attribute>
</rng:zeroOrMore>
<rng:text/>
</rng:element>
<rng:element name="presentation:header">
<rng:empty/>
</rng:element>
<rng:element name="presentation:footer">
<rng:empty/>
</rng:element>
<rng:element name="presentation:date-time">
<rng:empty/>
</rng:element>
</rng:choice>
</rng:define>
<rng:define name="paragraph-content-or-hyperlink">
<rng:choice>
<rng:ref name="paragraph-content"/>
<rng:ref name="text-a"/>
</rng:choice>
</rng:define>
<rng:define name="pathData">
<rng:data type="string"/>
</rng:define>
<rng:define name="percent">
<rng:data type="string">
<rng:param name="pattern">-?([0-9]+(\.[0-9]*)?|\.[0-9]+)%</rng:param>
</rng:data>
</rng:define>
<rng:define name="point3D">
<rng:data type="string">
<rng: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}[ ]*\)</rng:param>
</rng:data>
</rng:define>
<rng:define name="points">
<rng:data type="string">
<rng:param name="pattern">-?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)*</rng:param>
</rng:data>
</rng:define>
<rng:define name="positiveInteger">
<rng:data type="positiveInteger"/>
</rng:define>
<rng:define name="positiveLength">
<rng:data type="string">
<rng: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))</rng:param>
</rng:data>
</rng:define>
<rng:define name="presentation-animation-elements">
<rng:choice>
<rng:ref name="presentation-show-shape"/>
<rng:ref name="presentation-show-text"/>
<rng:ref name="presentation-hide-shape"/>
<rng:ref name="presentation-hide-text"/>
<rng:ref name="presentation-dim"/>
<rng:ref name="presentation-play"/>
</rng:choice>
</rng:define>
<rng:define name="presentation-animation-group">
<rng:element name="presentation:animation-group">
<rng:zeroOrMore>
<rng:ref name="presentation-animation-elements"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="presentation-animations">
<rng:element name="presentation:animations">
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="presentation-animation-elements"/>
<rng:ref name="presentation-animation-group"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="presentation-classes">
<rng:choice>
<rng:value>title</rng:value>
<rng:value>outline</rng:value>
<rng:value>subtitle</rng:value>
<rng:value>text</rng:value>
<rng:value>graphic</rng:value>
<rng:value>object</rng:value>
<rng:value>chart</rng:value>
<rng:value>table</rng:value>
<rng:value>orgchart</rng:value>
<rng:value>page</rng:value>
<rng:value>notes</rng:value>
<rng:value>handout</rng:value>
<rng:value>header</rng:value>
<rng:value>footer</rng:value>
<rng:value>date-time</rng:value>
<rng:value>page-number</rng:value>
</rng:choice>
</rng:define>
<rng:define name="presentation-date-time-decl-attlist">
<rng:interleave>
<rng:attribute name="presentation:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="presentation:source">
<rng:choice>
<rng:value>fixed</rng:value>
<rng:value>current-date</rng:value>
</rng:choice>
</rng:attribute>
<rng:optional>
<rng:attribute name="style:data-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="presentation-decl">
<rng:choice>
<rng:element name="presentation:header-decl">
<rng:ref name="presentation-header-decl-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="presentation:footer-decl">
<rng:ref name="presentation-footer-decl-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="presentation:date-time-decl">
<rng:ref name="presentation-date-time-decl-attlist"/>
<rng:text/>
</rng:element>
</rng:choice>
</rng:define>
<rng:define name="presentation-decls">
<rng:zeroOrMore>
<rng:ref name="presentation-decl"/>
</rng:zeroOrMore>
</rng:define>
<rng:define name="presentation-dim">
<rng:element name="presentation:dim">
<rng:ref name="presentation-dim-attlist"/>
<rng:optional>
<rng:ref name="presentation-sound"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="presentation-dim-attlist">
<rng:interleave>
<rng:attribute name="draw:shape-id">
<rng:ref name="IDREF"/>
</rng:attribute>
<rng:attribute name="draw:color">
<rng:ref name="color"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="presentation-event-listener">
<rng:element name="presentation:event-listener">
<rng:ref name="presentation-event-listener-attlist"/>
<rng:optional>
<rng:ref name="presentation-sound"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="presentation-event-listener-attlist">
<rng:interleave>
<rng:attribute name="script:event-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="presentation:action">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>previous-page</rng:value>
<rng:value>next-page</rng:value>
<rng:value>first-page</rng:value>
<rng:value>last-page</rng:value>
<rng:value>hide</rng:value>
<rng:value>stop</rng:value>
<rng:value>execute</rng:value>
<rng:value>show</rng:value>
<rng:value>verb</rng:value>
<rng:value>fade-out</rng:value>
<rng:value>sound</rng:value>
<rng:value>last-visited-page</rng:value>
</rng:choice>
</rng:attribute>
<rng:optional>
<rng:attribute name="presentation:effect">
<rng:ref name="presentationEffects"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:direction">
<rng:ref name="presentationEffectDirections"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:speed">
<rng:ref name="presentationSpeeds"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:start-scale">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:show">
<rng:value>embed</rng:value>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="xlink:actuate">
<rng:value>onRequest</rng:value>
</rng:attribute>
</rng:optional>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:verb">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="presentation-footer-decl-attlist">
<rng:attribute name="presentation:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="presentation-header-decl-attlist">
<rng:attribute name="presentation:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="presentation-hide-shape">
<rng:element name="presentation:hide-shape">
<rng:ref name="common-presentation-effect-attlist"/>
<rng:optional>
<rng:ref name="presentation-sound"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="presentation-hide-text">
<rng:element name="presentation:hide-text">
<rng:ref name="common-presentation-effect-attlist"/>
<rng:optional>
<rng:ref name="presentation-sound"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="presentation-notes">
<rng:element name="presentation:notes">
<rng:ref name="common-presentation-header-footer-attlist"/>
<rng:ref name="presentation-notes-attlist"/>
<rng:ref name="office-forms"/>
<rng:zeroOrMore>
<rng:ref name="shape"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="presentation-notes-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="style:page-layout-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="presentation-placeholder">
<rng:element name="presentation:placeholder">
<rng:attribute name="presentation:object">
<rng:ref name="presentation-classes"/>
</rng:attribute>
<rng:attribute name="svg:x">
<rng:choice>
<rng:ref name="coordinate"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
<rng:attribute name="svg:y">
<rng:choice>
<rng:ref name="coordinate"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
<rng:attribute name="svg:width">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
<rng:attribute name="svg:height">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="presentation-play">
<rng:element name="presentation:play">
<rng:ref name="presentation-play-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="presentation-play-attlist">
<rng:attribute name="draw:shape-id">
<rng:ref name="IDREF"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="presentation:speed">
<rng:ref name="presentationSpeeds"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="presentation-settings">
<rng:optional>
<rng:element name="presentation:settings">
<rng:ref name="presentation-settings-attlist"/>
<rng:zeroOrMore>
<rng:ref name="presentation-show"/>
</rng:zeroOrMore>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="presentation-settings-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="presentation:start-page">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:show">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:full-screen">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:endless">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:pause">
<rng:ref name="duration"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:show-logo">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:force-manual">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:mouse-visible">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:mouse-as-pen">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:start-with-navigator">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:animations">
<rng:choice>
<rng:value>enabled</rng:value>
<rng:value>disabled</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:transition-on-click">
<rng:choice>
<rng:value>enabled</rng:value>
<rng:value>disabled</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:stay-on-top">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:show-end-of-presentation-slide">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="presentation-shape-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="presentation:class">
<rng:ref name="presentation-classes"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:placeholder">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:user-transformed">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="presentation-show">
<rng:element name="presentation:show">
<rng:ref name="presentation-show-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="presentation-show-attlist">
<rng:interleave>
<rng:attribute name="presentation:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="presentation:pages">
<rng:ref name="string"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="presentation-show-shape">
<rng:element name="presentation:show-shape">
<rng:ref name="common-presentation-effect-attlist"/>
<rng:optional>
<rng:ref name="presentation-sound"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="presentation-show-text">
<rng:element name="presentation:show-text">
<rng:ref name="common-presentation-effect-attlist"/>
<rng:optional>
<rng:ref name="presentation-sound"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="presentation-sound">
<rng:element name="presentation:sound">
<rng:ref name="presentation-sound-attlist"/>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:actuate">
<rng:value>onRequest</rng:value>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="xlink:show">
<rng:choice>
<rng:value>new</rng:value>
<rng:value>replace</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="presentation-sound-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="presentation:play-full">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="presentationEffectDirections">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>from-left</rng:value>
<rng:value>from-top</rng:value>
<rng:value>from-right</rng:value>
<rng:value>from-bottom</rng:value>
<rng:value>from-center</rng:value>
<rng:value>from-upper-left</rng:value>
<rng:value>from-upper-right</rng:value>
<rng:value>from-lower-left</rng:value>
<rng:value>from-lower-right</rng:value>
<rng:value>to-left</rng:value>
<rng:value>to-top</rng:value>
<rng:value>to-right</rng:value>
<rng:value>to-bottom</rng:value>
<rng:value>to-upper-left</rng:value>
<rng:value>to-upper-right</rng:value>
<rng:value>to-lower-right</rng:value>
<rng:value>to-lower-left</rng:value>
<rng:value>path</rng:value>
<rng:value>spiral-inward-left</rng:value>
<rng:value>spiral-inward-right</rng:value>
<rng:value>spiral-outward-left</rng:value>
<rng:value>spiral-outward-right</rng:value>
<rng:value>vertical</rng:value>
<rng:value>horizontal</rng:value>
<rng:value>to-center</rng:value>
<rng:value>clockwise</rng:value>
<rng:value>counter-clockwise</rng:value>
</rng:choice>
</rng:define>
<rng:define name="presentationEffects">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>fade</rng:value>
<rng:value>move</rng:value>
<rng:value>stripes</rng:value>
<rng:value>open</rng:value>
<rng:value>close</rng:value>
<rng:value>dissolve</rng:value>
<rng:value>wavyline</rng:value>
<rng:value>random</rng:value>
<rng:value>lines</rng:value>
<rng:value>laser</rng:value>
<rng:value>appear</rng:value>
<rng:value>hide</rng:value>
<rng:value>move-short</rng:value>
<rng:value>checkerboard</rng:value>
<rng:value>rotate</rng:value>
<rng:value>stretch</rng:value>
</rng:choice>
</rng:define>
<rng:define name="presentationSpeeds">
<rng:choice>
<rng:value>slow</rng:value>
<rng:value>medium</rng:value>
<rng:value>fast</rng:value>
</rng:choice>
</rng:define>
<rng:define name="region-content">
<rng:zeroOrMore>
<rng:ref name="text-p"/>
</rng:zeroOrMore>
</rng:define>
<rng:define name="relativeLength">
<rng:data type="string">
<rng:param name="pattern">[0-9]+\*</rng:param>
</rng:data>
</rng:define>
<rng:define name="rowOrCol">
<rng:choice>
<rng:value>row</rng:value>
<rng:value>column</rng:value>
</rng:choice>
</rng:define>
<rng:define name="script-event-listener">
<rng:element name="script:event-listener">
<rng:ref name="script-event-listener-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="script-event-listener-attlist">
<rng:interleave>
<rng:attribute name="script:event-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="script:language">
<rng:ref name="string"/>
</rng:attribute>
<rng:choice>
<rng:attribute name="script:macro-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:group>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:actuate">
<rng:value>onRequest</rng:value>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:choice>
</rng:interleave>
</rng:define>
<rng:define name="scriptCode">
<rng:data type="token">
<rng:param name="pattern">[A-Za-z0-9]{1,8}</rng:param>
</rng:data>
</rng:define>
<rng:define name="selected">
<rng:optional>
<rng:attribute name="form:selected">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="shadowType">
<rng:choice>
<rng:value>none</rng:value>
<rng:ref name="string"/>
</rng:choice>
</rng:define>
<rng:define name="shape">
<rng:choice>
<rng:ref name="shape-instance"/>
<rng:ref name="draw-a"/>
</rng:choice>
</rng:define>
<rng:define name="shape-instance">
<rng:choice>
<rng:ref name="draw-rect"/>
<rng:ref name="draw-line"/>
<rng:ref name="draw-polyline"/>
<rng:ref name="draw-polygon"/>
<rng:ref name="draw-regular-polygon"/>
<rng:ref name="draw-path"/>
<rng:ref name="draw-circle"/>
<rng:ref name="draw-ellipse"/>
<rng:ref name="draw-g"/>
<rng:ref name="draw-page-thumbnail"/>
<rng:ref name="draw-frame"/>
<rng:ref name="draw-measure"/>
<rng:ref name="draw-caption"/>
<rng:ref name="draw-connector"/>
<rng:ref name="draw-control"/>
<rng:ref name="dr3d-scene"/>
<rng:ref name="draw-custom-shape"/>
</rng:choice>
</rng:define>
<rng:define name="shapes3d">
<rng:choice>
<rng:ref name="dr3d-scene"/>
<rng:ref name="dr3d-extrude"/>
<rng:ref name="dr3d-sphere"/>
<rng:ref name="dr3d-rotate"/>
<rng:ref name="dr3d-cube"/>
</rng:choice>
</rng:define>
<rng:define name="signedZeroToHundredPercent">
<rng:data type="string">
<rng:param name="pattern">-?([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%</rng:param>
</rng:data>
</rng:define>
<rng:define name="size">
<rng:optional>
<rng:attribute name="form:size">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="states">
<rng:choice>
<rng:value>unchecked</rng:value>
<rng:value>checked</rng:value>
<rng:value>unknown</rng:value>
</rng:choice>
</rng:define>
<rng:define name="string">
<rng:data type="string"/>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-4125 -->
<rng:define name="style-background-fill">
<rng:optional>
<rng:element name="style:background-fill">
<rng:ref name="common-draw-fill-kind-attlist"/>
<rng:ref name="common-draw-fill-details-attlist"/>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="style-background-image">
<rng:optional>
<rng:element name="style:background-image">
<rng:ref name="style-background-image-attlist"/>
<rng:choice>
<rng:ref name="common-draw-data-attlist"/>
<rng:ref name="office-binary-data"/>
<rng:empty/>
</rng:choice>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="style-background-image-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="style:repeat">
<rng:choice>
<rng:value>no-repeat</rng:value>
<rng:value>repeat</rng:value>
<rng:value>stretch</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:position">
<rng:choice>
<rng:value>left</rng:value>
<rng:value>center</rng:value>
<rng:value>right</rng:value>
<rng:value>top</rng:value>
<rng:value>bottom</rng:value>
<!-- FIXME msv ignores the 2nd list? -->
<rng:list>
<rng:ref name="vertBackPos"/>
<rng:ref name="horiBackPos"/>
</rng:list>
<rng:list>
<rng:ref name="horiBackPos"/>
<rng:ref name="vertBackPos"/>
</rng:list>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:filter-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:opacity">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-chart-properties">
<rng:element name="style:chart-properties">
<rng:ref name="style-chart-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-chart-properties-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="chart:scale-text">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:three-dimensional">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:deep">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:right-angled-axes">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:choice>
<rng:attribute name="chart:symbol-type">
<rng:value>none</rng:value>
</rng:attribute>
<rng:attribute name="chart:symbol-type">
<rng:value>automatic</rng:value>
</rng:attribute>
<rng:group>
<rng:attribute name="chart:symbol-type">
<rng:value>named-symbol</rng:value>
</rng:attribute>
<rng:attribute name="chart:symbol-name">
<rng:choice>
<rng:value>square</rng:value>
<rng:value>diamond</rng:value>
<rng:value>arrow-down</rng:value>
<rng:value>arrow-up</rng:value>
<rng:value>arrow-right</rng:value>
<rng:value>arrow-left</rng:value>
<rng:value>bow-tie</rng:value>
<rng:value>hourglass</rng:value>
<rng:value>circle</rng:value>
<rng:value>star</rng:value>
<rng:value>x</rng:value>
<rng:value>plus</rng:value>
<rng:value>asterisk</rng:value>
<rng:value>horizontal-bar</rng:value>
<rng:value>vertical-bar</rng:value>
</rng:choice>
</rng:attribute>
</rng:group>
<rng:group>
<rng:attribute name="chart:symbol-type">
<rng:value>image</rng:value>
</rng:attribute>
<rng:element name="chart:symbol-image">
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
</rng:element>
</rng:group>
<rng:empty/>
</rng:choice>
<rng:optional>
<rng:attribute name="chart:symbol-width">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:symbol-height">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:sort-by-x-values">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:vertical">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:connect-bars">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:gap-width">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:overlap">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:group-bars-per-axis">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:japanese-candle-stick">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:interpolation">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>cubic-spline</rng:value>
<rng:value>b-spline</rng:value>
<rng:value>step-start</rng:value>
<rng:value>step-end</rng:value>
<rng:value>step-center-x</rng:value>
<rng:value>step-center-y</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:spline-order">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:spline-resolution">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:pie-offset">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:angle-offset">
<rng:ref name="angle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:hole-size">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:lines">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:solid-type">
<rng:choice>
<rng:value>cuboid</rng:value>
<rng:value>cylinder</rng:value>
<rng:value>cone</rng:value>
<rng:value>pyramid</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:stacked">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:percentage">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:treat-empty-cells">
<rng:choice>
<rng:value>use-zero</rng:value>
<rng:value>leave-gap</rng:value>
<rng:value>ignore</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:link-data-style-to-source">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:logarithmic">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:maximum">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:minimum">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:origin">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3936 -->
<rng:optional>
<rng:attribute name="chart:major-origin">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:interval-major">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3936 -->
<rng:optional>
<rng:attribute name="chart:minor-logarithmic">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:interval-minor-divisor">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:tick-marks-major-inner">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:tick-marks-major-outer">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:tick-marks-minor-inner">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:tick-marks-minor-outer">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:reverse-direction">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:display-label">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:text-overlap">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:line-break">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:label-arrangement">
<rng:choice>
<rng:value>side-by-side</rng:value>
<rng:value>stagger-even</rng:value>
<rng:value>stagger-odd</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="common-style-direction-attlist"/>
<rng:ref name="common-rotation-angle-attlist"/>
<rng:optional>
<rng:attribute name="chart:data-label-number">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>value</rng:value>
<rng:value>percentage</rng:value>
<rng:value>value-and-percentage</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:data-label-text">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:data-label-symbol">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:element name="chart:label-separator">
<rng:ref name="text-p"/>
</rng:element>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:label-position">
<rng:ref name="labelPositions"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:label-position-negative">
<rng:ref name="labelPositions"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:visible">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:auto-position">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:auto-size">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:mean-value">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:error-category">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>variance</rng:value>
<rng:value>standard-deviation</rng:value>
<rng:value>percentage</rng:value>
<rng:value>error-margin</rng:value>
<rng:value>constant</rng:value>
<rng:value>standard-error</rng:value>
<rng:value>cell-range</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:error-percentage">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:error-margin">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:error-lower-limit">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:error-upper-limit">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:error-upper-indicator">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:error-lower-indicator">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:error-lower-range">
<rng:ref name="cellRangeAddressList"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:error-upper-range">
<rng:ref name="cellRangeAddressList"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:series-source">
<rng:choice>
<rng:value>columns</rng:value>
<rng:value>rows</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:regression-type">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>linear</rng:value>
<rng:value>logarithmic</rng:value>
<rng:value>moving-average</rng:value>
<rng:value>exponential</rng:value>
<rng:value>power</rng:value>
<rng:value>polynomial</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:regression-max-degree">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:regression-force-intercept">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:regression-intercept-value">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:regression-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3958 -->
<rng:optional>
<rng:attribute name="chart:regression-period">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:regression-moving-type">
<rng:choice>
<rng:value>prior</rng:value>
<rng:value>central</rng:value>
<rng:value>averaged-abscissa</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3959 -->
<rng:optional>
<rng:attribute name="chart:axis-position">
<rng:choice>
<rng:value>start</rng:value>
<rng:value>end</rng:value>
<rng:ref name="double"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:axis-label-position">
<rng:choice>
<rng:value>near-axis</rng:value>
<rng:value>near-axis-other-side</rng:value>
<rng:value>outside-start</rng:value>
<rng:value>outside-end</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:tick-mark-position">
<rng:choice>
<rng:value>at-labels</rng:value>
<rng:value>at-axis</rng:value>
<rng:value>at-labels-and-axis</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:include-hidden-cells">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:data-label-series">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-2117 -->
</rng:interleave>
</rng:define>
<rng:define name="style-chart-properties-content-strict">
<rng:ref name="style-chart-properties-attlist"/>
<rng:ref name="style-chart-properties-elements"/>
</rng:define>
<rng:define name="style-chart-properties-elements">
<rng:empty/>
</rng:define>
<rng:define name="style-column">
<rng:element name="style:column">
<rng:ref name="style-column-attlist"/>
</rng:element>
</rng:define>
<rng:define name="style-column-attlist">
<rng:interleave>
<rng:attribute name="style:rel-width">
<rng:ref name="relativeLength"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="fo:start-indent">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:end-indent">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:space-before">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:space-after">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-column-sep">
<rng:element name="style:column-sep">
<rng:ref name="style-column-sep-attlist"/>
</rng:element>
</rng:define>
<rng:define name="style-column-sep-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="style:style">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>solid</rng:value>
<rng:value>dotted</rng:value>
<rng:value>dashed</rng:value>
<rng:value>dot-dashed</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:attribute name="style:width">
<rng:ref name="length"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="style:height">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:vertical-align">
<rng:choice>
<rng:value>top</rng:value>
<rng:value>middle</rng:value>
<rng:value>bottom</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-columns">
<rng:optional>
<rng:element name="style:columns">
<rng:ref name="style-columns-attlist"/>
<rng:optional>
<rng:ref name="style-column-sep"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="style-column"/>
</rng:zeroOrMore>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="style-columns-attlist">
<rng:interleave>
<rng:attribute name="fo:column-count">
<rng:ref name="positiveInteger"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="fo:column-gap">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-default-page-layout">
<rng:element name="style:default-page-layout">
<rng:ref name="style-page-layout-content"/>
</rng:element>
</rng:define>
<rng:define name="style-default-style">
<rng:element name="style:default-style">
<rng:ref name="style-style-content"/>
</rng:element>
</rng:define>
<rng:define name="style-drawing-page-properties">
<rng:element name="style:drawing-page-properties">
<rng:ref name="style-drawing-page-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-drawing-page-properties-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="presentation:transition-type">
<rng:choice>
<rng:value>manual</rng:value>
<rng:value>automatic</rng:value>
<rng:value>semi-automatic</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:transition-style">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>fade-from-left</rng:value>
<rng:value>fade-from-top</rng:value>
<rng:value>fade-from-right</rng:value>
<rng:value>fade-from-bottom</rng:value>
<rng:value>fade-from-upperleft</rng:value>
<rng:value>fade-from-upperright</rng:value>
<rng:value>fade-from-lowerleft</rng:value>
<rng:value>fade-from-lowerright</rng:value>
<rng:value>move-from-left</rng:value>
<rng:value>move-from-top</rng:value>
<rng:value>move-from-right</rng:value>
<rng:value>move-from-bottom</rng:value>
<rng:value>move-from-upperleft</rng:value>
<rng:value>move-from-upperright</rng:value>
<rng:value>move-from-lowerleft</rng:value>
<rng:value>move-from-lowerright</rng:value>
<rng:value>uncover-to-left</rng:value>
<rng:value>uncover-to-top</rng:value>
<rng:value>uncover-to-right</rng:value>
<rng:value>uncover-to-bottom</rng:value>
<rng:value>uncover-to-upperleft</rng:value>
<rng:value>uncover-to-upperright</rng:value>
<rng:value>uncover-to-lowerleft</rng:value>
<rng:value>uncover-to-lowerright</rng:value>
<rng:value>fade-to-center</rng:value>
<rng:value>fade-from-center</rng:value>
<rng:value>vertical-stripes</rng:value>
<rng:value>horizontal-stripes</rng:value>
<rng:value>clockwise</rng:value>
<rng:value>counterclockwise</rng:value>
<rng:value>open-vertical</rng:value>
<rng:value>open-horizontal</rng:value>
<rng:value>close-vertical</rng:value>
<rng:value>close-horizontal</rng:value>
<rng:value>wavyline-from-left</rng:value>
<rng:value>wavyline-from-top</rng:value>
<rng:value>wavyline-from-right</rng:value>
<rng:value>wavyline-from-bottom</rng:value>
<rng:value>spiralin-left</rng:value>
<rng:value>spiralin-right</rng:value>
<rng:value>spiralout-left</rng:value>
<rng:value>spiralout-right</rng:value>
<rng:value>roll-from-top</rng:value>
<rng:value>roll-from-left</rng:value>
<rng:value>roll-from-right</rng:value>
<rng:value>roll-from-bottom</rng:value>
<rng:value>stretch-from-left</rng:value>
<rng:value>stretch-from-top</rng:value>
<rng:value>stretch-from-right</rng:value>
<rng:value>stretch-from-bottom</rng:value>
<rng:value>vertical-lines</rng:value>
<rng:value>horizontal-lines</rng:value>
<rng:value>dissolve</rng:value>
<rng:value>random</rng:value>
<rng:value>vertical-checkerboard</rng:value>
<rng:value>horizontal-checkerboard</rng:value>
<rng:value>interlocking-horizontal-left</rng:value>
<rng:value>interlocking-horizontal-right</rng:value>
<rng:value>interlocking-vertical-top</rng:value>
<rng:value>interlocking-vertical-bottom</rng:value>
<rng:value>fly-away</rng:value>
<rng:value>open</rng:value>
<rng:value>close</rng:value>
<rng:value>melt</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:transition-speed">
<rng:ref name="presentationSpeeds"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:type">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:subtype">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:direction">
<rng:choice>
<rng:value>forward</rng:value>
<rng:value>reverse</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="smil:fadeColor">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:duration">
<rng:ref name="duration"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:visibility">
<rng:choice>
<rng:value>visible</rng:value>
<rng:value>hidden</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:background-size">
<rng:choice>
<rng:value>full</rng:value>
<rng:value>border</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:background-objects-visible">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:background-visible">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:display-header">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:display-footer">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:display-page-number">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="presentation:display-date-time">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-drawing-page-properties-content-strict">
<rng:ref name="style-graphic-fill-properties-attlist"/>
<rng:ref name="style-drawing-page-properties-attlist"/>
<rng:ref name="style-drawing-page-properties-elements"/>
</rng:define>
<rng:define name="style-drawing-page-properties-elements">
<rng:optional>
<rng:ref name="presentation-sound"/>
</rng:optional>
</rng:define>
<rng:define name="style-drop-cap">
<rng:optional>
<rng:element name="style:drop-cap">
<rng:ref name="style-drop-cap-attlist"/>
<rng:empty/>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="style-drop-cap-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="style:length">
<rng:choice>
<rng:value>word</rng:value>
<rng:ref name="positiveInteger"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:lines">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:distance">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-font-face">
<rng:element name="style:font-face">
<rng:ref name="style-font-face-attlist"/>
<rng:optional>
<rng:ref name="svg-font-face-src"/>
</rng:optional>
<rng:optional>
<rng:ref name="svg-definition-src"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="style-font-face-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="svg:font-family">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:font-style">
<rng:ref name="fontStyle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:font-variant">
<rng:ref name="fontVariant"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:font-weight">
<rng:ref name="fontWeight"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:font-stretch">
<rng:choice>
<rng:value>normal</rng:value>
<rng:value>ultra-condensed</rng:value>
<rng:value>extra-condensed</rng:value>
<rng:value>condensed</rng:value>
<rng:value>semi-condensed</rng:value>
<rng:value>semi-expanded</rng:value>
<rng:value>expanded</rng:value>
<rng:value>extra-expanded</rng:value>
<rng:value>ultra-expanded</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:font-size">
<rng:ref name="positiveLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:unicode-range">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:units-per-em">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:panose-1">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:stemv">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:stemh">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:slope">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:cap-height">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:x-height">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:accent-height">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:ascent">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:descent">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:widths">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:bbox">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:ideographic">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:alphabetic">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:mathematical">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:hanging">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:v-ideographic">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:v-alphabetic">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:v-mathematical">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:v-hanging">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:underline-position">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:underline-thickness">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:strikethrough-position">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:strikethrough-thickness">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:overline-position">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:overline-thickness">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="style:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="style:font-adornments">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-family-generic">
<rng:ref name="fontFamilyGeneric"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-pitch">
<rng:ref name="fontPitch"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-charset">
<rng:ref name="textEncoding"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-footer">
<rng:element name="style:footer">
<rng:ref name="common-style-header-footer-attlist"/>
<rng:ref name="header-footer-content"/>
</rng:element>
</rng:define>
<rng:define name="style-footer-first">
<rng:element name="style:footer-first">
<rng:ref name="common-style-header-footer-attlist"/>
<rng:ref name="header-footer-content"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-3789 -->
</rng:element>
</rng:define>
<rng:define name="style-footer-left">
<rng:element name="style:footer-left">
<rng:ref name="common-style-header-footer-attlist"/>
<rng:ref name="header-footer-content"/>
</rng:element>
</rng:define>
<rng:define name="style-footer-style">
<rng:element name="style:footer-style">
<rng:optional>
<rng:ref name="style-header-footer-properties"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="style-footnote-sep">
<rng:optional>
<rng:element name="style:footnote-sep">
<rng:ref name="style-footnote-sep-attlist"/>
<rng:empty/>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="style-footnote-sep-attlist">
<rng:optional>
<rng:attribute name="style:width">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:rel-width">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:line-style">
<rng:ref name="lineStyle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:adjustment">
<rng:choice>
<rng:value>left</rng:value>
<rng:value>center</rng:value>
<rng:value>right</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:distance-before-sep">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:distance-after-sep">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="style-graphic-fill-properties-attlist">
<rng:interleave>
<rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-4125 -->
<rng:ref name="common-draw-fill-kind-attlist"/>
</rng:optional>
<rng:ref name="common-draw-fill-details-attlist"/>
</rng:interleave>
</rng:define>
<rng:define name="common-draw-fill-kind-attlist">
<rng:attribute name="draw:fill">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>solid</rng:value>
<rng:value>bitmap</rng:value>
<rng:value>gradient</rng:value>
<rng:value>hatch</rng:value>
</rng:choice>
</rng:attribute>
</rng:define>
<rng:define name="common-draw-fill-details-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:fill-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:secondary-fill-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:fill-gradient-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:gradient-step-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:fill-hatch-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:fill-hatch-solid">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:fill-image-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:repeat">
<rng:choice>
<rng:value>no-repeat</rng:value>
<rng:value>repeat</rng:value>
<rng:value>stretch</rng:value>
<!-- https://issues.oasis-open.org/browse/OFFICE-4106 -->
<rng:value>scale</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:fill-image-width">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:fill-image-height">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:fill-image-ref-point-x">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:fill-image-ref-point-y">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:fill-image-ref-point">
<rng:choice>
<rng:value>top-left</rng:value>
<rng:value>top</rng:value>
<rng:value>top-right</rng:value>
<rng:value>left</rng:value>
<rng:value>center</rng:value>
<rng:value>right</rng:value>
<rng:value>bottom-left</rng:value>
<rng:value>bottom</rng:value>
<rng:value>bottom-right</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:tile-repeat-offset">
<rng:list>
<rng:ref name="zeroToHundredPercent"/>
<rng:choice>
<rng:value>horizontal</rng:value>
<rng:value>vertical</rng:value>
</rng:choice>
</rng:list>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:opacity">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:opacity-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:fill-rule">
<rng:choice>
<rng:value>nonzero</rng:value>
<rng:value>evenodd</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-graphic-properties">
<rng:element name="style:graphic-properties">
<rng:ref name="style-graphic-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-graphic-properties-attlist">
<rng:interleave>
<!-- https://issues.oasis-open.org/browse/OFFICE-4047 -->
<rng:optional>
<rng:attribute name="draw:allow-overlap">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-4142 -->
<rng:optional>
<rng:attribute name="draw:decorative">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:stroke">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>dash</rng:value>
<rng:value>solid</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:stroke-dash">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:stroke-dash-names">
<rng:ref name="styleNameRefs"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:stroke-width">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:stroke-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:marker-start">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:marker-end">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:marker-start-width">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:marker-end-width">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:marker-start-center">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:marker-end-center">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:stroke-opacity">
<rng:choice>
<rng:data type="double">
<rng:param name="minInclusive">0</rng:param>
<rng:param name="maxInclusive">1</rng:param>
</rng:data>
<rng:ref name="zeroToHundredPercent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:stroke-linejoin">
<rng:choice>
<rng:value>miter</rng:value>
<rng:value>round</rng:value>
<rng:value>bevel</rng:value>
<rng:value>middle</rng:value>
<rng:value>none</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:stroke-linecap">
<rng:choice>
<rng:value>butt</rng:value>
<rng:value>square</rng:value>
<rng:value>round</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:symbol-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:animation">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>scroll</rng:value>
<rng:value>alternate</rng:value>
<rng:value>slide</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:animation-direction">
<rng:choice>
<rng:value>left</rng:value>
<rng:value>right</rng:value>
<rng:value>up</rng:value>
<rng:value>down</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:animation-start-inside">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:animation-stop-inside">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:animation-repeat">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:animation-delay">
<rng:ref name="duration"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:animation-steps">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:auto-grow-width">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:auto-grow-height">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:fit-to-size">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:fit-to-contour">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:textarea-vertical-align">
<rng:choice>
<rng:value>top</rng:value>
<rng:value>middle</rng:value>
<rng:value>bottom</rng:value>
<rng:value>justify</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:textarea-horizontal-align">
<rng:choice>
<rng:value>left</rng:value>
<rng:value>center</rng:value>
<rng:value>right</rng:value>
<rng:value>justify</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:wrap-option">
<rng:choice>
<rng:value>no-wrap</rng:value>
<rng:value>wrap</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:shrink-to-fit">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:color-mode">
<rng:choice>
<rng:value>greyscale</rng:value>
<rng:value>mono</rng:value>
<rng:value>watermark</rng:value>
<rng:value>standard</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:color-inversion">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:luminance">
<rng:ref name="signedZeroToHundredPercent"/>
</rng:attribute>
<!-- https://issues.oasis-open.org/browse/OFFICE-3821 -->
</rng:optional>
<rng:optional>
<rng:attribute name="draw:contrast">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:gamma">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:red">
<rng:ref name="signedZeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:green">
<rng:ref name="signedZeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:blue">
<rng:ref name="signedZeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:image-opacity">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:shadow">
<rng:choice>
<rng:value>visible</rng:value>
<rng:value>hidden</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:shadow-offset-x">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:shadow-offset-y">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:shadow-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:shadow-opacity">
<rng:ref name="zeroToHundredPercent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:start-line-spacing-horizontal">
<rng:ref name="distance"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:start-line-spacing-vertical">
<rng:ref name="distance"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:end-line-spacing-horizontal">
<rng:ref name="distance"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:end-line-spacing-vertical">
<rng:ref name="distance"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:line-distance">
<rng:ref name="distance"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:guide-overhang">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:guide-distance">
<rng:ref name="distance"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:start-guide">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:end-guide">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:placing">
<rng:choice>
<rng:value>below</rng:value>
<rng:value>above</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:parallel">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:measure-align">
<rng:choice>
<rng:value>automatic</rng:value>
<rng:value>left-outside</rng:value>
<rng:value>inside</rng:value>
<rng:value>right-outside</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:measure-vertical-align">
<rng:choice>
<rng:value>automatic</rng:value>
<rng:value>above</rng:value>
<rng:value>below</rng:value>
<rng:value>center</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:unit">
<rng:choice>
<rng:value>automatic</rng:value>
<rng:value>mm</rng:value>
<rng:value>cm</rng:value>
<rng:value>m</rng:value>
<rng:value>km</rng:value>
<rng:value>pt</rng:value>
<rng:value>pc</rng:value>
<rng:value>inch</rng:value>
<rng:value>ft</rng:value>
<rng:value>mi</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:show-unit">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:decimal-places">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:caption-type">
<rng:choice>
<rng:value>straight-line</rng:value>
<rng:value>angled-line</rng:value>
<rng:value>angled-connector-line</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:caption-angle-type">
<rng:choice>
<rng:value>fixed</rng:value>
<rng:value>free</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:caption-angle">
<rng:ref name="angle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:caption-gap">
<rng:ref name="distance"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:caption-escape-direction">
<rng:choice>
<rng:value>horizontal</rng:value>
<rng:value>vertical</rng:value>
<rng:value>auto</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:caption-escape">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:caption-line-length">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:caption-fit-line-length">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:horizontal-segments">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:vertical-segments">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:edge-rounding">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:edge-rounding-mode">
<rng:choice>
<rng:value>correct</rng:value>
<rng:value>attractive</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:back-scale">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:depth">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:backface-culling">
<rng:choice>
<rng:value>enabled</rng:value>
<rng:value>disabled</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:end-angle">
<rng:ref name="angle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:close-front">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:close-back">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:lighting-mode">
<rng:choice>
<rng:value>standard</rng:value>
<rng:value>double-sided</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:normals-kind">
<rng:choice>
<rng:value>object</rng:value>
<rng:value>flat</rng:value>
<rng:value>sphere</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:normals-direction">
<rng:choice>
<rng:value>normal</rng:value>
<rng:value>inverse</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:texture-generation-mode-x">
<rng:choice>
<rng:value>object</rng:value>
<rng:value>parallel</rng:value>
<rng:value>sphere</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:texture-generation-mode-y">
<rng:choice>
<rng:value>object</rng:value>
<rng:value>parallel</rng:value>
<rng:value>sphere</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:texture-kind">
<rng:choice>
<rng:value>luminance</rng:value>
<rng:value>intensity</rng:value>
<rng:value>color</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:texture-filter">
<rng:choice>
<rng:value>enabled</rng:value>
<rng:value>disabled</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:texture-mode">
<rng:choice>
<rng:value>replace</rng:value>
<rng:value>modulate</rng:value>
<rng:value>blend</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:ambient-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:emissive-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:specular-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:diffuse-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:shininess">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="dr3d:shadow">
<rng:choice>
<rng:value>visible</rng:value>
<rng:value>hidden</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="common-draw-rel-size-attlist"/>
<rng:optional>
<rng:attribute name="fo:min-width">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:min-height">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:max-height">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:max-width">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="common-horizontal-margin-attlist"/>
<rng:ref name="common-vertical-margin-attlist"/>
<rng:ref name="common-margin-attlist"/>
<rng:optional>
<rng:attribute name="style:print-content">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:protect">
<rng:choice>
<rng:value>none</rng:value>
<rng:list>
<rng:oneOrMore>
<rng:choice>
<rng:value>content</rng:value>
<rng:value>position</rng:value>
<rng:value>size</rng:value>
</rng:choice>
</rng:oneOrMore>
</rng:list>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:horizontal-pos">
<rng:choice>
<rng:value>left</rng:value>
<rng:value>center</rng:value>
<rng:value>right</rng:value>
<rng:value>from-left</rng:value>
<rng:value>inside</rng:value>
<rng:value>outside</rng:value>
<rng:value>from-inside</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:x">
<rng:ref name="coordinate"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:horizontal-rel">
<rng:choice>
<rng:value>page</rng:value>
<rng:value>page-content</rng:value>
<rng:value>page-start-margin</rng:value>
<rng:value>page-end-margin</rng:value>
<rng:value>frame</rng:value>
<rng:value>frame-content</rng:value>
<rng:value>frame-start-margin</rng:value>
<rng:value>frame-end-margin</rng:value>
<rng:value>paragraph</rng:value>
<rng:value>paragraph-content</rng:value>
<rng:value>paragraph-start-margin</rng:value>
<rng:value>paragraph-end-margin</rng:value>
<rng:value>char</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="common-vertical-pos-attlist"/>
<rng:ref name="common-vertical-rel-attlist"/>
<rng:ref name="common-text-anchor-attlist"/>
<rng:ref name="common-border-attlist"/>
<rng:ref name="common-border-line-width-attlist"/>
<rng:ref name="common-padding-attlist"/>
<rng:ref name="common-shadow-attlist"/>
<rng:ref name="common-background-color-attlist"/>
<rng:ref name="common-background-transparency-attlist"/>
<rng:ref name="common-editable-attlist"/>
<rng:optional>
<rng:attribute name="style:wrap">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>left</rng:value>
<rng:value>right</rng:value>
<rng:value>parallel</rng:value>
<rng:value>dynamic</rng:value>
<rng:value>run-through</rng:value>
<rng:value>biggest</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:wrap-dynamic-threshold">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:number-wrapped-paragraphs">
<rng:choice>
<rng:value>no-limit</rng:value>
<rng:ref name="positiveInteger"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:wrap-contour">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:wrap-contour-mode">
<rng:choice>
<rng:value>full</rng:value>
<rng:value>outside</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:run-through">
<rng:choice>
<rng:value>foreground</rng:value>
<rng:value>background</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:flow-with-text">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:overflow-behavior">
<rng:choice>
<rng:value>clip</rng:value>
<rng:value>auto-create-new-frame</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:mirror">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>vertical</rng:value>
<rng:ref name="horizontal-mirror"/>
<rng:list>
<rng:value>vertical</rng:value>
<rng:ref name="horizontal-mirror"/>
</rng:list>
<rng:list>
<rng:ref name="horizontal-mirror"/>
<rng:value>vertical</rng:value>
</rng:list>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:clip">
<rng:choice>
<rng:value>auto</rng:value>
<rng:ref name="clipShape"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:wrap-influence-on-position">
<rng:choice>
<rng:value>iterative</rng:value>
<rng:value>once-concurrent</rng:value>
<rng:value>once-successive</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="common-writing-mode-attlist"/>
<rng:optional>
<rng:attribute name="draw:frame-display-scrollbar">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:frame-display-border">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:frame-margin-horizontal">
<rng:ref name="nonNegativePixelLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:frame-margin-vertical">
<rng:ref name="nonNegativePixelLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:visible-area-left">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:visible-area-top">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:visible-area-width">
<rng:ref name="positiveLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:visible-area-height">
<rng:ref name="positiveLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:draw-aspect">
<rng:choice>
<rng:value>content</rng:value>
<rng:value>thumbnail</rng:value>
<rng:value>icon</rng:value>
<rng:value>print-view</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="draw:ole-draw-aspect">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-graphic-properties-content-strict">
<rng:ref name="style-graphic-properties-attlist"/>
<rng:ref name="style-graphic-fill-properties-attlist"/>
<rng:ref name="style-graphic-properties-elements"/>
</rng:define>
<rng:define name="style-graphic-properties-elements">
<rng:interleave>
<rng:optional>
<rng:ref name="text-list-style"/>
</rng:optional>
<rng:ref name="style-background-image"/>
<rng:ref name="style-columns"/>
</rng:interleave>
</rng:define>
<rng:define name="style-handout-master">
<rng:element name="style:handout-master">
<rng:ref name="common-presentation-header-footer-attlist"/>
<rng:ref name="style-handout-master-attlist"/>
<rng:zeroOrMore>
<rng:ref name="shape"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="style-handout-master-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="presentation:presentation-page-layout-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="style:page-layout-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="draw:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-header">
<rng:element name="style:header">
<rng:ref name="common-style-header-footer-attlist"/>
<rng:ref name="header-footer-content"/>
</rng:element>
</rng:define>
<rng:define name="style-header-first">
<rng:element name="style:header-first">
<rng:ref name="common-style-header-footer-attlist"/>
<rng:ref name="header-footer-content"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-3789 -->
</rng:element>
</rng:define>
<rng:define name="style-header-footer-properties">
<rng:element name="style:header-footer-properties">
<rng:ref name="style-header-footer-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-header-footer-properties-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="svg:height">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:min-height">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-horizontal-margin-attlist"/>
<rng:ref name="common-vertical-margin-attlist"/>
<rng:ref name="common-margin-attlist"/>
<rng:ref name="common-border-attlist"/>
<rng:ref name="common-border-line-width-attlist"/>
<rng:ref name="common-padding-attlist"/>
<rng:ref name="common-background-color-attlist"/>
<rng:ref name="common-shadow-attlist"/>
<rng:optional>
<rng:attribute name="style:dynamic-spacing">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-header-footer-properties-content-strict">
<rng:ref name="style-header-footer-properties-attlist"/>
<rng:ref name="style-header-footer-properties-elements"/>
</rng:define>
<rng:define name="style-header-footer-properties-elements">
<rng:ref name="style-background-image"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4125 -->
<rng:ref name="style-background-fill"/>
</rng:define>
<rng:define name="style-header-left">
<rng:element name="style:header-left">
<rng:ref name="common-style-header-footer-attlist"/>
<rng:ref name="header-footer-content"/>
</rng:element>
</rng:define>
<rng:define name="style-header-style">
<rng:element name="style:header-style">
<rng:optional>
<rng:ref name="style-header-footer-properties"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="style-list-level-label-alignment">
<rng:optional>
<rng:element name="style:list-level-label-alignment">
<rng:ref name="style-list-level-label-alignment-attlist"/>
<rng:empty/>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="style-list-level-label-alignment-attlist">
<rng:interleave>
<rng:attribute name="text:label-followed-by">
<rng:choice>
<rng:value>listtab</rng:value>
<rng:value>space</rng:value>
<rng:value>nothing</rng:value>
</rng:choice>
</rng:attribute>
<rng:optional>
<rng:attribute name="text:list-tab-stop-position">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:text-indent">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:margin-left">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-list-level-properties">
<rng:element name="style:list-level-properties">
<rng:ref name="style-list-level-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-list-level-properties-attlist">
<rng:interleave>
<rng:ref name="common-text-align"/>
<rng:optional>
<rng:attribute name="text:space-before">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:min-label-width">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:min-label-distance">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:width">
<rng:ref name="positiveLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:height">
<rng:ref name="positiveLength"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-vertical-rel-attlist"/>
<rng:ref name="common-vertical-pos-attlist"/>
<rng:optional>
<rng:attribute name="text:list-level-position-and-space-mode">
<rng:choice>
<rng:value>label-width-and-position</rng:value>
<rng:value>label-alignment</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-list-level-properties-content-strict">
<rng:ref name="style-list-level-properties-attlist"/>
<rng:ref name="style-list-level-properties-elements"/>
</rng:define>
<rng:define name="style-list-level-properties-elements">
<rng:ref name="style-list-level-label-alignment"/>
</rng:define>
<rng:define name="style-map">
<rng:element name="style:map">
<rng:ref name="style-map-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="style-map-attlist">
<rng:interleave>
<rng:attribute name="style:condition">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="style:apply-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="style:base-cell-address">
<rng:ref name="cellAddress"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-master-page">
<rng:element name="style:master-page">
<rng:ref name="style-master-page-attlist"/>
<rng:optional>
<rng:ref name="style-header"/>
<rng:optional>
<rng:ref name="style-header-left"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-header-first"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3789 -->
</rng:optional>
<rng:optional>
<rng:ref name="style-footer"/>
<rng:optional>
<rng:ref name="style-footer-left"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-footer-first"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3789 -->
</rng:optional>
<rng:optional>
<rng:ref name="draw-layer-set"/>
</rng:optional>
<rng:optional>
<rng:ref name="office-forms"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="shape"/>
</rng:zeroOrMore>
<rng:optional>
<rng:ref name="animation-element"/>
</rng:optional>
<rng:optional>
<rng:ref name="presentation-notes"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="style-master-page-attlist">
<rng:interleave>
<rng:attribute name="style:name">
<rng:ref name="styleName"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="style:display-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="style:page-layout-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="draw:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:next-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-num-letter-sync-attlist">
<rng:optional>
<rng:attribute name="style:num-letter-sync">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="style-page-layout">
<rng:element name="style:page-layout">
<rng:ref name="style-page-layout-attlist"/>
<rng:ref name="style-page-layout-content"/>
</rng:element>
</rng:define>
<rng:define name="style-page-layout-attlist">
<rng:interleave>
<rng:attribute name="style:name">
<rng:ref name="styleName"/>
</rng:attribute>
<!-- https://issues.oasis-open.org/browse/OFFICE-4105 -->
<rng:optional>
<rng:attribute name="style:page-usage">
<rng:choice>
<rng:value>all</rng:value>
<rng:value>left</rng:value>
<rng:value>right</rng:value>
<rng:value>mirrored</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-page-layout-content">
<rng:optional>
<rng:ref name="style-page-layout-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-header-style"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-footer-style"/>
</rng:optional>
</rng:define>
<rng:define name="style-page-layout-properties">
<rng:element name="style:page-layout-properties">
<rng:ref name="style-page-layout-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-page-layout-properties-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="fo:page-width">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:page-height">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="common-num-format-attlist"/>
</rng:optional>
<rng:ref name="common-num-format-prefix-suffix-attlist"/>
<rng:optional>
<rng:attribute name="style:paper-tray-name">
<rng:choice>
<rng:value>default</rng:value>
<rng:ref name="string"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:print-orientation">
<rng:choice>
<rng:value>portrait</rng:value>
<rng:value>landscape</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="common-horizontal-margin-attlist"/>
<rng:ref name="common-vertical-margin-attlist"/>
<rng:ref name="common-margin-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4105 -->
<rng:optional>
<rng:attribute name="style:margin-gutter">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-border-attlist"/>
<rng:ref name="common-border-line-width-attlist"/>
<rng:ref name="common-padding-attlist"/>
<rng:ref name="common-shadow-attlist"/>
<rng:ref name="common-background-color-attlist"/>
<rng:optional>
<rng:attribute name="style:register-truth-ref-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:print">
<rng:list>
<rng:zeroOrMore>
<rng:choice>
<rng:value>headers</rng:value>
<rng:value>grid</rng:value>
<rng:value>annotations</rng:value>
<rng:value>objects</rng:value>
<rng:value>charts</rng:value>
<rng:value>drawings</rng:value>
<rng:value>formulas</rng:value>
<rng:value>zero-values</rng:value>
</rng:choice>
</rng:zeroOrMore>
</rng:list>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:print-page-order">
<rng:choice>
<rng:value>ttb</rng:value>
<rng:value>ltr</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:first-page-number">
<rng:choice>
<!-- https://issues.oasis-open.org/browse/OFFICE-3953 -->
<rng:ref name="integer"/>
<rng:value>continue</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:choice>
<rng:optional>
<rng:attribute name="style:scale-to">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:scale-to-pages">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:group>
<rng:optional>
<rng:attribute name="style:scale-to-X">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:scale-to-Y">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:choice>
<!-- https://issues.oasis-open.org/browse/OFFICE-3857 -->
<rng:optional>
<rng:attribute name="style:table-centering">
<rng:choice>
<rng:value>horizontal</rng:value>
<rng:value>vertical</rng:value>
<rng:value>both</rng:value>
<rng:value>none</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:footnote-max-height">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-writing-mode-attlist"/>
<rng:optional>
<rng:attribute name="style:layout-grid-mode">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>line</rng:value>
<rng:value>both</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:layout-grid-standard-mode">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:layout-grid-base-height">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:layout-grid-ruby-height">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:layout-grid-lines">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:layout-grid-base-width">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:layout-grid-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:layout-grid-ruby-below">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:layout-grid-print">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:layout-grid-display">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:layout-grid-snap-to">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-page-layout-properties-content-strict">
<rng:ref name="style-page-layout-properties-attlist"/>
<rng:ref name="style-page-layout-properties-elements"/>
</rng:define>
<rng:define name="style-page-layout-properties-elements">
<rng:interleave>
<rng:ref name="style-background-image"/>
<rng:ref name="style-columns"/>
<rng:ref name="style-footnote-sep"/>
</rng:interleave>
</rng:define>
<rng:define name="style-paragraph-properties">
<rng:element name="style:paragraph-properties">
<rng:ref name="style-paragraph-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-paragraph-properties-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="style:contextual-spacing">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3767 -->
<rng:optional>
<rng:attribute name="fo:line-height">
<rng:choice>
<rng:value>normal</rng:value>
<rng:ref name="nonNegativeLength"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:line-height-at-least">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:line-spacing">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-independent-line-spacing">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-text-align"/>
<rng:optional>
<rng:attribute name="fo:text-align-last">
<rng:choice>
<rng:value>start</rng:value>
<rng:value>center</rng:value>
<rng:value>justify</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:justify-single-word">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:keep-together">
<rng:choice>
<rng:value>auto</rng:value>
<rng:value>always</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:widows">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:orphans">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:tab-stop-distance">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3846 -->
<rng:optional>
<rng:attribute name="text:relative-tab-stop-position">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:hyphenation-keep">
<rng:choice>
<rng:value>auto</rng:value>
<rng:value>page</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:hyphenation-ladder-count">
<rng:choice>
<rng:value>no-limit</rng:value>
<rng:ref name="positiveInteger"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:register-true">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-horizontal-margin-attlist"/>
<rng:optional>
<rng:attribute name="fo:text-indent">
<rng:choice>
<rng:ref name="length"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:auto-text-indent">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-vertical-margin-attlist"/>
<rng:ref name="common-margin-attlist"/>
<rng:ref name="common-break-attlist"/>
<rng:ref name="common-background-color-attlist"/>
<rng:ref name="common-border-attlist"/>
<rng:ref name="common-border-line-width-attlist"/>
<rng:optional>
<rng:attribute name="style:join-border">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-padding-attlist"/>
<rng:ref name="common-shadow-attlist"/>
<rng:ref name="common-keep-with-next-attlist"/>
<rng:optional>
<rng:attribute name="text:number-lines">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:line-number">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-autospace">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>ideograph-alpha</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:punctuation-wrap">
<rng:choice>
<rng:value>simple</rng:value>
<rng:value>hanging</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:line-break">
<rng:choice>
<rng:value>normal</rng:value>
<rng:value>strict</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:vertical-align">
<rng:choice>
<rng:value>top</rng:value>
<rng:value>middle</rng:value>
<rng:value>bottom</rng:value>
<rng:value>auto</rng:value>
<rng:value>baseline</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="common-writing-mode-attlist"/>
<rng:optional>
<rng:attribute name="style:writing-mode-automatic">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:snap-to-layout-grid">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-page-number-attlist"/>
<rng:ref name="common-background-transparency-attlist"/>
</rng:interleave>
</rng:define>
<rng:define name="style-paragraph-properties-content-strict">
<rng:ref name="style-paragraph-properties-attlist"/>
<rng:ref name="style-paragraph-properties-elements"/>
</rng:define>
<rng:define name="style-paragraph-properties-elements">
<rng:interleave>
<rng:ref name="style-tab-stops"/>
<rng:ref name="style-drop-cap"/>
<rng:ref name="style-background-image"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4125 -->
<rng:ref name="style-background-fill"/>
</rng:interleave>
</rng:define>
<rng:define name="style-presentation-page-layout">
<rng:element name="style:presentation-page-layout">
<rng:attribute name="style:name">
<rng:ref name="styleName"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="style:display-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="presentation-placeholder"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="style-region-center">
<rng:element name="style:region-center">
<rng:ref name="region-content"/>
</rng:element>
</rng:define>
<rng:define name="style-region-left">
<rng:element name="style:region-left">
<rng:ref name="region-content"/>
</rng:element>
</rng:define>
<rng:define name="style-region-right">
<rng:element name="style:region-right">
<rng:ref name="region-content"/>
</rng:element>
</rng:define>
<rng:define name="style-ruby-properties">
<rng:element name="style:ruby-properties">
<rng:ref name="style-ruby-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-ruby-properties-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="style:ruby-position">
<rng:choice>
<rng:value>above</rng:value>
<rng:value>below</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:ruby-align">
<rng:choice>
<rng:value>left</rng:value>
<rng:value>center</rng:value>
<rng:value>right</rng:value>
<rng:value>distribute-letter</rng:value>
<rng:value>distribute-space</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-ruby-properties-content-strict">
<rng:ref name="style-ruby-properties-attlist"/>
<rng:ref name="style-ruby-properties-elements"/>
</rng:define>
<rng:define name="style-ruby-properties-elements">
<rng:empty/>
</rng:define>
<rng:define name="style-section-properties">
<rng:element name="style:section-properties">
<rng:ref name="style-section-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-section-properties-attlist">
<rng:interleave>
<rng:ref name="common-background-color-attlist"/>
<rng:ref name="common-horizontal-margin-attlist"/>
<rng:optional>
<rng:attribute name="style:protect">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-editable-attlist"/>
<rng:optional>
<rng:attribute name="text:dont-balance-text-columns">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-writing-mode-attlist"/>
</rng:interleave>
</rng:define>
<rng:define name="style-section-properties-content-strict">
<rng:ref name="style-section-properties-attlist"/>
<rng:ref name="style-section-properties-elements"/>
</rng:define>
<rng:define name="style-section-properties-elements">
<rng:interleave>
<rng:ref name="style-background-image"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4125 -->
<rng:ref name="style-background-fill"/>
<rng:ref name="style-columns"/>
<rng:zeroOrMore>
<rng:ref name="text-notes-configuration"/>
</rng:zeroOrMore>
</rng:interleave>
</rng:define>
<rng:define name="style-style">
<rng:element name="style:style">
<rng:ref name="style-style-attlist"/>
<rng:ref name="style-style-content"/>
<rng:zeroOrMore>
<rng:ref name="style-map"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="style-style-attlist">
<rng:interleave>
<rng:attribute name="style:name">
<rng:ref name="styleName"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="style:display-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:parent-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:next-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:list-level">
<rng:choice>
<rng:ref name="positiveInteger"/>
<rng:empty/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:list-style-name">
<rng:choice>
<rng:ref name="styleName"/>
<rng:empty/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:master-page-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:auto-update">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:data-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:percentage-data-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:class">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:default-outline-level">
<rng:choice>
<rng:ref name="positiveInteger"/>
<rng:empty/>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-style-content">
<rng:choice>
<rng:group>
<rng:attribute name="style:family">
<rng:value>text</rng:value>
</rng:attribute>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
</rng:group>
<rng:group>
<rng:attribute name="style:family">
<rng:value>paragraph</rng:value>
</rng:attribute>
<rng:optional>
<rng:ref name="style-paragraph-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
</rng:group>
<rng:group>
<rng:attribute name="style:family">
<rng:value>section</rng:value>
</rng:attribute>
<rng:optional>
<rng:ref name="style-section-properties"/>
</rng:optional>
</rng:group>
<rng:group>
<rng:attribute name="style:family">
<rng:value>ruby</rng:value>
</rng:attribute>
<rng:optional>
<rng:ref name="style-ruby-properties"/>
</rng:optional>
</rng:group>
<rng:group>
<rng:attribute name="style:family">
<rng:value>table</rng:value>
</rng:attribute>
<rng:optional>
<rng:ref name="style-table-properties"/>
</rng:optional>
</rng:group>
<rng:group>
<rng:attribute name="style:family">
<rng:value>table-column</rng:value>
</rng:attribute>
<rng:optional>
<rng:ref name="style-table-column-properties"/>
</rng:optional>
</rng:group>
<rng:group>
<rng:attribute name="style:family">
<rng:value>table-row</rng:value>
</rng:attribute>
<rng:optional>
<rng:ref name="style-table-row-properties"/>
</rng:optional>
</rng:group>
<rng:group>
<rng:attribute name="style:family">
<rng:value>table-cell</rng:value>
</rng:attribute>
<rng:optional>
<rng:ref name="style-table-cell-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-paragraph-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
</rng:group>
<rng:group>
<rng:attribute name="style:family">
<rng:choice>
<rng:value>graphic</rng:value>
<rng:value>presentation</rng:value>
</rng:choice>
</rng:attribute>
<rng:optional>
<rng:ref name="style-graphic-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-paragraph-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
</rng:group>
<rng:group>
<rng:attribute name="style:family">
<rng:value>drawing-page</rng:value>
</rng:attribute>
<rng:optional>
<rng:ref name="style-drawing-page-properties"/>
</rng:optional>
</rng:group>
<rng:group>
<rng:attribute name="style:family">
<rng:value>chart</rng:value>
</rng:attribute>
<rng:optional>
<rng:ref name="style-chart-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-graphic-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-paragraph-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
</rng:group>
</rng:choice>
</rng:define>
<rng:define name="style-tab-stop">
<rng:element name="style:tab-stop">
<rng:ref name="style-tab-stop-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="style-tab-stop-attlist">
<rng:interleave>
<rng:attribute name="style:position">
<rng:ref name="length"/>
</rng:attribute>
<rng:choice>
<rng:optional>
<rng:attribute name="style:type">
<rng:choice>
<rng:value>left</rng:value>
<rng:value>center</rng:value>
<rng:value>right</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:group>
<rng:attribute name="style:type">
<rng:value>char</rng:value>
</rng:attribute>
<rng:ref name="style-tab-stop-char-attlist"/>
</rng:group>
</rng:choice>
<rng:optional>
<rng:attribute name="style:leader-type">
<rng:ref name="lineType"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:leader-style">
<rng:ref name="lineStyle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:leader-width">
<rng:ref name="lineWidth"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:leader-color">
<rng:choice>
<rng:value>font-color</rng:value>
<rng:ref name="color"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:leader-text">
<rng:ref name="character"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:leader-text-style">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-tab-stop-char-attlist">
<rng:attribute name="style:char">
<rng:ref name="character"/>
</rng:attribute>
</rng:define>
<rng:define name="style-tab-stops">
<rng:optional>
<rng:element name="style:tab-stops">
<rng:zeroOrMore>
<rng:ref name="style-tab-stop"/>
</rng:zeroOrMore>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="style-table-cell-properties">
<rng:element name="style:table-cell-properties">
<rng:ref name="style-table-cell-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-table-cell-properties-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="style:vertical-align">
<rng:choice>
<rng:value>top</rng:value>
<rng:value>middle</rng:value>
<rng:value>bottom</rng:value>
<rng:value>automatic</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-align-source">
<rng:choice>
<rng:value>fix</rng:value>
<rng:value>value-type</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="common-style-direction-attlist"/>
<rng:optional>
<rng:attribute name="style:glyph-orientation-vertical">
<rng:choice>
<rng:value>auto</rng:value>
<rng:value>0</rng:value>
<rng:value>0deg</rng:value>
<rng:value>0rad</rng:value>
<rng:value>0grad</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="common-writing-mode-attlist"/>
<rng:ref name="common-shadow-attlist"/>
<rng:ref name="common-background-color-attlist"/>
<rng:ref name="common-border-attlist"/>
<rng:optional>
<rng:attribute name="style:diagonal-tl-br">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:diagonal-tl-br-widths">
<rng:ref name="borderWidths"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:diagonal-bl-tr">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:diagonal-bl-tr-widths">
<rng:ref name="borderWidths"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-border-line-width-attlist"/>
<rng:ref name="common-padding-attlist"/>
<rng:optional>
<rng:attribute name="fo:wrap-option">
<rng:choice>
<rng:value>no-wrap</rng:value>
<rng:value>wrap</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="common-rotation-angle-attlist"/>
<rng:optional>
<rng:attribute name="style:rotation-align">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>bottom</rng:value>
<rng:value>top</rng:value>
<rng:value>center</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:cell-protect">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>hidden-and-protected</rng:value>
<rng:list>
<rng:oneOrMore>
<rng:choice>
<rng:value>protected</rng:value>
<rng:value>formula-hidden</rng:value>
</rng:choice>
</rng:oneOrMore>
</rng:list>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:print-content">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:decimal-places">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:repeat-content">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:shrink-to-fit">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-table-cell-properties-content-strict">
<rng:ref name="style-table-cell-properties-attlist"/>
<rng:ref name="style-table-cell-properties-elements"/>
</rng:define>
<rng:define name="style-table-cell-properties-elements">
<rng:ref name="style-background-image"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4125 -->
<rng:ref name="style-background-fill"/>
</rng:define>
<rng:define name="style-table-column-properties">
<rng:element name="style:table-column-properties">
<rng:ref name="style-table-column-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-table-column-properties-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="style:column-width">
<rng:ref name="positiveLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:rel-column-width">
<rng:ref name="relativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:use-optimal-column-width">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-break-attlist"/>
</rng:interleave>
</rng:define>
<rng:define name="style-table-column-properties-content-strict">
<rng:ref name="style-table-column-properties-attlist"/>
<rng:ref name="style-table-column-properties-elements"/>
</rng:define>
<rng:define name="style-table-column-properties-elements">
<rng:empty/>
</rng:define>
<rng:define name="style-table-properties">
<rng:element name="style:table-properties">
<rng:ref name="style-table-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-table-properties-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="style:width">
<rng:ref name="positiveLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:rel-width">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:align">
<rng:choice>
<rng:value>left</rng:value>
<rng:value>center</rng:value>
<rng:value>right</rng:value>
<rng:value>margins</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="common-horizontal-margin-attlist"/>
<rng:ref name="common-vertical-margin-attlist"/>
<rng:ref name="common-margin-attlist"/>
<rng:ref name="common-page-number-attlist"/>
<rng:ref name="common-break-attlist"/>
<rng:ref name="common-background-color-attlist"/>
<rng:ref name="common-shadow-attlist"/>
<rng:ref name="common-keep-with-next-attlist"/>
<rng:optional>
<rng:attribute name="style:may-break-between-rows">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:border-model">
<rng:choice>
<rng:value>collapsing</rng:value>
<rng:value>separating</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="common-writing-mode-attlist"/>
<rng:optional>
<rng:attribute name="table:display">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:tab-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-2173 -->
</rng:interleave>
</rng:define>
<rng:define name="style-table-properties-content-strict">
<rng:ref name="style-table-properties-attlist"/>
<rng:ref name="style-table-properties-elements"/>
</rng:define>
<rng:define name="style-table-properties-elements">
<rng:ref name="style-background-image"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4125 -->
<rng:ref name="style-background-fill"/>
</rng:define>
<rng:define name="style-table-row-properties">
<rng:element name="style:table-row-properties">
<rng:ref name="style-table-row-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-table-row-properties-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="style:row-height">
<rng:ref name="positiveLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:min-row-height">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:use-optimal-row-height">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-background-color-attlist"/>
<rng:ref name="common-break-attlist"/>
<rng:optional>
<rng:attribute name="fo:keep-together">
<rng:choice>
<rng:value>auto</rng:value>
<rng:value>always</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-table-row-properties-content-strict">
<rng:ref name="style-table-row-properties-attlist"/>
<rng:ref name="style-table-row-properties-elements"/>
</rng:define>
<rng:define name="style-table-row-properties-elements">
<rng:ref name="style-background-image"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4125 -->
<rng:ref name="style-background-fill"/>
</rng:define>
<rng:define name="style-text-properties">
<rng:element name="style:text-properties">
<rng:ref name="style-text-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-text-properties-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="fo:font-variant">
<rng:ref name="fontVariant"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:text-transform">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>lowercase</rng:value>
<rng:value>uppercase</rng:value>
<rng:value>capitalize</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:use-window-font-color">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-outline">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-line-through-type">
<rng:ref name="lineType"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-line-through-style">
<rng:ref name="lineStyle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-line-through-width">
<rng:ref name="lineWidth"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-line-through-color">
<rng:choice>
<rng:value>font-color</rng:value>
<rng:ref name="color"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-line-through-text">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-line-through-text-style">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-position">
<rng:list>
<rng:choice>
<rng:ref name="percent"/>
<rng:value>super</rng:value>
<rng:value>sub</rng:value>
</rng:choice>
<rng:optional>
<rng:ref name="percent"/>
</rng:optional>
</rng:list>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-name-asian">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-name-complex">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:font-family">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-family-asian">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-family-complex">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-family-generic">
<rng:ref name="fontFamilyGeneric"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-family-generic-asian">
<rng:ref name="fontFamilyGeneric"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-family-generic-complex">
<rng:ref name="fontFamilyGeneric"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-style-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-style-name-asian">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-style-name-complex">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-pitch">
<rng:ref name="fontPitch"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-pitch-asian">
<rng:ref name="fontPitch"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-pitch-complex">
<rng:ref name="fontPitch"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-charset">
<rng:ref name="textEncoding"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-charset-asian">
<rng:ref name="textEncoding"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-charset-complex">
<rng:ref name="textEncoding"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:font-size">
<rng:choice>
<rng:ref name="positiveLength"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-size-asian">
<rng:choice>
<rng:ref name="positiveLength"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-size-complex">
<rng:choice>
<rng:ref name="positiveLength"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-size-rel">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-size-rel-asian">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-size-rel-complex">
<rng:ref name="length"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:script-type">
<rng:choice>
<rng:value>latin</rng:value>
<rng:value>asian</rng:value>
<rng:value>complex</rng:value>
<rng:value>ignore</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:letter-spacing">
<rng:choice>
<rng:ref name="length"/>
<rng:value>normal</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:language">
<rng:ref name="languageCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:language-asian">
<rng:ref name="languageCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:language-complex">
<rng:ref name="languageCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:country">
<rng:ref name="countryCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:country-asian">
<rng:ref name="countryCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:country-complex">
<rng:ref name="countryCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:script">
<rng:ref name="scriptCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:script-asian">
<rng:ref name="scriptCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:script-complex">
<rng:ref name="scriptCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:rfc-language-tag">
<rng:ref name="language"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:rfc-language-tag-asian">
<rng:ref name="language"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:rfc-language-tag-complex">
<rng:ref name="language"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:font-style">
<rng:ref name="fontStyle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-style-asian">
<rng:ref name="fontStyle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-style-complex">
<rng:ref name="fontStyle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-relief">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>embossed</rng:value>
<rng:value>engraved</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:text-shadow">
<rng:ref name="shadowType"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-underline-type">
<rng:ref name="lineType"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-underline-style">
<rng:ref name="lineStyle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-underline-width">
<rng:ref name="lineWidth"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-underline-color">
<rng:choice>
<rng:value>font-color</rng:value>
<rng:ref name="color"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-overline-type">
<rng:ref name="lineType"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-overline-style">
<rng:ref name="lineStyle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-overline-width">
<rng:ref name="lineWidth"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-overline-color">
<rng:choice>
<rng:value>font-color</rng:value>
<rng:ref name="color"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-overline-mode">
<rng:ref name="lineMode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:font-weight">
<rng:ref name="fontWeight"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-weight-asian">
<rng:ref name="fontWeight"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-weight-complex">
<rng:ref name="fontWeight"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-underline-mode">
<rng:ref name="lineMode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-line-through-mode">
<rng:ref name="lineMode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:letter-kerning">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-blinking">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-background-color-attlist"/>
<rng:optional>
<rng:attribute name="style:text-combine">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>letters</rng:value>
<rng:value>lines</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-combine-start-char">
<rng:ref name="character"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-combine-end-char">
<rng:ref name="character"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-emphasize">
<rng:choice>
<rng:value>none</rng:value>
<rng:list>
<rng:choice>
<rng:value>none</rng:value>
<rng:value>accent</rng:value>
<rng:value>dot</rng:value>
<rng:value>circle</rng:value>
<rng:value>disc</rng:value>
</rng:choice>
<rng:choice>
<rng:value>above</rng:value>
<rng:value>below</rng:value>
</rng:choice>
</rng:list>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-scale">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-rotation-angle">
<rng:ref name="angle"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:text-rotation-scale">
<rng:choice>
<rng:value>fixed</rng:value>
<rng:value>line-height</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:hyphenate">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:hyphenation-remain-char-count">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:hyphenation-push-char-count">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:choice>
<rng:attribute name="text:display">
<rng:value>true</rng:value>
</rng:attribute>
<rng:attribute name="text:display">
<rng:value>none</rng:value>
</rng:attribute>
<rng:group>
<rng:attribute name="text:display">
<rng:value>condition</rng:value>
</rng:attribute>
<rng:attribute name="text:condition">
<rng:value>none</rng:value>
</rng:attribute>
</rng:group>
<rng:empty/>
</rng:choice>
</rng:interleave>
</rng:define>
<rng:define name="style-text-properties-content-strict">
<rng:ref name="style-text-properties-attlist"/>
<rng:ref name="style-text-properties-elements"/>
</rng:define>
<rng:define name="style-text-properties-elements">
<rng:empty/>
</rng:define>
<rng:define name="styleName">
<rng:data type="NCName"/>
</rng:define>
<rng:define name="styleNameRef">
<rng:choice>
<rng:data type="NCName"/>
<rng:empty/>
</rng:choice>
</rng:define>
<rng:define name="styleNameRefs">
<rng:list>
<rng:zeroOrMore>
<rng:data type="NCName"/>
</rng:zeroOrMore>
</rng:list>
</rng:define>
<rng:define name="styles">
<rng:interleave>
<rng:zeroOrMore>
<rng:ref name="style-style"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="text-list-style"/>
</rng:zeroOrMore>
<!-- https://issues.oasis-open.org/browse/OFFICE-4108 -->
<rng:zeroOrMore>
<rng:ref name="number-num-list-format"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="number-number-style"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="number-currency-style"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="number-percentage-style"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="number-date-style"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="number-time-style"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="number-boolean-style"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="number-text-style"/>
</rng:zeroOrMore>
</rng:interleave>
</rng:define>
<rng:define name="svg-definition-src">
<rng:element name="svg:definition-src">
<rng:ref name="common-svg-font-face-xlink-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="svg-desc">
<rng:element name="svg:desc">
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="svg-font-face-format">
<rng:element name="svg:font-face-format">
<rng:optional>
<rng:attribute name="svg:string">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="svg-font-face-name">
<rng:element name="svg:font-face-name">
<rng:optional>
<rng:attribute name="svg:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="svg-font-face-src">
<rng:element name="svg:font-face-src">
<rng:oneOrMore>
<rng:choice>
<rng:ref name="svg-font-face-uri"/>
<rng:ref name="svg-font-face-name"/>
</rng:choice>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="svg-font-face-uri">
<rng:element name="svg:font-face-uri">
<rng:ref name="common-svg-font-face-xlink-attlist"/>
<rng:zeroOrMore>
<rng:ref name="svg-font-face-format"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="svg-linearGradient">
<rng:element name="svg:linearGradient">
<rng:ref name="common-svg-gradient-attlist"/>
<rng:optional>
<rng:attribute name="svg:x1">
<rng:choice>
<rng:ref name="coordinate"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:y1">
<rng:choice>
<rng:ref name="coordinate"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:x2">
<rng:choice>
<rng:ref name="coordinate"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:y2">
<rng:choice>
<rng:ref name="coordinate"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="svg-stop"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="svg-radialGradient">
<rng:element name="svg:radialGradient">
<rng:ref name="common-svg-gradient-attlist"/>
<rng:optional>
<rng:attribute name="svg:cx">
<rng:choice>
<rng:ref name="coordinate"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:cy">
<rng:choice>
<rng:ref name="coordinate"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:r">
<rng:choice>
<rng:ref name="coordinate"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:fx">
<rng:choice>
<rng:ref name="coordinate"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:fy">
<rng:choice>
<rng:ref name="coordinate"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="svg-stop"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="svg-stop">
<rng:element name="svg:stop">
<rng:attribute name="svg:offset">
<rng:choice>
<rng:ref name="double"/>
<rng:ref name="percent"/>
</rng:choice>
</rng:attribute>
<rng:optional>
<rng:attribute name="svg:stop-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="svg:stop-opacity">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="svg-title">
<rng:element name="svg:title">
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="tab-cycles">
<rng:choice>
<rng:value>records</rng:value>
<rng:value>current</rng:value>
<rng:value>page</rng:value>
</rng:choice>
</rng:define>
<rng:define name="table-background">
<rng:element name="table:background">
<rng:ref name="table-background-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-background-attlist">
<rng:attribute name="table:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:define>
<rng:define name="table-body">
<rng:element name="table:body">
<rng:ref name="common-table-template-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-calculation-setting-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:case-sensitive">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:precision-as-shown">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:search-criteria-must-apply-to-whole-cell">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:automatic-find-labels">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:use-regular-expressions">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:use-wildcards">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:null-year">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-calculation-settings">
<rng:element name="table:calculation-settings">
<rng:ref name="table-calculation-setting-attlist"/>
<rng:optional>
<rng:ref name="table-null-date"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-iteration"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-cell-address">
<rng:element name="table:cell-address">
<rng:ref name="common-table-cell-address-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-cell-content-change">
<rng:element name="table:cell-content-change">
<rng:ref name="common-table-change-attlist"/>
<rng:ref name="table-cell-address"/>
<rng:ref name="office-change-info"/>
<rng:optional>
<rng:ref name="table-dependencies"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-deletions"/>
</rng:optional>
<rng:ref name="table-previous"/>
</rng:element>
</rng:define>
<rng:define name="table-cell-content-deletion">
<rng:element name="table:cell-content-deletion">
<rng:optional>
<rng:attribute name="table:id">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="table-cell-address"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-change-track-table-cell"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-cell-range-source">
<rng:element name="table:cell-range-source">
<rng:ref name="table-table-cell-range-source-attlist"/>
<rng:ref name="table-linked-source-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-change-deletion">
<rng:element name="table:change-deletion">
<rng:optional>
<rng:attribute name="table:id">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-change-track-table-cell">
<rng:element name="table:change-track-table-cell">
<rng:ref name="table-change-track-table-cell-attlist"/>
<rng:zeroOrMore>
<rng:ref name="text-p"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-change-track-table-cell-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:cell-address">
<rng:ref name="cellAddress"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:matrix-covered">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:formula">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:number-matrix-columns-spanned">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:number-matrix-rows-spanned">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="common-value-and-type-attlist"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-columns">
<rng:choice>
<rng:ref name="table-table-columns"/>
<rng:oneOrMore>
<rng:ref name="table-table-column"/>
</rng:oneOrMore>
</rng:choice>
</rng:define>
<rng:define name="table-columns-and-groups">
<rng:oneOrMore>
<rng:choice>
<rng:ref name="table-table-column-group"/>
<rng:ref name="table-columns-no-group"/>
</rng:choice>
</rng:oneOrMore>
</rng:define>
<rng:define name="table-columns-no-group">
<rng:choice>
<rng:group>
<rng:ref name="table-columns"/>
<rng:optional>
<rng:ref name="table-table-header-columns"/>
<rng:optional>
<rng:ref name="table-columns"/>
</rng:optional>
</rng:optional>
</rng:group>
<rng:group>
<rng:ref name="table-table-header-columns"/>
<rng:optional>
<rng:ref name="table-columns"/>
</rng:optional>
</rng:group>
</rng:choice>
</rng:define>
<rng:define name="table-consolidation">
<rng:element name="table:consolidation">
<rng:ref name="table-consolidation-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-consolidation-attlist">
<rng:interleave>
<rng:attribute name="table:function">
<rng:choice>
<rng:value>average</rng:value>
<rng:value>count</rng:value>
<rng:value>countnums</rng:value>
<rng:value>max</rng:value>
<rng:value>min</rng:value>
<rng:value>product</rng:value>
<rng:value>stdev</rng:value>
<rng:value>stdevp</rng:value>
<rng:value>sum</rng:value>
<rng:value>var</rng:value>
<rng:value>varp</rng:value>
<rng:ref name="string"/>
</rng:choice>
</rng:attribute>
<rng:attribute name="table:source-cell-range-addresses">
<rng:ref name="cellRangeAddressList"/>
</rng:attribute>
<rng:attribute name="table:target-cell-address">
<rng:ref name="cellAddress"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:use-labels">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>row</rng:value>
<rng:value>column</rng:value>
<rng:value>both</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:link-to-source-data">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-content-validation">
<rng:element name="table:content-validation">
<rng:ref name="table-validation-attlist"/>
<rng:optional>
<rng:ref name="table-help-message"/>
</rng:optional>
<rng:optional>
<rng:choice>
<rng:ref name="table-error-message"/>
<rng:group>
<rng:ref name="table-error-macro"/>
<rng:ref name="office-event-listeners"/>
</rng:group>
</rng:choice>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-content-validations">
<rng:element name="table:content-validations">
<rng:oneOrMore>
<rng:ref name="table-content-validation"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-covered-table-cell">
<rng:element name="table:covered-table-cell">
<rng:ref name="table-table-cell-attlist"/>
<rng:ref name="table-table-cell-content"/>
</rng:element>
</rng:define>
<rng:define name="table-cut-offs">
<rng:element name="table:cut-offs">
<rng:choice>
<rng:oneOrMore>
<rng:ref name="table-movement-cut-off"/>
</rng:oneOrMore>
<rng:group>
<rng:ref name="table-insertion-cut-off"/>
<rng:zeroOrMore>
<rng:ref name="table-movement-cut-off"/>
</rng:zeroOrMore>
</rng:group>
</rng:choice>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-display-info">
<rng:element name="table:data-pilot-display-info">
<rng:ref name="table-data-pilot-display-info-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-display-info-attlist">
<rng:interleave>
<rng:attribute name="table:enabled">
<rng:ref name="boolean"/>
</rng:attribute>
<rng:attribute name="table:data-field">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="table:member-count">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
<rng:attribute name="table:display-member-mode">
<rng:choice>
<rng:value>from-top</rng:value>
<rng:value>from-bottom</rng:value>
</rng:choice>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="table-data-pilot-field">
<rng:element name="table:data-pilot-field">
<rng:ref name="table-data-pilot-field-attlist"/>
<rng:optional>
<rng:ref name="table-data-pilot-level"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-data-pilot-field-reference"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-data-pilot-groups"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-field-attlist">
<rng:interleave>
<rng:attribute name="table:source-field-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:choice>
<rng:attribute name="table:orientation">
<rng:choice>
<rng:value>row</rng:value>
<rng:value>column</rng:value>
<rng:value>data</rng:value>
<rng:value>hidden</rng:value>
</rng:choice>
</rng:attribute>
<rng:group>
<rng:attribute name="table:orientation">
<rng:value>page</rng:value>
</rng:attribute>
<rng:attribute name="table:selected-page">
<rng:ref name="string"/>
</rng:attribute>
</rng:group>
</rng:choice>
<rng:optional>
<rng:attribute name="table:is-data-layout-field">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:function">
<rng:choice>
<rng:value>auto</rng:value>
<rng:value>average</rng:value>
<rng:value>count</rng:value>
<rng:value>countnums</rng:value>
<rng:value>max</rng:value>
<rng:value>min</rng:value>
<rng:value>product</rng:value>
<rng:value>stdev</rng:value>
<rng:value>stdevp</rng:value>
<rng:value>sum</rng:value>
<rng:value>var</rng:value>
<rng:value>varp</rng:value>
<rng:ref name="string"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:used-hierarchy">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-data-pilot-field-reference">
<rng:element name="table:data-pilot-field-reference">
<rng:ref name="table-data-pilot-field-reference-attlist"/>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-field-reference-attlist">
<rng:interleave>
<rng:attribute name="table:field-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:choice>
<rng:group>
<rng:attribute name="table:member-type">
<rng:value>named</rng:value>
</rng:attribute>
<rng:attribute name="table:member-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:group>
<rng:attribute name="table:member-type">
<rng:choice>
<rng:value>previous</rng:value>
<rng:value>next</rng:value>
</rng:choice>
</rng:attribute>
</rng:choice>
<rng:attribute name="table:type">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>member-difference</rng:value>
<rng:value>member-percentage</rng:value>
<rng:value>member-percentage-difference</rng:value>
<rng:value>running-total</rng:value>
<rng:value>row-percentage</rng:value>
<rng:value>column-percentage</rng:value>
<rng:value>total-percentage</rng:value>
<rng:value>index</rng:value>
</rng:choice>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="table-data-pilot-group">
<rng:element name="table:data-pilot-group">
<rng:ref name="table-data-pilot-group-attlist"/>
<rng:oneOrMore>
<rng:ref name="table-data-pilot-group-member"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-group-attlist">
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="table-data-pilot-group-member">
<rng:element name="table:data-pilot-group-member">
<rng:ref name="table-data-pilot-group-member-attlist"/>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-group-member-attlist">
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="table-data-pilot-groups">
<rng:element name="table:data-pilot-groups">
<rng:ref name="table-data-pilot-groups-attlist"/>
<rng:oneOrMore>
<rng:ref name="table-data-pilot-group"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-groups-attlist">
<rng:interleave>
<rng:attribute name="table:source-field-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:choice>
<rng:attribute name="table:date-start">
<rng:choice>
<rng:ref name="dateOrDateTime"/>
<rng:value>auto</rng:value>
</rng:choice>
</rng:attribute>
<rng:attribute name="table:start">
<rng:choice>
<rng:ref name="double"/>
<rng:value>auto</rng:value>
</rng:choice>
</rng:attribute>
</rng:choice>
</rng:optional>
<rng:optional>
<rng:choice>
<rng:attribute name="table:date-end">
<rng:choice>
<rng:ref name="dateOrDateTime"/>
<rng:value>auto</rng:value>
</rng:choice>
</rng:attribute>
<rng:attribute name="table:end">
<rng:choice>
<rng:ref name="double"/>
<rng:value>auto</rng:value>
</rng:choice>
</rng:attribute>
</rng:choice>
</rng:optional>
<rng:optional>
<rng:attribute name="table:step">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:grouped-by">
<rng:choice>
<rng:value>seconds</rng:value>
<rng:value>minutes</rng:value>
<rng:value>hours</rng:value>
<rng:value>days</rng:value>
<rng:value>months</rng:value>
<rng:value>quarters</rng:value>
<rng:value>years</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-2118 -->
<rng:define name="table-data-pilot-layout-info">
<rng:element name="table:data-pilot-layout-info">
<rng:ref name="table-data-pilot-layout-info-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-layout-info-attlist">
<rng:interleave>
<rng:attribute name="table:layout-mode">
<rng:choice>
<rng:value>tabular-layout</rng:value>
<rng:value>outline-subtotals-top</rng:value>
<rng:value>outline-subtotals-bottom</rng:value>
</rng:choice>
</rng:attribute>
<rng:attribute name="table:add-empty-lines">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="table-data-pilot-level">
<rng:element name="table:data-pilot-level">
<rng:ref name="table-data-pilot-level-attlist"/>
<rng:optional>
<rng:ref name="table-data-pilot-subtotals"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-data-pilot-members"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-data-pilot-display-info"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-data-pilot-sort-info"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-data-pilot-layout-info"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-level-attlist">
<rng:optional>
<rng:attribute name="table:show-empty">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="table-data-pilot-member">
<rng:element name="table:data-pilot-member">
<rng:ref name="table-data-pilot-member-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-member-attlist">
<rng:interleave>
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:display">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:show-details">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-data-pilot-members">
<rng:element name="table:data-pilot-members">
<rng:zeroOrMore>
<rng:ref name="table-data-pilot-member"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-sort-info">
<rng:element name="table:data-pilot-sort-info">
<rng:ref name="table-data-pilot-sort-info-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-sort-info-attlist">
<rng:interleave>
<rng:choice>
<rng:group>
<rng:attribute name="table:sort-mode">
<rng:value>data</rng:value>
</rng:attribute>
<rng:attribute name="table:data-field">
<rng:ref name="string"/>
</rng:attribute>
</rng:group>
<rng:attribute name="table:sort-mode">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>manual</rng:value>
<rng:value>name</rng:value>
</rng:choice>
</rng:attribute>
</rng:choice>
<rng:attribute name="table:order">
<rng:choice>
<rng:value>ascending</rng:value>
<rng:value>descending</rng:value>
</rng:choice>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="table-data-pilot-subtotal">
<rng:element name="table:data-pilot-subtotal">
<rng:ref name="table-data-pilot-subtotal-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-subtotal-attlist">
<rng:attribute name="table:function">
<rng:choice>
<rng:value>auto</rng:value>
<rng:value>average</rng:value>
<rng:value>count</rng:value>
<rng:value>countnums</rng:value>
<rng:value>max</rng:value>
<rng:value>min</rng:value>
<rng:value>product</rng:value>
<rng:value>stdev</rng:value>
<rng:value>stdevp</rng:value>
<rng:value>sum</rng:value>
<rng:value>var</rng:value>
<rng:value>varp</rng:value>
<rng:ref name="string"/>
</rng:choice>
</rng:attribute>
</rng:define>
<rng:define name="table-data-pilot-subtotals">
<rng:element name="table:data-pilot-subtotals">
<rng:zeroOrMore>
<rng:ref name="table-data-pilot-subtotal"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-table">
<rng:element name="table:data-pilot-table">
<rng:ref name="table-data-pilot-table-attlist"/>
<rng:optional>
<rng:choice>
<rng:ref name="table-database-source-sql"/>
<rng:ref name="table-database-source-table"/>
<rng:ref name="table-database-source-query"/>
<rng:ref name="table-source-service"/>
<rng:ref name="table-source-cell-range"/>
</rng:choice>
</rng:optional>
<rng:oneOrMore>
<rng:ref name="table-data-pilot-field"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-table-attlist">
<rng:interleave>
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:application-data">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:grand-total">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>row</rng:value>
<rng:value>column</rng:value>
<rng:value>both</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:ignore-empty-rows">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:identify-categories">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="table:target-range-address">
<rng:ref name="cellRangeAddress"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:buttons">
<rng:ref name="cellRangeAddressList"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:show-filter-button">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:drill-down-on-double-click">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-data-pilot-tables">
<rng:element name="table:data-pilot-tables">
<rng:zeroOrMore>
<rng:ref name="table-data-pilot-table"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-database-range">
<rng:element name="table:database-range">
<rng:ref name="table-database-range-attlist"/>
<rng:optional>
<rng:choice>
<rng:ref name="table-database-source-sql"/>
<rng:ref name="table-database-source-table"/>
<rng:ref name="table-database-source-query"/>
</rng:choice>
</rng:optional>
<rng:optional>
<rng:ref name="table-filter"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-sort"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-subtotal-rules"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-database-range-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:is-selection">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:on-update-keep-styles">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:on-update-keep-size">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:has-persistent-data">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:orientation">
<rng:choice>
<rng:value>column</rng:value>
<rng:value>row</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:contains-header">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:display-filter-buttons">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="table:target-range-address">
<rng:ref name="cellRangeAddress"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:refresh-delay">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-database-ranges">
<rng:element name="table:database-ranges">
<rng:zeroOrMore>
<rng:ref name="table-database-range"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-database-source-query">
<rng:element name="table:database-source-table">
<rng:ref name="table-database-source-table-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-database-source-query-attlist">
<rng:interleave>
<rng:attribute name="table:database-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="table:query-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="table-database-source-sql">
<rng:element name="table:database-source-sql">
<rng:ref name="table-database-source-sql-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-database-source-sql-attlist">
<rng:interleave>
<rng:attribute name="table:database-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="table:sql-statement">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:parse-sql-statement">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-database-source-table">
<rng:element name="table:database-source-query">
<rng:ref name="table-database-source-query-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-database-source-table-attlist">
<rng:interleave>
<rng:attribute name="table:database-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="table:database-table-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="table-dde-link">
<rng:element name="table:dde-link">
<rng:ref name="office-dde-source"/>
<rng:ref name="table-table"/>
</rng:element>
</rng:define>
<rng:define name="table-dde-links">
<rng:element name="table:dde-links">
<rng:oneOrMore>
<rng:ref name="table-dde-link"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-decls">
<rng:optional>
<rng:ref name="table-calculation-settings"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-content-validations"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-label-ranges"/>
</rng:optional>
</rng:define>
<rng:define name="table-deletion">
<rng:element name="table:deletion">
<rng:ref name="table-deletion-attlist"/>
<rng:ref name="common-table-change-attlist"/>
<rng:ref name="office-change-info"/>
<rng:optional>
<rng:ref name="table-dependencies"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-deletions"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-cut-offs"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-deletion-attlist">
<rng:interleave>
<rng:attribute name="table:type">
<rng:choice>
<rng:value>row</rng:value>
<rng:value>column</rng:value>
<rng:value>table</rng:value>
</rng:choice>
</rng:attribute>
<rng:attribute name="table:position">
<rng:ref name="integer"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:table">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:multi-deletion-spanned">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-deletions">
<rng:element name="table:deletions">
<rng:oneOrMore>
<rng:choice>
<rng:ref name="table-cell-content-deletion"/>
<rng:ref name="table-change-deletion"/>
</rng:choice>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-dependencies">
<rng:element name="table:dependencies">
<rng:oneOrMore>
<rng:ref name="table-dependency"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-dependency">
<rng:element name="table:dependency">
<rng:attribute name="table:id">
<rng:ref name="string"/>
</rng:attribute>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-desc">
<rng:element name="table:desc">
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="table-detective">
<rng:element name="table:detective">
<rng:zeroOrMore>
<rng:ref name="table-highlighted-range"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="table-operation"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-error-macro">
<rng:element name="table:error-macro">
<rng:optional>
<rng:attribute name="table:execute">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-error-message">
<rng:element name="table:error-message">
<rng:optional>
<rng:attribute name="table:title">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:display">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:message-type">
<rng:choice>
<rng:value>stop</rng:value>
<rng:value>warning</rng:value>
<rng:value>information</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="text-p"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-even-columns">
<rng:element name="table:even-columns">
<rng:ref name="common-table-template-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-even-rows">
<rng:element name="table:even-rows">
<rng:ref name="common-table-template-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-filter">
<rng:element name="table:filter">
<rng:ref name="table-filter-attlist"/>
<rng:choice>
<rng:ref name="table-filter-condition"/>
<rng:ref name="table-filter-and"/>
<rng:ref name="table-filter-or"/>
</rng:choice>
</rng:element>
</rng:define>
<rng:define name="table-filter-and">
<rng:element name="table:filter-and">
<rng:oneOrMore>
<rng:choice>
<rng:ref name="table-filter-or"/>
<rng:ref name="table-filter-condition"/>
</rng:choice>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-filter-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:target-range-address">
<rng:ref name="cellRangeAddress"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:condition-source">
<rng:choice>
<rng:value>self</rng:value>
<rng:value>cell-range</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:condition-source-range-address">
<rng:ref name="cellRangeAddress"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:display-duplicates">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-filter-condition">
<rng:element name="table:filter-condition">
<rng:ref name="table-filter-condition-attlist"/>
<rng:zeroOrMore>
<rng:ref name="table-filter-set-item"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-filter-condition-attlist">
<rng:interleave>
<rng:attribute name="table:field-number">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
<!-- https://issues.oasis-open.org/browse/OFFICE-4107
<rng:attribute name="table:value">
<rng:choice>
<rng:ref name="string"/>
<rng:ref name="double"/>
</rng:choice>
</rng:attribute>
-->
<rng:attribute name="table:operator">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:case-sensitive">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-4107
<rng:optional>
<rng:attribute name="table:data-type">
<rng:choice>
<rng:value>text</rng:value>
<rng:value>number</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
-->
<!-- https://issues.oasis-open.org/browse/OFFICE-4107 -->
<rng:choice>
<rng:group>
<rng:optional>
<rng:attribute name="table:data-type">
<rng:choice>
<rng:value>text</rng:value>
<rng:value>number</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:attribute name="table:value">
<rng:choice>
<rng:ref name="string"/>
<rng:ref name="double"/>
</rng:choice>
</rng:attribute>
</rng:group>
<rng:group>
<rng:attribute name="table:data-type">
<rng:choice>
<rng:value>text-color</rng:value>
<rng:value>data-style-color</rng:value>
</rng:choice>
</rng:attribute>
<rng:attribute name="table:value">
<rng:choice>
<rng:ref name="color"/>
<rng:value>window-font-color</rng:value>
</rng:choice>
</rng:attribute>
</rng:group>
<rng:group>
<rng:attribute name="table:data-type">
<rng:choice>
<rng:value>background-color</rng:value>
</rng:choice>
</rng:attribute>
<rng:attribute name="table:value">
<rng:choice>
<rng:ref name="color"/>
<rng:value>transparent</rng:value>
</rng:choice>
</rng:attribute>
</rng:group>
</rng:choice>
</rng:interleave>
</rng:define>
<rng:define name="table-filter-or">
<rng:element name="table:filter-or">
<rng:oneOrMore>
<rng:choice>
<rng:ref name="table-filter-and"/>
<rng:ref name="table-filter-condition"/>
</rng:choice>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-filter-set-item">
<rng:element name="table:filter-set-item">
<rng:attribute name="table:value">
<rng:ref name="string"/>
</rng:attribute>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-first-column">
<rng:element name="table:first-column">
<rng:ref name="common-table-template-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-first-row">
<rng:element name="table:first-row">
<rng:ref name="common-table-template-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-functions">
<rng:optional>
<rng:ref name="table-named-expressions"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-database-ranges"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-data-pilot-tables"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-consolidation"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-dde-links"/>
</rng:optional>
</rng:define>
<rng:define name="table-help-message">
<rng:element name="table:help-message">
<rng:optional>
<rng:attribute name="table:title">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:display">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="text-p"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-highlighted-range">
<rng:element name="table:highlighted-range">
<rng:choice>
<rng:group>
<rng:ref name="table-highlighted-range-attlist"/>
</rng:group>
<rng:group>
<rng:ref name="table-highlighted-range-attlist-invalid"/>
</rng:group>
</rng:choice>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-highlighted-range-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:cell-range-address">
<rng:ref name="cellRangeAddress"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="table:direction">
<rng:choice>
<rng:value>from-another-table</rng:value>
<rng:value>to-another-table</rng:value>
<rng:value>from-same-table</rng:value>
</rng:choice>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:contains-error">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-highlighted-range-attlist-invalid">
<rng:attribute name="table:marked-invalid">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:define>
<rng:define name="table-insertion">
<rng:element name="table:insertion">
<rng:ref name="table-insertion-attlist"/>
<rng:ref name="common-table-change-attlist"/>
<rng:ref name="office-change-info"/>
<rng:optional>
<rng:ref name="table-dependencies"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-deletions"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-insertion-attlist">
<rng:interleave>
<rng:attribute name="table:type">
<rng:choice>
<rng:value>row</rng:value>
<rng:value>column</rng:value>
<rng:value>table</rng:value>
</rng:choice>
</rng:attribute>
<rng:attribute name="table:position">
<rng:ref name="integer"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:count">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:table">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-insertion-cut-off">
<rng:element name="table:insertion-cut-off">
<rng:ref name="table-insertion-cut-off-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-insertion-cut-off-attlist">
<rng:interleave>
<rng:attribute name="table:id">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="table:position">
<rng:ref name="integer"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="table-iteration">
<rng:element name="table:iteration">
<rng:optional>
<rng:attribute name="table:status">
<rng:choice>
<rng:value>enable</rng:value>
<rng:value>disable</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:steps">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:maximum-difference">
<rng:ref name="double"/>
</rng:attribute>
</rng:optional>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-label-range">
<rng:element name="table:label-range">
<rng:ref name="table-label-range-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-label-range-attlist">
<rng:interleave>
<rng:attribute name="table:label-cell-range-address">
<rng:ref name="cellRangeAddress"/>
</rng:attribute>
<rng:attribute name="table:data-cell-range-address">
<rng:ref name="cellRangeAddress"/>
</rng:attribute>
<rng:attribute name="table:orientation">
<rng:choice>
<rng:value>column</rng:value>
<rng:value>row</rng:value>
</rng:choice>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="table-label-ranges">
<rng:element name="table:label-ranges">
<rng:zeroOrMore>
<rng:ref name="table-label-range"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-last-column">
<rng:element name="table:last-column">
<rng:ref name="common-table-template-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-last-row">
<rng:element name="table:last-row">
<rng:ref name="common-table-template-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-linked-source-attlist">
<rng:interleave>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:actuate">
<rng:value>onRequest</rng:value>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:filter-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:filter-options">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:refresh-delay">
<rng:ref name="duration"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-movement">
<rng:element name="table:movement">
<rng:ref name="common-table-change-attlist"/>
<rng:ref name="table-source-range-address"/>
<rng:ref name="table-target-range-address"/>
<rng:ref name="office-change-info"/>
<rng:optional>
<rng:ref name="table-dependencies"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-deletions"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-movement-cut-off">
<rng:element name="table:movement-cut-off">
<rng:ref name="table-movement-cut-off-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-movement-cut-off-attlist">
<rng:choice>
<rng:attribute name="table:position">
<rng:ref name="integer"/>
</rng:attribute>
<rng:group>
<rng:attribute name="table:start-position">
<rng:ref name="integer"/>
</rng:attribute>
<rng:attribute name="table:end-position">
<rng:ref name="integer"/>
</rng:attribute>
</rng:group>
</rng:choice>
</rng:define>
<rng:define name="table-named-expression">
<rng:element name="table:named-expression">
<rng:ref name="table-named-expression-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-named-expression-attlist">
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="table:expression">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:base-cell-address">
<rng:ref name="cellAddress"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="table-named-expressions">
<rng:element name="table:named-expressions">
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="table-named-range"/>
<rng:ref name="table-named-expression"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-named-range">
<rng:element name="table:named-range">
<rng:ref name="table-named-range-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-named-range-attlist">
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="table:cell-range-address">
<rng:ref name="cellRangeAddress"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:base-cell-address">
<rng:ref name="cellAddress"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:range-usable-as">
<rng:choice>
<rng:value>none</rng:value>
<rng:list>
<rng:oneOrMore>
<rng:choice>
<rng:value>print-range</rng:value>
<rng:value>filter</rng:value>
<rng:value>repeat-row</rng:value>
<rng:value>repeat-column</rng:value>
</rng:choice>
</rng:oneOrMore>
</rng:list>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="table-null-date">
<rng:element name="table:null-date">
<rng:optional>
<rng:attribute name="table:value-type">
<rng:value>date</rng:value>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:date-value">
<rng:ref name="date"/>
</rng:attribute>
</rng:optional>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-odd-columns">
<rng:element name="table:odd-columns">
<rng:ref name="common-table-template-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-odd-rows">
<rng:element name="table:odd-rows">
<rng:ref name="common-table-template-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-operation">
<rng:element name="table:operation">
<rng:ref name="table-operation-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-operation-attlist">
<rng:interleave>
<rng:attribute name="table:name">
<rng:choice>
<rng:value>trace-dependents</rng:value>
<rng:value>remove-dependents</rng:value>
<rng:value>trace-precedents</rng:value>
<rng:value>remove-precedents</rng:value>
<rng:value>trace-errors</rng:value>
</rng:choice>
</rng:attribute>
<rng:attribute name="table:index">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="table-previous">
<rng:element name="table:previous">
<rng:optional>
<rng:attribute name="table:id">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:ref name="table-change-track-table-cell"/>
</rng:element>
</rng:define>
<rng:define name="table-rows">
<rng:choice>
<rng:ref name="table-table-rows"/>
<rng:oneOrMore>
<rng:optional>
<rng:ref name="text-soft-page-break"/>
</rng:optional>
<rng:ref name="table-table-row"/>
</rng:oneOrMore>
</rng:choice>
</rng:define>
<rng:define name="table-rows-and-groups">
<rng:oneOrMore>
<rng:choice>
<rng:ref name="table-table-row-group"/>
<rng:ref name="table-rows-no-group"/>
</rng:choice>
</rng:oneOrMore>
</rng:define>
<rng:define name="table-rows-no-group">
<rng:choice>
<rng:group>
<rng:ref name="table-rows"/>
<rng:optional>
<rng:ref name="table-table-header-rows"/>
<rng:optional>
<rng:ref name="table-rows"/>
</rng:optional>
</rng:optional>
</rng:group>
<rng:group>
<rng:ref name="table-table-header-rows"/>
<rng:optional>
<rng:ref name="table-rows"/>
</rng:optional>
</rng:group>
</rng:choice>
</rng:define>
<rng:define name="table-scenario">
<rng:element name="table:scenario">
<rng:ref name="table-scenario-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-scenario-attlist">
<rng:interleave>
<rng:attribute name="table:scenario-ranges">
<rng:ref name="cellRangeAddressList"/>
</rng:attribute>
<rng:attribute name="table:is-active">
<rng:ref name="boolean"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:display-border">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:border-color">
<rng:ref name="color"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:copy-back">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:copy-styles">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:copy-formulas">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:comment">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:protected">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-shapes">
<rng:element name="table:shapes">
<rng:oneOrMore>
<rng:ref name="shape"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-sort">
<rng:element name="table:sort">
<rng:ref name="table-sort-attlist"/>
<rng:oneOrMore>
<rng:ref name="table-sort-by"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-sort-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:bind-styles-to-content">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:target-range-address">
<rng:ref name="cellRangeAddress"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:case-sensitive">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:language">
<rng:ref name="languageCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:country">
<rng:ref name="countryCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:script">
<rng:ref name="scriptCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:rfc-language-tag">
<rng:ref name="language"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:algorithm">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:embedded-number-behavior">
<rng:choice>
<rng:value>alpha-numeric</rng:value>
<rng:value>integer</rng:value>
<rng:value>double</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-sort-by">
<rng:element name="table:sort-by">
<rng:ref name="table-sort-by-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-sort-by-attlist">
<rng:interleave>
<rng:attribute name="table:field-number">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:data-type">
<rng:choice>
<rng:value>text</rng:value>
<rng:value>number</rng:value>
<rng:value>automatic</rng:value>
<rng:ref name="string"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:order">
<rng:choice>
<rng:value>ascending</rng:value>
<rng:value>descending</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-sort-groups">
<rng:element name="table:sort-groups">
<rng:ref name="table-sort-groups-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-sort-groups-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:data-type">
<rng:choice>
<rng:value>text</rng:value>
<rng:value>number</rng:value>
<rng:value>automatic</rng:value>
<rng:ref name="string"/>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:order">
<rng:choice>
<rng:value>ascending</rng:value>
<rng:value>descending</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-source-cell-range">
<rng:element name="table:source-cell-range">
<rng:ref name="table-source-cell-range-attlist"/>
<rng:optional>
<rng:ref name="table-filter"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-source-cell-range-attlist">
<!-- https://issues.oasis-open.org/browse/OFFICE-3665 -->
<rng:interleave>
<rng:choice>
<rng:attribute name="table:cell-range-address">
<rng:ref name="cellRangeAddress"/>
</rng:attribute>
<rng:group>
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:cell-range-address">
<rng:ref name="cellRangeAddress"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:choice>
</rng:interleave>
</rng:define>
<rng:define name="table-source-range-address">
<rng:element name="table:source-range-address">
<rng:ref name="common-table-range-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-source-service">
<rng:element name="table:source-service">
<rng:ref name="table-source-service-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-source-service-attlist">
<rng:interleave>
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="table:source-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="table:object-name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:user-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:password">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-subtotal-field">
<rng:element name="table:subtotal-field">
<rng:ref name="table-subtotal-field-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-subtotal-field-attlist">
<rng:interleave>
<rng:attribute name="table:field-number">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
<rng:attribute name="table:function">
<rng:choice>
<rng:value>average</rng:value>
<rng:value>count</rng:value>
<rng:value>countnums</rng:value>
<rng:value>max</rng:value>
<rng:value>min</rng:value>
<rng:value>product</rng:value>
<rng:value>stdev</rng:value>
<rng:value>stdevp</rng:value>
<rng:value>sum</rng:value>
<rng:value>var</rng:value>
<rng:value>varp</rng:value>
<rng:ref name="string"/>
</rng:choice>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="table-subtotal-rule">
<rng:element name="table:subtotal-rule">
<rng:ref name="table-subtotal-rule-attlist"/>
<rng:zeroOrMore>
<rng:ref name="table-subtotal-field"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-subtotal-rule-attlist">
<rng:attribute name="table:group-by-field-number">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:define>
<rng:define name="table-subtotal-rules">
<rng:element name="table:subtotal-rules">
<rng:ref name="table-subtotal-rules-attlist"/>
<rng:optional>
<rng:ref name="table-sort-groups"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="table-subtotal-rule"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-subtotal-rules-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:bind-styles-to-content">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:case-sensitive">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:page-breaks-on-group-change">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-table">
<rng:element name="table:table">
<rng:ref name="table-table-attlist"/>
<rng:optional>
<rng:ref name="table-title"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-desc"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-table-source"/>
</rng:optional>
<rng:optional>
<rng:ref name="office-dde-source"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-scenario"/>
</rng:optional>
<rng:optional>
<rng:ref name="office-forms"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-shapes"/>
</rng:optional>
<rng:ref name="table-columns-and-groups"/>
<rng:ref name="table-rows-and-groups"/>
<rng:optional>
<rng:ref name="table-named-expressions"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-table-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:template-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:use-first-row-styles">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:use-last-row-styles">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:use-first-column-styles">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:use-last-column-styles">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:use-banding-rows-styles">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:use-banding-columns-styles">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:protected">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:protection-key">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:protection-key-digest-algorithm">
<rng:ref name="anyIRI"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:print">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:print-ranges">
<rng:ref name="cellRangeAddressList"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
<rng:optional>
<rng:attribute name="table:is-sub-table">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-table-cell">
<rng:element name="table:table-cell">
<rng:ref name="table-table-cell-attlist"/>
<rng:ref name="table-table-cell-attlist-extra"/>
<rng:ref name="table-table-cell-content"/>
</rng:element>
</rng:define>
<rng:define name="table-table-cell-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:number-columns-repeated">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:content-validation-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:formula">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="common-value-and-type-attlist"/>
</rng:optional>
<rng:optional>
<rng:attribute name="table:protect">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:protected">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
<rng:optional>
<rng:ref name="common-in-content-meta-attlist"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-table-cell-attlist-extra">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:number-columns-spanned">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:number-rows-spanned">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:number-matrix-columns-spanned">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:number-matrix-rows-spanned">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-table-cell-content">
<rng:optional>
<rng:ref name="table-cell-range-source"/>
</rng:optional>
<rng:optional>
<rng:ref name="office-annotation"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-detective"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="text-content"/>
</rng:zeroOrMore>
</rng:define>
<rng:define name="table-table-cell-range-source-attlist">
<rng:interleave>
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="table:last-column-spanned">
<rng:ref name="positiveInteger"/>
</rng:attribute>
<rng:attribute name="table:last-row-spanned">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="table-table-column">
<rng:element name="table:table-column">
<rng:ref name="table-table-column-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-table-column-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:number-columns-repeated">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:visibility">
<rng:ref name="table-visibility-value"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:default-cell-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-table-column-group">
<rng:element name="table:table-column-group">
<rng:ref name="table-table-column-group-attlist"/>
<rng:ref name="table-columns-and-groups"/>
</rng:element>
</rng:define>
<rng:define name="table-table-column-group-attlist">
<rng:optional>
<rng:attribute name="table:display">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="table-table-columns">
<rng:element name="table:table-columns">
<rng:oneOrMore>
<rng:ref name="table-table-column"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-table-header-columns">
<rng:element name="table:table-header-columns">
<rng:oneOrMore>
<rng:ref name="table-table-column"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-table-header-rows">
<rng:element name="table:table-header-rows">
<rng:oneOrMore>
<rng:optional>
<rng:ref name="text-soft-page-break"/>
</rng:optional>
<rng:ref name="table-table-row"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-table-row">
<rng:element name="table:table-row">
<rng:ref name="table-table-row-attlist"/>
<rng:oneOrMore>
<rng:choice>
<rng:ref name="table-table-cell"/>
<rng:ref name="table-covered-table-cell"/>
</rng:choice>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-table-row-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:number-rows-repeated">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:default-cell-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:visibility">
<rng:ref name="table-visibility-value"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-table-row-group">
<rng:element name="table:table-row-group">
<rng:ref name="table-table-row-group-attlist"/>
<rng:ref name="table-rows-and-groups"/>
</rng:element>
</rng:define>
<rng:define name="table-table-row-group-attlist">
<rng:optional>
<rng:attribute name="table:display">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="table-table-rows">
<rng:element name="table:table-rows">
<rng:oneOrMore>
<rng:optional>
<rng:ref name="text-soft-page-break"/>
</rng:optional>
<rng:ref name="table-table-row"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="table-table-source">
<rng:element name="table:table-source">
<rng:ref name="table-table-source-attlist"/>
<rng:ref name="table-linked-source-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-table-source-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="table:mode">
<rng:choice>
<rng:value>copy-all</rng:value>
<rng:value>copy-results-only</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:table-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-table-template">
<rng:element name="table:table-template">
<rng:ref name="table-table-template-attlist"/>
<rng:optional>
<rng:ref name="table-first-row"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-last-row"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-first-column"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-last-column"/>
</rng:optional>
<rng:ref name="table-body"/>
<rng:optional>
<rng:ref name="table-even-rows"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-odd-rows"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-even-columns"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-odd-columns"/>
</rng:optional>
<rng:optional>
<rng:ref name="table-background"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-table-template-attlist">
<rng:interleave>
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="table:first-row-start-column">
<rng:ref name="rowOrCol"/>
</rng:attribute>
<rng:attribute name="table:first-row-end-column">
<rng:ref name="rowOrCol"/>
</rng:attribute>
<rng:attribute name="table:last-row-start-column">
<rng:ref name="rowOrCol"/>
</rng:attribute>
<rng:attribute name="table:last-row-end-column">
<rng:ref name="rowOrCol"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="table-target-range-address">
<rng:element name="table:target-range-address">
<rng:ref name="common-table-range-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-title">
<rng:element name="table:title">
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="table-tracked-changes">
<rng:element name="table:tracked-changes">
<rng:ref name="table-tracked-changes-attlist"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="table-cell-content-change"/>
<rng:ref name="table-insertion"/>
<rng:ref name="table-deletion"/>
<rng:ref name="table-movement"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="table-tracked-changes-attlist">
<rng:optional>
<rng:attribute name="table:track-changes">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="table-validation-attlist">
<rng:interleave>
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="table:condition">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:base-cell-address">
<rng:ref name="cellAddress"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:allow-empty-cell">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="table:display-list">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>unsorted</rng:value>
<rng:value>sort-ascending</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="table-visibility-value">
<rng:choice>
<rng:value>visible</rng:value>
<rng:value>collapse</rng:value>
<rng:value>filter</rng:value>
</rng:choice>
</rng:define>
<rng:define name="target-frame">
<rng:optional>
<rng:attribute name="office:target-frame">
<rng:ref name="targetFrameName"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="target-location">
<rng:optional>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="targetFrameName">
<rng:choice>
<rng:value>_self</rng:value>
<rng:value>_blank</rng:value>
<rng:value>_parent</rng:value>
<rng:value>_top</rng:value>
<rng:ref name="string"/>
</rng:choice>
</rng:define>
<rng:define name="text-a">
<rng:element name="text:a">
<rng:ref name="text-a-attlist"/>
<rng:optional>
<rng:ref name="office-event-listeners"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="paragraph-content"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-a-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="office:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="office:title">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:actuate">
<rng:value>onRequest</rng:value>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="office:target-frame-name">
<rng:ref name="targetFrameName"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="xlink:show">
<rng:choice>
<rng:value>new</rng:value>
<rng:value>replace</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:visited-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-alphabetical-index">
<rng:element name="text:alphabetical-index">
<rng:ref name="common-section-attlist"/>
<rng:ref name="text-alphabetical-index-source"/>
<rng:ref name="text-index-body"/>
</rng:element>
</rng:define>
<rng:define name="text-alphabetical-index-auto-mark-file">
<rng:element name="text:alphabetical-index-auto-mark-file">
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
</rng:element>
</rng:define>
<rng:define name="text-alphabetical-index-entry-template">
<rng:element name="text:alphabetical-index-entry-template">
<rng:ref name="text-alphabetical-index-entry-template-attrs"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="text-index-entry-chapter"/>
<rng:ref name="text-index-entry-page-number"/>
<rng:ref name="text-index-entry-text"/>
<rng:ref name="text-index-entry-span"/>
<rng:ref name="text-index-entry-tab-stop"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-alphabetical-index-entry-template-attrs">
<rng:interleave>
<rng:attribute name="text:outline-level">
<rng:choice>
<rng:value>1</rng:value>
<rng:value>2</rng:value>
<rng:value>3</rng:value>
<rng:value>separator</rng:value>
</rng:choice>
</rng:attribute>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="text-alphabetical-index-mark-attrs">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:key1">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:key2">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:string-value-phonetic">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:key1-phonetic">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:key2-phonetic">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:main-entry">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-alphabetical-index-source">
<rng:element name="text:alphabetical-index-source">
<rng:ref name="text-alphabetical-index-source-attrs"/>
<rng:optional>
<rng:ref name="text-index-title-template"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="text-alphabetical-index-entry-template"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-alphabetical-index-source-attrs">
<rng:interleave>
<rng:ref name="text-index-scope-attr"/>
<rng:ref name="text-relative-tab-stop-position-attr"/>
<rng:optional>
<rng:attribute name="text:ignore-case">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:main-entry-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:alphabetical-separators">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:combine-entries">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:combine-entries-with-dash">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:combine-entries-with-pp">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-keys-as-entries">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:capitalize-entries">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:comma-separated">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:language">
<rng:ref name="languageCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:country">
<rng:ref name="countryCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:script">
<rng:ref name="scriptCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:rfc-language-tag">
<rng:ref name="language"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:sort-algorithm">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-bibliography">
<rng:element name="text:bibliography">
<rng:ref name="common-section-attlist"/>
<rng:ref name="text-bibliography-source"/>
<rng:ref name="text-index-body"/>
</rng:element>
</rng:define>
<rng:define name="text-bibliography-configuration">
<rng:element name="text:bibliography-configuration">
<rng:ref name="text-bibliography-configuration-attlist"/>
<rng:zeroOrMore>
<rng:ref name="text-sort-key"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-bibliography-configuration-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:prefix">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:suffix">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:numbered-entries">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:sort-by-position">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:language">
<rng:ref name="languageCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:country">
<rng:ref name="countryCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="fo:script">
<rng:ref name="scriptCode"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:rfc-language-tag">
<rng:ref name="language"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:sort-algorithm">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-bibliography-entry-template">
<rng:element name="text:bibliography-entry-template">
<rng:ref name="text-bibliography-entry-template-attrs"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="text-index-entry-span"/>
<rng:ref name="text-index-entry-tab-stop"/>
<rng:ref name="text-index-entry-bibliography"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-bibliography-entry-template-attrs">
<rng:interleave>
<rng:attribute name="text:bibliography-type">
<rng:ref name="text-bibliography-types"/>
</rng:attribute>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="text-bibliography-source">
<rng:element name="text:bibliography-source">
<rng:optional>
<rng:ref name="text-index-title-template"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="text-bibliography-entry-template"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-bibliography-types">
<rng:choice>
<rng:value>article</rng:value>
<rng:value>book</rng:value>
<rng:value>booklet</rng:value>
<rng:value>conference</rng:value>
<rng:value>custom1</rng:value>
<rng:value>custom2</rng:value>
<rng:value>custom3</rng:value>
<rng:value>custom4</rng:value>
<rng:value>custom5</rng:value>
<rng:value>email</rng:value>
<rng:value>inbook</rng:value>
<rng:value>incollection</rng:value>
<rng:value>inproceedings</rng:value>
<rng:value>journal</rng:value>
<rng:value>manual</rng:value>
<rng:value>mastersthesis</rng:value>
<rng:value>misc</rng:value>
<rng:value>phdthesis</rng:value>
<rng:value>proceedings</rng:value>
<rng:value>techreport</rng:value>
<rng:value>unpublished</rng:value>
<rng:value>www</rng:value>
</rng:choice>
</rng:define>
<rng:define name="text-bookmark">
<rng:element name="text:bookmark">
<rng:ref name="text-bookmark-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="text-bookmark-attlist">
<rng:interleave>
<rng:attribute name="text:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-bookmark-end">
<rng:element name="text:bookmark-end">
<rng:ref name="text-bookmark-end-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="text-bookmark-end-attlist">
<rng:attribute name="text:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="text-bookmark-ref-content">
<rng:optional>
<rng:attribute name="text:reference-format">
<rng:choice>
<!-- https://issues.oasis-open.org/browse/OFFICE-4035 -->
<rng:value>page</rng:value>
<rng:value>chapter</rng:value>
<rng:value>direction</rng:value>
<rng:value>text</rng:value>
<rng:value>number-no-superior</rng:value>
<rng:value>number-all-superior</rng:value>
<rng:value>number</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="text-bookmark-start">
<rng:element name="text:bookmark-start">
<rng:ref name="text-bookmark-start-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="text-bookmark-start-attlist">
<rng:interleave>
<rng:attribute name="text:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
<rng:optional>
<rng:ref name="common-in-content-meta-attlist"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-changed-region">
<rng:element name="text:changed-region">
<rng:ref name="text-changed-region-attr"/>
<rng:ref name="text-changed-region-content"/>
</rng:element>
</rng:define>
<rng:define name="text-changed-region-attr">
<rng:group>
<rng:ref name="xml-id"/>
<rng:optional>
<rng:attribute name="text:id">
<rng:ref name="NCName"/>
</rng:attribute>
</rng:optional>
</rng:group>
</rng:define>
<rng:define name="text-changed-region-content">
<rng:choice>
<rng:element name="text:insertion">
<rng:ref name="office-change-info"/>
</rng:element>
<rng:element name="text:deletion">
<rng:ref name="office-change-info"/>
<rng:zeroOrMore>
<rng:ref name="text-content"/>
</rng:zeroOrMore>
</rng:element>
<rng:element name="text:format-change">
<rng:ref name="office-change-info"/>
</rng:element>
</rng:choice>
</rng:define>
<rng:define name="text-chapter-attlist">
<rng:interleave>
<rng:attribute name="text:display">
<rng:choice>
<rng:value>name</rng:value>
<rng:value>number</rng:value>
<rng:value>number-and-name</rng:value>
<rng:value>plain-number-and-name</rng:value>
<rng:value>plain-number</rng:value>
</rng:choice>
</rng:attribute>
<rng:attribute name="text:outline-level">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="text-common-ref-content">
<rng:interleave>
<rng:text/>
<rng:optional>
<rng:attribute name="text:ref-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-conditional-text-attlist">
<rng:interleave>
<rng:attribute name="text:condition">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="text:string-value-if-true">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="text:string-value-if-false">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="text:current-value">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-content">
<rng:choice>
<rng:ref name="text-h"/>
<rng:ref name="text-p"/>
<rng:ref name="text-list"/>
<rng:ref name="text-numbered-paragraph"/>
<rng:ref name="table-table"/>
<rng:ref name="text-section"/>
<rng:ref name="text-soft-page-break"/>
<rng:ref name="text-table-of-content"/>
<rng:ref name="text-illustration-index"/>
<rng:ref name="text-table-index"/>
<rng:ref name="text-object-index"/>
<rng:ref name="text-user-index"/>
<rng:ref name="text-alphabetical-index"/>
<rng:ref name="text-bibliography"/>
<rng:ref name="shape"/>
<rng:ref name="change-marks"/>
</rng:choice>
</rng:define>
<rng:define name="text-database-display-attlist">
<rng:interleave>
<rng:ref name="common-field-database-table"/>
<rng:ref name="common-field-data-style-name-attlist"/>
<rng:attribute name="text:column-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="text-database-next-attlist">
<rng:interleave>
<rng:ref name="common-field-database-table"/>
<rng:optional>
<rng:attribute name="text:condition">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-database-row-select-attlist">
<rng:interleave>
<rng:ref name="common-field-database-table"/>
<rng:optional>
<rng:attribute name="text:condition">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:row-number">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-date-attlist">
<rng:interleave>
<rng:interleave>
<rng:ref name="common-field-fixed-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
</rng:interleave>
<rng:optional>
<rng:attribute name="text:date-value">
<rng:ref name="dateOrDateTime"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:date-adjust">
<rng:ref name="duration"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-dde-connection-decl">
<rng:element name="text:dde-connection-decl">
<rng:ref name="text-dde-connection-decl-attlist"/>
<rng:ref name="common-dde-connection-decl-attlist"/>
</rng:element>
</rng:define>
<rng:define name="text-dde-connection-decl-attlist">
<rng:attribute name="office:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="text-decls">
<rng:optional>
<rng:element name="text:variable-decls">
<rng:zeroOrMore>
<rng:ref name="text-variable-decl"/>
</rng:zeroOrMore>
</rng:element>
</rng:optional>
<rng:optional>
<rng:element name="text:sequence-decls">
<rng:zeroOrMore>
<rng:ref name="text-sequence-decl"/>
</rng:zeroOrMore>
</rng:element>
</rng:optional>
<rng:optional>
<rng:element name="text:user-field-decls">
<rng:zeroOrMore>
<rng:ref name="text-user-field-decl"/>
</rng:zeroOrMore>
</rng:element>
</rng:optional>
<rng:optional>
<rng:element name="text:dde-connection-decls">
<rng:zeroOrMore>
<rng:ref name="text-dde-connection-decl"/>
</rng:zeroOrMore>
</rng:element>
</rng:optional>
<rng:optional>
<rng:ref name="text-alphabetical-index-auto-mark-file"/>
</rng:optional>
</rng:define>
<rng:define name="text-drop-down">
<rng:element name="text:drop-down">
<rng:attribute name="text:name">
<rng:ref name="string"/>
</rng:attribute>
<rng:zeroOrMore>
<rng:element name="text:label">
<rng:optional>
<rng:attribute name="text:value">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:current-selected">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:element>
</rng:zeroOrMore>
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="text-file-name-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:display">
<rng:choice>
<rng:value>full</rng:value>
<rng:value>path</rng:value>
<rng:value>name</rng:value>
<rng:value>name-and-extension</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="common-field-fixed-attlist"/>
</rng:interleave>
</rng:define>
<rng:define name="text-get-page-variable-attlist">
<rng:ref name="common-field-num-format-attlist"/>
</rng:define>
<rng:define name="text-h">
<rng:element name="text:h">
<rng:ref name="heading-attrs"/>
<rng:ref name="paragraph-attrs"/>
<rng:optional>
<rng:ref name="text-number"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="paragraph-content-or-hyperlink"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-hidden-paragraph-attlist">
<rng:interleave>
<rng:attribute name="text:condition">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="text:is-hidden">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-hidden-text-attlist">
<rng:interleave>
<rng:attribute name="text:condition">
<rng:ref name="string"/>
</rng:attribute>
<rng:attribute name="text:string-value">
<rng:ref name="string"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="text:is-hidden">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-id">
<rng:attribute name="text:id">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="text-illustration-index">
<rng:element name="text:illustration-index">
<rng:ref name="common-section-attlist"/>
<rng:ref name="text-illustration-index-source"/>
<rng:ref name="text-index-body"/>
</rng:element>
</rng:define>
<rng:define name="text-illustration-index-entry-content">
<rng:ref name="text-illustration-index-entry-template-attrs"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="text-index-entry-chapter"/>
<rng:ref name="text-index-entry-page-number"/>
<rng:ref name="text-index-entry-text"/>
<rng:ref name="text-index-entry-span"/>
<rng:ref name="text-index-entry-tab-stop"/>
<rng:ref name="text-index-entry-link-start"/>
<rng:ref name="text-index-entry-link-end"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-3941 -->
</rng:choice>
</rng:zeroOrMore>
</rng:define>
<rng:define name="text-illustration-index-entry-template">
<rng:element name="text:illustration-index-entry-template">
<rng:ref name="text-illustration-index-entry-content"/>
</rng:element>
</rng:define>
<rng:define name="text-illustration-index-entry-template-attrs">
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:define>
<rng:define name="text-illustration-index-source">
<rng:element name="text:illustration-index-source">
<rng:ref name="text-illustration-index-source-attrs"/>
<rng:optional>
<rng:ref name="text-index-title-template"/>
</rng:optional>
<rng:optional>
<rng:ref name="text-illustration-index-entry-template"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="text-illustration-index-source-attrs">
<rng:interleave>
<rng:ref name="text-index-scope-attr"/>
<rng:ref name="text-relative-tab-stop-position-attr"/>
<rng:optional>
<rng:attribute name="text:use-caption">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:caption-sequence-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:caption-sequence-format">
<rng:choice>
<rng:value>text</rng:value>
<rng:value>category-and-value</rng:value>
<rng:value>caption</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-index-body">
<rng:element name="text:index-body">
<rng:zeroOrMore>
<rng:ref name="index-content-main"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-index-entry-bibliography">
<rng:element name="text:index-entry-bibliography">
<rng:ref name="text-index-entry-bibliography-attrs"/>
</rng:element>
</rng:define>
<rng:define name="text-index-entry-bibliography-attrs">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="text:bibliography-data-field">
<rng:choice>
<rng:value>address</rng:value>
<rng:value>annote</rng:value>
<rng:value>author</rng:value>
<rng:value>bibliography-type</rng:value>
<rng:value>booktitle</rng:value>
<rng:value>chapter</rng:value>
<rng:value>custom1</rng:value>
<rng:value>custom2</rng:value>
<rng:value>custom3</rng:value>
<rng:value>custom4</rng:value>
<rng:value>custom5</rng:value>
<rng:value>edition</rng:value>
<rng:value>editor</rng:value>
<rng:value>howpublished</rng:value>
<rng:value>identifier</rng:value>
<rng:value>institution</rng:value>
<rng:value>isbn</rng:value>
<rng:value>issn</rng:value>
<rng:value>journal</rng:value>
<rng:value>month</rng:value>
<rng:value>note</rng:value>
<rng:value>number</rng:value>
<rng:value>organizations</rng:value>
<rng:value>pages</rng:value>
<rng:value>publisher</rng:value>
<rng:value>report-type</rng:value>
<rng:value>school</rng:value>
<rng:value>series</rng:value>
<rng:value>title</rng:value>
<rng:value>url</rng:value>
<rng:value>volume</rng:value>
<rng:value>year</rng:value>
</rng:choice>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="text-index-entry-chapter">
<rng:element name="text:index-entry-chapter">
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:ref name="text-index-entry-chapter-attrs"/>
</rng:element>
</rng:define>
<rng:define name="text-index-entry-chapter-attrs">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:display">
<rng:choice>
<rng:value>name</rng:value>
<rng:value>number</rng:value>
<rng:value>number-and-name</rng:value>
<rng:value>plain-number</rng:value>
<rng:value>plain-number-and-name</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:outline-level">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-index-entry-link-end">
<rng:element name="text:index-entry-link-end">
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="text-index-entry-link-start">
<rng:element name="text:index-entry-link-start">
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="text-index-entry-page-number">
<rng:element name="text:index-entry-page-number">
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="text-index-entry-span">
<rng:element name="text:index-entry-span">
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="text-index-entry-tab-stop">
<rng:element name="text:index-entry-tab-stop">
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:ref name="text-index-entry-tab-stop-attrs"/>
</rng:element>
</rng:define>
<rng:define name="text-index-entry-tab-stop-attrs">
<rng:interleave>
<rng:optional>
<rng:attribute name="style:leader-char">
<rng:ref name="character"/>
</rng:attribute>
</rng:optional>
<rng:choice>
<rng:attribute name="style:type">
<rng:value>right</rng:value>
</rng:attribute>
<rng:group>
<rng:attribute name="style:type">
<rng:value>left</rng:value>
</rng:attribute>
<rng:attribute name="style:position">
<rng:ref name="length"/>
</rng:attribute>
</rng:group>
</rng:choice>
</rng:interleave>
</rng:define>
<rng:define name="text-index-entry-text">
<rng:element name="text:index-entry-text">
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="text-index-name">
<rng:attribute name="text:index-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
<rng:define name="text-index-scope-attr">
<rng:optional>
<rng:attribute name="text:index-scope">
<rng:choice>
<rng:value>document</rng:value>
<rng:value>chapter</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="text-index-source-style">
<rng:element name="text:index-source-style">
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
<rng:empty/>
</rng:element>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-3675 -->
<rng:define name="text-index-source-styles">
<rng:element name="text:index-source-styles">
<rng:attribute name="text:outline-level">
<rng:ref name="positiveInteger"/>
</rng:attribute>
<rng:zeroOrMore>
<rng:ref name="text-index-source-style"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-index-title">
<rng:element name="text:index-title">
<rng:ref name="common-section-attlist"/>
<rng:zeroOrMore>
<rng:ref name="index-content-main"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-index-title-template">
<rng:element name="text:index-title-template">
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="text-linenumbering-configuration">
<rng:element name="text:linenumbering-configuration">
<rng:ref name="text-linenumbering-configuration-attlist"/>
<rng:optional>
<rng:ref name="text-linenumbering-separator"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="text-linenumbering-configuration-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:number-lines">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="common-num-format-attlist"/>
</rng:optional>
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:increment">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:number-position">
<rng:choice>
<rng:value>left</rng:value>
<rng:value>right</rng:value>
<rng:value>inner</rng:value>
<rng:value>outer</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:offset">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:count-empty-lines">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:count-in-text-boxes">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:restart-on-page">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-linenumbering-separator">
<rng:element name="text:linenumbering-separator">
<rng:optional>
<rng:attribute name="text:increment">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="text-list">
<rng:element name="text:list">
<rng:ref name="text-list-attr"/>
<rng:optional>
<rng:ref name="text-list-header"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="text-list-item"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-list-attr">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:continue-numbering">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:continue-list">
<rng:ref name="IDREF"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-list-header">
<rng:element name="text:list-header">
<rng:ref name="text-list-header-attr"/>
<rng:ref name="text-list-item-content"/>
</rng:element>
</rng:define>
<rng:define name="text-list-header-attr">
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:define>
<rng:define name="text-list-item">
<rng:element name="text:list-item">
<rng:ref name="text-list-item-attr"/>
<rng:ref name="text-list-item-content"/>
</rng:element>
</rng:define>
<rng:define name="text-list-item-attr">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:start-value">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:style-override">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-list-item-content">
<rng:optional>
<rng:ref name="text-number"/>
</rng:optional>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="text-p"/>
<rng:ref name="text-h"/>
<rng:ref name="text-list"/>
<rng:ref name="text-soft-page-break"/>
</rng:choice>
</rng:zeroOrMore>
</rng:define>
<rng:define name="text-list-level-style-attr">
<rng:attribute name="text:level">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:define>
<rng:define name="text-list-level-style-bullet-attr">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="text:bullet-char">
<rng:ref name="character"/>
</rng:attribute>
<rng:ref name="common-num-format-prefix-suffix-attlist"/>
<rng:optional>
<rng:attribute name="text:bullet-relative-size">
<rng:ref name="percent"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-list-level-style-image-attr">
<rng:choice>
<rng:ref name="common-draw-data-attlist"/>
<rng:ref name="office-binary-data"/>
</rng:choice>
</rng:define>
<rng:define name="text-list-level-style-number-attr">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-num-format-attlist"/>
<rng:ref name="common-num-format-prefix-suffix-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4108 -->
<rng:ref name="common-num-list-format-name-attlist"/>
<rng:optional>
<rng:attribute name="text:display-levels">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:start-value">
<!-- https://issues.oasis-open.org/browse/OFFICE-4118
<rng:ref name="positiveInteger"/>
-->
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-list-style">
<rng:element name="text:list-style">
<rng:ref name="text-list-style-attr"/>
<rng:zeroOrMore>
<rng:ref name="text-list-style-content"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-list-style-attr">
<rng:interleave>
<rng:attribute name="style:name">
<rng:ref name="styleName"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="style:display-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:consecutive-numbering">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-list-style-content">
<rng:choice>
<rng:element name="text:list-level-style-number">
<rng:ref name="text-list-level-style-attr"/>
<rng:ref name="text-list-level-style-number-attr"/>
<rng:optional>
<rng:ref name="style-list-level-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
</rng:element>
<rng:element name="text:list-level-style-bullet">
<rng:ref name="text-list-level-style-attr"/>
<rng:ref name="text-list-level-style-bullet-attr"/>
<rng:optional>
<rng:ref name="style-list-level-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
</rng:element>
<rng:element name="text:list-level-style-image">
<rng:ref name="text-list-level-style-attr"/>
<rng:ref name="text-list-level-style-image-attr"/>
<rng:optional>
<rng:ref name="style-list-level-properties"/>
</rng:optional>
</rng:element>
</rng:choice>
</rng:define>
<rng:define name="text-meta-attlist">
<rng:interleave>
<rng:optional>
<rng:ref name="common-in-content-meta-attlist"/>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-meta-field-attlist">
<rng:interleave>
<rng:ref name="xml-id"/>
<rng:ref name="common-field-data-style-name-attlist"/>
</rng:interleave>
</rng:define>
<rng:define name="text-note-class">
<rng:attribute name="text:note-class">
<rng:choice>
<rng:value>footnote</rng:value>
<rng:value>endnote</rng:value>
</rng:choice>
</rng:attribute>
</rng:define>
<rng:define name="text-note-ref-content">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:reference-format">
<rng:choice>
<!-- https://issues.oasis-open.org/browse/OFFICE-4035 -->
<rng:value>page</rng:value>
<rng:value>chapter</rng:value>
<rng:value>direction</rng:value>
<rng:value>text</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:ref name="text-note-class"/>
</rng:interleave>
</rng:define>
<rng:define name="text-notes-configuration">
<rng:element name="text:notes-configuration">
<rng:ref name="text-notes-configuration-content"/>
</rng:element>
</rng:define>
<rng:define name="text-notes-configuration-content">
<rng:interleave>
<rng:ref name="text-note-class"/>
<rng:optional>
<rng:attribute name="text:citation-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:citation-body-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:default-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:master-page-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:start-value">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-num-format-prefix-suffix-attlist"/>
<rng:optional>
<rng:ref name="common-num-format-attlist"/>
</rng:optional>
<rng:optional>
<rng:attribute name="text:start-numbering-at">
<rng:choice>
<rng:value>document</rng:value>
<rng:value>chapter</rng:value>
<rng:value>page</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:footnotes-position">
<rng:choice>
<rng:value>text</rng:value>
<rng:value>page</rng:value>
<rng:value>section</rng:value>
<rng:value>document</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:element name="text:note-continuation-notice-forward">
<rng:text/>
</rng:element>
</rng:optional>
<rng:optional>
<rng:element name="text:note-continuation-notice-backward">
<rng:text/>
</rng:element>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-number">
<rng:element name="text:number">
<rng:ref name="string"/>
</rng:element>
</rng:define>
<rng:define name="text-numbered-paragraph">
<rng:element name="text:numbered-paragraph">
<rng:ref name="text-numbered-paragraph-attr"/>
<rng:optional>
<rng:ref name="text-number"/>
</rng:optional>
<rng:choice>
<rng:ref name="text-p"/>
<rng:ref name="text-h"/>
</rng:choice>
</rng:element>
</rng:define>
<rng:define name="text-numbered-paragraph-attr">
<rng:interleave>
<rng:attribute name="text:list-id">
<rng:ref name="NCName"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="text:level">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
<rng:attribute name="text:continue-numbering">
<rng:ref name="boolean"/>
</rng:attribute>
<rng:attribute name="text:start-value">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-object-index">
<rng:element name="text:object-index">
<rng:ref name="common-section-attlist"/>
<rng:ref name="text-object-index-source"/>
<rng:ref name="text-index-body"/>
</rng:element>
</rng:define>
<rng:define name="text-object-index-entry-template">
<rng:element name="text:object-index-entry-template">
<rng:ref name="text-illustration-index-entry-content"/>
</rng:element>
</rng:define>
<rng:define name="text-object-index-source">
<rng:element name="text:object-index-source">
<rng:ref name="text-object-index-source-attrs"/>
<rng:optional>
<rng:ref name="text-index-title-template"/>
</rng:optional>
<rng:optional>
<rng:ref name="text-object-index-entry-template"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="text-object-index-source-attrs">
<rng:interleave>
<rng:ref name="text-index-scope-attr"/>
<rng:ref name="text-relative-tab-stop-position-attr"/>
<rng:optional>
<rng:attribute name="text:use-spreadsheet-objects">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-math-objects">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-draw-objects">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-chart-objects">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-other-objects">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-outline-level">
<rng:optional>
<rng:attribute name="text:outline-level">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="text-outline-level-style">
<rng:element name="text:outline-level-style">
<rng:ref name="text-outline-level-style-attlist"/>
<rng:optional>
<rng:ref name="style-list-level-properties"/>
</rng:optional>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="text-outline-level-style-attlist">
<rng:interleave>
<rng:attribute name="text:level">
<!-- https://issues.oasis-open.org/browse/OFFICE-4118
<rng:ref name="positiveInteger"/>
-->
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-num-format-attlist"/>
<rng:ref name="common-num-format-prefix-suffix-attlist"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-4108 -->
<rng:ref name="common-num-list-format-name-attlist"/>
<rng:optional>
<rng:attribute name="text:display-levels">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:start-value">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-outline-style">
<rng:element name="text:outline-style">
<rng:ref name="text-outline-style-attr"/>
<rng:oneOrMore>
<rng:ref name="text-outline-level-style"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="text-outline-style-attr">
<rng:attribute name="style:name">
<rng:ref name="styleName"/>
</rng:attribute>
</rng:define>
<rng:define name="text-p">
<rng:element name="text:p">
<rng:ref name="paragraph-attrs"/>
<rng:zeroOrMore>
<rng:ref name="paragraph-content-or-hyperlink"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-page">
<rng:element name="text:page">
<rng:ref name="text-page-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="text-page-attlist">
<rng:attribute name="text:master-page-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:define>
<rng:define name="text-page-continuation-attlist">
<rng:interleave>
<rng:attribute name="text:select-page">
<rng:choice>
<rng:value>previous</rng:value>
<rng:value>next</rng:value>
</rng:choice>
</rng:attribute>
<rng:optional>
<rng:attribute name="text:string-value">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-page-number-attlist">
<rng:interleave>
<rng:interleave>
<rng:ref name="common-field-num-format-attlist"/>
<rng:ref name="common-field-fixed-attlist"/>
</rng:interleave>
<rng:optional>
<rng:attribute name="text:page-adjust">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:select-page">
<rng:choice>
<rng:value>previous</rng:value>
<rng:value>current</rng:value>
<rng:value>next</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-page-sequence">
<rng:element name="text:page-sequence">
<rng:oneOrMore>
<rng:ref name="text-page"/>
</rng:oneOrMore>
</rng:element>
</rng:define>
<rng:define name="text-placeholder-attlist">
<rng:interleave>
<rng:attribute name="text:placeholder-type">
<rng:choice>
<rng:value>text</rng:value>
<rng:value>table</rng:value>
<rng:value>text-box</rng:value>
<rng:value>image</rng:value>
<rng:value>object</rng:value>
</rng:choice>
</rng:attribute>
<rng:ref name="common-field-description-attlist"/>
</rng:interleave>
</rng:define>
<rng:define name="text-relative-tab-stop-position-attr">
<rng:optional>
<rng:attribute name="text:relative-tab-stop-position">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="text-section">
<rng:element name="text:section">
<rng:ref name="text-section-attlist"/>
<rng:choice>
<rng:ref name="text-section-source"/>
<rng:ref name="text-section-source-dde"/>
<rng:empty/>
</rng:choice>
<rng:zeroOrMore>
<rng:ref name="text-content"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-section-attlist">
<rng:interleave>
<rng:ref name="common-section-attlist"/>
<rng:choice>
<rng:attribute name="text:display">
<rng:choice>
<rng:value>true</rng:value>
<rng:value>none</rng:value>
</rng:choice>
</rng:attribute>
<rng:group>
<rng:attribute name="text:display">
<rng:value>condition</rng:value>
</rng:attribute>
<rng:attribute name="text:condition">
<rng:ref name="string"/>
</rng:attribute>
</rng:group>
<rng:empty/>
</rng:choice>
</rng:interleave>
</rng:define>
<rng:define name="text-section-source">
<rng:element name="text:section-source">
<rng:ref name="text-section-source-attr"/>
</rng:element>
</rng:define>
<rng:define name="text-section-source-attr">
<rng:interleave>
<rng:optional>
<rng:attribute name="xlink:type">
<rng:value>simple</rng:value>
</rng:attribute>
<rng:attribute name="xlink:href">
<rng:ref name="anyIRI"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="xlink:show">
<rng:value>embed</rng:value>
</rng:attribute>
</rng:optional>
</rng:optional>
<rng:optional>
<rng:attribute name="text:section-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:filter-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-section-source-dde">
<rng:ref name="office-dde-source"/>
</rng:define>
<rng:define name="text-sequence-decl">
<rng:element name="text:sequence-decl">
<rng:ref name="text-sequence-decl-attlist"/>
</rng:element>
</rng:define>
<rng:define name="text-sequence-decl-attlist">
<rng:interleave>
<rng:ref name="common-field-name-attlist"/>
<rng:attribute name="text:display-outline-level">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
<rng:optional>
<rng:attribute name="text:separation-character">
<rng:ref name="character"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-sequence-ref-content">
<rng:optional>
<rng:attribute name="text:reference-format">
<rng:choice>
<!-- https://issues.oasis-open.org/browse/OFFICE-4035 -->
<rng:value>page</rng:value>
<rng:value>chapter</rng:value>
<rng:value>direction</rng:value>
<rng:value>text</rng:value>
<rng:value>category-and-value</rng:value>
<rng:value>caption</rng:value>
<rng:value>value</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="text-sequence-ref-name">
<rng:optional>
<rng:attribute name="text:ref-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="text-set-page-variable-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:active">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:page-adjust">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-soft-page-break">
<rng:element name="text:soft-page-break">
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="text-sort-key">
<rng:element name="text:sort-key">
<rng:ref name="text-sort-key-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="text-sort-key-attlist">
<rng:attribute name="text:key">
<rng:choice>
<rng:value>address</rng:value>
<rng:value>annote</rng:value>
<rng:value>author</rng:value>
<rng:value>bibliography-type</rng:value>
<rng:value>booktitle</rng:value>
<rng:value>chapter</rng:value>
<rng:value>custom1</rng:value>
<rng:value>custom2</rng:value>
<rng:value>custom3</rng:value>
<rng:value>custom4</rng:value>
<rng:value>custom5</rng:value>
<rng:value>edition</rng:value>
<rng:value>editor</rng:value>
<rng:value>howpublished</rng:value>
<rng:value>identifier</rng:value>
<rng:value>institution</rng:value>
<rng:value>isbn</rng:value>
<rng:value>issn</rng:value>
<rng:value>journal</rng:value>
<rng:value>month</rng:value>
<rng:value>note</rng:value>
<rng:value>number</rng:value>
<rng:value>organizations</rng:value>
<rng:value>pages</rng:value>
<rng:value>publisher</rng:value>
<rng:value>report-type</rng:value>
<rng:value>school</rng:value>
<rng:value>series</rng:value>
<rng:value>title</rng:value>
<rng:value>url</rng:value>
<rng:value>volume</rng:value>
<rng:value>year</rng:value>
</rng:choice>
</rng:attribute>
<rng:optional>
<rng:attribute name="text:sort-ascending">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="text-style-name">
<rng:optional>
<rng:attribute name="form:text-style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="text-tab-attr">
<rng:optional>
<rng:attribute name="text:tab-ref">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="text-table-index">
<rng:element name="text:table-index">
<rng:ref name="common-section-attlist"/>
<rng:ref name="text-table-index-source"/>
<rng:ref name="text-index-body"/>
</rng:element>
</rng:define>
<rng:define name="text-table-index-entry-template">
<rng:element name="text:table-index-entry-template">
<rng:ref name="text-illustration-index-entry-content"/>
</rng:element>
</rng:define>
<rng:define name="text-table-index-source">
<rng:element name="text:table-index-source">
<rng:ref name="text-illustration-index-source-attrs"/>
<rng:optional>
<rng:ref name="text-index-title-template"/>
</rng:optional>
<rng:optional>
<rng:ref name="text-table-index-entry-template"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="text-table-of-content">
<rng:element name="text:table-of-content">
<rng:ref name="common-section-attlist"/>
<rng:ref name="text-table-of-content-source"/>
<rng:ref name="text-index-body"/>
</rng:element>
</rng:define>
<rng:define name="text-table-of-content-children">
<rng:choice>
<rng:ref name="text-index-entry-chapter"/>
<rng:ref name="text-index-entry-page-number"/>
<rng:ref name="text-index-entry-text"/>
<rng:ref name="text-index-entry-span"/>
<rng:ref name="text-index-entry-tab-stop"/>
<rng:ref name="text-index-entry-link-start"/>
<rng:ref name="text-index-entry-link-end"/>
</rng:choice>
</rng:define>
<rng:define name="text-table-of-content-entry-template">
<rng:element name="text:table-of-content-entry-template">
<rng:ref name="text-table-of-content-entry-template-attlist"/>
<rng:zeroOrMore>
<rng:ref name="text-table-of-content-children"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-table-of-content-entry-template-attlist">
<rng:interleave>
<rng:attribute name="text:outline-level">
<rng:ref name="positiveInteger"/>
</rng:attribute>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="text-table-of-content-source">
<rng:element name="text:table-of-content-source">
<rng:ref name="text-table-of-content-source-attlist"/>
<rng:optional>
<rng:ref name="text-index-title-template"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="text-table-of-content-entry-template"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="text-index-source-styles"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-table-of-content-source-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="text:outline-level">
<rng:ref name="positiveInteger"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-outline-level">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-index-marks">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-index-source-styles">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:index-scope">
<rng:choice>
<rng:value>document</rng:value>
<rng:value>chapter</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:relative-tab-stop-position">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-template-name-attlist">
<rng:optional>
<rng:attribute name="text:display">
<rng:choice>
<rng:value>full</rng:value>
<rng:value>path</rng:value>
<rng:value>name</rng:value>
<rng:value>name-and-extension</rng:value>
<rng:value>area</rng:value>
<rng:value>title</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="text-time-attlist">
<rng:interleave>
<rng:interleave>
<rng:ref name="common-field-fixed-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
</rng:interleave>
<rng:optional>
<rng:attribute name="text:time-value">
<rng:ref name="timeOrDateTime"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:time-adjust">
<rng:ref name="duration"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="text-toc-mark-start-attrs">
<rng:ref name="text-id"/>
<rng:ref name="text-outline-level"/>
</rng:define>
<rng:define name="text-tracked-changes">
<rng:optional>
<rng:element name="text:tracked-changes">
<rng:ref name="text-tracked-changes-attr"/>
<rng:zeroOrMore>
<rng:ref name="text-changed-region"/>
</rng:zeroOrMore>
</rng:element>
</rng:optional>
</rng:define>
<rng:define name="text-tracked-changes-attr">
<rng:optional>
<rng:attribute name="text:track-changes">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="text-user-field-decl">
<rng:element name="text:user-field-decl">
<rng:ref name="common-field-name-attlist"/>
<rng:optional>
<rng:ref name="common-field-formula-attlist"/>
</rng:optional>
<rng:ref name="common-value-and-type-attlist"/>
</rng:element>
</rng:define>
<rng:define name="text-user-index">
<rng:element name="text:user-index">
<rng:ref name="common-section-attlist"/>
<rng:ref name="text-user-index-source"/>
<rng:ref name="text-index-body"/>
</rng:element>
</rng:define>
<rng:define name="text-user-index-entry-template">
<rng:element name="text:user-index-entry-template">
<rng:ref name="text-user-index-entry-template-attrs"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="text-index-entry-chapter"/>
<rng:ref name="text-index-entry-page-number"/>
<rng:ref name="text-index-entry-text"/>
<rng:ref name="text-index-entry-span"/>
<rng:ref name="text-index-entry-tab-stop"/>
<rng:ref name="text-index-entry-link-start"/>
<rng:ref name="text-index-entry-link-end"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-3941 -->
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-user-index-entry-template-attrs">
<rng:interleave>
<rng:attribute name="text:outline-level">
<rng:ref name="positiveInteger"/>
</rng:attribute>
<rng:attribute name="text:style-name">
<rng:ref name="styleNameRef"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="text-user-index-source">
<rng:element name="text:user-index-source">
<rng:ref name="text-user-index-source-attr"/>
<rng:optional>
<rng:ref name="text-index-title-template"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="text-user-index-entry-template"/>
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="text-index-source-styles"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-user-index-source-attr">
<rng:interleave>
<rng:ref name="text-index-scope-attr"/>
<rng:ref name="text-relative-tab-stop-position-attr"/>
<rng:optional>
<rng:attribute name="text:use-index-marks">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-index-source-styles">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-graphics">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-tables">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-floating-frames">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:use-objects">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="text:copy-outline-levels">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:attribute name="text:index-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:interleave>
</rng:define>
<rng:define name="text-variable-decl">
<rng:element name="text:variable-decl">
<rng:ref name="common-field-name-attlist"/>
<rng:ref name="common-value-type-attlist"/>
</rng:element>
</rng:define>
<rng:define name="textEncoding">
<rng:data type="string">
<rng:param name="pattern">[A-Za-z][A-Za-z0-9._\-]*</rng:param>
</rng:data>
</rng:define>
<rng:define name="time">
<rng:data type="time"/>
</rng:define>
<rng:define name="timeOrDateTime">
<rng:choice>
<rng:data type="time"/>
<rng:data type="dateTime"/>
</rng:choice>
</rng:define>
<rng:define name="types">
<rng:choice>
<rng:value>submit</rng:value>
<rng:value>reset</rng:value>
<rng:value>push</rng:value>
<rng:value>url</rng:value>
</rng:choice>
</rng:define>
<rng:define name="valueType">
<rng:choice>
<rng:value>float</rng:value>
<rng:value>time</rng:value>
<rng:value>date</rng:value>
<rng:value>percentage</rng:value>
<rng:value>currency</rng:value>
<rng:value>boolean</rng:value>
<rng:value>string</rng:value>
</rng:choice>
</rng:define>
<rng:define name="variableName">
<rng:data type="string"/>
</rng:define>
<rng:define name="vector3D">
<rng:data type="string">
<rng:param name="pattern">\([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\)</rng:param>
</rng:data>
</rng:define>
<rng:define name="vertBackPos">
<rng:choice>
<rng:value>top</rng:value>
<rng:value>center</rng:value>
<rng:value>bottom</rng:value>
</rng:choice>
</rng:define>
<rng:define name="xforms-bind-attlist">
<rng:optional>
<rng:attribute name="xforms:bind">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:define>
<rng:define name="xforms-model">
<rng:element name="xforms:model">
<rng:ref name="anyAttListOrElements"/>
</rng:element>
</rng:define>
<rng:define name="xml-id">
<rng:attribute name="xml:id">
<rng:ref name="ID"/>
</rng:attribute>
</rng:define>
<rng:define name="zeroToHundredPercent">
<rng:data type="string">
<rng:param name="pattern">([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)%</rng:param>
</rng:data>
</rng:define>
<rng:define name="zeroToOneDecimal">
<rng:data type="decimal">
<rng:param name="minInclusive">0</rng:param>
<rng:param name="maxInclusive">1</rng:param>
</rng:data>
</rng:define>
</rng:grammar>