<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<xsd:schema targetNamespace="urn:oasis:names:tc:opendocument:xmlns:container"
	elementFormDefault="qualified" attributeFormDefault="unqualified"
	version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:container="urn:oasis:names:tc:opendocument:xmlns:container"
	xmlns:enc="http://www.w3.org/2001/04/xmlenc#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
	jaxb:version="2.0"
	xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd">
	<xsd:annotation>
		<xsd:documentation>
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

			NOTE: urn:oasis:names:tc:opendocument:xmlns:container is *not* an
			official namespace by OASIS, but the Adobe UCF specification defines
			that a conforming META-INF/container.xml *must* use the *default*
			namespace, eg:

			&lt;container
			xmlns="urn:oasis:names:tc:opendocument:xmlns:container"&gt;
			...
			&lt;/container&gt; </xsd:documentation>
	</xsd:annotation>

	<!-- xmldsig-core-schema.xsd is also included by xenc-schema.xsd -->
	<xsd:import namespace='http://www.w3.org/2000/09/xmldsig#'
		schemaLocation='./xmldsig-core-schema.xsd' />
		<!--schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd" -->
	<xsd:import namespace="http://www.w3.org/2001/04/xmlenc#"
		schemaLocation="xenc-schema.xsd" />
		<!--schemaLocation='http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd' -->

	<xsd:element name="container" type="container:Container"></xsd:element>

	<xsd:complexType name="Container">

		<xsd:sequence>
			<xsd:choice minOccurs="0" maxOccurs="2">
				<xsd:element name="rootFiles">
					<xsd:complexType>
						<xsd:choice maxOccurs="unbounded">
							<xsd:any namespace="##other" processContents="lax" />
							<xsd:element name="rootFile" type="container:RootFile" />
						</xsd:choice>
						<xsd:anyAttribute namespace="##other"
							processContents="lax" />
					</xsd:complexType>
				</xsd:element>
				<xsd:any namespace="##other" 
					processContents="lax" maxOccurs="unbounded" />
			</xsd:choice>

			<xsd:sequence minOccurs="0">
				<xsd:element name="relationships">
					<xsd:complexType>
						<xsd:choice maxOccurs="unbounded">
							<xsd:any namespace="##other" processContents="lax" />
							<xsd:element name="relationship" type="container:Relationship" />
						</xsd:choice>
						<xsd:anyAttribute namespace="##other"
							processContents="lax" />
					</xsd:complexType>
				</xsd:element>
				<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
					processContents="lax">
					<xsd:annotation>
						<xsd:appinfo>
							<jaxb:property name="any5" />
						</xsd:appinfo>
					</xsd:annotation>

				</xsd:any>
			</xsd:sequence>


			<xsd:sequence minOccurs="0">
				<xsd:element name="signatures">
					<xsd:complexType>
						<xsd:choice maxOccurs="unbounded">
							<!-- Can't use ##other as dsig: is in other <xsd:any namespace="##other" 
								processContents="lax"> <xsd:annotation> <xsd:appinfo> <jaxb:property name="any6" 
								/> </xsd:appinfo> </xsd:annotation> </xsd:any> -->
							<xsd:element ref="dsig:Signature" />
						</xsd:choice>
						<xsd:anyAttribute namespace="##other"
							processContents="lax" />
					</xsd:complexType>
				</xsd:element>
				<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
					processContents="lax">
					<xsd:annotation>
						<xsd:appinfo>
							<jaxb:property name="any7" />
						</xsd:appinfo>
					</xsd:annotation>
				</xsd:any>
			</xsd:sequence>

			<xsd:sequence minOccurs="0">
				<xsd:element name="encryption">
					<xsd:complexType>
						<xsd:choice maxOccurs="unbounded">
							<xsd:element ref="enc:EncryptedData" />
							<xsd:element ref="enc:EncryptedKey" />
							<!-- Can't use ##other as enc: is in other <xsd:any namespace="##other" 
								processContents="lax"> <xsd:annotation> <xsd:appinfo> <jaxb:property name="any8" 
								/> </xsd:appinfo> </xsd:annotation> </xsd:any> -->
						</xsd:choice>
						<xsd:anyAttribute namespace="##other"
							processContents="lax" />
					</xsd:complexType>
				</xsd:element>

				<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
					processContents="lax">
					<xsd:annotation>
						<xsd:appinfo>
							<jaxb:property name="any9" />
						</xsd:appinfo>
					</xsd:annotation>
				</xsd:any>
			</xsd:sequence>

		</xsd:sequence>

		<xsd:attribute name="version" type="xsd:string" fixed="1.0"></xsd:attribute>
		<xsd:anyAttribute namespace="##other"
			processContents="lax" />

	</xsd:complexType>

	<xsd:complexType name="RootFile">
		<xsd:sequence>
			<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
				processContents="lax" />
		</xsd:sequence>
		<xsd:attribute name="full-path" type="xsd:string" use="required">
		</xsd:attribute>
		<xsd:attribute name="media-type" type="xsd:string" use="required">
		</xsd:attribute>
		<xsd:anyAttribute namespace="##other"
			processContents="lax" />

	</xsd:complexType>

	<xsd:complexType name="Relationship">
		<xsd:sequence>
			<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
				processContents="lax" />
		</xsd:sequence>
		<xsd:attribute name="type" type="xsd:string"></xsd:attribute>
		<xsd:attribute name="target" type="xsd:string"></xsd:attribute>
		<xsd:anyAttribute namespace="##other"
			processContents="lax" />
	</xsd:complexType>
</xsd:schema>
