<?xml version="1.0" encoding="UTF-8"?>
<!-- Mit XMLSpy v2010 rel. 2 (http://www.altova.com) von BIT (Bundesamt für Informatik und Telekommunikation (BIT)) bearbeitet -->
<!-- edecComplaintResponse XML Schema -->
<!-- Name of schema: edecComplaintResponse -->
<!-- Scope of schema: response to import or export customs declarations-->
<!-- Organization: Swiss Customs Administration -->
<!-- Documentation: http://www.e-dec.ch/ -->
<xs:schema xmlns:edecComplaintResponse="http://www.e-dec.ch/xml/schema/edecComplaintResponse/v1" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.e-dec.ch/xml/schema/edecComplaintResponse/v1" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
	<xs:element name="edecComplaintResponse">
		<xs:annotation>
			<xs:documentation>Root Element mit einer Antwort auf eine Beanstandung. 
In der Antwort kann sowohl eine Annahme wie auch eine Ablehnung zu einer Beanstandung stehen. 
.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="requestorTraderIdentificationNumber" type="edecComplaintResponse:TraderIdentificationNumber">
					<xs:annotation>
						<xs:documentation>Trader Identification Number (Spediteurnummer, TIN oder UID) des Bezügers</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="requestorCorrelationID" type="edecComplaintResponse: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 dieses Element gefüllt ist, so wird es auch in der Response enthalten sein.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:choice>
					<xs:element ref="edecComplaintResponse:edecComplaintAcceptance"/>
					<xs:element ref="edecComplaintResponse:edecComplaintRejection"/>
				</xs:choice>
			</xs:sequence>
			<xs:attribute name="schemaVersion" type="edecComplaintResponse:SchemaVersionType" use="required">
				<xs:annotation>
					<xs:documentation>Attribut zur Angabe der benutzten edecComplaintResponse Schema Version. Die Liste der möglichen Versionen ist vorgegeben.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="edecComplaintAcceptance" type="edecComplaintResponse:edecComplaintAcceptanceType">
		<xs:annotation>
			<xs:documentation>Annahme Beanstandung</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="edecComplaintRejection" type="edecComplaintResponse:edecComplaintRejectionType">
		<xs:annotation>
			<xs:documentation>Ablehnung Beanstandung</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="edecComplaintAcceptanceType">
		<xs:annotation>
			<xs:documentation>Complex Type Beanstandung angenommen</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="customsDeclarationNumber" type="edecComplaintResponse:CustomsDeclarationNumber">
				<xs:annotation>
					<xs:documentation>Zollanmeldungsnummer Zoll</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="acceptanceDate" type="xs:date">
				<xs:annotation>
					<xs:documentation>Annahmedatum im Format yyyy-mm-dd</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="acceptanceTime" type="xs:time">
				<xs:annotation>
					<xs:documentation>Annahmezeit im Format hh:mm:ss</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="otherElements" type="xs:anyType" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Frei nutzbares Element</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="edecComplaintRejectionType">
		<xs:annotation>
			<xs:documentation>Complex Type für Ablehnung Beanstandung</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="rejectionDate" type="xs:date">
				<xs:annotation>
					<xs:documentation>Ablehnungsdatum im Format yyyy-mm-dd</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="rejectionTime" type="xs:time">
				<xs:annotation>
					<xs:documentation>Ablehnungsuhrzeit im Format hh:mm:ss</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="errors">
				<xs:annotation>
					<xs:documentation>Fehlermeldungen; es gibt zwei Arten von Fehlern. Von diesen Fehlerarten kann aber immer nur eine aufs Mal auftreten.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:annotation>
						<xs:documentation>Ablehnung einer Beanstandung durch den Zoll.</xs:documentation>
					</xs:annotation>
					<xs:choice>
						<xs:element name="XMLSchemaErrors" type="edecComplaintResponse:XMLSchemaErrorType">
							<xs:annotation>
								<xs:documentation>Fehler, die bei der Validierung mit dem XML Schema aufgetreten sind.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="ruleErrors" type="edecComplaintResponse:RuleErrorType">
							<xs:annotation>
								<xs:documentation>Fehler, die bei der Plausibilisierung aufgetreten sind.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="otherElements" type="xs:anyType" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Frei nutzbares Element</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DeclarantType">
		<xs:annotation>
			<xs:documentation>Complex Type Deklarant</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="traderIdentificationNumber" type="edecComplaintResponse:TraderIdentificationNumber">
				<xs:annotation>
					<xs:documentation>Trader Identification Number (TIN), enthält die TIN bzw. Spediteurnummer (Stammdaten)</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="declarantNumber" minOccurs="0">
				<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:sequence>
	</xs:complexType>
	<xs:complexType name="XMLSchemaErrorType">
		<xs:annotation>
			<xs:documentation>Complex Type für Fehlermeldungen, die auf Grund der Validierung mit dem XML Schema entstanden sind.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="schema">
				<xs:annotation>
					<xs:documentation>Informationen über das Schema, das zur Validierung benutz wurde.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="schemaLocation" type="xs:anyURI">
							<xs:annotation>
								<xs:documentation>URL des XML Schemas</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="namespace" type="xs:anyURI" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Namespace des XML Schemas</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="version" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Version des XML Schemas</xs:documentation>
							</xs:annotation>
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:maxLength value="20"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="parser">
				<xs:annotation>
					<xs:documentation>Informationen über den Parser, der die Fehlermeldungen generiert hat</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="name">
							<xs:annotation>
								<xs:documentation>Name des Parsers</xs:documentation>
							</xs:annotation>
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:maxLength value="50"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="reference" type="xs:anyURI" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Link zum Parser oder zur Dokumentation</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="error" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Informationen über Fehler</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="edecComplaintResponse:ErrorType"/>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="RuleErrorType">
		<xs:annotation>
			<xs:documentation>Complex Type für Fehlermeldungen, die auf Grund der Plausi-Regeln entstanden sind.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="customsDeclarationNumber" type="edecComplaintResponse:CustomsDeclarationNumber">
				<xs:annotation>
					<xs:documentation>Zollanmeldungsnummer Zoll</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="declarant" type="edecComplaintResponse:DeclarantType">
				<xs:annotation>
					<xs:documentation>Deklarant. TIN bzw. Spediteurnummer und Deklarantennummer</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="error" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Informationen über Fehler</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="ruleName">
							<xs:annotation>
								<xs:documentation>Name der Regel, die zur Plausibilisierung benutzt wurde.</xs:documentation>
							</xs:annotation>
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:maxLength value="50"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="checkType" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Gibt an, welcher Fehlertyp aufgetreten ist.</xs:documentation>
							</xs:annotation>
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:maxLength value="150"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="referencedElements" type="edecComplaintResponse:ReferencedElementType" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Liste der Elemente, bei denen der Fehler aufgetaucht ist.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="descriptions" type="edecComplaintResponse:DescriptionType" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Liste der Fehlerbeschreibungen in mehreren Sprachen (DE, FR, IT)</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DescriptionType">
		<xs:annotation>
			<xs:documentation>Complex Type für Beschreibungen</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="description" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Beschreibung in einer Sprache</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="edecComplaintResponse:Description">
							<xs:attribute name="language" type="xs:language" use="required"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ReferencedElementType">
		<xs:annotation>
			<xs:documentation>Complex Type für Referenzen</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="referencedElement" type="edecComplaintResponse:Description" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Referenzierung des fehlerhaften Elements in XPath Syntax (z.B. /edecComplaintRequest/declarantNumber).</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ErrorType">
		<xs:annotation>
			<xs:documentation>Complex Type zur Abbildung von Fehlern</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="message" type="xs:string">
				<xs:annotation>
					<xs:documentation>original Fehlermeldung</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="errorLine" type="xs:integer" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Zeile, auf der die Fehlermeldung aufgetaucht ist.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="errorColumn" type="xs:integer" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Spalte, in der die Fehlermeldung aufgetaucht ist.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="elementName" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Elementname, bei dem der Fehler aufgetaucht ist.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="CustomsDeclarationNumber">
		<xs:annotation>
			<xs:documentation>Zollanmeldungsnummer Zoll</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:maxLength value="21"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="Description">
		<xs:annotation>
			<xs:documentation>Text mit beschränkter Länge</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:maxLength value="1000"/>
		</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="Reference">
		<xs:annotation>
			<xs:documentation>Simple Type für Referenzen</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:maxLength value="35"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="YesNoCode">
		<xs:annotation>
			<xs:documentation>Werteliste für ja-nein Flags. nein=0, ja=1</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:integer">
			<xs:enumeration value="0"/>
			<xs:enumeration value="1"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SchemaVersionType">
		<xs:annotation>
			<xs:documentation>Schema Versionsnummer, die zum Validieren verwendet werden muss</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="[1-9]{0,1}[0-9]{1}\.[0-9]{1,2}"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
