Backport commit 20e9a00fb from Emacs
[org-mode/org-tableheadings.git] / etc / schema / od-manifest-schema-v1.2-os.rnc
blob87f84d1ea87e1e0eef759fac1bd7db74ce0a704e
1 # Open Document Format for Office Applications (OpenDocument) Version 1.2
2 # OASIS Standard, 29 September 2011
3 # Manifest Relax-NG Schema
4 # Source: http://docs.oasis-open.org/office/v1.2/os/
5 # Copyright (c) OASIS Open 2002-2011, 2013. All Rights Reserved.
7 # All capitalized terms in the following text have the meanings assigned to them
8 # in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The
9 # full Policy may be found at the OASIS website.
11 # This document and translations of it may be copied and furnished to others, and
12 # derivative works that comment on or otherwise explain it or assist in its
13 # implementation may be prepared, copied, published, and distributed, in whole or
14 # in part, without restriction of any kind, provided that the above copyright
15 # notice and this section are included on all such copies and derivative works.
16 # However, this document itself may not be modified in any way, including by
17 # removing the copyright notice or references to OASIS, except as needed for the
18 # purpose of developing any document or deliverable produced by an OASIS
19 # Technical Committee (in which case the rules applicable to copyrights, as set
20 # forth in the OASIS IPR Policy, must be followed) or as required to translate it
21 # into languages other than English.
23 # The limited permissions granted above are perpetual and will not be revoked by
24 # OASIS or its successors or assigns.
26 # This document and the information contained herein is provided on an "AS IS"
27 # basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
28 # LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
29 # INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
30 # FITNESS FOR A PARTICULAR PURPOSE.
32 namespace manifest =
33   "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"
35 start = manifest
36 manifest = element manifest:manifest { manifest-attlist, file-entry+ }
37 manifest-attlist = attribute manifest:version { "1.2" }
38 file-entry =
39   element manifest:file-entry { file-entry-attlist, encryption-data? }
40 file-entry-attlist =
41   attribute manifest:full-path { \string }
42   & attribute manifest:size { nonNegativeInteger }?
43   & attribute manifest:media-type { \string }
44   & attribute manifest:preferred-view-mode {
45       "edit" | "presentation-slide-show" | "read-only" | namespacedToken
46     }?
47   & attribute manifest:version { \string }?
48 encryption-data =
49   element manifest:encryption-data {
50     encryption-data-attlist,
51     algorithm,
52     start-key-generation?,
53     key-derivation
54   }
55 encryption-data-attlist =
56   attribute manifest:checksum-type { "SHA1/1K" | anyURI }
57   & attribute manifest:checksum { base64Binary }
58 algorithm =
59   element manifest:algorithm { algorithm-attlist, anyElements }
60 algorithm-attlist =
61   attribute manifest:algorithm-name { "Blowfish CFB" | anyURI }
62   & attribute manifest:initialisation-vector { base64Binary }
63 anyAttListOrElements =
64   attribute * { text }*,
65   anyElements
66 anyElements =
67   element * {
68     mixed { anyAttListOrElements }
69   }*
70 key-derivation =
71   element manifest:key-derivation { key-derivation-attlist, empty }
72 key-derivation-attlist =
73   attribute manifest:key-derivation-name { "PBKDF2" | anyURI }
74   & attribute manifest:salt { base64Binary }
75   & attribute manifest:iteration-count { nonNegativeInteger }
76   & attribute manifest:key-size { nonNegativeInteger }?
77 start-key-generation =
78   element manifest:start-key-generation {
79     start-key-generation-attlist, empty
80   }
81 start-key-generation-attlist =
82   attribute manifest:start-key-generation-name { "SHA1" | anyURI }
83   & attribute manifest:key-size { nonNegativeInteger }?
84 base64Binary = xsd:base64Binary
85 namespacedToken = xsd:QName { pattern = "[^:]+:[^:]+" }
86 nonNegativeInteger = xsd:nonNegativeInteger
87 \string = xsd:string
88 anyURI = xsd:anyURI