<?xml version="1.0" encoding="UTF-8"?>
<!-- Mit XMLSpy v2016 (http://www.altova.com) von Olav Dienst (Software Company AMIC GmbH) bearbeitet -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:altova="http://www.altova.com/xml-schema-extensions" xmlns:a1="http://www.amic.de/schema/finanzbuchhaltung" targetNamespace="http://www.amic.de/schema/finanzbuchhaltung" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="A.eins">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="daten" type="a1:datenType"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="belegType">
		<xs:sequence>
			<xs:element name="belegdatum" type="a1:belegdatumType" nillable="false"/>
			<xs:element name="eingangsdatum" type="a1:eingangsdatumType" nillable="false" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Optional: Es wird nur bei den Belegklassen ER, EG und SO übernommen.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="periode" type="a1:periodeType" nillable="true" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Optional: Wenn dieses Element nicht angegeben wird, dann wird jahrnummer und perinummer anhand des belegdatums bestimmt.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="nummernkreis" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Optional: Hier kann ein abweichender Nummernkreis angegeben werden. Wird dieses Element nicht verwendet, dann zieht der A.eins-Standard.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="a1:numkreisnummerType">
						<xs:totalDigits value="8"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="belegnummer" type="a1:belegnummernType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Optional: Wird dieses Element angegeben, so wird diese Belegnummer verwendet. Es wird empfohlen, die Belegnummer in der Referenznummer zu übergeben und die Belegnummer von A.eins bilden zu lassen. Sonst kann die Eindeutigkeit der Belegnummern nicht gewährleistet werden.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="referenznummer" type="a1:referenznummerType" nillable="false" minOccurs="0"/>
			<xs:element name="paginiernummer" type="a1:paginiernummerType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Optional: Wird dieses Element angegeben, so wird diese Paginiernummer verwendet.</xs:documentation>
				</xs:annotation>
			</xs:element>
      <xs:element name="konto" type="a1:kontonummerType" nillable="false">
				<xs:annotation>
					<xs:documentation>Je nach Klasse des Beleges kann hier ein Sach- oder Personenkonto stehen. Bei Klasse ZA darf hier nur ein Sachkonto verwendet werden, bei den Klassen AR,AG,ER,EG darf es nur ein Personenkonto sein.</xs:documentation>
				</xs:annotation>
			</xs:element>
      <xs:element name="ustid_kunde" type="a1:ustidType" nillable="false" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Nur gültig bei den Klassen "AR, "AG", "ER", "EG" und wenn der Steuerparameter 703 "Umsatzsteuer-Identifikationsnummern auf Mandanten und Belegebene" nicht auf Nein steht. Wird hier etwas angegeben, so muss der Wert in den Stammdaten existieren.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ustid_mandant" type="a1:ustidType" nillable="false" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Nur gültig bei den Klassen "AR, "AG", "ER", "EG" und wenn der Steuerparameter 703 "Umsatzsteuer-Identifikationsnummern auf Mandanten und Belegebene" nicht auf Nein steht. Wird hier etwas angegeben, so muss der Wert in den Stammdaten existieren.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="kostenstelle" type="a1:kostenstelleType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Nur gültig bei Klasse "SO" und wenn das Hauptkonto ein GuV-Konto ist. Wird keine Kostenstelle angegeben, so wird die zum Sachkonto hinterlegte Kostenstelle verwendet</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="kostentraeger" type="a1:kostentraegerType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Nur gültig bei Klasse "SO" und wenn das Hauptkonto ein GuV-Konto ist. Wird kein Kostenträger angegeben, so wird der zum Sachkonto hinterlegte Kostenträger verwendet.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="belegtext" type="a1:textType" minOccurs="0"/>
			<xs:element name="offenerposten" type="a1:offenerpostenType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Optional: Angabe nur bei Belegklasse AR,AG,ER,EG möglich. Wird bei diesen Klassen keine Information angegeben, so wird dieser Beleg als nicht gemahnt gekennzeichnet</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="positionen" type="a1:positionType" nillable="false" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="klasse" type="a1:belegklasseType" use="required">
			<xs:annotation>
				<xs:documentation>Art des Beleges, wie auch in der A.eins Belegerfassung verwendet. 
ZA=Zahlung ‌AR=Ausgangsrechnung
AG=Ausgangsgutschrift
ER=Eingangrechnung
EG=Einganggutschrift
SO=Sonstige Belege</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="datenType">
		<xs:sequence>
			<xs:element name="header" type="a1:headerType"/>
			<xs:element name="beleg" type="a1:belegType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="headerType">
		<xs:all>
			<xs:element name="uebertragungsnummer" type="a1:uebertragungsnummerType">
				<xs:annotation>
					<xs:documentation>Hier soll eine pro Übertragung eindeutige Kenzeichnung vergeben werden. Sie kann eine einfache Nummer sein oder ein bis zu 60 Stellen lange Zeichenfolge sein. Erlaubte Zeichen sind: 
0-9, a-z, A-Z , die deutschen Umlaute äöüÄÖÜ, ß sowie die 
Sonderzeichen / - ? : ( ) . + _
Sie dient zusammen mit dem Übertragungskennung zur Überprüfung, ob die Daten bereits eingelesen wurden.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="uebertragungskennung" type="a1:uebertragungskennungType" nillable="false">
				<xs:annotation>
					<xs:documentation>Frei wählbarer Text mit maximal 30 Stellen. Erlaubte Zeichen sind:
0-9, a-z, A-Z , die deutschen Umlaute äöüÄÖÜ, ß sowie die 
Sonderzeichen / - ? : ( ) . + _
Übertragungsnummer und Übertragungskennung dienen zur Überprüfung, ob die Daten bereits eingelesen wurden. </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="erstelltam" type="a1:erstelltamType">
				<xs:annotation>
					<xs:documentation>Datum der Dateierstellung. Wird nur zur information gespeichert.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="erstelltvon" type="a1:erstelltvonType">
				<xs:annotation>
					<xs:documentation>Welcher Anwender hat die Daten zusammengestellt? Wird nur zur Infoprmation gespeichert.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="offenerpostenType">
		<xs:annotation>
			<xs:documentation>Nur, wenn auch Informationen zum Mahnwesen übertragen werden sollen </xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element name="mahndatum" type="a1:mahndatumType"/>
			<xs:element name="mahnstufe" type="a1:mahnstufeType"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="periodeType">
		<xs:annotation>
			<xs:documentation>Wird die Periode weggelassen, so wird sie anhand des Belegdatums über den Periodenstamm bestimmt.</xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element name="jahrnummer" type="a1:jahrnummerType"/>
			<xs:element name="perinummer">
				<xs:simpleType>
					<xs:restriction base="a1:perinummerType">
						<xs:totalDigits value="4"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="positionType">
		<xs:all>
			<xs:element name="konto" type="a1:kontonummerType" nillable="false">
				<xs:annotation>
					<xs:documentation>Je nach Klasse des Beleges kann hier ein Sach- oder Personenkonto stehen. Bei den Klassen AR,AG,ER,EG darf hier nur ein Sachkonto stehen</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="betrag" type="a1:betragType" nillable="false"/>
			<xs:element name="sollhaben" type="a1:sollhabenType" nillable="false"/>
			<xs:element name="kostenstelle" type="a1:kostenstelleType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Wird keine Kostenstelle angegeben, so wird die zum Sachkonto hinterlegte Kostenstelle oder die Fehlerkostenstelle aus dem Mandantenstamm verwendet.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="kostentraeger" type="a1:kostentraegerType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Wird kein Kostenträger angegeben, so wird der zum Sachkonto hinterlegte Kostenträger oder der Fehlerkostenträger aus dem Mandantenstamm verwendet.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="wertstellungsdatum" type="a1:valutadatumType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Nur bei Belegklasse ZA.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="zahlungsbedingung" type="a1:zahlungsbedingungType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Nicht bei ZA. Wird keine Zahlungsbedingung angegeben, so wird die Zahlungsbedingung aus dem Kundenstamm verwendet und alle Werte entsprechend dieser Vorgabe berechnet.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="steuer" type="a1:steuerType" minOccurs="0"/>
			<xs:element name="positionstext" type="a1:textType" minOccurs="0"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="zahlungsbedingungType">
		<xs:all>
			<xs:element name="zahlungsbedingungsnummer" type="a1:zahlungsbedingungsnummerType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Wenn lnicht vorhanden, dann aus dem Kundenstammm</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="valutadatum" type="a1:valutadatumType" nillable="false" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Wenn nicht vorhanden, dann laut Zahlungsbedingung</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="skontodatum" type="a1:skontodatumType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Wenn nicht vorhanden, dann laut Zahlungsbedingung</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="skontobetrag" type="a1:betragType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Wenn nicht vorhanden, dann laut Zahlungsbedingung</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="skontosatz" type="a1:prozentsatzType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Wenn nicht vorhanden, dann laut Zahlungsbedingung</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="steuerType">
		<xs:all>
			<xs:element name="steuerklasse" type="a1:steuerklasseType" nillable="false">
				<xs:annotation>
					<xs:documentation>Gültige Werte:
0 = ohne Steuer
1 = Mehrwertsteuer Netto
2 = Mehrwertsteuer Brutto
101 = Vorsteuer Netto
102 = Vorsteuer Brutto
</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="steuergruppe" type="a1:steuergruppeType" nillable="false" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Wenn nicht vorhanden, dann laut Kundenstamm</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="steuerschluessel" type="a1:steuerschluesselType" nillable="false"/>
			<xs:element name="steuerabdatum" type="a1:steuerabdatumType" nillable="false" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Wenn dieses Element nicht vorhanden ist, dann  wird das Steuerabdatum laut Belegdatum bestimmt.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="steuersatz" type="a1:prozentsatzType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Wenn nicht vorhanden, dann aus den A.eins Stammdaten Steuersatz</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="steuerwert" type="a1:betragType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Wenn nicht vorhanden, dann wird der Wert laut Steuersatz errechnet</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:all>
	</xs:complexType>
	<xs:simpleType name="belegdatumType">
		<xs:restriction base="xs:date"/>
	</xs:simpleType>
	<xs:simpleType name="belegklasseType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="ZA"/>
			<xs:enumeration value="AR"/>
			<xs:enumeration value="AG"/>
			<xs:enumeration value="ER"/>
			<xs:enumeration value="EG"/>
			<xs:enumeration value="SO"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="referenznummerType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="20"/>
		</xs:restriction>
	</xs:simpleType>
  <xs:simpleType name="ustidType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="16"/>
    </xs:restriction>
  </xs:simpleType>
	<xs:simpleType name="betragType">
		<xs:restriction base="xs:decimal">
			<xs:totalDigits value="15"/>
			<xs:fractionDigits value="4"/>
		</xs:restriction>
	</xs:simpleType>
  <xs:simpleType name="eingangsdatumType">
    <xs:restriction base="xs:date"/>
  </xs:simpleType>
	<xs:simpleType name="erstelltamType">
		<xs:restriction base="xs:date"/>
	</xs:simpleType>
	<xs:simpleType name="erstelltvonType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="100"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="jahrnummerType">
		<xs:restriction base="xs:int">
			<xs:minInclusive value="1900"/>
			<xs:maxInclusive value="2099"/>
			<xs:totalDigits value="4"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="kontonummerType">
		<xs:restriction base="xs:int">
			<xs:totalDigits value="9"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="mahndatumType">
		<xs:restriction base="xs:date"/>
	</xs:simpleType>
	<xs:simpleType name="mahnstufeType">
		<xs:restriction base="xs:positiveInteger">
			<xs:totalDigits value="4"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="paginiernummerType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="40"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="perinummerType">
		<xs:restriction base="xs:int"/>
	</xs:simpleType>
	<xs:simpleType name="prozentsatzType">
		<xs:restriction base="xs:decimal">
			<xs:totalDigits value="4"/>
			<xs:fractionDigits value="2"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="skontodatumType">
		<xs:restriction base="xs:date"/>
	</xs:simpleType>
	<xs:simpleType name="sollhabenType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="S"/>
			<xs:enumeration value="H"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="textType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="100"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="valutadatumType">
		<xs:restriction base="xs:date"/>
	</xs:simpleType>
	<xs:simpleType name="zahlungsbedingungsnummerType">
		<xs:restriction base="xs:int"/>
	</xs:simpleType>
	<xs:simpleType name="steuerklasseType">
		<xs:restriction base="xs:integer">
			<xs:enumeration value="0"/>
			<xs:enumeration value="1"/>
			<xs:enumeration value="2"/>
			<xs:enumeration value="101"/>
			<xs:enumeration value="102"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="steuergruppeType">
		<xs:restriction base="xs:positiveInteger"/>
	</xs:simpleType>
	<xs:simpleType name="steuerschluesselType">
		<xs:restriction base="xs:integer">
			<xs:minInclusive value="0"/>
			<xs:totalDigits value="4"/>
			<xs:maxInclusive value="9999"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="steuerabdatumType">
		<xs:restriction base="xs:date"/>
	</xs:simpleType>
	<xs:simpleType name="uebertragungsnummerType">
		<xs:restriction base="xs:normalizedString">
			<xs:minLength value="1"/>
			<xs:maxLength value="60"/>
			<xs:whiteSpace value="collapse"/>
			<xs:pattern value="[0-9a-zA-ZäöüÄÖÜß/\-?:\(\).+_]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="uebertragungskennungType">
		<xs:restriction base="xs:normalizedString">
			<xs:minLength value="1"/>
			<xs:maxLength value="30"/>
			<xs:whiteSpace value="collapse"/>
			<xs:pattern value="[0-9a-zA-ZäöüÄÖÜß/\-?:\(\).+_]*"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="kostenstelleType">
		<xs:annotation>
			<xs:documentation>Wird nur ausgewertet, wenn Kostenstellenrechnung laut SPA eingeschaltet ist.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:int">
			<xs:totalDigits value="8"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="kostentraegerType">
		<xs:annotation>
			<xs:documentation>Wird nur ausgewertet, wenn Kostenträgerrechnung laut SPA eingeschaltet ist.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:int">
			<xs:totalDigits value="8"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="numkreisnummerType">
		<xs:restriction base="xs:positiveInteger"/>
	</xs:simpleType>
	<xs:simpleType name="belegnummernType">
		<xs:restriction base="xs:positiveInteger">
			<xs:totalDigits value="9"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
