| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | # 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 = manifestmanifest = 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 }*,  anyElementsanyElements =  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:base64BinarynamespacedToken = xsd:QName { pattern = "[^:]+:[^:]+" }nonNegativeInteger = xsd:nonNegativeInteger\string = xsd:stringanyURI = xsd:anyURI
 |