<?xml version="1.0" encoding="UTF-8"?>
<!-- edecSelectionAndTransit XML Schema -->
<!-- Name of schema: edecSelectionAndTransit -->
<!-- Scope of schema: get selection results and transfer existing declaration to transit system-->
<!-- Organization: Swiss Customs Administration -->
<!-- Documentation: http://www.e-dec.ch/ -->
<xs:schema xmlns:edecSelectionAndTransit="http://www.e-dec.ch/xml/schema/edecSelectionAndTransit/v4" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.e-dec.ch/xml/schema/edecSelectionAndTransit/v4" elementFormDefault="qualified" attributeFormDefault="unqualified" version="4.0">
	<xs:element name="selectionAndTransit">
		<xs:annotation>
			<xs:documentation>Root Element zum Abrufen des Selektionsergebnisses einer nicht ZV Zollanmeldung durch einen ZV (zugelassener Versender) sowie das Auslösen eines Transfers der Zollanmeldung in das Transitsystem. 			
Diese Funktionalität ist nur für den ZV möglich. Der ZV muss mit Hilfe der übermittelten Elemente zeigen können, dass er die Zollanmeldung von einem nicht ZV übernehmen darf (z.B. indem er die traderIdentificationNumber des nicht ZV kennt sowie die Zollanmeldungsnummer).
Das Root Element enthält ein zwingendes Attribut schemaVersion, in dem angegeben wird, welcher edecSelectionAndTransit Schema Version die XML Instanz entspricht.
Anhand des Attributs schemaVersion wird mitgeteilt, welche Version des edecSelectionAndTransit Schemas zum Validieren benutzt werden soll.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="traderIdentificationNumber" type="edecSelectionAndTransit:TraderIdentificationNumber">
					<xs:annotation>
						<xs:documentation>Trader Identification Number (TIN) des zugelassenen Versenders. Identifikationsnummer (Stammdaten)</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="declarantNumber">
					<xs:annotation>
						<xs:documentation>Deklarantennummer (Mitarbeiter) (Stammdaten)</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:integer">
							<xs:totalDigits value="6"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element name="selectionCorrelationID" type="edecSelectionAndTransit:Reference" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Optionale Referenz um auch bei asynchronen (Mail) oder mandantenfähigen Systemen eine eindeutige Zuordnung zwischen Request und Response zu ermöglichen. Falls diese Element gefüllt ist, so wird es auch in der Response enthalten sein.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="customsOfficeNumber">
					<xs:annotation>
						<xs:documentation>Zollstellennummer des Kontrollzollamts des ZV (früher Dienststellennummer) (Stammdaten: edecCustomsOffices.xml/customsOffices/customsOffice/@number)</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:minLength value="1"/>
							<xs:maxLength value="8"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element name="originalTraderIdentificationNumber" type="edecSelectionAndTransit:TraderIdentificationNumber">
					<xs:annotation>
						<xs:documentation>Trader Identification Number (TIN) des Zollkunden, der Original-Zollanmeldung deklariert hat. Dies kann dieseble oder eine andere ID sein wie die requestorTraderIdentificationNumber. Identifikationsnummer (Stammdaten)</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="customsDeclarationNumber">
					<xs:annotation>
						<xs:documentation>Zollanmeldungsnummer (früher Deklarationsnummer) Zoll</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:maxLength value="21"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element name="customsDeclarationVersion">
					<xs:annotation>
						<xs:documentation>Versionsnummer der Zollanmeldung; Nummer muss in e-dec als Versionsnummer der aktuellsten Zollanmeldung existieren.</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:integer">
							<xs:totalDigits value="2"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element name="selection" type="edecSelectionAndTransit:YesNoCode" fixed="1">
					<xs:annotation>
						<xs:documentation>Selektion abrufen; die Selektion wird in jedem Fall ausgelöst (egal ob ein Transfer ins Transit System erfolgen soll oder nicht). Daher ist der Wert in diesem Element fix auf "1" gesetzt.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="transferToTransitSystem" type="edecSelectionAndTransit:YesNoCode">
					<xs:annotation>
						<xs:documentation>Transfer ins Transit System; bei Exportanmeldungen, die automatisch an das Transit-System NCTS transferiert werden sollen, um dort eine Transitabmeldung machen zu können. (Stammdaten: edecDomains.xml/domains/domain[@name="yesNoCode"]/entry/@value)</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="declarationTime" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Code für Anmeldungszeitpunkt; wird nur benötigt, falls dieser sich vom Anmeldungszeitpunkt der Original-Zollanmeldung unterscheidet (wenn die Ware z.B. vom zugelassenen Versender übernommen wird, diese aber noch nicht bei ihm am Domizil ist). Mögliche Werte z.B. Stellung unter Zollkontrolle (1), Vorausanmeldung (2), nachträgliche Anmeldung (3), andere (99) (Stammdaten: edecDomains.xml/domains/domain[@name="declarationTime"]/entry/@value)</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:integer">
							<xs:totalDigits value="2"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element name="previousDocument" type="edecSelectionAndTransit:PreviousDocumentType" minOccurs="0">
					<xs:annotation>
						<xs:documentation>summarische Anmeldung / Vorpapiere; wird hier zur Übermittlung des Luftfrachtbriefs (Airwaybill) benutzt, falls der Export per Flugzeug erfolgt</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="producedDocument" type="edecSelectionAndTransit:ProducedDocumentType" minOccurs="0">
					<xs:annotation>
						<xs:documentation>vorgelegte Unterlagen/Bescheinigungen</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="schemaVersion" use="required">
				<xs:annotation>
					<xs:documentation>Attribut zur Angabe der benutzten edecSelectionAndTransit Schema Version.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:pattern value="[1-9]{0,1}[0-9]{1}\.[0-9]{1,2}"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="PreviousDocumentType">
		<xs:annotation>
			<xs:documentation>Complex Type summarische Anmeldung</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="previousDocumentType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Art Vorpapier, z.B. Luftfrachtbrief (740) ... (Stammdaten: edecDomains.xml/domains/domain[@name="previousDocumentType"]/entry/@value)</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:minLength value="1"/>
						<xs:maxLength value="6"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="previousDocumentReference" type="edecSelectionAndTransit:Reference" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Zeichen (Nummer) Vorpapier</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="additionalInformation" minOccurs="0">
				<xs:annotation>
					<xs:documentation>zusätzliche Angaben</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:maxLength value="70"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ProducedDocumentType">
		<xs:annotation>
			<xs:documentation>Complex Type vorgelegte Unterlage / Bescheinigung</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="documentType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Art Unterlage-Code; Bezeichnung für vorgelegte Unterlagen, z.B. APS-Ursprungszeugnis (865), EUR.1 Warenverkehrsbescheinigung (954) ... (Stammdaten: edecDomains.xml/domains/domain[@name="documentType"]/entry/@value)</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:minLength value="1"/>
						<xs:maxLength value="4"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="documentReferenceNumber" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Zeichen (Nummer) Unterlage</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:maxLength value="35"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="issueDate" type="edecSelectionAndTransit:DateWithoutTimezone" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Datum der vorgelegten Unterlage / Bescheinigung im Format yyyy-mm-dd</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="additionalInformation" minOccurs="0">
				<xs:annotation>
					<xs:documentation>zusätzliche Angaben zur Bewilligung</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:maxLength value="70"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="DateWithoutTimezone">
		<xs:annotation>
			<xs:documentation>Simple Type mit Datum ohne Zeitzonenangabe (Format yyyy-mm-dd)</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:date">
			<xs:pattern value="[0-9]{4}-[0-9]{2}-[0-9]{2}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Reference">
		<xs:annotation>
			<xs:documentation>Simple Type für Referenzen</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="35"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TraderIdentificationNumber">
		<xs:annotation>
			<xs:documentation>Simple Type für TraderIdentificationNumber (TIN)</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="17"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="YesNoCode">
		<xs:annotation>
			<xs:documentation>Simple Type mit Werteliste für ja-nein Flags. nein=0, ja=1 (Stammdaten: edecDomains.xml/domains/domain[@name="yesNoCode"]/entry/@value)</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<xs:enumeration value="0"/>
			<xs:enumeration value="1"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
