Bump version to 21.06.18.1
[LibreOffice.git] / schema / odf1.3 / OpenDocument-manifest-schema-v1.3.rng
blob09f6bd35bc23d61fba91ecdaeb4f6bdfb5aa2b85
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3 Open Document Format for Office Applications (OpenDocument) Version 1.3
4 Committee Specification 01
5 25 December 2019
6 Copyright (c) OASIS Open 2019. All Rights Reserved.
7 Source: https://docs.oasis-open.org/office/OpenDocument/v1.3/cs01/schemas/
8 Latest stage of specification: https://docs.oasis-open.org/office/OpenDocument/v1.3/OpenDocument-v1.3-part1-introduction.html
9 TC IPR Statement: https://www.oasis-open.org/committees/office/ipr.php
10 -->
11 <!--
12 Open Document Format for Office Applications (OpenDocument) Version 1.3
13 OASIS Standard in progress
14 Manifest Relax-NG Schema
16 Copyright © OASIS Open [2002-2018]. All Rights Reserved.
17 Distributed under the terms of the OASIS IPR Policy, [http://www.oasis-open.org/policies-guidelines/ipr],
18 AS-IS, WITHOUT ANY IMPLIED OR EXPRESS WARRANTY; there is no warranty of MERCHANTABILITY,
19 FITNESS FOR A PARTICULAR PURPOSE or NONINFRINGEMENT of the rights of others.
20 -->
22 <!-- https://issues.oasis-open.org/browse/OFFICE-2153 -->
24 <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">
25 <rng:start>
26 <rng:choice>
27 <rng:ref name="manifest"/>
28 </rng:choice>
29 </rng:start>
30 <rng:define name="algorithm">
31 <rng:element name="manifest:algorithm">
32 <rng:ref name="algorithm-attlist"/>
33 <rng:ref name="anyElements"/>
34 </rng:element>
35 </rng:define>
36 <rng:define name="algorithm-attlist">
37 <rng:interleave>
38 <rng:attribute name="manifest:algorithm-name">
39 <rng:choice>
40 <rng:value>Blowfish CFB</rng:value>
41 <rng:ref name="anyURI"/>
42 </rng:choice>
43 </rng:attribute>
44 <rng:attribute name="manifest:initialisation-vector">
45 <rng:ref name="base64Binary"/>
46 </rng:attribute>
47 </rng:interleave>
48 </rng:define>
49 <rng:define name="anyAttListOrElements">
50 <rng:zeroOrMore>
51 <rng:attribute>
52 <rng:anyName/>
53 <rng:text/>
54 </rng:attribute>
55 </rng:zeroOrMore>
56 <rng:ref name="anyElements"/>
57 </rng:define>
58 <rng:define name="anyElements">
59 <rng:zeroOrMore>
60 <rng:element>
61 <rng:anyName/>
62 <rng:mixed>
63 <rng:ref name="anyAttListOrElements"/>
64 </rng:mixed>
65 </rng:element>
66 </rng:zeroOrMore>
67 </rng:define>
68 <rng:define name="anyURI">
69 <rng:data type="anyURI"/>
70 </rng:define>
71 <rng:define name="base64Binary">
72 <rng:data type="base64Binary"/>
73 </rng:define>
74 <rng:define name="encrypted-key">
75 <rng:element name="manifest:encrypted-key">
76 <rng:optional>
77 <rng:element name="manifest:encryption-method">
78 <rng:attribute name="manifest:PGPAlgorithm">
79 <rng:ref name="anyURI"/>
80 </rng:attribute>
81 </rng:element>
82 </rng:optional>
83 <rng:element name="manifest:keyinfo">
84 <rng:element name="manifest:PGPData">
85 <rng:element name="manifest:PGPKeyID">
86 <rng:ref name="base64Binary"/>
87 </rng:element>
88 <rng:optional>
89 <rng:element name="manifest:PGPKeyPacket">
90 <rng:ref name="base64Binary"/>
91 </rng:element>
92 </rng:optional>
93 </rng:element>
94 </rng:element>
95 <rng:element name="manifest:CipherData">
96 <rng:element name="manifest:CipherValue">
97 <rng:ref name="base64Binary"/>
98 </rng:element>
99 </rng:element>
100 </rng:element>
101 </rng:define>
102 <rng:define name="encryption-data">
103 <rng:element name="manifest:encryption-data">
104 <rng:ref name="encryption-data-attlist"/>
105 <rng:ref name="algorithm"/>
106 <rng:optional>
107 <rng:ref name="start-key-generation"/>
108 </rng:optional>
109 <rng:ref name="key-derivation"/>
110 </rng:element>
111 </rng:define>
112 <rng:define name="encryption-data-attlist">
113 <rng:interleave>
114 <rng:attribute name="manifest:checksum-type">
115 <rng:choice>
116 <rng:value>SHA1/1K</rng:value>
117 <rng:ref name="anyURI"/>
118 </rng:choice>
119 </rng:attribute>
120 <rng:attribute name="manifest:checksum">
121 <rng:ref name="base64Binary"/>
122 </rng:attribute>
123 </rng:interleave>
124 </rng:define>
125 <rng:define name="file-entry">
126 <rng:element name="manifest:file-entry">
127 <rng:ref name="file-entry-attlist"/>
128 <rng:optional>
129 <rng:ref name="encryption-data"/>
130 </rng:optional>
131 </rng:element>
132 </rng:define>
133 <rng:define name="file-entry-attlist">
134 <rng:interleave>
135 <rng:attribute name="manifest:full-path">
136 <rng:ref name="string"/>
137 </rng:attribute>
138 <rng:optional>
139 <rng:attribute name="manifest:size">
140 <rng:ref name="nonNegativeInteger"/>
141 </rng:attribute>
142 </rng:optional>
143 <rng:attribute name="manifest:media-type">
144 <rng:ref name="string"/>
145 </rng:attribute>
146 <rng:optional>
147 <rng:attribute name="manifest:preferred-view-mode">
148 <rng:choice>
149 <rng:value>edit</rng:value>
150 <rng:value>presentation-slide-show</rng:value>
151 <rng:value>read-only</rng:value>
152 <rng:ref name="namespacedToken"/>
153 </rng:choice>
154 </rng:attribute>
155 </rng:optional>
156 <rng:optional>
157 <rng:attribute name="manifest:version">
158 <rng:ref name="string"/>
159 </rng:attribute>
160 </rng:optional>
161 </rng:interleave>
162 </rng:define>
163 <rng:define name="key-derivation">
164 <rng:element name="manifest:key-derivation">
165 <rng:ref name="key-derivation-attlist"/>
166 <rng:empty/>
167 </rng:element>
168 </rng:define>
169 <rng:define name="key-derivation-attlist">
170 <rng:choice>
171 <rng:attribute name="manifest:key-derivation-name">
172 <rng:value>PGP</rng:value>
173 </rng:attribute>
174 <rng:interleave>
175 <rng:attribute name="manifest:key-derivation-name">
176 <rng:choice>
177 <rng:value>PBKDF2</rng:value>
178 <rng:ref name="anyURI"/>
179 </rng:choice>
180 </rng:attribute>
181 <rng:attribute name="manifest:salt">
182 <rng:ref name="base64Binary"/>
183 </rng:attribute>
184 <rng:attribute name="manifest:iteration-count">
185 <rng:ref name="nonNegativeInteger"/>
186 </rng:attribute>
187 <rng:optional>
188 <rng:attribute name="manifest:key-size">
189 <rng:ref name="nonNegativeInteger"/>
190 </rng:attribute>
191 </rng:optional>
192 </rng:interleave>
193 </rng:choice>
194 </rng:define>
195 <rng:define name="manifest">
196 <rng:element name="manifest:manifest">
197 <rng:ref name="manifest-attlist"/>
198 <rng:zeroOrMore>
199 <rng:ref name="encrypted-key"/>
200 </rng:zeroOrMore>
201 <!-- https://issues.oasis-open.org/browse/OFFICE-3940 -->
202 <rng:oneOrMore>
203 <rng:ref name="file-entry"/>
204 </rng:oneOrMore>
205 </rng:element>
206 </rng:define>
207 <rng:define name="manifest-attlist">
208 <rng:attribute name="manifest:version">
209 <rng:value>1.3</rng:value>
210 </rng:attribute>
211 </rng:define>
212 <rng:define name="namespacedToken">
213 <rng:data type="QName">
214 <rng:param name="pattern">[^:]+:[^:]+</rng:param>
215 </rng:data>
216 </rng:define>
217 <rng:define name="nonNegativeInteger">
218 <rng:data type="nonNegativeInteger"/>
219 </rng:define>
220 <rng:define name="start-key-generation">
221 <rng:element name="manifest:start-key-generation">
222 <rng:ref name="start-key-generation-attlist"/>
223 <rng:empty/>
224 </rng:element>
225 </rng:define>
226 <rng:define name="start-key-generation-attlist">
227 <rng:interleave>
228 <rng:attribute name="manifest:start-key-generation-name">
229 <rng:choice>
230 <rng:value>SHA1</rng:value>
231 <rng:ref name="anyURI"/>
232 </rng:choice>
233 </rng:attribute>
234 <rng:optional>
235 <rng:attribute name="manifest:key-size">
236 <rng:ref name="nonNegativeInteger"/>
237 </rng:attribute>
238 </rng:optional>
239 </rng:interleave>
240 </rng:define>
241 <rng:define name="string">
242 <rng:data type="string"/>
243 </rng:define>
244 </rng:grammar>