<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2006 DAKOSY AG (http://www.dakosy.de) -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xsd:element name="Document">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Metainfo" type="metainfoDef">
					<xsd:annotation>
						<xsd:documentation>General Information</xsd:documentation>
						<xsd:documentation>Information on the transmitted data.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="Messages">
					<xsd:complexType>
						<xsd:sequence maxOccurs="unbounded">
							<xsd:element name="Message" type="messageDef"/>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="businessUnitDef">
		<xsd:annotation>
			<xsd:documentation>Business unit</xsd:documentation>
			<xsd:documentation>Location of a branch office.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Code" type="String0..17">
				<xsd:annotation>
					<xsd:documentation>Place/ Location code</xsd:documentation>
					<xsd:documentation>UN/Locode; e.g. the location of the user&apos;s branch office.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Name" type="String0..35" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Location name.</xsd:documentation>
					<xsd:documentation>If there is no UN/LoCode available for this place, alternatively the name can be set.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="communicationDef">
		<xsd:annotation>
			<xsd:documentation>Communication information.</xsd:documentation>
			<xsd:documentation>Contains information on sender, recipients and creation time.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Participants">
				<xsd:annotation>
					<xsd:documentation>Communication participants</xsd:documentation>
					<xsd:documentation>Up to 11 entries can be sent:</xsd:documentation>
					<xsd:documentation>SENDER - mandatory with DAKOSY-code</xsd:documentation>
					<xsd:documentation>EDI_PROVIDER - optional; &apos;DAKOSY&apos;, if message should be processed by DAKOSY</xsd:documentation>
					<xsd:documentation>RECIPIENT - mandatory with DAKOSY-Code. Maximum of nine entries is possible.</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Participant" type="participantDef" minOccurs="2" maxOccurs="11"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="CreationTime" type="xsd:dateTime">
				<xsd:annotation>
					<xsd:documentation>Date and time of message creation.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="Decimal11.2">
		<xsd:restriction base="xsd:decimal">
			<xsd:totalDigits value="11"/>
			<xsd:fractionDigits value="2"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="Int2..2">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="2"/>
			<xsd:maxLength value="2"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="Integer1..3">
		<xsd:restriction base="xsd:positiveInteger">
			<xsd:totalDigits value="3"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="InvoiceDataTyp">
		<xsd:sequence>
			<xsd:element name="AutomaticProcessing" type="String3..3" minOccurs="0" maxOccurs="4">
				<xsd:annotation>
					<xsd:documentation>automatic processing</xsd:documentation>
					<xsd:documentation>
the customer can a number of automatic processing features for the transport order 
rcv = automatic receiving
fwd = automatic forwarding (requires automatic receiving)
qst = automatic retrieval of the quay status (requires a specification of the loading /discharge location)
cfd = automatic forwarding depending on a positive quay status (requires automatic receiving and retrieval of the quay status)
          </xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Type">
				<xsd:annotation>
					<xsd:documentation>type</xsd:documentation>
					<xsd:documentation>
type of invoice
B = bill
C = credit item
          </xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="String1..1">
						<xsd:enumeration value="B"/>
						<xsd:enumeration value="C"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="CustomerNumber" type="String0..12">
				<xsd:annotation>
					<xsd:documentation>customer number</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ContainerNumber" type="String12..12">
				<xsd:annotation>
					<xsd:documentation>container number</xsd:documentation>
					<xsd:documentation>
Format: 
bytes content
1 -  4 Prefix
5 - 12 Number
          </xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DispatchDate" type="xsd:date" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>dispatch date</xsd:documentation>
					<xsd:documentation>dispatch date or date the service was rendered</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Invoice" type="InvoiceType"/>
			<xsd:element name="Currency" type="String3..3" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>currency</xsd:documentation>
					<xsd:documentation>currencey used in the invoice data</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="GrossAmount" type="Decimal11.2" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>gross amount</xsd:documentation>
					<xsd:documentation>sum of the individual invoice line items including tax</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="TotalAmountSalesTax" type="Decimal11.2" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>total amount sales tax</xsd:documentation>
					<xsd:documentation>total amount of sales tax (sum of the invoice line items sales tax)</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="InvoiceLineItem" type="InvoiceLineItemTyp" maxOccurs="99"/>
		</xsd:sequence>
		<xsd:attribute name="ReferenceType" type="String0..35" use="required">
			<xsd:annotation>
				<xsd:documentation>reference type</xsd:documentation>
				<xsd:documentation>
type of reference used
TransportOrder 
Invoice
        </xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="Reference" type="String1..16" use="required">
			<xsd:annotation>
				<xsd:documentation>reference</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="Version" type="Int2..2" use="required">
			<xsd:annotation>
				<xsd:documentation>version</xsd:documentation>
				<xsd:documentation>
version of the message / message element
ascending sequence (not necassarily continuous) starting with version 01 (new transport order etc) - all versions above 01 are interpreted as a revision of previously communicated data
        </xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="InvoiceLineItemTyp">
		<xsd:sequence>
			<xsd:element name="Type">
				<xsd:annotation>
					<xsd:documentation>type</xsd:documentation>
					<xsd:documentation>
type of invoice line item
F = fee
R = rebate
          </xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="String1..1">
						<xsd:enumeration value="F"/>
						<xsd:enumeration value="R"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="Code" type="String0..10" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>code</xsd:documentation>
					<xsd:documentation>
coded description of the invoice line item
mutually agreed codes
          </xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="String0..50" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>description</xsd:documentation>
					<xsd:documentation>textual description of the invoice line item</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="PercentageSalesTax" type="Integer1..3" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>percentage sales tax</xsd:documentation>
					<xsd:documentation>
percentage of sales tax to be added to the amount specified in the invoice line item
value in percent
          </xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Amount" type="Decimal11.2" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>amount</xsd:documentation>
					<xsd:documentation>amount of the invoice line item</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="InvoiceTyp">
		<xsd:sequence>
			<xsd:element name="Reference" type="ReferenceTyp" minOccurs="0"/>
			<xsd:element name="InvoiceData" type="InvoiceDataTyp" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="InvoiceType">
		<xsd:sequence>
			<xsd:element name="Number" type="String0..16">
				<xsd:annotation>
					<xsd:documentation>invoice number</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Date" type="xsd:date">
				<xsd:annotation>
					<xsd:documentation>invoice date</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="messageDef">
		<xsd:annotation>
			<xsd:documentation>General Message definition</xsd:documentation>
			<xsd:documentation>Describes the contents of a message (metainfo and data)</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Metainfo" type="messageInfoDef"/>
			<xsd:element name="InvoiceData" type="InvoiceDataTyp"/>
		</xsd:sequence>
		<xsd:attribute name="ReferenceNumber" use="required">
			<xsd:simpleType>
				<xsd:restriction base="xsd:string">
					<xsd:minLength value="1"/>
					<xsd:maxLength value="35"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="Status" use="required">
			<xsd:simpleType>
				<xsd:restriction base="xsd:NMTOKEN">
					<xsd:enumeration value="original"/>
					<xsd:enumeration value="replace"/>
					<xsd:enumeration value="update"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="messageInfoDef">
		<xsd:sequence>
			<xsd:element name="User" type="userDef" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>User information</xsd:documentation>
					<xsd:documentation>Information on the user who sent the message.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="metainfoDef">
		<xsd:annotation>
			<xsd:documentation>Metainfo</xsd:documentation>
			<xsd:documentation>Contains information concerning transaction type, communication parties etc.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Transaction" type="transactionDef">
				<xsd:annotation>
					<xsd:documentation>Transaction type</xsd:documentation>
					<xsd:documentation>Specifies the transaction type (GM01, AB01 etc.). Only one transaction per file is allowed. Different types must be sent in separate files.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Application" type="String0..35" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Application name</xsd:documentation>
					<xsd:documentation>Name of the application served by the interface.</xsd:documentation>
					<xsd:documentation>E.g. SEEDOS, ATLAS</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Communication" type="communicationDef"/>
		</xsd:sequence>
		<xsd:attribute name="Test" type="xsd:boolean" default="0">
			<xsd:annotation>
				<xsd:documentation>Testflag</xsd:documentation>
				<xsd:documentation>0 - false (default);</xsd:documentation>
				<xsd:documentation>1- true; transmission for test purpose</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="Count" type="xsd:int">
			<xsd:annotation>
				<xsd:documentation>Number of messages</xsd:documentation>
				<xsd:documentation>Number of messages (elements) that are collected in the transmitted file.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="ExchangeNumber" type="String1..10" use="required"/>
	</xsd:complexType>
	<xsd:complexType name="participantDef">
		<xsd:sequence>
			<xsd:element name="Code" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>DAKOSY-code</xsd:documentation>
					<xsd:documentation>4-letter code identifying the participant</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:simpleContent>
						<xsd:extension base="xsd:string">
							<xsd:attribute name="Alias" use="required">
								<xsd:annotation>
									<xsd:documentation>application usage</xsd:documentation>
									<xsd:documentation>Alias code. Describes how the participant is identified in another system, e.g. DAK as DAKOSY-code. Other identifiers are not specified yet.</xsd:documentation>
								</xsd:annotation>
								<xsd:simpleType>
									<xsd:restriction base="xsd:token">
										<xsd:enumeration value="DAK"/>
									</xsd:restriction>
								</xsd:simpleType>
							</xsd:attribute>
						</xsd:extension>
					</xsd:simpleContent>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="Name" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>participant name</xsd:documentation>
					<xsd:documentation>just for informal use</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Pwd" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Password</xsd:documentation>
					<xsd:documentation>Needs only to be set if required by the specified role.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
		<xsd:attribute name="Role" use="required">
			<xsd:annotation>
				<xsd:documentation>
SENDER
RECIPIENT
EDI_PROVIDER
        </xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base="xsd:NMTOKEN">
					<xsd:enumeration value="EDI_PROVIDER"/>
					<xsd:enumeration value="RECIPIENT"/>
					<xsd:enumeration value="SENDER"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="ReferenceTyp">
		<xsd:sequence>
			<xsd:element name="ReferenceType" type="String1..1"/>
			<xsd:element name="Reference" type="String1..16"/>
			<xsd:element name="ModeOfTransport" type="String1..1"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="String0..10">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="0"/>
			<xsd:maxLength value="10"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="String0..12">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="0"/>
			<xsd:maxLength value="12"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="String0..16">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="0"/>
			<xsd:maxLength value="16"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="String0..17">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="0"/>
			<xsd:maxLength value="17"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="String0..35">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="0"/>
			<xsd:maxLength value="35"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="String0..50">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="0"/>
			<xsd:maxLength value="50"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="String1..1">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="1"/>
			<xsd:maxLength value="1"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="String1..10">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="1"/>
			<xsd:maxLength value="10"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="String1..16">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="1"/>
			<xsd:maxLength value="16"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="String12..12">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="12"/>
			<xsd:maxLength value="12"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="String3..3">
		<xsd:restriction base="xsd:string">
			<xsd:minLength value="3"/>
			<xsd:maxLength value="3"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="transactionDef">
		<xsd:sequence>
			<xsd:element name="Descr" type="String0..35" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Transaction name</xsd:documentation>
					<xsd:documentation>IncoiceData</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Provider" type="String0..35" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Message provider</xsd:documentation>
					<xsd:documentation>name of the party who is responsible for the underlying scheme.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
		<xsd:attribute name="Version" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation>Version of message definition</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="Code" type="String0..17" use="required">
			<xsd:annotation>
				<xsd:documentation>Message type</xsd:documentation>
				<xsd:documentation>Code defined by the provider for the specified transaction, e.g.</xsd:documentation>
				<xsd:documentation>GM01 = customs declaration</xsd:documentation>
				<xsd:documentation>AC02 = transport order</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="Type" type="xsd:string" use="required"/>
	</xsd:complexType>
	<xsd:complexType name="transactionInfo">
		<xsd:annotation>
			<xsd:documentation>Transaction information</xsd:documentation>
		</xsd:annotation>
	</xsd:complexType>
	<xsd:complexType name="userDef">
		<xsd:sequence>
			<xsd:element name="Name" type="String0..35"/>
			<xsd:element name="Phone" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Phone number</xsd:documentation>
					<xsd:documentation>plain text without validation. Either phone number or e-mail address must be filled if the user-element is transmitted.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Email" type="xsd:string" minOccurs="0"/>
			<xsd:element name="BusinessUnit" type="businessUnitDef" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
</xsd:schema>
