<?xml version="1.0" encoding="UTF-8"?> <!-- OASIS OpenDocument v1.0 OASIS standard, 1 May 2005 Relax-NG Manifest Schema $Id$ © 2002-2005 OASIS Open © 1999-2005 Sun Microsystems, Inc. --> <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"> <define name="manifest"> <element name="manifest:manifest"> <oneOrMore> <ref name="file-entry"/> </oneOrMore> </element> </define> <start> <choice> <ref name="manifest"/> </choice> </start> <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" combine="interleave"> <attribute name="manifest:full-path"> <data type="string"/> </attribute> </define> <define name="file-entry-attlist" combine="interleave"> <optional> <attribute name="manifest:size"> <data type="nonNegativeInteger"/> </attribute> </optional> </define> <define name="file-entry-attlist" combine="interleave"> <attribute name="manifest:media-type"> <data type="string"/> </attribute> </define> <define name="encryption-data"> <element name="manifest:encryption-data"> <ref name="encryption-data-attlist"/> <ref name="algorithm"/> <ref name="key-derivation"/> </element> </define> <define name="encryption-data-attlist" combine="interleave"> <attribute name="manifest:checksum-type"> <data type="string"/> </attribute> </define> <define name="encryption-data-attlist" combine="interleave"> <attribute name="manifest:checksum"> <data type="base64Binary"/> </attribute> </define> <define name="algorithm"> <element name="manifest:algorithm"> <ref name="algorithm-attlist"/> <empty/> </element> </define> <define name="algorithm-attlist" combine="interleave"> <attribute name="manifest:algorithm-name"> <data type="string"/> </attribute> </define> <define name="algorithm-attlist" combine="interleave"> <attribute name="manifest:initialisation-vector"> <data type="base64Binary"/> </attribute> </define> <define name="key-derivation"> <element name="manifest:key-derivation"> <ref name="key-derivation-attlist"/> <empty/> </element> </define> <define name="key-derivation-attlist" combine="interleave"> <attribute name="manifest:key-derivation-name"> <data type="string"/> </attribute> </define> <define name="key-derivation-attlist" combine="interleave"> <attribute name="manifest:salt"> <data type="base64Binary"/> </attribute> </define> <define name="key-derivation-attlist" combine="interleave"> <attribute name="manifest:iteration-count"> <data type="nonNegativeInteger"/> </attribute> </define> </grammar>