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