<?xml version="1.0" encoding="UTF-8"?>
<!-- edecBordereauRequest XML Schema -->
<!-- Name of schema: edecBordereauRequest -->
<!-- Name of corresponding response schema: edecBordereauResponse -->
<!-- Scope of schema: Request for Bordereaux of customs administration-->
<!-- Organization: Swiss Customs Administration -->
<!-- Author: Fabien Cerf / Patrick Schweizer -->
<!-- Documentation: http://www.e-dec.ch/ -->
<xs:schema xmlns:edecBordereauRequest="http://www.e-dec.ch/xml/schema/edecBordereauRequest/v1" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.e-dec.ch/xml/schema/edecBordereauRequest/v1" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.1">
	<xs:element name="bordereauRequest">
		<xs:annotation>
			<xs:documentation>Root Element des Bordereau Request XML Schema. 
			
Das Schema definiert das Meldungsformat für das Beziehen von Bordereau Dokumenten. Es gibt verschiedene Abfragemöglichkeiten:
- Bezug eines einzelnen Bordereau
- Abfrage einer Liste von Bordereaux

Die Bordereaux können nur von Zollkunden abgerufen werden, die als Deklarant in der Original-Zollanmeldung angegeben sind.
Das Root Element enthält ein zwingendes Attribut schemaVersion, in dem angegeben wird, welcher edecBordereau Schema Version die XML Instanz entspricht.
Anhand des Attributs schemaVersion wird mitgeteilt, welche Version des edecBordereau Schemas zum Validieren benutzt werden soll.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="requestorTraderIdentificationNumber" type="edecBordereauRequest:TraderIdentificationNumber">
					<xs:annotation>
						<xs:documentation>Trader Identification Number (TIN) des Bezügers (Stammdaten).

	Ein Bezüger kann nur Bordereaux zu Zollanmeldungen abrufen, die von ihm deklariert wurden oder bei denen er als Beteiligter (Versender/ Ausführer) aufgeführt ist. 
	  - Im ersten Fall muss requestorTraderIdentificationNumber gleich declarant/traderIdentificationNumber in der Original-Zollanmeldung sein.
	  - Im zweiten Fall muss requestorTraderIdentificationNumber gleiche consignor/traderIdentificationNumber in der Original-Zollanmeldung sein.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="requestorCorrelationID" type="edecBordereauRequest: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:choice>
					<xs:element name="bordereauList">
						<xs:annotation>
							<xs:documentation>Abruf einer Liste von Bordereaux. Es muss eine Datumsspanne angegeben werden. Es kann zusätzlich auf einen bestimmten Status eingeschränkt werden. Es werden Bordereaux-Nummer, Erstellungsdatum und Verarbeitungszentrum zurückgegeben.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="dateRange">
									<xs:annotation>
										<xs:documentation>Datumsspanne für Einschränkung der Abfrage der Liste der Bordereaux. Das Datum bezieht sich auf das Erstellungsdatum der gesuchten Dokumente.</xs:documentation>
									</xs:annotation>
									<xs:complexType>
										<xs:sequence>
											<xs:element name="startDate" type="edecBordereauRequest:DateWithoutTimezone">
												<xs:annotation>
													<xs:documentation>Datum ab wann gesucht werden soll</xs:documentation>
												</xs:annotation>
											</xs:element>
											<xs:element name="endDate" type="edecBordereauRequest:DateWithoutTimezone">
												<xs:annotation>
													<xs:documentation>Datum bis und mit wann gesucht werden soll</xs:documentation>
												</xs:annotation>
											</xs:element>
										</xs:sequence>
									</xs:complexType>
								</xs:element>
								<xs:element name="accountNumber" type="edecBordereauRequest:AccountNumber">
									<xs:annotation>
										<xs:documentation>Kontonummer</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:element name="documentStatus" minOccurs="0">
									<xs:annotation>
										<xs:documentation>Status des Dokuments; dient der Einschränkung der Abfrage der Liste der Bordereaux; Mögliche Werte: noch nicht abgerufenen Bordereaux (unread), schon abgerufene (read)</xs:documentation>
									</xs:annotation>
									<xs:simpleType>
										<xs:restriction base="xs:string">
											<xs:enumeration value="read"/>
											<xs:enumeration value="unread"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
								<xs:element name="processingCenterNumber" minOccurs="0">
									<xs:annotation>
										<xs:documentation>Nummer des Verarbeitungszentrums des Zolls: 70 (Zollamt Schaffhausen), 71 (ID Genève-Routes), 72 (Zollamt Muttenz), 74 (Ufficio doganle Chiasso-Ferrovia)</xs:documentation>
									</xs:annotation>
									<xs:simpleType>
										<xs:restriction base="xs:nonNegativeInteger">
											<xs:totalDigits value="2"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="bordereau">
						<xs:annotation>
							<xs:documentation>Abruf eines Bordereau mit Hilfe einer Bordereau-Nummer, ein Erstellungsdatum und ein Verarbeitungszentrum.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="bordereauNumber" type="edecBordereauRequest:BordereauNumber">
									<xs:annotation>
										<xs:documentation>Bordereaunummer</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:element name="processingCenterNumber">
									<xs:annotation>
										<xs:documentation>Nummer des Verarbeitungszentrums (siehe Tabelle EDEC_STD.EDEC_VZ)</xs:documentation>
									</xs:annotation>
									<xs:simpleType>
										<xs:restriction base="xs:nonNegativeInteger">
											<xs:totalDigits value="2"/>
										</xs:restriction>
									</xs:simpleType>
								</xs:element>
								<xs:element name="creationDate" type="edecBordereauRequest:DateWithoutTimezone">
									<xs:annotation>
										<xs:documentation>Erstellungsdatum</xs:documentation>
									</xs:annotation>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:choice>
			</xs:sequence>
			<xs:attribute name="schemaVersion" use="required">
				<xs:annotation>
					<xs:documentation>Attribut zur Angabe der benutzten edecBordereauRequest Schema Version. Aktuelle Schema Version ist 0.1</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: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="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="AccountNumber">
		<xs:annotation>
			<xs:documentation>Simple Type für Kontonummer</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:nonNegativeInteger">
			<xs:totalDigits value="8"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="BordereauNumber">
		<xs:annotation>
			<xs:documentation>Simple Type für Bordereaunummer</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:nonNegativeInteger">
			<xs:totalDigits value="22"/>
		</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:schema>
