<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

	<xs:element name="cal">
		<xs:complexType>
			<xs:all>
				<xs:element ref="inttypes" minOccurs="0" maxOccurs="1"/>
				<xs:element ref="period" minOccurs="1" maxOccurs="1"/>
				<xs:element ref="devs" minOccurs="0" maxOccurs="1"/>
			</xs:all>
			<xs:attribute name="name" use="required" type="xs:string"/>
			<xs:attribute name="start" use="required" type="xs:positiveInteger"/>
			<xs:attribute name="studio" use="optional" type="xs:string"/>
		</xs:complexType>
	</xs:element>

	<xs:element name="inttypes">
		<xs:complexType>
			<xs:all>
				<xs:element ref="ainttypes" minOccurs="0" maxOccurs="1"/>
				<xs:element ref="binttypes" minOccurs="0" maxOccurs="1"/>
				<xs:element ref="nwinttypes" minOccurs="0" maxOccurs="1"/>
				<xs:element ref="winttypes" minOccurs="0" maxOccurs="1"/>
			</xs:all>
		</xs:complexType>
	</xs:element>

	<xs:element name="ainttypes">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="type" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="binttypes">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="type" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="nwinttypes">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="type" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="winttypes">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="type" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="period">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="day" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="colorref" use="required" type="colorreftype"/>
			<xs:attribute name="iconref" use="optional" type="xs:string"/>
			<xs:attribute name="length" use="required" type="xs:positiveInteger"/>
			<xs:attribute name="startDay" use="required" type="xs:positiveInteger"/>
		</xs:complexType>
	</xs:element>

	<xs:element name="devs">
		<xs:complexType>
			<xs:all>
				<xs:element ref="absolute" minOccurs="0" maxOccurs="1"/>
			</xs:all>
		</xs:complexType>
	</xs:element>

	<xs:element name="absolute">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="day" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="type">
		<xs:complexType mixed="true">
			<xs:attribute name="colorref" use="required" type="colorreftype"/>
		</xs:complexType>
	</xs:element>

	<xs:element name="day">
		<xs:complexType>
			<xs:sequence>
				<xs:choice minOccurs="0" maxOccurs="unbounded">
					<xs:element minOccurs="0" ref="wint"/>
					<xs:element minOccurs="0" ref="aint"/>
					<xs:element minOccurs="0" ref="bint"/>
					<xs:element minOccurs="0" ref="mint"/>
					<xs:element minOccurs="0" ref="nwint"/>
				</xs:choice>
			</xs:sequence>
			<xs:attribute name="date" type="xs:dateTime"/>
			<xs:attribute name="nr" type="xs:positiveInteger"/>
		</xs:complexType>
	</xs:element>

	<xs:element name="wint">
		<xs:complexType>
			<xs:attribute name="colorref" use="required" type="colorreftype"/>
			<xs:attribute name="from" use="required" type="fromtotype"/>
			<xs:attribute name="iconref" use="optional" type="xs:string"/>
			<xs:attribute name="to" use="required" type="fromtotype"/>
			<xs:attribute name="type" use="required" type="xs:string"/>
		</xs:complexType>
	</xs:element>

	<xs:element name="aint">
		<xs:complexType>
			<xs:attribute name="colorref" use="required" type="colorreftype"/>
			<xs:attribute name="from" use="required" type="fromtotype"/>
			<xs:attribute name="iconref" use="optional" type="xs:string"/>
			<xs:attribute name="to" use="required" type="fromtotype"/>
			<xs:attribute name="type" use="required" type="xs:string"/>
		</xs:complexType>
	</xs:element>

	<xs:element name="bint">
		<xs:complexType>
			<xs:attribute name="colorref" use="required" type="colorreftype"/>
			<xs:attribute name="dur" use="required" type="xs:positiveInteger"/>
			<xs:attribute name="from" use="required" type="fromtotype"/>
			<xs:attribute name="iconref" use="optional" type="xs:string"/>
			<xs:attribute name="to" use="required" type="fromtotype"/>
			<xs:attribute name="type" use="required" type="xs:string"/>
		</xs:complexType>
	</xs:element>

	<xs:element name="mint">
		<xs:complexType>
			<xs:attribute name="colorref" use="required" type="colorreftype"/>
			<xs:attribute name="from" use="required" type="fromtotype"/>
			<xs:attribute name="iconref" use="optional" type="xs:string"/>
			<xs:attribute name="to" use="required" type="fromtotype"/>
			<xs:attribute name="type" use="required" type="xs:string"/>
		</xs:complexType>
	</xs:element>

	<xs:element name="nwint">
		<xs:complexType>
			<xs:attribute name="colorref" use="required" type="colorreftype"/>
			<xs:attribute name="from" use="required" type="fromtotype"/>
			<xs:attribute name="iconref" use="optional" type="xs:string"/>
			<xs:attribute name="to" use="required" type="fromtotype"/>
			<xs:attribute name="type" use="required" type="xs:string"/>
		</xs:complexType>
	</xs:element>

	<xs:simpleType name="colorreftype">
		<xs:annotation>
			<xs:documentation>The color is represented as hexadecimal RGB. For aexmple FF0A13 or
				00FF00 </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:token">
			<xs:pattern value="[\dA-F]{6}"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="fromtotype">
		<xs:restriction base="xs:token">
			<xs:pattern
				value="(00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24):[0-5][0-9]"
			/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="datetimetype">
		<xs:restriction base="xs:token">
			<xs:pattern
				value="\d\d\d\d-(01|02|03|04|05|06|07|08|09|10|11|12)-(00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)T(00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24):[0-5][0-9]:[0-5][0-9]"
			/>
		</xs:restriction>
	</xs:simpleType>

</xs:schema>
