<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">

<xsd:element name="endangered_species" type="endspeciesType"/>
	
	
<xsd:complexType name="endspeciesType">
	<xsd:sequence>
		<xsd:element name="animal" type="animalType"/>
	</xsd:sequence>
</xsd:complexType>


<xsd:complexType name="animalType">
	<xsd:sequence>
		<xsd:element ref="name" minOccurs="2"/>
		<xsd:element name="threats" type="threatsType"/>
		<xsd:element name="weight" type="xsd:string"/>
		<xsd:element name="length" type="xsd:string"/>
		<xsd:element name="source" type="sourceType"/>
		<xsd:element name="picture" type="pictureType"/>
		<xsd:element name="subspecies" type="subspeciesType"/>
	</xsd:sequence>
</xsd:complexType>

<xsd:element name="name">
	<xsd:complexType>
	<xsd:simpleContent>
		<xsd:extension base="xsd:string">
			<xsd:attribute name="language" type="languageType"/>
		</xsd:extension>
	</xsd:simpleContent>
	</xsd:complexType>
</xsd:element>

<xsd:simpleType name="languageType">
	<xsd:restriction base="xsd:string">
		<xsd:enumeration value="English"/>
		<xsd:enumeration value="Latin"/>
	</xsd:restriction>
</xsd:simpleType>

<xsd:complexType name="threatsType">
	<xsd:sequence>
		<xsd:element name="threat" type="xsd:string" maxOccurs="unbounded"/>
	</xsd:sequence>
</xsd:complexType>

<!--An empty element, like the one defined by the sourceType type shown here, is based on the anyType type, with added attributes. -->
 <xsd:complexType name="sourceType">
	<xsd:complexContent>
		<xsd:extension base="xsd:anyType">
		<xsd:attribute name="sectionid" type="xsd:string" use="required"/>
		<xsd:attribute name="newspaperid" type="xsd:string" use="required"/>
		</xsd:extension>
	</xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="pictureType">
	<xsd:complexContent>
		<xsd:restriction base="xsd:anyType">
		<xsd:attribute name="filename" type="xsd:uriReference" use="required"/>
		<xsd:attribute name="x" type="xsd:integer"/>
		<xsd:attribute name="y" type="xsd:integer"/>
		</xsd:restriction>
	</xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="subspeciesType">
	<xsd:sequence>
		<xsd:element ref="name" minOccurs="1" maxOccurs="unbounded"/>
		<xsd:element name="region" type="xsd:string"/>
		<xsd:element name="population">
			<xsd:complexType>
				<xsd:simpleContent>
					<xsd:extension base="xsd:nonNegativeInteger">
						<xsd:attribute name="year" type="xsd:year"/>
					</xsd:extension>
				</xsd:simpleContent>
			</xsd:complexType>
		</xsd:element>
	</xsd:sequence>	
</xsd:complexType>
		
</xsd:schema>

		


		
