[Libreoffice-commits] core.git: 2 commits - helpcontent2 schema/libreoffice

Laurent Balland-Poirier laurent.balland-poirier at laposte.net
Mon Aug 29 21:28:23 UTC 2016


 helpcontent2                                                          |    2 
 schema/libreoffice/OpenDocument-dsig-schema-v1.3+libreoffice.rng      |   77 
 schema/libreoffice/OpenDocument-manifest-schema-v1.3+libreoffice.rng  |  217 
 schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng           |18079 ++++++++++
 schema/libreoffice/OpenDocument-v1.3+libreoffice-metadata.owl         |   78 
 schema/libreoffice/OpenDocument-v1.3+libreoffice-package-metadata.owl |   75 
 6 files changed, 18527 insertions(+), 1 deletion(-)

New commits:
commit a46c9aa52a4963ab86bacb59f85b4e33596450fd
Author: Laurent Balland-Poirier <laurent.balland-poirier at laposte.net>
Date:   Thu Aug 18 19:13:06 2016 +0200

    Updated core
    Project: help  a1ae3364bcbf664a39922cefc081ccc74fce570c
    
    Rewrite Trend Line Help page
    
    Insert new types of regression
    Update constraints
    Add new options (X-Y names)
    Reorganisation of the page
    
    Update:
    Convert all power value to <sup></sup>
    Convert unicode character sigma to its HTML code Σ
    as Σ is not recognized
    
    Change-Id: If1fe158d8c19ac80fb03ef3c7491ada5b666ccd0
    Reviewed-on: https://gerrit.libreoffice.org/28225
    Reviewed-by: Olivier Hallot <ohallot at collabora.co.uk>
    Tested-by: Olivier Hallot <ohallot at collabora.co.uk>

diff --git a/helpcontent2 b/helpcontent2
index 32e0463..a1ae336 160000
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit 32e04637f0cdf7f44b17c83fb78f66752430ab41
+Subproject commit a1ae3364bcbf664a39922cefc081ccc74fce570c
commit 65d3436f3b0a5956c66b568df6636c059b2762bb
Author: Thorsten Behrens <Thorsten.Behrens at CIB.de>
Date:   Sun Aug 28 23:39:38 2016 +0200

    schema: copy of v1.3 schema to collect LO extensions
    
    This will be used during export tests, to ensure libreoffice
    extensions are properly added to the schema.
    
    Change-Id: Ia24d914fbe67c135fd8e3ed1add8dbf8fbc05a72
    Reviewed-on: https://gerrit.libreoffice.org/28449
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/schema/libreoffice/OpenDocument-dsig-schema-v1.3+libreoffice.rng b/schema/libreoffice/OpenDocument-dsig-schema-v1.3+libreoffice.rng
new file mode 100644
index 0000000..2694b58
--- /dev/null
+++ b/schema/libreoffice/OpenDocument-dsig-schema-v1.3+libreoffice.rng
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+        Open Document Format for Office Applications (OpenDocument) Version 1.3
+        OASIS Standard, in progress
+	Digital Signatures Relax-NG Schema
+        Source: https://tools.oasis-open.org/version-control/svn/office/
+        Copyright (c) OASIS Open 2002-2011. All Rights Reserved.
+
+	All capitalized terms in the following text have the meanings assigned to them
+   	in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The
+	full Policy may be found at the OASIS website.
+
+	This document and translations of it may be copied and furnished to others, and
+	derivative works that comment on or otherwise explain it or assist in its
+	implementation may be prepared, copied, published, and distributed, in whole or
+	in part, without restriction of any kind, provided that the above copyright
+	notice and this section are included on all such copies and derivative works.
+	However, this document itself may not be modified in any way, including by
+	removing the copyright notice or references to OASIS, except as needed for the
+	purpose of developing any document or deliverable produced by an OASIS
+	Technical Committee (in which case the rules applicable to copyrights, as set
+	forth in the OASIS IPR Policy, must be followed) or as required to translate it
+	into languages other than English.
+
+	The limited permissions granted above are perpetual and will not be revoked by
+	OASIS or its successors or assigns.
+
+	This document and the information contained herein is provided on an "AS IS"
+	basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+	LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
+	INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
+	FITNESS FOR A PARTICULAR PURPOSE. 
+-->
+<rng:grammar xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsig="urn:oasis:names:tc:opendocument:xmlns:digitalsignature:1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <rng:start>
+    <rng:choice>
+      <rng:ref name="dsig-document-signatures"/>
+    </rng:choice>
+  </rng:start>
+  <rng:define name="ds-signature">
+    <rng:element name="ds:Signature">
+      <!-- The permitted content of this element is the permitted -->
+      <!-- content of the Signature element defined by W3C XML    -->
+      <!-- Signature Syntax and Processing (Second Edition).      -->
+      <!-- See OpenDocument v1.3 part 2, section 5.3.             -->
+      <!-- resolved by https://issues.oasis-open.org/browse/OFFICE-3874 -->
+      <rng:ref name="dsMarkup"/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="dsMarkup">
+    <rng:zeroOrMore>
+      <rng:choice>
+        <rng:attribute>
+          <rng:anyName/>
+        </rng:attribute>
+        <rng:text/>
+        <rng:element>
+          <rng:anyName/>
+          <rng:ref name="dsMarkup"/>
+        </rng:element>
+      </rng:choice>
+    </rng:zeroOrMore>
+  </rng:define>
+  <rng:define name="dsig-document-signatures">
+    <rng:element name="dsig:document-signatures">
+      <rng:ref name="dsig-document-signatures-attlist"/>
+      <rng:oneOrMore>
+        <rng:ref name="ds-signature"/>
+      </rng:oneOrMore>
+    </rng:element>
+  </rng:define>
+  <rng:define name="dsig-document-signatures-attlist">
+    <rng:attribute name="dsig:version">
+      <rng:value>1.3</rng:value>
+    </rng:attribute>
+  </rng:define>
+</rng:grammar>
diff --git a/schema/libreoffice/OpenDocument-manifest-schema-v1.3+libreoffice.rng b/schema/libreoffice/OpenDocument-manifest-schema-v1.3+libreoffice.rng
new file mode 100644
index 0000000..f485ffb
--- /dev/null
+++ b/schema/libreoffice/OpenDocument-manifest-schema-v1.3+libreoffice.rng
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+        Open Document Format for Office Applications (OpenDocument) Version 1.3
+        OASIS Standard in progress
+       Manifest Relax-NG Schema
+        Source: https://tools.oasis-open.org/version-control/svn/office/
+        Copyright (c) OASIS Open 2002-2011. All Rights Reserved.
+
+	All capitalized terms in the following text have the meanings assigned to them
+   	in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The
+	full Policy may be found at the OASIS website.
+
+	This document and translations of it may be copied and furnished to others, and
+	derivative works that comment on or otherwise explain it or assist in its
+	implementation may be prepared, copied, published, and distributed, in whole or
+	in part, without restriction of any kind, provided that the above copyright
+	notice and this section are included on all such copies and derivative works.
+	However, this document itself may not be modified in any way, including by
+	removing the copyright notice or references to OASIS, except as needed for the
+	purpose of developing any document or deliverable produced by an OASIS
+	Technical Committee (in which case the rules applicable to copyrights, as set
+	forth in the OASIS IPR Policy, must be followed) or as required to translate it
+	into languages other than English.
+
+	The limited permissions granted above are perpetual and will not be revoked by
+	OASIS or its successors or assigns.
+
+	This document and the information contained herein is provided on an "AS IS"
+	basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+	LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
+	INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
+	FITNESS FOR A PARTICULAR PURPOSE. 
+-->
+<rng:grammar xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <rng:start>
+    <rng:choice>
+      <rng:ref name="manifest"/>
+    </rng:choice>
+  </rng:start>
+  <rng:define name="algorithm">
+    <rng:element name="manifest:algorithm">
+      <rng:ref name="algorithm-attlist"/>
+      <rng:ref name="anyElements"/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="algorithm-attlist">
+    <rng:interleave>
+      <rng:attribute name="manifest:algorithm-name">
+        <rng:choice>
+          <rng:value>Blowfish CFB</rng:value>
+          <rng:ref name="anyURI"/>
+        </rng:choice>
+      </rng:attribute>
+      <rng:attribute name="manifest:initialisation-vector">
+        <rng:ref name="base64Binary"/>
+      </rng:attribute>
+    </rng:interleave>
+  </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="anyURI">
+    <rng:data type="anyURI"/>
+  </rng:define>
+  <rng:define name="base64Binary">
+    <rng:data type="base64Binary"/>
+  </rng:define>
+  <rng:define name="encryption-data">
+    <rng:element name="manifest:encryption-data">
+      <rng:ref name="encryption-data-attlist"/>
+      <rng:ref name="algorithm"/>
+      <rng:optional>
+        <rng:ref name="start-key-generation"/>
+      </rng:optional>
+      <rng:ref name="key-derivation"/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="encryption-data-attlist">
+    <rng:interleave>
+      <rng:attribute name="manifest:checksum-type">
+        <rng:choice>
+          <rng:value>SHA1/1K</rng:value>
+          <rng:ref name="anyURI"/>
+        </rng:choice>
+      </rng:attribute>
+      <rng:attribute name="manifest:checksum">
+        <rng:ref name="base64Binary"/>
+      </rng:attribute>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="file-entry">
+    <rng:element name="manifest:file-entry">
+      <rng:ref name="file-entry-attlist"/>
+      <rng:optional>
+        <rng:ref name="encryption-data"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="file-entry-attlist">
+    <rng:interleave>
+      <rng:attribute name="manifest:full-path">
+        <rng:ref name="string"/>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="manifest:size">
+          <rng:ref name="nonNegativeInteger"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:attribute name="manifest:media-type">
+        <rng:ref name="string"/>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="manifest:preferred-view-mode">
+          <rng:choice>
+            <rng:value>edit</rng:value>
+            <rng:value>presentation-slide-show</rng:value>
+            <rng:value>read-only</rng:value>
+            <rng:ref name="namespacedToken"/>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="manifest:version">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="key-derivation">
+    <rng:element name="manifest:key-derivation">
+      <rng:ref name="key-derivation-attlist"/>
+      <rng:empty/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="key-derivation-attlist">
+    <rng:interleave>
+      <rng:attribute name="manifest:key-derivation-name">
+        <rng:choice>
+          <rng:value>PBKDF2</rng:value>
+          <rng:ref name="anyURI"/>
+        </rng:choice>
+      </rng:attribute>
+      <rng:attribute name="manifest:salt">
+        <rng:ref name="base64Binary"/>
+      </rng:attribute>
+      <rng:attribute name="manifest:iteration-count">
+        <rng:ref name="nonNegativeInteger"/>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="manifest:key-size">
+          <rng:ref name="nonNegativeInteger"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="manifest">
+    <rng:element name="manifest:manifest">
+      <rng:ref name="manifest-attlist"/>
+      <rng:oneOrMore>
+        <rng:ref name="file-entry"/>
+      </rng:oneOrMore>
+    </rng:element>
+  </rng:define>
+  <rng:define name="manifest-attlist">
+    <rng:attribute name="manifest:version">
+      <rng:value>1.3</rng:value>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="namespacedToken">
+    <rng:data type="QName">
+      <rng:param name="pattern">[^:]+:[^:]+</rng:param>
+    </rng:data>
+  </rng:define>
+  <rng:define name="nonNegativeInteger">
+    <rng:data type="nonNegativeInteger"/>
+  </rng:define>
+  <rng:define name="start-key-generation">
+    <rng:element name="manifest:start-key-generation">
+      <rng:ref name="start-key-generation-attlist"/>
+      <rng:empty/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="start-key-generation-attlist">
+    <rng:interleave>
+      <rng:attribute name="manifest:start-key-generation-name">
+        <rng:choice>
+          <rng:value>SHA1</rng:value>
+          <rng:ref name="anyURI"/>
+        </rng:choice>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="manifest:key-size">
+          <rng:ref name="nonNegativeInteger"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="string">
+    <rng:data type="string"/>
+  </rng:define>
+</rng:grammar>
diff --git a/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng b/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng
new file mode 100644
index 0000000..76e6184
--- /dev/null
+++ b/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng
@@ -0,0 +1,18079 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+        Open Document Format for Office Applications (OpenDocument) Version 1.3
+        OASIS Standard, In progress
+	Relax-NG Schema
+        Source: https://tools.oasis-open.org/version-control/svn/office/
+        Copyright (c) OASIS Open 2002-2015. All Rights Reserved.
+
+	All capitalized terms in the following text have the meanings assigned to them
+	in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The
+	full Policy may be found at the OASIS website.
+
+	This document and translations of it may be copied and furnished to others, and
+	derivative works that comment on or otherwise explain it or assist in its
+	implementation may be prepared, copied, published, and distributed, in whole or
+	in part, without restriction of any kind, provided that the above copyright
+	notice and this section are included on all such copies and derivative works.
+	However, this document itself may not be modified in any way, including by
+	removing the copyright notice or references to OASIS, except as needed for the
+	purpose of developing any document or deliverable produced by an OASIS
+	Technical Committee (in which case the rules applicable to copyrights, as set
+	forth in the OASIS IPR Policy, must be followed) or as required to translate it
+	into languages other than English.
+
+	The limited permissions granted above are perpetual and will not be revoked by
+	OASIS or its successors or assigns.
+
+	This document and the information contained herein is provided on an "AS IS"
+	basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+	LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
+	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:choice>
+            <rng:value>forward</rng:value>
+            <rng:value>reverse</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="smil:fadeColor">
+          <rng:ref name="color"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="smil:mode">
+          <rng:choice>
+            <rng:value>in</rng:value>
+            <rng:value>out</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="animation-element">
+    <rng:choice>
+      <rng:element name="anim:animate">
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:ref name="common-anim-named-target-attlist"/>
+        <rng:ref name="common-anim-values-attlist"/>
+        <rng:ref name="common-anim-spline-mode-attlist"/>
+        <rng:ref name="common-spline-anim-value-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+        <rng:ref name="common-anim-add-accum-attlist"/>
+      </rng:element>
+      <rng:element name="anim:set">
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:ref name="common-anim-named-target-attlist"/>
+        <rng:ref name="common-anim-set-values-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+        <rng:ref name="common-anim-add-accum-attlist"/>
+      </rng:element>
+      <rng:element name="anim:animateMotion">
+        <rng:ref name="anim-animate-motion-attlist"/>
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:ref name="common-anim-named-target-attlist"/>
+        <rng:ref name="common-anim-add-accum-attlist"/>
+        <rng:ref name="common-anim-values-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+        <rng:ref name="common-spline-anim-value-attlist"/>
+      </rng:element>
+      <rng:element name="anim:animateColor">
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:ref name="common-anim-named-target-attlist"/>
+        <rng:ref name="common-anim-add-accum-attlist"/>
+        <rng:ref name="common-anim-values-attlist"/>
+        <rng:ref name="common-anim-spline-mode-attlist"/>
+        <rng:ref name="common-spline-anim-value-attlist"/>
+        <rng:ref name="anim-animate-color-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+      </rng:element>
+      <rng:element name="anim:animateTransform">
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:ref name="common-anim-named-target-attlist"/>
+        <rng:ref name="common-anim-add-accum-attlist"/>
+        <rng:ref name="common-anim-values-attlist"/>
+        <rng:ref name="anim-animate-transform-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+      </rng:element>
+      <rng:element name="anim:transitionFilter">
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:ref name="common-anim-add-accum-attlist"/>
+        <rng:ref name="common-anim-values-attlist"/>
+        <rng:ref name="common-anim-spline-mode-attlist"/>
+        <rng:ref name="anim-transition-filter-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+      </rng:element>
+      <rng:element name="anim:par">
+        <rng:ref name="common-anim-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+        <rng:ref name="common-endsync-timing-attlist"/>
+        <rng:zeroOrMore>
+          <rng:ref name="animation-element"/>
+        </rng:zeroOrMore>
+      </rng:element>
+      <rng:element name="anim:seq">
+        <rng:ref name="common-anim-attlist"/>
+        <rng:ref name="common-endsync-timing-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+        <rng:zeroOrMore>
+          <rng:ref name="animation-element"/>
+        </rng:zeroOrMore>
+      </rng:element>
+      <rng:element name="anim:iterate">
+        <rng:ref name="common-anim-attlist"/>
+        <rng:ref name="anim-iterate-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+        <rng:ref name="common-endsync-timing-attlist"/>
+        <rng:zeroOrMore>
+          <rng:ref name="animation-element"/>
+        </rng:zeroOrMore>
+      </rng:element>
+      <rng:element name="anim:audio">
+        <rng:ref name="common-anim-attlist"/>
+        <rng:ref name="anim-audio-attlist"/>
+        <rng:ref name="common-basic-timing-attlist"/>
+      </rng:element>
+      <rng:element name="anim:command">
+        <rng:ref name="common-anim-attlist"/>
+        <rng:ref name="anim-command-attlist"/>
+        <rng:ref name="common-begin-end-timing-attlist"/>
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:zeroOrMore>
+          <rng:element name="anim:param">
+            <rng:attribute name="anim:name">
+              <rng:ref name="string"/>
+            </rng:attribute>
+            <rng:attribute name="anim:value">
+              <rng:ref name="string"/>
+            </rng:attribute>
+          </rng:element>
+        </rng:zeroOrMore>
+      </rng:element>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="any-date">
+    <rng:choice>
+      <rng:ref name="number-day"/>
+      <rng:ref name="number-month"/>
+      <rng:ref name="number-year"/>
+      <rng:ref name="number-era"/>
+      <rng:ref name="number-day-of-week"/>
+      <rng:ref name="number-week-of-year"/>
+      <rng:ref name="number-quarter"/>
+      <rng:ref name="number-hours"/>
+      <rng:ref name="number-am-pm"/>
+      <rng:ref name="number-minutes"/>
+      <rng:ref name="number-seconds"/>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="any-number">
+    <rng:choice>
+      <rng:ref name="number-number"/>
+      <rng:ref name="number-scientific-number"/>
+      <rng:ref name="number-fraction"/>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="any-time">
+    <rng:choice>
+      <rng:ref name="number-hours"/>
+      <rng:ref name="number-am-pm"/>
+      <rng:ref name="number-minutes"/>
+      <rng:ref name="number-seconds"/>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="anyAttListOrElements">
+    <rng:zeroOrMore>
+      <rng:attribute>
+        <rng:anyName/>
+        <rng:text/>
+      </rng:attribute>
+    </rng:zeroOrMore>
+    <rng:ref name="anyElements"/>
+  </rng:define>
+  <rng:define name="anyElements">
+    <rng:zeroOrMore>
+      <rng:element>
+        <rng:anyName/>
+        <rng:mixed>
+          <rng:ref name="anyAttListOrElements"/>
+        </rng:mixed>
+      </rng:element>
+    </rng:zeroOrMore>
+  </rng:define>
+  <rng:define name="anyIRI">
+    <rng:data type="anyURI"/>
+    <dc:description>An IRI-reference as defined in [RFC3987]. See ODF 1.3 Part 3 section 18.3.</dc:description>
+  </rng:define>
+  <rng:define name="anyURI">
+    <rng:data type="anyURI"/>
+  </rng:define>
+  <rng:define name="base64Binary">
+    <rng:data type="base64Binary"/>
+  </rng:define>
+  <rng:define name="boolean">
+    <rng:choice>
+      <rng:value>true</rng:value>
+      <rng:value>false</rng:value>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="borderWidths">
+    <rng:list>
+      <rng:ref name="positiveLength"/>
+      <rng:ref name="positiveLength"/>
+      <rng:ref name="positiveLength"/>
+    </rng:list>
+  </rng:define>
+  <rng:define name="bound-column">
+    <rng:optional>
+      <rng:attribute name="form:bound-column">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="button-type">
+    <rng:optional>
+      <rng:attribute name="form:button-type">
+        <rng:ref name="types"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="cellAddress">
+    <rng:data type="string">
+      <rng:param name="pattern">($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+</rng:param>
+    </rng:data>
+  </rng:define>
+  <rng:define name="cellRangeAddress">
+    <rng:choice>
+      <rng:data type="string">
+        <rng:param name="pattern">($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)?</rng:param>
+      </rng:data>
+      <rng:data type="string">
+        <rng:param name="pattern">($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+:($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+</rng:param>
+      </rng:data>
+      <rng:data type="string">
+        <rng:param name="pattern">($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+</rng:param>
+      </rng:data>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="cellRangeAddressList">
+    <rng:data type="string"/>
+    <dc:description>Value is a space separated list of "cellRangeAddress" patterns</dc:description>
+  </rng:define>
+  <rng:define name="change-mark-attr">
+    <rng:attribute name="text:change-id">
+      <rng:ref name="IDREF"/>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="change-marks">
+    <rng:choice>
+      <rng:element name="text:change">
+        <rng:ref name="change-mark-attr"/>
+      </rng:element>
+      <rng:element name="text:change-start">
+        <rng:ref name="change-mark-attr"/>
+      </rng:element>
+      <rng:element name="text:change-end">
+        <rng:ref name="change-mark-attr"/>
+      </rng:element>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="character">
+    <rng:data type="string">
+      <rng:param name="length">1</rng:param>
+    </rng:data>
+  </rng:define>
+  <rng:define name="chart-axis">
+    <rng:element name="chart:axis">
+      <rng:ref name="chart-axis-attlist"/>
+      <rng:optional>
+        <rng:ref name="chart-title"/>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="chart-categories"/>
+      </rng:optional>
+      <rng:zeroOrMore>
+        <rng:ref name="chart-grid"/>
+      </rng:zeroOrMore>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-axis-attlist">
+    <rng:interleave>
+      <rng:attribute name="chart:dimension">
+        <rng:ref name="chart-dimension"/>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="chart:name">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-categories">
+    <rng:element name="chart:categories">
+      <rng:optional>
+        <rng:attribute name="table:cell-range-address">
+          <rng:ref name="cellRangeAddressList"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-chart">
+    <rng:element name="chart:chart">
+      <rng:ref name="chart-chart-attlist"/>
+      <rng:optional>
+        <rng:ref name="chart-title"/>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="chart-subtitle"/>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="chart-footer"/>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="chart-legend"/>
+      </rng:optional>
+      <rng:ref name="chart-plot-area"/>
+      <rng:optional>
+        <rng:ref name="table-table"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-chart-attlist">
+    <rng:interleave>
+      <rng:attribute name="chart:class">
+        <rng:ref name="namespacedToken"/>
+      </rng:attribute>
+      <rng:ref name="common-draw-size-attlist"/>
+      <rng:optional>
+        <rng:attribute name="chart:column-mapping">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:row-mapping">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:group>
+          <rng:attribute name="xlink:type">
+            <rng:value>simple</rng:value>
+          </rng:attribute>
+          <rng:attribute name="xlink:href">
+            <rng:ref name="anyIRI"/>
+          </rng:attribute>
+        </rng:group>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="xml-id"/>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-data-label">
+    <rng:element name="chart:data-label">
+      <rng:ref name="chart-data-label-attlist"/>
+      <rng:optional>
+        <rng:ref name="text-p"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-data-label-attlist">
+    <rng:interleave>
+      <rng:ref name="common-draw-position-attlist"/>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-data-point">
+    <rng:element name="chart:data-point">
+      <rng:ref name="chart-data-point-attlist"/>
+      <rng:optional>
+        <rng:ref name="chart-data-label"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-data-point-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="chart:repeated">
+          <rng:ref name="positiveInteger"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="xml-id"/>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-dimension">
+    <rng:choice>
+      <rng:value>x</rng:value>
+      <rng:value>y</rng:value>
+      <rng:value>z</rng:value>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="chart-domain">
+    <rng:element name="chart:domain">
+      <rng:optional>
+        <rng:attribute name="table:cell-range-address">
+          <rng:ref name="cellRangeAddressList"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-equation">
+    <rng:element name="chart:equation">
+      <rng:ref name="chart-equation-attlist"/>
+      <rng:optional>
+        <rng:ref name="text-p"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-equation-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="chart:automatic-content">
+          <rng:ref name="boolean"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:display-r-square">
+          <rng:ref name="boolean"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:display-equation">
+          <rng:ref name="boolean"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:ref name="common-draw-position-attlist"/>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-error-indicator">
+    <rng:element name="chart:error-indicator">
+      <rng:ref name="chart-error-indicator-attlist"/>
+      <rng:empty/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-error-indicator-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:attribute name="chart:dimension">
+        <rng:ref name="chart-dimension"/>
+      </rng:attribute>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-floor">
+    <rng:element name="chart:floor">
+      <rng:ref name="chart-floor-attlist"/>
+      <rng:empty/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-floor-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="svg:width">
+          <rng:ref name="length"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-footer">
+    <rng:element name="chart:footer">
+      <rng:ref name="chart-title-attlist"/>
+      <rng:optional>
+        <rng:ref name="text-p"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-grid">
+    <rng:element name="chart:grid">
+      <rng:ref name="chart-grid-attlist"/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-grid-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="chart:class">
+          <rng:choice>
+            <rng:value>major</rng:value>
+            <rng:value>minor</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-legend">
+    <rng:element name="chart:legend">
+      <rng:ref name="chart-legend-attlist"/>
+      <rng:optional>
+        <rng:ref name="text-p"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-legend-attlist">
+    <rng:interleave>
+      <rng:choice>
+        <rng:group>
+          <rng:attribute name="chart:legend-position">
+            <rng:choice>
+              <rng:value>start</rng:value>
+              <rng:value>end</rng:value>
+              <rng:value>top</rng:value>
+              <rng:value>bottom</rng:value>
+            </rng:choice>
+          </rng:attribute>
+          <rng:optional>
+            <rng:attribute name="chart:legend-align">
+              <rng:choice>
+                <rng:value>start</rng:value>
+                <rng:value>center</rng:value>
+                <rng:value>end</rng:value>
+              </rng:choice>
+            </rng:attribute>
+          </rng:optional>
+        </rng:group>
+        <rng:attribute name="chart:legend-position">
+          <rng:choice>
+            <rng:value>top-start</rng:value>
+            <rng:value>bottom-start</rng:value>
+            <rng:value>top-end</rng:value>
+            <rng:value>bottom-end</rng:value>
+          </rng:choice>
+        </rng:attribute>
+        <rng:empty/>
+      </rng:choice>
+      <rng:ref name="common-draw-position-attlist"/>
+      <rng:choice>
+        <rng:attribute name="style:legend-expansion">
+          <rng:choice>
+            <rng:value>wide</rng:value>
+            <rng:value>high</rng:value>
+            <rng:value>balanced</rng:value>
+          </rng:choice>
+        </rng:attribute>
+        <rng:group>
+          <rng:attribute name="style:legend-expansion">
+            <rng:value>custom</rng:value>
+          </rng:attribute>
+          <rng:attribute name="style:legend-expansion-aspect-ratio">
+            <rng:ref name="double"/>
+          <ref name="common-draw-size-attlist"/>
+          </rng:attribute>
+        </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: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: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-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="positiveInteger"/>
+          <rng:value>auto</rng:value>
+        </rng:choice>
+      </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>

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list