<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
		   
	<xs:complexType name="creation-type">
		<xs:sequence>
			<xs:element name="creator" minOccurs="1" maxOccurs="1">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="type" type="xs:string" />
						</xs:extension>
					</xs:simpleContent>					
				</xs:complexType>
			</xs:element>
			<xs:element name="date" minOccurs="1" maxOccurs="1">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="encoding" type="xs:string" />
						</xs:extension>
					</xs:simpleContent>					
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name="contribution-type">
		<xs:sequence>
			<xs:element name="contributor" minOccurs="1" maxOccurs="1">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="type" type="xs:string" />
						</xs:extension>
					</xs:simpleContent>					
				</xs:complexType>
			</xs:element>
			<xs:element name="date" minOccurs="1" maxOccurs="1">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="encoding" type="xs:string" />
						</xs:extension>
					</xs:simpleContent>					
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name="tag-type">
		<xs:sequence>						
			<xs:element name="tag" type="tag-type" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="type" type="xs:string" />
		<xs:attribute name="value" type="xs:string" />
	</xs:complexType>
	
	<xs:complexType name="block-metadata-type">
		<xs:sequence>
			<xs:element name="namespace" type="xs:anyURI" minOccurs="0" maxOccurs="1" />				
			<xs:element name="creation" type="creation-type" minOccurs="1" maxOccurs="1" />
			<xs:element name="contribution" type="contribution-type" minOccurs="0" maxOccurs="unbounded" />
			<xs:element name="title" minOccurs="1" maxOccurs="unbounded">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute ref="xml:lang" />
						</xs:extension>
					</xs:simpleContent>					
				</xs:complexType>
			</xs:element>				
			<xs:element name="description" minOccurs="0" maxOccurs="unbounded">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute ref="xml:lang" />
						</xs:extension>
					</xs:simpleContent>					
				</xs:complexType>
			</xs:element>				
			<xs:element name="format" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="schema" type="xs:anyURI" />
							<xs:attribute name="encryption" type="xs:string" />
						</xs:extension>
					</xs:simpleContent>					
				</xs:complexType>
			</xs:element>
			<xs:element name="type" type="xs:string" minOccurs="0" maxOccurs="1" />
			<xs:element name="subject" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="tag" type="tag-type" minOccurs="1" maxOccurs="unbounded" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="link" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="type" type="xs:string" />
							<xs:attribute name="hash" type="xs:string" />
						</xs:extension>
					</xs:simpleContent>					
				</xs:complexType>
			</xs:element>
			<xs:element name="payload" minOccurs="0" maxOccurs="1">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="encoding" type="xs:string" />
						</xs:extension>
					</xs:simpleContent>					
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="omm-type">
		<xs:sequence>
			<xs:element name="header" minOccurs="1" maxOccurs="1">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="version" type="xs:string" minOccurs="1" maxOccurs="1" />
						<xs:element name="primaryID" minOccurs="1" maxOccurs="1">
							<xs:complexType>
								<xs:simpleContent>
									<xs:extension base="xs:string">
										<xs:attribute name="type" type="xs:anyURI" />
									</xs:extension>
								</xs:simpleContent>					
							</xs:complexType>
						</xs:element>
						<xs:element name="additionalBlocks" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:simpleContent>
									<xs:extension base="xs:anyURI">
										<xs:attribute name="type" type="xs:string" />
									</xs:extension>
								</xs:simpleContent>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>  

			<xs:element name="toc" type="block-metadata-type" minOccurs="0" maxOccurs="1" />

			<xs:element name="block" type="block-metadata-type" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>

	<xs:element name="omm" type="omm-type" />
	
</xs:schema>