[Libreoffice-commits] core.git: schema/libreoffice test/source

Michael Stahl Michael.Stahl at cib.de
Fri Jun 29 11:00:24 UTC 2018


 schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng |19236 ------------
 test/source/bootstrapfixture.cxx                            |    4 
 2 files changed, 1178 insertions(+), 18062 deletions(-)

New commits:
commit 6947cee055a17a041819e9b3010c0b26d33d002c
Author: Michael Stahl <Michael.Stahl at cib.de>
Date:   Tue Jun 26 18:42:19 2018 +0200

    schema: ODF 1.3 + libreoffice extensions schema
    
    Build this with RelaxNG <include> feature instead of a complete schema.
    
    This isn't bad but could work better if the schema were a little more
    modular...
    
    In order to track down all the uses of extension namespaces like loext,
    invoke the validator without "-e".
    
    Change-Id: I92a666fc54c25d66cea38decdc188d60de2a0b74
    Reviewed-on: https://gerrit.libreoffice.org/56488
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>

diff --git a/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng b/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng
index 56d223b2b299..21d3cd2d5aa7 100644
--- a/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng
+++ b/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng
@@ -31,18250 +31,1364 @@
 	INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
 	FITNESS FOR A PARTICULAR PURPOSE. 
 -->
-<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:oa
 sis: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: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:oa
 sis: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"
+
+xmlns:officeooo="http://openoffice.org/2009/office"
+xmlns:tableooo="http://openoffice.org/2009/table"
+xmlns:chartooo="http://openoffice.org/2010/chart"
+xmlns:css3t="http://www.w3.org/TR/css3-text/"
+xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"
+xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
+>
+  <rng:include href="../odf1.3/OpenDocument-schema-v1.3.rng">
+
+    <rng:define name="office-document-common-attrs">
+      <rng:interleave>
+        <rng:attribute name="office:version">
+      <!-- FIXME remove this hack once we write 1.3 -->
           <rng:choice>
-            <rng:value>forward</rng:value>
-            <rng:value>reverse</rng:value>
+          <rng:value>1.3</rng:value>
+          <rng:value>1.2</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:optional>
+          <rng:attribute name="grddl:transformation">
+            <rng:list>
+              <rng:zeroOrMore>
+                <rng:ref name="anyIRI"/>
+              </rng:zeroOrMore>
+            </rng:list>
+          </rng:attribute>
+        </rng:optional>
+      </rng:interleave>
+    </rng:define>
+
+    <rng:define name="draw-text">
+      <rng:zeroOrMore>
+        <rng:choice>
+          <rng:ref name="text-p"/>
+          <rng:ref name="text-list"/>
+          <!-- https://issues.oasis-open.org/browse/OFFICE-3761 -->
+          <rng:ref name="loext-table"/>
+        </rng:choice>
+      </rng:zeroOrMore>
+    </rng:define>
+
+    <!-- FIXME this is not extensible -->
+    <rng:define name="office-annotation">
+      <rng:element name="office:annotation">
+        <rng:ref name="office-annotation-attlist"/>
+        <rng:ref name="draw-caption-attlist"/>
+        <rng:ref name="common-draw-position-attlist"/>
+        <rng:ref name="common-draw-size-attlist"/>
+        <rng:ref name="common-draw-shape-with-text-and-styles-attlist"/>
+        <rng:optional>
+          <rng:ref name="dc-creator"/>
+        </rng:optional>
+        <rng:optional>
+          <rng:ref name="dc-date"/>
+        </rng:optional>
+        <rng:optional>
+          <rng:ref name="meta-date-string"/>
+        </rng:optional>
+        <rng:optional>
+          <rng:element name="meta:creator-initials">
+            <rng:text/>
+          </rng:element>
+        </rng:optional>
+        <!-- https://issues.oasis-open.org/browse/OFFICE-3776 -->
+        <rng:optional>
+          <rng:element name="loext:sender-initials">
+            <rng:text/>
+          </rng:element>
+        </rng:optional>
+        <rng:zeroOrMore>
           <rng:choice>
-            <rng:value>in</rng:value>
-            <rng:value>out</rng:value>
+            <rng:ref name="text-p"/>
+            <rng:ref name="text-list"/>
           </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:define>
+
+    <rng:define name="style-style-content">
+      <rng:choice>
         <rng:group>
-          <rng:attribute name="xlink:type">
-            <rng:value>simple</rng:value>
+          <rng:attribute name="style:family">
+            <rng:value>text</rng:value>
           </rng:attribute>
-          <rng:attribute name="xlink:href">
-            <rng:ref name="anyIRI"/>
+          <rng:optional>
+            <rng:ref name="style-text-properties"/>
+          </rng:optional>
+        </rng:group>
+        <rng:group>
+          <rng:attribute name="style:family">
+            <rng:value>paragraph</rng:value>
           </rng:attribute>
+    <!-- TODO no proposal -->
+          <rng:optional>
+            <rng:ref name="loext-graphic-properties"/>
+          </rng:optional>
+          <rng:optional>
+            <rng:ref name="style-paragraph-properties"/>
+          </rng:optional>
+          <rng:optional>
+            <rng:ref name="style-text-properties"/>
+          </rng:optional>
+        </rng:group>
+        <rng:group>
+          <rng:attribute name="style:family">
+            <rng:value>section</rng:value>
+          </rng:attribute>
+          <rng:optional>
+            <rng:ref name="style-section-properties"/>
+          </rng:optional>
+        </rng:group>
+        <rng:group>
+          <rng:attribute name="style:family">
+            <rng:value>ruby</rng:value>
+          </rng:attribute>
+          <rng:optional>
+            <rng:ref name="style-ruby-properties"/>
+          </rng:optional>
+        </rng:group>
+        <rng:group>
+          <rng:attribute name="style:family">
+            <rng:value>table</rng:value>
+          </rng:attribute>
+          <rng:optional>
+            <rng:ref name="style-table-properties"/>
+          </rng:optional>
+        </rng:group>
+        <rng:group>
+          <rng:attribute name="style:family">
+            <rng:value>table-column</rng:value>
+          </rng:attribute>
+          <rng:optional>
+            <rng:ref name="style-table-column-properties"/>
+          </rng:optional>
+        </rng:group>
+        <rng:group>
+          <rng:attribute name="style:family">
+            <rng:value>table-row</rng:value>
+          </rng:attribute>
+          <rng:optional>
+            <rng:ref name="style-table-row-properties"/>
+          </rng:optional>
+        </rng:group>
+        <rng:group>
+          <rng:attribute name="style:family">
+            <rng:value>table-cell</rng:value>
+          </rng:attribute>
+    <!-- TODO no proposal -->
+          <rng:optional>
+            <rng:ref name="loext-graphic-properties"/>
+          </rng:optional>
+          <rng:optional>
+            <rng:ref name="style-table-cell-properties"/>
+          </rng:optional>
+          <rng:optional>
+            <rng:ref name="style-paragraph-properties"/>
+          </rng:optional>
+          <rng:optional>
+            <rng:ref name="style-text-properties"/>
+          </rng:optional>
         </rng:group>
-      </rng: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:attribute name="style:family">
             <rng:choice>
-              <rng:value>start</rng:value>
-              <rng:value>end</rng:value>
-              <rng:value>top</rng:value>
-              <rng:value>bottom</rng:value>
+              <rng:value>graphic</rng:value>
+              <rng:value>presentation</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:ref name="style-graphic-properties"/>
+          </rng:optional>
+          <rng:optional>
+            <rng:ref name="style-paragraph-properties"/>
+          </rng:optional>
+          <rng:optional>
+            <rng:ref name="style-text-properties"/>
           </rng:optional>
         </rng:group>
-        <rng: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 name="style:family">
+            <rng:value>drawing-page</rng:value>
           </rng:attribute>
-          <rng:attribute name="style:legend-expansion-aspect-ratio">
-            <rng:ref name="double"/>
+          <rng:optional>
+            <rng:ref name="style-drawing-page-properties"/>
+          </rng:optional>
+        </rng:group>
+        <rng:group>
+          <rng:attribute name="style:family">
+            <rng:value>chart</rng:value>
           </rng:attribute>
-          <rng:ref name="common-draw-size-attlist"/>
-	  <!-- https://issues.oasis-open.org/browse/OFFICE-3883 -->
+          <rng:optional>
+            <rng:ref name="style-chart-properties"/>
+          </rng:optional>
+          <rng:optional>
+            <rng:ref name="style-graphic-properties"/>
+          </rng:optional>
+          <rng:optional>
+            <rng:ref name="style-paragraph-properties"/>
+          </rng:optional>
+          <rng:optional>
+            <rng:ref name="style-text-properties"/>
+          </rng:optional>
         </rng:group>
-        <rng: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>
-      <!-- OFFICE-3860 -->
-    </rng:optional>
-  </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>

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list