<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">


	<xsd:element name="Manifest" type="ManifestType">
		<xsd:annotation>
			<xsd:documentation>Root element of Manifest message</xsd:documentation>
		</xsd:annotation>
	</xsd:element>

	<xsd:complexType name="ManifestType">
		<xsd:annotation>
			<xsd:documentation>Manifest type</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="DocHead" type="DocHeadType">
				<xsd:annotation>
					<xsd:documentation>Document header</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Line" type="xsd:string" minOccurs="1">
				<xsd:annotation>
					<xsd:documentation>Shipping line name</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="PartiesList" minOccurs="1" maxOccurs="1" type="PartiesListType">
				<xsd:annotation>
					<xsd:documentation>Involved parties list</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Arrival" type="ArrivalType" minOccurs="1">
				<xsd:annotation>
					<xsd:documentation>Vessel arrival identification</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="BLsList" type="BLsListType" minOccurs="1">
				<xsd:annotation>
					<xsd:documentation>Bills of lading list</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>


	<xsd:complexType name="DocHeadType">
		<xsd:sequence>
			<xsd:element name="DocName" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Name of document type</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DocVersion" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Version</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DocNumber" type="xsd:string">
				<xsd:annotation>
					<xsd:documentation>Number of document</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DocDate" type="xsd:dateTime">
				<xsd:annotation>
					<xsd:documentation>Document Date</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="DocID" type="xsd:integer" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Generated ID (in case of deletion and replacement)</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Modification" type="ModificationType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Modification type: create, replace or delete</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>


	<xsd:simpleType name="ModificationType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="create">
				<xsd:annotation>
					<xsd:documentation>Document creation</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="replace">
				<xsd:annotation>
					<xsd:documentation>Document replacement</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="delete">
				<xsd:annotation>
					<xsd:documentation>Document deletion</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>


	<xsd:complexType name="PartiesListType">
		<xsd:sequence>
			<xsd:element name="Party" type="PartyType" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Involved party</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>


	<xsd:complexType name="PartyType">
		<xsd:sequence>
			<xsd:element name="PartyFunction" type="PartyFunctionType" minOccurs="1">
				<xsd:annotation>
					<xsd:documentation>Party function</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Name" minOccurs="1">
				<xsd:annotation>
					<xsd:documentation>Organisation name</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Address" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true">
				<xsd:annotation>
					<xsd:documentation>Address of organisation</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ContractID" type="xsd:integer" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>ID of contract with FCT (from references)</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>


	<xsd:simpleType name="PartyFunctionType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="Stevedore">
				<xsd:annotation>
					<xsd:documentation>Stevedore</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="Agent">
				<xsd:annotation>
					<xsd:documentation>Agent</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="Shipper">
				<xsd:annotation>
					<xsd:documentation>Sender</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="Consignee">
				<xsd:annotation>
					<xsd:documentation>Consignee</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="Notify">
				<xsd:annotation>
					<xsd:documentation>Notified party</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>


	<xsd:complexType name="ArrivalType">
		<xsd:sequence>
			<xsd:element name="VesselID" type="xsd:integer" minOccurs="1" maxOccurs="1">
				<xsd:annotation>
					<xsd:documentation>Vessel ID (from references)</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Vessel" type="xsd:string" minOccurs="0" maxOccurs="1">
				<xsd:annotation>
					<xsd:documentation>Vessel name</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ArrivalDate" type="xsd:dateTime" minOccurs="1" maxOccurs="1">
				<xsd:annotation>
					<xsd:documentation>Arrival date</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>


	<xsd:complexType name="BLsListType">
		<xsd:annotation>
			<xsd:documentation>Тип:список коносаментов</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="BL" type="BLType" minOccurs="1" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>


	<xsd:complexType name="BLType">
		<xsd:sequence>
			<xsd:element name="DocHead" type="DocHeadType">
				<xsd:annotation>
					<xsd:documentation>Header of document</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="PartiesList" minOccurs="1" maxOccurs="1" type="PartiesListType">
				<xsd:annotation>
					<xsd:documentation>Involved parties list</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OceanLineID" minOccurs="0" maxOccurs="1" type="xsd:integer">
				<xsd:annotation>
					<xsd:documentation>Ocean line id</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="IsDirect" type="xsd:boolean" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>True in case of direct variant</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ToOrder" type="xsd:boolean" minOccurs="0"/>
			<xsd:element name="OriginID" type="xsd:integer" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Loading port ID (from references)</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ContainerList" minOccurs="1" maxOccurs="1" type="ContainerListType">
				<xsd:annotation>
					<xsd:documentation>List of BL containers</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>


	<xsd:complexType name="ContainerListType">
		<xsd:sequence>
			<xsd:element name="Container" type="ContainerType" minOccurs="1" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Container information</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>


	<xsd:complexType name="ContainerType">
		<xsd:sequence>
			<xsd:element name="ContainerID" minOccurs="0" type="xsd:integer">
				<xsd:annotation>
					<xsd:documentation>Generated ID (if known)</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Prefix" type="xsd:string" nillable="true" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>4-letter prefix of container</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Number" minOccurs="1">
				<xsd:annotation>
					<xsd:documentation>7-digit number of container</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ISOType" type="ContainerISOType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>ISO-type of container</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="TypeID" type="xsd:integer" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Inner FCT ID of container type (from references)</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Type" type="xsd:string" minOccurs="0"/>
			<xsd:element name="IsEmpty" type="xsd:boolean" default="true" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>True if empty</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="IMOList" type="IMOListType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Dangerousness codes list</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="CargoName" type="xsd:string" minOccurs="1">
				<xsd:annotation>
					<xsd:documentation>Cargo name</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="CargoPlaces" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Amount of places</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="TemperatureCondition" type="TemperatureType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Temperature condition</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="TareWeight" type="xsd:decimal" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Weight of empty container</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="CargoWeight" type="xsd:decimal" minOccurs="1">
				<xsd:annotation>
					<xsd:documentation>Net weight</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="SealList" type="SealListType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>List of seal numbers</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Unstuffing" type="xsd:boolean" default="false" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>


	<xsd:simpleType name="ContainerISOType">
		<xsd:annotation>
			<xsd:documentation>4-symbol type of container according to ISO standard</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:length value="4"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:complexType name="IMOListType">
		<xsd:sequence>
			<xsd:element name="IMO" type="xsd:decimal" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>


	<xsd:complexType name="SealListType">
		<xsd:sequence>
			<xsd:element name="Seal" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="TemperatureType">
		<xsd:sequence>
			<xsd:element name="Value" type="xsd:decimal" minOccurs="1">
				<xsd:annotation>
					<xsd:documentation>Temperature value(averaged)</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Unit" minOccurs="1">
				<xsd:annotation>
					<xsd:documentation>Unit of measurement ('C' - Celsius, 'F' - Farenheit)</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="C"/>
						<xsd:enumeration value="F"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>


</xsd:schema>
