<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:eCH-0071="http://www.ech.ch/xmlns/eCH-0071/1" targetNamespace="http://www.ech.ch/xmlns/eCH-0071/1" elementFormDefault="unqualified" attributeFormDefault="unqualified" version="1">
	<xs:annotation>
		<xs:documentation xml:lang="de">
      eCH-0071 Datenstandard Historisiertes Gemeindeverzeichnis der Schweiz.
      Die ausführliche Dokumentation zur Semantik der hier definierten XML 
      Elemente finden Sie im Dokument 'Historisiertes Gemeindeverzeichnis 
      der Schweiz - Erläuterungen und Anwendungen.' (www.statistik.admin.ch 
      > Infothek > Nomenklaturen > Amtliches Gemeindeverzeichnis der Schweiz 
      > Historisiertes Gemeindeverzeichnis).
    </xs:documentation>
		<xs:documentation xml:lang="fr">
      eCH-0071 Norme concernant les données : Liste historisée des communes 
      de la Suisse.
      Vous trouverez des informations détaillées sur la sémantique des éléments 
      XML définis ici dans le document 'Liste historisée des communes de la 
      Suisse - Explications et utilisation.' (www.statistique.admin.ch 
      > Infothèque > Nomenclatures > Liste officielle des communes de la Suisse 
      > Liste historisée des communes).
    </xs:documentation>
		<xs:documentation xml:lang="it">
      eCH-0071 Standard dei dati : Elenco storicizzato dei Comuni della Svizzera.
      Troverete la documentazione dettagliata sulla semantica degli elementi XML 
      qui definiti nel documento 'Elenco storicizzato dei Comuni della 
      Svizzera - Spiegazioni e utilizzazione.' (www.statistica.admin.ch 
      > Infoteca > Nomenclature > Elenco ufficiale dei Comuni della Svizzera 
      > Elenco storicizzato dei Comuni).
    </xs:documentation>
		<xs:documentation>
      Copyright (c) 2007-2009 Swiss Federal Statistical Office. All Rights Reserved.
      info@bfs.admin.ch
      
      $Id: eCH-0071-1-1.xsd,v 1.1 2010-03-17 14:53:23 tqn Exp $
    </xs:documentation>
	</xs:annotation>
	<xs:element name="nomenclature">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="validFrom" type="xs:date">
					<xs:annotation>
						<xs:documentation xml:lang="de">
              Die enthaltenen Daten sind ab diesem Datum gültig.
            </xs:documentation>
						<xs:documentation xml:lang="fr">
              Les données sont valables depuis cette date.
            </xs:documentation>
						<xs:documentation xml:lang="it">
              I dati sono validi a partire da questa data.
            </xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="cantons">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="canton" type="eCH-0071:cantonType" minOccurs="26" maxOccurs="26"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="districts">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="district" type="eCH-0071:districtType" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
				<xs:element name="municipalities">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="municipality" type="eCH-0071:municipalityType" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
		<xs:unique name="uniqueMunicipalityId">
			<xs:selector xpath="municipalities/municipality"/>
			<xs:field xpath="historyMunicipalityId"/>
		</xs:unique>
		<xs:unique name="uniqueDistrictId">
			<xs:selector xpath="districts/district"/>
			<xs:field xpath="districtHistId"/>
		</xs:unique>
		<xs:unique name="uniqueCantonId">
			<xs:selector xpath="cantons/canton"/>
			<xs:field xpath="cantonId"/>
		</xs:unique>
	</xs:element>
	<xs:complexType name="municipalityType">
		<xs:sequence>
			<xs:element name="historyMunicipalityId" type="eCH-0071:histIdType"/>
			<xs:element name="districtHistId" type="eCH-0071:histIdType"/>
			<xs:element name="cantonAbbreviation" type="eCH-0071:cantonAbbreviationType"/>
			<xs:element name="municipalityId" type="eCH-0071:municipalityIdType"/>
			<xs:element name="municipalityLongName" type="eCH-0071:string60Type"/>
			<xs:element name="municipalityShortName" type="eCH-0071:string24Type"/>
			<xs:element name="municipalityEntryMode">
				<xs:simpleType>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="11"/>
						<xs:maxInclusive value="13"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="municipalityStatus">
				<xs:simpleType>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="0"/>
						<xs:maxInclusive value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="municipalityAdmissionNumber">
				<xs:simpleType>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="1000"/>
						<xs:maxInclusive value="9999"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="municipalityAdmissionMode" type="eCH-0071:admissionModeType"/>
			<xs:element name="municipalityAdmissionDate" type="eCH-0071:dateType"/>
			<xs:element name="municipalityAbolitionNumber" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="1001"/>
						<xs:maxInclusive value="9999"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="municipalityAbolitionMode" type="eCH-0071:abolitionMode" minOccurs="0"/>
			<xs:element name="municipalityAbolitionDate" type="eCH-0071:dateType" minOccurs="0"/>
			<xs:element name="municipalityDateOfChange" type="eCH-0071:dateType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="districtType">
		<xs:sequence>
			<xs:element name="districtHistId" type="eCH-0071:histIdType"/>
			<xs:element name="cantonId" type="eCH-0071:cantonIdType"/>
			<xs:element name="districtId">
				<xs:simpleType>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="100"/>
						<xs:maxInclusive value="9999"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="districtLongName" type="eCH-0071:string60Type"/>
			<xs:element name="districtShortName" type="eCH-0071:string24Type"/>
			<xs:element name="districtEntryMode">
				<xs:simpleType>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="15"/>
						<xs:maxInclusive value="17"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="districtAdmissionNumber">
				<xs:simpleType>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="100"/>
						<xs:maxInclusive value="999"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="districtAdmissionMode" type="eCH-0071:admissionModeType"/>
			<xs:element name="districtAdmissionDate" type="eCH-0071:dateType"/>
			<xs:element name="districtAbolitionNumber" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="101"/>
						<xs:maxInclusive value="999"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="districtAbolitionMode" type="eCH-0071:abolitionMode" minOccurs="0"/>
			<xs:element name="districtAbolitionDate" type="eCH-0071:dateType" minOccurs="0"/>
			<xs:element name="districtDateOfChange" type="eCH-0071:dateType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="cantonType">
		<xs:sequence>
			<xs:element name="cantonId" type="eCH-0071:cantonIdType"/>
			<xs:element name="cantonAbbreviation" type="eCH-0071:cantonAbbreviationType"/>
			<xs:element name="cantonLongName" type="eCH-0071:string60Type"/>
			<xs:element name="cantonDateOfChange" type="eCH-0071:dateType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="cantonAbbreviationType">
		<xs:restriction base="xs:token">
			<xs:maxLength value="2"/>
			<xs:enumeration value="ZH"/>
			<xs:enumeration value="BE"/>
			<xs:enumeration value="LU"/>
			<xs:enumeration value="UR"/>
			<xs:enumeration value="SZ"/>
			<xs:enumeration value="OW"/>
			<xs:enumeration value="NW"/>
			<xs:enumeration value="GL"/>
			<xs:enumeration value="ZG"/>
			<xs:enumeration value="FR"/>
			<xs:enumeration value="SO"/>
			<xs:enumeration value="BS"/>
			<xs:enumeration value="BL"/>
			<xs:enumeration value="SH"/>
			<xs:enumeration value="AR"/>
			<xs:enumeration value="AI"/>
			<xs:enumeration value="SG"/>
			<xs:enumeration value="GR"/>
			<xs:enumeration value="AG"/>
			<xs:enumeration value="TG"/>
			<xs:enumeration value="TI"/>
			<xs:enumeration value="VD"/>
			<xs:enumeration value="VS"/>
			<xs:enumeration value="NE"/>
			<xs:enumeration value="GE"/>
			<xs:enumeration value="JU"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="histIdType">
		<xs:restriction base="xs:integer">
			<xs:minInclusive value="10001"/>
			<xs:maxInclusive value="99999"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="string24Type">
		<xs:restriction base="xs:string">
			<xs:maxLength value="24"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="string60Type">
		<xs:restriction base="xs:string">
			<xs:maxLength value="60"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="dateType">
		<xs:restriction base="xs:date">
			<xs:minInclusive value="1960-01-01"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="municipalityIdType">
		<xs:restriction base="xs:int">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="9999"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="admissionModeType">
		<xs:restriction base="xs:integer">
			<xs:enumeration value="20"/>
			<xs:enumeration value="21"/>
			<xs:enumeration value="22"/>
			<xs:enumeration value="23"/>
			<xs:enumeration value="24"/>
			<xs:enumeration value="26"/>
			<xs:enumeration value="27"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="abolitionMode">
		<xs:restriction base="xs:integer">
			<xs:enumeration value="22"/>
			<xs:enumeration value="23"/>
			<xs:enumeration value="24"/>
			<xs:enumeration value="26"/>
			<xs:enumeration value="27"/>
			<xs:enumeration value="29"/>
			<xs:enumeration value="30"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="cantonIdType">
		<xs:restriction base="xs:integer">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="26"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
