<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified">
	<xs:element name="WahlInformationsSystem">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Parteien" maxOccurs="1" minOccurs="1">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Partei" maxOccurs="unbounded" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Mitglieder" type="xs:positiveInteger" minOccurs="1" maxOccurs="1" />
									</xs:sequence>
									<xs:attribute name="Name" type="xs:string" use="required" />
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="Direktkandidaten" maxOccurs="1" minOccurs="1">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Kandidat" maxOccurs="unbounded" minOccurs="1">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Name" type="xs:string" maxOccurs="1" minOccurs="1" />
										<xs:element name="Partei" type="xs:string" maxOccurs="1" minOccurs="0" />
										<xs:element name="Bezirk" type="xs:positiveInteger" />
									</xs:sequence>
									<xs:attribute name="SozialVNr" type="xs:positiveInteger" use="required" />
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="LänderWahlkreise" maxOccurs="1" minOccurs="1">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Bundesland" minOccurs="0" maxOccurs="unbounded">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Einwohner" type="xs:positiveInteger" />
										<xs:element name="Wahlkreis" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Wahlbezirk" minOccurs="1" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Wahllokal" type="xs:string" />
																<xs:element name="Wahlberechtigte" type="xs:positiveInteger" />
															</xs:sequence>
															<xs:attribute name="Nr" type="xs:positiveInteger" use="required" />
														</xs:complexType>
													</xs:element>
												</xs:sequence>
												<xs:attribute name="Nr" type="xs:integer" use="required" />
												<xs:attribute name="Bezeichnung" type="xs:string" />
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="Name" type="xs:string" />
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="Wahlergebnisse" maxOccurs="1" minOccurs="0">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Erststimmenergebnisse">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Erststimme" minOccurs="1" maxOccurs="unbounded">
											<xs:complexType>
												<xs:complexContent>
													<xs:extension base="Wahlergebnis">
														<xs:sequence>
															<xs:element name="KandidatName" type="xs:string" />
															<xs:element name="KandidatSNr" type="xs:positiveInteger" />
														</xs:sequence>
													</xs:extension>
												</xs:complexContent>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Zweitstimmenergebnisse">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Zweitstimme" minOccurs="1" maxOccurs="unbounded">
											<xs:complexType>
												<xs:complexContent>
													<xs:extension base="Wahlergebnis">
														<xs:sequence>
															<xs:element name="Partei" type="xs:string" />
														</xs:sequence>
													</xs:extension>
												</xs:complexContent>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
		<xs:key name="ParteiKey">
			<xs:selector xpath="./Parteien/Partei" />
			<xs:field xpath="@Name" />
		</xs:key>
		<xs:keyref name="ParteiKandidat" refer="ParteiKey">
			<xs:selector xpath="./Direktkandidaten/Kandidat" />
			<xs:field xpath="Partei" />
		</xs:keyref>
		<xs:key name="KandidatKey">
			<xs:selector xpath="./Direktkandidaten/Kandidat" />
			<xs:field xpath="Name" />
			<xs:field xpath="@SozialVNr" />
		</xs:key>
		<xs:keyref name="KandidatErststimme" refer="KandidatKey">
			<xs:selector xpath="./Wahlergebnisse/Erststimmenergebnisse/Erststimme" />
			<xs:field xpath="KandidatName" />
			<xs:field xpath="KandidatSNr" />
		</xs:keyref>
		<xs:keyref name="ParteiZweitstimme" refer="ParteiKey">
			<xs:selector xpath="./Wahlergebnisse/Zweitstimmenergebnisse/Zweitstimme" />
			<xs:field xpath="Partei" />
		</xs:keyref>
		<xs:key name="WahlbezirkKey">
			<xs:selector xpath="./LänderWahlkreise/Bundesland/Wahlkreis/Wahlbezirk" />
			<xs:field xpath="@Nr" />
		</xs:key>
		<xs:keyref name="WahlbezirkKandidat" refer="WahlbezirkKey">
			<xs:selector xpath="./Direktkandidaten/Kandidat" />
			<xs:field xpath="Bezirk" />
		</xs:keyref>
		<xs:keyref name="WahlbezirkErststimme" refer="WahlbezirkKey">
			<xs:selector xpath="./Wahlergebnisse/Erststimmenergebnisse/Erststimme" />
			<xs:field xpath="Wahlbezirk" />
		</xs:keyref>
		<xs:keyref name="WahlbezirkZweitstimme" refer="WahlbezirkKey">
			<xs:selector xpath="./Wahlergebnisse/Zweitstimmenergebnisse/Zweitstimme" />
			<xs:field xpath="Wahlbezirk" />
		</xs:keyref>
	</xs:element>
	<xs:complexType name="Wahlergebnis">
		<xs:sequence>
			<xs:element name="Jahr" type="xs:positiveInteger" />
			<xs:element name="Stimmen" type="xs:positiveInteger" />
			<xs:element name="Wahlbezirk" type="xs:positiveInteger" />
		</xs:sequence>
	</xs:complexType>
</xs:schema>
