[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: ODF 1.3 draft schema review
hi all, i've had an opportunity to do some review on the ODF 1.3 draft schema... OpenDocument-schema-v1.3-wd06.rng OpenDocument-manifest-schema-v1.3-wd01.rng OpenDocument-dsig-schema-v1.3-wd01.rng1. the ODF 1.3 draft schemas have huge superficial differences against the ODF 1.2 schema, because everything now has a namespace prefix and all of the patterns in it now come in alphabetically sorted order.
this was a bit irritating but then i found that there is a similarly sorted ODF 1.2 schema in the SVN repository:
https://tools.oasis-open.org/version-control/browse/wsvn/office/branches/v1.2/v1.2/OpenDocument-schema-v1.2.rng so at least this can be used to compare... 2. bugs in the schema:my motivation was that actually the ODF Toolkit validator complained that the schema wasn't valid :)
so i've fixed the following: * manifest schema: for no apparent reason, the QName pattern lost its +* OFFICE-2118: Fatal: reference to the undefined pattern "table-data-pilot-groups" * OFFICE-3857: Fatal: more than one attribute accepts the same name "scale-to"
* OFFICE-3933: the removal part of the diff was not applied * OFFICE-3883: applied one line off, with missing rng: namespace prefix * OFFICE-3928:- removed combine=interleave attribute (was in 1.1 but no longer used in 1.2 schema)
- added missing rng: prefix to <empty>please find & review the 2 new schema drafts in the OASIS document repository:
https://www.oasis-open.org/apps/org/workgroup/office/document.php?document_id=63305 https://www.oasis-open.org/apps/org/workgroup/office/document.php?document_id=63306 i'll attach a diff between wd06 and wd06-with-fixes for convenience. regards, michael -- Michael Stahl Senior Software-Entwickler LibreOffice ––– CIB software GmbH Geschäftsstelle Hamburg Flachsland 10 22083 Hamburg ––– T +49 (40) / 28 48 42 -296 F +49 (40) / 28 48 42 -100 Michael.Stahl@cib.de www.cib.de ––– Sitz: München Registergericht München, HRB 123286 Geschäftsführer: Dipl.-Ing. Ulrich Brandner
--- /home/ms/Documents/odf/tc/OpenDocument-schema-v1.3-wd06.rng 2018-06-19 17:03:16.916415578 +0200
+++ /tmp/OpenDocument-schema-v1.3-wd06-with-fixes.rng 2018-06-25 12:28:21.426724536 +0200
@@ -486,19 +486,19 @@
</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: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>
@@ -530,18 +530,29 @@
<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">
@@ -745,20 +756,20 @@
<rng:value>balanced</rng:value>
</rng:choice>
</rng:attribute>
<rng:group>
<rng:attribute name="style:legend-expansion">
<rng:value>custom</rng:value>
</rng:attribute>
<rng:attribute name="style:legend-expansion-aspect-ratio">
<rng:ref name="double"/>
- <ref name="common-draw-size-attlist"/>
</rng:attribute>
+ <rng: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>
@@ -776,20 +787,20 @@
<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: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>
@@ -835,28 +846,18 @@
</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-coordinate-region">
- <rng:element name="chart:coordinate-region">
- <rng:ref name="chart-coordinate-region-attlist"/>
- <empty/>
- </rng:element>
- </rng:define>
- <rng:define name="chart-coordinate-region-attlist" combine="interleave">
- <rng:ref name="common-draw-position-attlist"/>
- <rng:ref name="common-draw-size-attlist"/>
- </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">
@@ -1519,20 +1520,21 @@
</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:ref name="integer"/>
</rng:attribute>
+ <!-- OFFICE-3860 -->
</rng:optional>
</rng:define>
<rng:define name="common-delay-for-repeat">
<rng:optional>
<rng:attribute name="form:delay-for-repeat">
<rng:ref name="duration"/>
</rng:attribute>
</rng:optional>
</rng:define>
@@ -1694,18 +1696,26 @@
</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">
@@ -4970,40 +4980,23 @@
<rng:attribute name="draw:formula">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="draw-fill-image">
<rng:element name="draw:fill-image">
<rng:ref name="draw-fill-image-attlist"/>
- <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:empty/>
<rng:choice>
<rng:group>
<rng:ref name="common-draw-data-attlist"/>
- <rng:empty/>
- </rng:group>
+ <rng:empty/>
+ </rng:group>
<rng:ref name="office-binary-data"/>
</rng:choice>
<!-- https://issues.oasis-open.org/browse/OFFICE-3933 -->
</rng:element>
</rng:define>
<rng:define name="draw-fill-image-attlist">
<rng:interleave>
<rng:attribute name="draw:name">
<rng:ref name="styleName"/>
@@ -5322,31 +5315,24 @@
</rng:define>
<rng:define name="draw-image-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:filter-name">
<rng:ref name="string"/>
</rng:attribute>
</rng:optional>
<rng:ref name="common-draw-mime-type-attlist"/>
+ <!-- https://issues.oasis-open.org/browse/OFFICE-3943 -->
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
- <rng:define name="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="draw-image-map">
<rng:element name="draw:image-map">
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="draw-area-rectangle"/>
<rng:ref name="draw-area-circle"/>
<rng:ref name="draw-area-polygon"/>
</rng:choice>
</rng:zeroOrMore>
@@ -5687,19 +5673,19 @@
<rng:ref name="draw-plugin-attlist"/>
<rng:ref name="common-draw-data-attlist"/>
<rng:zeroOrMore>
<rng:ref name="draw-param"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="draw-plugin-attlist">
<rng:interleave>
- <rng:ref name="common-draw-mime-type-attlist"/>
+ <rng:ref name="common-draw-mime-type-attlist"/>
<rng:optional>
<rng:ref name="xml-id"/>
</rng:optional>
</rng:interleave>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-3943 -->
<rng:define name="draw-polygon">
<rng:element name="draw:polygon">
<rng:ref name="common-draw-points-attlist"/>
@@ -7184,18 +7170,24 @@
<rng:optional>
<rng:attribute name="number:style">
<rng:choice>
<rng:value>short</rng:value>
<rng:value>long</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
</rng:define>
+ <rng:define name="number-fill-character">
+ <rng:element name="number:fill-character">
+ <rng:text/>
+ </rng:element>
+ </rng:define>
+ <!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
<rng:define name="number-fraction">
<rng:element name="number:fraction">
<rng:ref name="number-fraction-attlist"/>
<rng:ref name="common-number-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-fraction-attlist">
<rng:interleave>
@@ -7368,20 +7360,21 @@
</rng:define>
<rng:define name="number-scientific-number-attlist">
<rng:optional>
<rng:attribute name="number:min-exponent-digits">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:forced-exponent-sign">
- <rng:ref name="boolean"/>
+ <rng:ref name="boolean"/>
</rng:attribute>
+ <!-- OFFICE-3860 -->
</rng:optional>
</rng:define>
<rng:define name="number-seconds">
<rng:element name="number:seconds">
<rng:ref name="number-seconds-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="number-seconds-attlist">
@@ -7395,35 +7388,18 @@
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="number:decimal-places">
<rng:ref name="integer"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
- <rng:define name="number-text-with-fillchar">
- <rng:optional>
- <rng:ref name="number-text"/>
- </rng:optional>
- <rng:optional>
- <rng:ref name="number-fill-character"/>
- <rng:optional>
- <rng:ref name="number-text"/>
- </rng:optional>
- </rng:optional>
- </rng:define>
- <rng:define name="number-fill-character">
- <rng:element name="number:fill-character">
- <rng:text/>
- </rng:element>
- </rng:define>
- <!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
<rng:define name="number-text">
<rng:element name="number:text">
<rng:text/>
</rng:element>
</rng:define>
<rng:define name="number-text-content">
<rng:element name="number:text-content">
<rng:empty/>
</rng:element>
@@ -7444,18 +7420,30 @@
<rng:ref name="number-text-with-fillchar"/>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
</rng:zeroOrMore>
<rng:zeroOrMore>
<rng:ref name="style-map"/>
</rng:zeroOrMore>
</rng:element>
</rng:define>
+ <rng:define name="number-text-with-fillchar">
+ <rng:optional>
+ <rng:ref name="number-text"/>
+ </rng:optional>
+ <rng:optional>
+ <rng:ref name="number-fill-character"/>
+ <rng:optional>
+ <rng:ref name="number-text"/>
+ </rng:optional>
+ </rng:optional>
+ </rng:define>
+ <!-- https://issues.oasis-open.org/browse/OFFICE-3765 -->
<rng:define name="number-time-style">
<rng:element name="number:time-style">
<rng:ref name="number-time-style-attlist"/>
<rng:ref name="common-data-style-attlist"/>
<rng:ref name="common-format-source-attlist"/>
<rng:optional>
<rng:ref name="style-text-properties"/>
</rng:optional>
<rng:optional>
@@ -7515,21 +7503,21 @@
<rng:ref name="dc-creator"/>
</rng:optional>
<rng:optional>
<rng:ref name="dc-date"/>
</rng:optional>
<rng:optional>
<rng:ref name="meta-date-string"/>
</rng:optional>
<rng:optional>
- <rng:element name="meta:creator-initials">
- <rng:text/>
- </rng:element>
+ <rng:element name="meta:creator-initials">
+ <rng:text/>
+ </rng:element>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3776 -->
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="text-p"/>
<rng:ref name="text-list"/>
</rng:choice>
</rng:zeroOrMore>
</rng:element>
@@ -8283,39 +8271,18 @@
</rng:group>
</rng:optional>
<rng:optional>
<rng:ref name="common-in-content-meta-attlist"/>
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="paragraph-content">
<rng:choice>
- <rng:element name="text:drop-down">
-<rng:attribute name="text:name">
-<rng:ref name="string"/>
-</rng:attribute>
-<rng:zeroOrMore>
-<rng:element name="text:label">
-<rng:optional>
-<rng:attribute name="text:value">
-<rng:ref name="string"/>
-</rng:attribute>
-</rng:optional>
-<rng:optional>
-<rng:attribute name="text:current-selected">
-<rng:ref name="boolean"/>
-</rng:attribute>
-</rng:optional>
-</rng:element>
-</rng:zeroOrMore>
-<rng:text/>
- </rng:element>
-
<rng:text/>
<rng:element name="text:s">
<rng:optional>
<rng:attribute name="text:c">
<rng:ref name="nonNegativeInteger"/>
</rng:attribute>
</rng:optional>
</rng:element>
<rng:element name="text:tab">
@@ -8576,18 +8543,39 @@
<rng:ref name="common-field-display-value-formula-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
</rng:interleave>
<rng:text/>
</rng:element>
<rng:element name="text:text-input">
<rng:ref name="common-field-description-attlist"/>
<rng:text/>
</rng:element>
+ <rng:element name="text:drop-down">
+ <rng:attribute name="text:name">
+ <rng:ref name="string"/>
+ </rng:attribute>
+ <rng:zeroOrMore>
+ <rng:element name="text:label">
+ <rng:optional>
+ <rng:attribute name="text:value">
+ <rng:ref name="string"/>
+ </rng:attribute>
+ </rng:optional>
+ <rng:optional>
+ <rng:attribute name="text:current-selected">
+ <rng:ref name="boolean"/>
+ </rng:attribute>
+ </rng:optional>
+ </rng:element>
+ </rng:zeroOrMore>
+ <rng:text/>
+ </rng:element>
+ <!-- OFFICE-3881 -->
<rng:element name="text:initial-creator">
<rng:ref name="common-field-fixed-attlist"/>
<rng:text/>
</rng:element>
<rng:element name="text:creation-date">
<rng:interleave>
<rng:ref name="common-field-fixed-attlist"/>
<rng:ref name="common-field-data-style-name-attlist"/>
<rng:optional>
@@ -10089,26 +10077,26 @@
</rng:optional>
<rng:optional>
<rng:attribute name="chart:regression-type">
<rng:choice>
<rng:value>none</rng:value>
<rng:value>linear</rng:value>
<rng:value>logarithmic</rng:value>
<rng:value>exponential</rng:value>
<rng:value>power</rng:value>
- <rng:value>polynomial</rng:value>
+ <rng:value>polynomial</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
- <rng:optional>
- <rng:attribute name="chart:regression-max-degree">
+ <rng:optional>
+ <rng:attribute name="chart:regression-max-degree">
<rng:ref name="positiveInteger"/>
- </rng:attribute>
+ </rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:regression-force-intercept">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:regression-intercept-value">
<rng:ref name="double"/>
@@ -10148,21 +10136,21 @@
</rng:choice>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="chart:include-hidden-cells">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
- <rng:attribute name="chart:data-label-series">
- <rng:ref name="boolean"/>
- </rng:attribute>
+ <rng:attribute name="chart:data-label-series">
+ <rng:ref name="boolean"/>
+ </rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-2117 -->
</rng:interleave>
</rng:define>
<rng:define name="style-chart-properties-content-strict">
<rng:ref name="style-chart-properties-attlist"/>
<rng:ref name="style-chart-properties-elements"/>
</rng:define>
<rng:define name="style-chart-properties-elements">
@@ -10697,43 +10685,37 @@
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="style:font-charset">
<rng:ref name="textEncoding"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
- <rng:define name="style-header-first">
- <rng:element name="style:header-first">
- <rng:ref name="common-style-header-footer-attlist"/>
- <rng:ref name="header-footer-content"/>
- </rng:element>
-</rng:define>
<rng:define name="style-footer">
<rng:element name="style:footer">
<rng:ref name="common-style-header-footer-attlist"/>
<rng:ref name="header-footer-content"/>
</rng:element>
</rng:define>
+ <rng:define name="style-footer-first">
+ <rng:element name="style:footer-first">
+ <rng:ref name="common-style-header-footer-attlist"/>
+ <rng:ref name="header-footer-content"/>
+ <!-- https://issues.oasis-open.org/browse/OFFICE-3789 -->
+ </rng:element>
+ </rng:define>
<rng:define name="style-footer-left">
<rng:element name="style:footer-left">
<rng:ref name="common-style-header-footer-attlist"/>
<rng:ref name="header-footer-content"/>
</rng:element>
</rng:define>
- <rng:define name="style-footer-first">
- <rng:element name="style:footer-first">
- <rng:ref name="common-style-header-footer-attlist"/>
- <rng:ref name="header-footer-content"/>
- <!-- https://issues.oasis-open.org/browse/OFFICE-3789 -->
- </rng:element>
-</rng:define>
<rng:define name="style-footer-style">
<rng:element name="style:footer-style">
<rng:optional>
<rng:ref name="style-header-footer-properties"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="style-footnote-sep">
<rng:optional>
@@ -11804,18 +11786,25 @@
</rng:optional>
</rng:interleave>
</rng:define>
<rng:define name="style-header">
<rng:element name="style:header">
<rng:ref name="common-style-header-footer-attlist"/>
<rng:ref name="header-footer-content"/>
</rng:element>
</rng:define>
+ <rng:define name="style-header-first">
+ <rng:element name="style:header-first">
+ <rng:ref name="common-style-header-footer-attlist"/>
+ <rng:ref name="header-footer-content"/>
+ <!-- https://issues.oasis-open.org/browse/OFFICE-3789 -->
+ </rng:element>
+ </rng:define>
<rng:define name="style-header-footer-properties">
<rng:element name="style:header-footer-properties">
<rng:ref name="style-header-footer-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-header-footer-properties-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="svg:height">
@@ -11976,30 +11965,32 @@
</rng:define>
<rng:define name="style-master-page">
<rng:element name="style:master-page">
<rng:ref name="style-master-page-attlist"/>
<rng:optional>
<rng:ref name="style-header"/>
<rng:optional>
<rng:ref name="style-header-left"/>
</rng:optional>
- <rng:optional>
- <rng:ref name="style-header-first"/>
- </rng:optional>
+ <rng:optional>
+ <rng:ref name="style-header-first"/>
+ </rng:optional>
+ <!-- https://issues.oasis-open.org/browse/OFFICE-3789 -->
</rng:optional>
<rng:optional>
<rng:ref name="style-footer"/>
<rng:optional>
<rng:ref name="style-footer-left"/>
</rng:optional>
- <rng:optional>
- <rng:ref name="style-footer-first"/>
- </rng:optional>
+ <rng:optional>
+ <rng:ref name="style-footer-first"/>
+ </rng:optional>
+ <!-- https://issues.oasis-open.org/browse/OFFICE-3789 -->
</rng:optional>
<rng:optional>
<rng:ref name="draw-layer-set"/>
</rng:optional>
<rng:optional>
<rng:ref name="office-forms"/>
</rng:optional>
<rng:zeroOrMore>
<rng:ref name="shape"/>
@@ -12156,53 +12147,43 @@
</rng:optional>
<rng:optional>
<rng:attribute name="style:first-page-number">
<rng:choice>
<rng:ref name="positiveInteger"/>
<rng:value>continue</rng:value>
</rng:choice>
</rng:attribute>
</rng:optional>
- <rng:optional>
- <rng:attribute name="style:scale-to">
- <rng:ref name="percent"/>
- </rng:attribute>
- </rng:optional>
- <rng:optional>
- <rng:attribute name="style:scale-to-pages">
- <rng:ref name="positiveInteger"/>
- </rng:attribute>
- </rng:optional>
<rng:choice>
<!-- https://issues.oasis-open.org/browse/OFFICE-3857 -->
-<rng:optional>
-<rng:attribute name="style:scale-to">
-<rng:ref name="percent"/>
-</rng:attribute>
-</rng:optional>
-<rng:optional>
-<rng:attribute name="style:scale-to-pages">
-<rng:ref name="positiveInteger"/>
-</rng:attribute>
-</rng:optional>
-<rng:group>
-<rng:optional>
-<rng:attribute name="style:scale-to-X">
-<rng:ref name="positiveInteger"/>
-</rng:attribute>
-</rng:optional>
-<rng:optional>
-<rng:attribute name="style:scale-to-Y">
-<rng:ref name="positiveInteger"/>
-</rng:attribute>
-</rng:optional>
-</rng:group>
-</rng:choice>
+ <rng:optional>
+ <rng:attribute name="style:scale-to">
+ <rng:ref name="percent"/>
+ </rng:attribute>
+ </rng:optional>
+ <rng:optional>
+ <rng:attribute name="style:scale-to-pages">
+ <rng:ref name="positiveInteger"/>
+ </rng:attribute>
+ </rng:optional>
+ <rng:group>
+ <rng:optional>
+ <rng:attribute name="style:scale-to-X">
+ <rng:ref name="positiveInteger"/>
+ </rng:attribute>
+ </rng:optional>
+ <rng:optional>
+ <rng:attribute name="style:scale-to-Y">
+ <rng:ref name="positiveInteger"/>
+ </rng:attribute>
+ </rng:optional>
+ </rng:group>
+ </rng:choice>
<rng:optional>
<rng:attribute name="style:table-centering">
<rng:choice>
<rng:value>horizontal</rng:value>
<rng:value>vertical</rng:value>
<rng:value>both</rng:value>
<rng:value>none</rng:value>
</rng:choice>
</rng:attribute>
@@ -12287,21 +12268,21 @@
</rng:define>
<rng:define name="style-paragraph-properties">
<rng:element name="style:paragraph-properties">
<rng:ref name="style-paragraph-properties-content-strict"/>
</rng:element>
</rng:define>
<rng:define name="style-paragraph-properties-attlist">
<rng:interleave>
<rng:optional>
- <rng:attribute name="style:contextual-spacing">
- <rng:ref name="boolean"/>
- </rng:attribute>
+ <rng:attribute name="style:contextual-spacing">
+ <rng:ref name="boolean"/>
+ </rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-3767 -->
<rng:optional>
<rng:attribute name="fo:line-height">
<rng:choice>
<rng:value>normal</rng:value>
<rng:ref name="nonNegativeLength"/>
<rng:ref name="percent"/>
</rng:choice>
@@ -13065,21 +13046,21 @@
</rng:attribute>
</rng:optional>
<rng:ref name="common-writing-mode-attlist"/>
<rng:optional>
<rng:attribute name="table:display">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
<rng:optional>
- <rng:attribute name="table:tab-color">
- <rng:ref name="color"/>
- </rng:attribute>
+ <rng:attribute name="table:tab-color">
+ <rng:ref name="color"/>
+ </rng:attribute>
</rng:optional>
<!-- https://issues.oasis-open.org/browse/OFFICE-2173 -->
</rng:interleave>
</rng:define>
<rng:define name="style-table-properties-content-strict">
<rng:ref name="style-table-properties-attlist"/>
<rng:ref name="style-table-properties-elements"/>
</rng:define>
<rng:define name="style-table-properties-elements">
@@ -14284,74 +14265,82 @@
<rng:element name="table:data-pilot-group-member">
<rng:ref name="table-data-pilot-group-member-attlist"/>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-group-member-attlist">
<rng:attribute name="table:name">
<rng:ref name="string"/>
</rng:attribute>
</rng:define>
+ <rng:define name="table-data-pilot-groups">
+ <rng:element name="table:data-pilot-groups">
+ <rng:ref name="table-data-pilot-groups-attlist"/>
+ <rng:oneOrMore>
+ <rng:ref name="table-data-pilot-group"/>
+ </rng:oneOrMore>
+ </rng:element>
+ </rng:define>
<rng:define name="table-data-pilot-groups-attlist">
- <rng:interleave>
- <rng:attribute name="table:source-field-name">
- <rng:ref name="string"/>
- </rng:attribute>
- <rng:optional>
- <rng:choice>
- <rng:attribute name="table:date-start">
- <rng:choice>
- <rng:ref name="dateOrDateTime"/>
- <rng:value>auto</rng:value>
- </rng:choice>
- </rng:attribute>
- <rng:attribute name="table:start">
- <rng:choice>
- <rng:ref name="double"/>
- <rng:value>auto</rng:value>
- </rng:choice>
- </rng:attribute>
- </rng:choice>
- </rng:optional>
- <rng:optional>
- <rng:choice>
- <rng:attribute name="table:date-end">
- <rng:choice>
- <rng:ref name="dateOrDateTime"/>
- <rng:value>auto</rng:value>
- </rng:choice>
- </rng:attribute>
- <rng:attribute name="table:end">
- <rng:choice>
- <rng:ref name="double"/>
- <rng:value>auto</rng:value>
- </rng:choice>
- </rng:attribute>
- </rng:choice>
- </rng:optional>
- <rng:optional>
- <rng:attribute name="table:step">
- <rng:ref name="double"/>
- </rng:attribute>
- </rng:optional>
- <rng:optional>
- <rng:attribute name="table:grouped-by">
- <rng:choice>
- <rng:value>seconds</rng:value>
- <rng:value>minutes</rng:value>
- <rng:value>hours</rng:value>
- <rng:value>days</rng:value>
- <rng:value>months</rng:value>
- <rng:value>quarters</rng:value>
- <rng:value>years</rng:value>
- </rng:choice>
- </rng:attribute>
- </rng:optional>
- </rng:interleave>
+ <rng:interleave>
+ <rng:attribute name="table:source-field-name">
+ <rng:ref name="string"/>
+ </rng:attribute>
+ <rng:optional>
+ <rng:choice>
+ <rng:attribute name="table:date-start">
+ <rng:choice>
+ <rng:ref name="dateOrDateTime"/>
+ <rng:value>auto</rng:value>
+ </rng:choice>
+ </rng:attribute>
+ <rng:attribute name="table:start">
+ <rng:choice>
+ <rng:ref name="double"/>
+ <rng:value>auto</rng:value>
+ </rng:choice>
+ </rng:attribute>
+ </rng:choice>
+ </rng:optional>
+ <rng:optional>
+ <rng:choice>
+ <rng:attribute name="table:date-end">
+ <rng:choice>
+ <rng:ref name="dateOrDateTime"/>
+ <rng:value>auto</rng:value>
+ </rng:choice>
+ </rng:attribute>
+ <rng:attribute name="table:end">
+ <rng:choice>
+ <rng:ref name="double"/>
+ <rng:value>auto</rng:value>
+ </rng:choice>
+ </rng:attribute>
+ </rng:choice>
+ </rng:optional>
+ <rng:optional>
+ <rng:attribute name="table:step">
+ <rng:ref name="double"/>
+ </rng:attribute>
+ </rng:optional>
+ <rng:optional>
+ <rng:attribute name="table:grouped-by">
+ <rng:choice>
+ <rng:value>seconds</rng:value>
+ <rng:value>minutes</rng:value>
+ <rng:value>hours</rng:value>
+ <rng:value>days</rng:value>
+ <rng:value>months</rng:value>
+ <rng:value>quarters</rng:value>
+ <rng:value>years</rng:value>
+ </rng:choice>
+ </rng:attribute>
+ </rng:optional>
+ </rng:interleave>
</rng:define>
<!-- https://issues.oasis-open.org/browse/OFFICE-2118 -->
<rng:define name="table-data-pilot-layout-info">
<rng:element name="table:data-pilot-layout-info">
<rng:ref name="table-data-pilot-layout-info-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-data-pilot-layout-info-attlist">
@@ -15563,35 +15552,36 @@
<rng:define name="table-source-cell-range">
<rng:element name="table:source-cell-range">
<rng:ref name="table-source-cell-range-attlist"/>
<rng:optional>
<rng:ref name="table-filter"/>
</rng:optional>
</rng:element>
</rng:define>
<rng:define name="table-source-cell-range-attlist">
- <rng:interleave>
- <rng:choice>
- <rng:attribute name="table:cell-range-address">
- <rng:ref name="cellRangeAddress"/>
- </rng:attribute>
- <rng:group>
- <rng:attribute name="table:name">
- <rng:ref name="string"/>
- </rng:attribute>
- <rng:optional>
- <rng:attribute name="table:cell-range-address">
- <rng:ref name="cellRangeAddress"/>
- </rng:attribute>
- </rng:optional>
- </rng:group>
- </rng:choice>
- </rng:interleave>
+ <!-- OFFICE-3665 -->
+ <rng:interleave>
+ <rng:choice>
+ <rng:attribute name="table:cell-range-address">
+ <rng:ref name="cellRangeAddress"/>
+ </rng:attribute>
+ <rng:group>
+ <rng:attribute name="table:name">
+ <rng:ref name="string"/>
+ </rng:attribute>
+ <rng:optional>
+ <rng:attribute name="table:cell-range-address">
+ <rng:ref name="cellRangeAddress"/>
+ </rng:attribute>
+ </rng:optional>
+ </rng:group>
+ </rng:choice>
+ </rng:interleave>
</rng:define>
<rng:define name="table-source-range-address">
<rng:element name="table:source-range-address">
<rng:ref name="common-table-range-attlist"/>
<rng:empty/>
</rng:element>
</rng:define>
<rng:define name="table-source-service">
<rng:element name="table:source-service">
@@ -16877,20 +16867,20 @@
<rng:define name="text-illustration-index-entry-content">
<rng:ref name="text-illustration-index-entry-template-attrs"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="text-index-entry-chapter"/>
<rng:ref name="text-index-entry-page-number"/>
<rng:ref name="text-index-entry-text"/>
<rng:ref name="text-index-entry-span"/>
<rng:ref name="text-index-entry-tab-stop"/>
- <rng:ref name="text-index-entry-link-start"/>
- <rng:ref name="text-index-entry-link-end"/>
+ <rng:ref name="text-index-entry-link-start"/>
+ <rng:ref name="text-index-entry-link-end"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-3941 -->
</rng:choice>
</rng:zeroOrMore>
</rng:define>
<rng:define name="text-illustration-index-entry-template">
<rng:element name="text:illustration-index-entry-template">
<rng:ref name="text-illustration-index-entry-content"/>
</rng:element>
</rng:define>
@@ -18120,20 +18110,20 @@
<rng:element name="text:user-index-entry-template">
<rng:ref name="text-user-index-entry-template-attrs"/>
<rng:zeroOrMore>
<rng:choice>
<rng:ref name="text-index-entry-chapter"/>
<rng:ref name="text-index-entry-page-number"/>
<rng:ref name="text-index-entry-text"/>
<rng:ref name="text-index-entry-span"/>
<rng:ref name="text-index-entry-tab-stop"/>
- <rng:ref name="text-index-entry-link-start"/>
- <rng:ref name="text-index-entry-link-end"/>
+ <rng:ref name="text-index-entry-link-start"/>
+ <rng:ref name="text-index-entry-link-end"/>
<!-- https://issues.oasis-open.org/browse/OFFICE-3941 -->
</rng:choice>
</rng:zeroOrMore>
</rng:element>
</rng:define>
<rng:define name="text-user-index-entry-template-attrs">
<rng:interleave>
<rng:attribute name="text:outline-level">
<rng:ref name="positiveInteger"/>
--- /home/ms/Documents/odf/tc/OpenDocument-manifest-schema-v1.3-wd01.rng 2018-06-19 17:02:52.819471566 +0200
+++ /tmp/OpenDocument-manifest-schema-v1.3-wd01-with-fixes.rng 2018-06-25 12:27:17.803877695 +0200
@@ -171,63 +171,63 @@
</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:choice>
<rng:attribute name="manifest:key-derivation-name">
<rng:value>PGP</rng:value>
</rng:attribute>
-<rng:interleave>
+ <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: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:zeroOrMore>
<rng:ref name="encrypted-key"/>
- </rng:zeroOrMore>
+ </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.3</rng:value>
</rng:attribute>
</rng:define>
<rng:define name="namespacedToken">
<rng:data type="QName">
- <rng:param name="pattern">[^:]:[^:]</rng:param>
+ <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/>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]