<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
	xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	jaxb:extensionBindingPrefixes="xjc" jaxb:version="1.0">

	<xsd:element name="curriculum" type="CurriculumType" />

	<xsd:complexType name="CurriculumType">
		<xsd:sequence minOccurs="1">
			<xsd:element name="contact" type="Contact" />
			<xsd:element name="skills" type="Skills" />
			<xsd:element name="languages" type="Languages" />
			<xsd:element name="education" type="Education" />
			<xsd:element name="projects" type="Projects" />
			<xsd:element name="experience" type="Experience" />
			<xsd:element name="bio" type="Bio" />
			<xsd:element name="videos" type="Videos" minOccurs="0" />
		</xsd:sequence>
		<xsd:attribute name="title" type="xsd:string" />
		<xsd:attribute name="version" type="xsd:string" fixed="1.0" />
		<xsd:attribute name="year" type="xsd:string" fixed="2006" />
		<xsd:attribute name="idiom" type="xsd:string" />
	</xsd:complexType>

	<xsd:complexType name="Videos">
		<xsd:sequence minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="video" type="VideoType" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="VideoType">
		<xsd:attribute name="name" type="xsd:string" />
		<xsd:attribute name="url" type="xsd:string" />
	</xsd:complexType>

	<xsd:complexType name="Languages">
		<xsd:sequence minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="idiom" type="Idiom" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="Idiom">
		<xsd:attribute name="language" type="xsd:string" />
		<xsd:attribute name="proficiency" type="xsd:string" />
	</xsd:complexType>

	<xsd:complexType name="Education">
		<xsd:sequence minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="degree" type="Degree" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="Degree">
		<xsd:sequence>
			<xsd:element name="school" type="xsd:string" />
			<xsd:element name="location" type="xsd:string" />
			<xsd:element name="period" type="Period" />
			<xsd:element name="url" type="xsd:string" />
			<xsd:element name="note" type="xsd:string" />
		</xsd:sequence>
		<xsd:attribute name="name" type="xsd:string" />
	</xsd:complexType>

	<xsd:complexType name="Period">
		<xsd:sequence>
			<xsd:element name="initial" type="xsd:date" />
			<xsd:element name="final" type="xsd:date" />
		</xsd:sequence>
	</xsd:complexType>


	<xsd:complexType name="Contact">
		<xsd:sequence>
			<xsd:element name="greeting" type="xsd:string" />
			<xsd:element name="name" type="xsd:string" />
			<xsd:element name="title" type="xsd:string" />
			<xsd:element name="address" type="xsd:string" />
			<xsd:element name="email" type="xsd:string" />
			<xsd:element name="phone" type="xsd:string" />
			<xsd:element name="url" type="xsd:string" />
			<xsd:element name="photo" type="xsd:string" />
			<xsd:element name="summary" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="Experience">
		<xsd:sequence minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="job" type="Job" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="Job">
		<xsd:sequence>
			<xsd:element name="company" type="Company" />
			<xsd:element name="period" type="Period" />
			<xsd:element name="description" type="xsd:string" />
			<xsd:element name="tecnologies" type="xsd:string" />
			<xsd:element name="type" type="xsd:string" />
		</xsd:sequence>
		<xsd:attribute name="title" type="xsd:string" />
	</xsd:complexType>

	<xsd:complexType name="Company">
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string" />
			<xsd:element name="business" type="xsd:string" />
			<xsd:element name="url" type="xsd:string" />
			<xsd:element name="contact_person" type="xsd:string" />
			<xsd:element name="contact_mail" type="xsd:string" />
			<xsd:element name="note" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="Bio">
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string" />
			<xsd:element name="age" type="xsd:int" />
			<xsd:element name="sex" type="xsd:string" />
			<xsd:element name="nationality" type="xsd:string" />
			<xsd:element name="visa" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="DescriptiveType">
		<xsd:sequence>
			<xsd:element name="name" type="xsd:string" />
			<xsd:element name="description" type="xsd:string" />
		</xsd:sequence>
	</xsd:complexType>

	<!--  xsd:complexType name="Aggregation" abstract="true">
		<xsd:sequence minOccurs="0" maxOccurs="unbounded">
		<xsd:element name="data" type="DescriptiveType" />
		</xsd:sequence>
		</xsd:complexType-->


	<xsd:complexType name="Projects">
		<xsd:sequence minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="project" type="ProjectType" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="ProjectType">
		<xsd:complexContent>
			<xsd:extension base="DescriptiveType">
				<xsd:attribute name="size" type="xsd:int" />
				<xsd:attribute name="technologies" type="xsd:string" />
				<xsd:attribute name="position" type="xsd:string" />
				<xsd:attribute name="type" type="xsd:string" />
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:complexType name="OpenSourceProjectType">
		<xsd:complexContent>
			<xsd:extension base="ProjectType">
				<xsd:attribute name="logo" type="xsd:string" />
				<xsd:attribute name="url" type="xsd:string" />
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:complexType name="Skills">
		<xsd:sequence minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="skill" type="SkillType" />
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="SkillType">
		<xsd:complexContent>
			<xsd:extension base="DescriptiveType">
				<xsd:sequence minOccurs="0" maxOccurs="unbounded">
					<xsd:element name="subject" type="Subject" />
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

	<xsd:complexType name="Subject">
		<xsd:complexContent>
			<xsd:extension base="DescriptiveType">
				<xsd:attribute name="level" type="xsd:string" />
			</xsd:extension>
		</xsd:complexContent>

	</xsd:complexType>
</xsd:schema>

