# Open Document Format for Office Applications (OpenDocument) Version 1.2 # OASIS Standard, 29 September 2011 # Manifest Relax-NG Schema # Source: http://docs.oasis-open.org/office/v1.2/os/ # Copyright (c) OASIS Open 2002-2011, 2013. All Rights Reserved. # # All capitalized terms in the following text have the meanings assigned to them # in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The # full Policy may be found at the OASIS website. # # This document and translations of it may be copied and furnished to others, and # derivative works that comment on or otherwise explain it or assist in its # implementation may be prepared, copied, published, and distributed, in whole or # in part, without restriction of any kind, provided that the above copyright # notice and this section are included on all such copies and derivative works. # However, this document itself may not be modified in any way, including by # removing the copyright notice or references to OASIS, except as needed for the # purpose of developing any document or deliverable produced by an OASIS # Technical Committee (in which case the rules applicable to copyrights, as set # forth in the OASIS IPR Policy, must be followed) or as required to translate it # into languages other than English. # # The limited permissions granted above are perpetual and will not be revoked by # OASIS or its successors or assigns. # # This document and the information contained herein is provided on an "AS IS" # basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT # LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT # INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR # FITNESS FOR A PARTICULAR PURPOSE. namespace manifest = "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" start = manifest manifest = element manifest:manifest { manifest-attlist, file-entry+ } manifest-attlist = attribute manifest:version { "1.2" } file-entry = element manifest:file-entry { file-entry-attlist, encryption-data? } file-entry-attlist = attribute manifest:full-path { \string } & attribute manifest:size { nonNegativeInteger }? & attribute manifest:media-type { \string } & attribute manifest:preferred-view-mode { "edit" | "presentation-slide-show" | "read-only" | namespacedToken }? & attribute manifest:version { \string }? encryption-data = element manifest:encryption-data { encryption-data-attlist, algorithm, start-key-generation?, key-derivation } encryption-data-attlist = attribute manifest:checksum-type { "SHA1/1K" | anyURI } & attribute manifest:checksum { base64Binary } algorithm = element manifest:algorithm { algorithm-attlist, anyElements } algorithm-attlist = attribute manifest:algorithm-name { "Blowfish CFB" | anyURI } & attribute manifest:initialisation-vector { base64Binary } anyAttListOrElements = attribute * { text }*, anyElements anyElements = element * { mixed { anyAttListOrElements } }* key-derivation = element manifest:key-derivation { key-derivation-attlist, empty } key-derivation-attlist = attribute manifest:key-derivation-name { "PBKDF2" | anyURI } & attribute manifest:salt { base64Binary } & attribute manifest:iteration-count { nonNegativeInteger } & attribute manifest:key-size { nonNegativeInteger }? start-key-generation = element manifest:start-key-generation { start-key-generation-attlist, empty } start-key-generation-attlist = attribute manifest:start-key-generation-name { "SHA1" | anyURI } & attribute manifest:key-size { nonNegativeInteger }? base64Binary = xsd:base64Binary namespacedToken = xsd:QName { pattern = "[^:]+:[^:]+" } nonNegativeInteger = xsd:nonNegativeInteger \string = xsd:string anyURI = xsd:anyURI