123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Open Document Format for Office Applications (OpenDocument) Version 1.2
- Committee Specification (CS) 01, 17 March 2011
- Manifest Relax-NG Schema
- Copyright (c) OASIS Open 2002-2011. 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.
- -->
- <grammar
- xmlns="http://relaxng.org/ns/structure/1.0"
- datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
- xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"
- >
- <start>
- <choice>
- <ref name="manifest"/>
- </choice>
- </start>
- <define name="manifest">
- <element name="manifest:manifest">
- <ref name="manifest-attlist"/>
- <oneOrMore>
- <ref name="file-entry"/>
- </oneOrMore>
- </element>
- </define>
- <define name="manifest-attlist">
- <attribute name="manifest:version">
- <value>1.2</value>
- </attribute>
- </define>
- <define name="file-entry">
- <element name="manifest:file-entry">
- <ref name="file-entry-attlist"/>
- <optional>
- <ref name="encryption-data"/>
- </optional>
- </element>
- </define>
- <define name="file-entry-attlist">
- <interleave>
- <attribute name="manifest:full-path">
- <ref name="string"/>
- </attribute>
- <optional>
- <attribute name="manifest:size">
- <ref name="nonNegativeInteger"/>
- </attribute>
- </optional>
- <attribute name="manifest:media-type">
- <ref name="string"/>
- </attribute>
- <optional>
- <attribute name="manifest:preferred-view-mode">
- <choice>
- <value>edit</value>
- <value>presentation-slide-show</value>
- <value>read-only</value>
- <ref name="namespacedToken"/>
- </choice>
- </attribute>
- </optional>
- <optional>
- <attribute name="manifest:version">
- <ref name="string"/>
- </attribute>
- </optional>
- </interleave>
- </define>
- <define name="encryption-data">
- <element name="manifest:encryption-data">
- <ref name="encryption-data-attlist"/>
- <ref name="algorithm"/>
- <optional>
- <ref name="start-key-generation"/>
- </optional>
- <ref name="key-derivation"/>
- </element>
- </define>
- <define name="encryption-data-attlist">
- <interleave>
- <attribute name="manifest:checksum-type">
- <choice>
- <value>SHA1/1K</value>
- <ref name="anyURI"/>
- </choice>
- </attribute>
- <attribute name="manifest:checksum">
- <ref name="base64Binary"/>
- </attribute>
- </interleave>
- </define>
- <define name="algorithm">
- <element name="manifest:algorithm">
- <ref name="algorithm-attlist"/>
- <ref name="anyElements"/>
- </element>
- </define>
- <define name="algorithm-attlist">
- <interleave>
- <attribute name="manifest:algorithm-name">
- <choice>
- <value>Blowfish CFB</value>
- <ref name="anyURI"/>
- </choice>
- </attribute>
- <attribute name="manifest:initialisation-vector">
- <ref name="base64Binary"/>
- </attribute>
- </interleave>
- </define>
- <define name="anyAttListOrElements">
- <zeroOrMore>
- <attribute>
- <anyName/>
- <text/>
- </attribute>
- </zeroOrMore>
- <ref name="anyElements"/>
- </define>
- <define name="anyElements">
- <zeroOrMore>
- <element>
- <anyName/>
- <mixed>
- <ref name="anyAttListOrElements"/>
- </mixed>
- </element>
- </zeroOrMore>
- </define>
- <define name="key-derivation">
- <element name="manifest:key-derivation">
- <ref name="key-derivation-attlist"/>
- <empty/>
- </element>
- </define>
- <define name="key-derivation-attlist">
- <interleave>
- <attribute name="manifest:key-derivation-name">
- <choice>
- <value>PBKDF2</value>
- <ref name="anyURI"/>
- </choice>
- </attribute>
- <attribute name="manifest:salt">
- <ref name="base64Binary"/>
- </attribute>
- <attribute name="manifest:iteration-count">
- <ref name="nonNegativeInteger"/>
- </attribute>
- <optional>
- <attribute name="manifest:key-size">
- <ref name="nonNegativeInteger"/>
- </attribute>
- </optional>
- </interleave>
- </define>
- <define name="start-key-generation">
- <element name="manifest:start-key-generation">
- <ref name="start-key-generation-attlist"/>
- <empty/>
- </element>
- </define>
- <define name="start-key-generation-attlist">
- <interleave>
- <attribute name="manifest:start-key-generation-name">
- <choice>
- <value>SHA1</value>
- <ref name="anyURI"/>
- </choice>
- </attribute>
- <optional>
- <attribute name="manifest:key-size">
- <ref name="nonNegativeInteger"/>
- </attribute>
- </optional>
- </interleave>
- </define>
- <define name="base64Binary">
- <data type="base64Binary"/>
- </define>
- <define name="namespacedToken">
- <data type="QName">
- <param name="pattern">[^:]+:[^:]+</param>
- </data>
- </define>
- <define name="nonNegativeInteger">
- <data type="nonNegativeInteger"/>
- </define>
- <define name="string">
- <data type="string"/>
- </define>
- <define name="anyURI">
- <data type="anyURI"/>
- </define>
- </grammar>
|