od-manifest-schema-v1.2-os.rnc 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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.
  6. #
  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.
  10. #
  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.
  22. #
  23. # The limited permissions granted above are perpetual and will not be revoked by
  24. # OASIS or its successors or assigns.
  25. #
  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.
  31. namespace manifest =
  32. "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"
  33. start = manifest
  34. manifest = element manifest:manifest { manifest-attlist, file-entry+ }
  35. manifest-attlist = attribute manifest:version { "1.2" }
  36. file-entry =
  37. element manifest:file-entry { file-entry-attlist, encryption-data? }
  38. file-entry-attlist =
  39. attribute manifest:full-path { \string }
  40. & attribute manifest:size { nonNegativeInteger }?
  41. & attribute manifest:media-type { \string }
  42. & attribute manifest:preferred-view-mode {
  43. "edit" | "presentation-slide-show" | "read-only" | namespacedToken
  44. }?
  45. & attribute manifest:version { \string }?
  46. encryption-data =
  47. element manifest:encryption-data {
  48. encryption-data-attlist,
  49. algorithm,
  50. start-key-generation?,
  51. key-derivation
  52. }
  53. encryption-data-attlist =
  54. attribute manifest:checksum-type { "SHA1/1K" | anyURI }
  55. & attribute manifest:checksum { base64Binary }
  56. algorithm =
  57. element manifest:algorithm { algorithm-attlist, anyElements }
  58. algorithm-attlist =
  59. attribute manifest:algorithm-name { "Blowfish CFB" | anyURI }
  60. & attribute manifest:initialisation-vector { base64Binary }
  61. anyAttListOrElements =
  62. attribute * { text }*,
  63. anyElements
  64. anyElements =
  65. element * {
  66. mixed { anyAttListOrElements }
  67. }*
  68. key-derivation =
  69. element manifest:key-derivation { key-derivation-attlist, empty }
  70. key-derivation-attlist =
  71. attribute manifest:key-derivation-name { "PBKDF2" | anyURI }
  72. & attribute manifest:salt { base64Binary }
  73. & attribute manifest:iteration-count { nonNegativeInteger }
  74. & attribute manifest:key-size { nonNegativeInteger }?
  75. start-key-generation =
  76. element manifest:start-key-generation {
  77. start-key-generation-attlist, empty
  78. }
  79. start-key-generation-attlist =
  80. attribute manifest:start-key-generation-name { "SHA1" | anyURI }
  81. & attribute manifest:key-size { nonNegativeInteger }?
  82. base64Binary = xsd:base64Binary
  83. namespacedToken = xsd:QName { pattern = "[^:]+:[^:]+" }
  84. nonNegativeInteger = xsd:nonNegativeInteger
  85. \string = xsd:string
  86. anyURI = xsd:anyURI