| 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>
 
 
  |