<?xml version="1.0" encoding="UTF-8"?>
<!--
Open Document Format for Office Applications (OpenDocument) Version 1.3
Committee Specification 02
30 October 2020
Copyright (c) OASIS Open 2020. All Rights Reserved.
Source: https://docs.oasis-open.org/office/OpenDocument/v1.3/cs02/schemas/
Latest stage of specification: https://docs.oasis-open.org/office/OpenDocument/v1.3/OpenDocument-v1.3-part1-introduction.html
TC IPR Statement: https://www.oasis-open.org/committees/office/ipr.php

Open Document Format for Office Applications (OpenDocument) Version 1.3
Relax-NG Schema
OpenDocument-v1.3-schema.rng
-->
<!-- https://issues.oasis-open.org/browse/OFFICE-2153 -->

<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.3 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>
<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>
</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>
</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>
<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>
<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>
<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>
<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>
</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>
<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>rl-tb</rng:value>
<rng:value>tb-rl</rng:value>
<rng:value>tb-lr</rng:value>
<rng:value>lr</rng:value>
<rng:value>rl</rng:value>
<rng:value>tb</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"/>
<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">
<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">
<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"/>
<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"/>
<rng:optional>
<rng:ref name="svg-title"/>
</rng:optional>
<rng:optional>
<rng:ref name="svg-desc"/>
</rng:optional>
<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"/>
<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"/>
<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: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>
<rng:optional>
<rng:attribute name="draw:corner-radius">
<rng:ref name="nonNegativeLength"/>
</rng:attribute>
</rng:optional>
</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"/>
<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: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"/>
<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: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"/>
<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: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"/>
<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: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>
<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">
<rng:ref name="zeroToHundredPercent"/>
</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>
<rng:optional>
<rng:ref name="svg-title"/>
</rng:optional>
<rng:optional>
<rng:ref name="svg-desc"/>
</rng:optional>
<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"/>
<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: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>
<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>
<rng:attribute name="draw:handle-position">
<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:optional>
<rng:attribute name="draw:handle-polar">
<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: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"/>
<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: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"/>
<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:zeroOrMore>
<rng:ref name="draw-glue-point"/>