schema/odf1.4/OpenDocument-v1.4-dsig-schema.rng      |   60 
 schema/odf1.4/OpenDocument-v1.4-manifest-schema.rng  |  237 
 schema/odf1.4/OpenDocument-v1.4-metadata.owl         |   62 
 schema/odf1.4/OpenDocument-v1.4-package-metadata.owl |   59 
 schema/odf1.4/OpenDocument-v1.4-schema.rng           |18572 +++++++++++++++++++
 5 files changed, 18990 insertions(+)

New commits:
commit 7244f5eaf7c2879e7b18f8d650c88d1aaff31c24
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Thu Aug 22 14:05:26 2024 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Tue Sep 24 10:49:37 2024 +0200

    ODF 1.4: Add schema
    
    Source: https://github.com/oasis-tcs/odf-tc/tree/master/docs/odf1.4/schemas
    Change-Id: I8b00d6c3c6c3df9c7fc40bcda9379199ff74a7b1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172253
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/schema/odf1.4/OpenDocument-v1.4-dsig-schema.rng 
b/schema/odf1.4/OpenDocument-v1.4-dsig-schema.rng
new file mode 100644
index 000000000000..7ad488a7f7e9
--- /dev/null
+++ b/schema/odf1.4/OpenDocument-v1.4-dsig-schema.rng
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+     Open Document Format for Office Applications (OpenDocument) Version 1.4
+     OASIS Standard
+     11 March 2024
+     Copyright (c) OASIS Open 2024. All Rights Reserved.
+     Source: 
https://docs.oasis-open.org/office/OpenDocument/v1.4/csd01/schemas/
+     Latest stage of specification: 
https://docs.oasis-open.org/office/OpenDocument/v1.4/OpenDocument-v1.4-part1-introduction.html
+     TC IPR Statement: https://www.oasis-open.org/committees/office/ipr.php 
+
+        Open Document Format for Office Applications (OpenDocument) Version 1.4
+        Digital Signatures Relax-NG Schema     
+        OpenDocument-v1.4-dsig-schema.rng
+-->
+<!-- https://issues.oasis-open.org/browse/OFFICE-2153 -->
+
+<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.4 part 2, section 5.3.             -->
+      <!-- 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.4</rng:value>
+    </rng:attribute>
+  </rng:define>
+</rng:grammar>
diff --git a/schema/odf1.4/OpenDocument-v1.4-manifest-schema.rng 
b/schema/odf1.4/OpenDocument-v1.4-manifest-schema.rng
new file mode 100644
index 000000000000..5e3e5df9ea36
--- /dev/null
+++ b/schema/odf1.4/OpenDocument-v1.4-manifest-schema.rng
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+     Open Document Format for Office Applications (OpenDocument) Version 1.4
+     OASIS Standard
+     11 March 2024
+     Copyright (c) OASIS Open 2024. All Rights Reserved.
+     Source: 
https://docs.oasis-open.org/office/OpenDocument/v1.4/csd01/schemas/
+     Latest stage of specification: 
https://docs.oasis-open.org/office/OpenDocument/v1.4/OpenDocument-v1.4-part1-introduction.html
+     TC IPR Statement: https://www.oasis-open.org/committees/office/ipr.php 
+
+        Open Document Format for Office Applications (OpenDocument) Version 1.4
+        Manifest Relax-NG Schema
+        OpenDocument-v1.4-manifest-schema.rng
+-->
+<!-- https://issues.oasis-open.org/browse/OFFICE-2153 -->
+
+<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="encrypted-key">
+    <rng:element name="manifest:encrypted-key">
+      <rng:optional>
+        <rng:element name="manifest:encryption-method">
+          <rng:attribute name="manifest:PGPAlgorithm">
+            <rng:ref name="anyURI"/>
+          </rng:attribute>
+        </rng:element>
+      </rng:optional>
+      <rng:element name="manifest:keyinfo">
+        <rng:element name="manifest:PGPData">
+          <rng:element name="manifest:PGPKeyID">
+            <rng:ref name="base64Binary"/>
+          </rng:element>
+          <rng:optional>
+            <rng:element name="manifest:PGPKeyPacket">
+              <rng:ref name="base64Binary"/>
+            </rng:element>
+          </rng:optional>
+        </rng:element>
+      </rng:element>
+      <rng:element name="manifest:CipherData">
+        <rng:element name="manifest:CipherValue">
+          <rng:ref name="base64Binary"/>
+        </rng:element>
+      </rng:element>
+    </rng:element>
+  </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:choice>
+      <rng:attribute name="manifest:key-derivation-name">
+        <rng:value>PGP</rng:value>
+      </rng:attribute>
+      <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:choice>
+  </rng:define>
+  <rng:define name="manifest">
+    <rng:element name="manifest:manifest">
+      <rng:ref name="manifest-attlist"/>
+      <rng:zeroOrMore>
+        <rng:ref name="encrypted-key"/>
+      </rng:zeroOrMore>
+      <!-- https://issues.oasis-open.org/browse/OFFICE-3940 -->
+      <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.4</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/odf1.4/OpenDocument-v1.4-metadata.owl 
b/schema/odf1.4/OpenDocument-v1.4-metadata.owl
new file mode 100644
index 000000000000..45f2ecdd3d20
--- /dev/null
+++ b/schema/odf1.4/OpenDocument-v1.4-metadata.owl
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+     Open Document Format for Office Applications (OpenDocument) Version 1.4
+     OASIS Standard
+     11 March 2024
+     Copyright (c) OASIS Open 2024. All Rights Reserved.
+     Source: 
https://docs.oasis-open.org/office/OpenDocument/v1.4/csd01/schemas/
+     Latest stage of specification: 
https://docs.oasis-open.org/office/OpenDocument/v1.4/OpenDocument-v1.4-part1-introduction.html
+     TC IPR Statement: https://www.oasis-open.org/committees/office/ipr.php 
+
+        Open Document Format for Office Applications (OpenDocument) Version 1.4
+        OWL Schema Metadata Manifest Description
+        OpenDocument-v1.4-metadata.owl
+-->
+
+<!-- https://issues.oasis-open.org/browse/OFFICE-2153 -->
+
+<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/"; 
xmlns:odf="http://docs.oasis-open.org/ns/office/1.2/meta/odf#"; 
xmlns:owl="http://www.w3.org/2002/07/owl#"; 
xmlns:pkg="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#"; 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"; 
xmlns="http://www.w3.org/2000/01/rdf-schema#";>
+
+<owl:Ontology rdf:about="http://docs.oasis-open.org/ns/office/1.2/meta/odf#";>
+       <owl:imports 
rdf:resource="http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-package-metadata.owl"/>
+       <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+       <dc:title xml:lang="en">Open Document Schema Metadata Manifest 
Ontology</dc:title>
+       <label xml:lang="en">ODF Schema Metadata Manifest</label>
+</owl:Ontology>
+
+<owl:Class 
rdf:about="http://docs.oasis-open.org/ns/office/1.2/meta/odf#ContentFile";>
+       <label xml:lang="en">The OpenDocument Content File</label>
+       <comment xml:lang="en">The unique content.xml from the root path of the 
document</comment>
+       <subClassOf 
rdf:resource="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#File"/>
+</owl:Class>
+
+<owl:Class 
rdf:about="http://docs.oasis-open.org/ns/office/1.2/meta/odf#StylesFile";>
+       <label xml:lang="en">The OpenDocument Styles File</label>
+       <comment xml:lang="en">The unique styles.xml from the root path of the 
document</comment>
+       <subClassOf 
rdf:resource="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#File"/>
+</owl:Class>
+
+<owl:Class 
rdf:about="http://docs.oasis-open.org/ns/office/1.2/meta/odf#Element";>
+       <label xml:lang="en">OpenDocument Package ODF XML Element</label>
+       <subClassOf 
rdf:resource="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#Element"/>
+</owl:Class>
+
+<owl:Class 
rdf:about="urn:oasis:names:tc:opendocument:xmlns:text:1.0meta-field">
+       <label xml:lang="en">OpenDocument Meta field Element</label>
+       <subClassOf 
rdf:resource="http://docs.oasis-open.org/ns/office/1.2/meta/odf#Element"/>
+</owl:Class>
+
+<owl:DatatypeProperty 
rdf:about="http://docs.oasis-open.org/ns/office/1.2/meta/odf#prefix";>
+       <rdf:type 
rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+       <domain 
rdf:resource="urn:oasis:names:tc:opendocument:xmlns:text:1.0meta-field"/>
+       <range 
rdf:resource="http://www.w3.org/2001/XMLSchema-datatypes#string"/>
+       <label xml:lang="en">has prefix</label>
+</owl:DatatypeProperty>
+
+<owl:DatatypeProperty 
rdf:about="http://docs.oasis-open.org/ns/office/1.2/meta/odf#suffix";>
+       <rdf:type 
rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+       <domain 
rdf:resource="urn:oasis:names:tc:opendocument:xmlns:text:1.0meta-field"/>
+       <range 
rdf:resource="http://www.w3.org/2001/XMLSchema-datatypes#string"/>
+       <label xml:lang="en">has suffix</label>
+</owl:DatatypeProperty>
+</rdf:RDF>
diff --git a/schema/odf1.4/OpenDocument-v1.4-package-metadata.owl 
b/schema/odf1.4/OpenDocument-v1.4-package-metadata.owl
new file mode 100644
index 000000000000..1d9e3e24663e
--- /dev/null
+++ b/schema/odf1.4/OpenDocument-v1.4-package-metadata.owl
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+     Open Document Format for Office Applications (OpenDocument) Version 1.4
+     OASIS Standard
+     11 March 2024
+     Copyright (c) OASIS Open 2024. All Rights Reserved.
+     Source: 
https://docs.oasis-open.org/office/OpenDocument/v1.4/csd01/schemas/
+     Latest stage of specification: 
https://docs.oasis-open.org/office/OpenDocument/v1.4/OpenDocument-v1.4-part1-introduction.html
+     TC IPR Statement: https://www.oasis-open.org/committees/office/ipr.php 
+
+        Open Document Format for Office Applications (OpenDocument) Version 1.4
+        OWL Package Metadata Manifest Description
+        OpenDocument-v1.4-package-metadata.owl
+-->
+
+<!-- https://issues.oasis-open.org/browse/OFFICE-2153 -->
+
+<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/"; 
xmlns:owl="http://www.w3.org/2002/07/owl#"; 
xmlns:pkg="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#"; 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"; 
xmlns="http://www.w3.org/2000/01/rdf-schema#";>
+
+<owl:Ontology rdf:about="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#";>
+       <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+       <dc:title xml:lang="en">Open Document Package Metadata Manifest 
Ontology</dc:title>
+       <label xml:lang="en">ODF Package Metadata Manifest</label>
+</owl:Ontology>
+
+<owl:Class 
rdf:about="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#Document";>
+       <label xml:lang="en">OpenDocument Document</label>
+</owl:Class>
+
+<owl:Class rdf:about="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#File";>
+       <label xml:lang="en"> OpenDocument Document Package File</label>
+</owl:Class>
+
+<owl:ObjectProperty 
rdf:about="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#hasPart";>
+       <domain 
rdf:resource="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#Document"/>
+       <range 
rdf:resource="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#File"/>
+       <label xml:lang="en">contains</label>
+       <comment xml:lang="en">Related to dcterms:hasPart of the Dublin Core 
Metadata Initiative</comment>
+</owl:ObjectProperty>
+
+<owl:Class 
rdf:about="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#MetadataFile";>
+       <label xml:lang="en">An OpenDocument Metadata File</label>
+       <comment xml:lang="en">Used for any metadata file in the 
document</comment>
+       <subClassOf 
rdf:resource="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#File"/>
+</owl:Class>
+
+<owl:DatatypeProperty 
rdf:about="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#mimeType";>
+       <rdf:type 
rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+       <domain 
rdf:resource="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#File"/>
+       <range 
rdf:resource="http://www.w3.org/2001/XMLSchema-datatypes#string"/>
+       <label xml:lang="en">the MIME type</label>
+       <comment xml:lang="en">A string representing the MIME media type of a 
file (see RFC4288).</comment>
+</owl:DatatypeProperty>
+
+<owl:Class 
rdf:about="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#Element";>
+       <label xml:lang="en">OpenDocument Package XML Element</label>
+</owl:Class>
+
+</rdf:RDF>
diff --git a/schema/odf1.4/OpenDocument-v1.4-schema.rng 
b/schema/odf1.4/OpenDocument-v1.4-schema.rng
new file mode 100644
index 000000000000..e1047fb1f2bd
--- /dev/null
+++ b/schema/odf1.4/OpenDocument-v1.4-schema.rng
@@ -0,0 +1,18572 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+     Open Document Format for Office Applications (OpenDocument) Version 1.4
+     OASIS Standard
+     11 March 2024
+     Copyright (c) OASIS Open 2024. All Rights Reserved.
+     Source: 
https://docs.oasis-open.org/office/OpenDocument/v1.4/csd01/schemas/
+     Latest stage of specification: 
https://docs.oasis-open.org/office/OpenDocument/v1.4/OpenDocument-v1.4-part1-introduction.html
+     TC IPR Statement: https://www.oasis-open.org/committees/office/ipr.php 
+
+        Open Document Format for Office Applications (OpenDocument) Version 1.4
+        Relax-NG Schema
+        OpenDocument-v1.4-schema.rng
+-->
+<!-- https://issues.oasis-open.org/browse/OFFICE-2153 -->
+<!-- https://issues.oasis-open.org/browse/OFFICE-4126 -->
+
+<rng:grammar xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" 
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" 
xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" 
xmlns:db="urn:oasis:names:tc:opendocument:xmlns:database:1.0" 
xmlns:dc="http://purl.org/dc/elements/1.1/"; 
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" 
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" 
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" 
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" 
xmlns:grddl="http://www.w3.org/2003/g/data-view#"; 
xmlns:math="http://www.w3.org/1998/Math/MathML"; 
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" 
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" 
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" 
xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" 
xmlns:rng="http://relaxng.org/ns/structure/1.0"; xmlns:script="urn: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-[:]][+      <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-[:]][+      <rng:param 
name="minLength">3</rng:param>
+    </rng:data>
+  </rng:define>
+  <rng:define name="URIorSafeCURIE">
+    <rng:choice>
+      <rng:ref name="anyURI"/>
+      <rng:ref name="SafeCURIE"/>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="angle">
+    <rng:data type="string"/>
+  </rng:define>
+  <rng:define name="anim-animate-color-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="anim:color-interpolation">
+          <rng:choice>
+            <rng:value>rgb</rng:value>
+            <rng:value>hsl</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="anim:color-interpolation-direction">
+          <rng:choice>
+            <rng:value>clockwise</rng:value>
+            <rng:value>counter-clockwise</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="anim-animate-motion-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="svg:path">
+          <rng:ref name="pathData"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="svg:origin">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="smil:calcMode">
+          <rng:choice>
+            <rng:value>discrete</rng:value>
+            <rng:value>linear</rng:value>
+            <rng:value>paced</rng:value>
+            <rng:value>spline</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="anim-animate-transform-attlist">
+    <rng:attribute name="svg:type">
+      <rng:choice>
+        <rng:value>translate</rng:value>
+        <rng:value>scale</rng:value>
+        <rng:value>rotate</rng:value>
+        <rng:value>skewX</rng:value>
+        <rng:value>skewY</rng:value>
+      </rng:choice>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="anim-audio-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="xlink:href">
+          <rng:ref name="anyIRI"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="anim:audio-level">
+          <rng:ref name="double"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="anim-command-attlist">
+    <rng:attribute name="anim:command">
+      <rng:ref name="string"/>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="anim-iterate-attlist">
+    <rng:interleave>
+      <rng:ref name="common-anim-target-attlist"/>
+      <rng:optional>
+        <rng:attribute name="anim:iterate-type">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="anim:iterate-interval">
+          <rng:ref name="duration"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="anim-transition-filter-attlist">
+    <rng:interleave>
+      <rng:attribute name="smil:type">
+        <rng:ref name="string"/>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="smil:subtype">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="smil:direction">
+          <rng:choice>
+            <rng:value>forward</rng:value>
+            <rng:value>reverse</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="smil:fadeColor">
+          <rng:ref name="color"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="smil:mode">
+          <rng:choice>
+            <rng:value>in</rng:value>
+            <rng:value>out</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="animation-element">
+    <rng:choice>
+      <rng:element name="anim:animate">
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:ref name="common-anim-named-target-attlist"/>
+        <rng:ref name="common-anim-values-attlist"/>
+        <rng:ref name="common-anim-spline-mode-attlist"/>
+        <rng:ref name="common-spline-anim-value-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+        <rng:ref name="common-anim-add-accum-attlist"/>
+      </rng:element>
+      <rng:element name="anim:set">
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:ref name="common-anim-named-target-attlist"/>
+        <rng:ref name="common-anim-set-values-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+        <rng:ref name="common-anim-add-accum-attlist"/>
+      </rng:element>
+      <rng:element name="anim:animateMotion">
+        <rng:ref name="anim-animate-motion-attlist"/>
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:ref name="common-anim-named-target-attlist"/>
+        <rng:ref name="common-anim-add-accum-attlist"/>
+        <rng:ref name="common-anim-values-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+        <rng:ref name="common-spline-anim-value-attlist"/>
+      </rng:element>
+      <rng:element name="anim:animateColor">
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:ref name="common-anim-named-target-attlist"/>
+        <rng:ref name="common-anim-add-accum-attlist"/>
+        <rng:ref name="common-anim-values-attlist"/>
+        <rng:ref name="common-anim-spline-mode-attlist"/>
+        <rng:ref name="common-spline-anim-value-attlist"/>
+        <rng:ref name="anim-animate-color-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+      </rng:element>
+      <rng:element name="anim:animateTransform">
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:ref name="common-anim-named-target-attlist"/>
+        <rng:ref name="common-anim-add-accum-attlist"/>
+        <rng:ref name="common-anim-values-attlist"/>
+        <rng:ref name="anim-animate-transform-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+      </rng:element>
+      <rng:element name="anim:transitionFilter">
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:ref name="common-anim-add-accum-attlist"/>
+        <rng:ref name="common-anim-values-attlist"/>
+        <rng:ref name="common-anim-spline-mode-attlist"/>
+        <rng:ref name="anim-transition-filter-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+      </rng:element>
+      <rng:element name="anim:par">
+        <rng:ref name="common-anim-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+        <rng:ref name="common-endsync-timing-attlist"/>
+        <rng:zeroOrMore>
+          <rng:ref name="animation-element"/>
+        </rng:zeroOrMore>
+      </rng:element>
+      <rng:element name="anim:seq">
+        <rng:ref name="common-anim-attlist"/>
+        <rng:ref name="common-endsync-timing-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+        <rng:zeroOrMore>
+          <rng:ref name="animation-element"/>
+        </rng:zeroOrMore>
+      </rng:element>
+      <rng:element name="anim:iterate">
+        <rng:ref name="common-anim-attlist"/>
+        <rng:ref name="anim-iterate-attlist"/>
+        <rng:ref name="common-timing-attlist"/>
+        <rng:ref name="common-endsync-timing-attlist"/>
+        <rng:zeroOrMore>
+          <rng:ref name="animation-element"/>
+        </rng:zeroOrMore>
+      </rng:element>
+      <rng:element name="anim:audio">
+        <rng:ref name="common-anim-attlist"/>
+        <rng:ref name="anim-audio-attlist"/>
+        <rng:ref name="common-basic-timing-attlist"/>
+      </rng:element>
+      <rng:element name="anim:command">
+        <rng:ref name="common-anim-attlist"/>
+        <rng:ref name="anim-command-attlist"/>
+        <rng:ref name="common-begin-end-timing-attlist"/>
+        <rng:ref name="common-anim-target-attlist"/>
+        <rng:zeroOrMore>
+          <rng:element name="anim:param">
+            <rng:attribute name="anim:name">
+              <rng:ref name="string"/>
+            </rng:attribute>
+            <rng:attribute name="anim:value">
+              <rng:ref name="string"/>
+            </rng:attribute>
+          </rng:element>
+        </rng:zeroOrMore>
+      </rng:element>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="any-date">
+    <rng:choice>
+      <rng:ref name="number-day"/>
+      <rng:ref name="number-month"/>
+      <rng:ref name="number-year"/>
+      <rng:ref name="number-era"/>
+      <rng:ref name="number-day-of-week"/>
+      <rng:ref name="number-week-of-year"/>
+      <rng:ref name="number-quarter"/>
+      <rng:ref name="number-hours"/>
+      <rng:ref name="number-am-pm"/>
+      <rng:ref name="number-minutes"/>
+      <rng:ref name="number-seconds"/>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="any-number">
+    <rng:choice>
+      <rng:ref name="number-number"/>
+      <rng:ref name="number-scientific-number"/>
+      <rng:ref name="number-fraction"/>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="any-time">
+    <rng:choice>
+      <rng:ref name="number-hours"/>
+      <rng:ref name="number-am-pm"/>
+      <rng:ref name="number-minutes"/>
+      <rng:ref name="number-seconds"/>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="anyAttListOrElements">
+    <rng:zeroOrMore>
+      <rng:attribute>
+        <rng:anyName/>
+        <rng:text/>
+      </rng:attribute>
+    </rng:zeroOrMore>
+    <rng:ref name="anyElements"/>
+  </rng:define>
+  <rng:define name="anyElements">
+    <rng:zeroOrMore>
+      <rng:element>
+        <rng:anyName/>
+        <rng:mixed>
+          <rng:ref name="anyAttListOrElements"/>
+        </rng:mixed>
+      </rng:element>
+    </rng:zeroOrMore>
+  </rng:define>
+  <rng:define name="anyIRI">
+    <rng:data type="anyURI"/>
+    <dc:description>An IRI-reference as defined in [RFC3987]. See ODF 1.4 Part 
3 section 18.3.</dc:description>
+  </rng:define>
+  <rng:define name="anyURI">
+    <rng:data type="anyURI"/>
+  </rng:define>
+  <rng:define name="base64Binary">
+    <rng:data type="base64Binary"/>
+  </rng:define>
+  <rng:define name="boolean">
+    <rng:choice>
+      <rng:value>true</rng:value>
+      <rng:value>false</rng:value>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="borderWidths">
+    <rng:list>
+      <rng:ref name="positiveLength"/>
+      <rng:ref name="positiveLength"/>
+      <rng:ref name="positiveLength"/>
+    </rng:list>
+  </rng:define>
+  <rng:define name="bound-column">
+    <rng:optional>
+      <rng:attribute name="form:bound-column">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="button-type">
+    <rng:optional>
+      <rng:attribute name="form:button-type">
+        <rng:ref name="types"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="cellAddress">
+    <rng:data type="string">
+      <rng:param name="pattern">($?([^\. 
']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+</rng:param>
+    </rng:data>
+  </rng:define>
+  <rng:define name="cellRangeAddress">
+    <rng:choice>
+      <rng:data type="string">
+        <rng:param name="pattern">($?([^\. 
']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. 
']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)?</rng:param>
+      </rng:data>
+      <rng:data type="string">
+        <rng:param name="pattern">($?([^\. 
']+|'([^']|'')+'))?\.$?[0-9]+:($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+</rng:param>
+      </rng:data>
+      <rng:data type="string">
+        <rng:param name="pattern">($?([^\. 
']+|'([^']|'')+'))?\.$?[A-Z]+:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+</rng:param>
+      </rng:data>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="cellRangeAddressList">
+    <rng:data type="string"/>
+    <dc:description>Value is a space separated list of "cellRangeAddress" 
patterns</dc:description>
+  </rng:define>
+  <rng:define name="change-mark-attr">
+    <rng:attribute name="text:change-id">
+      <rng:ref name="IDREF"/>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="change-marks">
+    <rng:choice>
+      <rng:element name="text:change">
+        <rng:ref name="change-mark-attr"/>
+      </rng:element>
+      <rng:element name="text:change-start">
+        <rng:ref name="change-mark-attr"/>
+      </rng:element>
+      <rng:element name="text:change-end">
+        <rng:ref name="change-mark-attr"/>
+      </rng:element>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="character">
+    <rng:data type="string">
+      <rng:param name="length">1</rng:param>
+    </rng:data>
+  </rng:define>
+  <rng:define name="chart-axis">
+    <rng:element name="chart:axis">
+      <rng:ref name="chart-axis-attlist"/>
+      <rng:optional>
+        <rng:ref name="chart-title"/>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="chart-categories"/>
+      </rng:optional>
+      <rng:zeroOrMore>
+        <rng:ref name="chart-grid"/>
+      </rng:zeroOrMore>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-axis-attlist">
+    <rng:interleave>
+      <rng:attribute name="chart:dimension">
+        <rng:ref name="chart-dimension"/>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="chart:name">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-categories">
+    <rng:element name="chart:categories">
+      <rng:optional>
+        <rng:attribute name="table:cell-range-address">
+          <rng:ref name="cellRangeAddressList"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-chart">
+    <rng:element name="chart:chart">
+      <rng:ref name="chart-chart-attlist"/>
+      <rng:optional>
+        <rng:ref name="chart-title"/>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="chart-subtitle"/>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="chart-footer"/>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="chart-legend"/>
+      </rng:optional>
+      <rng:ref name="chart-plot-area"/>
+      <rng:zeroOrMore>
+        <rng:ref name="shape"/>
+      </rng:zeroOrMore>
+      <!-- https://issues.oasis-open.org/browse/OFFICE-2123 -->
+      <rng:optional>
+        <rng:ref name="table-table"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-chart-attlist">
+    <rng:interleave>
+      <rng:attribute name="chart:class">
+        <rng:ref name="namespacedToken"/>
+      </rng:attribute>
+      <rng:ref name="common-draw-size-attlist"/>
+      <rng:optional>
+        <rng:attribute name="chart:column-mapping">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:row-mapping">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:group>
+          <rng:attribute name="xlink:type">
+            <rng:value>simple</rng:value>
+          </rng:attribute>
+          <rng:attribute name="xlink:href">
+            <rng:ref name="anyIRI"/>
+          </rng:attribute>
+        </rng:group>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="xml-id"/>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-coordinate-region">
+    <rng:element name="chart:coordinate-region">
+      <rng:ref name="chart-coordinate-region-attlist"/>
+      <rng:empty/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-coordinate-region-attlist">
+    <rng:ref name="common-draw-position-attlist"/>
+    <rng:ref name="common-draw-size-attlist"/>
+  </rng:define>
+  <!-- https://issues.oasis-open.org/browse/OFFICE-3928 -->
+  <rng:define name="chart-data-label">
+    <rng:element name="chart:data-label">
+      <rng:ref name="chart-data-label-attlist"/>
+      <rng:optional>
+        <rng:ref name="text-p"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-data-label-attlist">
+    <rng:interleave>
+      <rng:ref name="common-draw-position-attlist"/>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-data-point">
+    <rng:element name="chart:data-point">
+      <rng:ref name="chart-data-point-attlist"/>
+      <rng:optional>
+        <rng:ref name="chart-data-label"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-data-point-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="chart:repeated">
+          <rng:ref name="positiveInteger"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="xml-id"/>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-dimension">
+    <rng:choice>
+      <rng:value>x</rng:value>
+      <rng:value>y</rng:value>
+      <rng:value>z</rng:value>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="chart-domain">
+    <rng:element name="chart:domain">
+      <rng:optional>
+        <rng:attribute name="table:cell-range-address">
+          <rng:ref name="cellRangeAddressList"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-equation">
+    <rng:element name="chart:equation">
+      <rng:ref name="chart-equation-attlist"/>
+      <rng:optional>
+        <rng:ref name="text-p"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-equation-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="chart:automatic-content">
+          <rng:ref name="boolean"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:display-r-square">
+          <rng:ref name="boolean"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:display-equation">
+          <rng:ref name="boolean"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:ref name="common-draw-position-attlist"/>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-error-indicator">
+    <rng:element name="chart:error-indicator">
+      <rng:ref name="chart-error-indicator-attlist"/>
+      <rng:empty/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-error-indicator-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:attribute name="chart:dimension">
+        <rng:ref name="chart-dimension"/>
+      </rng:attribute>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-floor">
+    <rng:element name="chart:floor">
+      <rng:ref name="chart-floor-attlist"/>
+      <rng:empty/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-floor-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="svg:width">
+          <rng:ref name="length"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-footer">
+    <rng:element name="chart:footer">
+      <rng:ref name="chart-title-attlist"/>
+      <rng:optional>
+        <rng:ref name="text-p"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-grid">
+    <rng:element name="chart:grid">
+      <rng:ref name="chart-grid-attlist"/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-grid-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="chart:class">
+          <rng:choice>
+            <rng:value>major</rng:value>
+            <rng:value>minor</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-legend">
+    <rng:element name="chart:legend">
+      <rng:ref name="chart-legend-attlist"/>
+      <rng:optional>
+        <rng:ref name="text-p"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-legend-attlist">
+    <rng:interleave>
+      <rng:choice>
+        <rng:group>
+          <rng:attribute name="chart:legend-position">
+            <rng:choice>
+              <rng:value>start</rng:value>
+              <rng:value>end</rng:value>
+              <rng:value>top</rng:value>
+              <rng:value>bottom</rng:value>
+            </rng:choice>
+          </rng:attribute>
+          <rng:optional>
+            <rng:attribute name="chart:legend-align">
+              <rng:choice>
+                <rng:value>start</rng:value>
+                <rng:value>center</rng:value>
+                <rng:value>end</rng:value>
+              </rng:choice>
+            </rng:attribute>
+          </rng:optional>
+        </rng:group>
+        <rng:attribute name="chart:legend-position">
+          <rng:choice>
+            <rng:value>top-start</rng:value>
+            <rng:value>bottom-start</rng:value>
+            <rng:value>top-end</rng:value>
+            <rng:value>bottom-end</rng:value>
+          </rng:choice>
+        </rng:attribute>
+        <rng:empty/>
+      </rng:choice>
+      <rng:ref name="common-draw-position-attlist"/>
+      <rng:choice>
+        <rng:attribute name="style:legend-expansion">
+          <rng:choice>
+            <rng:value>wide</rng:value>
+            <rng:value>high</rng:value>
+            <rng:value>balanced</rng:value>
+          </rng:choice>
+        </rng:attribute>
+        <rng:group>
+          <rng:attribute name="style:legend-expansion">
+            <rng:value>custom</rng:value>
+          </rng:attribute>
+          <rng:attribute name="style:legend-expansion-aspect-ratio">
+            <rng:ref name="double"/>
+          </rng:attribute>
+          <rng:ref name="common-draw-size-attlist"/>
+          <!-- https://issues.oasis-open.org/browse/OFFICE-3883 -->
+        </rng:group>
+        <rng:empty/>
+      </rng:choice>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-mean-value">
+    <rng:element name="chart:mean-value">
+      <rng:ref name="chart-mean-value-attlist"/>
+      <rng:empty/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-mean-value-attlist">
+    <rng:optional>
+      <rng:attribute name="chart:style-name">
+        <rng:ref name="styleNameRef"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="chart-plot-area">
+    <rng:element name="chart:plot-area">
+      <rng:ref name="chart-plot-area-attlist"/>
+      <rng:optional>
+        <!-- https://issues.oasis-open.org/browse/OFFICE-3928 -->
+        <rng:ref name="chart-coordinate-region"/>
+      </rng:optional>
+      <rng:zeroOrMore>
+        <rng:ref name="dr3d-light"/>
+      </rng:zeroOrMore>
+      <rng:zeroOrMore>
+        <rng:ref name="chart-axis"/>
+      </rng:zeroOrMore>
+      <rng:zeroOrMore>
+        <rng:ref name="chart-series"/>
+      </rng:zeroOrMore>
+      <rng:optional>
+        <rng:ref name="chart-stock-gain-marker"/>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="chart-stock-loss-marker"/>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="chart-stock-range-line"/>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="chart-wall"/>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="chart-floor"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-plot-area-attlist">
+    <rng:interleave>
+      <rng:ref name="common-draw-position-attlist"/>
+      <rng:ref name="common-draw-size-attlist"/>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+<!-- Deleted as per https://issues.oasis-open.org/browse/OFFICE-3741 for ODF 
1.4
+      <rng:optional>
+        <rng:attribute name="table:cell-range-address">
+          <rng:ref name="cellRangeAddressList"/>
+        </rng:attribute>
+      </rng:optional>
+-->
+      <rng:optional>
+        <rng:attribute name="chart:data-source-has-labels">
+          <rng:choice>
+            <rng:value>none</rng:value>
+            <rng:value>row</rng:value>
+            <rng:value>column</rng:value>
+            <rng:value>both</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+      <rng:ref name="dr3d-scene-attlist"/>
+      <rng:ref name="common-dr3d-transform-attlist"/>
+      <rng:optional>
+        <rng:ref name="xml-id"/>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-regression-curve">
+    <rng:element name="chart:regression-curve">
+      <rng:ref name="chart-regression-curve-attlist"/>
+      <rng:optional>
+        <rng:ref name="chart-equation"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-regression-curve-attlist">
+    <rng:optional>
+      <rng:attribute name="chart:style-name">
+        <rng:ref name="styleNameRef"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="chart-series">
+    <rng:element name="chart:series">
+      <rng:ref name="chart-series-attlist"/>
+      <rng:zeroOrMore>
+        <rng:ref name="chart-domain"/>
+      </rng:zeroOrMore>
+      <rng:optional>
+        <rng:ref name="chart-mean-value"/>
+      </rng:optional>
+      <rng:zeroOrMore>
+        <rng:ref name="chart-regression-curve"/>
+      </rng:zeroOrMore>
+      <rng:zeroOrMore>
+        <rng:ref name="chart-error-indicator"/>
+      </rng:zeroOrMore>
+      <rng:zeroOrMore>
+        <rng:ref name="chart-data-point"/>
+      </rng:zeroOrMore>
+      <rng:optional>
+        <rng:ref name="chart-data-label"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-series-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="chart:values-cell-range-address">
+          <rng:ref name="cellRangeAddressList"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:label-cell-address">
+          <rng:ref name="cellRangeAddressList"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:class">
+          <rng:ref name="namespacedToken"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:attached-axis">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:ref name="xml-id"/>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-stock-gain-marker">
+    <rng:element name="chart:stock-gain-marker">
+      <rng:ref name="common-stock-marker-attlist"/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-stock-loss-marker">
+    <rng:element name="chart:stock-loss-marker">
+      <rng:ref name="common-stock-marker-attlist"/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-stock-range-line">
+    <rng:element name="chart:stock-range-line">
+      <rng:ref name="common-stock-marker-attlist"/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-subtitle">
+    <rng:element name="chart:subtitle">
+      <rng:ref name="chart-title-attlist"/>
+      <rng:optional>
+        <rng:ref name="text-p"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-title">
+    <rng:element name="chart:title">
+      <rng:ref name="chart-title-attlist"/>
+      <rng:optional>
+        <rng:ref name="text-p"/>
+      </rng:optional>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-title-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="table:cell-range">
+          <rng:ref name="cellRangeAddressList"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:ref name="common-draw-position-attlist"/>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="chart-wall">
+    <rng:element name="chart:wall">
+      <rng:ref name="chart-wall-attlist"/>
+      <rng:empty/>
+    </rng:element>
+  </rng:define>
+  <rng:define name="chart-wall-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="svg:width">
+          <rng:ref name="length"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="chart:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="clipShape">
+    <rng:data type="string">
+      <rng:param name="pattern">rect\([ 
]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)))|(auto))([ ]*,[ 
]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))))|(auto)){3}[ 
]*\)</rng:param>
+    </rng:data>
+  </rng:define>
+  <rng:define name="color">
+    <rng:data type="string">
+      <rng:param name="pattern">#[0-9a-fA-F]{6}</rng:param>
+    </rng:data>
+  </rng:define>
+  <rng:define name="column-controls">
+    <rng:choice>
+      <rng:element name="form:text">
+        <rng:ref name="form-text-attlist"/>
+        <rng:ref name="common-form-control-content"/>
+      </rng:element>
+      <rng:element name="form:textarea">
+        <rng:ref name="form-textarea-attlist"/>
+        <rng:ref name="common-form-control-content"/>
+        <rng:zeroOrMore>
+          <rng:ref name="text-p"/>
+        </rng:zeroOrMore>
+      </rng:element>
+      <rng:element name="form:formatted-text">
+        <rng:ref name="form-formatted-text-attlist"/>
+        <rng:ref name="common-form-control-content"/>
+      </rng:element>
+      <rng:element name="form:number">
+        <rng:ref name="form-number-attlist"/>
+        <rng:ref name="common-numeric-control-attlist"/>
+        <rng:ref name="common-form-control-content"/>
+        <rng:ref name="common-linked-cell"/>
+        <rng:ref name="common-spin-button"/>
+        <rng:ref name="common-repeat"/>
+        <rng:ref name="common-delay-for-repeat"/>
+      </rng:element>
+      <rng:element name="form:date">
+        <rng:ref name="form-date-attlist"/>
+        <rng:ref name="common-numeric-control-attlist"/>
+        <rng:ref name="common-form-control-content"/>
+        <rng:ref name="common-linked-cell"/>
+        <rng:ref name="common-spin-button"/>
+        <rng:ref name="common-repeat"/>
+        <rng:ref name="common-delay-for-repeat"/>
+      </rng:element>
+      <rng:element name="form:time">
+        <rng:ref name="form-time-attlist"/>
+        <rng:ref name="common-numeric-control-attlist"/>
+        <rng:ref name="common-form-control-content"/>
+        <rng:ref name="common-linked-cell"/>
+        <rng:ref name="common-spin-button"/>
+        <rng:ref name="common-repeat"/>
+        <rng:ref name="common-delay-for-repeat"/>
+      </rng:element>
+      <rng:element name="form:combobox">
+        <rng:ref name="form-combobox-attlist"/>
+        <rng:ref name="common-form-control-content"/>
+        <rng:zeroOrMore>
+          <rng:ref name="form-item"/>
+        </rng:zeroOrMore>
+      </rng:element>
+      <rng:element name="form:listbox">
+        <rng:ref name="form-listbox-attlist"/>
+        <rng:ref name="common-form-control-content"/>
+        <rng:zeroOrMore>
+          <rng:ref name="form-option"/>
+        </rng:zeroOrMore>
+      </rng:element>
+      <rng:element name="form:checkbox">
+        <rng:ref name="form-checkbox-attlist"/>
+        <rng:ref name="common-form-control-content"/>
+      </rng:element>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="common-anim-add-accum-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="smil:accumulate">
+          <rng:choice>
+            <rng:value>none</rng:value>
+            <rng:value>sum</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="smil:additive">
+          <rng:choice>
+            <rng:value>replace</rng:value>
+            <rng:value>sum</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-anim-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="presentation:node-type">
+          <rng:choice>
+            <rng:value>default</rng:value>
+            <rng:value>on-click</rng:value>
+            <rng:value>with-previous</rng:value>
+            <rng:value>after-previous</rng:value>
+            <rng:value>timing-root</rng:value>
+            <rng:value>main-sequence</rng:value>
+            <rng:value>interactive-sequence</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="presentation:preset-id">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="presentation:preset-sub-type">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="presentation:preset-class">
+          <rng:choice>
+            <rng:value>custom</rng:value>
+            <rng:value>entrance</rng:value>
+            <rng:value>exit</rng:value>
+            <rng:value>emphasis</rng:value>
+            <rng:value>motion-path</rng:value>
+            <rng:value>ole-action</rng:value>
+            <rng:value>media-call</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="presentation:master-element">
+          <rng:ref name="IDREF"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="presentation:group-id">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:group>
+          <rng:ref name="xml-id"/>
+          <rng:optional>
+            <rng:attribute name="anim:id">
+              <rng:ref name="NCName"/>
+            </rng:attribute>
+          </rng:optional>
+        </rng:group>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-anim-named-target-attlist">
+    <rng:attribute name="smil:attributeName">
+      <rng:ref name="string"/>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="common-anim-set-values-attlist">
+    <rng:optional>
+      <rng:attribute name="smil:to">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-anim-spline-mode-attlist">
+    <rng:optional>
+      <rng:attribute name="smil:calcMode">
+        <rng:choice>
+          <rng:value>discrete</rng:value>
+          <rng:value>linear</rng:value>
+          <rng:value>paced</rng:value>
+          <rng:value>spline</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-anim-target-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="smil:targetElement">
+          <rng:ref name="IDREF"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="anim:sub-item">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-anim-values-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="smil:values">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="anim:formula">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:ref name="common-anim-set-values-attlist"/>
+      <rng:optional>
+        <rng:attribute name="smil:from">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="smil:by">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-auto-reorder-attlist">
+    <rng:optional>
+      <rng:attribute name="number:automatic-order">
+        <rng:ref name="boolean"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-background-color-attlist">
+    <rng:optional>
+      <rng:attribute name="fo:background-color">
+        <rng:choice>
+          <rng:value>transparent</rng:value>
+          <rng:ref name="color"/>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-background-transparency-attlist">
+    <rng:optional>
+      <rng:attribute name="style:background-transparency">
+        <rng:ref name="zeroToHundredPercent"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-basic-timing-attlist">
+    <rng:ref name="common-begin-end-timing-attlist"/>
+    <rng:ref name="common-dur-timing-attlist"/>
+    <rng:ref name="common-repeat-timing-attlist"/>
+    <rng:ref name="common-restart-timing-attlist"/>
+    <rng:ref name="common-restart-default-attlist"/>
+    <rng:ref name="common-fill-timing-attlist"/>
+    <rng:ref name="common-fill-default-attlist"/>
+  </rng:define>
+  <rng:define name="common-begin-end-timing-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="smil:begin">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="smil:end">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-border-attlist">
+    <rng:optional>
+      <rng:attribute name="fo:border">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="fo:border-top">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="fo:border-bottom">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="fo:border-left">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="fo:border-right">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-border-line-width-attlist">
+    <rng:optional>
+      <rng:attribute name="style:border-line-width">
+        <rng:ref name="borderWidths"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="style:border-line-width-top">
+        <rng:ref name="borderWidths"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="style:border-line-width-bottom">
+        <rng:ref name="borderWidths"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="style:border-line-width-left">
+        <rng:ref name="borderWidths"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="style:border-line-width-right">
+        <rng:ref name="borderWidths"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-break-attlist">
+    <rng:optional>
+      <rng:attribute name="fo:break-before">
+        <rng:choice>
+          <rng:value>auto</rng:value>
+          <rng:value>column</rng:value>
+          <rng:value>page</rng:value>
+          <!-- https://issues.oasis-open.org/browse/OFFICE-3751 -->
+          <rng:value>even-page</rng:value>
+          <rng:value>odd-page</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="fo:break-after">
+        <rng:choice>
+          <rng:value>auto</rng:value>
+          <rng:value>column</rng:value>
+          <rng:value>page</rng:value>
+          <!-- https://issues.oasis-open.org/browse/OFFICE-3751 -->
+          <rng:value>even-page</rng:value>
+          <rng:value>odd-page</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-calendar-attlist">
+    <rng:optional>
+      <rng:attribute name="number:calendar">
+        <rng:choice>
+          <rng:value>gregorian</rng:value>
+          <rng:value>gengou</rng:value>
+          <rng:value>ROC</rng:value>
+          <rng:value>hanja_yoil</rng:value>
+          <rng:value>hanja</rng:value>
+          <rng:value>hijri</rng:value>
+          <rng:value>jewish</rng:value>
+          <rng:value>buddhist</rng:value>
+          <rng:ref name="string"/>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-contour-attlist">
+    <rng:attribute name="draw:recreate-on-edit">
+      <rng:ref name="boolean"/>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="common-control-id-attlist">
+    <rng:group>
+      <rng:ref name="xml-id"/>
+      <rng:optional>
+        <rng:attribute name="form:id">
+          <rng:ref name="NCName"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:group>
+  </rng:define>
+  <rng:define name="common-convert-empty-attlist">
+    <rng:optional>
+      <rng:attribute name="form:convert-empty-to-null">
+        <rng:ref name="boolean"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-current-value-attlist">
+    <rng:optional>
+      <rng:attribute name="form:current-value">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-data-field-attlist">
+    <rng:optional>
+      <rng:attribute name="form:data-field">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-data-style-attlist">
+    <rng:interleave>
+      <rng:attribute name="style:name">
+        <rng:ref name="styleName"/>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="style:display-name">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="number:language">
+          <rng:ref name="languageCode"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="number:country">
+          <rng:ref name="countryCode"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="number:script">
+          <rng:ref name="scriptCode"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="number:rfc-language-tag">
+          <rng:ref name="language"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="number:title">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="style:volatile">
+          <rng:ref name="boolean"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="number:transliteration-format">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="number:transliteration-language">
+          <rng:ref name="countryCode"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="number:transliteration-country">
+          <rng:ref name="countryCode"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="number:transliteration-style">
+          <rng:choice>
+            <rng:value>short</rng:value>
+            <rng:value>medium</rng:value>
+            <rng:value>long</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-db-default-value">
+    <rng:optional>
+      <rng:ref name="common-value-and-type-attlist"/>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-db-object-description">
+    <rng:optional>
+      <rng:attribute name="db:description">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-db-object-name">
+    <rng:attribute name="db:name">
+      <rng:ref name="string"/>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="common-db-object-title">
+    <rng:optional>
+      <rng:attribute name="db:title">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-db-table-name-attlist">
+    <rng:interleave>
+      <rng:attribute name="db:name">
+        <rng:ref name="string"/>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="db:catalog-name">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="db:schema-name">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-db-table-style-name">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="db:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="db:default-row-style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-dde-connection-decl-attlist">
+    <rng:interleave>
+      <rng:attribute name="office:dde-application">
+        <rng:ref name="string"/>
+      </rng:attribute>
+      <rng:attribute name="office:dde-topic">
+        <rng:ref name="string"/>
+      </rng:attribute>
+      <rng:attribute name="office:dde-item">
+        <rng:ref name="string"/>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="office:automatic-update">
+          <rng:ref name="boolean"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-decimal-places-attlist">
+    <rng:optional>
+      <rng:attribute name="number:decimal-places">
+        <rng:ref name="integer"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="number:min-decimal-places">
+        <rng:ref name="integer"/>
+      </rng:attribute>
+    </rng:optional>
+    <!-- https://issues.oasis-open.org/browse/OFFICE-3860  added 
number:min-decimal-places -->
+  </rng:define>
+  <rng:define name="common-delay-for-repeat">
+    <rng:optional>
+      <rng:attribute name="form:delay-for-repeat">
+        <rng:ref name="duration"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-disabled-attlist">
+    <rng:optional>
+      <rng:attribute name="form:disabled">
+        <rng:ref name="boolean"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-dr3d-transform-attlist">
+    <rng:optional>
+      <rng:attribute name="dr3d:transform">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-draw-area-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="xlink:type">
+          <rng:value>simple</rng:value>
+        </rng:attribute>
+        <rng:attribute name="xlink:href">
+          <rng:ref name="anyIRI"/>
+        </rng:attribute>
+        <rng:optional>
+          <rng:attribute name="office:target-frame-name">
+            <rng:ref name="targetFrameName"/>
+          </rng:attribute>
+        </rng:optional>
+        <rng:optional>
+          <rng:attribute name="xlink:show">
+            <rng:choice>
+              <rng:value>new</rng:value>
+              <rng:value>replace</rng:value>
+            </rng:choice>
+          </rng:attribute>
+        </rng:optional>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="office:name">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="draw:nohref">
+          <rng:value>nohref</rng:value>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-draw-caption-id-attlist">
+    <rng:optional>
+      <rng:attribute name="draw:caption-id">
+        <rng:ref name="IDREF"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-draw-circle-ellipse-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="draw:kind">
+          <rng:choice>
+            <rng:value>full</rng:value>
+            <rng:value>section</rng:value>
+            <rng:value>cut</rng:value>
+            <rng:value>arc</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="draw:start-angle">
+          <rng:ref name="angle"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="draw:end-angle">
+          <rng:ref name="angle"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-draw-circle-ellipse-pos-attlist">
+    <rng:attribute name="svg:cx">
+      <rng:ref name="coordinate"/>
+    </rng:attribute>
+    <rng:attribute name="svg:cy">
+      <rng:ref name="coordinate"/>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="common-draw-data-attlist">
+    <rng:group>
+      <rng:attribute name="xlink:type">
+        <rng:value>simple</rng:value>
+      </rng:attribute>
+      <rng:attribute name="xlink:href">
+        <rng:ref name="anyIRI"/>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="xlink:show">
+          <rng:value>embed</rng:value>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="xlink:actuate">
+          <rng:value>onLoad</rng:value>
+        </rng:attribute>
+      </rng:optional>
+    </rng:group>
+  </rng:define>
+  <rng:define name="common-draw-gradient-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="draw:name">
+          <rng:ref name="styleName"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="draw:display-name">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:attribute name="draw:style">
+        <rng:ref name="gradient-style"/>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="draw:cx">
+          <rng:ref name="percent"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="draw:cy">
+          <rng:ref name="percent"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="draw:angle">
+          <rng:ref name="angle"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="draw:border">
+          <rng:ref name="percent"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-draw-id-attlist">
+    <rng:optional>
+      <rng:group>
+        <rng:ref name="xml-id"/>
+        <rng:optional>
+          <rng:attribute name="draw:id">
+            <rng:ref name="NCName"/>
+          </rng:attribute>
+        </rng:optional>
+      </rng:group>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-draw-layer-name-attlist">
+    <rng:optional>
+      <rng:attribute name="draw:layer">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-draw-mime-type-attlist">
+    <rng:optional>
+      <rng:attribute name="draw:mime-type">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <!-- https://issues.oasis-open.org/browse/OFFICE-3943 -->
+  <rng:define name="common-draw-name-attlist">
+    <rng:optional>
+      <rng:attribute name="draw:name">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-draw-path-data-attlist">
+    <rng:attribute name="svg:d">
+      <rng:ref name="pathData"/>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="common-draw-points-attlist">
+    <rng:attribute name="draw:points">
+      <rng:ref name="points"/>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="common-draw-position-attlist">
+    <rng:optional>
+      <rng:attribute name="svg:x">
+        <rng:ref name="coordinate"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="svg:y">
+        <rng:ref name="coordinate"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-draw-rel-size-attlist">
+    <rng:ref name="common-draw-size-attlist"/>
+    <rng:optional>
+      <rng:attribute name="style:rel-width">
+        <rng:choice>
+          <rng:ref name="percent"/>
+          <rng:value>scale</rng:value>
+          <rng:value>scale-min</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="style:rel-height">
+        <rng:choice>
+          <rng:ref name="percent"/>
+          <rng:value>scale</rng:value>
+          <rng:value>scale-min</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <!-- https://issues.oasis-open.org/browse/OFFICE-4132 -->
+  <rng:define name="common-draw-shape-accessibility">
+    <!-- https://issues.oasis-open.org/browse/OFFICE-4142 -->
+    <rng:optional>
+      <rng:ref name="svg-title"/>
+    </rng:optional>
+    <rng:optional>
+      <rng:ref name="svg-desc"/>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-draw-shape-with-styles-attlist">
+    <rng:ref name="common-draw-z-index-attlist"/>
+    <rng:ref name="common-draw-id-attlist"/>
+    <rng:ref name="common-draw-layer-name-attlist"/>
+    <rng:ref name="common-draw-style-name-attlist"/>
+    <rng:ref name="common-draw-transform-attlist"/>
+    <rng:ref name="common-draw-name-attlist"/>
+    <rng:ref name="common-text-spreadsheet-shape-attlist"/>
+  </rng:define>
+  <rng:define name="common-draw-shape-with-text-and-styles-attlist">
+    <rng:ref name="common-draw-shape-with-styles-attlist"/>
+    <rng:ref name="common-draw-text-style-name-attlist"/>
+  </rng:define>
+  <rng:define name="common-draw-size-attlist">
+    <rng:optional>
+      <rng:attribute name="svg:width">
+        <rng:ref name="length"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="svg:height">
+        <rng:ref name="length"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-draw-style-name-attlist">
+    <rng:choice>
+      <rng:group>
+        <rng:optional>
+          <rng:attribute name="draw:style-name">
+            <rng:ref name="styleNameRef"/>
+          </rng:attribute>
+        </rng:optional>
+        <rng:optional>
+          <rng:attribute name="draw:class-names">
+            <rng:ref name="styleNameRefs"/>
+          </rng:attribute>
+        </rng:optional>
+      </rng:group>
+      <rng:group>
+        <rng:optional>
+          <rng:attribute name="presentation:style-name">
+            <rng:ref name="styleNameRef"/>
+          </rng:attribute>
+        </rng:optional>
+        <rng:optional>
+          <rng:attribute name="presentation:class-names">
+            <rng:ref name="styleNameRefs"/>
+          </rng:attribute>
+        </rng:optional>
+      </rng:group>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="common-draw-text-style-name-attlist">
+    <rng:optional>
+      <rng:attribute name="draw:text-style-name">
+        <rng:ref name="styleNameRef"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-draw-transform-attlist">
+    <rng:optional>
+      <rng:attribute name="draw:transform">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-draw-viewbox-attlist">
+    <rng:attribute name="svg:viewBox">
+      <rng:list>
+        <rng:ref name="integer"/>
+        <rng:ref name="integer"/>
+        <rng:ref name="integer"/>
+        <rng:ref name="integer"/>
+      </rng:list>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="common-draw-z-index-attlist">
+    <rng:optional>
+      <rng:attribute name="draw:z-index">
+        <rng:ref name="nonNegativeInteger"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-dur-timing-attlist">
+    <rng:optional>
+      <rng:attribute name="smil:dur">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-editable-attlist">
+    <rng:optional>
+      <rng:attribute name="style:editable">
+        <rng:ref name="boolean"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-endsync-timing-attlist">
+    <rng:optional>
+      <rng:attribute name="smil:endsync">
+        <rng:choice>
+          <rng:value>first</rng:value>
+          <rng:value>last</rng:value>
+          <rng:value>all</rng:value>
+          <rng:value>media</rng:value>
+          <rng:ref name="IDREF"/>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-field-data-style-name-attlist">
+    <rng:optional>
+      <rng:attribute name="style:data-style-name">
+        <rng:ref name="styleNameRef"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-field-database-name">
+    <rng:choice>
+      <rng:optional>
+        <rng:attribute name="text:database-name">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:ref name="form-connection-resource"/>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="common-field-database-table">
+    <rng:ref name="common-field-database-table-attlist"/>
+    <rng:ref name="common-field-database-name"/>
+  </rng:define>
+  <rng:define name="common-field-database-table-attlist">
+    <rng:interleave>
+      <rng:attribute name="text:table-name">
+        <rng:ref name="string"/>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="text:table-type">
+          <rng:choice>
+            <rng:value>table</rng:value>
+            <rng:value>query</rng:value>
+            <rng:value>command</rng:value>
+          </rng:choice>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-field-description-attlist">
+    <rng:optional>
+      <rng:attribute name="text:description">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-field-display-value-formula-attlist">
+    <rng:optional>
+      <rng:attribute name="text:display">
+        <rng:choice>
+          <rng:value>value</rng:value>
+          <rng:value>formula</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-field-display-value-formula-none-attlist">
+    <rng:optional>
+      <rng:attribute name="text:display">
+        <rng:choice>
+          <rng:value>value</rng:value>
+          <rng:value>formula</rng:value>
+          <rng:value>none</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-field-display-value-none-attlist">
+    <rng:optional>
+      <rng:attribute name="text:display">
+        <rng:choice>
+          <rng:value>value</rng:value>
+          <rng:value>none</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-field-fixed-attlist">
+    <rng:optional>
+      <rng:attribute name="text:fixed">
+        <rng:ref name="boolean"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-field-formula-attlist">
+    <rng:optional>
+      <rng:attribute name="text:formula">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-field-name-attlist">
+    <rng:attribute name="text:name">
+      <rng:ref name="variableName"/>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="common-field-num-format-attlist">
+    <rng:optional>
+      <rng:ref name="common-num-format-attlist"/>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-fill-default-attlist">
+    <rng:optional>
+      <rng:attribute name="smil:fillDefault">
+        <rng:choice>
+          <rng:value>remove</rng:value>
+          <rng:value>freeze</rng:value>
+          <rng:value>hold</rng:value>
+          <rng:value>transition</rng:value>
+          <rng:value>auto</rng:value>
+          <rng:value>inherit</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-fill-timing-attlist">
+    <rng:optional>
+      <rng:attribute name="smil:fill">
+        <rng:choice>
+          <rng:value>remove</rng:value>
+          <rng:value>freeze</rng:value>
+          <rng:value>hold</rng:value>
+          <rng:value>auto</rng:value>
+          <rng:value>default</rng:value>
+          <rng:value>transition</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-form-control-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="form:name">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="form:control-implementation">
+          <rng:ref name="namespacedToken"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-form-control-content">
+    <rng:optional>
+      <rng:ref name="form-properties"/>
+    </rng:optional>
+    <rng:optional>
+      <rng:ref name="office-event-listeners"/>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-form-relative-image-position-attlist">
+    <rng:choice>
+      <rng:optional>
+        <rng:attribute name="form:image-position">
+          <rng:value>center</rng:value>
+        </rng:attribute>
+      </rng:optional>
+      <rng:group>
+        <rng:attribute name="form:image-position">
+          <rng:choice>
+            <rng:value>start</rng:value>
+            <rng:value>end</rng:value>
+            <rng:value>top</rng:value>
+            <rng:value>bottom</rng:value>
+          </rng:choice>
+        </rng:attribute>
+        <rng:optional>
+          <rng:attribute name="form:image-align">
+            <rng:choice>
+              <rng:value>start</rng:value>
+              <rng:value>center</rng:value>
+              <rng:value>end</rng:value>
+            </rng:choice>
+          </rng:attribute>
+        </rng:optional>
+      </rng:group>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="common-form-visual-effect-attlist">
+    <rng:optional>
+      <rng:attribute name="form:visual-effect">
+        <rng:choice>
+          <rng:value>flat</rng:value>
+          <rng:value>3d</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-format-source-attlist">
+    <rng:optional>
+      <rng:attribute name="number:format-source">
+        <rng:choice>
+          <rng:value>fixed</rng:value>
+          <rng:value>language</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-horizontal-margin-attlist">
+    <rng:optional>
+      <rng:attribute name="fo:margin-left">
+        <rng:choice>
+          <rng:ref name="length"/>
+          <rng:ref name="percent"/>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="fo:margin-right">
+        <rng:choice>
+          <rng:ref name="length"/>
+          <rng:ref name="percent"/>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-in-content-meta-attlist">
+    <rng:attribute name="xhtml:about">
+      <rng:ref name="URIorSafeCURIE"/>
+    </rng:attribute>
+    <rng:attribute name="xhtml:property">
+      <rng:ref name="CURIEs"/>
+    </rng:attribute>
+    <rng:ref name="common-meta-literal-attlist"/>
+  </rng:define>
+  <!-- https://issues.oasis-open.org/browse/OFFICE-4121 -->
+   <rng:define name="common-input-required-attlist">
+   <rng:optional>
+     <rng:attribute name="form:input-required">
+        <rng:ref name="boolean"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-keep-with-next-attlist">
+    <rng:optional>
+      <rng:attribute name="fo:keep-with-next">
+        <rng:choice>
+          <rng:value>auto</rng:value>
+          <rng:value>always</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-linked-cell">
+    <rng:optional>
+      <rng:attribute name="form:linked-cell">
+        <rng:choice>
+          <rng:ref name="cellAddress"/>
+          <rng:ref name="string"/>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-margin-attlist">
+    <rng:optional>
+      <rng:attribute name="fo:margin">
+        <rng:choice>
+          <rng:ref name="nonNegativeLength"/>
+          <rng:ref name="percent"/>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-maxlength-attlist">
+    <rng:optional>
+      <rng:attribute name="form:max-length">
+        <rng:ref name="nonNegativeInteger"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-meta-literal-attlist">
+    <rng:optional>
+      <rng:attribute name="xhtml:datatype">
+        <rng:ref name="CURIE"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="xhtml:content">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-num-format-attlist">
+    <rng:choice>
+      <rng:attribute name="style:num-format">
+        <rng:choice>
+          <rng:value>1</rng:value>
+          <rng:value>i</rng:value>
+          <rng:value>I</rng:value>
+          <rng:ref name="string"/>
+          <rng:empty/>
+        </rng:choice>
+      </rng:attribute>
+      <rng:group>
+        <rng:attribute name="style:num-format">
+          <rng:choice>
+            <rng:value>a</rng:value>
+            <rng:value>A</rng:value>
+          </rng:choice>
+        </rng:attribute>
+        <rng:ref name="style-num-letter-sync-attlist"/>
+      </rng:group>
+      <rng:empty/>
+    </rng:choice>
+  </rng:define>
+  <rng:define name="common-num-format-prefix-suffix-attlist">
+    <rng:optional>
+      <rng:attribute name="style:num-prefix">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="style:num-suffix">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <!-- https://issues.oasis-open.org/browse/OFFICE-4108 -->
+  <rng:define name="common-num-list-format-name-attlist">
+    <rng:optional>
+      <rng:attribute name="style:num-list-format-name">
+        <rng:ref name="styleNameRef"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>  
+  <rng:define name="common-number-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="number:min-integer-digits">
+          <rng:ref name="integer"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="number:grouping">
+          <rng:ref name="boolean"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-numeric-control-attlist">
+    <rng:ref name="form-control-attlist"/>
+    <rng:ref name="common-disabled-attlist"/>
+    <rng:ref name="common-maxlength-attlist"/>
+    <rng:ref name="common-printable-attlist"/>
+    <rng:ref name="common-readonly-attlist"/>
+    <rng:ref name="common-tab-attlist"/>
+    <rng:ref name="common-title-attlist"/>
+    <rng:ref name="common-convert-empty-attlist"/>
+    <rng:ref name="common-data-field-attlist"/>
+  </rng:define>
+  <rng:define name="common-office-annotation-name-attlist">
+    <rng:attribute name="office:name">
+      <rng:ref name="string"/>
+    </rng:attribute>
+  </rng:define>
+  <rng:define name="common-padding-attlist">
+    <rng:optional>
+      <rng:attribute name="fo:padding">
+        <rng:ref name="nonNegativeLength"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="fo:padding-top">
+        <rng:ref name="nonNegativeLength"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="fo:padding-bottom">
+        <rng:ref name="nonNegativeLength"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="fo:padding-left">
+        <rng:ref name="nonNegativeLength"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="fo:padding-right">
+        <rng:ref name="nonNegativeLength"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-page-number-attlist">
+    <rng:optional>
+      <rng:attribute name="style:page-number">
+        <rng:choice>
+          <rng:ref name="nonNegativeInteger"/>
+          <rng:value>auto</rng:value>
+        </rng:choice>
+        <!-- https://issues.oasis-open.org/browse/OFFICE-3923 -->
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-presentation-effect-attlist">
+    <rng:interleave>
+      <rng:attribute name="draw:shape-id">
+        <rng:ref name="IDREF"/>
+      </rng:attribute>
+      <rng:optional>
+        <rng:attribute name="presentation:effect">
+          <rng:ref name="presentationEffects"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="presentation:direction">
+          <rng:ref name="presentationEffectDirections"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="presentation:speed">
+          <rng:ref name="presentationSpeeds"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="presentation:delay">
+          <rng:ref name="duration"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="presentation:start-scale">
+          <rng:ref name="percent"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="presentation:path-id">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-presentation-header-footer-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="presentation:use-header-name">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="presentation:use-footer-name">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+      <rng:optional>
+        <rng:attribute name="presentation:use-date-time-name">
+          <rng:ref name="string"/>
+        </rng:attribute>
+      </rng:optional>
+    </rng:interleave>
+  </rng:define>
+  <rng:define name="common-printable-attlist">
+    <rng:optional>
+      <rng:attribute name="form:printable">
+        <rng:ref name="boolean"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-readonly-attlist">
+    <rng:optional>
+      <rng:attribute name="form:readonly">
+        <rng:ref name="boolean"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+ <!-- https://issues.oasis-open.org/browse/OFFICE-4035
+
+ <rng:define name="common-ref-format-values">
+    <rng:choice>
+      <rng:value>page</rng:value>
+      <rng:value>chapter</rng:value>
+      <rng:value>direction</rng:value>
+      <rng:value>text</rng:value>
+    </rng:choice>
+  </rng:define>
+
+-->
+  <rng:define name="common-repeat">
+    <rng:optional>
+      <rng:attribute name="form:repeat">
+        <rng:ref name="boolean"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-repeat-timing-attlist">
+    <rng:optional>
+      <rng:attribute name="smil:repeatDur">
+        <rng:ref name="string"/>
+      </rng:attribute>
+    </rng:optional>
+    <rng:optional>
+      <rng:attribute name="smil:repeatCount">
+        <rng:choice>
+          <rng:ref name="nonNegativeDecimal"/>
+          <rng:value>indefinite</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-restart-default-attlist">
+    <rng:optional>
+      <rng:attribute name="smil:restartDefault">
+        <rng:choice>
+          <rng:value>never</rng:value>
+          <rng:value>always</rng:value>
+          <rng:value>whenNotActive</rng:value>
+          <rng:value>inherit</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-restart-timing-attlist">
+    <rng:optional>
+      <rng:attribute name="smil:restart">
+        <rng:choice>
+          <rng:value>never</rng:value>
+          <rng:value>always</rng:value>
+          <rng:value>whenNotActive</rng:value>
+          <rng:value>default</rng:value>
+        </rng:choice>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-rotation-angle-attlist">
+    <rng:optional>
+      <rng:attribute name="style:rotation-angle">
+        <rng:ref name="angle"/>
+      </rng:attribute>
+    </rng:optional>
+  </rng:define>
+  <rng:define name="common-section-attlist">
+    <rng:interleave>
+      <rng:optional>
+        <rng:attribute name="text:style-name">
+          <rng:ref name="styleNameRef"/>
+        </rng:attribute>
-e 
... etc. - the rest is truncated

Reply via email to