<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--W3C Schema generated by XMLSpy v2005 rel. 3 U (http://www.altova.com) by Jean-Yves Guyomarc'h-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<!-- Global Complex Types -->
	<xs:complexType name="AssociationsType">
		<xs:sequence>
			<xs:element name="asso" type="assoType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ChildrenType">
		<xs:sequence>
			<xs:element name="Child" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ImplementedInterfacesType">
		<xs:sequence>
			<xs:element name="Interface" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjRelStructureType">
		<xs:sequence>
			<xs:element name="ObjectProperties" type="ObjectPropertiesType"/>
			<!-- TODO: RelationProperties -->
			<xs:element name="RelationProperties" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjectType">
		<xs:sequence>
			<xs:element name="Name" type="xs:string"/>
			<xs:element name="Type" type="xs:string"/>
			<xs:element name="ImplementedInterfaces" type="ImplementedInterfacesType"/>
			<xs:element name="Parents" type="ParentsType"/>
			<xs:element name="Children" type="ChildrenType"/>
			<xs:element name="UmlTargets" type="UmlTargetsType"/>
			<xs:element name="ObjectProperties" type="ObjectValueType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjectValueType">
		<xs:sequence>
			<xs:element name="Prop" type="PropValueType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjectPropertiesType">
		<xs:sequence>
			<xs:element name="Prop" type="PropType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjectsType">
		<xs:sequence>
			<xs:element name="Object" type="ObjectType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ParentsType">
		<xs:sequence>
			<xs:element name="Parent" type="xs:string" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PropType">
		<xs:sequence>
			<xs:element name="PropName" type="xs:string"/>
			<xs:element name="ProType" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="double"/>
						<xs:enumeration value="int"/>
						<xs:enumeration value="float"/>
						<xs:enumeration value="long"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="ProComments" type="xs:string" minOccurs="0"/>
			<xs:element name="PropMin" type="xs:double" minOccurs="0"/>
			<xs:element name="PropMax" type="xs:double" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PropValueType">
		<xs:sequence>
			<xs:element name="PropName" type="xs:string"/>
			<xs:element name="ProValue" type="xs:double"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="UmlTargetsType" mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element name="Target" type="xs:string"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="assoType">
		<xs:sequence>
			<xs:element name="metric" type="xs:string"/>
			<xs:element name="graph" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	
	<xs:complexType name="timestampType">
		<xs:sequence>
			<xs:element name="year" type="xs:int"/>
			<xs:element name="month" type="xs:int"/>
			<xs:element name="day" type="xs:int"/>
			<xs:element name="hour" type="xs:int"/>
			<xs:element name="minute" type="xs:int"/>
			<xs:element name="second" type="xs:int"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ROOT -->
	<xs:element name="DssDocument">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="title" type="xs:string"/>
				<xs:element name="timestamp" type="timestampType"/>
				<xs:element name="Associations" type="AssociationsType"/>
				<xs:element name="ObjRelStructure" type="ObjRelStructureType"/>
				<xs:element name="Objects" type="ObjectsType"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>

