OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office message

[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.rng

1. 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]