1 <?xml version=
"1.0" encoding=
"UTF-8"?>
3 Open Document Format for Office Applications (OpenDocument) Version 1.3
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
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">
20 <rng:ref name=
"manifest"/>
23 <rng:define name=
"algorithm">
24 <rng:element name=
"manifest:algorithm">
25 <rng:ref name=
"algorithm-attlist"/>
26 <rng:ref name=
"anyElements"/>
29 <rng:define name=
"algorithm-attlist">
31 <rng:attribute name=
"manifest:algorithm-name">
33 <rng:value>Blowfish CFB
</rng:value>
34 <rng:ref name=
"anyURI"/>
37 <rng:attribute name=
"manifest:initialisation-vector">
38 <rng:ref name=
"base64Binary"/>
42 <rng:define name=
"anyAttListOrElements">
49 <rng:ref name=
"anyElements"/>
51 <rng:define name=
"anyElements">
56 <rng:ref name=
"anyAttListOrElements"/>
61 <rng:define name=
"anyURI">
62 <rng:data type=
"anyURI"/>
64 <rng:define name=
"base64Binary">
65 <rng:data type=
"base64Binary"/>
67 <rng:define name=
"encrypted-key">
68 <rng:element name=
"manifest:encrypted-key">
70 <rng:element name=
"manifest:encryption-method">
71 <rng:attribute name=
"manifest:PGPAlgorithm">
72 <rng:ref name=
"anyURI"/>
76 <rng:element name=
"manifest:keyinfo">
77 <rng:element name=
"manifest:PGPData">
78 <rng:element name=
"manifest:PGPKeyID">
79 <rng:ref name=
"base64Binary"/>
82 <rng:element name=
"manifest:PGPKeyPacket">
83 <rng:ref name=
"base64Binary"/>
88 <rng:element name=
"manifest:CipherData">
89 <rng:element name=
"manifest:CipherValue">
90 <rng:ref name=
"base64Binary"/>
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"/>
100 <rng:ref name=
"start-key-generation"/>
102 <rng:ref name=
"key-derivation"/>
105 <rng:define name=
"encryption-data-attlist">
107 <rng:attribute name=
"manifest:checksum-type">
109 <rng:value>SHA1/
1K
</rng:value>
110 <rng:ref name=
"anyURI"/>
113 <rng:attribute name=
"manifest:checksum">
114 <rng:ref name=
"base64Binary"/>
118 <rng:define name=
"file-entry">
119 <rng:element name=
"manifest:file-entry">
120 <rng:ref name=
"file-entry-attlist"/>
122 <rng:ref name=
"encryption-data"/>
126 <rng:define name=
"file-entry-attlist">
128 <rng:attribute name=
"manifest:full-path">
129 <rng:ref name=
"string"/>
132 <rng:attribute name=
"manifest:size">
133 <rng:ref name=
"nonNegativeInteger"/>
136 <rng:attribute name=
"manifest:media-type">
137 <rng:ref name=
"string"/>
140 <rng:attribute name=
"manifest:preferred-view-mode">
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"/>
150 <rng:attribute name=
"manifest:version">
151 <rng:ref name=
"string"/>
156 <rng:define name=
"key-derivation">
157 <rng:element name=
"manifest:key-derivation">
158 <rng:ref name=
"key-derivation-attlist"/>
162 <rng:define name=
"key-derivation-attlist">
164 <rng:attribute name=
"manifest:key-derivation-name">
165 <rng:value>PGP
</rng:value>
168 <rng:attribute name=
"manifest:key-derivation-name">
170 <rng:value>PBKDF2
</rng:value>
171 <rng:ref name=
"anyURI"/>
174 <rng:attribute name=
"manifest:salt">
175 <rng:ref name=
"base64Binary"/>
177 <rng:attribute name=
"manifest:iteration-count">
178 <rng:ref name=
"nonNegativeInteger"/>
181 <rng:attribute name=
"manifest:key-size">
182 <rng:ref name=
"nonNegativeInteger"/>
188 <rng:define name=
"manifest">
189 <rng:element name=
"manifest:manifest">
190 <rng:ref name=
"manifest-attlist"/>
192 <rng:ref name=
"encrypted-key"/>
194 <!-- https://issues.oasis-open.org/browse/OFFICE-3940 -->
196 <rng:ref name=
"file-entry"/>
200 <rng:define name=
"manifest-attlist">
201 <rng:attribute name=
"manifest:version">
202 <rng:value>1.3</rng:value>
205 <rng:define name=
"namespacedToken">
206 <rng:data type=
"QName">
207 <rng:param name=
"pattern">[^:]+:[^:]+
</rng:param>
210 <rng:define name=
"nonNegativeInteger">
211 <rng:data type=
"nonNegativeInteger"/>
213 <rng:define name=
"start-key-generation">
214 <rng:element name=
"manifest:start-key-generation">
215 <rng:ref name=
"start-key-generation-attlist"/>
219 <rng:define name=
"start-key-generation-attlist">
221 <rng:attribute name=
"manifest:start-key-generation-name">
223 <rng:value>SHA1
</rng:value>
224 <rng:ref name=
"anyURI"/>
228 <rng:attribute name=
"manifest:key-size">
229 <rng:ref name=
"nonNegativeInteger"/>
234 <rng:define name=
"string">
235 <rng:data type=
"string"/>