<?xml version="1.0"?>
<xs:schema xmlns="http://thesis.ewald-peiszer.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://thesis.ewald-peiszer.com">
	<xs:element name="SegmXML">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="metadata">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="song">
								<xs:complexType>
									<xs:all>
										<xs:element name="title" type="xs:string"/>
										<xs:element name="artist" type="xs:string"/>
										<xs:element name="album">
											<xs:complexType>
												<xs:simpleContent>
													<xs:extension base="xs:string">
														<xs:attribute name="year" type="xs:positiveInteger"/>
													</xs:extension>
												</xs:simpleContent>
											</xs:complexType>
										</xs:element>
										<xs:element name="recordlabel" minOccurs="0" type="xs:string"/>
										<xs:element name="genre" type="xs:string"/>
										<xs:element name="duration">
											<xs:complexType>
												<xs:simpleContent>
													<xs:extension base="time_mm_ss">
														<xs:attribute name="duration_sec" type="xs:positiveInteger"/>
													</xs:extension>
												</xs:simpleContent>
											</xs:complexType>
										</xs:element>
										<xs:element name="musicbrainz_trackID" type="xs:token"/>
									</xs:all>
									<xs:attribute name="canonicalname" type="xs:normalizedString" use="required"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="annotation">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="done_by" maxOccurs="unbounded">
											<xs:complexType>
												<xs:simpleContent>
													<xs:extension base="xs:string">
														<xs:attribute name="timestamp" type="xs:string"/>
												<xs:attribute name="note" type="xs:string"/>
													</xs:extension>
												</xs:simpleContent>
												
											</xs:complexType>
										</xs:element>
										<xs:element name="remark" minOccurs="0" type="xs:string"/>
									</xs:sequence>
									<xs:attribute name="source" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="segmentation">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="segment" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="alt_label" minOccurs="0" type="xs:string"/>
										<xs:element name="remark" minOccurs="0" type="xs:string"/>
										<xs:element name="segment" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:attribute name="label" type="xs:string" use="required"/>
												<xs:attribute name="start" type="time_mm_ss_millis" use="required"/>
												<xs:attribute name="end" type="time_mm_ss_millis" use="required"/>
												<xs:attribute name="start_sec" type="xs:decimal" use="required"/>
												<xs:attribute name="end_sec" type="xs:decimal" use="required"/>
												<xs:attribute name="instrumental" type="xs:boolean"/>
												<xs:attribute name="fade" type="T_fade"/>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="label" type="xs:string" use="required"/>
									<xs:attribute name="start" type="time_mm_ss_millis" use="required"/>
									<xs:attribute name="end" type="time_mm_ss_millis" use="required"/>
									<xs:attribute name="start_sec" type="xs:decimal" use="required"/>
									<xs:attribute name="end_sec" type="xs:decimal" use="required"/>
									<xs:attribute name="instrumental" type="xs:boolean"/>
									<xs:attribute name="fade" type="T_fade"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="version" type="xs:decimal" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:simpleType name="time_mm_ss_millis">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9]{2}:[0-9]{2}:[0-9]{3}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="time_mm_ss">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9]{2}:[0-9]{2}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="T_fade">
		<xs:restriction base="xs:string">
			<xs:enumeration value="in"/>
			<xs:enumeration value="out"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
