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